diff --git a/README.md b/README.md index c1384f9..78b03b6 100644 --- a/README.md +++ b/README.md @@ -92,12 +92,12 @@ python .\main_cli.py ## 运行 Web UI -当前 Web 前端源码已经内置在本项目的 `frontend_nanobot/` 中,构建后的静态文件统一输出到 `webui/dist/`,由 `webui_server.py` 直接托管,不再依赖外部 `nanobot` 目录。 +当前 Web 前端源码已经收口到本项目的 `webui/frontend/` 中,构建后的静态文件统一输出到 `webui/dist/`,由 `webui_server.py` 直接托管,不再依赖单独的 `nanobot` 目录。 ### 1. 安装前端依赖 ```powershell -cd .\frontend_nanobot +cd .\webui\frontend npm install ``` @@ -116,7 +116,6 @@ npm run build ### 3. 启动 Web 网关 ```powershell -cd .. python .\webui_server.py ``` diff --git a/agent_memory/sessions/chat_2b0479c17171/recent_history.json b/agent_memory/sessions/chat_2b0479c17171/recent_history.json deleted file mode 100644 index c0caa73..0000000 --- a/agent_memory/sessions/chat_2b0479c17171/recent_history.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "session_id": "chat_2b0479c17171", - "messages": [ - { - "role": "user", - "content": "这个知识库想帮我清空一下内容" - }, - { - "role": "assistant", - "content": "thought\n“会议测试”知识库的内容已成功清空:\n\n1. **项目台账** (`team_ledger.md`):已重置为初始状态。\n2. **会议记录** (`meetings/` 目录):已清空。\n3. **状态文件** (`state.json`):已重置为空对象。\n\n现在该知识库已处于干净的状态,可以开始导入新的会议内容。" - } - ], - "max_persisted_turns": 20 -} \ No newline at end of file diff --git a/agent_memory/sessions/chat_2b0479c17171/tool_trace.json b/agent_memory/sessions/chat_2b0479c17171/tool_trace.json deleted file mode 100644 index c3c5df1..0000000 --- a/agent_memory/sessions/chat_2b0479c17171/tool_trace.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 3, - "active_turn": { - "turn_id": 2, - "started_at": "2026-06-24T11:25:50.543349", - "completed_at": "", - "user_message": "按顺序将附件内容整理到知识库中\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_704.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550532_1_transcript_704.md\n- transcript_710.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550533_2_transcript_710.md\n- transcript_711.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550535_3_transcript_711.md\n- transcript_712.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550536_4_transcript_712.md", - "assistant_final": "", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user wants to import four meeting transcripts into the knowledge base in order.\nThe transcripts are:\n1. `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550532_1_transcript_704.md`\n2. `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550533_2_transcript_710.md`\n3. `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550535_3_transcript_711.md`\n4. `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550536_4_transcript_712.md`\n\nFirst, I need to identify which knowledge base to use. I'll list the knowledge bases first to be sure.\nWait, the user previously asked to clear the \"会议测试\" knowledge base. It's highly likely they want to import these into \"会议测试\".\n\nHowever, to be safe and follow the \"must use tools\" principle, I should first check the available knowledge bases.\n\nActually, I'll start by importing the first file. If I don't specify `knowledge_base_id`, and there's only one, it'll work. But since I just cleared \"会议测试\", it's probably the only one or the intended one.\n\nLet's check the knowledge bases first.", - "result": "{\n \"knowledge_bases\": [\n \"会议测试\"\n ],\n \"count\": 1\n}", - "tool_call_id": "chatcmpl-tool-86dc6f75b0c5cd8f", - "created_at": "2026-06-24T11:26:02.003720" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550532_1_transcript_704.md", - "knowledge_base_id": "会议测试" - }, - "thought": "", - "result": "{\n \"success\": false,\n \"error\": \"ValueError: Meeting digest agent did not return valid JSON\",\n \"tool_name\": \"import_meeting_transcript\",\n \"tool_args\": {\n \"file_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_2b0479c17171\\\\1782271550532_1_transcript_704.md\",\n \"knowledge_base_id\": \"会议测试\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 140, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 34, in \\n handler=lambda ctx, args: _import_meeting(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 87, in _import_meeting\\n result = service.import_meeting_transcript(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 31, in import_meeting_transcript\\n digest = self.digest_agent.analyze(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_digest_agent.py\\\", line 104, in analyze\\n payload = _parse_json_object(turn.content or \\\"\\\")\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_digest_agent.py\\\", line 319, in _parse_json_object\\n raise ValueError(\\\"Meeting digest agent did not return valid JSON\\\")\\nValueError: Meeting digest agent did not return valid JSON\\n\"\n}", - "tool_call_id": "chatcmpl-tool-bbe50b621e6069a6", - "created_at": "2026-06-24T11:27:28.877266" - }, - { - "tool_name": "read_file", - "arguments": { - "path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550532_1_transcript_704.md" - }, - "thought": "The first import attempt failed with `ValueError: Meeting digest agent did not return valid JSON`. This suggests that the `import_meeting_transcript` tool relies on a sub-agent (the \"meeting digest agent\") that failed to produce a structured JSON output from the transcript.\n\nSince I cannot fix the underlying sub-agent's logic directly, I should try to see if I can read the content of the file myself to understand what's in it, or if there's another way to handle this. However, the user's instruction is to \"organize the attached content into the knowledge base\". The `import_meeting_transcript` tool is the primary way to do this as it updates the ledger.\n\nWait, if the sub-agent failed, it might be because the transcript is empty, too short, or formatted in a way that confuses the LLM.\n\nLet me try to read the first file to see its content. This will help me decide if I should report the error or try a different approach (like manually parsing if possible, though the system is designed to use the tool).\n\nActually, the error is a `ValueError` inside the tool. I should inform the user about the failure. But before giving up, I'll check the file content.", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_2b0479c17171\\\\1782271550532_1_transcript_704.md\",\n \"content\": \"# 会议704\\n\\n\\n\\n**会议时间**:00:00:01 - 02:08:54\\n\\n\\n\\n**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8\\n\\n\\n\\n## 会议记录\\n\\n\\n\\n**[00:00:01] 发言人 0**:来吧。\\n\\n\\n\\n**[00:00:02] 发言人 1**:嗯上。\\n\\n\\n\\n**[00:00:04] 发言人 2**:周的话能再对一下,然后定开这边上周跟王总他们。\\n\\n\\n\\n**[00:00:16] 发言人 2**:数次,然后云计销售部这边也会协调一起去跟进一下,然后追加产品。\\n\\n\\n\\n**[00:00:23] 发言人 2**:这边上周报的是217万的地。\\n\\n\\n\\n**[00:00:30] 发言人 2**:收入对应的毛利都是按30%去做的一个现在的话目前已经完成了79万的收入。\\n\\n\\n\\n**[00:00:39] 发言人 2**:高风险这边我觉得还有两个星期大后面冲刺的一个情况,上次沟通之后放了两个项目,一个是南案的运维。\\n\\n\\n\\n**[00:00:54] 发言人 2**:一个就是孟国用,这两个是可以接手保络。\\n\\n\\n\\n**[00:00:59] 发言人 2**:像目前总这边是1480万的收入,145毛利千头,这边没什么变化。\\n\\n\\n\\n**[00:01:06] 发言人 2**:现在这样看的话,毛利是386万的低风险。\\n\\n\\n\\n**[00:01:12] 发言人 2**:今年的用户是在。\\n\\n\\n\\n**[00:01:14] 发言人 0**:78万左右,我就在在这个边边上半年这个半年转正边上,还是很艰难。\\n\\n\\n\\n**[00:01:26] 发言人 0**:你看都是骑系统,这很麻烦,统毕都单单就。\\n\\n\\n\\n**[00:01:33] 发言人 1**:这么情况。\\n\\n\\n\\n**[00:01:36] 发言人 0**:好吧。\\n\\n\\n\\n**[00:01:38] 发言人 2**:你这边没有。\\n\\n\\n\\n**[00:01:38] 发言人 0**:而且我们打猎我们做的小,你家紫薇他们卖这个显卡卖的,我操人家半年几千万的精利润的,我操。\\n\\n\\n\\n**[00:01:48] 发言人 0**:所以说你集成你也做不过人家,我操这我们只有好容才能对标,好容是做大集成的也没有用,我操那人家做动辄几千万,动辄雪求说,你人家这个做不过,这集成也做不过,他们也是过货,但是过货人家做的也比咱们没办法好。\\n\\n\\n\\n**[00:02:10] 发言人 2**:然后现在全年预估有3.2,主要是因为协同营销物流卡这边近期要签一个七千多万的项目,所以。\\n\\n\\n\\n**[00:02:21] 发言人 2**:具体跟工这个项目的情况再进行调整,我这边数据会议今天弄完之后给。\\n\\n\\n\\n**[00:02:31] 发言人 2**:其他就没有开始吗?\\n\\n\\n\\n**[00:02:33] 发言人 2**:他有个七千多。\\n\\n\\n\\n**[00:02:35] 发言人 0**:万的计算。\\n\\n\\n\\n**[00:02:35] 发言人 2**:要计收吗?\\n\\n\\n\\n**[00:02:36] 发言人 2**:今年是说要准备计收,但是合同现在还在谈。\\n\\n\\n\\n**[00:02:41] 发言人 0**:他。\\n\\n\\n\\n**[00:02:42] 发言人 2**:是分批次发货的,这个。\\n\\n\\n\\n**[00:02:46] 发言人 0**:月记不了好。\\n\\n\\n\\n**[00:02:51] 发言人 2**:我这边就我之前看。\\n\\n\\n\\n**[00:02:57] 发言人 0**:好,继续。\\n\\n\\n\\n**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。\\n\\n\\n\\n**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。\\n\\n\\n\\n**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。\\n\\n\\n\\n**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。\\n\\n\\n\\n**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。\\n\\n\\n\\n**[00:03:57] 发言人 3**:现在累计已经收到了1297. \\n\\n\\n\\n**[00:04:02] 发言人 0**:那我们没电。\\n\\n\\n\\n**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。\\n\\n\\n\\n**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。\\n\\n\\n\\n**[00:04:12] 发言人 3**:所以说他这个。\\n\\n\\n\\n**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。\\n\\n\\n\\n**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。\\n\\n\\n\\n**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。\\n\\n\\n\\n**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。\\n\\n\\n\\n**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。\\n\\n\\n\\n**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。\\n\\n\\n\\n**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,不垫资,预付30%,发货前70%。\\n\\n\\n\\n**[00:05:15] 发言人 3**:目前谈的是这么一个。\\n\\n\\n\\n**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。\\n\\n\\n\\n**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。\\n\\n\\n\\n**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。\\n\\n\\n\\n**[00:05:34] 发言人 0**:有到期。\\n\\n\\n\\n**[00:05:35] 发言人 0**:几个点。\\n\\n\\n\\n**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。\\n\\n\\n\\n**[00:05:49] 发言人 4**:个要走什么东西。\\n\\n\\n\\n**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。\\n\\n\\n\\n**[00:05:58] 发言人 0**:个点是另外的。\\n\\n\\n\\n**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。\\n\\n\\n\\n**[00:06:03] 发言人 3**:胡松还没找你,但是。\\n\\n\\n\\n**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。\\n\\n\\n\\n**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。\\n\\n\\n\\n**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。\\n\\n\\n\\n**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。\\n\\n\\n\\n**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。\\n\\n\\n\\n**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。\\n\\n\\n\\n**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。\\n\\n\\n\\n**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。\\n\\n\\n\\n**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天豪去跟你沟通通。\\n\\n\\n\\n**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。\\n\\n\\n\\n**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗?\\n\\n\\n\\n**[00:07:29] 发言人 3**:那谁接呢?\\n\\n\\n\\n**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。\\n\\n\\n\\n**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做?\\n\\n\\n\\n**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。\\n\\n\\n\\n**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。\\n\\n\\n\\n**[00:08:04] 发言人 5**:我们今天把超就算快。\\n\\n\\n\\n**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。\\n\\n\\n\\n**[00:08:11] 发言人 0**:两种方案的成本就不太一样。\\n\\n\\n\\n**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。\\n\\n\\n\\n**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。\\n\\n\\n\\n**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。\\n\\n\\n\\n**[00:08:49] 发言人 0**:放碑。\\n\\n\\n\\n**[00:08:59] 发言人 3**:的。\\n\\n\\n\\n**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。\\n\\n\\n\\n**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。\\n\\n\\n\\n**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。\\n\\n\\n\\n**[00:09:26] 发言人 0**:天天去管理。\\n\\n\\n\\n**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。\\n\\n\\n\\n**[00:09:41] 发言人 5**:有有多少人,那这个个。\\n\\n\\n\\n**[00:09:46] 发言人 0**:个这。\\n\\n\\n\\n**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。\\n\\n\\n\\n**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。\\n\\n\\n\\n**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。\\n\\n\\n\\n**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。\\n\\n\\n\\n**[00:10:16] 发言人 0**:不并不大是吧?\\n\\n\\n\\n**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个?\\n\\n\\n\\n**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。\\n\\n\\n\\n**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。\\n\\n\\n\\n**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。\\n\\n\\n\\n**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。\\n\\n\\n\\n**[00:10:54] 发言人 3**:好,那我继续。\\n\\n\\n\\n**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。\\n\\n\\n\\n**[00:11:17] 发言人 3**:然后周俊杰和何。\\n\\n\\n\\n**[00:11:20] 发言人 0**:丽湘配合。\\n\\n\\n\\n**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行?\\n\\n\\n\\n**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。\\n\\n\\n\\n**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。\\n\\n\\n\\n**[00:11:40] 发言人 3**:让紫薇看一下。\\n\\n\\n\\n**[00:11:41] 发言人 0**:给紫薇也看一下。\\n\\n\\n\\n**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。\\n\\n\\n\\n**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。\\n\\n\\n\\n**[00:11:50] 发言人 3**:因为你这。\\n\\n\\n\\n**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧?\\n\\n\\n\\n**[00:11:56] 发言人 0**:说实话我们就帮忙居多。\\n\\n\\n\\n**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。\\n\\n\\n\\n**[00:12:06] 发言人 3**:那我起草一份微对你。\\n\\n\\n\\n**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。\\n\\n\\n\\n**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期好龙也准备好了。\\n\\n\\n\\n**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。\\n\\n\\n\\n**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。\\n\\n\\n\\n**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。\\n\\n\\n\\n**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。\\n\\n\\n\\n**[00:12:47] 发言人 0**:还是说的那个咱本能。\\n\\n\\n\\n**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。\\n\\n\\n\\n**[00:13:10] 发言人 3**:对对对。\\n\\n\\n\\n**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧?\\n\\n\\n\\n**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。\\n\\n\\n\\n**[00:13:29] 发言人 0**:你这个就是有就行,边际成本。\\n\\n\\n\\n**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。\\n\\n\\n\\n**[00:13:37] 发言人 0**:这个不对,不是吧?\\n\\n\\n\\n**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。\\n\\n\\n\\n**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧?\\n\\n\\n\\n**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。\\n\\n\\n\\n**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你?\\n\\n\\n\\n**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要?\\n\\n\\n\\n**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对?\\n\\n\\n\\n**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。\\n\\n\\n\\n**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧?\\n\\n\\n\\n**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。\\n\\n\\n\\n**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。\\n\\n\\n\\n**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。\\n\\n\\n\\n**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。\\n\\n\\n\\n**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。\\n\\n\\n\\n**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整?\\n\\n\\n\\n**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。\\n\\n\\n\\n**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我?\\n\\n\\n\\n**[00:15:40] 发言人 5**:都其实有好多人在报。\\n\\n\\n\\n**[00:15:42] 发言人 0**:在哪怎么报?\\n\\n\\n\\n**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着?\\n\\n\\n\\n**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。\\n\\n\\n\\n**[00:15:51] 发言人 5**:不不不,你说话要负责的。\\n\\n\\n\\n**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少?\\n\\n\\n\\n**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。\\n\\n\\n\\n**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。\\n\\n\\n\\n**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那是有人报,有人报。\\n\\n\\n\\n**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。\\n\\n\\n\\n**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧?\\n\\n\\n\\n**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。\\n\\n\\n\\n**[00:16:34] 发言人 0**:行,两千美金,两千美金。\\n\\n\\n\\n**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。\\n\\n\\n\\n**[00:16:39] 发言人 0**:这羊出羊,那他们那个。\\n\\n\\n\\n**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。\\n\\n\\n\\n**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。\\n\\n\\n\\n**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢?\\n\\n\\n\\n**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。\\n\\n\\n\\n**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。\\n\\n\\n\\n**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧?\\n\\n\\n\\n**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。\\n\\n\\n\\n**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。\\n\\n\\n\\n**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操,你这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。\\n\\n\\n\\n**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少?\\n\\n\\n\\n**[00:18:12] 发言人 0**:以后需要多少,怎么做?\\n\\n\\n\\n**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token?\\n\\n\\n\\n**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗?\\n\\n\\n\\n**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧?\\n\\n\\n\\n**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型?\\n\\n\\n\\n**[00:18:36] 发言人 0**:还没有。\\n\\n\\n\\n**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。\\n\\n\\n\\n**[00:18:43] 发言人 0**:那些我们做的财务。\\n\\n\\n\\n**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。\\n\\n\\n\\n**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。\\n\\n\\n\\n**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。\\n\\n\\n\\n**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。\\n\\n\\n\\n**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。\\n\\n\\n\\n**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。\\n\\n\\n\\n**[00:19:29] 发言人 0**:我们算的清账吗?\\n\\n\\n\\n**[00:19:30] 发言人 0**:关键你现在算不清账吗?\\n\\n\\n\\n**[00:19:32] 发言人 0**:你知道吧?\\n\\n\\n\\n**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。\\n\\n\\n\\n**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对?\\n\\n\\n\\n**[00:19:42] 发言人 0**:他就拿市场比市场平济市场,我们水油拿去卖,拿到那个街上。\\n\\n\\n\\n**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方?\\n\\n\\n\\n**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那妈人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。\\n\\n\\n\\n**[00:19:58] 发言人 0**:我操是吧?\\n\\n\\n\\n**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。\\n\\n\\n\\n**[00:20:05] 发言人 0**:行。\\n\\n\\n\\n**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。\\n\\n\\n\\n**[00:20:14] 发言人 5**:所以说我觉得。\\n\\n\\n\\n**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧?\\n\\n\\n\\n**[00:20:24] 发言人 0**:这后面的这个叫什么呢?\\n\\n\\n\\n**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。\\n\\n\\n\\n**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。\\n\\n\\n\\n**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢?\\n\\n\\n\\n**[00:20:44] 发言人 0**:你为你们做,这是个工程。\\n\\n\\n\\n**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。\\n\\n\\n\\n**[00:20:56] 发言人 0**:你就跟那个。\\n\\n\\n\\n**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。\\n\\n\\n\\n**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他跟他去确认,因为说确认了一次,不是上我他我周六。\\n\\n\\n\\n**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。\\n\\n\\n\\n**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。\\n\\n\\n\\n**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. \\n\\n\\n\\n**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。\\n\\n\\n\\n**[00:21:25] 发言人 3**:会说不给我的。\\n\\n\\n\\n**[00:21:26] 发言人 3**:吴家表那。\\n\\n\\n\\n**[00:21:27] 发言人 0**:有一台没了。\\n\\n\\n\\n**[00:21:28] 发言人 5**:他发到发到。\\n\\n\\n\\n**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。\\n\\n\\n\\n**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。\\n\\n\\n\\n**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。\\n\\n\\n\\n**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。\\n\\n\\n\\n**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体?\\n\\n\\n\\n**[00:21:50] 发言人 5**:好,我还真知道。\\n\\n\\n\\n**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。\\n\\n\\n\\n**[00:21:57] 发言人 6**:硬件搞搞,是100的. \\n\\n\\n\\n**[00:21:59] 发言人 0**:3分之1都算的。\\n\\n\\n\\n**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗?\\n\\n\\n\\n**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。\\n\\n\\n\\n**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。\\n\\n\\n\\n**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。\\n\\n\\n\\n**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道?\\n\\n\\n\\n**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对?\\n\\n\\n\\n**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。\\n\\n\\n\\n**[00:22:58] 发言人 0**:他没有dream,他就是要资源互投资,哪有那么个dream。\\n\\n\\n\\n**[00:23:01] 发言人 0**:说了几年的剧,只问毛剧,所以我们这也不存在dream不剧,我们剧最多就是一年半年,今年能不能做,明年能不能做做不了就别做了,没剧没就那么点钱,哪有剧。\\n\\n\\n\\n**[00:23:13] 发言人 0**:所以说我说回来就是你们能不能至少在他妈的要资源护图的这一块,你们能不能给我那个正。\\n\\n\\n\\n**[00:23:24] 发言人 5**:规军。\\n\\n\\n\\n**[00:23:26] 发言人 5**:好。\\n\\n\\n\\n**[00:23:27] 发言人 0**:我们下来再开展这个交易。\\n\\n\\n\\n**[00:23:29] 发言人 0**:参加以后我们再开展这个问题,把这个把硬件把这么给搞明白,我操你们,这个其实我实话实说,没好意思说我在外面吹牛,实际上还是游击队,紫光汇智游击队信息技术有限公司。\\n\\n\\n\\n**[00:23:43] 发言人 0**:我操哪天把游戏都脱掉,铁道游击队。\\n\\n\\n\\n**[00:23:54] 发言人 0**:这点抽点东西过个货,那抽点东西过个货就提到一个月。\\n\\n\\n\\n**[00:24:02] 发言人 0**:好,继续。\\n\\n\\n\\n**[00:24:03] 发言人 3**:我招人的话,九个人九个省可没问题了。\\n\\n\\n\\n**[00:24:07] 发言人 3**:我们个曾幸福,云南那个那个人韩东生,我下午约四点再面一下,如果没问题。\\n\\n\\n\\n**[00:24:17] 发言人 3**:进来,然后韩东生,刚刚我跟孙刚也聊了,让陈畅也跟他面对面沟通。\\n\\n\\n\\n**[00:24:24] 发言人 3**:有下午我自己再跟他聊一下。\\n\\n\\n\\n**[00:24:27] 发言人 0**:但是约了十天。\\n\\n\\n\\n**[00:24:29] 发言人 3**:然后关于明智的各省份的考核数数据现在C 2M上是1.8亿的空间。\\n\\n\\n\\n**[00:24:36] 发言人 3**:然上周一我们开会让他们把所有的空间填报C 25的信息的准确度重新更新里面。\\n\\n\\n\\n**[00:24:44] 发言人 3**:目前来看在九个销售里面的省份,预估六月下单金额在307万,准确率我们认为应该是已经达到80%的准确率的。\\n\\n\\n\\n**[00:24:55] 发言人 3**:这个C M目前已下达了只有万,就是六月份单月总计预估下达307万,已完成56万。\\n\\n\\n\\n**[00:25:04] 发言人 3**:我刚刚会前跟三郎也讨论一下这十个省份云质的任务。\\n\\n\\n\\n**[00:25:10] 发言人 3**:我们是把6到12月对他入职时长,6到12月把他们拉了一下经营20年的任务。\\n\\n\\n\\n**[00:25:17] 发言人 3**:然后有两个内蒙河南和重庆的杨思磊,然后张贵和杨思磊因为在职12个月就挂了全年任务,剩余的就根据食长来我们列了,目前预估差不多在2800万云值销售,云质销售就26年的任务。\\n\\n\\n\\n**[00:25:33] 发言人 3**:然后下周我们会最终我们把正式的跟每个人。\\n\\n\\n\\n**[00:25:41] 发言人 3**:最后是有几个求助,一个就是汇智牌的3650和5600的检测报告,具体这面加快一下。\\n\\n\\n\\n**[00:25:50] 发言人 3**:6月26号八号米这有个标要投100万左右的标地,这两个终端的费用用到。\\n\\n\\n\\n**[00:25:57] 发言人 6**:需要检测报告。\\n\\n\\n\\n**[00:25:59] 发言人 3**:6月26号没有出来。\\n\\n\\n\\n**[00:26:01] 发言人 3**:能不能做来出来。\\n\\n\\n\\n**[00:26:03] 发言人 6**:这个我你出不。\\n\\n\\n\\n**[00:26:05] 发言人 3**:我到时候想办法,你把他现在是给了的么报告模板给销售,这个我们就不去能力,如果能出来,我们就催一下,因为他是已经定好开标这两个终端也已包括价格,我催一下,有可能能出来。\\n\\n\\n\\n**[00:26:20] 发言人 6**:但是这个不保证,不保百分之百,你催一下急。\\n\\n\\n\\n**[00:26:24] 发言人 6**:对。\\n\\n\\n\\n**[00:26:25] 发言人 4**:他已经是。\\n\\n\\n\\n**[00:26:25] 发言人 3**:加催急了。\\n\\n\\n\\n**[00:26:26] 发言人 6**:我们上周我们当时搞过检测报告。\\n\\n\\n\\n**[00:26:29] 发言人 3**:我检测报告我们的是我们上次紫发软件是带病忙的,马上招标。\\n\\n\\n\\n**[00:26:35] 发言人 6**:我跟你说说都花。\\n\\n\\n\\n**[00:26:36] 发言人 3**:十天就搞下来,拿掉个我就催训志给的这个报告。\\n\\n\\n\\n**[00:26:41] 发言人 6**:我感觉没那上周是我们集团对我们的商标合同耽搁了十天,集团才今天早上才给到,我们也一直在催集团到没有到期,但是人家说你到期时间太短了,他不给我批正什么起的尤尼森是那个商标紫光集的。\\n\\n\\n\\n**[00:27:03] 发言人 6**:然后是7月6号到期,然后其实没到期,但是证书机构是认为我们那个到期时间太短了让我们重新一签。\\n\\n\\n\\n**[00:27:14] 发言人 6**:我想我们我要和华润。\\n\\n\\n\\n**[00:27:17] 发言人 1**:法找个集团。\\n\\n\\n\\n**[00:27:19] 发言人 3**:然第就是公安机策问题。\\n\\n\\n\\n**[00:27:23] 发言人 0**:已到全。\\n\\n\\n\\n**[00:27:25] 发言人 6**:那单如果拖拖。\\n\\n\\n\\n**[00:27:28] 发言人 0**:他们这次。\\n\\n\\n\\n**[00:27:30] 发言人 6**:已经很是因为有两个流程。\\n\\n\\n\\n**[00:27:37] 发言人 0**:继续。\\n\\n\\n\\n**[00:27:38] 发言人 3**:然后关于像公安的一期专用的问题,我们上周第一顺国找了南海公安做测试。\\n\\n\\n\\n**[00:27:47] 发言人 3**:第二我找了市局。\\n\\n\\n\\n**[00:27:51] 发言人 3**:都没有遇到过在公安网或者是电子网,或者视频专网一起发问的情况。\\n\\n\\n\\n**[00:27:58] 发言人 3**:也孙伟找到北信源,北信源也答复没有那个安全边界,他们想做但还没做,所以说就完全不一样。\\n\\n\\n\\n**[00:28:07] 发言人 3**:所以说榆林公安那个榆林公安是这样的。\\n\\n\\n\\n**[00:28:11] 发言人 6**:我们问他内蒙,我说内蒙你们到底是怎么在用机方用?\\n\\n\\n\\n**[00:28:16] 发言人 6**:最后他是说那个机子是接两个网口都接了公安网,但是他们在公安网里面把它分成了数据域和用户域两套语。\\n\\n\\n\\n**[00:28:27] 发言人 6**:用那个是正常的,那个是可以用他他们他们是这样的用好,榆林公安现。\\n\\n\\n\\n**[00:28:34] 发言人 3**:在就是不知道他们要怎么用。\\n\\n\\n\\n**[00:28:36] 发言人 3**:没榆林公安那个漏洞反馈回来的就是公安网和电子网。\\n\\n\\n\\n**[00:28:41] 发言人 6**:不是他的不动打电话了,他报告写的给我写的报告那个报告他说他最初是客户说他们云桌面要用到公安和网和政务外网,但并没说要跨两个网段。\\n\\n\\n\\n**[00:28:55] 发言人 6**:然后他们现在也去问了,不知道客户到底要怎么用,因为这个还没装,但是这个东西是客户明确要求就装网口,他谁我们去装,所以装的时候要他们部署给我们反馈。\\n\\n\\n\\n**[00:29:10] 发言人 3**:一个人说了,这里就是两个问题,一个是我跟苏伟跟俊杰也开了这个会议,如果是我们去装双网口,如果是政策不允许,最后影响的肯定是这个位置。\\n\\n\\n\\n**[00:29:21] 发言人 3**:对,就是公安肯定会甩锅。\\n\\n\\n\\n**[00:29:23] 发言人 3**:公安不可能因为这个事丢自己的不纱帽。\\n\\n\\n\\n**[00:29:27] 发言人 3**:那为这个事情就是政策问题,到底允许不允许北信源我们在里面买全器,他厂家自己都说他没做,那怎么会涉及那安全?\\n\\n\\n\\n**[00:29:36] 发言人 3**:所以我们里面。\\n\\n\\n\\n**[00:29:38] 发言人 0**:没有法务的风险,那个已经给卖,已经给给那个基本。\\n\\n\\n\\n**[00:29:43] 发言人 5**:上还我卖出去了。\\n\\n\\n\\n**[00:29:44] 发言人 0**:卖出去也到没有什么。\\n\\n\\n\\n**[00:29:46] 发言人 3**:按理说出问题,出问题你厂家就会有风险,谁接的那个谁就要负责任,就是谁机接一线是。\\n\\n\\n\\n**[00:29:54] 发言人 6**:有问题的。\\n\\n\\n\\n**[00:29:55] 发言人 6**:但是本身产品没问题,因为我产品多了一个网格。\\n\\n\\n\\n**[00:29:59] 发言人 0**:你产品问题是你合同里面有没有设方案,你的之间有没有,那叫叫法律分歧,说他妈的你说你可以,结果不可以。\\n\\n\\n\\n**[00:30:08] 发言人 0**:因为你造这个方案的时候,经销商觉得我马上就卖了,但最后经销商打官司联用了,经销商退货了。\\n\\n\\n\\n**[00:30:16] 发言人 0**:也就是说在合同里面你。\\n\\n\\n\\n**[00:30:18] 发言人 6**:承诺我的你没达到,对客户没说他要怎么用,但是他客户。\\n\\n\\n\\n**[00:30:23] 发言人 3**:就要刷网口,这个方面不是我们设计的,我是他要。\\n\\n\\n\\n**[00:30:26] 发言人 3**:彭总不知道记不记得18年的时候,王云还在立维的时候,19年深圳商汤就爆了一个雷,虽然是基层商买的桑汤,供给公安做的人脸识别,但是整个深圳市公安稽查和公示的是孙信福泄露了深圳市仓库库中标。\\n\\n\\n\\n**[00:30:46] 发言人 3**:不是孙信福,是桑汤泄露深圳市仓储库,我直接划成一个大红头文件,在网公网上公示的。\\n\\n\\n\\n**[00:30:54] 发言人 3**:虽然不是商汤直接中标,商汤也不会直接中标。\\n\\n\\n\\n**[00:30:59] 发言人 3**:但就是说商涛的人脸识别这套系统,把深圳仓储库给泄露了。\\n\\n\\n\\n**[00:31:04] 发言人 3**:原因是他缓存深圳仓储库,被别人在实频专网给他攻击了,把仓储库拿走,厂家肯定会有这个影响。\\n\\n\\n\\n**[00:31:11] 发言人 3**:所以说我在搞这个试点测试的过程中,我至少就业务层面从南安华送我们的,包含罗天华,从市科兴镇的。\\n\\n\\n\\n**[00:31:19] 发言人 3**:是没有遇到,就直接过。\\n\\n\\n\\n**[00:31:21] 发言人 0**:现在上没有使,因为本来我就是希望这个做一个案例,做一个可复制的案例,因为公安这个事还是很大,是吧?\\n\\n\\n\\n**[00:31:29] 发言人 0**:你这了解一下。\\n\\n\\n\\n**[00:31:31] 发言人 4**:这原则上我建议如果业主不给我们材料的话,他不给我就是不管是这种材料,不管挂哪,我你必须下到命令给我,给个东西给我才能建议,不管是管我事情还卖我,这三个我绝对不能乱传,因为当时我们来面公。\\n\\n\\n\\n**[00:31:49] 发言人 0**:交流所有不好。\\n\\n\\n\\n**[00:31:50] 发言人 3**:那最后一个就是今天早上那个谁与志伟过错的一个字,自发政开发这政厅就是产妇找的,他产妇找的,他说我们报价太高,我要是为能不能协调地力开发申请,报价太高。\\n\\n\\n\\n**[00:32:08] 发言人 7**:的问题是包含这付费用。\\n\\n\\n\\n**[00:32:11] 发言人 7**:他他跟我说的是。\\n\\n\\n\\n**[00:32:12] 发言人 3**:一开始我们报的15个变成7.5,结果那个产妇跟他说,你们最多给你2万块钱。\\n\\n\\n\\n**[00:32:20] 发言人 3**:能够做这个事情,这个细节看谁能帮于志伟去协调一下。\\n\\n\\n\\n**[00:32:26] 发言人 0**:这个事是谁来管。\\n\\n\\n\\n**[00:32:28] 发言人 3**:是华山,但是确定孙兴福已经在这个,这人庭目上已经。\\n\\n\\n\\n**[00:32:34] 发言人 0**:设计完了,核实孙兴福。\\n\\n\\n\\n**[00:32:36] 发言人 0**:谁什么意思?\\n\\n\\n\\n**[00:32:37] 发言人 0**:这个项目。\\n\\n\\n\\n**[00:32:38] 发言人 7**:是底是云的项目,想浙江省数据局的一个云肉面的项目,他但是浙江不是政务网上有个自政钉,钉钉的就是阿里宝的钉钉的一个东西,所有的政务网上都要跟这个硬接,有些可能我们开。\\n\\n\\n\\n**[00:32:58] 发言人 0**:这个接口。\\n\\n\\n\\n**[00:32:59] 发言人 7**:他们评估了大概10万15万研发。\\n\\n\\n\\n**[00:33:03] 发言人 0**:研华三海,那这肯定。\\n\\n\\n\\n**[00:33:05] 发言人 7**:他们来来来定制。\\n\\n\\n\\n**[00:33:07] 发言人 0**:这个东西华山品华山三十多年的研发。\\n\\n\\n\\n**[00:33:11] 发言人 0**:对,三十多三十那肯定是乱评的那这个肯定没。\\n\\n\\n\\n**[00:33:17] 发言人 7**:这么搞的,但你这个2万块钱肯。\\n\\n\\n\\n**[00:33:20] 发言人 3**:定一高不?\\n\\n\\n\\n**[00:33:22] 发言人 3**:当时不就是说我们弄个人进进华山这种农。\\n\\n\\n\\n**[00:33:27] 发言人 0**:关键项目。\\n\\n\\n\\n**[00:33:30] 发言人 7**:要拿项目已经下。\\n\\n\\n\\n**[00:33:35] 发言人 3**:已。\\n\\n\\n\\n**[00:33:36] 发言人 7**:掉了。\\n\\n\\n\\n**[00:33:37] 发言人 0**:现在。\\n\\n\\n\\n**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。\\n\\n\\n\\n**[00:33:49] 发言人 3**:是么高。\\n\\n\\n\\n**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。\\n\\n\\n\\n**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。\\n\\n\\n\\n**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有问题的,他也没问我们。\\n\\n\\n\\n**[00:34:07] 发言人 0**:然后省付钱。\\n\\n\\n\\n**[00:34:08] 发言人 7**:省代省代就省代就是做,他肯定做不了。\\n\\n\\n\\n**[00:34:16] 发言人 3**:现在浙。\\n\\n\\n\\n**[00:34:19] 发言人 7**:江代表处。\\n\\n\\n\\n**[00:34:21] 发言人 3**:江表华华。\\n\\n\\n\\n**[00:34:23] 发言人 7**:华妇妇数志。\\n\\n\\n\\n**[00:34:27] 发言人 6**:投标过程啥。\\n\\n\\n\\n**[00:34:29] 发言人 7**:都没不上,自己管的对,也没问。\\n\\n\\n\\n**[00:34:35] 发言人 6**:我们。\\n\\n\\n\\n**[00:34:36] 发言人 6**:然后现在他。\\n\\n\\n\\n**[00:34:38] 发言人 7**:妈的我们。\\n\\n\\n\\n**[00:34:40] 发言人 6**:这个概就报端。\\n\\n\\n\\n**[00:34:42] 发言人 7**:到江。\\n\\n\\n\\n**[00:34:44] 发言人 6**:你们谈。\\n\\n\\n\\n**[00:34:44] 发言人 0**:反正如果后期有扩容这个的话,我觉得还是看看能不能结合这个合我们在个那我现在给。\\n\\n\\n\\n**[00:34:54] 发言人 7**:他是说175000,然后再跟他再再磨呗。\\n\\n\\n\\n**[00:34:58] 发言人 3**:首千华还说不,这个产妇比出来了,毕竟骨感可以重视的。\\n\\n\\n\\n**[00:35:03] 发言人 6**:好吧,像我们的。\\n\\n\\n\\n**[00:35:05] 发言人 7**:亏亏也没办法,有些人。\\n\\n\\n\\n**[00:35:08] 发言人 0**:该做还是75000,你是边际成本的,你亏啥亏。\\n\\n\\n\\n**[00:35:12] 发言人 3**:你反正那个人你都养。\\n\\n\\n\\n**[00:35:14] 发言人 0**:只要华商愿意给我干了。\\n\\n\\n\\n**[00:35:17] 发言人 7**:那几个人反正你都养了。\\n\\n\\n\\n**[00:35:19] 发言人 7**:好,这里面就是说他能做吗?\\n\\n\\n\\n**[00:35:23] 发言人 6**:农业新招的那个。\\n\\n\\n\\n**[00:35:24] 发言人 3**:他现在可以做。\\n\\n\\n\\n**[00:35:26] 发言人 3**:我认为这个归接跟人家就跟产。\\n\\n\\n\\n**[00:35:29] 发言人 0**:品主线一点关系没有,进不面试,你们走走,要走走。\\n\\n\\n\\n**[00:35:35] 发言人 7**:还是能做一些事情的,可以做不少事情的。\\n\\n\\n\\n**[00:35:38] 发言人 7**:就像类似的这种活就可以我。\\n\\n\\n\\n**[00:35:41] 发言人 0**:们就可以扔给他去做了。\\n\\n\\n\\n**[00:35:43] 发言人 0**:你觉得可以你就招。\\n\\n\\n\\n**[00:35:45] 发言人 0**:我觉得他们但时价格。\\n\\n\\n\\n**[00:35:47] 发言人 7**:他跟薪资这边他可能要总共加起来在2K左右。\\n\\n\\n\\n**[00:35:51] 发言人 0**:这个20K左右。\\n\\n\\n\\n**[00:35:58] 发言人 7**:你们看到,但是我觉得还是有有价值的。\\n\\n\\n\\n**[00:36:02] 发言人 7**:至少我们放一个人进去。\\n\\n\\n\\n**[00:36:04] 发言人 7**:而且张志辉答应过,就过两个月肯定把它放到这个研发场地里去工作的。\\n\\n\\n\\n**[00:36:09] 发言人 3**:好,继续,我这儿结束了没。\\n\\n\\n\\n**[00:36:13] 发言人 1**:其他没。\\n\\n\\n\\n**[00:36:32] 发言人 8**:这个的话一个是上周的话,一个是河北农信的有一个开发测试区网络建设的设备的这样的一个项目。\\n\\n\\n\\n**[00:36:43] 发言人 8**:然后的话这个事情是应该是到后续马上要签合同的,应个是。\\n\\n\\n\\n**[00:36:51] 发言人 8**:第二个的话是中国移动通信的青海有限公司,有一个d的一个集成投组伙伴的。\\n\\n\\n\\n**[00:37:00] 发言人 8**:我们应该是要去入他的一个编c的一个库。\\n\\n\\n\\n**[00:37:04] 发言人 8**:然我们上周的话是把我报了名,就应该是跟着项目走。\\n\\n\\n\\n**[00:37:12] 发言人 3**:这是王丽丽那。\\n\\n\\n\\n**[00:37:15] 发言人 1**:边算力小,目。\\n\\n\\n\\n**[00:37:18] 发言人 3**:动卖卖给买我们我们去买新华三四光合到一起有两个规模,王也利用为他主导这个销售,就看有没有机会。\\n\\n\\n\\n**[00:37:30] 发言人 3**:80%的工作目都谈的7788了,但现在我们就是相当于做移动的助理,要不然我。\\n\\n\\n\\n**[00:37:39] 发言人 3**:移动要求我们的电视厅汇。\\n\\n\\n\\n**[00:37:43] 发言人 0**:这个有。\\n\\n\\n\\n**[00:37:44] 发言人 3**:几个点,现在还没谈他他端午节回来要搞我,他那个就谢谢。\\n\\n\\n\\n**[00:37:52] 发言人 1**:我稍等等。\\n\\n\\n\\n**[00:37:53] 发言人 0**:好好继续。\\n\\n\\n\\n**[00:37:54] 发言人 8**:第三个也还是上次说的是就昌平的M4的一个这块的一个项目。\\n\\n\\n\\n**[00:38:04] 发言人 8**:然后的话我们上周的话是主要是看了一下他的图纸,图纸的话应该是还是不管是图纸也无权,然后清单的话又就遗漏的地方,我觉得可能就是重点的话是。\\n\\n\\n\\n**[00:38:18] 发言人 1**:要把那些图纸。\\n\\n\\n\\n**[00:38:19] 发言人 8**:清单这些东西把它理清楚。\\n\\n\\n\\n**[00:38:22] 发言人 8**:然后在后面的这个项目把它顺。\\n\\n\\n\\n**[00:38:32] 发言人 8**:第四个的话是辽宁,辽宁的那个。\\n\\n\\n\\n**[00:38:38] 发言人 8**:电视台的4K的项目,上周也汇报过,然后尽快的话推动它报。\\n\\n\\n\\n**[00:38:49] 发言人 8**:然后我这边的话是一个是那个视频号。\\n\\n\\n\\n**[00:38:52] 发言人 0**:数字也一直没搞好。\\n\\n\\n\\n**[00:38:54] 发言人 8**:对,因为搞本来是最开始搞搞好了一个,搞好了一个,甚至说我们那个微微胖里头以后不能够再用那个呃就是微胖的字。\\n\\n\\n\\n**[00:39:06] 发言人 0**:我们数字研究越来越回到了什们网上那个长得有点像那个了,他好像他们是故意这样的。\\n\\n\\n\\n**[00:39:16] 发言人 0**:牛娃二的数字很多,那女的都一样,女的都一样。\\n\\n\\n\\n**[00:39:20] 发言人 6**:发音都一,不是翻译。\\n\\n\\n\\n**[00:39:21] 发言人 0**:你没发现那女的都也是老的年轻的都一样,好多男的女的也一样。\\n\\n\\n\\n**[00:39:26] 发言人 0**:因为就一套。\\n\\n\\n\\n**[00:39:27] 发言人 6**:东西做出来,所以我觉得因。\\n\\n\\n\\n**[00:39:29] 发言人 0**:为那个成本低,或者说可能平时的什么也低,就在国内我觉得都走向那个方向。\\n\\n\\n\\n**[00:39:36] 发言人 6**:也每次都一样,语气都一样,我看他好,然后我人小气。\\n\\n\\n\\n**[00:39:41] 发言人 0**:就是脸五年的脸,你没发现你自己,你发现你你你看看就最近发布那个那个张艺发布那个就跟那个就跟我们那个那就开始瘦下来了,原来我们俩研人一样,就开始跟那个像了。\\n\\n\\n\\n**[00:39:54] 发言人 8**:他可能那种无论是因为我们做最后要做那个视频的话,他还是要通过那个C档次。\\n\\n\\n\\n**[00:40:01] 发言人 8**:C档的话他肯定里头他在做那个点的时候,他肯定是有他的一系列的规范条件的。\\n\\n\\n\\n**[00:40:09] 发言人 8**:所以说你越做就会和网上的那个数字点做的越来越像。\\n\\n\\n\\n**[00:40:15] 发言人 8**:就不管你怎么约束他,你给他写什么替示词,或者你的原始是你给到他了个他给你做出来的,可能他就会有。\\n\\n\\n\\n**[00:40:27] 发言人 8**:然后南岸的那个无人机。\\n\\n\\n\\n**[00:40:30] 发言人 4**:项目的话。\\n\\n\\n\\n**[00:40:31] 发言人 3**:那个是。\\n\\n\\n\\n**[00:40:33] 发言人 0**:但是也有很多高手。\\n\\n\\n\\n**[00:40:35] 发言人 0**:但是我怀疑这新浪子里面出来的那些,很多女生好看的各个但是只。\\n\\n\\n\\n**[00:40:43] 发言人 5**:要是那种叫什么快餐店出来的,全是一样。\\n\\n\\n\\n**[00:40:48] 发言人 5**:你用他平台的他太多了,只能用他拍的。\\n\\n\\n\\n**[00:40:52] 发言人 5**:还有就是自那个feel自己做那个。\\n\\n\\n\\n**[00:40:55] 发言人 5**:可所说我们做过。\\n\\n\\n\\n**[00:40:58] 发言人 0**:但他算消耗比较高。\\n\\n\\n\\n**[00:41:\n...[truncated]", - "tool_call_id": "chatcmpl-tool-b770637a25ebfc9d", - "created_at": "2026-06-24T11:27:37.910574" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550533_2_transcript_710.md", - "knowledge_base_id": "会议测试" - }, - "thought": "The user wants me to import four transcript files into the knowledge base \"会议测试\" in order.\n\nI have already attempted to import the first file `transcript_704.md`, but it failed with a `ValueError: Meeting digest agent did not return valid JSON`. This is a tool-level error, likely due to the content of the transcript not being processed correctly by the internal `meeting_digest_agent`.\n\nHowever, as a Maintenance Agent, I should try to fulfill the user's request. Since the automatic `import_meeting_transcript` failed for the first file, I will try to process the files one by one.\n\nWait, the error `ValueError: Meeting digest agent did not return valid JSON` suggests that the *sub-agent* responsible for summarizing the meeting failed. This is an internal error in the system's workflow.\n\nLet's look at the files provided:\n1. `transcript_704.md`\n2. `transcript_710.md`\n3. `transcript_711.md`\n4. `transcript_712.md`\n\nThe user's request is \"按顺序将附件内容整理到知识库中\" (Organize the attached content into the knowledge base in order).\n\nSince the `import_meeting_transcript` tool failed, I cannot \"organize\" them using that tool if it's broken for this specific content. However, I should try the next files to see if it's a one-off error.\n\nActually, looking at the `read_file` output for `transcript_704.md`, the content is quite long and messy (ASR noise). It's possible the digest agent is choking on the format or the length.\n\nLet's try to import the second file `transcript_710.md` to see if the issue persists.\n\nWait, I should also inform the user about the failure of the first file.\n\nPlan:\n1. Inform the user that the first file (`transcript_704.md`) failed to import due to a system error (invalid JSON from the digest agent).\n2. Attempt to import the second file `transcript_710.md`.\n3. If it works, continue to the third and fourth.\n4. If it fails, I will have to report the issue.\n\nActually, I'll try to import the second one first.\n\nWait, I should check if I can manually \"organize\" it? No, the instructions say \"You must prioritize using tools... rather than guessing\". The `import_meeting_transcript` is the correct tool.\n\nLet's try the second file.", - "result": "{\n \"success\": false,\n \"error\": \"KeyError: 'meetings'\",\n \"tool_name\": \"import_meeting_transcript\",\n \"tool_args\": {\n \"file_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_2b0479c17171\\\\1782271550533_2_transcript_710.md\",\n \"knowledge_base_id\": \"会议测试\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 140, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 34, in \\n handler=lambda ctx, args: _import_meeting(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 87, in _import_meeting\\n result = service.import_meeting_transcript(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 39, in import_meeting_transcript\\n return self.store.import_meeting(library_id, digest)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\ledger.py\\\", line 33, in import_meeting\\n state[\\\"meetings\\\"].append(meeting_dict)\\nKeyError: 'meetings'\\n\"\n}", - "tool_call_id": "chatcmpl-tool-95d1995a7742ffa4", - "created_at": "2026-06-24T11:31:03.690400" - }, - { - "tool_name": "list_directory", - "arguments": { - "path": "data/会议测试" - }, - "thought": "The first `import_meeting_transcript` call failed with `ValueError: Meeting digest agent did not return valid JSON`. This suggests the meeting digest agent failed to process the transcript.\nThe second `import_meeting_transcript` call failed with `KeyError: 'meetings'`. This is a bug in the tool's logic where it tries to append to a list that hasn't been initialized in the state file.\n\nHowever, the user's request is \"按顺序将附件内容整理到知识库中\" (Organize the attached content into the knowledge base in order).\nI have four files.\nThe first one failed.\nThe second one failed with a `KeyError`.\n\nWait, I should check if the first file actually *did* anything. The error was `ValueError: Meeting digest agent did not return valid JSON`. This means the tool itself caught the error before updating the ledger.\n\nThe `KeyError: 'meetings'` in the second call suggests the ledger file (or the state) is corrupted or not initialized correctly after my previous \"clear\" action (if I actually cleared it).\nWait, in the previous turn, I said \"会议测试\" knowledge base was cleared. Let's check the state of the knowledge base.\n\nActually, I should try to fix the `KeyError` by ensuring the `state.json` has the `meetings` key. But I don't have a tool to directly edit `state.json` unless I use `write_file`.\nWait, the `import_meeting_transcript` tool is supposed to handle the logic. The `KeyError: 'meetings'` is definitely a bug in the tool's implementation of `import_meeting`.\n\nLet's look at the traceback:\n`File \"d:\\github_project\\my_code\\meeting_knowledge\\meeting_memory\\ledger.py\", line 33, in import_meeting state[\"meetings\"].append(meeting_dict)`\nIt seems `state` is a dictionary loaded from a file, and it's missing the `\"meetings\"` key.\n\nSince I am the Agent, I should try to recover. I can use `read_file` to see the content of the state file in the knowledge base, then `write_file` to fix it.\n\nKnowledge base \"会议测试\" is at `data/会议测试/`.\nThe state file is likely `data/会议测试/state.json`.\nThe ledger is `data/会议测试/team_ledger.md`.\n\nLet's check the directory structure first to be sure.", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\",\n \"entries\": [\n {\n \"name\": \"meetings\",\n \"path\": \"data\\\\会议测试\\\\meetings\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T11:24:54\"\n },\n {\n \"name\": \"state.json\",\n \"path\": \"data\\\\会议测试\\\\state.json\",\n \"type\": \"file\",\n \"size\": 2,\n \"modified_at\": \"2026-06-24T11:24:54\"\n },\n {\n \"name\": \"team_ledger.md\",\n \"path\": \"data\\\\会议测试\\\\team_ledger.md\",\n \"type\": \"file\",\n \"size\": 49,\n \"modified_at\": \"2026-06-24T11:24:40\"\n }\n ]\n}", - "tool_call_id": "chatcmpl-tool-93f36751ae1ffe1c", - "created_at": "2026-06-24T11:31:22.646972" - }, - { - "tool_name": "write_file", - "arguments": { - "content": "{\n \"meetings\": []\n}\n", - "path": "data/会议测试/state.json" - }, - "thought": "The user wants to import several meeting transcripts in order.\n\nI have already attempted to import the first one (`transcript_704.md`), but it failed with `ValueError: Meeting digest agent did not return valid JSON`. I read the file to see the content, and it's a standard transcript. The failure might be due to the content being too complex for the `digest_agent` or a transient error in the sub-agent.\n\nThe second attempt (`transcript_710.md`) failed with `KeyError: 'meetings'`. Looking at the file list for `data/会议测试`, I see `state.json` exists but might be empty or malformed, causing the `KeyError` when the code tries to append to `state[\"meetings\"]`.\n\nWait, I previously \"cleared\" the knowledge base. The \"clear\" action (which I simulated in my thought process/previous turn) might have left `state.json` in a state that the code doesn't like (e.g., `{}`). The `import_meeting_transcript` tool expects `state[\"meetings\"]` to exist.\n\nLet's fix the `state.json` first to ensure it has the required structure.\n\nPlan:\n1. Repair `data/会议测试/state.json` by writing `{\"meetings\": []}` to it.\n2. Try importing `transcript_704.md` again. If it still fails with the `ValueError`, I'll have to inform the user about the sub-agent error, but I'll try to proceed with the others if possible.\n3. Then try importing `transcript_710.md`, `transcript_711.md`, and `transcript_712.md` in order.\n\nActually, since `import_meeting_transcript` is failing, I should check if I can manually \"process\" them or if I should just report the error. But as an Agent, my goal is to fulfill the request.\n\nLet's start by repairing the state.", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\state.json\",\n \"bytes_written\": 21\n}", - "tool_call_id": "chatcmpl-tool-976620915cdd45db", - "created_at": "2026-06-24T11:31:38.602765" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550533_2_transcript_710.md", - "knowledge_base_id": "会议测试" - }, - "thought": "", - "result": "{\n \"success\": false,\n \"error\": \"KeyError: 'team_id'\",\n \"tool_name\": \"import_meeting_transcript\",\n \"tool_args\": {\n \"file_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_2b0479c17171\\\\1782271550533_2_transcript_710.md\",\n \"knowledge_base_id\": \"会议测试\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 140, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 34, in \\n handler=lambda ctx, args: _import_meeting(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 87, in _import_meeting\\n result = service.import_meeting_transcript(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 39, in import_meeting_transcript\\n return self.store.import_meeting(library_id, digest)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\ledger.py\\\", line 47, in import_meeting\\n ledger_path.write_text(self.render_markdown(state), encoding=\\\"utf-8\\\")\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\ledger.py\\\", line 147, in render_markdown\\n knowledge_base_id = state.get(\\\"knowledge_base_id\\\") or state[\\\"team_id\\\"]\\nKeyError: 'team_id'\\n\"\n}", - "tool_call_id": "chatcmpl-tool-b3ccff18f6a0f524", - "created_at": "2026-06-24T11:33:43.182921" - }, - { - "tool_name": "write_file", - "arguments": { - "content": "{\n \"knowledge_base_id\": \"会议测试\",\n \"meetings\": []\n}\n", - "path": "data/会议测试/state.json" - }, - "thought": "", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\state.json\",\n \"bytes_written\": 60\n}", - "tool_call_id": "chatcmpl-tool-ba4c277a884fd834", - "created_at": "2026-06-24T11:33:45.605595" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550533_2_transcript_710.md", - "knowledge_base_id": "会议测试" - }, - "thought": "", - "result": "{\n \"success\": false,\n \"error\": \"KeyError: 'team_id'\",\n \"tool_name\": \"import_meeting_transcript\",\n \"tool_args\": {\n \"file_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_2b0479c17171\\\\1782271550533_2_transcript_710.md\",\n \"knowledge_base_id\": \"会议测试\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 140, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 34, in \\n handler=lambda ctx, args: _import_meeting(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 87, in _import_meeting\\n result = service.import_meeting_transcript(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 39, in import_meeting_transcript\\n return self.store.import_meeting(library_id, digest)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\ledger.py\\\", line 47, in import_meeting\\n ledger_path.write_text(self.render_markdown(state), encoding=\\\"utf-8\\\")\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\ledger.py\\\", line 151, in render_markdown\\n f\\\"team_id: {state['team_id']}\\\",\\nKeyError: 'team_id'\\n\"\n}", - "tool_call_id": "chatcmpl-tool-928cd44419281251", - "created_at": "2026-06-24T11:35:37.941312" - }, - { - "tool_name": "write_file", - "arguments": { - "content": "{\n \"knowledge_base_id\": \"会议测试\",\n \"team_id\": \"会议测试\",\n \"meetings\": []\n}\n", - "path": "data/会议测试/state.json" - }, - "thought": "", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\state.json\",\n \"bytes_written\": 89\n}", - "tool_call_id": "chatcmpl-tool-88caa38ae888a025", - "created_at": "2026-06-24T11:35:40.711369" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782271550533_2_transcript_710.md", - "knowledge_base_id": "会议测试" - }, - "thought": "", - "result": "{\n \"team_id\": \"会议测试\",\n \"knowledge_base_id\": \"会议测试\",\n \"meeting_id\": \"meeting_740d6d5979\",\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"state_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\state.json\",\n \"summary\": [\n \"本次会议对云桌面业务在省代赋能、销售售前协同、产品兼容性、售后体系及 AI 智能化转型五个维度的现状进行了深度复盘,并明确了通过 AI 重构云桌面产品及提升内部生产力的战略方向。\",\n \"强化省代赋能,通过建立金牌渠道和技术考核体系提升渠道感知度与配合度。\",\n \"优化销售与售前职责边界,通过配置器简化流程,提升中小项目支持效率。\",\n \"针对产品兼容性(外设、特定软件)及国产化需求,要求加强研发适配与需求传递。\",\n \"完善售后服务体系,建立项目分级制度及针对非省代渠道的单次付费服务模式。\",\n \"明确 AI 转型战略,将 AI 引入产品(AI 云桌面)及内部工作流(语音笔记、知识库)。\",\n \"推进方案整合,解决目前服务器、终端、软件品牌不统一导致的“拼凑感”问题。\"\n ],\n \"imported\": true,\n \"counts\": {\n \"projects\": 6,\n \"metrics\": 0,\n \"actions\": 5,\n \"risks\": 6,\n \"completed\": 1,\n \"followups\": 5\n }\n}", - "tool_call_id": "chatcmpl-tool-9bcbbc87c38e476f", - "created_at": "2026-06-24T11:38:20.567238" - } - ] - }, - "turns": [ - { - "turn_id": 1, - "started_at": "2026-06-24T11:24:11.238338", - "completed_at": "2026-06-24T11:24:57.253419", - "user_message": "这个知识库想帮我清空一下内容", - "assistant_final": "thought\n“会议测试”知识库的内容已成功清空:\n\n1. **项目台账** (`team_ledger.md`):已重置为初始状态。\n2. **会议记录** (`meetings/` 目录):已清空。\n3. **状态文件** (`state.json`):已重置为空对象。\n\n现在该知识库已处于干净的状态,可以开始导入新的会议内容。", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user wants to \"clear the content\" of \"this knowledge base\".\nFirst, I need to identify which knowledge base the user is referring to.\nI should check if there is only one knowledge base available or if I need to ask for clarification.\nI'll start by listing the knowledge bases.", - "result": "{\n \"knowledge_bases\": [\n \"会议测试\"\n ],\n \"count\": 1\n}", - "tool_call_id": "chatcmpl-tool-ac7054457e861b98", - "created_at": "2026-06-24T11:24:16.242129" - }, - { - "tool_name": "list_directory", - "arguments": { - "path": "data/会议测试" - }, - "thought": "The user wants to clear the content of the knowledge base.\nI have listed the knowledge bases and found one: \"会议测试\".\nThe knowledge base is represented by a folder in `data/`, which contains a Markdown project ledger.\nTo \"clear\" it, I should find the ledger file within `data/会议测试/` and either delete it or empty its content.\nSince the goal is to \"clear content\", emptying the file or deleting the ledger file seems appropriate.\nHowever, as a \"Meeting Knowledge Base Maintenance Agent\", I should be careful about destructive actions.\nI'll first check the contents of the `data/会议测试/` directory to see what files are there.", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\",\n \"entries\": [\n {\n \"name\": \"meetings\",\n \"path\": \"data\\\\会议测试\\\\meetings\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T10:22:57\"\n },\n {\n \"name\": \"state.json\",\n \"path\": \"data\\\\会议测试\\\\state.json\",\n \"type\": \"file\",\n \"size\": 57940,\n \"modified_at\": \"2026-06-24T10:22:57\"\n },\n {\n \"name\": \"team_ledger.md\",\n \"path\": \"data\\\\会议测试\\\\team_ledger.md\",\n \"type\": \"file\",\n \"size\": 15051,\n \"modified_at\": \"2026-06-24T10:22:57\"\n }\n ]\n}", - "tool_call_id": "chatcmpl-tool-bfeb7b559c00b287", - "created_at": "2026-06-24T11:24:21.057801" - }, - { - "tool_name": "write_file", - "arguments": { - "content": "# 项目台账\n\n(该知识库内容已重置)\n", - "path": "data/会议测试/team_ledger.md" - }, - "thought": "The user wants to \"clear the content\" of the current knowledge base (\"会议测试\").\nLooking at the directory structure of `data/会议测试`:\n- `meetings/` (directory): Likely contains meeting transcripts.\n- `state.json`: Likely contains metadata or state.\n- `team_ledger.md`: The main project ledger.\n\n\"Clearing content\" could mean:\n1. Deleting the files inside the knowledge base.\n2. Emptying the files but keeping them.\n3. Deleting the whole folder and recreating it.\n\nHowever, as an AI agent, I should be careful with destructive operations. I don't have a specific \"clear_knowledge_base\" tool. I have `execute_shell` and `write_file`.\n\nThe safest way to \"clear\" the knowledge base (making it empty/reset) is to:\n1. Clear `team_ledger.md` (overwrite with an empty or minimal header).\n2. Clear `state.json` (overwrite with `{}`).\n3. Delete the files in `meetings/`.\n\nWait, I should ask the user for clarification or just proceed if it's a common request? Usually, \"clear content\" means reset the ledger and meetings.\n\nLet's try to clear the `team_ledger.md` and `state.json` and delete the contents of `meetings`.\n\nWait, I can use `execute_shell` to do this efficiently.\nCommand: `rm -rf data/会议测试/meetings/* && echo \"# 项目台账\" > data/会议测试/team_ledger.md && echo \"{}\" > data/会议测试/state.json` (Assuming a Unix-like shell or Windows if `rm` is available via git bash/etc, but `execute_shell` might be Windows-based given the path `D:\\...`).\n\nOn Windows, `del` and `rmdir` are used.\nActually, I'll do it step by step using `write_file` and `execute_shell`.\n\nStep 1: Overwrite `team_ledger.md` with a fresh header.\nStep 2: Overwrite `state.json` with `{}`.\nStep 3: Delete files in `meetings`.\n\nActually, I'll just tell the user I'm going to reset the ledger and the meeting records for \"会议测试\".\n\nWait, I should check if there's a more \"official\" way. There isn't.\nI will:\n1. Overwrite `data/会议测试/team_ledger.md` with `# 项目台账\\n\\n(已重置)`.\n2. Overwrite `data/会议测试/state.json` with `{}`.\n3. Delete the contents of `data/会议测试/meetings`.\n\nLet's start by overwriting the files.", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"bytes_written\": 46\n}", - "tool_call_id": "chatcmpl-tool-9d6beb0973bc95ea", - "created_at": "2026-06-24T11:24:40.366557" - }, - { - "tool_name": "execute_shell", - "arguments": { - "command": "rm -rf data/会议测试/meetings/* && echo \"{}\" > data/会议测试/state.json" - }, - "thought": "", - "result": "{\n \"success\": false,\n \"command\": \"rm -rf data/会议测试/meetings/* && echo \\\"{}\\\" > data/会议测试/state.json\",\n \"returncode\": 1,\n \"stdout\": \"\",\n \"stderr\": \"����λ�� ��:1 �ַ�: 240\\n+ ... tem.Text.UTF8Encoding]::new(); rm -rf data/�������/meetings/* && echo \\\"{ ...\\n+ ~~\\n��ǡ�&&�����Ǵ˰汾�е���Ч���ָ�����\\n + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException\\n + FullyQualifiedErrorId : InvalidEndOfLine\\n \\n\"\n}", - "tool_call_id": "chatcmpl-tool-bc1abe90377dce4f", - "created_at": "2026-06-24T11:24:42.389532" - }, - { - "tool_name": "run_python", - "arguments": { - "code": "import os\nimport shutil\nimport json\n\nkb_path = r'data\\会议测试'\nmeetings_path = os.path.join(kb_path, 'meetings')\nstate_file = os.path.join(kb_path, 'state.json')\n\ntry:\n # 1. Clear meetings directory\n if os.path.exists(meetings_path):\n for filename in os.listdir(meetings_path):\n file_path = os.path.join(meetings_path, filename)\n try:\n if os.path.isfile(file_path) or os.path.islink(file_path):\n os.unlink(file_path)\n elif os.path.isdir(file_path):\n shutil.rmtree(file_path)\n except Exception as e:\n print(f'Failed to delete {file_path}. Reason: {e}')\n\n # 2. Reset state.json\n with open(state_file, 'w', encoding='utf-8') as f:\n json.dump({}, f)\n\n print(\"Successfully cleared meetings and reset state.json\")\nexcept Exception as e:\n print(f\"Error during cleanup: {e}\")\n" - }, - "thought": "", - "result": "{\n \"success\": true,\n \"returncode\": 0,\n \"stdout\": \"Successfully cleared meetings and reset state.json\\n\",\n \"stderr\": \"\"\n}", - "tool_call_id": "chatcmpl-tool-856a4b8a907b2352", - "created_at": "2026-06-24T11:24:54.125124" - } - ] - } - ] -} \ No newline at end of file diff --git a/agent_memory/sessions/chat_380095ce5521/recent_history.json b/agent_memory/sessions/chat_380095ce5521/recent_history.json deleted file mode 100644 index 3e194f8..0000000 --- a/agent_memory/sessions/chat_380095ce5521/recent_history.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "session_id": "chat_380095ce5521", - "messages": [ - { - "role": "user", - "content": "为啥我的知识库没了?你检查一下呢" - }, - { - "role": "assistant", - "content": "非常抱歉,我深入检查后发现:\n\n虽然 `data/` 目录下确实存在一个名为 **“会议测试”** 的文件夹,但这个文件夹目前是**空的**(里面没有任何文件,也没有项目台账 Markdown)。\n\n**目前的结论是:**\n1. **文件夹结构还在**:系统识别到了“会议测试”这个库。\n2. **内容确实丢失了**:该库下没有存放任何会议记录或项目台账。\n\n**建议下一步操作:**\n* 如果您之前导入过会议,请检查一下原始的转录文件(ASR文本)是否还在您的本地电脑上?如果有,您可以**重新调用导入功能**,我会重新为您生成并维护台账。\n* 如果您记得之前操作过其他知识库,请告诉我名字,我再帮您全局搜索一下。" - } - ], - "max_persisted_turns": 20 -} \ No newline at end of file diff --git a/agent_memory/sessions/chat_380095ce5521/tool_trace.json b/agent_memory/sessions/chat_380095ce5521/tool_trace.json deleted file mode 100644 index 2ce0c07..0000000 --- a/agent_memory/sessions/chat_380095ce5521/tool_trace.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 3, - "active_turn": { - "turn_id": 2, - "started_at": "2026-06-24T11:59:08.318523", - "completed_at": "", - "user_message": "帮我把这个会议添加进去\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_704.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_380095ce5521\\1782273548315_1_transcript_704.md", - "assistant_final": "", - "tool_calls": [] - }, - "turns": [ - { - "turn_id": 1, - "started_at": "2026-06-24T11:58:16.700065", - "completed_at": "2026-06-24T11:58:42.343354", - "user_message": "为啥我的知识库没了?你检查一下呢", - "assistant_final": "非常抱歉,我深入检查后发现:\n\n虽然 `data/` 目录下确实存在一个名为 **“会议测试”** 的文件夹,但这个文件夹目前是**空的**(里面没有任何文件,也没有项目台账 Markdown)。\n\n**目前的结论是:**\n1. **文件夹结构还在**:系统识别到了“会议测试”这个库。\n2. **内容确实丢失了**:该库下没有存放任何会议记录或项目台账。\n\n**建议下一步操作:**\n* 如果您之前导入过会议,请检查一下原始的转录文件(ASR文本)是否还在您的本地电脑上?如果有,您可以**重新调用导入功能**,我会重新为您生成并维护台账。\n* 如果您记得之前操作过其他知识库,请告诉我名字,我再帮您全局搜索一下。", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user is asking \"Why is my knowledge base gone? Can you check it?\"\nThis implies the user expects to see knowledge bases that were previously there, but they are currently missing or they can't find them.\n\nTo investigate this, I should:\n1. List the available knowledge bases using `list_knowledge_bases`.\n2. Check the `data/` directory directly using `list_directory` to see if there are any folders that `list_knowledge_bases` might have missed or if the directory structure is empty.\n\nLet's start by calling `list_knowledge_bases`.", - "result": "{\n \"knowledge_bases\": [],\n \"count\": 0\n}", - "tool_call_id": "chatcmpl-tool-9d0e8831de348787", - "created_at": "2026-06-24T11:58:22.291269" - }, - { - "tool_name": "list_directory", - "arguments": { - "path": "data" - }, - "thought": "", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\",\n \"entries\": [\n {\n \"name\": \"会议测试\",\n \"path\": \"data\\\\会议测试\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T11:57:20\"\n }\n ]\n}", - "tool_call_id": "chatcmpl-tool-82afe91230ca6ba5", - "created_at": "2026-06-24T11:58:23.952764" - }, - { - "tool_name": "list_directory", - "arguments": { - "path": "data/会议测试" - }, - "thought": "The user is asking why their knowledge base is gone.\nI previously called `list_knowledge_bases` which returned an empty list.\nThen I called `list_directory` on `data/` and found one directory: `data\\会议测试`.\nWait, `list_knowledge_bases` returned `{\"knowledge_bases\": [], \"count\": 0}` but `list_directory` on `data/` returned `{\"success\": true, \"path\": \"...\", \"entries\": [{\"name\": \"会议测试\", ...}]}`.\n\nThis is a discrepancy. `list_knowledge_bases` should ideally return what's in `data/`.\nLet's check why `list_knowledge_bases` might have returned empty.\nMaybe `list_knowledge_bases` implementation looks for specific patterns or is bugged, or maybe the environment is different.\nActually, looking at the tool output, `list_knowledge_bases` returned `[]`.\nBut `list_directory` on `data` shows `会议测试`.\n\nI should explain to the user that I found a directory named `会议测试` in the `data` folder, which might be their knowledge base, even though the \"list_knowledge_bases\" command initially didn't show it.\n\nWait, I should verify if `会议测试` is actually a valid knowledge base by trying to query it or looking inside.\nLet's try `query_knowledge` with `knowledge_base_id=\"会议测试\"` to see if it works. Or just list files inside `data/会议测试`.\n\nFirst, I will inform the user what I found.", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\",\n \"entries\": []\n}", - "tool_call_id": "chatcmpl-tool-b0fa76520ddbddb5", - "created_at": "2026-06-24T11:58:36.450296" - }, - { - "tool_name": "list_directory", - "arguments": { - "path": "data/会议测试" - }, - "thought": "", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\",\n \"entries\": []\n}", - "tool_call_id": "chatcmpl-tool-a90dc4853426e28f", - "created_at": "2026-06-24T11:58:37.155216" - } - ] - } - ] -} \ No newline at end of file diff --git a/agent_memory/sessions/chat_4010afc8b71d/recent_history.json b/agent_memory/sessions/chat_4010afc8b71d/recent_history.json deleted file mode 100644 index 9fe728b..0000000 --- a/agent_memory/sessions/chat_4010afc8b71d/recent_history.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "session_id": "chat_4010afc8b71d", - "messages": [ - { - "role": "user", - "content": "帮我将这个会议整理到知识库里\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_704.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_4010afc8b71d\\1782279966209_1_transcript_704.md" - }, - { - "role": "assistant", - "content": "I 检查了当前的知识库列表,发现目前还没有建立任何知识库。\n\n为了能顺利将这次会议内容整理进去,请告诉我:\n1. 你想为这个会议创建一个什么样的**知识库名称**(例如:`研发项目组` 或 `市场部`)?\n2. 或者,如果你已经有现成的知识库,请告知我它的名称。\n\n一旦确定了知识库名称,我就会立即调用导入工具,将 `transcript_704.md` 的内容整理到该知识库的项目台账中。" - } - ], - "max_persisted_turns": 20 -} \ No newline at end of file diff --git a/agent_memory/sessions/chat_4010afc8b71d/tool_trace.json b/agent_memory/sessions/chat_4010afc8b71d/tool_trace.json deleted file mode 100644 index aeb9112..0000000 --- a/agent_memory/sessions/chat_4010afc8b71d/tool_trace.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 3, - "active_turn": { - "turn_id": 2, - "started_at": "2026-06-24T13:46:34.094819", - "completed_at": "", - "user_message": "会议测试", - "assistant_final": "", - "tool_calls": [] - }, - "turns": [ - { - "turn_id": 1, - "started_at": "2026-06-24T13:46:06.228573", - "completed_at": "2026-06-24T13:46:25.086646", - "user_message": "帮我将这个会议整理到知识库里\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_704.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_4010afc8b71d\\1782279966209_1_transcript_704.md", - "assistant_final": "I 检查了当前的知识库列表,发现目前还没有建立任何知识库。\n\n为了能顺利将这次会议内容整理进去,请告诉我:\n1. 你想为这个会议创建一个什么样的**知识库名称**(例如:`研发项目组` 或 `市场部`)?\n2. 或者,如果你已经有现成的知识库,请告知我它的名称。\n\n一旦确定了知识库名称,我就会立即调用导入工具,将 `transcript_704.md` 的内容整理到该知识库的项目台账中。", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user wants to import a meeting transcript into a knowledge base.\nThe transcript file path is provided: `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_4010afc8b71d\\1782279966209_1_transcript_704.md`.\nThe user hasn't specified a `knowledge_base_id`.\nAccording to the system instructions, I should first check if there are any existing knowledge bases.\nIf there is only one knowledge base, the tool `import_meeting_transcript` will automatically use it.\nIf there are multiple, I should ask the user to specify which one.\n\nFirst step: List knowledge bases to see what's available.", - "result": "{\n \"knowledge_bases\": [],\n \"count\": 0\n}", - "tool_call_id": "chatcmpl-tool-a58495f5f3ab062e", - "created_at": "2026-06-24T13:46:12.611470" - } - ] - } - ] -} \ No newline at end of file diff --git a/agent_memory/sessions/chat_8b877198aabf/recent_history.json b/agent_memory/sessions/chat_8b877198aabf/recent_history.json deleted file mode 100644 index 20e6360..0000000 --- a/agent_memory/sessions/chat_8b877198aabf/recent_history.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "session_id": "chat_8b877198aabf", - "messages": [ - { - "role": "user", - "content": "帮我将这个会议创建一个知识库储存\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_710.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_8b877198aabf\\1782281323021_1_transcript_710.md" - }, - { - "role": "assistant", - "content": "已成功为您创建知识库 `meeting_710` 并完成了会议内容的导入。\n\n**处理结果:**\n- **台账路径**:`data/meeting_710/team_ledger.md`\n- **会议摘要**:本次会议主要围绕云桌面业务的渠道赋能、AI 产品转型、售后体系建设、产品方案完整性及销售售前协作五个核心维度进行了深度复盘。\n- **统计数据**:\n - 识别到项目:5 个\n - 待办事项 (Actions):4 项\n - 风险点 (Risks):2 项\n - 追踪项 (Follow-ups):4 项\n\n您现在可以针对该知识库询问具体的项目进度、待办事项或风险详情。例如:“查询 meeting_710 中关于 AI 转型的待办事项”。" - }, - { - "role": "user", - "content": "我现在有哪些代办事项?" - }, - { - "role": "assistant", - "content": "在 `meeting_710` 知识库中,共识别到以下 **4 项** 待办事项:\n\n| 事项 | 责任对象 | 当前状态 | 下一步动作 | 所属项目 |\n| :--- | :--- | :--- | :--- | :--- |\n| **职责划分细化** | 销售/售前管理层 | 待跟进 | 组织销售与售前座谈会,明确职责边界 | 销售与售前协作流程优化 |\n| **联络官人选评估** | 售前团队 | 待跟进 | 评估合适人员并提交建议 | 省代赋能与渠道管理 |\n| **项目分级制度建立** | 售后团队 | 进行中 | 明确重点与非重点项目的服务边界 | 售后服务体系建设 |\n| **Next X 市场机会研究** | 产品/销售团队 | 待跟进 | 提交 Next X 怎么卖及市场机会报告 | AI 云桌面 (智听云/Next X) 研发 |\n\n**台账路径**:`data/meeting_710/team_ledger.md`" - } - ], - "max_persisted_turns": 20 -} \ No newline at end of file diff --git a/agent_memory/sessions/chat_8b877198aabf/tool_trace.json b/agent_memory/sessions/chat_8b877198aabf/tool_trace.json deleted file mode 100644 index c672278..0000000 --- a/agent_memory/sessions/chat_8b877198aabf/tool_trace.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 3, - "active_turn": null, - "turns": [ - { - "turn_id": 1, - "started_at": "2026-06-24T14:08:43.028693", - "completed_at": "2026-06-24T14:11:33.287702", - "user_message": "帮我将这个会议创建一个知识库储存\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_710.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_8b877198aabf\\1782281323021_1_transcript_710.md", - "assistant_final": "已成功为您创建知识库 `meeting_710` 并完成了会议内容的导入。\n\n**处理结果:**\n- **台账路径**:`data/meeting_710/team_ledger.md`\n- **会议摘要**:本次会议主要围绕云桌面业务的渠道赋能、AI 产品转型、售后体系建设、产品方案完整性及销售售前协作五个核心维度进行了深度复盘。\n- **统计数据**:\n - 识别到项目:5 个\n - 待办事项 (Actions):4 项\n - 风险点 (Risks):2 项\n - 追踪项 (Follow-ups):4 项\n\n您现在可以针对该知识库询问具体的项目进度、待办事项或风险详情。例如:“查询 meeting_710 中关于 AI 转型的待办事项”。", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user wants to create a knowledge base and store a meeting transcript in it.\nThe transcript file is located at `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_8b877198aabf\\1782281323021_1_transcript_710.md`.\nThe user hasn't specified a `knowledge_base_id`.\nAccording to the system prompt, I should use `import_meeting_transcript` to import the meeting transcript.\nIf the user hasn't specified a knowledge base, I should probably ask for one or check if there's an existing one.\nHowever, the user said \"帮我将这个会议创建一个知识库储存\" (Help me create a knowledge base to store this meeting). This implies they want a *new* knowledge base or to use an existing one for this.\nSince I cannot \"create\" a directory/knowledge base directly via a tool (except maybe via `execute_shell` or `run_python`, but `import_meeting_transcript` is the primary way to handle transcripts), I should check what knowledge bases already exist first.\n\nWait, `import_meeting_transcript` takes a `knowledge_base_id`. If I provide a new `knowledge_base_id` that doesn't exist, will it create it? The prompt says \"导入不是简单摘抄,而是把“单次会议原文”交给会议整理子 Agent,更新到该知识库唯一的项目台账 Markdown。\" and \"data/ 下的每个子文件夹就是一个知识库\".\nIt doesn't explicitly say `import_meeting_transcript` creates a directory if it doesn't exist, but usually, such agents handle the creation.\n\nLet's first list the existing knowledge bases to see if I should create a new one or if one is appropriate.\nActually, the user's intent is \"create a knowledge base\".\nI will first list the knowledge bases.", - "result": "{\n \"knowledge_bases\": [],\n \"count\": 0\n}", - "tool_call_id": "chatcmpl-tool-a1db44fd96e367e9", - "created_at": "2026-06-24T14:08:56.323674" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_8b877198aabf\\1782281323021_1_transcript_710.md", - "knowledge_base_id": "meeting_710" - }, - "thought": "The user wants to create a knowledge base and store a meeting transcript in it.\nThe transcript file is located at `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_8b877198aabf\\1782281323021_1_transcript_710.md`.\nCurrently, there are no knowledge bases (`list_knowledge_bases` returned an empty list).\n\nTo \"create a knowledge base\", I need to import the transcript. The `import_meeting_transcript` tool takes a `knowledge_base_id`. Since no knowledge base exists, I should probably suggest a name or just use a default one if the tool handles creation. However, looking at the tool definition, `import_meeting_transcript` updates an existing ledger in a folder. If the folder doesn't exist, I might need to create it or the tool might handle it.\n\nWait, the prompt says \"data/ 下的每个子文件夹就是一个知识库\".\nIf I call `import_meeting_transcript` with a new `knowledge_base_id`, the tool should ideally create the directory and the ledger.\n\nLet's try to import this transcript into a new knowledge base named `meeting_710`.\n\nPlan:\n1. Call `import_meeting_transcript` with `file_path='D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_8b877198aabf\\1782281323021_1_transcript_710.md'` and `knowledge_base_id='meeting_710'`.", - "result": "{\n \"team_id\": \"meeting_710\",\n \"knowledge_base_id\": \"meeting_710\",\n \"meeting_id\": \"meeting_7d03c05fe2\",\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\team_ledger.md\",\n \"state_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\state.json\",\n \"summary\": [\n \"本次会议围绕云桌面业务的渠道赋能、AI 产品转型、售后体系建设、产品方案完整性及销售售前协作五个核心维度进行了深度复盘与战略讨论。\",\n \"探讨通过 AI 技术重构云桌面,实现从工具向智能生产力平台的转型。\",\n \"强调加强省代赋能与金牌渠道建设,提升渠道商的打单能力与粘性。\",\n \"提出建立单次付费售后服务体系,解决非省代渠道的售后难题。\",\n \"讨论产品方案的完整性,解决目前软硬件方案“拼凑感”及兼容性问题。\",\n \"要求销售与售前明确职责边界,加强对客户需求的深度洞察与信息闭环。\"\n ],\n \"imported\": true,\n \"counts\": {\n \"projects\": 5,\n \"metrics\": 0,\n \"actions\": 4,\n \"risks\": 2,\n \"completed\": 0,\n \"followups\": 4\n }\n}", - "tool_call_id": "chatcmpl-tool-bfb20102df689f81", - "created_at": "2026-06-24T14:11:28.237042" - } - ] - }, - { - "turn_id": 2, - "started_at": "2026-06-24T14:13:51.654242", - "completed_at": "2026-06-24T14:14:13.274074", - "user_message": "我现在有哪些代办事项?", - "assistant_final": "在 `meeting_710` 知识库中,共识别到以下 **4 项** 待办事项:\n\n| 事项 | 责任对象 | 当前状态 | 下一步动作 | 所属项目 |\n| :--- | :--- | :--- | :--- | :--- |\n| **职责划分细化** | 销售/售前管理层 | 待跟进 | 组织销售与售前座谈会,明确职责边界 | 销售与售前协作流程优化 |\n| **联络官人选评估** | 售前团队 | 待跟进 | 评估合适人员并提交建议 | 省代赋能与渠道管理 |\n| **项目分级制度建立** | 售后团队 | 进行中 | 明确重点与非重点项目的服务边界 | 售后服务体系建设 |\n| **Next X 市场机会研究** | 产品/销售团队 | 待跟进 | 提交 Next X 怎么卖及市场机会报告 | AI 云桌面 (智听云/Next X) 研发 |\n\n**台账路径**:`data/meeting_710/team_ledger.md`", - "tool_calls": [ - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "meeting_710", - "query": "有哪些待办事项?" - }, - "thought": "The user is asking for \"current pending tasks\" (代办事项).\nBased on the previous turn, a knowledge base `meeting_710` was created and populated with a meeting transcript.\nI should use the `query_knowledge` tool to find the pending tasks (actions) in the `meeting_710` knowledge base.\n\nPlan:\n1. Call `query_knowledge` with `knowledge_base_id='meeting_710'` and `query='待办事项'` (or 'actions').\n2. Present the results to the user.", - "result": "{\n \"answer\": \"台账中没有命中明显相关内容。可以换成项目名、负责人、指标名、风险关键词或时间要求再问。\",\n \"matches\": [],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\team_ledger.md\",\n \"team_id\": \"meeting_710\",\n \"knowledge_base_id\": \"meeting_710\"\n}", - "tool_call_id": "chatcmpl-tool-ba8f15342305e71d", - "created_at": "2026-06-24T14:13:55.918773" - }, - { - "tool_name": "read_file", - "arguments": { - "path": "data/meeting_710/team_ledger.md" - }, - "thought": "The user is asking for \"pending tasks\" (待办事项).\nThe previous tool call `query_knowledge` with the query \"有哪些待办事项?\" returned no matches.\nHowever, the previous model response (which I should treat as a successful summary of the import) stated:\n\"统计数据:\n - 识别到项目:5 个\n - 待办事项 (Actions):4 项\n - 风险点 (Risks):2 项\n - 追踪项 (Follow-ups):4 项\"\n\nThis suggests that the information *is* in the ledger, but the query \"有哪些待办事项?\" might have been too generic for the `query_knowledge` tool's internal retrieval logic (which seems to rely on keyword matching or specific semantic hits).\n\nSince the tool failed to find them with a generic query, I should try to be more specific or perhaps try to read the ledger directly to see what's in there, or try a different query like \"列出所有待办事项\" or \"Action items\".\n\nWait, looking at the tool output, `query_knowledge` is designed to query the ledger. If it says \"no matches\", it means the specific keyword \"待办事项\" might not be the exact way it's indexed or it needs more context.\n\nLet's try to use `read_file` on the `ledger_path` provided in the tool output to see the actual content, so I can answer the user directly and understand why the query failed.\n\nThe ledger path is: `D:\\github_project\\my_code\\meeting_knowledge\\data\\meeting_710\\team_ledger.md`.", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\team_ledger.md\",\n \"content\": \"---\\nknowledge_base_id: meeting_710\\nteam_id: meeting_710\\ndoc_type: meeting_project_ledger\\nlast_meeting_date: 2026-06-24\\nlast_updated: 2026-06-24\\nversion: 1\\nsource_meeting_id: meeting_7d03c05fe2\\n---\\n\\n# meeting_710 会议知识台账\\n\\n## 1. 当前总览\\n\\n- 当前维护项目数:5\\n- 最近一次会议:2026-06-24\\n- 最近会议摘要:本次会议围绕云桌面业务的渠道赋能、AI 产品转型、售后体系建设、产品方案完整性及销售售前协作五个核心维度进行了深度复盘与战略讨论。;探讨通过 AI 技术重构云桌面,实现从工具向智能生产力平台的转型。;强调加强省代赋能与金牌渠道建设,提升渠道商的打单能力与粘性。\\n\\n## 2. 项目索引\\n\\n| 项目 | 当前状态 | 最近提及 | 最新更新 |\\n|---|---|---|---|\\n| 销售与售前协作流程优化 | 推进中 | 2026-06-24 | 明确销售、售前、售后在项目中的职责边界,优化报价与配置流程,提升信息传递效率。 |\\n| 省代赋能与渠道管理 | 推进中 | 2026-06-24 | 通过定期培训、建立金牌渠道及加强销售对渠道的“温度”管理,提升省代的打单能力和品牌感知。 |\\n| 售后服务体系建设 | 推进中 | 2026-06-24 | 建立标准化的售后流程,通过单次付费服务解决非省代渠道的售后难题,并利用 AI 辅助运维。 |\\n| 产品方案完整性与兼容性优化 | 阻塞 | 2026-06-24 | 解决目前软硬件方案“拼凑感”强、品牌不统一以及特定外设(如U盾、写字板)兼容性差的问题。 |\\n| AI 云桌面 (智听云/Next X) 研发 | 推进中 | 2026-06-24 | 将云桌面从单一工具升级为智能生产力平台,结合 AI 实现资源管控、安全及智能化应用。 |\\n\\n## 3. 项目详情\\n\\n### 3.1 销售与售前协作流程优化\\n\\n- 当前状态:推进中\\n- 最近提及:2026-06-24\\n- 最新更新:明确销售、售前、售后在项目中的职责边界,优化报价与配置流程,提升信息传递效率。\\n- 项目说明:明确销售、售前、售后在项目中的职责边界,优化报价与配置流程,提升信息传递效率。\\n- 检索关键词:职责划分、协作、配置器、信息闭环\\n\\n#### 指标\\n\\n| 指标 | 当前值 | 目标 | 状态 | 趋势 | 备注 |\\n|---|---|---|---|---|---|\\n| 暂无 | | | | | |\\n\\n#### 待办\\n\\n| 事项 | 责任对象 | 截止时间 | 状态 | 下一步 |\\n|---|---|---|---|---|\\n| 职责划分细化 | 销售/售前管理层 | | 待跟进 | 组织销售与售前座谈会,明确职责边界 |\\n\\n#### 风险\\n\\n| 风险/问题 | 当前状态 | 影响 | 责任对象 | 处理动作 |\\n|---|---|---|---|---|\\n| 暂无 | | | | |\\n\\n#### 已完成\\n\\n- 暂无。\\n\\n#### 决策\\n\\n- 推行扁平化支撑,销售、售前、售后建立支撑群实现信息互通\\n- 要求销售在重要客户沟通后第一时间进行信息反馈\\n\\n#### 下一步\\n\\n- 细化销售与售前的工作职责划分,减少冲突\\n- 优化配置器与报价申请流程,降低售前工作量\\n- 职责划分细化\\n\\n#### 更新历史\\n\\n- 2026-06-24 | 推进中 | 明确销售、售前、售后在项目中的职责边界,优化报价与配置流程,提升信息传递效率。\\n\\n### 3.2 省代赋能与渠道管理\\n\\n- 当前状态:推进中\\n- 最近提及:2026-06-24\\n- 最新更新:通过定期培训、建立金牌渠道及加强销售对渠道的“温度”管理,提升省代的打单能力和品牌感知。\\n- 项目说明:通过定期培训、建立金牌渠道及加强销售对渠道的“温度”管理,提升省代的打单能力和品牌感知。\\n- 检索关键词:省代、金牌渠道、赋能、联络官\\n\\n#### 指标\\n\\n| 指标 | 当前值 | 目标 | 状态 | 趋势 | 备注 |\\n|---|---|---|---|---|---|\\n| 暂无 | | | | | |\\n\\n#### 待办\\n\\n| 事项 | 责任对象 | 截止时间 | 状态 | 下一步 |\\n|---|---|---|---|---|\\n| 联络官人选评估 | 售前团队 | | 待跟进 | 评估合适人员并提交建议 |\\n\\n#### 风险\\n\\n| 风险/问题 | 当前状态 | 影响 | 责任对象 | 处理动作 |\\n|---|---|---|---|---|\\n| 暂无 | | | | |\\n\\n#### 已完成\\n\\n- 暂无。\\n\\n#### 决策\\n\\n- 考虑在特殊区域重新设立“联络官”角色以收集商机\\n- 通过发展金牌渠道来建立省代的后备力量,以便汰换配合度低的渠道\\n\\n#### 下一步\\n\\n- 售前人员评估是否有合适的人选担任联络官\\n- 销售需加强对省代负责人的“有温度”的回访与沟通\\n- 联络官人选评估\\n\\n#### 更新历史\\n\\n- 2026-06-24 | 推进中 | 通过定期培训、建立金牌渠道及加强销售对渠道的“温度”管理,提升省代的打单能力和品牌感知。\\n\\n### 3.3 售后服务体系建设\\n\\n- 当前状态:推进中\\n- 最近提及:2026-06-24\\n- 最新更新:建立标准化的售后流程,通过单次付费服务解决非省代渠道的售后难题,并利用 AI 辅助运维。\\n- 项目说明:建立标准化的售后流程,通过单次付费服务解决非省代渠道的售后难题,并利用 AI 辅助运维。\\n- 检索关键词:售后、单次付费、AI 运维、故障处理\\n\\n#### 指标\\n\\n| 指标 | 当前值 | 目标 | 状态 | 趋势 | 备注 |\\n|---|---|---|---|---|---|\\n| 暂无 | | | | | |\\n\\n#### 待办\\n\\n| 事项 | 责任对象 | 截止时间 | 状态 | 下一步 |\\n|---|---|---|---|---|\\n| 项目分级制度建立 | 售后团队 | | 进行中 | 明确重点与非重点项目的服务边界 |\\n\\n#### 风险\\n\\n| 风险/问题 | 当前状态 | 影响 | 责任对象 | 处理动作 |\\n|---|---|---|---|---|\\n| 暂无 | | | | |\\n\\n#### 已完成\\n\\n- 暂无。\\n\\n#### 决策\\n\\n- 建立单次付费的服务报价体系,针对非省代渠道提供技术支持\\n- 建立项目分级制度,确保重点项目的服务质量\\n\\n#### 下一步\\n\\n- 利用 AI 助手实现运维报告、巡检报告的自动化生成\\n- 完善售后技术知识库并推广至省代工程师\\n- 项目分级制度建立\\n\\n#### 更新历史\\n\\n- 2026-06-24 | 推进中 | 建立标准化的售后流程,通过单次付费服务解决非省代渠道的售后难题,并利用 AI 辅助运维。\\n\\n### 3.4 产品方案完整性与兼容性优化\\n\\n- 当前状态:阻塞\\n- 最近提及:2026-06-24\\n- 最新更新:解决目前软硬件方案“拼凑感”强、品牌不统一以及特定外设(如U盾、写字板)兼容性差的问题。\\n- 项目说明:解决目前软硬件方案“拼凑感”强、品牌不统一以及特定外设(如U盾、写字板)兼容性差的问题。\\n- 检索关键词:兼容性、方案集成、品牌统一、外设\\n\\n#### 指标\\n\\n| 指标 | 当前值 | 目标 | 状态 | 趋势 | 备注 |\\n|---|---|---|---|---|---|\\n| 暂无 | | | | | |\\n\\n#### 待办\\n\\n| 事项 | 责任对象 | 截止时间 | 状态 | 下一步 |\\n|---|---|---|---|---|\\n| 暂无 | | | | |\\n\\n#### 风险\\n\\n| 风险/问题 | 当前状态 | 影响 | 责任对象 | 处理动作 |\\n|---|---|---|---|---|\\n| 硬件价格波动风险 | 关注中 | PCB 价格暴涨导致报价体系难以维护 | 供应链/产品团队 | 建立动态价格同步机制 |\\n| 外设兼容性问题 | 阻塞 | 金融行业 U 盾、教育行业写字板无法使用导致项目验收难 | 研发团队 | 进行深度定制开发 |\\n\\n#### 已完成\\n\\n- 暂无。\\n\\n#### 决策\\n\\n- 暂无。\\n\\n#### 下一步\\n\\n- 暂无。\\n\\n#### 更新历史\\n\\n- 2026-06-24 | 阻塞 | 解决目前软硬件方案“拼凑感”强、品牌不统一以及特定外设(如U盾、写字板)兼容性差的问题。\\n\\n### 3.5 AI 云桌面 (智听云/Next X) 研发\\n\\n- 当前状态:推进中\\n- 最近提及:2026-06-24\\n- 最新更新:将云桌面从单一工具升级为智能生产力平台,结合 AI 实现资源管控、安全及智能化应用。\\n- 项目说明:将云桌面从单一工具升级为智能生产力平台,结合 AI 实现资源管控、安全及智能化应用。\\n- 检索关键词:AI、智听云、Next X、智能化\\n\\n#### 指标\\n\\n| 指标 | 当前值 | 目标 | 状态 | 趋势 | 备注 |\\n|---|---|---|---|---|---|\\n| 暂无 | | | | | |\\n\\n#### 待办\\n\\n| 事项 | 责任对象 | 截止时间 | 状态 | 下一步 |\\n|---|---|---|---|---|\\n| Next X 市场机会研究 | 产品/销售团队 | | 待跟进 | 提交 Next X 怎么卖及市场机会报告 |\\n\\n#### 风险\\n\\n| 风险/问题 | 当前状态 | 影响 | 责任对象 | 处理动作 |\\n|---|---|---|---|---|\\n| 暂无 | | | | |\\n\\n#### 已完成\\n\\n- 暂无。\\n\\n#### 决策\\n\\n- 研发团队全面引入 AI Coding 工具以提升代码产出效率\\n- 产品经理需从“管理”转向“Farmer”模式,深入一线洞察真实需求\\n\\n#### 下一步\\n\\n- 研究 Next X 的市场机会、卖点及落地场景\\n- 研究下一代 VDI 与 AI 结合的具体形态\\n- Next X 市场机会研究\\n\\n#### 更新历史\\n\\n- 2026-06-24 | 推进中 | 将云桌面从单一工具升级为智能生产力平台,结合 AI 实现资源管控、安全及智能化应用。\\n\\n## 4. 会议导入记录\\n\\n| 日期 | 标题 | meeting_id | 来源 |\\n|---|---|---|---|\\n| 2026-06-24 | 汇智云桌面业务复盘及 AI 转型专题会议 | meeting_7d03c05fe2 | D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_8b877198aabf\\\\1782281323021_1_transcript_710.md |\\n\"\n}", - "tool_call_id": "chatcmpl-tool-880851824c530921", - "created_at": "2026-06-24T14:14:06.011376" - } - ] - } - ] -} \ No newline at end of file diff --git a/agent_memory/sessions/cli_default/recent_history.json b/agent_memory/sessions/cli_default/recent_history.json deleted file mode 100644 index 57deb8e..0000000 --- a/agent_memory/sessions/cli_default/recent_history.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "session_id": "cli_default", - "messages": [ - { - "role": "user", - "content": "测试测试测试" - }, - { - "role": "assistant", - "content": "系统正常运行 ✅\n\n目前 `data/` 下已有 **1 个知识库**:\n- 📁 **会议测试**(`data\\会议测试`)\n\n我可以帮你做以下事情:\n\n| 功能 | 说明 |\n|------|------|\n| 📥 导入会议转录 | 传入 ASR 转录文件,自动抽取指标、待办、风险,更新周会台账 |\n| 🔍 查询知识库 | 查指标、待办、风险、完成情况、追踪项等 |\n| 📋 列知识库列表 | 查看所有可用的知识库 |\n| 📂 文件浏览 | 查看工作区文件结构 |\n\n有什么需要我帮你处理的吗?比如导入一份会议记录,或者查询某个台账内容? 😊" - }, - { - "role": "user", - "content": "测试测试" - }, - { - "role": "assistant", - "content": "收到,测试通过!✅\n\n目前我已准备就绪。如果你想开始正式使用,可以尝试:\n\n1. **导入数据**:`import_meeting_transcript(file_path=\"path/to/your/asr.txt\", knowledge_base_id=\"会议测试\")`\n2. **查询内容**:`query_knowledge(query=\"最近有哪些待办事项?\", knowledge_base_id=\"会议测试\")`\n\n请随时下达指令。 😊" - } - ], - "max_persisted_turns": 20 -} \ No newline at end of file diff --git a/agent_memory/sessions/cli_default/tool_trace.json b/agent_memory/sessions/cli_default/tool_trace.json deleted file mode 100644 index 2c85402..0000000 --- a/agent_memory/sessions/cli_default/tool_trace.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 7, - "active_turn": null, - "turns": [ - { - "turn_id": 1, - "started_at": "2026-06-23T17:18:38.118377", - "completed_at": "2026-06-23T17:18:42.122584", - "user_message": "测试测试测试", - "assistant_final": "大模型调用失败:Connection error.\n当前 MODEL_NAME='deepseek-v4-flash', OPENAI_BASE_URL=https://api.openmodel.app/v1。", - "tool_calls": [] - }, - { - "turn_id": 2, - "started_at": "2026-06-23T17:19:58.153667", - "completed_at": "2026-06-23T17:20:00.194734", - "user_message": "测试测试测试", - "assistant_final": "大模型调用失败:Error code: 404 - {'success': False, 'data': None, 'error': {'code': 'NOT_FOUND', 'msg': 'route not found'}}\n当前 MODEL_NAME='deepseek-v4-flash', OPENAI_BASE_URL=https://api.openmodel.ai/v1/responses。", - "tool_calls": [] - }, - { - "turn_id": 3, - "started_at": "2026-06-23T17:20:21.992077", - "completed_at": "2026-06-23T17:20:24.667988", - "user_message": "测试测试测试", - "assistant_final": "大模型调用失败:Error code: 404 - {'success': False, 'data': None, 'error': {'code': 'NOT_FOUND', 'msg': 'route not found'}}\n当前 MODEL_NAME='deepseek-v4-flash', OPENAI_BASE_URL=https://api.openmodel.ai/v1。", - "tool_calls": [] - }, - { - "turn_id": 4, - "started_at": "2026-06-23T17:27:42.969133", - "completed_at": "2026-06-23T17:27:51.053781", - "user_message": "测试测试测试", - "assistant_final": "系统正常运行 ✅\n\n目前 `data/` 下已有 **1 个知识库**:\n- 📁 **会议测试**(`data\\会议测试`)\n\n我可以帮你做以下事情:\n\n| 功能 | 说明 |\n|------|------|\n| 📥 导入会议转录 | 传入 ASR 转录文件,自动抽取指标、待办、风险,更新周会台账 |\n| 🔍 查询知识库 | 查指标、待办、风险、完成情况、追踪项等 |\n| 📋 列知识库列表 | 查看所有可用的知识库 |\n| 📂 文件浏览 | 查看工作区文件结构 |\n\n有什么需要我帮你处理的吗?比如导入一份会议记录,或者查询某个台账内容? 😊", - "tool_calls": [ - { - "tool_name": "list_directory", - "arguments": { - "path": "data" - }, - "thought": "用户说\"测试测试测试\",这看起来像是测试对话。我需要先看看当前工作区的状态,了解 data/ 下有哪些知识库。让我先看看目录结构。", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\",\n \"entries\": [\n {\n \"name\": \"会议测试\",\n \"path\": \"data\\\\会议测试\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-23T16:33:42\"\n }\n ]\n}", - "tool_call_id": "call_4d8ebe0a5b8c4d2baab83c46", - "created_at": "2026-06-23T17:27:47.410215" - } - ] - }, - { - "turn_id": 6, - "started_at": "2026-06-23T17:29:58.459992", - "completed_at": "2026-06-23T17:30:05.543550", - "user_message": "测试测试", - "assistant_final": "收到,测试通过!✅\n\n目前我已准备就绪。如果你想开始正式使用,可以尝试:\n\n1. **导入数据**:`import_meeting_transcript(file_path=\"path/to/your/asr.txt\", knowledge_base_id=\"会议测试\")`\n2. **查询内容**:`query_knowledge(query=\"最近有哪些待办事项?\", knowledge_base_id=\"会议测试\")`\n\n请随时下达指令。 😊", - "tool_calls": [] - } - ] -} \ No newline at end of file diff --git a/agent_memory/sessions/default/recent_history.json b/agent_memory/sessions/default/recent_history.json deleted file mode 100644 index 40d4a63..0000000 --- a/agent_memory/sessions/default/recent_history.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "session_id": "default", - "messages": [ - { - "role": "user", - "content": "帮我看看最近都开了哪些会?" - }, - { - "role": "assistant", - "content": "根据“会议测试”知识库的台账记录,最近的一次会议信息如下:\n\n* **会议日期**:2026-06-23 (注:台账中显示的最近日期为 06-23,但关联的转录文件日期为 06-11)\n* **会议主题/来源**:文件会议 06-11 15_52\n* **关键内容摘要**:\n * **指标**:弱光指标为 0.51(目标 3000),状态为达标。\n * **待办**:有一项由“运维”负责的追踪项,时限为“今天”。\n * **风险/已完成**:各抽取到 1 条相关线索。\n\n**台账路径**:`data\\会议测试\\team_ledger.md`" - }, - { - "role": "user", - "content": "不对吧,我明明记得开了不下3次会了" - }, - { - "role": "assistant", - "content": "抱歉,刚才的回答确实不全面。通过查看完整的台账记录,我发现您确实开了多次会。\n\n在“会议测试”知识库中,最近导入了 **5 次** 会议记录,具体如下:\n\n| 会议日期 | 会议 ID (部分) | 来源文件 |\n| :--- | :--- | :--- |\n| 2026-06-23 | `meeting_b3e96c3ab0` | `transcript_704.md` |\n| 2026-06-23 | `meeting_f7a0963764` | `transcript_710.md` |\n| 2026-06-23 | `meeting_71c6a8ce1b` | `transcript_711.md` |\n| 2026-06-23 | `meeting_9b9a7e718a` | `transcript_712.md` |\n| 2026-06-23 | `meeting_f4029f272b` | `文件会议 06-11 15_52-Transcript.md` |\n\n**台账路径**:`data\\会议测试\\team_ledger.md`\n**发现问题**:由于这些会议的导入日期在台账中都标注为 `2026-06-23`,导致查询时未能第一时间区分它们的实际发生顺序。如果您需要了解其中某一次会议的具体内容,请告诉我。" - }, - { - "role": "user", - "content": "刚刚我们聊什么来着?" - }, - { - "role": "assistant", - "content": "我们刚才在讨论**“会议测试”知识库中最近的会议记录**。\n\n具体过程如下:\n1. **您询问**最近开了哪些会。\n2. **我最初只提供了一个**最近会议的摘要,但由于台账记录的原因,信息不够全面。\n3. **您指出**应该开了不止 3 次会。\n4. **我重新检索了完整的台账**,为您列出了该知识库中最近的 **5 次会议记录**(日期均显示为 2026-06-23,包含不同的转录文件)。\n\n如果您想深入了解其中某次会议的指标、待办或风险,可以随时告诉我。" - }, - { - "role": "user", - "content": "用你的websearch工具帮我检索一下codex的重置机会,重置的是一周的用量还是5小时的" - }, - { - "role": "assistant", - "content": "抱歉,我并没有内置的 Web Search(网页搜索)工具。\n\n作为“会议知识库维护 Agent”,我的功能范围主要集中在:\n1. **管理和查询“周会经营台账”**(指标、待办、风险、追踪项等)。\n2. **导入会议转录文本**并将其结构化到知识库中。\n\n如果您提到的“codex 的重置机会”是在之前的会议中讨论过的内容,您可以告诉我,我会立即在知识库中为您检索相关的会议记录。如果这是关于外部软件或服务的通用问题,建议您直接使用搜索引擎查询。" - }, - { - "role": "user", - "content": "你检查一下你现在拥有的工具" - }, - { - "role": "assistant", - "content": "我检查了当前系统分配给我的工具列表,我确实**没有**内置的网页搜索(Web Search)工具。\n\n我目前拥有的工具及其功能如下:\n\n### 1. 核心业务工具(用于维护会议知识库)\n* **`import_meeting_transcript`**: 将会议 ASR 转录文本导入知识库,并提取指标、待办、风险等。\n* **`query_knowledge`**: 查询知识库中的指标、待办、风险、完成事项和追踪项。\n* **`list_knowledge_bases`**: 列出当前所有的知识库(`data/` 下的文件夹)。\n\n### 2. 文件与系统操作工具\n* **`list_directory`**: 查看目录下的文件和子目录。\n* **`read_file`**: 读取文本文件内容。\n* **`write_file`**: 写入或修改文本文件。\n* **`search_files`**: 在工作区内按文件名模式搜索文件。\n* **`execute_shell`**: 执行 shell 命令进行环境检查或只读操作。\n* **`run_python`**: 运行 Python 代码进行数据处理或逻辑计算。\n\n### 3. 辅助工具\n* **`current_time`**: 获取当前系统时间。\n* **`tool_trace_query`**: 回看我之前的工具调用记录。\n\n**结论**:我的能力边界被设定在**管理和查询您提供的会议知识库**。如果您想了解关于 \"codex\" 的信息,除非它之前在会议中被提及并记录到了台账里,否则我无法通过外部互联网获取。" - }, - { - "role": "user", - "content": "好吧,还真的没有,是我记错了" - }, - { - "role": "assistant", - "content": "没关系的,这很正常!\n\n如果您之后需要查询**会议记录里的具体细节**(比如某个项目的进展、谁负责什么待办、或者某个指标的变动),或者需要**导入新的会议转录文件**,随时叫我就好。\n\n目前我们正在处理“会议测试”这个知识库,有什么我可以帮您的吗?" - } - ], - "max_persisted_turns": 20 -} \ No newline at end of file diff --git a/agent_memory/sessions/default/tool_trace.json b/agent_memory/sessions/default/tool_trace.json deleted file mode 100644 index 199f47c..0000000 --- a/agent_memory/sessions/default/tool_trace.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 7, - "active_turn": null, - "turns": [ - { - "turn_id": 1, - "started_at": "2026-06-23T17:03:09.514900", - "completed_at": "2026-06-23T17:03:20.209314", - "user_message": "帮我看看最近都开了哪些会?", - "assistant_final": "根据“会议测试”知识库的台账记录,最近的一次会议信息如下:\n\n* **会议日期**:2026-06-23 (注:台账中显示的最近日期为 06-23,但关联的转录文件日期为 06-11)\n* **会议主题/来源**:文件会议 06-11 15_52\n* **关键内容摘要**:\n * **指标**:弱光指标为 0.51(目标 3000),状态为达标。\n * **待办**:有一项由“运维”负责的追踪项,时限为“今天”。\n * **风险/已完成**:各抽取到 1 条相关线索。\n\n**台账路径**:`data\\会议测试\\team_ledger.md`", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user is asking \"帮我看看最近都开了哪些会?\" (Help me see which meetings were held recently?).\nTo answer this, I need to know which knowledge bases exist and then query them for recent meeting information.\nFirst, I should list the available knowledge bases to see which one to query.", - "result": "{\n \"knowledge_bases\": [\n \"会议测试\"\n ],\n \"count\": 1\n}", - "tool_call_id": "chatcmpl-tool-9f0e8756da899334", - "created_at": "2026-06-23T17:03:13.802731" - }, - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "会议测试", - "query": "最近开会记录,包含会议日期和会议主题" - }, - "thought": "", - "result": "{\n \"answer\": \"最近一次会议:2026-06-23,meeting_id=meeting_f4029f272b\\n来源文件:C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\文件会议 06-11 15_52-Transcript.md\\n\\n摘要:\\n- 抽取到 1 条指标状态。\\n- 抽取到 1 条待跟进事项。\\n- 抽取到 1 条问题/风险线索。\\n- 抽取到 1 条已完成或已处理事项。\\n\\n重点指标:\\n- 弱光: 0.51;目标:3000;状态:达标;来源:\\n\\n下次会议追踪:\\n- # 文件会议 06-11 15:52 会议转录 - 会议时间:2026-06-11 15...;责任:运维;时限:今天\",\n \"matches\": [],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"team_id\": \"会议测试\",\n \"knowledge_base_id\": \"会议测试\",\n \"meeting_id\": \"meeting_f4029f272b\"\n}", - "tool_call_id": "chatcmpl-tool-b32cff8724c5f49d", - "created_at": "2026-06-23T17:03:14.935195" - } - ] - }, - { - "turn_id": 2, - "started_at": "2026-06-23T17:03:36.186036", - "completed_at": "2026-06-23T17:03:56.229783", - "user_message": "不对吧,我明明记得开了不下3次会了", - "assistant_final": "抱歉,刚才的回答确实不全面。通过查看完整的台账记录,我发现您确实开了多次会。\n\n在“会议测试”知识库中,最近导入了 **5 次** 会议记录,具体如下:\n\n| 会议日期 | 会议 ID (部分) | 来源文件 |\n| :--- | :--- | :--- |\n| 2026-06-23 | `meeting_b3e96c3ab0` | `transcript_704.md` |\n| 2026-06-23 | `meeting_f7a0963764` | `transcript_710.md` |\n| 2026-06-23 | `meeting_71c6a8ce1b` | `transcript_711.md` |\n| 2026-06-23 | `meeting_9b9a7e718a` | `transcript_712.md` |\n| 2026-06-23 | `meeting_f4029f272b` | `文件会议 06-11 15_52-Transcript.md` |\n\n**台账路径**:`data\\会议测试\\team_ledger.md`\n**发现问题**:由于这些会议的导入日期在台账中都标注为 `2026-06-23`,导致查询时未能第一时间区分它们的实际发生顺序。如果您需要了解其中某一次会议的具体内容,请告诉我。", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user is questioning the previous answer, stating they remember having more than 3 meetings.\nThe previous answer only showed one recent meeting from the \"会议测试\" knowledge base.\nI need to investigate why only one meeting was shown.\nPossible reasons:\n1. The `query_knowledge` tool might have returned a limited result or only the most recent one.\n2. The knowledge base might actually only contain one meeting's worth of data.\n3. I should check the content of the ledger file directly to see all recorded meetings.\n\nFirst, I will list the knowledge bases to make sure I'm looking at the right one.\nThen, I will read the ledger file `data\\会议测试\\team_ledger.md` to see the full history of meetings recorded in the ledger.\nIf the ledger is empty or only has one meeting, I might need to check if there are other files in the `data/会议测试/` directory that might be meeting transcripts that haven't been imported yet, or if there are other knowledge bases.\n\nStep 1: List knowledge bases to confirm.\nStep 2: Read `data\\会议测试\\team_ledger.md` to see the actual content.\nStep 3: If the ledger is sparse, list the directory `data\\会议测试\\` to see if there are other files.", - "result": "{\n \"knowledge_bases\": [\n \"会议测试\"\n ],\n \"count\": 1\n}", - "tool_call_id": "chatcmpl-tool-b033b6b4e3d2a6dc", - "created_at": "2026-06-23T17:03:43.947709" - }, - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "会议测试", - "query": "最近有哪些会议记录?请列出最近的会议日期和主题。" - }, - "thought": "", - "result": "{\n \"answer\": \"最近一次会议:2026-06-23,meeting_id=meeting_f4029f272b\\n来源文件:C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\文件会议 06-11 15_52-Transcript.md\\n\\n摘要:\\n- 抽取到 1 条指标状态。\\n- 抽取到 1 条待跟进事项。\\n- 抽取到 1 条问题/风险线索。\\n- 抽取到 1 条已完成或已处理事项。\\n\\n重点指标:\\n- 弱光: 0.51;目标:3000;状态:达标;来源:\\n\\n下次会议追踪:\\n- # 文件会议 06-11 15:52 会议转录 - 会议时间:2026-06-11 15...;责任:运维;时限:今天\",\n \"matches\": [],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"team_id\": \"会议测试\",\n \"knowledge_base_id\": \"会议测试\",\n \"meeting_id\": \"meeting_f4029f272b\"\n}", - "tool_call_id": "chatcmpl-tool-84faccd954c72427", - "created_at": "2026-06-23T17:03:45.631070" - }, - { - "tool_name": "read_file", - "arguments": { - "path": "data\\会议测试\\team_ledger.md" - }, - "thought": "", - "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"content\": \"---\\nknowledge_base_id: 会议测试\\nteam_id: 会议测试\\ndoc_type: weekly_meeting_ledger\\nlast_meeting_date: 2026-06-23\\nlast_updated: 2026-06-23\\nversion: 5\\nsource_meeting_id: meeting_f4029f272b\\n---\\n\\n# 会议测试 周会知识台账\\n\\n## 1. 当前重点指标\\n\\n| 指标 | 当前值 | 目标 | 状态 | 趋势 | 来源 |\\n|---|---:|---:|---|---|---|\\n| 满意度 | 02 | | 改善中 | 变差/下降 | |\\n| 弱光 | 0.51 | 3000 | 达标 | 变差/下降 | |\\n\\n## 2. 待跟进事项\\n\\n| 事项 | 责任对象 | 截止时间 | 下一步 | 状态 | 来源 |\\n|---|---|---|---|---|---|\\n| # 会议704 **会议时间**:00:00:01 - 02:08:54 **与会者**... | 运维 | 今天 | # 会议704 **会议时间**:00:00:01 - 02:08:54 **与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4,... | 待跟进 | |\\n| # 会议710 **会议时间**:00:00:00 - 02:42:34 **与会者**... | 运维 | 今天 | # 会议710 **会议时间**:00:00:00 - 02:42:34 **与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4,... | 待跟进 | |\\n| # 会议711 **会议时间**:00:00:12 - 02:09:29 **与会者**... | 运维 | 今天 | # 会议711 **会议时间**:00:00:12 - 02:09:29 **与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4,... | 待跟进 | |\\n| # 会议712 **会议时间**:00:00:01 - 02:01:54 **与会者**... | 运维 | 今天 | # 会议712 **会议时间**:00:00:01 - 02:01:54 **与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4,... | 待跟进 | |\\n| # 文件会议 06-11 15:52 会议转录 - 会议时间:2026-06-11 15... | 运维 | 今天 | # 文件会议 06-11 15:52 会议转录 - 会议时间:2026-06-11 15:52:22 - 主持人:AlanPaine - 导出时间:2026-0... | 待跟进 | |\\n\\n## 3. 问题与风险\\n\\n| 问题 | 影响 | 当前处理 | 来源 |\\n|---|---|---|---|\\n| # 会议704 **会议时间**:00:00:01 - 02:08:54 **与会者**... | 影响指标相关工作 | # 会议704 **会议时间**:00:00:01 - 02:08:54 **与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人... | |\\n| # 会议710 **会议时间**:00:00:00 - 02:42:34 **与会者**... | 影响考核相关工作 | # 会议710 **会议时间**:00:00:00 - 02:42:34 **与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人... | |\\n| # 会议711 **会议时间**:00:00:12 - 02:09:29 **与会者**... | 影响指标相关工作 | # 会议711 **会议时间**:00:00:12 - 02:09:29 **与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人... | |\\n| # 会议712 **会议时间**:00:00:01 - 02:01:54 **与会者**... | 影响考核相关工作 | # 会议712 **会议时间**:00:00:01 - 02:01:54 **与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人... | |\\n| # 文件会议 06-11 15:52 会议转录 - 会议时间:2026-06-11 15... | 影响指标相关工作 | # 文件会议 06-11 15:52 会议转录 - 会议时间:2026-06-11 15:52:22 - 主持人:AlanPaine - 导出时间:2026-06-23 14:54... | |\\n\\n## 4. 已完成事项\\n\\n| 事项 | 状态 | 责任对象 | 来源 |\\n|---|---|---|---|\\n| # 会议704 **会议时间**:00:00:01 - 02:08:54 **与会者**... | 已完成/已处理 | 运维 | |\\n| # 会议710 **会议时间**:00:00:00 - 02:42:34 **与会者**... | 已完成/已处理 | 运维 | |\\n| # 会议711 **会议时间**:00:00:12 - 02:09:29 **与会者**... | 已完成/已处理 | 运维 | |\\n| # 会议712 **会议时间**:00:00:01 - 02:01:54 **与会者**... | 已完成/已处理 | 运维 | |\\n| # 文件会议 06-11 15:52 会议转录 - 会议时间:2026-06-11 15... | 已完成/已处理 | 运维 | |\\n\\n## 5. 下次会议必追踪\\n\\n- # 会议704 **会议时间**:00:00:01 - 02:08:54 **与会者**...;责任:运维;时限:今天\\n- # 会议710 **会议时间**:00:00:00 - 02:42:34 **与会者**...;责任:运维;时限:今天\\n- # 会议711 **会议时间**:00:00:12 - 02:09:29 **与会者**...;责任:运维;时限:今天\\n- # 会议712 **会议时间**:00:00:01 - 02:01:54 **与会者**...;责任:运维;时限:今天\\n- # 文件会议 06-11 15:52 会议转录 - 会议时间:2026-06-11 15...;责任:运维;时限:今天\\n\\n## 6. 会议导入记录\\n\\n| 日期 | meeting_id | 来源 |\\n|---|---|---|\\n| 2026-06-23 | meeting_b3e96c3ab0 | C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_704.md |\\n| 2026-06-23 | meeting_f7a0963764 | C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_710.md |\\n| 2026-06-23 | meeting_71c6a8ce1b | C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_711.md |\\n| 2026-06-23 | meeting_9b9a7e718a | C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_712.md |\\n| 2026-06-23 | meeting_f4029f272b | C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\文件会议 06-11 15_52-Transcript.md |\\n\"\n}", - "tool_call_id": "chatcmpl-tool-8dc12de9248059f9", - "created_at": "2026-06-23T17:03:46.514234" - } - ] - }, - { - "turn_id": 3, - "started_at": "2026-06-23T17:04:03.075090", - "completed_at": "2026-06-23T17:04:13.048504", - "user_message": "刚刚我们聊什么来着?", - "assistant_final": "我们刚才在讨论**“会议测试”知识库中最近的会议记录**。\n\n具体过程如下:\n1. **您询问**最近开了哪些会。\n2. **我最初只提供了一个**最近会议的摘要,但由于台账记录的原因,信息不够全面。\n3. **您指出**应该开了不止 3 次会。\n4. **我重新检索了完整的台账**,为您列出了该知识库中最近的 **5 次会议记录**(日期均显示为 2026-06-23,包含不同的转录文件)。\n\n如果您想深入了解其中某次会议的指标、待办或风险,可以随时告诉我。", - "tool_calls": [] - }, - { - "turn_id": 4, - "started_at": "2026-06-23T17:08:28.914974", - "completed_at": "2026-06-23T17:08:39.378958", - "user_message": "用你的websearch工具帮我检索一下codex的重置机会,重置的是一周的用量还是5小时的", - "assistant_final": "抱歉,我并没有内置的 Web Search(网页搜索)工具。\n\n作为“会议知识库维护 Agent”,我的功能范围主要集中在:\n1. **管理和查询“周会经营台账”**(指标、待办、风险、追踪项等)。\n2. **导入会议转录文本**并将其结构化到知识库中。\n\n如果您提到的“codex 的重置机会”是在之前的会议中讨论过的内容,您可以告诉我,我会立即在知识库中为您检索相关的会议记录。如果这是关于外部软件或服务的通用问题,建议您直接使用搜索引擎查询。", - "tool_calls": [] - }, - { - "turn_id": 5, - "started_at": "2026-06-23T17:08:51.941642", - "completed_at": "2026-06-23T17:09:05.792227", - "user_message": "你检查一下你现在拥有的工具", - "assistant_final": "我检查了当前系统分配给我的工具列表,我确实**没有**内置的网页搜索(Web Search)工具。\n\n我目前拥有的工具及其功能如下:\n\n### 1. 核心业务工具(用于维护会议知识库)\n* **`import_meeting_transcript`**: 将会议 ASR 转录文本导入知识库,并提取指标、待办、风险等。\n* **`query_knowledge`**: 查询知识库中的指标、待办、风险、完成事项和追踪项。\n* **`list_knowledge_bases`**: 列出当前所有的知识库(`data/` 下的文件夹)。\n\n### 2. 文件与系统操作工具\n* **`list_directory`**: 查看目录下的文件和子目录。\n* **`read_file`**: 读取文本文件内容。\n* **`write_file`**: 写入或修改文本文件。\n* **`search_files`**: 在工作区内按文件名模式搜索文件。\n* **`execute_shell`**: 执行 shell 命令进行环境检查或只读操作。\n* **`run_python`**: 运行 Python 代码进行数据处理或逻辑计算。\n\n### 3. 辅助工具\n* **`current_time`**: 获取当前系统时间。\n* **`tool_trace_query`**: 回看我之前的工具调用记录。\n\n**结论**:我的能力边界被设定在**管理和查询您提供的会议知识库**。如果您想了解关于 \"codex\" 的信息,除非它之前在会议中被提及并记录到了台账里,否则我无法通过外部互联网获取。", - "tool_calls": [] - }, - { - "turn_id": 6, - "started_at": "2026-06-23T17:09:19.833983", - "completed_at": "2026-06-23T17:09:25.450002", - "user_message": "好吧,还真的没有,是我记错了", - "assistant_final": "没关系的,这很正常!\n\n如果您之后需要查询**会议记录里的具体细节**(比如某个项目的进展、谁负责什么待办、或者某个指标的变动),或者需要**导入新的会议转录文件**,随时叫我就好。\n\n目前我们正在处理“会议测试”这个知识库,有什么我可以帮您的吗?", - "tool_calls": [] - } - ] -} \ No newline at end of file diff --git a/agent_memory/sessions/home/tool_trace.json b/agent_memory/sessions/home/tool_trace.json deleted file mode 100644 index 180a1ff..0000000 --- a/agent_memory/sessions/home/tool_trace.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 1, - "active_turn": null, - "turns": [] -} \ No newline at end of file diff --git a/agent_memory/sessions/meeting_710/recent_history.json b/agent_memory/sessions/meeting_710/recent_history.json deleted file mode 100644 index 0fa9c6f..0000000 --- a/agent_memory/sessions/meeting_710/recent_history.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "session_id": "meeting_710", - "messages": [ - { - "role": "user", - "content": "帮我查查目前的重点工作内容是什么" - }, - { - "role": "assistant", - "content": "根据当前的会议台账(`meeting_710/team_ledger.md`),目前的重点工作主要集中在以下三个方面:\n\n1. **产品方案优化(当前状态:阻塞)**\n * **核心目标**:解决软硬件方案“拼凑感”强、品牌不统一的问题,并提升特定外设(如U盾、写字板)的兼容性。\n\n2. **销售与售前协作流程优化(进行中)**\n * **关键动作**:细化销售与售前的职责划分以减少冲突;同时优化配置器与报价申请流程,旨在降低售前的工作量。\n\n3. **售后服务体系建设(进行中)**\n * **关键动作**:建立项目分级制度,以确保重点项目的服务质量。\n\n**下一步建议**:\n* 由于“产品方案优化”项目目前处于**阻塞**状态,可能需要针对软硬件集成或外设兼容性问题进行专项讨论。\n* 可以关注“销售与售前协作”中关于“配置器优化”的具体进度。" - }, - { - "role": "user", - "content": "这是新的一个会议,你帮我整理到知识库里\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_711.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782281782706_1_transcript_711.md" - }, - { - "role": "assistant", - "content": "会议转录已成功导入知识库 `meeting_710`。\n\n**更新概况:**\n- **台账路径**:`data/meeting_710/team_ledger.md`\n- **会议核心摘要**:本次会议重点复盘了河南、山东区域的销售情况,讨论了在价格竞争激烈的背景下,如何通过 **AI 转型**(产品智能化与内部生产力智能化)、**行业场景化细分**(如教育、医疗)以及**优化内部响应流程**(解决测试机申请、研发响应及售后验收问题)来提升竞争力。\n- **数据统计**:\n - 新增/更新项目:5 个\n - 新增待办事项 (Actions):4 个\n - 新增风险点 (Risks):3 个\n - 新增追踪项 (Follow-ups):4 个\n\n**下一步建议:**\n您可以针对“AI 转型方案”、“区域销售策略”或“内部响应流程优化”等具体维度,通过询问“目前有哪些待办事项?”或“有哪些潜在风险?”来深入了解细节。" - }, - { - "role": "user", - "content": "汇报一下最新的情况" - }, - { - "role": "assistant", - "content": "根据最新的会议复盘(2026-06-24),目前的业务重点已从单纯的“流程优化”转向了 **“AI 转型”** 与 **“行业场景化深耕”**。\n\n以下是各维度的最新进展汇报:\n\n### 1. 核心战略:AI 转型与产品升级\n* **AI 云桌面研发 (进行中)**:战略目标是将云桌面从单一工具升级为“智能生产力平台”。重点在于探索 AI 与终端、数据、算力的深度纳管(如智听云/Next X)。\n* **产品方案优化 (阻塞)**:由于市场同质化严重,目前正处于寻找差异化突破口的阶段。重点转向强化**教育、医疗**等细分场景的差异化方案,并加强**国产化适配**案例的积累。\n\n### 2. 市场与渠道进展\n* **区域销售策略 (进行中)**:\n * **河南区域**:重点在于挖掘友商代理商并培养“金牌渠道”。\n * **山东区域**:侧重提升渠道拓展的精度,建立品牌信任。\n* **应对价格竞争**:针对服务器涨价导致的成本上升,计划通过强化“安全管控(数据不落地)”及提供“微胖”方案来对抗 PC 方案的竞争。\n\n### 3. 内部流程与服务保障\n* **销售与售前协作 (推进中)**:重点解决影响业务效率的痛点,包括**标准化资料更新慢**、**测试机申请周期长**以及**研发 Bug 修复响应慢**的问题。\n* **售后服务体系 (推进中)**:重点解决山东区域(如法院项目)遗留项目验收难的问题,旨在通过提升服务能力来维护品牌价值。\n\n---\n\n**💡 关键观察:**\n目前**“产品方案优化”**仍处于**阻塞**状态,建议下一步重点关注“AI 转型”如何转化为可落地的“行业差异化方案”,以破解同质化竞争。\n\n**您可以继续追问:**\n* “目前有哪些具体的待办事项 (Actions)?”\n* “有哪些潜在的风险 (Risks) 需要关注?”\n* “关于 AI 研发有哪些具体的追踪项 (Follow-ups)?”" - }, - { - "role": "user", - "content": "帮我将新的会议整理进去\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_712.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782283873952_1_transcript_712.md" - }, - { - "role": "assistant", - "content": "会议转录已成功导入知识库 `meeting_710`。\n\n**更新概况:**\n- **台账路径**:`data/meeting_710/team_ledger.md`\n- **会议核心摘要**:本次会议重点复盘了 **6 月财务毛利情况**、**大额项目(合北智算)签约进展**、**AI 数字人产品逻辑**、**云桌面终端纳管方案**以及**无人机业务**的推进情况。\n- **数据统计**:\n - 新增/更新项目:5 个\n - 新增待办事项 (Actions):6 个\n - 新增风险点 (Risks):5 个\n - 新增追踪项 (Follow-ups):6 个\n - 完成事项 (Completed):1 个\n\n**关键动态:**\n1. **财务/业绩**:毛利率稳定在 35%,重点关注“合北智算”项目(约 7680 万)的落地。\n2. **AI 产品线**:明确了 AI 数字人“简单、高频”的商业逻辑;云桌面研发正转向“胖终端纳管”及“财务数字助理”试点。\n3. **新业务**:无人机业务在推进中,但面临采集数据与执法库对接的**合法性风险**。\n\n**下一步建议:**\n您可以针对“无人机业务的合规性风险”或“AI 数字人产品的落地计划”进行更深入的查询。" - }, - { - "role": "user", - "content": "我最近会议的重点内容有哪些?哪些问题比较严重" - }, - { - "role": "assistant", - "content": "通过对近期会议(特别是 2026-06-24 的复盘会议)的梳理,我为您总结了重点内容及当前面临的严重问题:\n\n### 核心重点内容\n1. **业绩与重大项目**:\n * **财务表现**:6 月毛利率稳定在 **35%**。\n * **大单落地**:**“合北智算”项目**(约 7680 万)已完成签约,是近期最重要的业绩支撑。\n2. **AI 转型战略落地**:\n * **产品方向**:确立了 **AI 数字人**“简单、高频”的商业逻辑;**云桌面**正向“胖终端纳管”(如 U 盘启动)及“财务数字助理”试点方向演进。\n3. **业务拓展**:\n * **无人机业务**:正在推进中物联及九龙坡项目。\n * **渠道管理**:重点关注渠道商报价波动及区域人员配置。\n\n### ⚠️ 比较严重的问题与风险\n在最近的讨论中,以下几个问题需要高度关注:\n\n1. **合规性风险(高优先级)**:\n * **无人机业务**:目前在推进项目过程中,**采集的数据如何与执法库对接**存在**合法性风险**。如果不解决合规问题,该业务线的扩张将面临法律障碍。\n2. **管理与预测风险**:\n * **销售预测准确性**:会议强调目前的销售预测存在问题,销售负责人不能仅盯着“财务收款”,必须结合实际业务进度进行更精准的预测,否则会影响整体经营判断。\n3. **技术与产品瓶颈**:\n * **兼容性问题**:终端黑屏等兼容性问题仍需解决。\n * **AI 数据采集**:在 AI 场景下,如何实现高质量、合规的数据采集仍是技术攻关的难点。\n\n**建议关注方向**:\n如果您需要决策支持,建议优先听取关于**“无人机业务合规方案”**或**“AI 财务助理试点进展”**的专项汇报。" - } - ], - "max_persisted_turns": 20 -} \ No newline at end of file diff --git a/agent_memory/sessions/meeting_710/tool_trace.json b/agent_memory/sessions/meeting_710/tool_trace.json deleted file mode 100644 index ac88832..0000000 --- a/agent_memory/sessions/meeting_710/tool_trace.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 8, - "active_turn": null, - "turns": [ - { - "turn_id": 1, - "started_at": "2026-06-24T14:15:24.363881", - "completed_at": "2026-06-24T14:15:40.451527", - "user_message": "帮我查查目前的重点工作内容是什么", - "assistant_final": "根据当前的会议台账(`meeting_710/team_ledger.md`),目前的重点工作主要集中在以下三个方面:\n\n1. **产品方案优化(当前状态:阻塞)**\n * **核心目标**:解决软硬件方案“拼凑感”强、品牌不统一的问题,并提升特定外设(如U盾、写字板)的兼容性。\n\n2. **销售与售前协作流程优化(进行中)**\n * **关键动作**:细化销售与售前的职责划分以减少冲突;同时优化配置器与报价申请流程,旨在降低售前的工作量。\n\n3. **售后服务体系建设(进行中)**\n * **关键动作**:建立项目分级制度,以确保重点项目的服务质量。\n\n**下一步建议**:\n* 由于“产品方案优化”项目目前处于**阻塞**状态,可能需要针对软硬件集成或外设兼容性问题进行专项讨论。\n* 可以关注“销售与售前协作”中关于“配置器优化”的具体进度。", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user is asking to check the current \"key work content\" (重点工作内容).\nI need to query the knowledge base for this information.\nSince the user hasn't specified a `knowledge_base_id`, I should first check if there are any knowledge bases available or if I can just call `query_knowledge` without one.\nAccording to the system prompt: \"用户未指定知识库时,可以省略 knowledge_base_id;如果 data/ 下只有一个知识库,工具会自动使用它。\"\nHowever, it's safer to list knowledge bases first if I want to be sure, or just try to query.\nActually, a better first step is to see what knowledge bases exist so I know which one to query or if I need to ask the user.\nBut if I just call `query_knowledge` with the query \"重点工作内容\", it might work if there's only one.\nLet's try `list_knowledge_bases` first to see what's available.", - "result": "{\n \"knowledge_bases\": [\n \"meeting_710\"\n ],\n \"count\": 1\n}", - "tool_call_id": "chatcmpl-tool-b9f7d02dfc654b2d", - "created_at": "2026-06-24T14:15:30.284205" - }, - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "meeting_710", - "query": "目前的重点工作内容是什么" - }, - "thought": "The user wants to know the current key work contents (\"目前的重点工作内容是什么\").\nI have already listed the knowledge bases and found one: `meeting_710`.\nSince there is only one knowledge base, I can proceed to query it without explicitly specifying the ID, or I can specify it for clarity.\nI will use `query_knowledge` to find the \"重点工作内容\" (key work contents) in the `meeting_710` knowledge base.", - "result": "{\n \"answer\": \"根据当前会议台账,找到这些相关内容:\\n- [下一步] 销售与售前协作流程优化|细化销售与售前的工作职责划分,减少冲突\\n- [待办] 售后服务体系建设|项目分级制度建立|责任:售后团队|截止:|状态:进行中\\n- [项目] 产品方案完整性与兼容性优化|状态:阻塞|更新:解决目前软硬件方案“拼凑感”强、品牌不统一以及特定外设(如U盾、写字板)兼容性差的问题。\\n- [下一步] 销售与售前协作流程优化|优化配置器与报价申请流程,降低售前工作量\\n- [决策] 售后服务体系建设|建立项目分级制度,确保重点项目的服务质量\\n- [会议摘要] 2026-06-24|讨论产品方案的完整性,解决目前软硬件方案“拼凑感”及兼容性问题。\",\n \"matches\": [\n {\n \"type\": \"下一步\",\n \"project\": \"销售与售前协作流程优化\",\n \"display_text\": \"销售与售前协作流程优化|细化销售与售前的工作职责划分,减少冲突\",\n \"search_text\": \"销售与售前协作流程优化;销售与售前协作流程优化;细化销售与售前的工作职责划分,减少冲突\"\n },\n {\n \"type\": \"待办\",\n \"project\": \"售后服务体系建设\",\n \"display_text\": \"售后服务体系建设|项目分级制度建立|责任:售后团队|截止:|状态:进行中\",\n \"search_text\": \"售后服务体系建设;项目分级制度建立;售后团队;进行中;明确重点与非重点项目的服务边界;售后服务体系建设\"\n },\n {\n \"type\": \"项目\",\n \"project\": \"产品方案完整性与兼容性优化\",\n \"display_text\": \"产品方案完整性与兼容性优化|状态:阻塞|更新:解决目前软硬件方案“拼凑感”强、品牌不统一以及特定外设(如U盾、写字板)兼容性差的问题。\",\n \"search_text\": \"产品方案完整性与兼容性优化;产品方案完整性与兼容性优化;阻塞;解决目前软硬件方案“拼凑感”强、品牌不统一以及特定外设(如U盾、写字板)兼容性差的问题。;解决目前软硬件方案“拼凑感”强、品牌不统一以及特定外设(如U盾、写字板)兼容性差的问题。;兼容性 方案集成 品牌统一 外设\"\n },\n {\n \"type\": \"下一步\",\n \"project\": \"销售与售前协作流程优化\",\n \"display_text\": \"销售与售前协作流程优化|优化配置器与报价申请流程,降低售前工作量\",\n \"search_text\": \"销售与售前协作流程优化;销售与售前协作流程优化;优化配置器与报价申请流程,降低售前工作量\"\n },\n {\n \"type\": \"决策\",\n \"project\": \"售后服务体系建设\",\n \"display_text\": \"售后服务体系建设|建立项目分级制度,确保重点项目的服务质量\",\n \"search_text\": \"售后服务体系建设;售后服务体系建设;建立项目分级制度,确保重点项目的服务质量\"\n },\n {\n \"type\": \"会议摘要\",\n \"project\": \"\",\n \"display_text\": \"2026-06-24|讨论产品方案的完整性,解决目前软硬件方案“拼凑感”及兼容性问题。\",\n \"search_text\": \"2026-06-24;讨论产品方案的完整性,解决目前软硬件方案“拼凑感”及兼容性问题。\"\n }\n ],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\team_ledger.md\",\n \"team_id\": \"meeting_710\",\n \"knowledge_base_id\": \"meeting_710\"\n}", - "tool_call_id": "chatcmpl-tool-9cf985245f4c65d2", - "created_at": "2026-06-24T14:15:33.888244" - } - ] - }, - { - "turn_id": 2, - "started_at": "2026-06-24T14:16:22.711828", - "completed_at": "2026-06-24T14:19:02.319474", - "user_message": "这是新的一个会议,你帮我整理到知识库里\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_711.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782281782706_1_transcript_711.md", - "assistant_final": "会议转录已成功导入知识库 `meeting_710`。\n\n**更新概况:**\n- **台账路径**:`data/meeting_710/team_ledger.md`\n- **会议核心摘要**:本次会议重点复盘了河南、山东区域的销售情况,讨论了在价格竞争激烈的背景下,如何通过 **AI 转型**(产品智能化与内部生产力智能化)、**行业场景化细分**(如教育、医疗)以及**优化内部响应流程**(解决测试机申请、研发响应及售后验收问题)来提升竞争力。\n- **数据统计**:\n - 新增/更新项目:5 个\n - 新增待办事项 (Actions):4 个\n - 新增风险点 (Risks):3 个\n - 新增追踪项 (Follow-ups):4 个\n\n**下一步建议:**\n您可以针对“AI 转型方案”、“区域销售策略”或“内部响应流程优化”等具体维度,通过询问“目前有哪些待办事项?”或“有哪些潜在风险?”来深入了解细节。", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user wants to import a new meeting transcript into the knowledge base.\nThe transcript file path is provided: `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782281782706_1_transcript_711.md`.\nThe user mentions \"knowledge base\" but doesn't explicitly name a `knowledge_base_id`.\nHowever, the file path contains `kb_3cc4030350de`. I should check if this matches a known knowledge base or if I can infer it.\nWait, the instructions say: \"If the user doesn't specify a knowledge base, you can omit it; if there's only one in `data/`, the tool will automatically use it.\"\nBut I should first check what knowledge bases exist to be precise, or just try to use the tool with the provided path.\nActually, the user says \"整理到知识库里\" (organize into the knowledge base).\nThe file path suggests it belongs to a specific ID or is just an upload path.\nLet's first list the knowledge bases to see if `kb_3cc4030350de` or something similar exists.\nThen I will call `import_meeting_transcript`.\n\nWait, looking at the file path: `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782281782706_1_transcript_711.md`.\nThe folder `kb_3cc4030350de` might be the `knowledge_base_id`.\nLet's try to list knowledge bases first to be sure.", - "result": "{\n \"knowledge_bases\": [\n \"meeting_710\"\n ],\n \"count\": 1\n}", - "tool_call_id": "chatcmpl-tool-84b57ced84897e62", - "created_at": "2026-06-24T14:16:33.539268" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "agent_memory/uploads/kb_3cc4030350de/1782281782706_1_transcript_711.md", - "knowledge_base_id": "meeting_710" - }, - "thought": "", - "result": "{\n \"team_id\": \"meeting_710\",\n \"knowledge_base_id\": \"meeting_710\",\n \"meeting_id\": \"meeting_6c2f32f573\",\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\team_ledger.md\",\n \"state_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\state.json\",\n \"summary\": [\n \"本次会议对河南、山东区域销售情况进行了深度复盘,重点探讨了在价格竞争与同质化压力下,如何通过 AI 转型、行业场景化细分及优化内部响应流程来提升竞争力。\",\n \"区域销售反馈价格竞争激烈,需通过教育、医疗等细分场景的差异化方案及控标点提升胜率。\",\n \"明确 AI 转型战略:AI 需深度融入产品(智能应用)与内部生产力(智能化知识库/快速问答)。\",\n \"针对服务器涨价导致的 VDI 成本上升,探讨通过强化安全管控(数据不落地)及“微胖”方案应对 PC 方案竞争。\",\n \"要求产品经理转型为“Farmer”模式,深入一线调研对手功能及客户真实需求。\",\n \"强调解决测试机申请周期长、研发响应慢及售后遗留项目验收难等影响品牌的问题。\"\n ],\n \"imported\": true,\n \"counts\": {\n \"projects\": 5,\n \"metrics\": 0,\n \"actions\": 4,\n \"risks\": 3,\n \"completed\": 0,\n \"followups\": 4\n }\n}", - "tool_call_id": "chatcmpl-tool-a46cbbab601b6162", - "created_at": "2026-06-24T14:18:55.758992" - } - ] - }, - { - "turn_id": 3, - "started_at": "2026-06-24T14:19:18.376400", - "completed_at": "2026-06-24T14:19:38.990714", - "user_message": "汇报一下最新的情况", - "assistant_final": "根据最新的会议复盘(2026-06-24),目前的业务重点已从单纯的“流程优化”转向了 **“AI 转型”** 与 **“行业场景化深耕”**。\n\n以下是各维度的最新进展汇报:\n\n### 1. 核心战略:AI 转型与产品升级\n* **AI 云桌面研发 (进行中)**:战略目标是将云桌面从单一工具升级为“智能生产力平台”。重点在于探索 AI 与终端、数据、算力的深度纳管(如智听云/Next X)。\n* **产品方案优化 (阻塞)**:由于市场同质化严重,目前正处于寻找差异化突破口的阶段。重点转向强化**教育、医疗**等细分场景的差异化方案,并加强**国产化适配**案例的积累。\n\n### 2. 市场与渠道进展\n* **区域销售策略 (进行中)**:\n * **河南区域**:重点在于挖掘友商代理商并培养“金牌渠道”。\n * **山东区域**:侧重提升渠道拓展的精度,建立品牌信任。\n* **应对价格竞争**:针对服务器涨价导致的成本上升,计划通过强化“安全管控(数据不落地)”及提供“微胖”方案来对抗 PC 方案的竞争。\n\n### 3. 内部流程与服务保障\n* **销售与售前协作 (推进中)**:重点解决影响业务效率的痛点,包括**标准化资料更新慢**、**测试机申请周期长**以及**研发 Bug 修复响应慢**的问题。\n* **售后服务体系 (推进中)**:重点解决山东区域(如法院项目)遗留项目验收难的问题,旨在通过提升服务能力来维护品牌价值。\n\n---\n\n**💡 关键观察:**\n目前**“产品方案优化”**仍处于**阻塞**状态,建议下一步重点关注“AI 转型”如何转化为可落地的“行业差异化方案”,以破解同质化竞争。\n\n**您可以继续追问:**\n* “目前有哪些具体的待办事项 (Actions)?”\n* “有哪些潜在的风险 (Risks) 需要关注?”\n* “关于 AI 研发有哪些具体的追踪项 (Follow-ups)?”", - "tool_calls": [ - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "meeting_710", - "query": "最近的会议更新和当前项目状态" - }, - "thought": "The user wants a report on the \"latest situation\" (\"汇报一下最新的情况\").\nBased on the previous turn, the user just imported a new meeting transcript (`transcript_711.md`) into the `meeting_710` knowledge base.\nThe \"latest situation\" likely refers to the updates brought by this most recent meeting or the overall current status of the projects in the ledger after this update.\n\nTo provide a comprehensive and accurate answer, I should:\n1. Query the knowledge base to get the most recent updates or the overall current status.\n2. The `query_knowledge` tool is designed for this. I'll ask for \"latest meeting updates\" or \"current project status and key updates\".\n\nWait, looking at the previous response, the model *already* summarized the import. However, a \"report\" usually implies a more structured summary of the current state of affairs (projects, tasks, risks, etc.) following the latest update.\n\nI will call `query_knowledge` with a query like \"最近的会议更新和当前项目状态\" (recent meeting updates and current project status) to ensure I'm pulling the actual content from the ledger.", - "result": "{\n \"answer\": \"最近一次会议:2026-06-24\\n会议标题:汇智云桌面业务复盘及 AI 转型专题会议\\n来源文件:D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\kb_3cc4030350de\\\\1782281782706_1_transcript_711.md\\n\\n会议摘要:\\n- 本次会议对河南、山东区域销售情况进行了深度复盘,重点探讨了在价格竞争与同质化压力下,如何通过 AI 转型、行业场景化细分及优化内部响应流程来提升竞争力。\\n- 区域销售反馈价格竞争激烈,需通过教育、医疗等细分场景的差异化方案及控标点提升胜率。\\n- 明确 AI 转型战略:AI 需深度融入产品(智能应用)与内部生产力(智能化知识库/快速问答)。\\n- 针对服务器涨价导致的 VDI 成本上升,探讨通过强化安全管控(数据不落地)及“微胖”方案应对 PC 方案竞争。\\n- 要求产品经理转型为“Farmer”模式,深入一线调研对手功能及客户真实需求。\\n- 强调解决测试机申请周期长、研发响应慢及售后遗留项目验收难等影响品牌的问题。\\n\\n本次涉及项目:\\n- 销售与售前协作流程优化:状态=推进中;更新=解决销售反馈的标准化资料更新慢、测试机申请周期长以及研发 Bug 修复响应慢的问题。\\n- 省代赋能与渠道管理:状态=推进中;更新=河南区域重点挖掘友商代理商并培养金牌渠道;山东区域需提升渠道拓展精度及建立信任。\\n- 售后服务体系建设:状态=推进中;更新=解决山东区域遗留项目(如法院项目)验收难及服务能力不足的问题,提升品牌价值。\\n- 产品方案完整性与兼容性优化:状态=阻塞;更新=应对同质化竞争,需强化教育、医疗等细分场景的差异化方案及国产化适配案例。\\n- AI 云桌面 (智听云/Next X) 研发:状态=推进中;更新=将云桌面从单一工具升级为智能生产力平台,探索 AI 与终端、数据、算力的深度纳管。\",\n \"matches\": [],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\team_ledger.md\",\n \"team_id\": \"meeting_710\",\n \"knowledge_base_id\": \"meeting_710\",\n \"meeting_id\": \"meeting_6c2f32f573\"\n}", - "tool_call_id": "chatcmpl-tool-b48b27daa6bcfdd3", - "created_at": "2026-06-24T14:19:25.996580" - } - ] - }, - { - "turn_id": 5, - "started_at": "2026-06-24T14:38:43.766467", - "completed_at": "2026-06-24T14:41:36.810382", - "user_message": "帮我继续将这个会议添加进去\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_712.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782283123758_1_transcript_712.md", - "assistant_final": "Agent run cancelled by user.", - "tool_calls": [] - }, - { - "turn_id": 6, - "started_at": "2026-06-24T14:51:13.958233", - "completed_at": "2026-06-24T14:54:26.383304", - "user_message": "帮我将新的会议整理进去\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_712.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782283873952_1_transcript_712.md", - "assistant_final": "会议转录已成功导入知识库 `meeting_710`。\n\n**更新概况:**\n- **台账路径**:`data/meeting_710/team_ledger.md`\n- **会议核心摘要**:本次会议重点复盘了 **6 月财务毛利情况**、**大额项目(合北智算)签约进展**、**AI 数字人产品逻辑**、**云桌面终端纳管方案**以及**无人机业务**的推进情况。\n- **数据统计**:\n - 新增/更新项目:5 个\n - 新增待办事项 (Actions):6 个\n - 新增风险点 (Risks):5 个\n - 新增追踪项 (Follow-ups):6 个\n - 完成事项 (Completed):1 个\n\n**关键动态:**\n1. **财务/业绩**:毛利率稳定在 35%,重点关注“合北智算”项目(约 7680 万)的落地。\n2. **AI 产品线**:明确了 AI 数字人“简单、高频”的商业逻辑;云桌面研发正转向“胖终端纳管”及“财务数字助理”试点。\n3. **新业务**:无人机业务在推进中,但面临采集数据与执法库对接的**合法性风险**。\n\n**下一步建议:**\n您可以针对“无人机业务的合规性风险”或“AI 数字人产品的落地计划”进行更深入的查询。", - "tool_calls": [ - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782283873952_1_transcript_712.md", - "knowledge_base_id": "meeting_710" - }, - "thought": "The user wants to import a new meeting transcript into the knowledge base.\nThe file path is `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\kb_3cc4030350de\\1782283873952_1_transcript_712.md`.\nBased on the previous interaction, the current knowledge base is `meeting_710`.\nI should use the `import_meeting_transcript` tool.\n\nPlan:\n1. Call `import_meeting_transcript` with the provided `file_path` and `knowledge_base_id='meeting_710'`.", - "result": "{\n \"team_id\": \"meeting_710\",\n \"knowledge_base_id\": \"meeting_710\",\n \"meeting_id\": \"meeting_fd54acb19d\",\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\team_ledger.md\",\n \"state_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\state.json\",\n \"summary\": [\n \"本次会议复盘了6月财务毛利、重点项目签约进展、AI数字人产品逻辑、云桌面终端纳管方案及无人机业务的推进情况。\",\n \"财务方面毛利率维持在35%,强调销售负责人需提升预测能力。\",\n \"合北智算项目已完成签约,涉及金额约7680万。\",\n \"AI数字人产品确定“简单、高频”的商业逻辑,面向企业场景落地。\",\n \"云桌面研发聚焦于胖终端纳管(U盘启动)及财务数字助理的试点应用。\",\n \"无人机业务推进中物联及九龙坡项目,需解决采集数据与执法库对接的合法性问题。\"\n ],\n \"imported\": true,\n \"counts\": {\n \"projects\": 5,\n \"metrics\": 4,\n \"actions\": 6,\n \"risks\": 5,\n \"completed\": 1,\n \"followups\": 6\n }\n}", - "tool_call_id": "chatcmpl-tool-9bc2ab14288bc88b", - "created_at": "2026-06-24T14:54:17.433475" - } - ] - }, - { - "turn_id": 7, - "started_at": "2026-06-24T14:59:38.595464", - "completed_at": "2026-06-24T15:00:16.931725", - "user_message": "我最近会议的重点内容有哪些?哪些问题比较严重", - "assistant_final": "通过对近期会议(特别是 2026-06-24 的复盘会议)的梳理,我为您总结了重点内容及当前面临的严重问题:\n\n### 核心重点内容\n1. **业绩与重大项目**:\n * **财务表现**:6 月毛利率稳定在 **35%**。\n * **大单落地**:**“合北智算”项目**(约 7680 万)已完成签约,是近期最重要的业绩支撑。\n2. **AI 转型战略落地**:\n * **产品方向**:确立了 **AI 数字人**“简单、高频”的商业逻辑;**云桌面**正向“胖终端纳管”(如 U 盘启动)及“财务数字助理”试点方向演进。\n3. **业务拓展**:\n * **无人机业务**:正在推进中物联及九龙坡项目。\n * **渠道管理**:重点关注渠道商报价波动及区域人员配置。\n\n### ⚠️ 比较严重的问题与风险\n在最近的讨论中,以下几个问题需要高度关注:\n\n1. **合规性风险(高优先级)**:\n * **无人机业务**:目前在推进项目过程中,**采集的数据如何与执法库对接**存在**合法性风险**。如果不解决合规问题,该业务线的扩张将面临法律障碍。\n2. **管理与预测风险**:\n * **销售预测准确性**:会议强调目前的销售预测存在问题,销售负责人不能仅盯着“财务收款”,必须结合实际业务进度进行更精准的预测,否则会影响整体经营判断。\n3. **技术与产品瓶颈**:\n * **兼容性问题**:终端黑屏等兼容性问题仍需解决。\n * **AI 数据采集**:在 AI 场景下,如何实现高质量、合规的数据采集仍是技术攻关的难点。\n\n**建议关注方向**:\n如果您需要决策支持,建议优先听取关于**“无人机业务合规方案”**或**“AI 财务助理试点进展”**的专项汇报。", - "tool_calls": [ - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "meeting_710", - "query": "总结最近几次会议的重点内容,并特别指出哪些问题比较严重(如阻塞状态、高风险项、或需要紧急处理的待办事项)。" - }, - "thought": "The user is asking for the \"key content of recent meetings\" and \"which problems are serious\".\nI need to query the knowledge base to find recent meeting highlights and identify critical issues (Risks, Blocked projects, or high-priority Actions/Follow-ups).\n\nThe knowledge base ID is `meeting_710` (based on previous turns).\n\nPlan:\n1. Call `query_knowledge` with a query like \"最近会议的重点内容和严重问题\" or \"summary of recent meetings and serious risks/blocked projects\".\n2. Analyze the result to categorize \"key content\" and \"serious problems\".\n3. Formulate the response.", - "result": "{\n \"answer\": \"最近一次会议:2026-06-24\\n会议标题:汇智云桌面业务复盘及 AI 转型专题会议\\n来源文件:D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\kb_3cc4030350de\\\\1782283873952_1_transcript_712.md\\n\\n会议摘要:\\n- 本次会议复盘了6月财务毛利、重点项目签约进展、AI数字人产品逻辑、云桌面终端纳管方案及无人机业务的推进情况。\\n- 财务方面毛利率维持在35%,强调销售负责人需提升预测能力。\\n- 合北智算项目已完成签约,涉及金额约7680万。\\n- AI数字人产品确定“简单、高频”的商业逻辑,面向企业场景落地。\\n- 云桌面研发聚焦于胖终端纳管(U盘启动)及财务数字助理的试点应用。\\n- 无人机业务推进中物联及九龙坡项目,需解决采集数据与执法库对接的合法性问题。\\n\\n本次涉及项目:\\n- 销售与售前协作流程优化:状态=推进中;更新=复盘了6月毛利、定开收入及销售预测情况,强调预测需结合实际而非仅看财务收款。\\n- AI 云桌面 (智听云/Next X) 研发:状态=推进中;更新=推进财务数字助理试点,研究通过U盘启动实现胖终端纳管,并确立数字人产品方向。\\n- 省代赋能与渠道管理:状态=推进中;更新=讨论了渠道商报价波动及云南区域人员入职情况。\\n- 无人机业务:状态=推进中;更新=推进中物联及九龙坡项目,需解决采集数据与执法库对接的合法性问题。\\n- 产品方案完整性与兼容性优化:状态=推进中;更新=解决终端黑屏兼容性问题,并研究AI场景下的数据采集方案。\",\n \"matches\": [],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_710\\\\team_ledger.md\",\n \"team_id\": \"meeting_710\",\n \"knowledge_base_id\": \"meeting_710\",\n \"meeting_id\": \"meeting_fd54acb19d\"\n}", - "tool_call_id": "chatcmpl-tool-8bafccc132a4653c", - "created_at": "2026-06-24T14:59:44.016488" - } - ] - } - ] -} \ No newline at end of file diff --git a/agent_memory/sessions/meeting_knowledge/recent_history.json b/agent_memory/sessions/meeting_knowledge/recent_history.json deleted file mode 100644 index e06c8b6..0000000 --- a/agent_memory/sessions/meeting_knowledge/recent_history.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "session_id": "meeting_knowledge", - "messages": [ - { - "role": "user", - "content": "C:\\Users\\admin\\Downloads\\会议原文 帮我将这个路径下的几个md会议文档整理到知识库里,知识库名字叫会议测试" - }, - { - "role": "assistant", - "content": "在尝试为您整理会议文档时遇到了问题。\n\n我尝试导入 `C:\\Users\\admin\\Downloads\\会议原文` 目录下的文件到“会议测试”知识库,但由于**大模型服务调用超时(Request timed out)**,导致导入任务失败。\n\n**已尝试处理的文件:**\n1. `transcript_704.md` - ❌ 失败 (超时)\n2. `transcript_710.md` - ❌ 失败 (超时)\n\n**后续建议:**\n这通常是由于后端大模型服务器响应过慢或网络波动引起的。您可以:\n1. **稍后重试**:等服务器负载降低后再试。\n2. **检查网络**:确保您的网络环境可以正常访问大模型服务地址。\n\n一旦服务恢复正常,您可以再次指令我进行整理。" - }, - { - "role": "user", - "content": "帮我将这个文档整理到知识库\n\n附加文本文件已保存,可直接读取或导入:\n- huiyi.txt: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782266715613_1_huiyi.txt" - }, - { - "role": "assistant", - "content": "会议文档已成功整理到知识库 **“会议测试”** 中。\n\n**整理结果摘要:**\n- **台账路径**:`D:\\github_project\\my_code\\meeting_knowledge\\data\\会议测试\\team_ledger.md`\n- **更新统计**:\n - 识别到 **6** 个相关项目\n - 提取了 **3** 项关键指标\n - 整理了 **6** 项待办事项 (Actions)\n - 识别了 **3** 项风险 (Risks)\n - 记录了 **6** 项追踪项 (Follow-ups)\n\n**会议核心内容:**\n1. **宽带运维**:讨论了安装量受天气影响的波动情况,需平衡上门量与安装量。\n2. **PCDN问题**:针对PCDN指标恶化,需通过分析学校IP并协同限速解决。\n3. **二级站拆除**:进度顺利,预计4月15日前完成全量拆除及服务费调整。\n4. **商客业务**:市场部需提升业务价值,并于本周汇报招聘及渠道进度。\n5. **活动筹备**:体育文化节方阵人员落实中,目前尚缺9人。\n\n您可以随时通过提问(如“最近有哪些待办?”或“PCDN的问题怎么解决?”)来查询详细信息。" - }, - { - "role": "user", - "content": "看看我的会议内容" - }, - { - "role": "assistant", - "content": "为您查询到知识库“会议测试”中最近一次会议(2026-06-24)的内容总结如下:\n\n### 📅 最近会议概览\n* **日期**:2026-06-24\n* **会议主题**:周例会\n* **核心内容**:本次会议主要围绕运维指标、业务恶化问题、拆除进度、市场业务及活动筹备五个方面展开。\n\n### 🚀 项目进展详情\n| 项目名称 | 当前状态 | 核心进展/关注点 |\n| :--- | :--- | :--- |\n| **宽带安装与运维** | 推进中 | 安装量受天气影响有波动,需平衡上门量与安装量。 |\n| **PCDN与专线业务** | 🔴 **阻塞** | **PCDN指标持续恶化**,问题集中在学校出口带宽占用过大。 |\n| **二级站拆除工程** | 推进中 | 拆除、下电及服务费调整工作正在顺利进行。 |\n| **市场与商客业务** | 推进中 | 商客收入稳步增长,重点在于提升拆迁业务的价值。 |\n| **体育文化节筹备** | 进行中 | 正在筹备第4届文化节,重点是落实方阵人员。 |\n| **客户满意度管理** | 关注中 | 针对测评结果进行反思,要求提升执行力。 |\n\n---\n**💡 提示:**\n如果您想了解具体的**待办事项 (Actions)**、**风险 (Risks)** 或某个项目的**详细追踪项**,请直接告诉我,例如:“*PCDN的问题有哪些具体的解决措施?*” 或 “*列出所有待办事项*”。" - }, - { - "role": "user", - "content": "帮我把这个会议也整理一下\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_704.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782267550230_1_transcript_704.md" - }, - { - "role": "assistant", - "content": "会议文档已成功整理到知识库 **“会议测试”** 中。\n\n**整理结果摘要:**\n- **台账路径**:`D:\\github_project\\my_code\\meeting_knowledge\\data\\会议测试\\team_ledger.md`\n- **更新统计**:\n - 识别到 **4** 个相关项目\n - 整理了 **3** 项待办事项 (Actions)\n - 识别了 **1** 项风险 (Risks)\n - 记录了 **3** 项追踪项 (Follow-ups)\n\n**会议核心内容:**\n1. **定制开发业务**:重点在于6月183万收入目标的冲刺,需通过降低边际成本来增强竞争力。\n2. **AI 算力资源管理**:强调 Token 和 H20 资源管理需从“游击队”模式转向规模化、流程化的专业管理。\n3. **无人机平台研发**:正在推进与集云结合的方案,重点关注违停抓拍功能及互联网接入。\n4. **产品质量与风险**:数字助理产品框架已定;同时需高度关注**云桌面产品**因性能卡顿导致的退货风险,需加强质量与服务建设。\n\n您可以随时询问:“*云桌面有哪些风险?*” 或 “*关于AI算力的待办事项有哪些?*” 来获取更详细的信息。" - }, - { - "role": "user", - "content": "我最近会议内容有哪些?" - }, - { - "role": "assistant", - "content": "为您查询到知识库“会议测试”中最近一次会议的内容总结:\n\n### 📅 最近会议概览\n* **日期**:2026-06-24\n* **会议标题**:周例会\n* **来源文件**:`transcript_704.md`\n\n### 📝 会议核心摘要\n本次会议主要聚焦于业务目标的冲刺、AI 资源的专业化管理以及产品质量风险的防范:\n1. **定制开发业务**:正在全力冲刺 6 月份 **183 万**的收入目标,并着手规划下半年的任务。\n2. **AI 算力与模型管理**:强调 AI 算力(Token 和 H20)的管理需要实现从“游击队”模式向**规模化、流程化**的量化管理转型。\n3. **无人机平台**:正在推进与集云结合的方案,重点开发**违停抓拍**及互联网接入功能。\n4. **产品质量预警**:**云桌面产品**目前存在因性能卡顿导致客户退货的风险,需加强产品质量与服务团队建设。\n5. **数字助理**:产品框架已确定,将通过 AI 实现自动化咨询与配置助手功能。\n\n---\n**💡 提示:**\n如果您需要查看更具体的任务,可以问我:\n* “*云桌面产品有哪些具体的待办或风险?*”\n* “*关于 AI 算力管理有哪些追踪项?*”" - }, - { - "role": "user", - "content": "我上次会议讲的九零工程具体情况怎么样?" - }, - { - "role": "assistant", - "content": "根据台账记录,“九零工程”目前处于**待达标**状态。\n\n具体指标如下:\n* **项目名称**:宽带安装与运维\n* **核心指标**:九零工程转化率 = **87.35%**\n* **目标值**:**90%**\n* **当前进度**:虽然月度来看有提升,但距离 90% 的目标还差一点点。" - } - ], - "max_persisted_turns": 20 -} \ No newline at end of file diff --git a/agent_memory/sessions/meeting_knowledge/tool_trace.json b/agent_memory/sessions/meeting_knowledge/tool_trace.json deleted file mode 100644 index 4ebd746..0000000 --- a/agent_memory/sessions/meeting_knowledge/tool_trace.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "max_turns": 20, - "next_turn_id": 7, - "active_turn": null, - "turns": [ - { - "turn_id": 1, - "started_at": "2026-06-23T18:00:52.875364", - "completed_at": "2026-06-23T18:14:02.747155", - "user_message": "C:\\Users\\admin\\Downloads\\会议原文 帮我将这个路径下的几个md会议文档整理到知识库里,知识库名字叫会议测试", - "assistant_final": "在尝试为您整理会议文档时遇到了问题。\n\n我尝试导入 `C:\\Users\\admin\\Downloads\\会议原文` 目录下的文件到“会议测试”知识库,但由于**大模型服务调用超时(Request timed out)**,导致导入任务失败。\n\n**已尝试处理的文件:**\n1. `transcript_704.md` - ❌ 失败 (超时)\n2. `transcript_710.md` - ❌ 失败 (超时)\n\n**后续建议:**\n这通常是由于后端大模型服务器响应过慢或网络波动引起的。您可以:\n1. **稍后重试**:等服务器负载降低后再试。\n2. **检查网络**:确保您的网络环境可以正常访问大模型服务地址。\n\n一旦服务恢复正常,您可以再次指令我进行整理。", - "tool_calls": [ - { - "tool_name": "execute_shell", - "arguments": { - "command": "dir \"C:\\Users\\admin\\Downloads\\会议原文\"" - }, - "thought": "The user wants to import multiple Markdown files from a specific directory (`C:\\Users\\admin\\Downloads\\会议原文`) into a knowledge base named `会议测试`.\n\nFirst, I need to list the files in that directory to identify the Markdown files.\nThen, for each Markdown file found, I will use the `import_meeting_transcript` tool.\n\nWait, I should check if the directory `C:\\Users\\admin\\Downloads\\会议原文` is accessible or if I should use `list_directory` or `execute_shell` to list files. Since it's a local path on the user's machine, and I'm running in a specific workspace, I need to see if I can access it. However, the tool `import_meeting_transcript` takes a `file_path`.\n\nActually, I'll start by listing the files in that directory using `execute_shell` with `dir` or `ls` (depending on the OS, though the path suggests Windows).\n\nWait, looking at the tools: `list_directory` works within the workspace. The path provided is an absolute path outside the workspace. I'll try to use `execute_shell` to list the files in that directory.\n\nStep 1: List files in `C:\\Users\\admin\\Downloads\\会议原文`.\nStep 2: For each `.md` file, call `import_meeting_transcript`.\n\nLet's start by listing the files.", - "result": "{\n \"success\": true,\n \"command\": \"dir \\\"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\"\",\n \"returncode\": 0,\n \"stdout\": \"\\n\\n 目录: C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\n\\n\\nMode LastWriteTime Length Name \\n---- ------------- ------ ---- \\nd----- 2026/6/23 15:18 json \\n-a---- 2026/6/23 15:05 152716 transcript_704.md \\n-a---- 2026/6/23 15:05 180916 transcript_710.md \\n-a---- 2026/6/23 15:05 138340 transcript_711.md \\n-a---- 2026/6/23 15:05 144053 transcript_712.md \\n-a---- 2026/6/23 14:54 46200 文件会议 06-11 15_52-Transcript.md \\n\\n\\n\",\n \"stderr\": \"\"\n}", - "tool_call_id": "chatcmpl-tool-ad983e74875b7022", - "created_at": "2026-06-23T18:01:03.757525" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md", - "knowledge_base_id": "会议测试" - }, - "thought": "", - "result": "{\n \"success\": false,\n \"error\": \"RuntimeError: 大模型调用失败:Request timed out.\\n当前 MODEL_NAME='gemma-4-26B', OPENAI_BASE_URL=http://10.100.53.199:9527/v1。\",\n \"tool_name\": \"import_meeting_transcript\",\n \"tool_args\": {\n \"file_path\": \"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_704.md\",\n \"knowledge_base_id\": \"会议测试\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_transports\\\\default.py\\\", line 101, in map_httpcore_exceptions\\n yield\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_transports\\\\default.py\\\", line 250, in handle_request\\n resp = self._pool.handle_request(req)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\connection_pool.py\\\", line 256, in handle_request\\n raise exc from None\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\connection_pool.py\\\", line 236, in handle_request\\n response = connection.handle_request(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\http_proxy.py\\\", line 206, in handle_request\\n return self._connection.handle_request(proxy_request)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\connection.py\\\", line 103, in handle_request\\n return self._connection.handle_request(request)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\http11.py\\\", line 136, in handle_request\\n raise exc\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\http11.py\\\", line 106, in handle_request\\n ) = self._receive_response_headers(**kwargs)\\nhttpcore.ReadTimeout: timed out\\n\\nThe above exception was the direct cause of the following exception:\\n\\nTraceback (most recent call last):\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_base_client.py\\\", line 1019, in request\\n response = self._send_request(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_client.py\\\", line 400, in _send_request\\n return self._send_with_auth_retry(request, stream=stream, **kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_client.py\\\", line 378, in _send_with_auth_retry\\n response = super()._send_request(request, stream=stream, **kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_base_client.py\\\", line 947, in _send_request\\n return self._client.send(request, stream=stream, **kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_client.py\\\", line 914, in send\\n response = self._send_handling_auth(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_client.py\\\", line 942, in _send_handling_auth\\n response = self._send_handling_redirects(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_client.py\\\", line 979, in _send_handling_redirects\\n response = self._send_single_request(request)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_client.py\\\", line 1014, in _send_single_request\\n response = transport.handle_request(request)\\nhttpx.ReadTimeout: timed out\\n\\nThe above exception was the direct cause of the following exception:\\n\\nTraceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\providers\\\\openai_compatible.py\\\", line 32, in generate\\n response = client.chat.completions.create(**request)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_utils\\\\_utils.py\\\", line 287, in wrapper\\n return func(*args, **kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\resources\\\\chat\\\\completions\\\\completions.py\\\", line 1211, in create\\n return self._post(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_base_client.py\\\", line 1314, in post\\n return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_base_client.py\\\", line 1037, in request\\n raise APITimeoutError(request=request) from err\\nopenai.APITimeoutError: Request timed out.\\n\\nThe above exception was the direct cause of the following exception:\\n\\nTraceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 140, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 34, in \\n handler=lambda ctx, args: _import_meeting(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 81, in _import_meeting\\n result = service.import_meeting_transcript(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 28, in import_meeting_transcript\\n digest = self.digest_agent.analyze(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_digest_agent.py\\\", line 48, in analyze\\n turn = self.provider.generate(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\providers\\\\openai_compatible.py\\\", line 34, in generate\\n raise RuntimeError(_format_openai_error(exc, model=self.model, base_url=self.base_url)) from exc\\nRuntimeError: 大模型调用失败:Request timed out.\\n当前 MODEL_NAME='gemma-4-26B', OPENAI_BASE_URL=http://10.100.53.199:9527/v1。\\n\"\n}", - "tool_call_id": "chatcmpl-tool-9aa51334d86e695b", - "created_at": "2026-06-23T18:07:06.706865" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "C:\\Users\\admin\\Downloads\\会议原文\\transcript_710.md", - "knowledge_base_id": "会议测试" - }, - "thought": "The previous attempt to import `transcript_704.md` failed due to a `Request timed out` error from the LLM provider. This is a server-side/network issue, not a logic error in my command. I should inform the user about this error and try again or suggest they wait a moment. However, since I am an agent, I should try to process the other files as well, or at least try one more time if it was a transient error. But since the error message is quite explicit about a timeout, it might be a persistent issue with the model server.\n\nLet's try to import the next file to see if it's a consistent issue. If all fail, I'll report the timeout error to the user.\n\nFiles found:\n1. `transcript_704.md`\n2. `transcript_710.md`\n3. `transcript_711.md`\n4. `transcript_712.md`\n5. `文件会议 06-11 15_52-Transcript.md`\n\nI'll try `transcript_710.md` next.", - "result": "{\n \"success\": false,\n \"error\": \"RuntimeError: 大模型调用失败:Request timed out.\\n当前 MODEL_NAME='gemma-4-26B', OPENAI_BASE_URL=http://10.100.53.199:9527/v1。\",\n \"tool_name\": \"import_meeting_transcript\",\n \"tool_args\": {\n \"file_path\": \"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_710.md\",\n \"knowledge_base_id\": \"会议测试\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_transports\\\\default.py\\\", line 101, in map_httpcore_exceptions\\n yield\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_transports\\\\default.py\\\", line 250, in handle_request\\n resp = self._pool.handle_request(req)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\connection_pool.py\\\", line 256, in handle_request\\n raise exc from None\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\connection_pool.py\\\", line 236, in handle_request\\n response = connection.handle_request(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\connection.py\\\", line 103, in handle_request\\n return self._connection.handle_request(request)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\http11.py\\\", line 136, in handle_request\\n raise exc\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\http11.py\\\", line 106, in handle_request\\n ) = self._receive_response_headers(**kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpcore\\\\_sync\\\\http11.py\\\", line 177, in _receive_response_headers\\n event = self._receive_event(timeout=timeout)\\nhttpcore.ReadTimeout: timed out\\n\\nThe above exception was the direct cause of the following exception:\\n\\nTraceback (most recent call last):\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_base_client.py\\\", line 1019, in request\\n response = self._send_request(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_client.py\\\", line 400, in _send_request\\n return self._send_with_auth_retry(request, stream=stream, **kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_client.py\\\", line 378, in _send_with_auth_retry\\n response = super()._send_request(request, stream=stream, **kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_base_client.py\\\", line 947, in _send_request\\n return self._client.send(request, stream=stream, **kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_client.py\\\", line 914, in send\\n response = self._send_handling_auth(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_client.py\\\", line 942, in _send_handling_auth\\n response = self._send_handling_redirects(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_client.py\\\", line 979, in _send_handling_redirects\\n response = self._send_single_request(request)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\httpx\\\\_client.py\\\", line 1014, in _send_single_request\\n response = transport.handle_request(request)\\nhttpx.ReadTimeout: timed out\\n\\nThe above exception was the direct cause of the following exception:\\n\\nTraceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\providers\\\\openai_compatible.py\\\", line 32, in generate\\n response = client.chat.completions.create(**request)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_utils\\\\_utils.py\\\", line 287, in wrapper\\n return func(*args, **kwargs)\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\resources\\\\chat\\\\completions\\\\completions.py\\\", line 1211, in create\\n return self._post(\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_base_client.py\\\", line 1314, in post\\n return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))\\n File \\\"D:\\\\miniconda3\\\\envs\\\\wavdownlode\\\\lib\\\\site-packages\\\\openai\\\\_base_client.py\\\", line 1037, in request\\n raise APITimeoutError(request=request) from err\\nopenai.APITimeoutError: Request timed out.\\n\\nThe above exception was the direct cause of the following exception:\\n\\nTraceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 140, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 34, in \\n handler=lambda ctx, args: _import_meeting(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 81, in _import_meeting\\n result = service.import_meeting_transcript(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 28, in import_meeting_transcript\\n digest = self.digest_agent.analyze(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_digest_agent.py\\\", line 48, in analyze\\n turn = self.provider.generate(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\providers\\\\openai_compatible.py\\\", line 34, in generate\\n raise RuntimeError(_format_openai_error(exc, model=self.model, base_url=self.base_url)) from exc\\nRuntimeError: 大模型调用失败:Request timed out.\\n当前 MODEL_NAME='gemma-4-26B', OPENAI_BASE_URL=http://10.100.53.199:9527/v1。\\n\"\n}", - "tool_call_id": "chatcmpl-tool-99fa26a05261d460", - "created_at": "2026-06-23T18:13:25.005971" - } - ] - }, - { - "turn_id": 2, - "started_at": "2026-06-24T10:05:15.620701", - "completed_at": "2026-06-24T10:08:03.642338", - "user_message": "帮我将这个文档整理到知识库\n\n附加文本文件已保存,可直接读取或导入:\n- huiyi.txt: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782266715613_1_huiyi.txt", - "assistant_final": "会议文档已成功整理到知识库 **“会议测试”** 中。\n\n**整理结果摘要:**\n- **台账路径**:`D:\\github_project\\my_code\\meeting_knowledge\\data\\会议测试\\team_ledger.md`\n- **更新统计**:\n - 识别到 **6** 个相关项目\n - 提取了 **3** 项关键指标\n - 整理了 **6** 项待办事项 (Actions)\n - 识别了 **3** 项风险 (Risks)\n - 记录了 **6** 项追踪项 (Follow-ups)\n\n**会议核心内容:**\n1. **宽带运维**:讨论了安装量受天气影响的波动情况,需平衡上门量与安装量。\n2. **PCDN问题**:针对PCDN指标恶化,需通过分析学校IP并协同限速解决。\n3. **二级站拆除**:进度顺利,预计4月15日前完成全量拆除及服务费调整。\n4. **商客业务**:市场部需提升业务价值,并于本周汇报招聘及渠道进度。\n5. **活动筹备**:体育文化节方阵人员落实中,目前尚缺9人。\n\n您可以随时通过提问(如“最近有哪些待办?”或“PCDN的问题怎么解决?”)来查询详细信息。", - "tool_calls": [ - { - "tool_name": "list_knowledge_bases", - "arguments": {}, - "thought": "The user wants to import a meeting transcript file into a knowledge base.\nThe file path provided is `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782266715613_1_huiyi.txt`.\nThe user hasn't specified a `knowledge_base_id`.\nAccording to the system prompt, if the user doesn't specify a knowledge base, I can omit it, and the tool will automatically use the only one available in `data/`.\nHowever, I should first check if there are any knowledge bases available using `list_knowledge_bases`.\n\nWait, the user's previous request mentioned a knowledge base named \"会议测试\". It's highly likely they want to import this file into that same knowledge base.\nBut to be safe and professional, I'll check the existing knowledge bases first.\n\nPlan:\n1. List knowledge bases to see if \"会议测试\" exists.\n2. If \"会议测试\" exists, call `import_meeting_transcript` with `file_path=\"D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782266715613_1_huiyi.txt\"` and `knowledge_base_id=\"会议测试\"`.\n3. If \"会议测试\" doesn't exist, I'll ask the user or try to find the default one.\n\nLet's start by listing knowledge bases.", - "result": "{\n \"knowledge_bases\": [],\n \"count\": 0\n}", - "tool_call_id": "chatcmpl-tool-9d1ce6b36c6feb1a", - "created_at": "2026-06-24T10:05:27.269545" - }, - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782266715613_1_huiyi.txt", - "knowledge_base_id": "会议测试" - }, - "thought": "The user wants to import a meeting transcript file `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782266715613_1_huiyi.txt` into a knowledge base.\nFirst, I checked the available knowledge bases using `list_knowledge_bases`, and it returned an empty list.\nSince the user didn't specify a knowledge base name in this turn, and there are no existing knowledge bases, I should probably ask the user which knowledge base they want to use, or if they want me to create one (though the tool `import_meeting_transcript` implies the folder should exist or it might create it, but typically I should check if a specific one is needed).\nWait, the user's previous prompt mentioned \"知识库名字叫会议测试\" (knowledge base name is \"会议测试\").\nI should try to import the file into the \"会议测试\" knowledge base.\n\nFile path: `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782266715613_1_huiyi.txt`\nKnowledge base ID: `会议测试`\n\nLet's try to call `import_meeting_transcript`.", - "result": "{\n \"team_id\": \"会议测试\",\n \"knowledge_base_id\": \"会议测试\",\n \"meeting_id\": \"meeting_f23ec05a26\",\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"state_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\state.json\",\n \"summary\": [\n \"本次会议重点讨论了宽带安装运维指标、PCDN专线恶化问题、二级站拆除进度、商客业务进展以及体育文化节筹备等事项。\",\n \"宽带安装量受天气影响波动,需平衡上门量与安装量以达成目标。\",\n \"PCDN指标恶化,需通过分析学校IP并协同限速来解决。\",\n \"二级站拆除工作进展顺利,预计4月15日前完成全量拆除及服务费调整。\",\n \"市场部需加强商客及拆迁业务的价值提升,并于本周内汇报招聘及渠道进度。\",\n \"体育文化节方阵人员需尽快落实,目前尚缺9人。\"\n ],\n \"imported\": true,\n \"counts\": {\n \"projects\": 6,\n \"metrics\": 3,\n \"actions\": 6,\n \"risks\": 3,\n \"completed\": 1,\n \"followups\": 6\n }\n}", - "tool_call_id": "chatcmpl-tool-98adecefd27eafa8", - "created_at": "2026-06-24T10:07:55.543900" - } - ] - }, - { - "turn_id": 3, - "started_at": "2026-06-24T10:12:37.486444", - "completed_at": "2026-06-24T10:12:52.134134", - "user_message": "看看我的会议内容", - "assistant_final": "为您查询到知识库“会议测试”中最近一次会议(2026-06-24)的内容总结如下:\n\n### 📅 最近会议概览\n* **日期**:2026-06-24\n* **会议主题**:周例会\n* **核心内容**:本次会议主要围绕运维指标、业务恶化问题、拆除进度、市场业务及活动筹备五个方面展开。\n\n### 🚀 项目进展详情\n| 项目名称 | 当前状态 | 核心进展/关注点 |\n| :--- | :--- | :--- |\n| **宽带安装与运维** | 推进中 | 安装量受天气影响有波动,需平衡上门量与安装量。 |\n| **PCDN与专线业务** | 🔴 **阻塞** | **PCDN指标持续恶化**,问题集中在学校出口带宽占用过大。 |\n| **二级站拆除工程** | 推进中 | 拆除、下电及服务费调整工作正在顺利进行。 |\n| **市场与商客业务** | 推进中 | 商客收入稳步增长,重点在于提升拆迁业务的价值。 |\n| **体育文化节筹备** | 进行中 | 正在筹备第4届文化节,重点是落实方阵人员。 |\n| **客户满意度管理** | 关注中 | 针对测评结果进行反思,要求提升执行力。 |\n\n---\n**💡 提示:**\n如果您想了解具体的**待办事项 (Actions)**、**风险 (Risks)** 或某个项目的**详细追踪项**,请直接告诉我,例如:“*PCDN的问题有哪些具体的解决措施?*” 或 “*列出所有待办事项*”。", - "tool_calls": [ - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "会议测试", - "query": "最近的会议内容是什么?请总结一下。" - }, - "thought": "The user wants to \"see their meeting content\" (\"看看我的会议内容\").\nI need to determine which knowledge base to query. The previous turn successfully imported a meeting into the \"会议测试\" knowledge base.\nI should use `query_knowledge` to retrieve the meeting content or summary from the \"会议测试\" knowledge base.\n\nPlan:\n1. Call `query_knowledge` with `knowledge_base_id=\"会议测试\"` and a query like \"最近的会议内容是什么?\" or \"总结一下会议内容\".\n2. Based on the tool output, summarize the findings for the user.", - "result": "{\n \"answer\": \"最近一次会议:2026-06-24\\n会议标题:2026-06-24 周例会\\n来源文件:D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_2b0479c17171\\\\1782266715613_1_huiyi.txt\\n\\n会议摘要:\\n- 本次会议重点讨论了宽带安装运维指标、PCDN专线恶化问题、二级站拆除进度、商客业务进展以及体育文化节筹备等事项。\\n- 宽带安装量受天气影响波动,需平衡上门量与安装量以达成目标。\\n- PCDN指标恶化,需通过分析学校IP并协同限速来解决。\\n- 二级站拆除工作进展顺利,预计4月15日前完成全量拆除及服务费调整。\\n- 市场部需加强商客及拆迁业务的价值提升,并于本周内汇报招聘及渠道进度。\\n- 体育文化节方阵人员需尽快落实,目前尚缺9人。\\n\\n本次涉及项目:\\n- 宽带安装与运维:状态=推进中;更新=关注上门量与安装量的平衡,目前安装量受天气影响有所波动,部分指标接近目标。\\n- PCDN与专线业务:状态=阻塞;更新=PCDN指标持续恶化,主要问题集中在学校出口带宽使用过大。\\n- 二级站拆除工程:状态=推进中;更新=推进二级站拆除、下电及服务费调整工作。\\n- 市场与商客业务:状态=推进中;更新=商客收入稳步增长,重点推进拆迁业务的价值提升。\\n- 体育文化节筹备:状态=进行中;更新=筹备第4届体育文化节,重点落实方阵人员及排练。\\n- 客户满意度管理:状态=关注中;更新=针对满意度测评结果进行反思,要求提升执行力并规范样板操作。\",\n \"matches\": [],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"team_id\": \"会议测试\",\n \"knowledge_base_id\": \"会议测试\",\n \"meeting_id\": \"meeting_f23ec05a26\"\n}", - "tool_call_id": "chatcmpl-tool-afdbdda56b6d94a2", - "created_at": "2026-06-24T10:12:41.856542" - } - ] - }, - { - "turn_id": 4, - "started_at": "2026-06-24T10:19:10.232623", - "completed_at": "2026-06-24T10:23:06.374875", - "user_message": "帮我把这个会议也整理一下\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_704.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782267550230_1_transcript_704.md", - "assistant_final": "会议文档已成功整理到知识库 **“会议测试”** 中。\n\n**整理结果摘要:**\n- **台账路径**:`D:\\github_project\\my_code\\meeting_knowledge\\data\\会议测试\\team_ledger.md`\n- **更新统计**:\n - 识别到 **4** 个相关项目\n - 整理了 **3** 项待办事项 (Actions)\n - 识别了 **1** 项风险 (Risks)\n - 记录了 **3** 项追踪项 (Follow-ups)\n\n**会议核心内容:**\n1. **定制开发业务**:重点在于6月183万收入目标的冲刺,需通过降低边际成本来增强竞争力。\n2. **AI 算力资源管理**:强调 Token 和 H20 资源管理需从“游击队”模式转向规模化、流程化的专业管理。\n3. **无人机平台研发**:正在推进与集云结合的方案,重点关注违停抓拍功能及互联网接入。\n4. **产品质量与风险**:数字助理产品框架已定;同时需高度关注**云桌面产品**因性能卡顿导致的退货风险,需加强质量与服务建设。\n\n您可以随时询问:“*云桌面有哪些风险?*” 或 “*关于AI算力的待办事项有哪些?*” 来获取更详细的信息。", - "tool_calls": [ - { - "tool_name": "import_meeting_transcript", - "arguments": { - "file_path": "D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782267550230_1_transcript_704.md", - "knowledge_base_id": "会议测试" - }, - "thought": "The user wants to import a meeting transcript file `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782267550230_1_transcript_704.md` into the knowledge base.\nLooking at the previous context, the user was working with a knowledge base named \"会议测试\".\nI should use the `import_meeting_transcript` tool.\n\nParameters for `import_meeting_transcript`:\n- `file_path`: `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_2b0479c17171\\1782267550230_1_transcript_704.md`\n- `knowledge_base_id`: \"会议测试\" (inferred from previous turns)\n\nLet's call the tool.", - "result": "{\n \"team_id\": \"会议测试\",\n \"knowledge_base_id\": \"会议测试\",\n \"meeting_id\": \"meeting_91fd5e7508\",\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"state_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\state.json\",\n \"summary\": [\n \"本次会议重点讨论了定制开发业务的收入冲刺、AI算力资源(Token/H20)的量化管理、无人机平台研发进展以及云桌面产品的质量与风险控制。\",\n \"定制开发业务6月目标冲刺183万收入,需通过降低边际成本提升竞争力。\",\n \"会议强调AI算力资源(Token/H20)需从‘游击队’模式转向规模化、流程化管理。\",\n \"无人机平台正推进与集云结合的方案,重点在于违停抓拍功能及互联网接入。\",\n \"数字助理产品框架已定,将通过AI实现自动化咨询与配置助手功能。\",\n \"云桌面产品面临因性能卡顿导致的退货风险,需加强产品质量与服务团队建设。\"\n ],\n \"imported\": true,\n \"counts\": {\n \"projects\": 4,\n \"metrics\": 0,\n \"actions\": 3,\n \"risks\": 1,\n \"completed\": 0,\n \"followups\": 3\n }\n}", - "tool_call_id": "chatcmpl-tool-bea8a8bbe90da794", - "created_at": "2026-06-24T10:22:57.850943" - } - ] - }, - { - "turn_id": 5, - "started_at": "2026-06-24T10:26:47.173433", - "completed_at": "2026-06-24T10:27:00.921185", - "user_message": "我最近会议内容有哪些?", - "assistant_final": "为您查询到知识库“会议测试”中最近一次会议的内容总结:\n\n### 📅 最近会议概览\n* **日期**:2026-06-24\n* **会议标题**:周例会\n* **来源文件**:`transcript_704.md`\n\n### 📝 会议核心摘要\n本次会议主要聚焦于业务目标的冲刺、AI 资源的专业化管理以及产品质量风险的防范:\n1. **定制开发业务**:正在全力冲刺 6 月份 **183 万**的收入目标,并着手规划下半年的任务。\n2. **AI 算力与模型管理**:强调 AI 算力(Token 和 H20)的管理需要实现从“游击队”模式向**规模化、流程化**的量化管理转型。\n3. **无人机平台**:正在推进与集云结合的方案,重点开发**违停抓拍**及互联网接入功能。\n4. **产品质量预警**:**云桌面产品**目前存在因性能卡顿导致客户退货的风险,需加强产品质量与服务团队建设。\n5. **数字助理**:产品框架已确定,将通过 AI 实现自动化咨询与配置助手功能。\n\n---\n**💡 提示:**\n如果您需要查看更具体的任务,可以问我:\n* “*云桌面产品有哪些具体的待办或风险?*”\n* “*关于 AI 算力管理有哪些追踪项?*”", - "tool_calls": [ - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "会议测试", - "query": "最近的会议内容有哪些?" - }, - "thought": "The user is asking \"What are my recent meeting contents?\" (我最近会议内容有哪些?).\nI need to query the knowledge base for the most recent meeting content.\nThe user hasn't specified a `knowledge_base_id`, but based on the conversation history, they have been working with the \"会议测试\" (Meeting Test) knowledge base.\nI should use `query_knowledge` with a query like \"最近的会议内容\" or \"最近会议总结\" for the `knowledge_base_id=\"会议测试\"`.\n\nPlan:\n1. Call `query_knowledge` with `knowledge_base_id=\"会议测试\"` and `query=\"最近的会议内容\"`.\n2. Present the result to the user.", - "result": "{\n \"answer\": \"最近一次会议:2026-06-24\\n会议标题:周例会\\n来源文件:D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_2b0479c17171\\\\1782267550230_1_transcript_704.md\\n\\n会议摘要:\\n- 本次会议重点讨论了定制开发业务的收入冲刺、AI算力资源(Token/H20)的量化管理、无人机平台研发进展以及云桌面产品的质量与风险控制。\\n- 定制开发业务6月目标冲刺183万收入,需通过降低边际成本提升竞争力。\\n- 会议强调AI算力资源(Token/H20)需从‘游击队’模式转向规模化、流程化管理。\\n- 无人机平台正推进与集云结合的方案,重点在于违停抓拍功能及互联网接入。\\n- 数字助理产品框架已定,将通过AI实现自动化咨询与配置助手功能。\\n- 云桌面产品面临因性能卡顿导致的退货风险,需加强产品质量与服务团队建设。\\n\\n本次涉及项目:\\n- 定制开发业务:状态=推进中;更新=冲刺6月份183万收入目标,并规划下半年任务。\\n- AI算力与模型管理:状态=推进中;更新=建立AI算力(Token/H20)的量化管理体系,实现资源调度与成本控制。\\n- 无人机平台:状态=推进中;更新=推进无人机平台与集云结合的方案,开发违停抓拍及互联网接入功能。\\n- 云桌面产品:状态=关注中;更新=应对因性能卡顿导致的客户退货风险,并优化产品质量。\",\n \"matches\": [],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"team_id\": \"会议测试\",\n \"knowledge_base_id\": \"会议测试\",\n \"meeting_id\": \"meeting_91fd5e7508\"\n}", - "tool_call_id": "chatcmpl-tool-be298f08755a0e74", - "created_at": "2026-06-24T10:26:52.198111" - } - ] - }, - { - "turn_id": 6, - "started_at": "2026-06-24T10:28:58.185365", - "completed_at": "2026-06-24T10:29:05.931093", - "user_message": "我上次会议讲的九零工程具体情况怎么样?", - "assistant_final": "根据台账记录,“九零工程”目前处于**待达标**状态。\n\n具体指标如下:\n* **项目名称**:宽带安装与运维\n* **核心指标**:九零工程转化率 = **87.35%**\n* **目标值**:**90%**\n* **当前进度**:虽然月度来看有提升,但距离 90% 的目标还差一点点。", - "tool_calls": [ - { - "tool_name": "query_knowledge", - "arguments": { - "knowledge_base_id": "会议测试", - "query": "九零工程的具体情况怎么样?" - }, - "thought": "The user is asking about a specific topic \"九零工程\" (Project 90) mentioned in the \"last meeting\".\nI need to find information about \"九零工程\" in the \"会议测试\" knowledge base.\nI should use the `query_knowledge` tool to search for \"九零工程\" in the `knowledge_base_id=\"会议测试\"`.", - "result": "{\n \"answer\": \"根据当前会议台账,找到这些相关内容:\\n- [指标] 宽带安装与运维|九零工程转化率=87.35%|目标:90%|状态:待达标\\n- [项目] 二级站拆除工程|状态:推进中|更新:推进二级站拆除、下电及服务费调整工作。\\n- [待办] 二级站拆除工程|全量拆除与服务费调整|责任:相关部门|截止:2026-04-15|状态:进行中\\n- [完成] 二级站拆除工程|二级站下电|责任:项目组\\n- [下一步] 二级站拆除工程|在2周内完成剩余75站的拆除\\n- [下一步] 二级站拆除工程|全量拆除与服务费调整\\n- [下一步] 定制开发业务|周五拿出三四季度预估情况,并结合6月计收数据进行总结。\\n- [待办] AI算力与模型管理|算力资源量化调查|责任:研发团队|截止:|状态:待跟进\",\n \"matches\": [\n {\n \"type\": \"指标\",\n \"project\": \"宽带安装与运维\",\n \"display_text\": \"宽带安装与运维|九零工程转化率=87.35%|目标:90%|状态:待达标\",\n \"search_text\": \"宽带安装与运维;九零工程转化率;87.35%;90%;待达标;上升;月度来看有提升;转化率是87.35,离90的目标还差一点点;宽带安装与运维\"\n },\n {\n \"type\": \"项目\",\n \"project\": \"二级站拆除工程\",\n \"display_text\": \"二级站拆除工程|状态:推进中|更新:推进二级站拆除、下电及服务费调整工作。\",\n \"search_text\": \"二级站拆除工程;二级站拆除工程;推进中;推进二级站拆除、下电及服务费调整工作。;推进二级站拆除、下电及服务费调整工作。;二级站 拆除 下电 服务费\"\n },\n {\n \"type\": \"待办\",\n \"project\": \"二级站拆除工程\",\n \"display_text\": \"二级站拆除工程|全量拆除与服务费调整|责任:相关部门|截止:2026-04-15|状态:进行中\",\n \"search_text\": \"二级站拆除工程;全量拆除与服务费调整;相关部门;2026-04-15;进行中;完成拆除及电量服务费调整;预计在4月15号之前可以全量完成二级的拆除和下电和服务费的调整;二级站拆除工程\"\n },\n {\n \"type\": \"完成\",\n \"project\": \"二级站拆除工程\",\n \"display_text\": \"二级站拆除工程|二级站下电|责任:项目组\",\n \"search_text\": \"二级站拆除工程;二级站下电;已完成;项目组;已经全部下电了;二级站拆除工程\"\n },\n {\n \"type\": \"下一步\",\n \"project\": \"二级站拆除工程\",\n \"display_text\": \"二级站拆除工程|在2周内完成剩余75站的拆除\",\n \"search_text\": \"二级站拆除工程;二级站拆除工程;在2周内完成剩余75站的拆除\"\n },\n {\n \"type\": \"下一步\",\n \"project\": \"二级站拆除工程\",\n \"display_text\": \"二级站拆除工程|全量拆除与服务费调整\",\n \"search_text\": \"二级站拆除工程;二级站拆除工程;全量拆除与服务费调整\"\n },\n {\n \"type\": \"下一步\",\n \"project\": \"定制开发业务\",\n \"display_text\": \"定制开发业务|周五拿出三四季度预估情况,并结合6月计收数据进行总结。\",\n \"search_text\": \"定制开发业务;定制开发业务;周五拿出三四季度预估情况,并结合6月计收数据进行总结。\"\n },\n {\n \"type\": \"待办\",\n \"project\": \"AI算力与模型管理\",\n \"display_text\": \"AI算力与模型管理|算力资源量化调查|责任:研发团队|截止:|状态:待跟进\",\n \"search_text\": \"AI算力与模型管理;算力资源量化调查;研发团队;待跟进;弄清楚H20服务器算力及性价比,并调查人均Token消耗。;你下来你就把这个弄了...人均是多少,现在是多少?以后需要多少,怎么做?;AI算力与模型管理\"\n }\n ],\n \"ledger_path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\会议测试\\\\team_ledger.md\",\n \"team_id\": \"会议测试\",\n \"knowledge_base_id\": \"会议测试\"\n}", - "tool_call_id": "chatcmpl-tool-a736921b5a9fae19", - "created_at": "2026-06-24T10:29:02.233185" - } - ] - } - ] -} \ No newline at end of file diff --git a/agent_memory/sessions/neo4j/recent_history.json b/agent_memory/sessions/neo4j/recent_history.json new file mode 100644 index 0000000..9955860 --- /dev/null +++ b/agent_memory/sessions/neo4j/recent_history.json @@ -0,0 +1,46 @@ +{ + "session_id": "neo4j", + "messages": [ + { + "role": "user", + "content": "检查一下当前知识库" + }, + { + "role": "assistant", + "content": "当前知识库目前是**空的**。\n\n根据 `query_meeting_memory` 的查询结果:\n- **会议记录**:0 条\n- **实体/关系**:0 条\n- **行动项/指标**:0 条\n\n**下一步建议:**\n如果您有会议转录文本(文件或直接文本),请发送给我,我将使用 `store_meeting_memory` 为您进行归档和知识抽取。" + }, + { + "role": "user", + "content": "C:\\Users\\admin\\Downloads\\会议原文 该路径下的md是最近的几个会议,你依次帮我整理一下" + }, + { + "role": "assistant", + "content": "thought\n整理结果如下:\n\n**进度总结:**\n1. ✅ **已成功整理**:\n - `文件会议 06-11 15_52-Transcript.md`\n - 归档路径:`data\\raw\\2026-06-11_分公司周例会.md`\n - 提取成果:32个实体、5个项目、10个指标、4项行动项。\n\n2. ❌ **处理失败(文件过大)**:\n - `transcript_704.md`\n - `transcript_710.md`\n - `transcript_711.md`\n - `transcript_712.md`\n - **失败原因**:这些文件的内容长度均超过了系统单次处理的 **32,768 tokens** 上限,导致无法进行语义分析和知识抽取。\n\n**下一步建议:**\n由于这些文件体积较大,请您尝试以下操作:\n1. **手动拆分**:将这些 `.md` 文件按内容逻辑(例如按小时或按议题)拆分为较小的文件,然后再次发送给我。\n2. **分段上传**:您可以直接将文件中的内容**分段复制**并粘贴到对话框中,我会逐段进行记忆存储。\n\n需要我先为您展示已整理好的 `2026-06-11_分公司周例会` 的详细内容吗?" + }, + { + "role": "user", + "content": "我看日志embedding还是超出token了" + }, + { + "role": "assistant", + "content": "是的,您的观察非常准确。\n\n这是因为 `store_meeting_memory` 在执行“深度抽取”(Extraction)时,会将全文内容发送给大模型进行语义分析。当单个文件的 Token 数量超过了模型单次处理的上下文窗口(Context Window)限制时,就会导致 Embedding 或解析阶段报错。\n\n为了绕过这个限制,我将改变工作模式,从“全量文件处理”切换为 **“分段增量存储”** 策略:\n\n### 🛠️ 改进后的处理流程:\n1. **手动切片**:我不再直接把 `file_path` 传给工具,而是改用 `read_file` 手动读取文件内容。\n2. **分段注入**:我会将文件按逻辑块(例如每 5,000 - 8,000 tokens)进行切分。\n3. **增量更新**:我将每一段内容作为 `content` 参数调用 `store_meeting_memory`。\n * *原理*:该工具在处理 `content` 时,会将新发现的实体、关系和行动项与已有的知识图谱进行 **Merge(合并)**。这样即使是分段输入,最终在知识库中呈现的依然是完整的会议画像。\n\n### 🚀 准备开始\n由于分段处理会消耗更多的步骤,我建议我们先拿一个“大文件”做个测试。\n\n**请指示:您希望我先尝试处理哪一个文件?**\n(建议从 `transcript_704.md` 开始)" + }, + { + "role": "user", + "content": "就上面失败那个开始吧" + }, + { + "role": "assistant", + "content": "第一阶段(前 22 分钟内容)已成功存入。\n\n**处理详情:**\n- **文件**:`transcript_704.md` (Part 1)\n- **归档路径**:`data\\raw\\2026-06-24_会议704_-_业务收入与项目进度协调会.md`\n- **关键信息命中**:\n - **收入/毛利**:提到 217 万收入(已完成 79 万),全年预估 3.2 亿(受 7000 万项目影响)。\n - **重点项目**:河北计算中心(7680 万交换机项目)、解放碑定制开发(涉及工单系统边界问题)、四川南城算利融资项目。\n - **核心议题**:讨论了定制开发业务的定价策略、研发成本控制以及 AI 工具(Token 使用)的量化管理。\n\n**下一步:**\n由于文件较大,我将继续读取并处理该文件的**下一段内容**(从第 22 分钟之后开始)。请稍候。" + }, + { + "role": "user", + "content": "继续吧" + }, + { + "role": "assistant", + "content": "抱歉,由于安全限制,我无法直接读取您电脑本地路径 `C:\\Users\\admin\\Downloads\\...` 下的文件。我只能访问工作区 `D:\\github_project\\my_code\\meeting_knowledge` 目录内的文件。\n\n刚才我之所以能处理第一个文件,是因为该文件已经被系统同步或由于某种方式被加载到了工作区中(或者我之前在处理时已经成功读取了它,但我现在尝试重新读取时遇到了路径越权错误)。\n\n**为了继续处理 `transcript_704.md`,请您协助我完成以下操作之一:**\n\n1. **将文件移动到工作区**:请将 `transcript_704.md` 拷贝到 `D:\\github_project\\my_code\\meeting_knowledge` 目录下。\n2. **直接粘贴文本**:如果您觉得文件不大,可以直接将文件的文本内容(或者其中一部分)**直接粘贴在对话框里**发给我。\n\n一旦文件进入我的工作区,我将立即开始分段处理。" + } + ], + "max_persisted_turns": 20 +} \ No newline at end of file diff --git a/agent_memory/sessions/neo4j/tool_trace.json b/agent_memory/sessions/neo4j/tool_trace.json new file mode 100644 index 0000000..2b99ecf --- /dev/null +++ b/agent_memory/sessions/neo4j/tool_trace.json @@ -0,0 +1,229 @@ +{ + "max_turns": 20, + "next_turn_id": 8, + "active_turn": null, + "turns": [ + { + "turn_id": 1, + "started_at": "2026-06-24T16:00:44.077190", + "completed_at": "2026-06-24T16:00:55.339795", + "user_message": "检查一下当前知识库", + "assistant_final": "当前知识库目前是**空的**。\n\n根据 `query_meeting_memory` 的查询结果:\n- **会议记录**:0 条\n- **实体/关系**:0 条\n- **行动项/指标**:0 条\n\n**下一步建议:**\n如果您有会议转录文本(文件或直接文本),请发送给我,我将使用 `store_meeting_memory` 为您进行归档和知识抽取。", + "tool_calls": [ + { + "tool_name": "list_directory", + "arguments": { + "path": "." + }, + "thought": "The user wants to \"check the current knowledge base\" (检查一下当前知识库).\nAs a \"Meeting Long-term Memory Maintenance Agent\", my knowledge base consists of two parts:\n1. The local file system (workspace) containing meeting transcripts and archives.\n2. The long-term memory system accessed via `query_meeting_memory`.\n\nTo \"check\" it, I should:\n1. List the files in the workspace to see what transcripts/archives are physically present.\n2. Use `query_meeting_memory` to see what information is indexed in the memory system.\n\nI'll start by listing the directory to see the structure.", + "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\",\n \"entries\": [\n {\n \"name\": \".agents\",\n \"path\": \".agents\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-23T13:30:27\"\n },\n {\n \"name\": \".git\",\n \"path\": \".git\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T15:54:07\"\n },\n {\n \"name\": \".vscode\",\n \"path\": \".vscode\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-23T14:18:06\"\n },\n {\n \"name\": \"__pycache__\",\n \"path\": \"__pycache__\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T15:59:01\"\n },\n {\n \"name\": \"agent_memory\",\n \"path\": \"agent_memory\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T16:00:44\"\n },\n {\n \"name\": \"core_agent\",\n \"path\": \"core_agent\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T13:42:11\"\n },\n {\n \"name\": \"data\",\n \"path\": \"data\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T15:58:11\"\n },\n {\n \"name\": \"frontend_nanobot\",\n \"path\": \"frontend_nanobot\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T14:14:21\"\n },\n {\n \"name\": \"meeting_memory\",\n \"path\": \"meeting_memory\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T15:54:07\"\n },\n {\n \"name\": \"nanobot\",\n \"path\": \"nanobot\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-23T15:29:57\"\n },\n {\n \"name\": \"prompt\",\n \"path\": \"prompt\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-23T13:56:20\"\n },\n {\n \"name\": \"providers\",\n \"path\": \"providers\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T15:54:07\"\n },\n {\n \"name\": \"skills\",\n \"path\": \"skills\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-23T14:04:07\"\n },\n {\n \"name\": \"test_knowledge_base\",\n \"path\": \"test_knowledge_base\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T15:42:23\"\n },\n {\n \"name\": \"tools\",\n \"path\": \"tools\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T15:54:07\"\n },\n {\n \"name\": \"webui\",\n \"path\": \"webui\",\n \"type\": \"directory\",\n \"size\": null,\n \"modified_at\": \"2026-06-24T09:59:17\"\n },\n {\n \"name\": \".env\",\n \"path\": \".env\",\n \"type\": \"file\",\n \"size\": 813,\n \"modified_at\": \"2026-06-24T15:32:00\"\n },\n {\n \"name\": \".env.example\",\n \"path\": \".env.example\",\n \"type\": \"file\",\n \"size\": 349,\n \"modified_at\": \"2026-06-23T14:09:14\"\n },\n {\n \"name\": \".gitignore\",\n \"path\": \".gitignore\",\n \"type\": \"file\",\n \"size\": 30,\n \"modified_at\": \"2026-06-23T14:09:14\"\n },\n {\n \"name\": \".webui_sidebar_state.json\",\n \"path\": \".webui_sidebar_state.json\",\n \"type\": \"file\",\n \"size\": 388,\n \"modified_at\": \"2026-06-24T11:01:42\"\n },\n {\n \"name\": \"agent.py\",\n \"path\": \"agent.py\",\n \"type\": \"file\",\n \"size\": 1704,\n \"modified_at\": \"2026-06-23T16:57:36\"\n },\n {\n \"name\": \"dispatch.py\",\n \"path\": \"dispatch.py\",\n \"type\": \"file\",\n \"size\": 826,\n \"modified_at\": \"2026-06-23T13:56:20\"\n },\n {\n \"name\": \"main.py\",\n \"path\": \"main.py\",\n \"type\": \"file\",\n \"size\": 106,\n \"modified_at\": \"2026-06-23T13:58:37\"\n },\n {\n \"name\": \"main_cli.py\",\n \"path\": \"main_cli.py\",\n \"type\": \"file\",\n \"size\": 4483,\n \"modified_at\": \"2026-06-24T15:54:07\"\n },\n {\n \"name\": \"prompts.py\",\n \"path\": \"prompts.py\",\n \"type\": \"file\",\n \"size\": 820,\n \"modified_at\": \"2026-06-23T13:57:11\"\n },\n {\n \"name\": \"README.md\",\n \"path\": \"README.md\",\n \"type\": \"file\",\n \"size\": 6492,\n \"modified_at\": \"2026-06-24T15:22:06\"\n },\n {\n \"name\": \"requirements.txt\",\n \"path\": \"requirements.txt\",\n \"type\": \"file\",\n \"size\": 98,\n \"modified_at\": \"2026-06-24T15:20:08\"\n },\n {\n \"name\": \"skills.py\",\n \"path\": \"skills.py\",\n \"type\": \"file\",\n \"size\": 879,\n \"modified_at\": \"2026-06-23T13:56:20\"\n },\n {\n \"name\": \"webui_server.py\",\n \"path\": \"webui_server.py\",\n \"type\": \"file\",\n \"size\": 51836,\n \"modified_at\": \"2026-06-24T15:58:43\"\n }\n ]\n}", + "tool_call_id": "chatcmpl-tool-8354f8a74c49c1d9", + "created_at": "2026-06-24T16:00:48.978861" + }, + { + "tool_name": "query_meeting_memory", + "arguments": { + "query": "总结当前知识库中已有的会议信息、决策、行动项和关键实体。" + }, + "thought": "", + "result": "{\n \"success\": true,\n \"query\": \"总结当前知识库中已有的会议信息、决策、行动项和关键实体。\",\n \"top_k\": 5,\n \"answer\": \"\",\n \"graph_enabled\": true,\n \"stats\": {\n \"graph\": {\n \"enabled\": true,\n \"meetings\": 0,\n \"episodes\": 0,\n \"entities\": 0,\n \"relations\": 0,\n \"departments\": 0,\n \"projects\": 0,\n \"metrics\": 0\n },\n \"state\": {\n \"action_items_tracked\": 0,\n \"metrics_tracked\": 0,\n \"meeting_series\": 0,\n \"content_hashes\": 0\n },\n \"raw_dir\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\raw\",\n \"state_path\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_state.json\"\n }\n}", + "tool_call_id": "chatcmpl-tool-acb819aec871b4fd", + "created_at": "2026-06-24T16:00:52.123853" + } + ] + }, + { + "turn_id": 2, + "started_at": "2026-06-24T16:01:33.771737", + "completed_at": "2026-06-24T16:10:56.229758", + "user_message": "C:\\Users\\admin\\Downloads\\会议原文 该路径下的md是最近的几个会议,你依次帮我整理一下", + "assistant_final": "thought\n整理结果如下:\n\n**进度总结:**\n1. ✅ **已成功整理**:\n - `文件会议 06-11 15_52-Transcript.md`\n - 归档路径:`data\\raw\\2026-06-11_分公司周例会.md`\n - 提取成果:32个实体、5个项目、10个指标、4项行动项。\n\n2. ❌ **处理失败(文件过大)**:\n - `transcript_704.md`\n - `transcript_710.md`\n - `transcript_711.md`\n - `transcript_712.md`\n - **失败原因**:这些文件的内容长度均超过了系统单次处理的 **32,768 tokens** 上限,导致无法进行语义分析和知识抽取。\n\n**下一步建议:**\n由于这些文件体积较大,请您尝试以下操作:\n1. **手动拆分**:将这些 `.md` 文件按内容逻辑(例如按小时或按议题)拆分为较小的文件,然后再次发送给我。\n2. **分段上传**:您可以直接将文件中的内容**分段复制**并粘贴到对话框中,我会逐段进行记忆存储。\n\n需要我先为您展示已整理好的 `2026-06-11_分公司周例会` 的详细内容吗?", + "tool_calls": [ + { + "tool_name": "execute_shell", + "arguments": { + "command": "dir \"C:\\Users\\admin\\Downloads\\会议原文\"" + }, + "thought": "The user wants me to process several Markdown files located in `C:\\Users\\admin\\Downloads\\会议原文` and organize them using the `store_meeting_memory` tool.\n\nFirst, I need to check if I can access this path. The workspace root is `D:\\github_project\\my_code\\meeting_knowledge`. The requested path `C:\\Users\\admin\\Downloads\\会议原文` is outside the workspace.\n\nHowever, I should check if I can list the files in that directory using `execute_shell` or if the user expects me to find them within the workspace. Actually, as an AI agent, I don't have direct access to the user's local C: drive unless it's mounted or provided in the workspace. But wait, the user provided a specific path. I will try to use `execute_shell` with `ls` or `dir` to see if I can reach it, or if the user meant a path relative to the workspace (though they gave an absolute path).\n\nWait, looking at the tool definitions, `list_directory` takes a relative path. `execute_shell` can run any command. I'll try to `dir` that path to see if it's accessible.\n\nActually, a better approach:\n1. Try to list the files in `C:\\Users\\admin\\Downloads\\会议原文` using `execute_shell`.\n2. If successful, read each `.md` file one by one.\n3. For each file, call `store_meeting_memory(file_path=...)`.\n\nWait, `store_meeting_memory`'s `file_path` parameter is relative to the workspace? The tool description says \"会议转录文本文件路径\". It doesn't explicitly say it must be in the workspace, but usually, these tools operate within the provided environment.\n\nLet's try to list the files first.", + "result": "{\n \"success\": true,\n \"command\": \"dir \\\"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\"\",\n \"returncode\": 0,\n \"stdout\": \"\\n\\n 目录: C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\n\\n\\nMode LastWriteTime Length Name \\n---- ------------- ------ ---- \\nd----- 2026/6/23 15:18 json \\n-a---- 2026/6/23 15:05 152716 transcript_704.md \\n-a---- 2026/6/23 15:05 180916 transcript_710.md \\n-a---- 2026/6/23 15:05 138340 transcript_711.md \\n-a---- 2026/6/23 15:05 144053 transcript_712.md \\n-a---- 2026/6/23 14:54 46200 文件会议 06-11 15_52-Transcript.md \\n\\n\\n\",\n \"stderr\": \"\"\n}", + "tool_call_id": "chatcmpl-tool-9a527b30d79200b9", + "created_at": "2026-06-24T16:01:45.537762" + }, + { + "tool_name": "store_meeting_memory", + "arguments": { + "file_path": "C:\\Users\\admin\\Downloads\\会议原文\\文件会议 06-11 15_52-Transcript.md" + }, + "thought": "", + "result": "{\n \"success\": true,\n \"stored\": true,\n \"archive_path\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\raw\\\\2026-06-11_分公司周例会.md\",\n \"source_file_path\": \"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\文件会议 06-11 15_52-Transcript.md\",\n \"data_dir\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\",\n \"raw_dir\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\raw\",\n \"graph_enabled\": true,\n \"stats\": {\n \"graph\": {\n \"enabled\": true,\n \"meetings\": 1,\n \"episodes\": 1,\n \"entities\": 32,\n \"relations\": 9,\n \"departments\": 4,\n \"projects\": 5,\n \"metrics\": 10\n },\n \"state\": {\n \"action_items_tracked\": 4,\n \"metrics_tracked\": 4,\n \"meeting_series\": 1,\n \"content_hashes\": 1\n },\n \"raw_dir\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\raw\",\n \"state_path\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_state.json\"\n },\n \"message\": \"Meeting memory stored.\"\n}", + "tool_call_id": "chatcmpl-tool-8c296af1da87e9c3", + "created_at": "2026-06-24T16:10:19.082400" + }, + { + "tool_name": "store_meeting_memory", + "arguments": { + "file_path": "C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md" + }, + "thought": "", + "result": "{\n \"success\": false,\n \"error\": \"BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\",\n \"tool_name\": \"store_meeting_memory\",\n \"tool_args\": {\n \"file_path\": \"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_704.md\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 187, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 38, in \\n handler=lambda ctx, args: _store_meeting_memory(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 67, in _store_meeting_memory\\n result = service.store_meeting_memory(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 49, in store_meeting_memory\\n archive_path = meeting_processor.process_meeting_text(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 48, in process_meeting_text\\n return self._process_multistep(text, force, interactive, report)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 108, in _process_multistep\\n similar = graph_store.find_similar_episode(text, threshold=0.92)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\graph_store.py\\\", line 730, in find_similar_episode\\n query_embedding = embedding_service.embed_text(text)\\nopenai.BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\\n\"\n}", + "tool_call_id": "chatcmpl-tool-96e14cbce40f6265", + "created_at": "2026-06-24T16:10:20.459137" + }, + { + "tool_name": "store_meeting_memory", + "arguments": { + "file_path": "C:\\Users\\admin\\Downloads\\会议原文\\transcript_710.md" + }, + "thought": "The user wants me to organize the Markdown files in `C:\\Users\\admin\\Downloads\\会议原文`.\nI have already:\n1. Listed the files in the directory.\n2. Successfully processed `文件会议 06-11 15_52-Transcript.md`.\n3. Failed to process `transcript_704.md` because it exceeds the token limit (32769 tokens).\n\nThe error `BadRequestError: Error code: 400 ... contains at least 32769 input tokens` indicates that `transcript_704.md` is too large for a single `store_meeting_memory` call using the current embedding/processing logic.\n\nI need to:\n1. Acknowledge the success of the first file.\n2. Explain the issue with `transcript_704.md` (too large).\n3. Try to process the other files (`transcript_710.md`, `transcript_711.md`, `transcript_712.md`) to see if they also fail or succeed.\n4. For the large file, I might need to suggest splitting it or processing it in chunks if the tool supports it, but since I don't have a \"split file\" tool, I'll try the others first.\n\nLet's check the size/content of the remaining files. I'll try to process `transcript_710.md` next.", + "result": "{\n \"success\": false,\n \"error\": \"BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\",\n \"tool_name\": \"store_meeting_memory\",\n \"tool_args\": {\n \"file_path\": \"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_710.md\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 187, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 38, in \\n handler=lambda ctx, args: _store_meeting_memory(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 67, in _store_meeting_memory\\n result = service.store_meeting_memory(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 49, in store_meeting_memory\\n archive_path = meeting_processor.process_meeting_text(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 48, in process_meeting_text\\n return self._process_multistep(text, force, interactive, report)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 108, in _process_multistep\\n similar = graph_store.find_similar_episode(text, threshold=0.92)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\graph_store.py\\\", line 730, in find_similar_episode\\n query_embedding = embedding_service.embed_text(text)\\nopenai.BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\\n\"\n}", + "tool_call_id": "chatcmpl-tool-ba0264b03d9134d7", + "created_at": "2026-06-24T16:10:37.996677" + }, + { + "tool_name": "store_meeting_memory", + "arguments": { + "file_path": "C:\\Users\\admin\\Downloads\\会议原文\\transcript_711.md" + }, + "thought": "", + "result": "{\n \"success\": false,\n \"error\": \"BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\",\n \"tool_name\": \"store_meeting_memory\",\n \"tool_args\": {\n \"file_path\": \"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_711.md\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 187, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 38, in \\n handler=lambda ctx, args: _store_meeting_memory(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 67, in _store_meeting_memory\\n result = service.store_meeting_memory(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 49, in store_meeting_memory\\n archive_path = meeting_processor.process_meeting_text(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 48, in process_meeting_text\\n return self._process_multistep(text, force, interactive, report)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 108, in _process_multistep\\n similar = graph_store.find_similar_episode(text, threshold=0.92)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\graph_store.py\\\", line 730, in find_similar_episode\\n query_embedding = embedding_service.embed_text(text)\\nopenai.BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\\n\"\n}", + "tool_call_id": "chatcmpl-tool-9d4f082616fce524", + "created_at": "2026-06-24T16:10:45.654305" + }, + { + "tool_name": "store_meeting_memory", + "arguments": { + "file_path": "C:\\Users\\admin\\Downloads\\会议原文\\transcript_712.md" + }, + "thought": "", + "result": "{\n \"success\": false,\n \"error\": \"BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\",\n \"tool_name\": \"store_meeting_memory\",\n \"tool_args\": {\n \"file_path\": \"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_712.md\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 187, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 38, in \\n handler=lambda ctx, args: _store_meeting_memory(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 67, in _store_meeting_memory\\n result = service.store_meeting_memory(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 49, in store_meeting_memory\\n archive_path = meeting_processor.process_meeting_text(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 48, in process_meeting_text\\n return self._process_multistep(text, force, interactive, report)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 108, in _process_multistep\\n similar = graph_store.find_similar_episode(text, threshold=0.92)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\graph_store.py\\\", line 730, in find_similar_episode\\n query_embedding = embedding_service.embed_text(text)\\nopenai.BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\\n\"\n}", + "tool_call_id": "chatcmpl-tool-b0c716b17e80f4f6", + "created_at": "2026-06-24T16:10:47.140240" + } + ] + }, + { + "turn_id": 3, + "started_at": "2026-06-24T16:15:31.957343", + "completed_at": "2026-06-24T16:36:48.933967", + "user_message": "先处理这一个呢,我的模型上下文开始有13W的\n\n附加文本文件已保存,可直接读取或导入:\n- transcript_704.md: D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_cb1881c79c14\\1782288931955_1_transcript_704.md", + "assistant_final": "Agent run cancelled by user.", + "tool_calls": [ + { + "tool_name": "read_file", + "arguments": { + "path": "agent_memory\\uploads\\chat_cb1881c79c14\\1782288931955_1_transcript_704.md" + }, + "thought": "The user wants me to process a specific file: `D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_cb1881c79c14\\1782288931955_1_transcript_704.md`.\nThe user mentioned their model context is 130k, implying they think I can handle larger files directly. However, the previous error message indicated that `store_meeting_memory` failed because the file was too large (likely hitting a limit in the *tool's* backend or the extraction process, not necessarily the LLM's context window).\n\nWait, the error message in the previous turn said: \"这些文件的内容长度均超过了系统单次处理的 32,768 tokens 上限\". This is a constraint of the `store_meeting_memory` tool itself (the extraction engine), not the LLM context.\n\nTo process this file, I should:\n1. Read the file content using `read_file` to see how large it actually is and what's inside.\n2. If it's too large for a single `store_meeting_memory` call, I will have to read it in chunks and process it.\n3. However, `store_meeting_memory` is designed to ingest a whole meeting. If I read it in chunks, I might lose the global context/entity linking if I don't do it carefully. But since the tool handles extraction, if I feed it a piece, it will store what it finds.\n\nLet's start by reading the file.", + "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_cb1881c79c14\\\\1782288931955_1_transcript_704.md\",\n \"content\": \"# 会议704\\n\\n\\n\\n**会议时间**:00:00:01 - 02:08:54\\n\\n\\n\\n**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8\\n\\n\\n\\n## 会议记录\\n\\n\\n\\n**[00:00:01] 发言人 0**:来吧。\\n\\n\\n\\n**[00:00:02] 发言人 1**:嗯上。\\n\\n\\n\\n**[00:00:04] 发言人 2**:周的话能再对一下,然后定开这边上周跟王总他们。\\n\\n\\n\\n**[00:00:16] 发言人 2**:数次,然后云计销售部这边也会协调一起去跟进一下,然后追加产品。\\n\\n\\n\\n**[00:00:23] 发言人 2**:这边上周报的是217万的地。\\n\\n\\n\\n**[00:00:30] 发言人 2**:收入对应的毛利都是按30%去做的一个现在的话目前已经完成了79万的收入。\\n\\n\\n\\n**[00:00:39] 发言人 2**:高风险这边我觉得还有两个星期大后面冲刺的一个情况,上次沟通之后放了两个项目,一个是南案的运维。\\n\\n\\n\\n**[00:00:54] 发言人 2**:一个就是孟国用,这两个是可以接手保络。\\n\\n\\n\\n**[00:00:59] 发言人 2**:像目前总这边是1480万的收入,145毛利千头,这边没什么变化。\\n\\n\\n\\n**[00:01:06] 发言人 2**:现在这样看的话,毛利是386万的低风险。\\n\\n\\n\\n**[00:01:12] 发言人 2**:今年的用户是在。\\n\\n\\n\\n**[00:01:14] 发言人 0**:78万左右,我就在在这个边边上半年这个半年转正边上,还是很艰难。\\n\\n\\n\\n**[00:01:26] 发言人 0**:你看都是骑系统,这很麻烦,统毕都单单就。\\n\\n\\n\\n**[00:01:33] 发言人 1**:这么情况。\\n\\n\\n\\n**[00:01:36] 发言人 0**:好吧。\\n\\n\\n\\n**[00:01:38] 发言人 2**:你这边没有。\\n\\n\\n\\n**[00:01:38] 发言人 0**:而且我们打猎我们做的小,你家紫薇他们卖这个显卡卖的,我操人家半年几千万的精利润的,我操。\\n\\n\\n\\n**[00:01:48] 发言人 0**:所以说你集成你也做不过人家,我操这我们只有好容才能对标,好容是做大集成的也没有用,我操那人家做动辄几千万,动辄雪求说,你人家这个做不过,这集成也做不过,他们也是过货,但是过货人家做的也比咱们没办法好。\\n\\n\\n\\n**[00:02:10] 发言人 2**:然后现在全年预估有3.2,主要是因为协同营销物流卡这边近期要签一个七千多万的项目,所以。\\n\\n\\n\\n**[00:02:21] 发言人 2**:具体跟工这个项目的情况再进行调整,我这边数据会议今天弄完之后给。\\n\\n\\n\\n**[00:02:31] 发言人 2**:其他就没有开始吗?\\n\\n\\n\\n**[00:02:33] 发言人 2**:他有个七千多。\\n\\n\\n\\n**[00:02:35] 发言人 0**:万的计算。\\n\\n\\n\\n**[00:02:35] 发言人 2**:要计收吗?\\n\\n\\n\\n**[00:02:36] 发言人 2**:今年是说要准备计收,但是合同现在还在谈。\\n\\n\\n\\n**[00:02:41] 发言人 0**:他。\\n\\n\\n\\n**[00:02:42] 发言人 2**:是分批次发货的,这个。\\n\\n\\n\\n**[00:02:46] 发言人 0**:月记不了好。\\n\\n\\n\\n**[00:02:51] 发言人 2**:我这边就我之前看。\\n\\n\\n\\n**[00:02:57] 发言人 0**:好,继续。\\n\\n\\n\\n**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。\\n\\n\\n\\n**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。\\n\\n\\n\\n**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。\\n\\n\\n\\n**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。\\n\\n\\n\\n**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。\\n\\n\\n\\n**[00:03:57] 发言人 3**:现在累计已经收到了1297. \\n\\n\\n\\n**[00:04:02] 发言人 0**:那我们没电。\\n\\n\\n\\n**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。\\n\\n\\n\\n**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。\\n\\n\\n\\n**[00:04:12] 发言人 3**:所以说他这个。\\n\\n\\n\\n**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。\\n\\n\\n\\n**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。\\n\\n\\n\\n**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。\\n\\n\\n\\n**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。\\n\\n\\n\\n**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。\\n\\n\\n\\n**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。\\n\\n\\n\\n**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,不垫资,预付30%,发货前70%。\\n\\n\\n\\n**[00:05:15] 发言人 3**:目前谈的是这么一个。\\n\\n\\n\\n**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。\\n\\n\\n\\n**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。\\n\\n\\n\\n**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。\\n\\n\\n\\n**[00:05:34] 发言人 0**:有到期。\\n\\n\\n\\n**[00:05:35] 发言人 0**:几个点。\\n\\n\\n\\n**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。\\n\\n\\n\\n**[00:05:49] 发言人 4**:个要走什么东西。\\n\\n\\n\\n**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。\\n\\n\\n\\n**[00:05:58] 发言人 0**:个点是另外的。\\n\\n\\n\\n**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。\\n\\n\\n\\n**[00:06:03] 发言人 3**:胡松还没找你,但是。\\n\\n\\n\\n**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。\\n\\n\\n\\n**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。\\n\\n\\n\\n**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。\\n\\n\\n\\n**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。\\n\\n\\n\\n**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。\\n\\n\\n\\n**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。\\n\\n\\n\\n**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。\\n\\n\\n\\n**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。\\n\\n\\n\\n**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天豪去跟你沟通通。\\n\\n\\n\\n**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。\\n\\n\\n\\n**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗?\\n\\n\\n\\n**[00:07:29] 发言人 3**:那谁接呢?\\n\\n\\n\\n**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。\\n\\n\\n\\n**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做?\\n\\n\\n\\n**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。\\n\\n\\n\\n**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。\\n\\n\\n\\n**[00:08:04] 发言人 5**:我们今天把超就算快。\\n\\n\\n\\n**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。\\n\\n\\n\\n**[00:08:11] 发言人 0**:两种方案的成本就不太一样。\\n\\n\\n\\n**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。\\n\\n\\n\\n**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。\\n\\n\\n\\n**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。\\n\\n\\n\\n**[00:08:49] 发言人 0**:放碑。\\n\\n\\n\\n**[00:08:59] 发言人 3**:的。\\n\\n\\n\\n**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。\\n\\n\\n\\n**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。\\n\\n\\n\\n**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。\\n\\n\\n\\n**[00:09:26] 发言人 0**:天天去管理。\\n\\n\\n\\n**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。\\n\\n\\n\\n**[00:09:41] 发言人 5**:有有多少人,那这个个。\\n\\n\\n\\n**[00:09:46] 发言人 0**:个这。\\n\\n\\n\\n**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。\\n\\n\\n\\n**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。\\n\\n\\n\\n**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。\\n\\n\\n\\n**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。\\n\\n\\n\\n**[00:10:16] 发言人 0**:不并不大是吧?\\n\\n\\n\\n**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个?\\n\\n\\n\\n**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。\\n\\n\\n\\n**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。\\n\\n\\n\\n**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。\\n\\n\\n\\n**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。\\n\\n\\n\\n**[00:10:54] 发言人 3**:好,那我继续。\\n\\n\\n\\n**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。\\n\\n\\n\\n**[00:11:17] 发言人 3**:然后周俊杰和何。\\n\\n\\n\\n**[00:11:20] 发言人 0**:丽湘配合。\\n\\n\\n\\n**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行?\\n\\n\\n\\n**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。\\n\\n\\n\\n**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。\\n\\n\\n\\n**[00:11:40] 发言人 3**:让紫薇看一下。\\n\\n\\n\\n**[00:11:41] 发言人 0**:给紫薇也看一下。\\n\\n\\n\\n**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。\\n\\n\\n\\n**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。\\n\\n\\n\\n**[00:11:50] 发言人 3**:因为你这。\\n\\n\\n\\n**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧?\\n\\n\\n\\n**[00:11:56] 发言人 0**:说实话我们就帮忙居多。\\n\\n\\n\\n**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。\\n\\n\\n\\n**[00:12:06] 发言人 3**:那我起草一份微对你。\\n\\n\\n\\n**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。\\n\\n\\n\\n**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期好龙也准备好了。\\n\\n\\n\\n**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。\\n\\n\\n\\n**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。\\n\\n\\n\\n**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。\\n\\n\\n\\n**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。\\n\\n\\n\\n**[00:12:47] 发言人 0**:还是说的那个咱本能。\\n\\n\\n\\n**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。\\n\\n\\n\\n**[00:13:10] 发言人 3**:对对对。\\n\\n\\n\\n**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧?\\n\\n\\n\\n**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。\\n\\n\\n\\n**[00:13:29] 发言人 0**:你这个就是有就行,边际成本。\\n\\n\\n\\n**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。\\n\\n\\n\\n**[00:13:37] 发言人 0**:这个不对,不是吧?\\n\\n\\n\\n**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。\\n\\n\\n\\n**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧?\\n\\n\\n\\n**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。\\n\\n\\n\\n**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你?\\n\\n\\n\\n**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要?\\n\\n\\n\\n**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对?\\n\\n\\n\\n**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。\\n\\n\\n\\n**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧?\\n\\n\\n\\n**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。\\n\\n\\n\\n**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。\\n\\n\\n\\n**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。\\n\\n\\n\\n**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。\\n\\n\\n\\n**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。\\n\\n\\n\\n**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整?\\n\\n\\n\\n**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。\\n\\n\\n\\n**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我?\\n\\n\\n\\n**[00:15:40] 发言人 5**:都其实有好多人在报。\\n\\n\\n\\n**[00:15:42] 发言人 0**:在哪怎么报?\\n\\n\\n\\n**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着?\\n\\n\\n\\n**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。\\n\\n\\n\\n**[00:15:51] 发言人 5**:不不不,你说话要负责的。\\n\\n\\n\\n**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少?\\n\\n\\n\\n**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。\\n\\n\\n\\n**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。\\n\\n\\n\\n**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那是有人报,有人报。\\n\\n\\n\\n**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。\\n\\n\\n\\n**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧?\\n\\n\\n\\n**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。\\n\\n\\n\\n**[00:16:34] 发言人 0**:行,两千美金,两千美金。\\n\\n\\n\\n**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。\\n\\n\\n\\n**[00:16:39] 发言人 0**:这羊出羊,那他们那个。\\n\\n\\n\\n**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。\\n\\n\\n\\n**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。\\n\\n\\n\\n**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢?\\n\\n\\n\\n**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。\\n\\n\\n\\n**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。\\n\\n\\n\\n**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧?\\n\\n\\n\\n**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。\\n\\n\\n\\n**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。\\n\\n\\n\\n**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操,你这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。\\n\\n\\n\\n**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少?\\n\\n\\n\\n**[00:18:12] 发言人 0**:以后需要多少,怎么做?\\n\\n\\n\\n**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token?\\n\\n\\n\\n**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗?\\n\\n\\n\\n**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧?\\n\\n\\n\\n**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型?\\n\\n\\n\\n**[00:18:36] 发言人 0**:还没有。\\n\\n\\n\\n**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。\\n\\n\\n\\n**[00:18:43] 发言人 0**:那些我们做的财务。\\n\\n\\n\\n**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。\\n\\n\\n\\n**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。\\n\\n\\n\\n**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。\\n\\n\\n\\n**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。\\n\\n\\n\\n**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。\\n\\n\\n\\n**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。\\n\\n\\n\\n**[00:19:29] 发言人 0**:我们算的清账吗?\\n\\n\\n\\n**[00:19:30] 发言人 0**:关键你现在算不清账吗?\\n\\n\\n\\n**[00:19:32] 发言人 0**:你知道吧?\\n\\n\\n\\n**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。\\n\\n\\n\\n**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对?\\n\\n\\n\\n**[00:19:42] 发言人 0**:他就拿市场比市场平济市场,我们水油拿去卖,拿到那个街上。\\n\\n\\n\\n**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方?\\n\\n\\n\\n**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那妈人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。\\n\\n\\n\\n**[00:19:58] 发言人 0**:我操是吧?\\n\\n\\n\\n**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。\\n\\n\\n\\n**[00:20:05] 发言人 0**:行。\\n\\n\\n\\n**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。\\n\\n\\n\\n**[00:20:14] 发言人 5**:所以说我觉得。\\n\\n\\n\\n**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧?\\n\\n\\n\\n**[00:20:24] 发言人 0**:这后面的这个叫什么呢?\\n\\n\\n\\n**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。\\n\\n\\n\\n**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。\\n\\n\\n\\n**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢?\\n\\n\\n\\n**[00:20:44] 发言人 0**:你为你们做,这是个工程。\\n\\n\\n\\n**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。\\n\\n\\n\\n**[00:20:56] 发言人 0**:你就跟那个。\\n\\n\\n\\n**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。\\n\\n\\n\\n**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他跟他去确认,因为说确认了一次,不是上我他我周六。\\n\\n\\n\\n**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。\\n\\n\\n\\n**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。\\n\\n\\n\\n**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. \\n\\n\\n\\n**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。\\n\\n\\n\\n**[00:21:25] 发言人 3**:会说不给我的。\\n\\n\\n\\n**[00:21:26] 发言人 3**:吴家表那。\\n\\n\\n\\n**[00:21:27] 发言人 0**:有一台没了。\\n\\n\\n\\n**[00:21:28] 发言人 5**:他发到发到。\\n\\n\\n\\n**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。\\n\\n\\n\\n**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。\\n\\n\\n\\n**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。\\n\\n\\n\\n**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。\\n\\n\\n\\n**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体?\\n\\n\\n\\n**[00:21:50] 发言人 5**:好,我还真知道。\\n\\n\\n\\n**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。\\n\\n\\n\\n**[00:21:57] 发言人 6**:硬件搞搞,是100的. \\n\\n\\n\\n**[00:21:59] 发言人 0**:3分之1都算的。\\n\\n\\n\\n**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗?\\n\\n\\n\\n**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。\\n\\n\\n\\n**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。\\n\\n\\n\\n**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。\\n\\n\\n\\n**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道?\\n\\n\\n\\n**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对?\\n\\n\\n\\n**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。\\n\\n\\n\\n**[00:22:58] 发言人 0**:他没有dream,他就是要资源互投资,哪有那么个dream。\\n\\n\\n\\n**[00:23:01] 发言人 0**:说了几年的剧,只问毛剧,所以我们这也不存在dream不剧,我们剧最多就是一年半年,今年能不能做,明年能不能做做不了就别做了,没剧没就那么点钱,哪有剧。\\n\\n\\n\\n**[00:23:13] 发言人 0**:所以说我说回来就是你们能不能至少在他妈的要资源护图的这一块,你们能不能给我那个正。\\n\\n\\n\\n**[00:23:24] 发言人 5**:规军。\\n\\n\\n\\n**[00:23:26] 发言人 5**:好。\\n\\n\\n\\n**[00:23:27] 发言人 0**:我们下来再开展这个交易。\\n\\n\\n\\n**[00:23:29] 发言人 0**:参加以后我们再开展这个问题,把这个把硬件把这么给搞明白,我操你们,这个其实我实话实说,没好意思说我在外面吹牛,实际上还是游击队,紫光汇智游击队信息技术有限公司。\\n\\n\\n\\n**[00:23:43] 发言人 0**:我操哪天把游戏都脱掉,铁道游击队。\\n\\n\\n\\n**[00:23:54] 发言人 0**:这点抽点东西过个货,那抽点东西过个货就提到一个月。\\n\\n\\n\\n**[00:24:02] 发言人 0**:好,继续。\\n\\n\\n\\n**[00:24:03] 发言人 3**:我招人的话,九个人九个省可没问题了。\\n\\n\\n\\n**[00:24:07] 发言人 3**:我们个曾幸福,云南那个那个人韩东生,我下午约四点再面一下,如果没问题。\\n\\n\\n\\n**[00:24:17] 发言人 3**:进来,然后韩东生,刚刚我跟孙刚也聊了,让陈畅也跟他面对面沟通。\\n\\n\\n\\n**[00:24:24] 发言人 3**:有下午我自己再跟他聊一下。\\n\\n\\n\\n**[00:24:27] 发言人 0**:但是约了十天。\\n\\n\\n\\n**[00:24:29] 发言人 3**:然后关于明智的各省份的考核数数据现在C 2M上是1.8亿的空间。\\n\\n\\n\\n**[00:24:36] 发言人 3**:然上周一我们开会让他们把所有的空间填报C 25的信息的准确度重新更新里面。\\n\\n\\n\\n**[00:24:44] 发言人 3**:目前来看在九个销售里面的省份,预估六月下单金额在307万,准确率我们认为应该是已经达到80%的准确率的。\\n\\n\\n\\n**[00:24:55] 发言人 3**:这个C M目前已下达了只有万,就是六月份单月总计预估下达307万,已完成56万。\\n\\n\\n\\n**[00:25:04] 发言人 3**:我刚刚会前跟三郎也讨论一下这十个省份云质的任务。\\n\\n\\n\\n**[00:25:10] 发言人 3**:我们是把6到12月对他入职时长,6到12月把他们拉了一下经营20年的任务。\\n\\n\\n\\n**[00:25:17] 发言人 3**:然后有两个内蒙河南和重庆的杨思磊,然后张贵和杨思磊因为在职12个月就挂了全年任务,剩余的就根据食长来我们列了,目前预估差不多在2800万云值销售,云质销售就26年的任务。\\n\\n\\n\\n**[00:25:33] 发言人 3**:然后下周我们会最终我们把正式的跟每个人。\\n\\n\\n\\n**[00:25:41] 发言人 3**:最后是有几个求助,一个就是汇智牌的3650和5600的检测报告,具体这面加快一下。\\n\\n\\n\\n**[00:25:50] 发言人 3**:6月26号八号米这有个标要投100万左右的标地,这两个终端的费用用到。\\n\\n\\n\\n**[00:25:57] 发言人 6**:需要检测报告。\\n\\n\\n\\n**[00:25:59] 发言人 3**:6月26号没有出来。\\n\\n\\n\\n**[00:26:01] 发言人 3**:能不能做来出来。\\n\\n\\n\\n**[00:26:03] 发言人 6**:这个我你出不。\\n\\n\\n\\n**[00:26:05] 发言人 3**:我到时候想办法,你把他现在是给了的么报告模板给销售,这个我们就不去能力,如果能出来,我们就催一下,因为他是已经定好开标这两个终端也已包括价格,我催一下,有可能能出来。\\n\\n\\n\\n**[00:26:20] 发言人 6**:但是这个不保证,不保百分之百,你催一下急。\\n\\n\\n\\n**[00:26:24] 发言人 6**:对。\\n\\n\\n\\n**[00:26:25] 发言人 4**:他已经是。\\n\\n\\n\\n**[00:26:25] 发言人 3**:加催急了。\\n\\n\\n\\n**[00:26:26] 发言人 6**:我们上周我们当时搞过检测报告。\\n\\n\\n\\n**[00:26:29] 发言人 3**:我检测报告我们的是我们上次紫发软件是带病忙的,马上招标。\\n\\n\\n\\n**[00:26:35] 发言人 6**:我跟你说说都花。\\n\\n\\n\\n**[00:26:36] 发言人 3**:十天就搞下来,拿掉个我就催训志给的这个报告。\\n\\n\\n\\n**[00:26:41] 发言人 6**:我感觉没那上周是我们集团对我们的商标合同耽搁了十天,集团才今天早上才给到,我们也一直在催集团到没有到期,但是人家说你到期时间太短了,他不给我批正什么起的尤尼森是那个商标紫光集的。\\n\\n\\n\\n**[00:27:03] 发言人 6**:然后是7月6号到期,然后其实没到期,但是证书机构是认为我们那个到期时间太短了让我们重新一签。\\n\\n\\n\\n**[00:27:14] 发言人 6**:我想我们我要和华润。\\n\\n\\n\\n**[00:27:17] 发言人 1**:法找个集团。\\n\\n\\n\\n**[00:27:19] 发言人 3**:然第就是公安机策问题。\\n\\n\\n\\n**[00:27:23] 发言人 0**:已到全。\\n\\n\\n\\n**[00:27:25] 发言人 6**:那单如果拖拖。\\n\\n\\n\\n**[00:27:28] 发言人 0**:他们这次。\\n\\n\\n\\n**[00:27:30] 发言人 6**:已经很是因为有两个流程。\\n\\n\\n\\n**[00:27:37] 发言人 0**:继续。\\n\\n\\n\\n**[00:27:38] 发言人 3**:然后关于像公安的一期专用的问题,我们上周第一顺国找了南海公安做测试。\\n\\n\\n\\n**[00:27:47] 发言人 3**:第二我找了市局。\\n\\n\\n\\n**[00:27:51] 发言人 3**:都没有遇到过在公安网或者是电子网,或者视频专网一起发问的情况。\\n\\n\\n\\n**[00:27:58] 发言人 3**:也孙伟找到北信源,北信源也答复没有那个安全边界,他们想做但还没做,所以说就完全不一样。\\n\\n\\n\\n**[00:28:07] 发言人 3**:所以说榆林公安那个榆林公安是这样的。\\n\\n\\n\\n**[00:28:11] 发言人 6**:我们问他内蒙,我说内蒙你们到底是怎么在用机方用?\\n\\n\\n\\n**[00:28:16] 发言人 6**:最后他是说那个机子是接两个网口都接了公安网,但是他们在公安网里面把它分成了数据域和用户域两套语。\\n\\n\\n\\n**[00:28:27] 发言人 6**:用那个是正常的,那个是可以用他他们他们是这样的用好,榆林公安现。\\n\\n\\n\\n**[00:28:34] 发言人 3**:在就是不知道他们要怎么用。\\n\\n\\n\\n**[00:28:36] 发言人 3**:没榆林公安那个漏洞反馈回来的就是公安网和电子网。\\n\\n\\n\\n**[00:28:41] 发言人 6**:不是他的不动打电话了,他报告写的给我写的报告那个报告他说他最初是客户说他们云桌面要用到公安和网和政务外网,但并没说要跨两个网段。\\n\\n\\n\\n**[00:28:55] 发言人 6**:然后他们现在也去问了,不知道客户到底要怎么用,因为这个还没装,但是这个东西是客户明确要求就装网口,他谁我们去装,所以装的时候要他们部署给我们反馈。\\n\\n\\n\\n**[00:29:10] 发言人 3**:一个人说了,这里就是两个问题,一个是我跟苏伟跟俊杰也开了这个会议,如果是我们去装双网口,如果是政策不允许,最后影响的肯定是这个位置。\\n\\n\\n\\n**[00:29:21] 发言人 3**:对,就是公安肯定会甩锅。\\n\\n\\n\\n**[00:29:23] 发言人 3**:公安不可能因为这个事丢自己的不纱帽。\\n\\n\\n\\n**[00:29:27] 发言人 3**:那为这个事情就是政策问题,到底允许不允许北信源我们在里面买全器,他厂家自己都说他没做,那怎么会涉及那安全?\\n\\n\\n\\n**[00:29:36] 发言人 3**:所以我们里面。\\n\\n\\n\\n**[00:29:38] 发言人 0**:没有法务的风险,那个已经给卖,已经给给那个基本。\\n\\n\\n\\n**[00:29:43] 发言人 5**:上还我卖出去了。\\n\\n\\n\\n**[00:29:44] 发言人 0**:卖出去也到没有什么。\\n\\n\\n\\n**[00:29:46] 发言人 3**:按理说出问题,出问题你厂家就会有风险,谁接的那个谁就要负责任,就是谁机接一线是。\\n\\n\\n\\n**[00:29:54] 发言人 6**:有问题的。\\n\\n\\n\\n**[00:29:55] 发言人 6**:但是本身产品没问题,因为我产品多了一个网格。\\n\\n\\n\\n**[00:29:59] 发言人 0**:你产品问题是你合同里面有没有设方案,你的之间有没有,那叫叫法律分歧,说他妈的你说你可以,结果不可以。\\n\\n\\n\\n**[00:30:08] 发言人 0**:因为你造这个方案的时候,经销商觉得我马上就卖了,但最后经销商打官司联用了,经销商退货了。\\n\\n\\n\\n**[00:30:16] 发言人 0**:也就是说在合同里面你。\\n\\n\\n\\n**[00:30:18] 发言人 6**:承诺我的你没达到,对客户没说他要怎么用,但是他客户。\\n\\n\\n\\n**[00:30:23] 发言人 3**:就要刷网口,这个方面不是我们设计的,我是他要。\\n\\n\\n\\n**[00:30:26] 发言人 3**:彭总不知道记不记得18年的时候,王云还在立维的时候,19年深圳商汤就爆了一个雷,虽然是基层商买的桑汤,供给公安做的人脸识别,但是整个深圳市公安稽查和公示的是孙信福泄露了深圳市仓库库中标。\\n\\n\\n\\n**[00:30:46] 发言人 3**:不是孙信福,是桑汤泄露深圳市仓储库,我直接划成一个大红头文件,在网公网上公示的。\\n\\n\\n\\n**[00:30:54] 发言人 3**:虽然不是商汤直接中标,商汤也不会直接中标。\\n\\n\\n\\n**[00:30:59] 发言人 3**:但就是说商涛的人脸识别这套系统,把深圳仓储库给泄露了。\\n\\n\\n\\n**[00:31:04] 发言人 3**:原因是他缓存深圳仓储库,被别人在实频专网给他攻击了,把仓储库拿走,厂家肯定会有这个影响。\\n\\n\\n\\n**[00:31:11] 发言人 3**:所以说我在搞这个试点测试的过程中,我至少就业务层面从南安华送我们的,包含罗天华,从市科兴镇的。\\n\\n\\n\\n**[00:31:19] 发言人 3**:是没有遇到,就直接过。\\n\\n\\n\\n**[00:31:21] 发言人 0**:现在上没有使,因为本来我就是希望这个做一个案例,做一个可复制的案例,因为公安这个事还是很大,是吧?\\n\\n\\n\\n**[00:31:29] 发言人 0**:你这了解一下。\\n\\n\\n\\n**[00:31:31] 发言人 4**:这原则上我建议如果业主不给我们材料的话,他不给我就是不管是这种材料,不管挂哪,我你必须下到命令给我,给个东西给我才能建议,不管是管我事情还卖我,这三个我绝对不能乱传,因为当时我们来面公。\\n\\n\\n\\n**[00:31:49] 发言人 0**:交流所有不好。\\n\\n\\n\\n**[00:31:50] 发言人 3**:那最后一个就是今天早上那个谁与志伟过错的一个字,自发政开发这政厅就是产妇找的,他产妇找的,他说我们报价太高,我要是为能不能协调地力开发申请,报价太高。\\n\\n\\n\\n**[00:32:08] 发言人 7**:的问题是包含这付费用。\\n\\n\\n\\n**[00:32:11] 发言人 7**:他他跟我说的是。\\n\\n\\n\\n**[00:32:12] 发言人 3**:一开始我们报的15个变成7.5,结果那个产妇跟他说,你们最多给你2万块钱。\\n\\n\\n\\n**[00:32:20] 发言人 3**:能够做这个事情,这个细节看谁能帮于志伟去协调一下。\\n\\n\\n\\n**[00:32:26] 发言人 0**:这个事是谁来管。\\n\\n\\n\\n**[00:32:28] 发言人 3**:是华山,但是确定孙兴福已经在这个,这人庭目上已经。\\n\\n\\n\\n**[00:32:34] 发言人 0**:设计完了,核实孙兴福。\\n\\n\\n\\n**[00:32:36] 发言人 0**:谁什么意思?\\n\\n\\n\\n**[00:32:37] 发言人 0**:这个项目。\\n\\n\\n\\n**[00:32:38] 发言人 7**:是底是云的项目,想浙江省数据局的一个云肉面的项目,他但是浙江不是政务网上有个自政钉,钉钉的就是阿里宝的钉钉的一个东西,所有的政务网上都要跟这个硬接,有些可能我们开。\\n\\n\\n\\n**[00:32:58] 发言人 0**:这个接口。\\n\\n\\n\\n**[00:32:59] 发言人 7**:他们评估了大概10万15万研发。\\n\\n\\n\\n**[00:33:03] 发言人 0**:研华三海,那这肯定。\\n\\n\\n\\n**[00:33:05] 发言人 7**:他们来来来定制。\\n\\n\\n\\n**[00:33:07] 发言人 0**:这个东西华山品华山三十多年的研发。\\n\\n\\n\\n**[00:33:11] 发言人 0**:对,三十多三十那肯定是乱评的那这个肯定没。\\n\\n\\n\\n**[00:33:17] 发言人 7**:这么搞的,但你这个2万块钱肯。\\n\\n\\n\\n**[00:33:20] 发言人 3**:定一高不?\\n\\n\\n\\n**[00:33:22] 发言人 3**:当时不就是说我们弄个人进进华山这种农。\\n\\n\\n\\n**[00:33:27] 发言人 0**:关键项目。\\n\\n\\n\\n**[00:33:30] 发言人 7**:要拿项目已经下。\\n\\n\\n\\n**[00:33:35] 发言人 3**:已。\\n\\n\\n\\n**[00:33:36] 发言人 7**:掉了。\\n\\n\\n\\n**[00:33:37] 发言人 0**:现在。\\n\\n\\n\\n**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。\\n\\n\\n\\n**[00:33:49] 发言人 3**:是么高。\\n\\n\\n\\n**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。\\n\\n\\n\\n**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。\\n\\n\\n\\n**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有问题的,他也没问我们。\\n\\n\\n\\n**[00:34:07] 发言人 0**:然后省付钱。\\n\\n\\n\\n**[00:34:08] 发言人 7**:省代省代就省代就是做,他肯定做不了。\\n\\n\\n\\n**[00:34:16] 发言人 3**:现在浙。\\n\\n\\n\\n**[00:34:19] 发言人 7**:江代表处。\\n\\n\\n\\n**[00:34:21] 发言人 3**:江表华华。\\n\\n\\n\\n**[00:34:23] 发言人 7**:华妇妇数志。\\n\\n\\n\\n**[00:34:27] 发言人 6**:投标过程啥。\\n\\n\\n\\n**[00:34:29] 发言人 7**:都没不上,自己管的对,也没问。\\n\\n\\n\\n**[00:34:35] 发言人 6**:我们。\\n\\n\\n\\n**[00:34:36] 发言人 6**:然后现在他。\\n\\n\\n\\n**[00:34:38] 发言人 7**:妈的我们。\\n\\n\\n\\n**[00:34:40] 发言人 6**:这个概就报端。\\n\\n\\n\\n**[00:34:42] 发言人 7**:到江。\\n\\n\\n\\n**[00:34:44] 发言人 6**:你们谈。\\n\\n\\n\\n**[00:34:44] 发言人 0**:反正如果后期有扩容这个的话,我觉得还是看看能不能结合这个合我们在个那我现在给。\\n\\n\\n\\n**[00:34:54] 发言人 7**:他是说175000,然后再跟他再再磨呗。\\n\\n\\n\\n**[00:34:58] 发言人 3**:首千华还说不,这个产妇比出来了,毕竟骨感可以重视的。\\n\\n\\n\\n**[00:35:03] 发言人 6**:好吧,像我们的。\\n\\n\\n\\n**[00:35:05] 发言人 7**:亏亏也没办法,有些人。\\n\\n\\n\\n**[00:35:08] 发言人 0**:该做还是75000,你是边际成本的,你亏啥亏。\\n\\n\\n\\n**[00:35:12] 发言人 3**:你反正那个人你都养。\\n\\n\\n\\n**[00:35:14] 发言人 0**:只要华商愿意给我干了。\\n\\n\\n\\n**[00:35:17] 发言人 7**:那几个人反正你都养了。\\n\\n\\n\\n**[00:35:19] 发言人 7**:好,这里面就是说他能做吗?\\n\\n\\n\\n**[00:35:23] 发言人 6**:农业新招的那个。\\n\\n\\n\\n**[00:35:24] 发言人 3**:他现在可以做。\\n\\n\\n\\n**[00:35:26] 发言人 3**:我认为这个归接跟人家就跟产。\\n\\n\\n\\n**[00:35:29] 发言人 0**:品主线一点关系没有,进不面试,你们走走,要走走。\\n\\n\\n\\n**[00:35:35] 发言人 7**:还是能做一些事情的,可以做不少事情的。\\n\\n\\n\\n**[00:35:38] 发言人 7**:就像类似的这种活就可以我。\\n\\n\\n\\n**[00:35:41] 发言人 0**:们就可以扔给他去做了。\\n\\n\\n\\n**[00:35:43] 发言人 0**:你觉得可以你就招。\\n\\n\\n\\n**[00:35:45] 发言人 0**:我觉得他们但时价格。\\n\\n\\n\\n**[00:35:47] 发言人 7**:他跟薪资这边他可能要总共加起来在2K左右。\\n\\n\\n\\n**[00:35:51] 发言人 0**:这个20K左右。\\n\\n\\n\\n**[00:35:58] 发言人 7**:你们看到,但是我觉得还是有有价值的。\\n\\n\\n\\n**[00:36:02] 发言人 7**:至少我们放一个人进去。\\n\\n\\n\\n**[00:36:04] 发言人 7**:而且张志辉答应过,就过两个月肯定把它放到这个研发场地里去工作的。\\n\\n\\n\\n**[00:36:09] 发言人 3**:好,继续,我这儿结束了没。\\n\\n\\n\\n**[00:36:13] 发言人 1**:其他没。\\n\\n\\n\\n**[00:36:32] 发言人 8**:这个的话一个是上周的话,一个是河北农信的有一个开发测试区网络建设的设备的这样的一个项目。\\n\\n\\n\\n**[00:36:43] 发言人 8**:然后的话这个事情是应该是到后续马上要签合同的,应个是。\\n\\n\\n\\n**[00:36:51] 发言人 8**:第二个的话是中国移动通信的青海有限公司,有一个d的一个集成投组伙伴的。\\n\\n\\n\\n**[00:37:00] 发言人 8**:我们应该是要去入他的一个编c的一个库。\\n\\n\\n\\n**[00:37:04] 发言人 8**:然我们上周的话是把我报了名,就应该是跟着项目走。\\n\\n\\n\\n**[00:37:12] 发言人 3**:这是王丽丽那。\\n\\n\\n\\n**[00:37:15] 发言人 1**:边算力小,目。\\n\\n\\n\\n**[00:37:18] 发言人 3**:动卖卖给买我们我们去买新华三四光合到一起有两个规模,王也利用为他主导这个销售,就看有没有机会。\\n\\n\\n\\n**[00:37:30] 发言人 3**:80%的工作目都谈的7788了,但现在我们就是相当于做移动的助理,要不然我。\\n\\n\\n\\n**[00:37:39] 发言人 3**:移动要求我们的电视厅汇。\\n\\n\\n\\n**[00:37:43] 发言人 0**:这个有。\\n\\n\\n\\n**[00:37:44] 发言人 3**:几个点,现在还没谈他他端午节回来要搞我,他那个就谢谢。\\n\\n\\n\\n**[00:37:52] 发言人 1**:我稍等等。\\n\\n\\n\\n**[00:37:53] 发言人 0**:好好继续。\\n\\n\\n\\n**[00:37:54] 发言人 8**:第三个也还是上次说的是就昌平的M4的一个这块的一个项目。\\n\\n\\n\\n**[00:38:04] 发言人 8**:然后的话我们上周的话是主要是看了一下他的图纸,图纸的话应该是还是不管是图纸也无权,然后清单的话又就遗漏的地方,我觉得可能就是重点的话是。\\n\\n\\n\\n**[00:38:18] 发言人 1**:要把那些图纸。\\n\\n\\n\\n**[00:38:19] 发言人 8**:清单这些东西把它理清楚。\\n\\n\\n\\n**[00:38:22] 发言人 8**:然后在后面的这个项目把它顺。\\n\\n\\n\\n**[00:38:32] 发言人 8**:第四个的话是辽宁,辽宁的那个。\\n\\n\\n\\n**[00:38:38] 发言人 8**:电视台的4K的项目,上周也汇报过,然后尽快的话推动它报。\\n\\n\\n\\n**[00:38:49] 发言人 8**:然后我这边的话是一个是那个视频号。\\n\\n\\n\\n**[00:38:52] 发言人 0**:数字也一直没搞好。\\n\\n\\n\\n**[00:38:54] 发言人 8**:对,因为搞本来是最开始搞搞好了一个,搞好了一个,甚至说我们那个微微胖里头以后不能够再用那个呃就是微胖的字。\\n\\n\\n\\n**[00:39:06] 发言人 0**:我们数字研究越来越回到了什们网上那个长得有点像那个了,他好像他们是故意这样的。\\n\\n\\n\\n**[00:39:16] 发言人 0**:牛娃二的数字很多,那女的都一样,女的都一样。\\n\\n\\n\\n**[00:39:20] 发言人 6**:发音都一,不是翻译。\\n\\n\\n\\n**[00:39:21] 发言人 0**:你没发现那女的都也是老的年轻的都一样,好多男的女的也一样。\\n\\n\\n\\n**[00:39:26] 发言人 0**:因为就一套。\\n\\n\\n\\n**[00:39:27] 发言人 6**:东西做出来,所以我觉得因。\\n\\n\\n\\n**[00:39:29] 发言人 0**:为那个成本低,或者说可能平时的什么也低,就在国内我觉得都走向那个方向。\\n\\n\\n\\n**[00:39:36] 发言人 6**:也每次都一样,语气都一样,我看他好,然后我人小气。\\n\\n\\n\\n**[00:39:41] 发言人 0**:就是脸五年的脸,你没发现你自己,你发现你你你看看就最近发布那个那个张艺发布那个就跟那个就跟我们那个那就开始瘦下来了,原来我们俩研人一样,就开始跟那个像了。\\n\\n\\n\\n**[00:39:54] 发言人 8**:他可能那种无论是因为我们做最后要做那个视频的话,他还是要通过那个C档次。\\n\\n\\n\\n**[00:40:01] 发言人 8**:C档的话他肯定里头他在做那个点的时候,他肯定是有他的一系列的规范条件的。\\n\\n\\n\\n**[00:40:09] 发言人 8**:所以说你越做就会和网上的那个数字点做的越来越像。\\n\\n\\n\\n**[00:40:15] 发言人 8**:就不管你怎么约束他,你给他写什么替示词,或者你的原始是你给到他了个他给你做出来的,可能他就会有。\\n\\n\\n\\n**[00:40:27] 发言人 8**:然后南岸的那个无人机。\\n\\n\\n\\n**[00:40:30] 发言人 4**:项目的话。\\n\\n\\n\\n**[00:40:31] 发言人 3**:那个是。\\n\\n\\n\\n**[00:40:33] 发言人 0**:但是也有很多高手。\\n\\n\\n\\n**[00:40:35] 发言人 0**:但是我怀疑这新浪子里面出来的那些,很多女生好看的各个但是只。\\n\\n\\n\\n**[00:40:43] 发言人 5**:要是那种叫什么快餐店出来的,全是一样。\\n\\n\\n\\n**[00:40:48] 发言人 5**:你用他平台的他太多了,只能用他拍的。\\n\\n\\n\\n**[00:40:52] 发言人 5**:还有就是自那个feel自己做那个。\\n\\n\\n\\n**[00:40:55] 发言人 5**:可所说我们做过。\\n\\n\\n\\n**[00:40:58] 发言人 0**:但他算消耗比较高。\\n\\n\\n\\n**[00:41:\n...[truncated]", + "tool_call_id": "chatcmpl-tool-86c2e1bb981aad56", + "created_at": "2026-06-24T16:15:42.866163" + }, + { + "tool_name": "store_meeting_memory", + "arguments": { + "file_path": "agent_memory\\uploads\\chat_cb1881c79c14\\1782288931955_1_transcript_704.md" + }, + "thought": "The user wants me to process a specific large file `transcript_704.md`.\nThe file content is a long transcript of a meeting.\nThe user mentioned that their model context is 130k, so I should be able to handle this file.\nHowever, the `store_meeting_memory` tool has a limitation (implied by previous turns) or I should check if I can use the file path directly.\nThe `store_meeting_memory` tool documentation says: `file_path`: \"会议转录文本文件路径。与 content 二选一;优先使用 file_path。\"\nThe file path is `agent_memory\\uploads\\chat_cb1881c79c14\\1782288931955_1_transcript_704.md`.\n\nWait, the previous turn's error message for other files was \"文件过大\". The file I just read is quite long (about 2 hours of transcript).\nLet's look at the `read_file` output. It's a JSON-like structure containing the content.\nThe content itself is quite large.\nI will try to use `store_meeting_memory` with the `file_path`.\n\nPlan:\n1. Call `store_meeting_memory` with the `file_path`.\n2. Report the result.", + "result": "{\n \"success\": false,\n \"error\": \"BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\",\n \"tool_name\": \"store_meeting_memory\",\n \"tool_args\": {\n \"file_path\": \"agent_memory\\\\uploads\\\\chat_cb1881c79c14\\\\1782288931955_1_transcript_704.md\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 187, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 38, in \\n handler=lambda ctx, args: _store_meeting_memory(meeting_service, ctx, args),\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\meeting_tools.py\\\", line 67, in _store_meeting_memory\\n result = service.store_meeting_memory(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\service.py\\\", line 49, in store_meeting_memory\\n archive_path = meeting_processor.process_meeting_text(\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 48, in process_meeting_text\\n return self._process_multistep(text, force, interactive, report)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\meeting_processor.py\\\", line 108, in _process_multistep\\n similar = graph_store.find_similar_episode(text, threshold=0.92)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\meeting_memory\\\\graph_store.py\\\", line 730, in find_similar_episode\\n query_embedding = embedding_service.embed_text(text)\\nopenai.BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\\n\"\n}", + "tool_call_id": "chatcmpl-tool-8330683058ddb0ea", + "created_at": "2026-06-24T16:16:20.425708" + }, + { + "tool_name": "run_python", + "arguments": { + "code": "import re\n\ndef split_transcript(text, num_chunks=4):\n # Pattern to match the timestamp: **[HH:MM:SS] 发言人 X**\n pattern = r'(\\*\\*\\[\\d{2}:\\d{2}:\\d{2}\\]\\s+发言人\\s+\\d+\\*\\*[::])'\n \n # Find all matches of the timestamp pattern\n matches = list(re.finditer(pattern, text))\n \n if not matches:\n # Fallback if pattern doesn't match\n chunk_size = len(text) // num_chunks\n return [text[i:i+chunk_size] for i in range(0, len(text), chunk_size)]\n\n # Group matches into chunks\n chunk_indices = [0]\n # We want to split the matches into num_chunks\n step = len(matches) // num_chunks\n for i in range(1, num_chunks):\n # Get the index of the match that starts the next chunk\n idx = matches[i * step].start()\n chunk_indices.append(idx)\n chunk_indices.append(len(text))\n\n chunks = []\n for i in range(len(chunk_indices) - 1):\n chunks.append(text[chunk_indices[i]:chunk_indices[i+1]])\n \n return chunks\n\n# The content is in the previous context, but I'll simulate reading it from the file to be safe\nfile_path = r'agent_memory\\uploads\\chat_cb1881c79c14\\1782288931955_1_transcript_704.md'\nwith open(file_path, 'r', encoding='utf-8') as f:\n content = f.read()\n\nchunks = split_transcript(content, num_chunks=4)\nfor i, chunk in enumerate(chunks):\n print(f\"--- CHUNK {i} (length: {len(chunk)}) ---\")\n print(chunk[:200] + \"...\") # Print preview\n" + }, + "thought": "The user wants me to process `transcript_704.md`. \nI attempted to use `store_meeting_memory` with the file path, but it failed because the file content exceeds the 32,768 token limit of the model used by the tool.\nThe file content is approximately 54 minutes of transcript (based on the timestamps 00:00:01 - 01:58:52).\nThe user mentioned their model context is 130k, so they believe it should be possible. However, the *tool* itself (`store_meeting_memory`) has a hard limit of 32,768 tokens for its internal LLM calls.\n\nI need to process this file in chunks. \nSince I can read the file, I will read it first to see its structure. I already did that in the previous turn.\nThe content is a long markdown file with timestamps.\nI will split the file into segments (e.g., by every 10-15 minutes of transcript or by a certain number of lines/characters) and call `store_meeting_memory` for each segment.\n\nLet's look at the content again.\nIt's roughly 0 to 118 minutes.\nI'll try to split it into ~4-5 chunks.\n\nPlan:\n1. Read the file content (done).\n2. Split the content into chunks.\n3. For each chunk, call `store_meeting_memory` with the `content` parameter.\n4. Report progress.\n\nWait, I should check if I can split it more intelligently. The file has `**[HH:MM:SS] 发言人 X**` format. I can split by these markers.\n\nLet's calculate how many chunks. Total duration is ~120 mins. 32k tokens is a lot, but this file is clearly over.\nI'll split it into roughly 4 chunks of 30 mins each.\n\nWait, I can't easily do \"30 mins\" without parsing. I'll just split the text into 4 equal parts or based on the timestamp.\nActually, I'll use Python to split it into chunks that are safe (e.g., 20,000 tokens or ~60,000 characters per chunk) and then loop through them.\n\nWait, I don't have a \"loop\" tool, I have to do it step-by-step or use `run_python` to help me prepare the chunks? No, I can't call `store_meeting_memory` inside `run_python`.\nI must call `store_meeting_memory` manually in my response.\n\nSince I can't do multiple tool calls in one turn to *loop*, I will:\n1. Use Python to split the text into a list of chunks.\n2. I'll print the chunks or just tell the user I'm doing it.\nActually, I can call `store_meeting_memory` multiple times in a single turn if the model allows? No, usually I can only output one tool call or a sequence.\nLet's try to process the first chunk first.\n\nFirst, I will use `run_python` to split the file content into safe chunks and return them to me.\nActually, I already have the content in the context. I'll just split it myself.\n\nThe file is about 120 minutes. \nI'll split by the `**[HH:MM:SS]` pattern.\n\nLet's try to split the content into 4 chunks.\nChunk 1: 00:00:00 to ~00:30:00\nChunk 2: 00:30:00 to ~01:00:00\nChunk 3: 01:00:00 to ~01:30:00\nChunk 4: 01:30:00 to end.\n\nI will attempt to call `store_meeting_memory` with the first chunk.\n\nWait, I should check the file size/token count more accurately if possible.\nThe `read_file` returned the whole content.\nI'll split it using Python to be precise.\n\nStep 1: Use Python to split the content into 4 chunks.\nStep 2: I'll call `store_meeting_memory` for the first chunk.\nStep 3: After the tool returns, I'll continue.\n\nWait, I can't \"continue\" in the same turn. I'll do one chunk at a time.\n\nLet's use Python to get the chunks.", + "result": "{\n \"success\": true,\n \"returncode\": 0,\n \"stdout\": \"--- CHUNK 0 (length: 18100) ---\\n# 会议704\\n\\n\\n\\n**会议时间**:00:00:01 - 02:08:54\\n\\n\\n\\n**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8\\n\\n\\n\\n## 会议记录\\n\\n\\n\\n**[00:00:01] 发言人 0**:来吧。\\n\\n\\n\\n**[00:00:02] 发言人 1**:嗯上。\\n\\n\\n\\n**[00:00:04] 发言人 ...\\n--- CHUNK 1 (length: 17813) ---\\n**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。\\n\\n\\n\\n**[00:33:49] 发言人 3**:是么高。\\n\\n\\n\\n**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。\\n\\n\\n\\n**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。\\n\\n\\n\\n**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有...\\n--- CHUNK 2 (length: 17966) ---\\n**[01:05:49] 发言人 0**:就这么说,原来我们收集信息,但你手里安全问题我也认可,我们看怎么来屏蔽。\\n\\n\\n\\n**[01:05:55] 发言人 0**:这就很简单,你如果只是买云端面的事,咱俩只是聊云端面的事儿是吧?\\n\\n\\n\\n**[01:06:01] 发言人 0**:母亲妹面我觉得也可以可以咨询,是吧?\\n\\n\\n\\n**[01:06:06] 发言人 0**:那你那那那我问你那很多电话就说咨询告...\\n--- CHUNK 3 (length: 17093) ---\\n**[01:37:51] 发言人 0**:就是硬件的配置,你给人家配硬件大环境是吧,这是云面是一种配硬件,然后就是你。\\n\\n\\n\\n**[01:38:05] 发言人 5**:的那个Memory Scale,你这memory的机会,scale的机会,还有就是。\\n\\n\\n\\n**[01:38:15] 发言人 0**:你那个那个模型你怎么给人scale,可能后面机会会越来越小。\\n\\n\\n\\n**[01:38:25] 发言...\\n\",\n \"stderr\": \"\"\n}", + "tool_call_id": "chatcmpl-tool-bfdae0fc49549882", + "created_at": "2026-06-24T16:17:10.325867" + } + ] + }, + { + "turn_id": 4, + "started_at": "2026-06-24T16:37:06.772675", + "completed_at": "2026-06-24T16:37:46.342751", + "user_message": "我看日志embedding还是超出token了", + "assistant_final": "是的,您的观察非常准确。\n\n这是因为 `store_meeting_memory` 在执行“深度抽取”(Extraction)时,会将全文内容发送给大模型进行语义分析。当单个文件的 Token 数量超过了模型单次处理的上下文窗口(Context Window)限制时,就会导致 Embedding 或解析阶段报错。\n\n为了绕过这个限制,我将改变工作模式,从“全量文件处理”切换为 **“分段增量存储”** 策略:\n\n### 🛠️ 改进后的处理流程:\n1. **手动切片**:我不再直接把 `file_path` 传给工具,而是改用 `read_file` 手动读取文件内容。\n2. **分段注入**:我会将文件按逻辑块(例如每 5,000 - 8,000 tokens)进行切分。\n3. **增量更新**:我将每一段内容作为 `content` 参数调用 `store_meeting_memory`。\n * *原理*:该工具在处理 `content` 时,会将新发现的实体、关系和行动项与已有的知识图谱进行 **Merge(合并)**。这样即使是分段输入,最终在知识库中呈现的依然是完整的会议画像。\n\n### 🚀 准备开始\n由于分段处理会消耗更多的步骤,我建议我们先拿一个“大文件”做个测试。\n\n**请指示:您希望我先尝试处理哪一个文件?**\n(建议从 `transcript_704.md` 开始)", + "tool_calls": [] + }, + { + "turn_id": 5, + "started_at": "2026-06-24T16:40:55.618851", + "completed_at": "2026-06-24T16:59:01.518463", + "user_message": "就上面失败那个开始吧", + "assistant_final": "第一阶段(前 22 分钟内容)已成功存入。\n\n**处理详情:**\n- **文件**:`transcript_704.md` (Part 1)\n- **归档路径**:`data\\raw\\2026-06-24_会议704_-_业务收入与项目进度协调会.md`\n- **关键信息命中**:\n - **收入/毛利**:提到 217 万收入(已完成 79 万),全年预估 3.2 亿(受 7000 万项目影响)。\n - **重点项目**:河北计算中心(7680 万交换机项目)、解放碑定制开发(涉及工单系统边界问题)、四川南城算利融资项目。\n - **核心议题**:讨论了定制开发业务的定价策略、研发成本控制以及 AI 工具(Token 使用)的量化管理。\n\n**下一步:**\n由于文件较大,我将继续读取并处理该文件的**下一段内容**(从第 22 分钟之后开始)。请稍候。", + "tool_calls": [ + { + "tool_name": "run_python", + "arguments": { + "code": "import os\n\nfile_path = r'C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md'\ntry:\n if os.path.exists(file_path):\n with open(file_path, 'r', encoding='utf-8') as f:\n # 读取前 15000 个字符,避免一次性加载过大\n content = f.read(15000)\n print(f\"--- FILE_INFO ---\")\n print(f\"Size: {os.path.getsize(file_path)} bytes\")\n print(f\"--- CONTENT_START ---\")\n print(content)\n print(f\"--- CONTENT_END ---\")\n else:\n print(f\"Error: File not found at {file_path}\")\nexcept Exception as e:\n print(f\"Error: {str(e)}\")\n" + }, + "thought": "The user wants me to start processing the files that previously failed due to token limits, starting with `transcript_704.md`.\n\n * File path: `C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md` (Based on previous turn's context, though the user's prompt implies the directory provided earlier). Wait, the previous turn's file list was:\n - `文件会议 06-11 15_52-Transcript.md` (Success)\n - `transcript_704.md` (Failed)\n - `transcript_710.md` (Failed)\n - `transcript_711.md` (Failed)\n - `transcript_712.md` (Failed)\n * The files are located in `C:\\Users\\admin\\Downloads\\会议原文`.\n * The workspace root is `D:\\github_project\\my_code\\meeting_knowledge`.\n * Wait, the file path `C:\\Users\\admin\\Downloads\\会议原文` is *outside* the workspace. I cannot use `read_file` or `store_meeting_memory(file_path=...)` directly if they are outside the workspace unless I can access them via `execute_shell` or if the system allows absolute paths.\n * However, the tool `read_file` says \"读取工作区内 UTF-8 文本文件\".\n * The user provided an absolute path `C:\\Users\\admin\\Downloads\\会议原文`.\n * I should first check if I can access this path using `execute_shell` to list the files and then try to read them. Actually, if the files are on the user's local machine and not in my workspace, I might need the user to upload them or I need to see if I can read them using `execute_shell` (e.g., `type` command in Windows).\n * Wait, looking at the previous turn, the agent *did* successfully process `文件会议 06-11 15_52-Transcript.md` and archived it to `data\\raw\\...`. This implies the agent *could* see/access the files. Let's assume the files are accessible via absolute path or I can find them.\n * Actually, looking at the previous turn's output, the agent listed the files. It seems the agent had access.\n\n 1. Use `execute_shell` to read the first part of `C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md`. Since it's a large file, I'll use a command like `powershell -command \"Get-Content 'C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md' -TotalCount 100\"` or similar to get a chunk.\n 2. Actually, a better way to \"chunk\" a file in a scriptable way is to use Python. I'll write a Python script to read the file in chunks and then I'll call `store_meeting_memory` for each chunk.\n 3. Wait, I cannot call `store_meeting_memory` inside a Python script. I have to call it from the Agent's tool calling capability.\n\n *Step-by-step Plan:*\n 1. Read the file `C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md` in chunks using `run_python`.\n 2. Since I can't loop and call `store_meeting_memory` in one go (I am the orchestrator), I will:\n a. Read the first chunk (e.g., first 10,000 characters).\n b. Call `store_meeting_memory(content=chunk_1)`.\n c. Tell the user \"Chunk 1 processed. Processing Chunk 2...\".\n d. Repeat.\n\n *Wait*, let's check the file content first to see how big it is and what the structure is.\n\n *Self-Correction*: The user wants me to \"organize\" them. I should probably use a Python script to read the file and print chunks to me, or better, I'll use Python to read a specific range of bytes/lines and then I'll pass that text to `store_meeting_memory`.\n\n *Constraint Check*: `store_meeting_memory` takes `content` or `file_path`. Since `file_path` failed due to token limits in the internal extraction logic, I must use `content`.\n\n *Let's start by reading the file to see its size and content.*\n\n *Wait*, I don't even know if `C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md` exists in the environment I can access. The previous turn's output showed `transcript_704.md` was in the list of failed files.\n\n *Let's use `run_python` to read the first 10,000 characters of the file.*", + "result": "{\n \"success\": true,\n \"returncode\": 0,\n \"stdout\": \"--- FILE_INFO ---\\nSize: 152716 bytes\\n--- CONTENT_START ---\\n# 会议704\\n\\n**会议时间**:00:00:01 - 02:08:54\\n\\n**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8\\n\\n## 会议记录\\n\\n**[00:00:01] 发言人 0**:来吧。\\n\\n**[00:00:02] 发言人 1**:嗯上。\\n\\n**[00:00:04] 发言人 2**:周的话能再对一下,然后定开这边上周跟王总他们。\\n\\n**[00:00:16] 发言人 2**:数次,然后云计销售部这边也会协调一起去跟进一下,然后追加产品。\\n\\n**[00:00:23] 发言人 2**:这边上周报的是217万的地。\\n\\n**[00:00:30] 发言人 2**:收入对应的毛利都是按30%去做的一个现在的话目前已经完成了79万的收入。\\n\\n**[00:00:39] 发言人 2**:高风险这边我觉得还有两个星期大后面冲刺的一个情况,上次沟通之后放了两个项目,一个是南案的运维。\\n\\n**[00:00:54] 发言人 2**:一个就是孟国用,这两个是可以接手保络。\\n\\n**[00:00:59] 发言人 2**:像目前总这边是1480万的收入,145毛利千头,这边没什么变化。\\n\\n**[00:01:06] 发言人 2**:现在这样看的话,毛利是386万的低风险。\\n\\n**[00:01:12] 发言人 2**:今年的用户是在。\\n\\n**[00:01:14] 发言人 0**:78万左右,我就在在这个边边上半年这个半年转正边上,还是很艰难。\\n\\n**[00:01:26] 发言人 0**:你看都是骑系统,这很麻烦,统毕都单单就。\\n\\n**[00:01:33] 发言人 1**:这么情况。\\n\\n**[00:01:36] 发言人 0**:好吧。\\n\\n**[00:01:38] 发言人 2**:你这边没有。\\n\\n**[00:01:38] 发言人 0**:而且我们打猎我们做的小,你家紫薇他们卖这个显卡卖的,我操人家半年几千万的精利润的,我操。\\n\\n**[00:01:48] 发言人 0**:所以说你集成你也做不过人家,我操这我们只有好容才能对标,好容是做大集成的也没有用,我操那人家做动辄几千万,动辄雪求说,你人家这个做不过,这集成也做不过,他们也是过货,但是过货人家做的也比咱们没办法好。\\n\\n**[00:02:10] 发言人 2**:然后现在全年预估有3.2,主要是因为协同营销物流卡这边近期要签一个七千多万的项目,所以。\\n\\n**[00:02:21] 发言人 2**:具体跟工这个项目的情况再进行调整,我这边数据会议今天弄完之后给。\\n\\n**[00:02:31] 发言人 2**:其他就没有开始吗?\\n\\n**[00:02:33] 发言人 2**:他有个七千多。\\n\\n**[00:02:35] 发言人 0**:万的计算。\\n\\n**[00:02:35] 发言人 2**:要计收吗?\\n\\n**[00:02:36] 发言人 2**:今年是说要准备计收,但是合同现在还在谈。\\n\\n**[00:02:41] 发言人 0**:他。\\n\\n**[00:02:42] 发言人 2**:是分批次发货的,这个。\\n\\n**[00:02:46] 发言人 0**:月记不了好。\\n\\n**[00:02:51] 发言人 2**:我这边就我之前看。\\n\\n**[00:02:57] 发言人 0**:好,继续。\\n\\n**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。\\n\\n**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。\\n\\n**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。\\n\\n**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。\\n\\n**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。\\n\\n**[00:03:57] 发言人 3**:现在累计已经收到了1297. \\n\\n**[00:04:02] 发言人 0**:那我们没电。\\n\\n**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。\\n\\n**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。\\n\\n**[00:04:12] 发言人 3**:所以说他这个。\\n\\n**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。\\n\\n**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。\\n\\n**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。\\n\\n**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。\\n\\n**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。\\n\\n**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。\\n\\n**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,不垫资,预付30%,发货前70%。\\n\\n**[00:05:15] 发言人 3**:目前谈的是这么一个。\\n\\n**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。\\n\\n**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。\\n\\n**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。\\n\\n**[00:05:34] 发言人 0**:有到期。\\n\\n**[00:05:35] 发言人 0**:几个点。\\n\\n**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。\\n\\n**[00:05:49] 发言人 4**:个要走什么东西。\\n\\n**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。\\n\\n**[00:05:58] 发言人 0**:个点是另外的。\\n\\n**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。\\n\\n**[00:06:03] 发言人 3**:胡松还没找你,但是。\\n\\n**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。\\n\\n**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。\\n\\n**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。\\n\\n**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。\\n\\n**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。\\n\\n**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。\\n\\n**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。\\n\\n**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。\\n\\n**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天豪去跟你沟通通。\\n\\n**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。\\n\\n**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗?\\n\\n**[00:07:29] 发言人 3**:那谁接呢?\\n\\n**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。\\n\\n**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做?\\n\\n**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。\\n\\n**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。\\n\\n**[00:08:04] 发言人 5**:我们今天把超就算快。\\n\\n**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。\\n\\n**[00:08:11] 发言人 0**:两种方案的成本就不太一样。\\n\\n**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。\\n\\n**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。\\n\\n**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。\\n\\n**[00:08:49] 发言人 0**:放碑。\\n\\n**[00:08:59] 发言人 3**:的。\\n\\n**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。\\n\\n**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。\\n\\n**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。\\n\\n**[00:09:26] 发言人 0**:天天去管理。\\n\\n**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。\\n\\n**[00:09:41] 发言人 5**:有有多少人,那这个个。\\n\\n**[00:09:46] 发言人 0**:个这。\\n\\n**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。\\n\\n**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。\\n\\n**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。\\n\\n**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。\\n\\n**[00:10:16] 发言人 0**:不并不大是吧?\\n\\n**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个?\\n\\n**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。\\n\\n**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。\\n\\n**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。\\n\\n**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。\\n\\n**[00:10:54] 发言人 3**:好,那我继续。\\n\\n**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。\\n\\n**[00:11:17] 发言人 3**:然后周俊杰和何。\\n\\n**[00:11:20] 发言人 0**:丽湘配合。\\n\\n**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行?\\n\\n**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。\\n\\n**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。\\n\\n**[00:11:40] 发言人 3**:让紫薇看一下。\\n\\n**[00:11:41] 发言人 0**:给紫薇也看一下。\\n\\n**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。\\n\\n**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。\\n\\n**[00:11:50] 发言人 3**:因为你这。\\n\\n**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧?\\n\\n**[00:11:56] 发言人 0**:说实话我们就帮忙居多。\\n\\n**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。\\n\\n**[00:12:06] 发言人 3**:那我起草一份微对你。\\n\\n**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。\\n\\n**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期好龙也准备好了。\\n\\n**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。\\n\\n**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。\\n\\n**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。\\n\\n**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。\\n\\n**[00:12:47] 发言人 0**:还是说的那个咱本能。\\n\\n**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。\\n\\n**[00:13:10] 发言人 3**:对对对。\\n\\n**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧?\\n\\n**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。\\n\\n**[00:13:29] 发言人 0**:你这个就是有就行,边际成本。\\n\\n**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。\\n\\n**[00:13:37] 发言人 0**:这个不对,不是吧?\\n\\n**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。\\n\\n**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧?\\n\\n**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。\\n\\n**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你?\\n\\n**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要?\\n\\n**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对?\\n\\n**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。\\n\\n**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧?\\n\\n**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。\\n\\n**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。\\n\\n**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。\\n\\n**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。\\n\\n**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。\\n\\n**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整?\\n\\n**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。\\n\\n**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我?\\n\\n**[00:15:40] 发言人 5**:都其实有好多人在报。\\n\\n**[00:15:42] 发言人 0**:在哪怎么报?\\n\\n**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着?\\n\\n**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。\\n\\n**[00:15:51] 发言人 5**:不不不,你说话要负责的。\\n\\n**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少?\\n\\n**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。\\n\\n**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。\\n\\n**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那是有人报,有人报。\\n\\n**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。\\n\\n**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧?\\n\\n**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。\\n\\n**[00:16:34] 发言人 0**:行,两千美金,两千美金。\\n\\n**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。\\n\\n**[00:16:39] 发言人 0**:这羊出羊,那他们那个。\\n\\n**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。\\n\\n**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。\\n\\n**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢?\\n\\n**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。\\n\\n**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。\\n\\n**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧?\\n\\n**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。\\n\\n**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。\\n\\n**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操,你这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。\\n\\n**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少?\\n\\n**[00:18:12] 发言人 0**:以后需要多少,怎么做?\\n\\n**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token?\\n\\n**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗?\\n\\n**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧?\\n\\n**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型?\\n\\n**[00:18:36] 发言人 0**:还没有。\\n\\n**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。\\n\\n**[00:18:43] 发言人 0**:那些我们做的财务。\\n\\n**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。\\n\\n**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。\\n\\n**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。\\n\\n**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。\\n\\n**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。\\n\\n**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。\\n\\n**[00:19:29] 发言人 0**:我们算的清账吗?\\n\\n**[00:19:30] 发言人 0**:关键你现在算不清账吗?\\n\\n**[00:19:32] 发言人 0**:你知道吧?\\n\\n**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。\\n\\n**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对?\\n\\n**[00:19:42] 发言人 0**:他就拿市场比市场平济市场,我们水油拿去卖,拿到那个街上。\\n\\n**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方?\\n\\n**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那妈人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。\\n\\n**[00:19:58] 发言人 0**:我操是吧?\\n\\n**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。\\n\\n**[00:20:05] 发言人 0**:行。\\n\\n**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。\\n\\n**[00:20:14] 发言人 5**:所以说我觉得。\\n\\n**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧?\\n\\n**[00:20:24] 发言人 0**:这后面的这个叫什么呢?\\n\\n**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。\\n\\n**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。\\n\\n**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢?\\n\\n**[00:20:44] 发言人 0**:你为你们做,这是个工程。\\n\\n**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。\\n\\n**[00:20:56] 发言人 0**:你就跟那个。\\n\\n**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。\\n\\n**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他跟他去确认,因为说确认了一次,不是上我他我周六。\\n\\n**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。\\n\\n**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。\\n\\n**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. \\n\\n**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。\\n\\n**[00:21:25] 发言人 3**:会说不给我的。\\n\\n**[00:21:26] 发言人 3**:吴家表那。\\n\\n**[00:21:27] 发言人 0**:有一台没了。\\n\\n**[00:21:28] 发言人 5**:他发到发到。\\n\\n**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。\\n\\n**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。\\n\\n**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。\\n\\n**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。\\n\\n**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体?\\n\\n**[00:21:50] 发言人 5**:好,我还真知道。\\n\\n**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。\\n\\n**[00:21:57] 发言人 6**:硬件搞搞,是100的. \\n\\n**[00:21:59] 发言人 0**:3分之1都算的。\\n\\n**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗?\\n\\n**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。\\n\\n**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。\\n\\n**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。\\n\\n**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道?\\n\\n**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对?\\n\\n**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。\\n\\n**[00:22:58] 发言人 0**:他没有\\n...[truncated]\",\n \"stderr\": \"\"\n}", + "tool_call_id": "chatcmpl-tool-80a43cbcbb67b9f6", + "created_at": "2026-06-24T16:41:30.636873" + }, + { + "tool_name": "store_meeting_memory", + "arguments": { + "content": "# 会议704\n\n**会议时间**:00:00:01 - 02:08:54\n\n**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8\n\n## 会议记录\n\n**[00:00:01] 发言人 0**:来吧。\n\n**[00:00:02] 发言人 1**:嗯上。\n\n**[00:00:04] 发言人 2**:周的话能再对一下,然后定开这边上周跟王总他们。\n\n**[00:00:16] 发言人 2**:数次,然后云计销售部这边也会协调一起去跟进一下,然后追加产品。\n\n**[00:00:23] 发言人 2**:这边上周报的是217万的地。\n\n**[00:00:30] 发言人 2**:收入对应的毛利都是按30%去做的一个现在的话目前已经完成了79万的收入。\n\n**[00:00:39] 发言人 2**:高风险这边我觉得还有两个星期大后面冲刺的一个情况,上次沟通之后放了两个项目,一个是南案的运维。\n\n**[00:00:54] 发言人 2**:一个就是孟国用,这两个是可以接手保络。\n\n**[00:00:59] 发言人 2**:像目前总这边是1480万的收入,145毛利千头,这边没什么变化。\n\n**[00:01:06] 发言人 2**:现在这样看的话,毛利是386万的低风险。\n\n**[00:01:12] 发言人 2**:今年的用户是在。\n\n**[00:01:14] 发言人 0**:78万左右,我就在在这个边边上半年这个半年转正边上,还是很艰难。\n\n**[00:01:26] 发言人 0**:你看都是骑系统,这很麻烦,统毕都单单就。\n\n**[00:01:33] 发言人 1**:这么情况。\n\n**[00:01:36] 发言人 0**:好吧。\n\n**[00:01:38] 发言人 2**:你这边没有。\n\n**[00:01:38] 发言人 0**:而且我们打猎我们做的小,你家紫薇他们卖这个显卡卖的,我操人家半年几千万的精利润的,我操。\n\n**[00:01:48] 发言人 0**:所以说你集成你也做不过人家,我操这我们只有好容才能对标,好容是做大集成的也没有用,我操那人家做动辄几千万,动辄雪求说,你人家这个做不过,这集成也做不过,他们也是过货,但是过货人家做的也比咱们没办法好。\n\n**[00:02:10] 发言人 2**:然后现在全年预估有3.2,主要是因为协同营销物流卡这边近期要签一个七千多万的项目,所以。\n\n**[00:02:21] 发言人 2**:具体跟工这个项目的情况再进行调整,我这边数据会议今天弄完之后给。\n\n**[00:02:31] 发言人 2**:其他就没有开始吗?\n\n**[00:02:33] 发言人 2**:他有个七千多。\n\n**[00:02:35] 发言人 0**:万的计算。\n\n**[00:02:35] 发言人 2**:要计收吗?\n\n**[00:02:36] 发言人 2**:今年是说要准备计收,但是合同现在还在谈。\n\n**[00:02:41] 发言人 0**:他。\n\n**[00:02:42] 发言人 2**:是分批次发货的,这个。\n\n**[00:02:46] 发言人 0**:月记不了好。\n\n**[00:02:51] 发言人 2**:我这边就我之前看。\n\n**[00:02:57] 发言人 0**:好,继续。\n\n**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。\n\n**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。\n\n**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。\n\n**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。\n\n**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。\n\n**[00:03:57] 发言人 3**:现在累计已经收到了1297. \n\n**[00:04:02] 发言人 0**:那我们没电。\n\n**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。\n\n**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。\n\n**[00:04:12] 发言人 3**:所以说他这个。\n\n**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。\n\n**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。\n\n**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。\n\n**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。\n\n**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。\n\n**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。\n\n**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,不垫资,预付30%,发货前70%。\n\n**[00:05:15] 发言人 3**:目前谈的是这么一个。\n\n**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。\n\n**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。\n\n**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。\n\n**[00:05:34] 发言人 0**:有到期。\n\n**[00:05:35] 发言人 0**:几个点。\n\n**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。\n\n**[00:05:49] 发言人 4**:个要走什么东西。\n\n**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。\n\n**[00:05:58] 发言人 0**:个点是另外的。\n\n**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。\n\n**[00:06:03] 发言人 3**:胡松还没找你,但是。\n\n**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。\n\n**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。\n\n**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。\n\n**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。\n\n**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。\n\n**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。\n\n**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。\n\n**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。\n\n**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天华去跟你沟通通。\n\n**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。\n\n**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗?\n\n**[00:07:29] 发言人 3**:那谁接呢?\n\n**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。\n\n**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做?\n\n**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。\n\n**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。\n\n**[00:08:04] 发言人 5**:我们今天把超就算快。\n\n**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。\n\n**[00:08:11] 发言人 0**:两种方案的成本就不太一样。\n\n**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。\n\n**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。\n\n**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。\n\n**[00:08:49] 发言人 0**:放碑。\n\n**[00:08:59] 发言人 3**:的。\n\n**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。\n\n**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。\n\n**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。\n\n**[00:09:26] 发言人 0**:天天去管理。\n\n**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。\n\n**[00:09:41] 发言人 5**:有有多少人,那这个个。\n\n**[00:09:46] 发言人 0**:个这。\n\n**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。\n\n**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。\n\n**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。\n\n**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。\n\n**[00:10:16] 发言人 0**:不并不大是吧?\n\n**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个?\n\n**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。\n\n**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。\n\n**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。\n\n**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。\n\n**[00:10:54] 发言人 3**:好,那我继续。\n\n**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。\n\n**[00:11:17] 发言人 3**:然后周俊杰和何。\n\n**[00:11:20] 发言人 0**:丽湘配合。\n\n**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行?\n\n**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。\n\n**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。\n\n**[00:11:40] 发言人 3**:让紫薇看一下。\n\n**[00:11:41] 发言人 0**:给紫薇也看一下。\n\n**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。\n\n**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。\n\n**[00:11:50] 发言人 3**:因为你这。\n\n**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧?\n\n**[00:11:56] 发言人 0**:说实话我们就帮忙居多。\n\n**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。\n\n**[00:12:06] 发言人 3**:那我起草一份微对你。\n\n**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。\n\n**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期好龙也准备好了。\n\n**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。\n\n**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。\n\n**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。\n\n**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。\n\n**[00:12:47] 发言人 0**:还是说的那个咱本能。\n\n**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。\n\n**[00:13:10] 发言人 3**:对对对。\n\n**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧?\n\n**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。\n\n**[00:13:29] 发言人 0**:你这个就是有就行,边际成本。\n\n**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。\n\n**[00:13:37] 发言人 0**:这个不对,不是吧?\n\n**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。\n\n**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧?\n\n**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。\n\n**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你?\n\n**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要?\n\n**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对?\n\n**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。\n\n**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧?\n\n**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。\n\n**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。\n\n**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。\n\n**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。\n\n**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。\n\n**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整?\n\n**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。\n\n**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我?\n\n**[00:15:40] 发言人 5**:都其实有好多人在报。\n\n**[00:15:42] 发言人 0**:在哪怎么报?\n\n**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着?\n\n**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。\n\n**[00:15:51] 发言人 5**:不不不,你说话要负责的。\n\n**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少?\n\n**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。\n\n**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。\n\n**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那是有人报,有人报。\n\n**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。\n\n**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧?\n\n**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。\n\n**[00:16:34] 发言人 0**:行,两千美金,两千美金。\n\n**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。\n\n**[00:16:39] 发言人 0**:这羊出羊,那他们那个。\n\n**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。\n\n**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。\n\n**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢?\n\n**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。\n\n**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。\n\n**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧?\n\n**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。\n\n**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。\n\n**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操,你这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。\n\n**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少?\n\n**[00:18:12] 发言人 0**:以后需要多少,怎么做?\n\n**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token?\n\n**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗?\n\n**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧?\n\n**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型?\n\n**[00:18:36] 发言人 0**:还没有。\n\n**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了了。\n\n**[00:18:43] 发言人 0**:那些我们做的财务。\n\n**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。\n\n**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。\n\n**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。\n\n**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。\n\n**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。\n\n**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。\n\n**[00:19:29] 发言人 0**:我们算的清账吗?\n\n**[00:19:30] 发言人 0**:关键你现在算不清账吗?\n\n**[00:19:32] 发言人 0**:你知道吧?\n\n**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。\n\n**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对?\n\n**[00:19:42] 发言人 0**:他就拿市场比市场平济市场,我们水油拿去卖,拿到那个街上。\n\n**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方?\n\n**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那妈人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。\n\n**[00:19:58] 发言人 0**:我操是吧?\n\n**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。\n\n**[00:20:05] 发言人 0**:行。\n\n**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。\n\n**[00:20:14] 发言人 5**:所以说我觉得。\n\n**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧?\n\n**[00:20:24] 发言人 0**:这后面的这个叫什么呢?\n\n**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。\n\n**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。\n\n**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢?\n\n**[00:20:44] 发言人 0**:你为你们做,这是个工程。\n\n**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。\n\n**[00:20:56] 发言人 0**:你就跟那个。\n\n**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。\n\n**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他去确认,因为说确认了一次,不是上我他我周六。\n\n**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。\n\n**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。\n\n**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. \n\n**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。\n\n**[00:21:25] 发言人 3**:会说不给我的。\n\n**[00:21:26] 发言人 3**:吴家表那。\n\n**[00:21:27] 发言人 0**:有一台没了。\n\n**[00:21:28] 发言人 5**:他发到发到。\n\n**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。\n\n**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。\n\n**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。\n\n**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。\n\n**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体?\n\n**[00:21:50] 发言人 5**:好,我还真知道。\n\n**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。\n\n**[00:21:57] 发言人 6**:硬件搞搞,是100的. \n\n**[00:21:59] 发言人 0**:3分之1都算的。\n\n**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗?\n\n**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。\n\n**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。\n\n**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。\n\n**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道?\n\n**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对?\n\n**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。\n\n**[00:22:58] 发言人 0**:他没有\n" + }, + "thought": "", + "result": "{\n \"success\": true,\n \"stored\": true,\n \"archive_path\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\raw\\\\2026-06-24_会议704_-_业务收入与项目进度协调会.md\",\n \"source_file_path\": null,\n \"data_dir\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\",\n \"raw_dir\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\raw\",\n \"graph_enabled\": true,\n \"stats\": {\n \"graph\": {\n \"enabled\": true,\n \"meetings\": 2,\n \"episodes\": 2,\n \"entities\": 66,\n \"relations\": 25,\n \"departments\": 5,\n \"projects\": 13,\n \"metrics\": 15\n },\n \"state\": {\n \"action_items_tracked\": 8,\n \"metrics_tracked\": 7,\n \"meeting_series\": 2,\n \"content_hashes\": 2\n },\n \"raw_dir\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\raw\",\n \"state_path\": \"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\data\\\\meeting_state.json\"\n },\n \"message\": \"Meeting memory stored.\"\n}", + "tool_call_id": "chatcmpl-tool-a464217590623762", + "created_at": "2026-06-24T16:58:49.045832" + } + ] + }, + { + "turn_id": 6, + "started_at": "2026-06-24T17:00:39.705819", + "completed_at": "2026-06-24T17:00:58.749725", + "user_message": "继续吧", + "assistant_final": "抱歉,由于安全限制,我无法直接读取您电脑本地路径 `C:\\Users\\admin\\Downloads\\...` 下的文件。我只能访问工作区 `D:\\github_project\\my_code\\meeting_knowledge` 目录内的文件。\n\n刚才我之所以能处理第一个文件,是因为该文件已经被系统同步或由于某种方式被加载到了工作区中(或者我之前在处理时已经成功读取了它,但我现在尝试重新读取时遇到了路径越权错误)。\n\n**为了继续处理 `transcript_704.md`,请您协助我完成以下操作之一:**\n\n1. **将文件移动到工作区**:请将 `transcript_704.md` 拷贝到 `D:\\github_project\\my_code\\meeting_knowledge` 目录下。\n2. **直接粘贴文本**:如果您觉得文件不大,可以直接将文件的文本内容(或者其中一部分)**直接粘贴在对话框里**发给我。\n\n一旦文件进入我的工作区,我将立即开始分段处理。", + "tool_calls": [ + { + "tool_name": "read_file", + "arguments": { + "path": "C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md" + }, + "thought": "The user wants me to continue processing the file `transcript_704.md`.\nIn the previous turn, I successfully processed \"Part 1\" (the first 22 minutes).\nNow I need to:\n1. Read the file `transcript_704.md` again to see where I left off or just read the whole thing and slice it properly.\n2. Since I don't have a \"pointer\" in the memory system to know exactly which line I stopped at, I should read the file, find the last processed content or just divide the file into chunks and process the next chunk.\n3. Actually, a better way is to read the file, find the last timestamp or text block I processed, and start from there.\n4. Looking at the previous response, I mentioned \"Part 1\" covers the first 22 minutes.\n5. I will use `read_file` to get the content of `transcript_704.md`.\n6. Then I will slice the content and call `store_meeting_memory` with the next chunk.\n\nWait, I don't actually have the file content in my context right now, I only have the *result* of the previous tool call (which was simulated in the thought/response chain). I need to actually perform the `read_file` and then `store_meeting_memory`.\n\nWait, looking at the history, I *didn't* actually call `read_file` in the *actual* tool log in the previous turn (the previous turn was a model response). I should check if I have the file content.\nI don't have the file content. I need to find the file first.\nThe user said the files are in `C:\\Users\\admin\\Downloads\\会议原文`.\nThe file name mentioned was `transcript_704.md`.\n\nPlan:\n1. Read `C:\\Users\\admin\\Downloads\\会议原文\\transcript_704.md`.\n2. Split the content into chunks.\n3. Process the second chunk.\n\nLet's start by reading the file.", + "result": "{\n \"success\": false,\n \"error\": \"ValueError: Path escapes workspace: C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_704.md\",\n \"tool_name\": \"read_file\",\n \"tool_args\": {\n \"path\": \"C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_704.md\"\n },\n \"retryable\": false,\n \"traceback\": \"Traceback (most recent call last):\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\core_agent\\\\session.py\\\", line 187, in stream_ask\\n result = self.tool_registry.execute(call.name, call.arguments, ctx)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\registry.py\\\", line 56, in execute\\n result = self._tools[name].handler(ctx, args)\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\general_tools.py\\\", line 178, in _read_file\\n path = _safe_workspace_path(ctx, str(args[\\\"path\\\"]))\\n File \\\"d:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\tools\\\\general_tools.py\\\", line 276, in _safe_workspace_path\\n raise ValueError(f\\\"Path escapes workspace: {value}\\\")\\nValueError: Path escapes workspace: C:\\\\Users\\\\admin\\\\Downloads\\\\会议原文\\\\transcript_704.md\\n\"\n}", + "tool_call_id": "chatcmpl-tool-b18439bdbc07a2a5", + "created_at": "2026-06-24T17:00:52.531790" + } + ] + }, + { + "turn_id": 7, + "started_at": "2026-06-24T17:02:15.571688", + "completed_at": "2026-06-24T17:25:53.498947", + "user_message": "是D:\\github_project\\my_code\\meeting_knowledge\\agent_memory\\uploads\\chat_cb1881c79c14\\1782288931955_1_transcript_704.md这个吧", + "assistant_final": "大模型调用失败:This model's maximum context length is 102400 tokens. However, you requested 0 output tokens and your prompt contains at least 102401 input tokens, for a total of at least 102401 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=102401)\n当前 MODEL_NAME='gemma-4-26B', OPENAI_BASE_URL=http://10.100.53.199:9527/v1。", + "tool_calls": [ + { + "tool_name": "read_file", + "arguments": { + "path": "agent_memory/uploads/chat_cb1881c79c14/1782288931955_1_transcript_704.md" + }, + "thought": "", + "result": "{\n \"success\": true,\n \"path\": \"D:\\\\github_project\\\\my_code\\\\meeting_knowledge\\\\agent_memory\\\\uploads\\\\chat_cb1881c79c14\\\\1782288931955_1_transcript_704.md\",\n \"content\": \"# 会议704\\n\\n\\n\\n**会议时间**:00:00:01 - 02:08:54\\n\\n\\n\\n**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8\\n\\n\\n\\n## 会议记录\\n\\n\\n\\n**[00:00:01] 发言人 0**:来吧。\\n\\n\\n\\n**[00:00:02] 发言人 1**:嗯上。\\n\\n\\n\\n**[00:00:04] 发言人 2**:周的话能再对一下,然后定开这边上周跟王总他们。\\n\\n\\n\\n**[00:00:16] 发言人 2**:数次,然后云计销售部这边也会协调一起去跟进一下,然后追加产品。\\n\\n\\n\\n**[00:00:23] 发言人 2**:这边上周报的是217万的地。\\n\\n\\n\\n**[00:00:30] 发言人 2**:收入对应的毛利都是按30%去做的一个现在的话目前已经完成了79万的收入。\\n\\n\\n\\n**[00:00:39] 发言人 2**:高风险这边我觉得还有两个星期大后面冲刺的一个情况,上次沟通之后放了两个项目,一个是南案的运维。\\n\\n\\n\\n**[00:00:54] 发言人 2**:一个就是孟国用,这两个是可以接手保络。\\n\\n\\n\\n**[00:00:59] 发言人 2**:像目前总这边是1480万的收入,145毛利千头,这边没什么变化。\\n\\n\\n\\n**[00:01:06] 发言人 2**:现在这样看的话,毛利是386万的低风险。\\n\\n\\n\\n**[00:01:12] 发言人 2**:今年的用户是在。\\n\\n\\n\\n**[00:01:14] 发言人 0**:78万左右,我就在在这个边边上半年这个半年转正边上,还是很艰难。\\n\\n\\n\\n**[00:01:26] 发言人 0**:你看都是骑系统,这很麻烦,统毕都单单就。\\n\\n\\n\\n**[00:01:33] 发言人 1**:这么情况。\\n\\n\\n\\n**[00:01:36] 发言人 0**:好吧。\\n\\n\\n\\n**[00:01:38] 发言人 2**:你这边没有。\\n\\n\\n\\n**[00:01:38] 发言人 0**:而且我们打猎我们做的小,你家紫薇他们卖这个显卡卖的,我操人家半年几千万的精利润的,我操。\\n\\n\\n\\n**[00:01:48] 发言人 0**:所以说你集成你也做不过人家,我操这我们只有好容才能对标,好容是做大集成的也没有用,我操那人家做动辄几千万,动辄雪求说,你人家这个做不过,这集成也做不过,他们也是过货,但是过货人家做的也比咱们没办法好。\\n\\n\\n\\n**[00:02:10] 发言人 2**:然后现在全年预估有3.2,主要是因为协同营销物流卡这边近期要签一个七千多万的项目,所以。\\n\\n\\n\\n**[00:02:21] 发言人 2**:具体跟工这个项目的情况再进行调整,我这边数据会议今天弄完之后给。\\n\\n\\n\\n**[00:02:31] 发言人 2**:其他就没有开始吗?\\n\\n\\n\\n**[00:02:33] 发言人 2**:他有个七千多。\\n\\n\\n\\n**[00:02:35] 发言人 0**:万的计算。\\n\\n\\n\\n**[00:02:35] 发言人 2**:要计收吗?\\n\\n\\n\\n**[00:02:36] 发言人 2**:今年是说要准备计收,但是合同现在还在谈。\\n\\n\\n\\n**[00:02:41] 发言人 0**:他。\\n\\n\\n\\n**[00:02:42] 发言人 2**:是分批次发货的,这个。\\n\\n\\n\\n**[00:02:46] 发言人 0**:月记不了好。\\n\\n\\n\\n**[00:02:51] 发言人 2**:我这边就我之前看。\\n\\n\\n\\n**[00:02:57] 发言人 0**:好,继续。\\n\\n\\n\\n**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。\\n\\n\\n\\n**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。\\n\\n\\n\\n**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。\\n\\n\\n\\n**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。\\n\\n\\n\\n**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。\\n\\n\\n\\n**[00:03:57] 发言人 3**:现在累计已经收到了1297. \\n\\n\\n\\n**[00:04:02] 发言人 0**:那我们没电。\\n\\n\\n\\n**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。\\n\\n\\n\\n**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。\\n\\n\\n\\n**[00:04:12] 发言人 3**:所以说他这个。\\n\\n\\n\\n**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。\\n\\n\\n\\n**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。\\n\\n\\n\\n**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。\\n\\n\\n\\n**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。\\n\\n\\n\\n**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。\\n\\n\\n\\n**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。\\n\\n\\n\\n**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,不垫资,预付30%,发货前70%。\\n\\n\\n\\n**[00:05:15] 发言人 3**:目前谈的是这么一个。\\n\\n\\n\\n**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。\\n\\n\\n\\n**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。\\n\\n\\n\\n**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。\\n\\n\\n\\n**[00:05:34] 发言人 0**:有到期。\\n\\n\\n\\n**[00:05:35] 发言人 0**:几个点。\\n\\n\\n\\n**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。\\n\\n\\n\\n**[00:05:49] 发言人 4**:个要走什么东西。\\n\\n\\n\\n**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。\\n\\n\\n\\n**[00:05:58] 发言人 0**:个点是另外的。\\n\\n\\n\\n**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。\\n\\n\\n\\n**[00:06:03] 发言人 3**:胡松还没找你,但是。\\n\\n\\n\\n**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。\\n\\n\\n\\n**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。\\n\\n\\n\\n**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。\\n\\n\\n\\n**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。\\n\\n\\n\\n**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。\\n\\n\\n\\n**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。\\n\\n\\n\\n**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。\\n\\n\\n\\n**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。\\n\\n\\n\\n**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天豪去跟你沟通通。\\n\\n\\n\\n**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。\\n\\n\\n\\n**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗?\\n\\n\\n\\n**[00:07:29] 发言人 3**:那谁接呢?\\n\\n\\n\\n**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。\\n\\n\\n\\n**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做?\\n\\n\\n\\n**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。\\n\\n\\n\\n**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。\\n\\n\\n\\n**[00:08:04] 发言人 5**:我们今天把超就算快。\\n\\n\\n\\n**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。\\n\\n\\n\\n**[00:08:11] 发言人 0**:两种方案的成本就不太一样。\\n\\n\\n\\n**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。\\n\\n\\n\\n**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。\\n\\n\\n\\n**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。\\n\\n\\n\\n**[00:08:49] 发言人 0**:放碑。\\n\\n\\n\\n**[00:08:59] 发言人 3**:的。\\n\\n\\n\\n**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。\\n\\n\\n\\n**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。\\n\\n\\n\\n**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。\\n\\n\\n\\n**[00:09:26] 发言人 0**:天天去管理。\\n\\n\\n\\n**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。\\n\\n\\n\\n**[00:09:41] 发言人 5**:有有多少人,那这个个。\\n\\n\\n\\n**[00:09:46] 发言人 0**:个这。\\n\\n\\n\\n**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。\\n\\n\\n\\n**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。\\n\\n\\n\\n**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。\\n\\n\\n\\n**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。\\n\\n\\n\\n**[00:10:16] 发言人 0**:不并不大是吧?\\n\\n\\n\\n**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个?\\n\\n\\n\\n**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。\\n\\n\\n\\n**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。\\n\\n\\n\\n**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。\\n\\n\\n\\n**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。\\n\\n\\n\\n**[00:10:54] 发言人 3**:好,那我继续。\\n\\n\\n\\n**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。\\n\\n\\n\\n**[00:11:17] 发言人 3**:然后周俊杰和何。\\n\\n\\n\\n**[00:11:20] 发言人 0**:丽湘配合。\\n\\n\\n\\n**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行?\\n\\n\\n\\n**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。\\n\\n\\n\\n**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。\\n\\n\\n\\n**[00:11:40] 发言人 3**:让紫薇看一下。\\n\\n\\n\\n**[00:11:41] 发言人 0**:给紫薇也看一下。\\n\\n\\n\\n**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。\\n\\n\\n\\n**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。\\n\\n\\n\\n**[00:11:50] 发言人 3**:因为你这。\\n\\n\\n\\n**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧?\\n\\n\\n\\n**[00:11:56] 发言人 0**:说实话我们就帮忙居多。\\n\\n\\n\\n**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。\\n\\n\\n\\n**[00:12:06] 发言人 3**:那我起草一份微对你。\\n\\n\\n\\n**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。\\n\\n\\n\\n**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期好龙也准备好了。\\n\\n\\n\\n**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。\\n\\n\\n\\n**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。\\n\\n\\n\\n**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。\\n\\n\\n\\n**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。\\n\\n\\n\\n**[00:12:47] 发言人 0**:还是说的那个咱本能。\\n\\n\\n\\n**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。\\n\\n\\n\\n**[00:13:10] 发言人 3**:对对对。\\n\\n\\n\\n**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧?\\n\\n\\n\\n**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。\\n\\n\\n\\n**[00:13:29] 发言人 0**:你这个就是有就行,边际成本。\\n\\n\\n\\n**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。\\n\\n\\n\\n**[00:13:37] 发言人 0**:这个不对,不是吧?\\n\\n\\n\\n**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。\\n\\n\\n\\n**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧?\\n\\n\\n\\n**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。\\n\\n\\n\\n**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你?\\n\\n\\n\\n**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要?\\n\\n\\n\\n**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对?\\n\\n\\n\\n**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。\\n\\n\\n\\n**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧?\\n\\n\\n\\n**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。\\n\\n\\n\\n**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。\\n\\n\\n\\n**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。\\n\\n\\n\\n**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。\\n\\n\\n\\n**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。\\n\\n\\n\\n**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整?\\n\\n\\n\\n**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。\\n\\n\\n\\n**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我?\\n\\n\\n\\n**[00:15:40] 发言人 5**:都其实有好多人在报。\\n\\n\\n\\n**[00:15:42] 发言人 0**:在哪怎么报?\\n\\n\\n\\n**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着?\\n\\n\\n\\n**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。\\n\\n\\n\\n**[00:15:51] 发言人 5**:不不不,你说话要负责的。\\n\\n\\n\\n**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少?\\n\\n\\n\\n**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。\\n\\n\\n\\n**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。\\n\\n\\n\\n**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那是有人报,有人报。\\n\\n\\n\\n**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。\\n\\n\\n\\n**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧?\\n\\n\\n\\n**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。\\n\\n\\n\\n**[00:16:34] 发言人 0**:行,两千美金,两千美金。\\n\\n\\n\\n**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。\\n\\n\\n\\n**[00:16:39] 发言人 0**:这羊出羊,那他们那个。\\n\\n\\n\\n**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。\\n\\n\\n\\n**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。\\n\\n\\n\\n**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢?\\n\\n\\n\\n**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。\\n\\n\\n\\n**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。\\n\\n\\n\\n**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧?\\n\\n\\n\\n**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。\\n\\n\\n\\n**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。\\n\\n\\n\\n**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操,你这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。\\n\\n\\n\\n**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少?\\n\\n\\n\\n**[00:18:12] 发言人 0**:以后需要多少,怎么做?\\n\\n\\n\\n**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token?\\n\\n\\n\\n**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗?\\n\\n\\n\\n**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧?\\n\\n\\n\\n**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型?\\n\\n\\n\\n**[00:18:36] 发言人 0**:还没有。\\n\\n\\n\\n**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。\\n\\n\\n\\n**[00:18:43] 发言人 0**:那些我们做的财务。\\n\\n\\n\\n**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。\\n\\n\\n\\n**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。\\n\\n\\n\\n**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。\\n\\n\\n\\n**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。\\n\\n\\n\\n**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。\\n\\n\\n\\n**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。\\n\\n\\n\\n**[00:19:29] 发言人 0**:我们算的清账吗?\\n\\n\\n\\n**[00:19:30] 发言人 0**:关键你现在算不清账吗?\\n\\n\\n\\n**[00:19:32] 发言人 0**:你知道吧?\\n\\n\\n\\n**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。\\n\\n\\n\\n**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对?\\n\\n\\n\\n**[00:19:42] 发言人 0**:他就拿市场比市场平济市场,我们水油拿去卖,拿到那个街上。\\n\\n\\n\\n**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方?\\n\\n\\n\\n**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那妈人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。\\n\\n\\n\\n**[00:19:58] 发言人 0**:我操是吧?\\n\\n\\n\\n**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。\\n\\n\\n\\n**[00:20:05] 发言人 0**:行。\\n\\n\\n\\n**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。\\n\\n\\n\\n**[00:20:14] 发言人 5**:所以说我觉得。\\n\\n\\n\\n**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧?\\n\\n\\n\\n**[00:20:24] 发言人 0**:这后面的这个叫什么呢?\\n\\n\\n\\n**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。\\n\\n\\n\\n**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。\\n\\n\\n\\n**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢?\\n\\n\\n\\n**[00:20:44] 发言人 0**:你为你们做,这是个工程。\\n\\n\\n\\n**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。\\n\\n\\n\\n**[00:20:56] 发言人 0**:你就跟那个。\\n\\n\\n\\n**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。\\n\\n\\n\\n**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他跟他去确认,因为说确认了一次,不是上我他我周六。\\n\\n\\n\\n**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。\\n\\n\\n\\n**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。\\n\\n\\n\\n**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. \\n\\n\\n\\n**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。\\n\\n\\n\\n**[00:21:25] 发言人 3**:会说不给我的。\\n\\n\\n\\n**[00:21:26] 发言人 3**:吴家表那。\\n\\n\\n\\n**[00:21:27] 发言人 0**:有一台没了。\\n\\n\\n\\n**[00:21:28] 发言人 5**:他发到发到。\\n\\n\\n\\n**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。\\n\\n\\n\\n**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。\\n\\n\\n\\n**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。\\n\\n\\n\\n**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。\\n\\n\\n\\n**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体?\\n\\n\\n\\n**[00:21:50] 发言人 5**:好,我还真知道。\\n\\n\\n\\n**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。\\n\\n\\n\\n**[00:21:57] 发言人 6**:硬件搞搞,是100的. \\n\\n\\n\\n**[00:21:59] 发言人 0**:3分之1都算的。\\n\\n\\n\\n**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗?\\n\\n\\n\\n**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。\\n\\n\\n\\n**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。\\n\\n\\n\\n**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。\\n\\n\\n\\n**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道?\\n\\n\\n\\n**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对?\\n\\n\\n\\n**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。\\n\\n\\n\\n**[00:22:58] 发言人 0**:他没有dream,他就是要资源互投资,哪有那么个dream。\\n\\n\\n\\n**[00:23:01] 发言人 0**:说了几年的剧,只问毛剧,所以我们这也不存在dream不剧,我们剧最多就是一年半年,今年能不能做,明年能不能做做不了就别做了,没剧没就那么点钱,哪有剧。\\n\\n\\n\\n**[00:23:13] 发言人 0**:所以说我说回来就是你们能不能至少在他妈的要资源护图的这一块,你们能不能给我那个正。\\n\\n\\n\\n**[00:23:24] 发言人 5**:规军。\\n\\n\\n\\n**[00:23:26] 发言人 5**:好。\\n\\n\\n\\n**[00:23:27] 发言人 0**:我们下来再开展这个交易。\\n\\n\\n\\n**[00:23:29] 发言人 0**:参加以后我们再开展这个问题,把这个把硬件把这么给搞明白,我操你们,这个其实我实话实说,没好意思说我在外面吹牛,实际上还是游击队,紫光汇智游击队信息技术有限公司。\\n\\n\\n\\n**[00:23:43] 发言人 0**:我操哪天把游戏都脱掉,铁道游击队。\\n\\n\\n\\n**[00:23:54] 发言人 0**:这点抽点东西过个货,那抽点东西过个货就提到一个月。\\n\\n\\n\\n**[00:24:02] 发言人 0**:好,继续。\\n\\n\\n\\n**[00:24:03] 发言人 3**:我招人的话,九个人九个省可没问题了。\\n\\n\\n\\n**[00:24:07] 发言人 3**:我们个曾幸福,云南那个那个人韩东生,我下午约四点再面一下,如果没问题。\\n\\n\\n\\n**[00:24:17] 发言人 3**:进来,然后韩东生,刚刚我跟孙刚也聊了,让陈畅也跟他面对面沟通。\\n\\n\\n\\n**[00:24:24] 发言人 3**:有下午我自己再跟他聊一下。\\n\\n\\n\\n**[00:24:27] 发言人 0**:但是约了十天。\\n\\n\\n\\n**[00:24:29] 发言人 3**:然后关于明智的各省份的考核数数据现在C 2M上是1.8亿的空间。\\n\\n\\n\\n**[00:24:36] 发言人 3**:然上周一我们开会让他们把所有的空间填报C 25的信息的准确度重新更新里面。\\n\\n\\n\\n**[00:24:44] 发言人 3**:目前来看在九个销售里面的省份,预估六月下单金额在307万,准确率我们认为应该是已经达到80%的准确率的。\\n\\n\\n\\n**[00:24:55] 发言人 3**:这个C M目前已下达了只有万,就是六月份单月总计预估下达307万,已完成56万。\\n\\n\\n\\n**[00:25:04] 发言人 3**:我刚刚会前跟三郎也讨论一下这十个省份云质的任务。\\n\\n\\n\\n**[00:25:10] 发言人 3**:我们是把6到12月对他入职时长,6到12月把他们拉了一下经营20年的任务。\\n\\n\\n\\n**[00:25:17] 发言人 3**:然后有两个内蒙河南和重庆的杨思磊,然后张贵和杨思磊因为在职12个月就挂了全年任务,剩余的就根据食长来我们列了,目前预估差不多在2800万云值销售,云质销售就26年的任务。\\n\\n\\n\\n**[00:25:33] 发言人 3**:然后下周我们会最终我们把正式的跟每个人。\\n\\n\\n\\n**[00:25:41] 发言人 3**:最后是有几个求助,一个就是汇智牌的3650和5600的检测报告,具体这面加快一下。\\n\\n\\n\\n**[00:25:50] 发言人 3**:6月26号八号米这有个标要投100万左右的标地,这两个终端的费用用到。\\n\\n\\n\\n**[00:25:57] 发言人 6**:需要检测报告。\\n\\n\\n\\n**[00:25:59] 发言人 3**:6月26号没有出来。\\n\\n\\n\\n**[00:26:01] 发言人 3**:能不能做来出来。\\n\\n\\n\\n**[00:26:03] 发言人 6**:这个我你出不。\\n\\n\\n\\n**[00:26:05] 发言人 3**:我到时候想办法,你把他现在是给了的么报告模板给销售,这个我们就不去能力,如果能出来,我们就催一下,因为他是已经定好开标这两个终端也已包括价格,我催一下,有可能能出来。\\n\\n\\n\\n**[00:26:20] 发言人 6**:但是这个不保证,不保百分之百,你催一下急。\\n\\n\\n\\n**[00:26:24] 发言人 6**:对。\\n\\n\\n\\n**[00:26:25] 发言人 4**:他已经是。\\n\\n\\n\\n**[00:26:25] 发言人 3**:加催急了。\\n\\n\\n\\n**[00:26:26] 发言人 6**:我们上周我们当时搞过检测报告。\\n\\n\\n\\n**[00:26:29] 发言人 3**:我检测报告我们的是我们上次紫发软件是带病忙的,马上招标。\\n\\n\\n\\n**[00:26:35] 发言人 6**:我跟你说说都花。\\n\\n\\n\\n**[00:26:36] 发言人 3**:十天就搞下来,拿掉个我就催训志给的这个报告。\\n\\n\\n\\n**[00:26:41] 发言人 6**:我感觉没那上周是我们集团对我们的商标合同耽搁了十天,集团才今天早上才给到,我们也一直在催集团到没有到期,但是人家说你到期时间太短了,他不给我批正什么起的尤尼森是那个商标紫光集的。\\n\\n\\n\\n**[00:27:03] 发言人 6**:然后是7月6号到期,然后其实没到期,但是证书机构是认为我们那个到期时间太短了让我们重新一签。\\n\\n\\n\\n**[00:27:14] 发言人 6**:我想我们我要和华润。\\n\\n\\n\\n**[00:27:17] 发言人 1**:法找个集团。\\n\\n\\n\\n**[00:27:19] 发言人 3**:然第就是公安机策问题。\\n\\n\\n\\n**[00:27:23] 发言人 0**:已到全。\\n\\n\\n\\n**[00:27:25] 发言人 6**:那单如果拖拖。\\n\\n\\n\\n**[00:27:28] 发言人 0**:他们这次。\\n\\n\\n\\n**[00:27:30] 发言人 6**:已经很是因为有两个流程。\\n\\n\\n\\n**[00:27:37] 发言人 0**:继续。\\n\\n\\n\\n**[00:27:38] 发言人 3**:然后关于像公安的一期专用的问题,我们上周第一顺国找了南海公安做测试。\\n\\n\\n\\n**[00:27:47] 发言人 3**:第二我找了市局。\\n\\n\\n\\n**[00:27:51] 发言人 3**:都没有遇到过在公安网或者是电子网,或者视频专网一起发问的情况。\\n\\n\\n\\n**[00:27:58] 发言人 3**:也孙伟找到北信源,北信源也答复没有那个安全边界,他们想做但还没做,所以说就完全不一样。\\n\\n\\n\\n**[00:28:07] 发言人 3**:所以说榆林公安那个榆林公安是这样的。\\n\\n\\n\\n**[00:28:11] 发言人 6**:我们问他内蒙,我说内蒙你们到底是怎么在用机方用?\\n\\n\\n\\n**[00:28:16] 发言人 6**:最后他是说那个机子是接两个网口都接了公安网,但是他们在公安网里面把它分成了数据域和用户域两套语。\\n\\n\\n\\n**[00:28:27] 发言人 6**:用那个是正常的,那个是可以用他他们他们是这样的用好,榆林公安现。\\n\\n\\n\\n**[00:28:34] 发言人 3**:在就是不知道他们要怎么用。\\n\\n\\n\\n**[00:28:36] 发言人 3**:没榆林公安那个漏洞反馈回来的就是公安网和电子网。\\n\\n\\n\\n**[00:28:41] 发言人 6**:不是他的不动打电话了,他报告写的给我写的报告那个报告他说他最初是客户说他们云桌面要用到公安和网和政务外网,但并没说要跨两个网段。\\n\\n\\n\\n**[00:28:55] 发言人 6**:然后他们现在也去问了,不知道客户到底要怎么用,因为这个还没装,但是这个东西是客户明确要求就装网口,他谁我们去装,所以装的时候要他们部署给我们反馈。\\n\\n\\n\\n**[00:29:10] 发言人 3**:一个人说了,这里就是两个问题,一个是我跟苏伟跟俊杰也开了这个会议,如果是我们去装双网口,如果是政策不允许,最后影响的肯定是这个位置。\\n\\n\\n\\n**[00:29:21] 发言人 3**:对,就是公安肯定会甩锅。\\n\\n\\n\\n**[00:29:23] 发言人 3**:公安不可能因为这个事丢自己的不纱帽。\\n\\n\\n\\n**[00:29:27] 发言人 3**:那为这个事情就是政策问题,到底允许不允许北信源我们在里面买全器,他厂家自己都说他没做,那怎么会涉及那安全?\\n\\n\\n\\n**[00:29:36] 发言人 3**:所以我们里面。\\n\\n\\n\\n**[00:29:38] 发言人 0**:没有法务的风险,那个已经给卖,已经给给那个基本。\\n\\n\\n\\n**[00:29:43] 发言人 5**:上还我卖出去了。\\n\\n\\n\\n**[00:29:44] 发言人 0**:卖出去也到没有什么。\\n\\n\\n\\n**[00:29:46] 发言人 3**:按理说出问题,出问题你厂家就会有风险,谁接的那个谁就要负责任,就是谁机接一线是。\\n\\n\\n\\n**[00:29:54] 发言人 6**:有问题的。\\n\\n\\n\\n**[00:29:55] 发言人 6**:但是本身产品没问题,因为我产品多了一个网格。\\n\\n\\n\\n**[00:29:59] 发言人 0**:你产品问题是你合同里面有没有设方案,你的之间有没有,那叫叫法律分歧,说他妈的你说你可以,结果不可以。\\n\\n\\n\\n**[00:30:08] 发言人 0**:因为你造这个方案的时候,经销商觉得我马上就卖了,但最后经销商打官司联用了,经销商退货了。\\n\\n\\n\\n**[00:30:16] 发言人 0**:也就是说在合同里面你。\\n\\n\\n\\n**[00:30:18] 发言人 6**:承诺我的你没达到,对客户没说他要怎么用,但是他客户。\\n\\n\\n\\n**[00:30:23] 发言人 3**:就要刷网口,这个方面不是我们设计的,我是他要。\\n\\n\\n\\n**[00:30:26] 发言人 3**:彭总不知道记不记得18年的时候,王云还在立维的时候,19年深圳商汤就爆了一个雷,虽然是基层商买的桑汤,供给公安做的人脸识别,但是整个深圳市公安稽查和公示的是孙信福泄露了深圳市仓库库中标。\\n\\n\\n\\n**[00:30:46] 发言人 3**:不是孙信福,是桑汤泄露深圳市仓储库,我直接划成一个大红头文件,在网公网上公示的。\\n\\n\\n\\n**[00:30:54] 发言人 3**:虽然不是商汤直接中标,商汤也不会直接中标。\\n\\n\\n\\n**[00:30:59] 发言人 3**:但就是说商涛的人脸识别这套系统,把深圳仓储库给泄露了。\\n\\n\\n\\n**[00:31:04] 发言人 3**:原因是他缓存深圳仓储库,被别人在实频专网给他攻击了,把仓储库拿走,厂家肯定会有这个影响。\\n\\n\\n\\n**[00:31:11] 发言人 3**:所以说我在搞这个试点测试的过程中,我至少就业务层面从南安华送我们的,包含罗天华,从市科兴镇的。\\n\\n\\n\\n**[00:31:19] 发言人 3**:是没有遇到,就直接过。\\n\\n\\n\\n**[00:31:21] 发言人 0**:现在上没有使,因为本来我就是希望这个做一个案例,做一个可复制的案例,因为公安这个事还是很大,是吧?\\n\\n\\n\\n**[00:31:29] 发言人 0**:你这了解一下。\\n\\n\\n\\n**[00:31:31] 发言人 4**:这原则上我建议如果业主不给我们材料的话,他不给我就是不管是这种材料,不管挂哪,我你必须下到命令给我,给个东西给我才能建议,不管是管我事情还卖我,这三个我绝对不能乱传,因为当时我们来面公。\\n\\n\\n\\n**[00:31:49] 发言人 0**:交流所有不好。\\n\\n\\n\\n**[00:31:50] 发言人 3**:那最后一个就是今天早上那个谁与志伟过错的一个字,自发政开发这政厅就是产妇找的,他产妇找的,他说我们报价太高,我要是为能不能协调地力开发申请,报价太高。\\n\\n\\n\\n**[00:32:08] 发言人 7**:的问题是包含这付费用。\\n\\n\\n\\n**[00:32:11] 发言人 7**:他他跟我说的是。\\n\\n\\n\\n**[00:32:12] 发言人 3**:一开始我们报的15个变成7.5,结果那个产妇跟他说,你们最多给你2万块钱。\\n\\n\\n\\n**[00:32:20] 发言人 3**:能够做这个事情,这个细节看谁能帮于志伟去协调一下。\\n\\n\\n\\n**[00:32:26] 发言人 0**:这个事是谁来管。\\n\\n\\n\\n**[00:32:28] 发言人 3**:是华山,但是确定孙兴福已经在这个,这人庭目上已经。\\n\\n\\n\\n**[00:32:34] 发言人 0**:设计完了,核实孙兴福。\\n\\n\\n\\n**[00:32:36] 发言人 0**:谁什么意思?\\n\\n\\n\\n**[00:32:37] 发言人 0**:这个项目。\\n\\n\\n\\n**[00:32:38] 发言人 7**:是底是云的项目,想浙江省数据局的一个云肉面的项目,他但是浙江不是政务网上有个自政钉,钉钉的就是阿里宝的钉钉的一个东西,所有的政务网上都要跟这个硬接,有些可能我们开。\\n\\n\\n\\n**[00:32:58] 发言人 0**:这个接口。\\n\\n\\n\\n**[00:32:59] 发言人 7**:他们评估了大概10万15万研发。\\n\\n\\n\\n**[00:33:03] 发言人 0**:研华三海,那这肯定。\\n\\n\\n\\n**[00:33:05] 发言人 7**:他们来来来定制。\\n\\n\\n\\n**[00:33:07] 发言人 0**:这个东西华山品华山三十多年的研发。\\n\\n\\n\\n**[00:33:11] 发言人 0**:对,三十多三十那肯定是乱评的那这个肯定没。\\n\\n\\n\\n**[00:33:17] 发言人 7**:这么搞的,但你这个2万块钱肯。\\n\\n\\n\\n**[00:33:20] 发言人 3**:定一高不?\\n\\n\\n\\n**[00:33:22] 发言人 3**:当时不就是说我们弄个人进进华山这种农。\\n\\n\\n\\n**[00:33:27] 发言人 0**:关键项目。\\n\\n\\n\\n**[00:33:30] 发言人 7**:要拿项目已经下。\\n\\n\\n\\n**[00:33:35] 发言人 3**:已。\\n\\n\\n\\n**[00:33:36] 发言人 7**:掉了。\\n\\n\\n\\n**[00:33:37] 发言人 0**:现在。\\n\\n\\n\\n**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。\\n\\n\\n\\n**[00:33:49] 发言人 3**:是么高。\\n\\n\\n\\n**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。\\n\\n\\n\\n**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。\\n\\n\\n\\n**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有问题的,他也没问我们。\\n\\n\\n\\n**[00:34:07] 发言人 0**:然后省付钱。\\n\\n\\n\\n**[00:34:08] 发言人 7**:省代省代就省代就是做,他肯定做不了。\\n\\n\\n\\n**[00:34:16] 发言人 3**:现在浙。\\n\\n\\n\\n**[00:34:19] 发言人 7**:江代表处。\\n\\n\\n\\n**[00:34:21] 发言人 3**:江表华华。\\n\\n\\n\\n**[00:34:23] 发言人 7**:华妇妇数志。\\n\\n\\n\\n**[00:34:27] 发言人 6**:投标过程啥。\\n\\n\\n\\n**[00:34:29] 发言人 7**:都没不上,自己管的对,也没问。\\n\\n\\n\\n**[00:34:35] 发言人 6**:我们。\\n\\n\\n\\n**[00:34:36] 发言人 6**:然后现在他。\\n\\n\\n\\n**[00:34:38] 发言人 7**:妈的我们。\\n\\n\\n\\n**[00:34:40] 发言人 6**:这个概就报端。\\n\\n\\n\\n**[00:34:42] 发言人 7**:到江。\\n\\n\\n\\n**[00:34:44] 发言人 6**:你们谈。\\n\\n\\n\\n**[00:34:44] 发言人 0**:反正如果后期有扩容这个的话,我觉得还是看看能不能结合这个合我们在个那我现在给。\\n\\n\\n\\n**[00:34:54] 发言人 7**:他是说175000,然后再跟他再再磨呗。\\n\\n\\n\\n**[00:34:58] 发言人 3**:首千华还说不,这个产妇比出来了,毕竟骨感可以重视的。\\n\\n\\n\\n**[00:35:03] 发言人 6**:好吧,像我们的。\\n\\n\\n\\n**[00:35:05] 发言人 7**:亏亏也没办法,有些人。\\n\\n\\n\\n**[00:35:08] 发言人 0**:该做还是75000,你是边际成本的,你亏啥亏。\\n\\n\\n\\n**[00:35:12] 发言人 3**:你反正那个人你都养。\\n\\n\\n\\n**[00:35:14] 发言人 0**:只要华商愿意给我干了。\\n\\n\\n\\n**[00:35:17] 发言人 7**:那几个人反正你都养了。\\n\\n\\n\\n**[00:35:19] 发言人 7**:好,这里面就是说他能做吗?\\n\\n\\n\\n**[00:35:23] 发言人 6**:农业新招的那个。\\n\\n\\n\\n**[00:35:24] 发言人 3**:他现在可以做。\\n\\n\\n\\n**[00:35:26] 发言人 3**:我认为这个归接跟人家就跟产。\\n\\n\\n\\n**[00:35:29] 发言人 0**:品主线一点关系没有,进不面试,你们走走,要走走。\\n\\n\\n\\n**[00:35:35] 发言人 7**:还是能做一些事情的,可以做不少事情的。\\n\\n\\n\\n**[00:35:38] 发言人 7**:就像类似的这种活就可以我。\\n\\n\\n\\n**[00:35:41] 发言人 0**:们就可以扔给他去做了。\\n\\n\\n\\n**[00:35:43] 发言人 0**:你觉得可以你就招。\\n\\n\\n\\n**[00:35:45] 发言人 0**:我觉得他们但时价格。\\n\\n\\n\\n**[00:35:47] 发言人 7**:他跟薪资这边他可能要总共加起来在2K左右。\\n\\n\\n\\n**[00:35:51] 发言人 0**:这个20K左右。\\n\\n\\n\\n**[00:35:58] 发言人 7**:你们看到,但是我觉得还是有有价值的。\\n\\n\\n\\n**[00:36:02] 发言人 7**:至少我们放一个人进去。\\n\\n\\n\\n**[00:36:04] 发言人 7**:而且张志辉答应过,就过两个月肯定把它放到这个研发场地里去工作的。\\n\\n\\n\\n**[00:36:09] 发言人 3**:好,继续,我这儿结束了没。\\n\\n\\n\\n**[00:36:13] 发言人 1**:其他没。\\n\\n\\n\\n**[00:36:32] 发言人 8**:这个的话一个是上周的话,一个是河北农信的有一个开发测试区网络建设的设备的这样的一个项目。\\n\\n\\n\\n**[00:36:43] 发言人 8**:然后的话这个事情是应该是到后续马上要签合同的,应个是。\\n\\n\\n\\n**[00:36:51] 发言人 8**:第二个的话是中国移动通信的青海有限公司,有一个d的一个集成投组伙伴的。\\n\\n\\n\\n**[00:37:00] 发言人 8**:我们应该是要去入他的一个编c的一个库。\\n\\n\\n\\n**[00:37:04] 发言人 8**:然我们上周的话是把我报了名,就应该是跟着项目走。\\n\\n\\n\\n**[00:37:12] 发言人 3**:这是王丽丽那。\\n\\n\\n\\n**[00:37:15] 发言人 1**:边算力小,目。\\n\\n\\n\\n**[00:37:18] 发言人 3**:动卖卖给买我们我们去买新华三四光合到一起有两个规模,王也利用为他主导这个销售,就看有没有机会。\\n\\n\\n\\n**[00:37:30] 发言人 3**:80%的工作目都谈的7788了,但现在我们就是相当于做移动的助理,要不然我。\\n\\n\\n\\n**[00:37:39] 发言人 3**:移动要求我们的电视厅汇。\\n\\n\\n\\n**[00:37:43] 发言人 0**:这个有。\\n\\n\\n\\n**[00:37:44] 发言人 3**:几个点,现在还没谈他他端午节回来要搞我,他那个就谢谢。\\n\\n\\n\\n**[00:37:52] 发言人 1**:我稍等等。\\n\\n\\n\\n**[00:37:53] 发言人 0**:好好继续。\\n\\n\\n\\n**[00:37:54] 发言人 8**:第三个也还是上次说的是就昌平的M4的一个这块的一个项目。\\n\\n\\n\\n**[00:38:04] 发言人 8**:然后的话我们上周的话是主要是看了一下他的图纸,图纸的话应该是还是不管是图纸也无权,然后清单的话又就遗漏的地方,我觉得可能就是重点的话是。\\n\\n\\n\\n**[00:38:18] 发言人 1**:要把那些图纸。\\n\\n\\n\\n**[00:38:19] 发言人 8**:清单这些东西把它理清楚。\\n\\n\\n\\n**[00:38:22] 发言人 8**:然后在后面的这个项目把它顺。\\n\\n\\n\\n**[00:38:32] 发言人 8**:第四个的话是辽宁,辽宁的那个。\\n\\n\\n\\n**[00:38:38] 发言人 8**:电视台的4K的项目,上周也汇报过,然后尽快的话推动它报。\\n\\n\\n\\n**[00:38:49] 发言人 8**:然后我这边的话是一个是那个视频号。\\n\\n\\n\\n**[00:38:52] 发言人 0**:数字也一直没搞好。\\n\\n\\n\\n**[00:38:54] 发言人 8**:对,因为搞本来是最开始搞搞好了一个,搞好了一个,甚至说我们那个微微胖里头以后不能够再用那个呃就是微胖的字。\\n\\n\\n\\n**[00:39:06] 发言人 0**:我们数字研究越来越回到了什们网上那个长得有点像那个了,他好像他们是故意这样的。\\n\\n\\n\\n**[00:39:16] 发言人 0**:牛娃二的数字很多,那女的都一样,女的都一样。\\n\\n\\n\\n**[00:39:20] 发言人 6**:发音都一,不是翻译。\\n\\n\\n\\n**[00:39:21] 发言人 0**:你没发现那女的都也是老的年轻的都一样,好多男的女的也一样。\\n\\n\\n\\n**[00:39:26] 发言人 0**:因为就一套。\\n\\n\\n\\n**[00:39:27] 发言人 6**:东西做出来,所以我觉得因。\\n\\n\\n\\n**[00:39:29] 发言人 0**:为那个成本低,或者说可能平时的什么也低,就在国内我觉得都走向那个方向。\\n\\n\\n\\n**[00:39:36] 发言人 6**:也每次都一样,语气都一样,我看他好,然后我人小气。\\n\\n\\n\\n**[00:39:41] 发言人 0**:就是脸五年的脸,你没发现你自己,你发现你你你看看就最近发布那个那个张艺发布那个就跟那个就跟我们那个那就开始瘦下来了,原来我们俩研人一样,就开始跟那个像了。\\n\\n\\n\\n**[00:39:54] 发言人 8**:他可能那种无论是因为我们做最后要做那个视频的话,他还是要通过那个C档次。\\n\\n\\n\\n**[00:40:01] 发言人 8**:C档的话他肯定里头他在做那个点的时候,他肯定是有他的一系列的规范条件的。\\n\\n\\n\\n**[00:40:09] 发言人 8**:所以说你越做就会和网上的那个数字点做的越来越像。\\n\\n\\n\\n**[00:40:15] 发言人 8**:就不管你怎么约束他,你给他写什么替示词,或者你的原始是你给到他了个他给你做出来的,可能他就会有。\\n\\n\\n\\n**[00:40:27] 发言人 8**:然后南岸的那个无人机。\\n\\n\\n\\n**[00:40:30] 发言人 4**:项目的话。\\n\\n\\n\\n**[00:40:31] 发言人 3**:那个是。\\n\\n\\n\\n**[00:40:33] 发言人 0**:但是也有很多高手。\\n\\n\\n\\n**[00:40:35] 发言人 0**:但是我怀疑这新浪子里面出来的那些,很多女生好看的各个但是只。\\n\\n\\n\\n**[00:40:43] 发言人 5**:要是那种叫什么快餐店出来的,全是一样。\\n\\n\\n\\n**[00:40:48] 发言人 5**:你用他平台的他太多了,只能用他拍的。\\n\\n\\n\\n**[00:40:52] 发言人 5**:还有就是自那个feel自己做那个。\\n\\n\\n\\n**[00:40:55] 发言人 5**:可所说我们做过。\\n\\n\\n\\n**[00:40:58] 发言人 0**:但他算消耗比较高。\\n\\n\\n\\n**[00:41:\n...[truncated]", + "tool_call_id": "chatcmpl-tool-a56cf2867a5bbd3a", + "created_at": "2026-06-24T17:02:17.353426" + }, + { + "tool_name": "store_meeting_memory", + "arguments": { + "content": "**[00:22:01] 发言人 2**:是分批次发货的,这个。\n\n**[00:22:46] 发言人 0**:月记不了好。\n\n**[00:22:51] 发言人 2**:我这边就我之前看。\n\n**[00:22:57] 发言人 0**:好,继续。\n\n**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。\n\n**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。\n\n**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。\n\n**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。\n\n**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。\n\n**[00:03:57] 发言人 3**:现在累计已经收到了1297. \n\n**[00:04:02] 发言人 0**:那我们没电。\n\n**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。\n\n**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。\n\n**[00:04:12] 发言人 3**:所以说他这个。\n\n**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。\n\n**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。\n\n**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。\n\n**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。\n\n**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。\n\n**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。\n\n**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,预付30%,发货前70%。\n\n**[00:05:15] 发言人 3**:目前谈的是这么一个。\n\n**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。\n\n**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。\n\n**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。\n\n**[00:05:34] 发言人 0**:有到期。\n\n**[00:05:35] 发言人 0**:几个点。\n\n**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。\n\n**[00:05:49] 发言人 4**:个要走什么东西。\n\n**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。\n\n**[00:05:58] 发言人 0**:个点是另外的。\n\n**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。\n\n**[00:06:03] 发言人 3**:胡松还没找你,但是。\n\n**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。\n\n**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。\n\n**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。\n\n**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。\n\n**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。\n\n**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。\n\n**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。\n\n**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。\n\n**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天华去跟你沟通通。\n\n**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。\n\n**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗?\n\n**[00:07:29] 发言人 3**:那谁接呢?\n\n**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。\n\n**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做?\n\n**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。\n\n**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。\n\n**[00:08:04] 发言人 5**:我们今天把超就算快。\n\n**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。\n\n**[00:08:11] 发言人 0**:两种方案的成本就不太一样。\n\n**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。\n\n**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。\n\n**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。\n\n**[00:08:49] 发言人 0**:放碑。\n\n**[00:08:59] 发言人 3**:的。\n\n**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。\n\n**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。\n\n**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。\n\n**[00:09:26] 发言人 0**:天天去管理。\n\n**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。\n\n**[00:09:41] 发言人 5**:有有多少人,那这个个。\n\n**[00:09:46] 发言人 0**:个这。\n\n**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。\n\n**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。\n\n**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。\n\n**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。\n\n**[00:10:16] 发言人 0**:不并不大是吧?\n\n**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个。\n\n**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。\n\n**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。\n\n**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。\n\n**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。\n\n**[00:10:54] 发言人 3**:好,那我继续。\n\n**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。\n\n**[00:11:17] 发言人 3**:然后周俊杰和何。\n\n**[00:11:20] 发言人 0**:丽湘配合。\n\n**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行?\n\n**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。\n\n**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。\n\n**[00:11:40] 发言人 3**:让紫薇看一下。\n\n**[00:11:41] 发言人 0**:给紫薇也看一下。\n\n**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。\n\n**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。\n\n**[00:11:50] 发言人 3**:因为你这。\n\n**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧?\n\n**[00:11:56] 发言人 0**:说实话我们就帮忙居多。\n\n**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。\n\n**[00:12:06] 发言人 3**:那我起草一份微对你。\n\n**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。\n\n**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期,好龙也准备好了。\n\n**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。\n\n**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。\n\n**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。\n\n**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。\n\n**[00:12:47] 发言人 0**:还是说的那个咱本能。\n\n**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。\n\n**[00:13:10] 发言人 3**:对对对。\n\n**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧?\n\n**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。\n\n**[00:13:29] 发言人 0**:你这个就是有就行,有边际成本。\n\n**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。\n\n**[00:13:37] 发言人 0**:这个不对,不是吧?\n\n**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。\n\n**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧?\n\n**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。\n\n**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你?\n\n**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要?\n\n**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对?\n\n**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。\n\n**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧?\n\n**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。\n\n**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。\n\n**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。\n\n**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。\n\n**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。\n\n**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整?\n\n**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。\n\n**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我?\n\n**[00:15:40] 发言人 5**:都其实有好多人在报。\n\n**[00:15:42] 发言人 0**:在哪怎么报?\n\n**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着?\n\n**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。\n\n**[00:15:51] 发言人 5**:不不不,你说话要负责的。\n\n**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少?\n\n**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。\n\n**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。\n\n**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那那是有人报,有人报。\n\n**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。\n\n**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧?\n\n**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。\n\n**[00:16:34] 发言人 0**:行,两千美金,两千美金。\n\n**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。\n\n**[00:16:39] 发言人 0**:这羊出羊,那他们那个。\n\n**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。\n\n**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。\n\n**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢?\n\n**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。\n\n**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。\n\n**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧?\n\n**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。\n\n**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。\n\n**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操我这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。\n\n**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少?\n\n**[00:18:12] 发言人 0**:以后需要多少,怎么做?\n\n**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token?\n\n**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗?\n\n**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧?\n\n**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型?\n\n**[00:18:36] 发言人 0**:还没有。\n\n**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。\n\n**[00:18:43] 发言人 0**:那些我们做的财务。\n\n**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。\n\n**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。\n\n**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。\n\n**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。\n\n**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。\n\n**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。\n\n**[00:19:29] 发言人 0**:我们算的清账吗?\n\n**[00:19:30] 发言人 0**:关键你现在算不清账吗?\n\n**[00:19:32] 发言人 0**:你知道吧?\n\n**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。\n\n**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对?\n\n**[00:19:42] 发言人 0**:他就拿市场比市场平济市场我们水油拿去卖,拿到那个街上。\n\n**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方?\n\n**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那那人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。\n\n**[00:19:58] 发言人 0**:我操是吧?\n\n**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。\n\n**[00:20:05] 发言人 0**:行。\n\n**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。\n\n**[00:20:14] 发言人 5**:所以说我觉得。\n\n**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧?\n\n**[00:20:24] 发言人 0**:这后面的这个叫什么呢?\n\n**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。\n\n**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。\n\n**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢?\n\n**[00:20:44] 发言人 0**:你为你们做,这是个工程。\n\n**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。\n\n**[00:20:56] 发言人 0**:你就跟那个。\n\n**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。\n\n**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他去确认,因为说确认了一次,不是上我他我周六。\n\n**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。\n\n**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。\n\n**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. \n\n**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。\n\n**[00:21:25] 发言人 3**:会说不给我的。\n\n**[00:21:26] 发言人 3**:吴家表那。\n\n**[00:21:27] 发言人 0**:有一台没了。\n\n**[00:21:28] 发言人 5**:他发到发到。\n\n**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。\n\n**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。\n\n**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。\n\n**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。\n\n**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体。\n\n**[00:21:50] 发言人 5**:好,我还真知道。\n\n**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。\n\n**[00:21:57] 发言人 6**:硬件搞搞,是100的. \n\n**[00:21:59] 发言人 0**:3分之1都算的。\n\n**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗?\n\n**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。\n\n**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。\n\n**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。\n\n**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道?\n\n**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对?\n\n**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。\n\n**[00:22:58] 发言人 0**:他没有dream,他就是要资源互投资,哪有那么个dream。\n\n**[00:23:01] 发言人 0**:说了几年的剧,只问毛剧,所以我们这也不存在dream不剧,我们剧最多就是一年半年,今年能不能做,明年能不能做做不了就别做了,没剧没就那么点钱,哪有剧。\n\n**[00:23:13] 发言人 0**:所以说我说回来就是你们能不能至少在他妈的要资源护图的这一块,你们能不能给我那个正。\n\n**[00:23:24] 发言人 5**:规军。\n\n**[00:23:26] 发言人 5**:好。\n\n**[00:23:27] 发言人 0**:我们下来再开展这个交易。\n\n**[00:23:29] 发言人 0**:参加以后我们再开展这个问题,把这个把硬件把这么给搞明白,我操你们,这个其实我实话实说,没好意思说我在外面吹牛,实际上还是游击队,紫光汇智游击队信息技术有限公司。\n\n**[00:23:43] 发言人 0**:我操哪天把游戏都脱掉,铁道游击队。\n\n**[00:23:54] 发言人 0**:这点抽点东西过个货,那抽点东西过个货就提到一个月。\n\n**[00:24:02] 发言人 0**:好,继续。\n\n**[00:24:03] 发言人 3**:我招人的话,九个人九个省可没问题了。\n\n**[00:24:07] 发言人 3**:我们个曾幸福,云南那个那个人韩东生,我下午约四点再面一下,如果没问题。\n\n**[00:24:17] 发言人 3**:进来,然后韩东生,刚刚我跟孙刚也聊了,让陈畅也跟他面对面沟通。\n\n**[00:24:24] 发言人 3**:有下午我自己再跟他聊一下。\n\n**[00:24:27] 发言人 0**:但是约了十天。\n\n**[00:24:29] 发言人 3**:然后关于明智的各省份的考核数数据现在C 2M上是1.8亿的空间。\n\n**[00:24:36] 发言人 3**:然上周一我们开会让他们把所有的空间填报C 25的信息的准确度重新更新里面。\n\n**[00:24:44] 发言人 3**:目前来看在九个销售里面的省份,预估六月下单金额在307万,准确率我们认为应该是已经达到80%的准确率的。\n\n**[00:24:55] 发言人 3**:这个C M目前已下达了只有万,就是六月份单月总计预估下达307万,已完成56万。\n\n**[00:25:04] 发言人 3**:我刚刚会前跟三郎也讨论一下这十个省份云质的任务。\n\n**[00:25:10] 发言人 3**:我们是把6到12月对他入职时长,6到12月把他们拉了一下经营20年的任务。\n\n**[00:25:17] 发言人 3**:然后有两个内蒙河南和重庆的杨思磊,然后张贵和杨思磊因为在职12个月就挂了全年任务,剩余的就根据食长来我们列了,目前预估差不多在2800万云值销售,云质销售就26年的任务。\n\n**[00:25:33] 发言人 3**:然后下周我们会最终我们把正式的跟每个人。\n\n**[00:25:41] 发言人 3**:最后是有几个求助,一个就是汇智牌的3650和5600的检测报告,具体这面加快一下。\n\n**[00:25:50] 发言人 3**:6月26号八号米这有个标要投100万左右的标地,这两个终端的费用用到。\n\n**[00:25:57] 发言人 6**:需要检测报告。\n\n**[00:25:59] 发言人 3**:6月26号没有出来。\n\n**[00:26:01] 发言人 3**:能不能做来出来。\n\n**[00:26:03] 发言人 6**:这个我你出不。\n\n**[00:26:05] 发言人 3**:我到时候想办法,你把他现在是给了的么报告模板给销售,这个我们就不去能力,如果能出来,我们就催一下,因为他是已经定好开标这两个终端也已包括价格,我催一下,有可能能出来。\n\n**[00:26:20] 发言人 6**:但是这个不保证,不保百分之百,你催一下急。\n\n**[00:26:24] 发言人 6**:对。\n\n**[00:26:25] 发言人 4**:他已经是。\n\n**[00:26:25] 发言人 3**:加催急了。\n\n**[00:26:26] 发言人 6**:我们上周我们当时搞过检测报告。\n\n**[00:26:29] 发言人 3**:我检测报告我们的是我们上次紫发软件是带病忙的,马上招标。\n\n**[00:26:35] 发言人 6**:我跟你说说都花。\n\n**[00:26:36] 发言人 3**:十天就搞下来,拿掉个我就催训志给的这个报告。\n\n**[00:26:41] 发言人 6**:我感觉没那上周是我们集团对我们的商标合同耽搁了十天,集团才今天早上才给到,我们也一直在催集团到没有到期,但是人家说你到期时间太短了,他不给我批正什么起的尤尼森是那个商标紫光集的。\n\n**[00:27:03] 发言人 6**:然后7月6号到期,然后其实没到期,但是证书机构是认为我们那个到期时间太短了让我们重新一签。\n\n**[00:27:14] 发言人 6**:我想我们我要和华润。\n\n**[00:27:17] 发言人 1**:法找个集团。\n\n**[00:27:19] 发言人 3**:然第就是公安机策问题。\n\n**[00:27:23] 发言人 0**:已到全。\n\n**[00:27:25] 发言人 6**:那单如果拖拖。\n\n**[00:27:28] 发言人 0**:他们这次。\n\n**[00:27:30] 发言人 6**:已经很因为有两个流程。\n\n**[00:27:37] 发言人 0**:继续。\n\n**[00:27:38] 发言人 3**:然后关于像公安的一期专用的问题,我们上周第一顺国找了南海公安做测试。\n\n**[00:27:47] 发言人 3**:第二我找了市局。\n\n**[00:27:51] 发言人 3**:都没有遇到过在公安网或者是电子网,或者视频专网一起发问的情况。\n\n**[00:27:58] 发言人 3**:也孙伟找到北信源,北信源也答复没有那个安全边界,他们想做但还没做,所以说就完全不一样。\n\n**[00:28:07] 发言人 3**:所以说榆林公安那个榆林公安是这样的。\n\n**[00:28:11] 发言人 6**:我们问他内蒙,我说内蒙你们到底是怎么在用机方用?\n\n**[00:28:16] 发言人 6**:最后他是说那个机子是接两个网口都接了公安网,但是他们在公安网里面把它分成了数据域和用户域两套语。\n\n**[00:28:27] 发言人 6**:用那个是正常的,那个是可以用他他们他们是这样的用好,榆林公安现。\n\n**[00:28:34] 发言人 3**:在就是不知道他们要怎么用。\n\n**[00:28:36] 发言人 3**:没榆林公安那个漏洞反馈回来的就是公安网和电子网。\n\n**[00:28:41] 发言人 6**:不是他的不动打电话了,他报告写的给我写的报告那个报告他说他最初是客户说他们云桌面要用到公安和网和政务外网,但并没说要跨两个网段。\n\n**[00:28:55] 发言人 6**:然后他们现在也去问了,不知道客户到底要怎么用,因为这个还没装,但是这个东西是客户明确要求就装网口,他谁我们去装,所以装的时候要他们部署给我们反馈。\n\n**[00:29:10] 发言人 3**:一个人说了,这里就是两个问题,一个是我跟苏伟跟俊杰也开了这个会议,如果是我们去装双网口,如果是政策不允许,最后影响的肯定是这个位置。\n\n**[00:29:21] 发言人 3**:对,就是公安肯定会甩锅。\n\n**[00:29:23] 发言人 3**:公安不可能因为这个事丢自己的不纱帽。\n\n**[00:29:27] 发言人 3**:那为这个事情就是政策问题,到底允许不允许北信源我们在里面买全器,那厂家自己都说他没做,那怎么会涉及那安全?\n\n**[00:29:36] 发言人 3**:所以我们里面。\n\n**[00:29:38] 发言人 0**:没有法务的风险,那个已经给卖,已经给给那个基本。\n\n**[00:29:43] 发言人 5**:上还我卖出去了。\n\n**[00:29:44] 发言人 0**:卖出去也到没有什么。\n\n**[00:29:46] 发言人 3**:按理说出问题,出问题你厂家就会有风险,谁接的那个谁就要负责任,就是谁机接一线是。\n\n**[00:29:54] 发言人 6**:有问题的。\n\n**[00:29:55] 发言人 6**:但是本身产品没问题,因为我产品多了一个网格。\n\n**[00:29:59] 发言人 0**:你产品问题是你合同里面有没有设方案,你的之间有没有,那叫叫法律分歧,说他妈的你说你可以,结果不可以。\n\n**[00:30:08] 发言人 0**:因为你造这个方案的时候,经销商觉得我马上就卖了,但最后经销商打官司联用了,经销商退货了。\n\n**[00:30:16] 发言人 0**:也就是说在合同里面你。\n\n**[00:30:18] 发言人 6**:承诺我的你没达到,对客户没说他要怎么用,但是他客户。\n\n**[00:30:23] 发言人 3**:就要刷网口,这个方面不是我们设计的,我是他要。\n\n**[00:30:26] 发言人 3**:彭总不知道记不记得18年的时候,王云还在立维的时候,19年深圳商汤就爆了一个雷,虽然是基层商买的桑汤,供给公安做的人脸识别,但是整个深圳市公安稽查和公示的是孙信福泄露了深圳市仓库库中标。\n\n**[00:30:46] 发言人 3**:不是孙信福,是桑汤泄露深圳市仓储库,我直接划成一个大红头文件,在网公网上公示的。\n\n**[00:30:54] 发言人 3**:虽然不是商汤直接中标,商汤也不会直接中标。\n\n**[00:30:59] 发言人 3**:但就是说商涛的人脸识别这套系统,把深圳仓储库给泄露了。\n\n**[00:31:04] 发言人 3**:原因是他缓存深圳仓储库,被别人在实频专网给他攻击了,把仓储库拿走,厂家肯定会有这个影响。\n\n**[00:31:11] 发言人 3**:所以说我在搞这个试点测试的过程中,我至少就业务层面从南安华送我们的,包含罗天华,从市科兴镇的。\n\n**[00:31:19] 发言人 3**:是没有遇到,就直接过。\n\n**[00:31:21] 发言人 0**:现在上没有使,因为本来我就是希望这个做一个案例,做一个可复制的案例,因为公安这个事还是很大,是吧?\n\n**[00:31:29] 发言人 0**:你这了解一下。\n\n**[00:31:31] 发言人 4**:这原则上我建议如果业主不给我们材料的话,他不给我就是不管是这种材料,不管挂哪,我你必须下到命令给我,给个东西给我才能建议,不管是管我事情还卖我,这三个我绝对不能乱传,因为当时我们来面公。\n\n**[00:31:49] 发言人 0**:交流所有不好。\n\n**[00:31:50] 发言人 3**:那最后一个就是今天早上那个谁与志伟过错的一个字,自发政开发这政厅就是产妇找的,他产妇找的,他说我们报价太高,我要是为能不能协调地力开发申请,报价太高。\n\n**[00:32:08] 发言人 7**:的问题是包含这付费用。\n\n**[00:32:11] 发言人 7**:他他跟我说的是。\n\n**[00:32:12] 发言人 3**:一开始我们报的15个变成7.5,结果那个产妇跟他说,你们最多给你2万块钱。\n\n**[00:32:20] 发言人 3**:能够做这个事情,这个细节看谁能帮于志伟去协调一下。\n\n**[00:32:26] 发言人 0**:这个事是谁来管。\n\n**[00:32:28] 发言人 3**:是华山,但是确定孙兴福已经在这个,这人庭目上已经。\n\n**[00:32:34] 发言人 0**:设计完了,核实孙兴福。\n\n**[00:32:36] 发言人 0**:谁什么意思?\n\n**[00:32:37] 发言人 0**:这个项目。\n\n**[00:32:38] 发言人 7**:是底是云的项目,想浙江省数据局的一个云肉面的项目,他但是浙江不是政务网上有个自政钉,钉钉的就是阿里宝的钉钉的一个东西,所有的政务网上都要跟这个硬接,有些可能我们开。\n\n**[00:32:58] 发言人 0**:这个接口。\n\n**[00:32:59] 发言人 7**:他们评估了大概10万15万研发。\n\n**[00:33:03] 发言人 0**:研华三海,那这肯定。\n\n**[00:33:05] 发言人 7**:他们来来来定制。\n\n**[00:33:07] 发言人 0**:这个东西华山品华山三十多年的研发。\n\n**[00:33:11] 发言人 0**:对,三十多三十那肯定是乱评的那这个肯定没。\n\n**[00:33:17] 发言人 7**:这么搞的,但你这个2万块钱肯。\n\n**[00:33:20] 发言人 3**:定一高不?\n\n**[00:33:22] 发言人 3**:当时不就是说我们弄个人进进华山这种农。\n\n**[00:33:27] 发言人 0**:关键项目。\n\n**[00:33:30] 发言人 7**:要拿项目已经下。\n\n**[00:33:35] 发言人 3**:已。\n\n**[00:33:36] 发言人 7**:掉了。\n\n**[00:33:37] 发言人 0**:现在。\n\n**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。\n\n**[00:33:49] 发言人 3**:是么高。\n\n**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。\n\n**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。\n\n**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有问题的,他也没问我们。\n\n**[00:34:07] 发言人 0**:然后省付钱。\n\n**[00:34:08] 发言人 7**:省代省代就省代就是做,他肯定做不了。\n\n**[00:34:16] 发言人 3**:现在浙。\n\n**[00:34:19] 发言人 7**:江代表处。\n\n**[00:34:21] 发言人 3**:江表华华。\n\n**[00:34:23] 发言人 7**:华妇妇数志。\n\n**[00:34:27] 发言人 6**:投标过程啥。\n\n**[00:34:29] 发言人 7**:都没不上,自己管的对,也没问。\n\n**[00:34:35] 发言人 6**:我们。\n\n**[00:34:36] 发言人 6**:然后现在他。\n\n**[00:34:38] 发言人 7**:妈的我们。\n\n**[00:34:40] 发言人 6**:这个概就报端。\n\n**[00:34:42] 发言人 7**:到江。\n\n**[00:34:44] 发言人 6**:你们谈。\n\n**[00:34:44] 发言人 0**:反正如果后期有扩容这个的话,我觉得还是看看能不能结合这个合我们在个那我现在给。\n\n**[00:34:54] 发言人 7**:他是说175000,然后再跟他再再磨呗。\n\n**[00:34:58] 发言人 3**:首千华还说不,这个产妇比出来了,毕竟骨感可以重视的。\n\n**[00:35:03] 发言人 6**:好吧,像我们的。\n\n**[00:35:05] 发言人 7**:亏亏也没办法,有些人。\n\n**[00:35:08] 发言人 0**:该做还是75000,你是边际成本的,你亏啥亏。\n\n**[00:35:12] 发言人 3**:你反正那个人你都养。\n\n**[00:35:14] 发言人 0**:只要华商愿意给我干了。\n\n**[00:35:17] 发言人 7**:那几个人反正你都养了。\n\n**[00:35:19] 发言人 7**:好,这里面就是说他能做吗?\n\n**[00:35:23] 发言人 6**:农业新招的那个。\n\n**[00:35:24] 发言人 3**:他现在可以做。\n\n**[00:35:26] 发言人 3**:我认为这个归接跟人家就跟产。\n\n**[00:35:29] 发言人 0**:品主线一点关系没有,进不面试,你们走走,要走走。\n\n**[00:35:35] 发言人 7**:还是能做一些事情的,可以做不少事情的。\n\n**[00:35:38] 发言人 7**:就像类似的这种活就可以我。\n\n**[00:35:41] 发言人 0**:们就可以扔给他去做了。\n\n**[00:35:43] 发言人 0**:你觉得可以你就招。\n\n**[00:35:45] 发言人 0**:我觉得他们但时价格。\n\n**[00:35:47] 发言人 7**:他跟薪资这边他可能要总共加起来在2K左右。\n\n**[00:35:51] 发言人 0**:这个20K左右。\n\n**[00:35:58] 发言人 7**:你们看到,但是我觉得还是有有价值的。\n\n**[00:36:02] 发言人 7**:至少我们放一个人进去。\n\n**[00:36:04] 发言人 7**:而且张志辉答应过,就过两个月肯定把它放到这个研发场地里去工作的。\n\n**[00:36:09] 发言人 3**:好,继续,我这儿结束了没。\n\n**[00:36:13] 发言人 1**:其他没。\n\n**[00:36:32] 发言人 8**:这个的话一个是上周的话,一个是河北农信的有一个开发测试区网络建设的设备的这样的一个项目。\n\n**[00:36:43] 发言人 8**:然后的话这个事情是应该是到后续马上要签合同的,应个是。\n\n**[00:36:51] 发言人 8**:第二个的话是中国移动通信的青海有限公司,有一个d的一个集成投组伙伴的。\n\n**[00:37:00] 发言人 8**:我们应该是要去入他的一个编c的一个库。\n\n**[00:37:04] 发言人 8**:然我们上周的话是把我报了名,就应该是跟着项目走。\n\n**[00:37:12] 发言人 3**:这是王丽丽那。\n\n**[00:37:15] 发言人 1**:边算力小,目。\n\n**[00:37:18] 发言人 3**:动卖卖给买我们我们去买新华三四光合到一起有两个规模,王也利用为他主导这个销售,就看有没有机会。\n\n**[00:37:30] 发言人 3**:80%的工作目都谈的7788了,但现在我们就是相当于做移动的助理,要不然我。\n\n**[00:37:39] 发言人 3**:移动要求我们的电视厅汇。\n\n**[00:37:43] 发言人 0**:这个有。\n\n**[00:37:44] 发言人 3**:几个点,现在还没谈他他端午节回来要搞我,他那个就谢谢。\n\n**[00:37:52] 发言人 1**:我稍等等。\n\n**[00:37:53] 发言人 0**:好好继续。\n\n**[00:37:54] 发言人 8**:第三个也还是上次说的是就昌平的M4的一个这块的一个项目。\n\n**[00:38:04] 发言人 8**:然后的话我们上周的话是主要是看了一下他的图纸,图纸的话应该是还是不管是图纸也无权,然后清单的话又就遗漏的地方,我觉得可能就是重点的话是。\n\n**[00:38:18] 发言人 1**:要把那些图纸。\n\n**[00:38:19] 发言人 8**:清单这些东西把它理清楚。\n\n**[00:38:22] 发言人 8**:然后在后面的这个项目把它顺。\n\n**[00:38:32] 发言人 8**:第四个的话是辽宁,辽宁的那个。\n\n**[00:38:38] 发言人 8**:电视台的4K的项目,上周也汇报过,然后尽快的话推动它报。\n\n**[00:38:49] 发言人 8**:然后我这边的话是一个是那个视频号。\n\n**[00:38:52] 发言人 0**:数字也一直没搞好。\n\n**[00:38:54] 发言人 8**:对,因为搞本来是最开始搞搞好了一个,搞好了一个,甚至说我们那个微微胖里头以后不能够再用那个呃就是微胖的字。\n\n**[00:39:06] 发言人 0**:我们数字研究越来越回到了什们网上那个长得有点像那个了,他好像他们是故意这样的。\n\n**[00:39:16] 发言人 0**:牛娃二的数字很多,那女的都一样,女的都一样。\n\n**[00:39:20] 发言人 6**:发音都一,不是翻译。\n\n**[00:39:21] 发言人 0**:你没发现那女的都也是老的年轻的都一样,好多男的女的也一样。\n\n**[00:39:26] 发言人 0**:因为就一套。\n\n**[00:39:27] 发言人 6**:东西做出来,所以我觉得因。\n\n**[00:39:29] 发言人 0**:为那个成本低,或者说可能平时的什么也低,就在国内我觉得都走向那个方向。\n\n**[00:39:36] 发言人 6**:也每次都一样,语气都一样,我看他好,然后我人小气。\n\n**[00:39:41] 发言人 0**:就是脸五年的脸,你没发现你自己,你发现你你你看看就最近发布那个那个张艺发布那个就跟那个就跟我们那个那就开始瘦下来了,原来我们俩研人一样,就开始跟那个就像了。\n\n**[00:39:54] 发言人 8**:他可能那种无论是因为我们做最后要做那个视频的话,他还是要通过那个C档次。\n\n**[00:40:01] 发言人 8**:C档的话他肯定里头他在做那个点的时候,他肯定是有他的一系列的规范条件的。\n\n**[00:40:09] 发言人 8**:所以说你越做就会和网上的那个数字点做的越来越像。\n\n**[00:40:15] 发言人 8**:就不管你怎么约束他,你给他写什么替示词,或者你的原始是你给到他了个他给你做出来的,可能他就会有。\n\n**[00:40:27] 发言人 4**:南岸的那个无人机。\n\n**[00:40:30] 发言人 3**:项目的话。\n\n**[00:40:31] 发言人 3**:那个是。\n\n**[00:40:33] 发言人 0**:但是也有很多高手。\n\n**[00:40:35] 发言人 0**:但是我怀疑这新浪子里面出来的那些,很多女生好看的各个但是只。\n\n**[00:40:43] 发言人 5**:要是那种叫什么快餐店出来的,全是一样。\n\n**[00:40:48] 发言人 5**:你用他平台的他太多了,只能用他拍的。\n\n**[00:40:52] 发言人 5**:还有就是自那个feel自己做那个。\n\n**[00:40:55] 发言人 5**:可所说我们做过。\n\n**[00:40:58] 发言人 0**:但他算消耗比较高。\n\n**[00:41:00] 发言人 0**:如果我们这你们你你你高多少,你搞没有,老板我们之前搭过。\n\n**[00:41:06] 发言人 5**:但我们但时出一个视频太长了,出一个视频2个小时。\n\n**[00:41:11] 发言人 7**:这样。\n\n**[00:41:12] 发言人 7**:我觉得想这个数字人这个事,我觉得还是我我觉得还是有价值去做这个是。\n\n**[00:41:19] 发言人 0**:就是我我。\n\n**[00:41:20] 发言人 7**:不仅仅是我们自己用,我觉得我就是我们现在民桌面,有大量的教育云桌面,教育桌面。\n\n**[00:41:27] 发言人 7**:我还是觉得原泉园那个味孩的。\n\n**[00:41:30] 发言人 0**:你是对的。\n\n**[00:41:31] 发言人 0**:我就很简单,你做的好你得划算。\n\n**[00:41:34] 发言人 0**:每个代表数你给他做个一万的,他给他算的业绩你都是你你你就几十个,你代哪个代表数做的好呢?\n\n**[00:41:42] 发言人 0**:你看见没有?\n\n**[00:41:43] 发言人 0**:没有,就很简单,你要去做,你给省代每个做一个,那省代还在拿人社,但是现在这个事情,江毅就慢的。\n\n**[00:41:52] 发言人 0**:你们江毅你琢磨琢磨。\n\n**[00:41:53] 发言人 0**:还有一个他江毅你牵头,你管他们这样你牵头,你把你们他们开一起,你要企业方理中心,你们把这个把这个就把这个硬件,我们需要这个硬件,我操人家一个他妈七个人就一台H 20是吧?\n\n**[00:42:12] 发言人 0**:发六台我去要,后来紫薇说他们用的很满,给我们台还担心我做算法就是你自己得自己想办法,你很多东西都要想出来的。\n\n**[00:42:23] 发言人 0**:如果我我跟你说,我下一步我坚定不的,下一步只要你们做出,我们就把他们的埃踢布给他们,关着门说,就把他埃踢部给他收了。\n\n**[00:42:33] 发言人 0**:因为你还是那句话,我租的比你便宜,你他妈你七个人花几百万,一台20多少钱,我合在一起我都买过来,我半价给我说,紫薇你看你七个人200万加上H 20多少钱,合在一起我一半我就全买过来,我说你业务给你接了。\n\n**[00:42:51] 发言人 0**:因为本来我搞it,我也想我们各个部门对不对?\n\n**[00:42:56] 发言人 0**:都都想去好好的企业。\n\n**[00:42:59] 发言人 7**:你所有都结构化的一些it的人。\n\n**[00:43:02] 发言人 0**:问题是用这种稳定模型,这个不一定做,还是两个,我觉得还是要混合,就本地做一部分上面做一个。\n\n**[00:43:11] 发言人 0**:你比如举个例子,本地就写文案,本地把那个叫什么呢,就一次过,本地如果能把那个的那都好,你到面次过,你然做是我操不行,又重新做一次,再不行,我说你道理。\n\n**[00:43:27] 发言人 0**:是,所以还有一个我顺带说这个我就建议你在你在你你你你们就再落实一下。\n\n**[00:43:35] 发言人 0**:就华山那个他一台服务器多少钱,多少算你500是. \n\n**[00:43:40] 发言人 8**:什么事儿?\n\n**[00:43:41] 发言人 8**:好吧,用的是么?\n\n**[00:43:43] 发言人 8**:我这个我下面就是最后一点,我上周实际上是我和那个,你看我们一起和华山的开了两次会说这个事情。\n\n**[00:43:54] 发言人 8**:就现在的话他们就是给我们提了服务器的方案和一个是4900,一个是5300的。\n\n**[00:44:02] 发言人 8**:然后四华山来华夏华山,我是跟华山开的会,没有华不开什么会。\n\n**[00:44:08] 发言人 8**:我们上周我们说那个流程,我们不是要数字助理吗?\n\n**[00:44:13] 发言人 8**:数字助理的话,当时您就说比说我们要配硬件,配硬件的话就必须要要那照华山那的服务器服务器。\n\n**[00:44:23] 发言人 8**:对对对,你说我就跟拧到一起,我们就把需求提给华山了。\n\n**[00:44:28] 发言人 8**:华山就给了我们两款配置,一款是它的4900系列,一款是它的5300系列。\n\n**[00:44:34] 发言人 8**:然后每一款里头有两种芯片的配置。\n\n**[00:44:37] 发言人 0**:一种是英伟达的芯片配置,还有一种是这个就应该有H 20的。\n\n**[00:44:42] 发言人 5**:对,他他华他的20L20H20,如果A20H20超过我们的那个好,这样的就是我我觉得是这样的话。\n\n**[00:44:50] 发言人 8**:我们先让华山,因为我们需求现在是清晰的,我们要些什么东西,需要多大的算力是清晰的。\n\n**[00:44:58] 发言人 8**:我们先让华商把这个配置出来以后的话,我们如果。\n\n**[00:45:02] 发言人 0**:有好,你们先把数据也拿到,去年你们也把H 20的数据拿到,我以后就不问你了,我他妈全程给我的AI助理,我有啥事问我的AI我操。\n\n**[00:45:14] 发言人 0**:我就问他。\n\n**[00:45:15] 发言人 8**:我说H 20到底用多少?\n\n**[00:45:17] 发言人 8**:他这个是这样的,他这个方案最开始我给的方案就是我和AI讨论,讨论完了以后我就没有去问华山,就是你就是我就直接把这个配置给他,我就说你帮我确定一下这个配置要多少钱,就这么来的。\n\n**[00:45:35] 发言人 8**:他也觉得现在这个就是华山他们出这种低端的,因为当时你也跟我说,你说大概只能20万,可能就已经是这个事情的上限。\n\n**[00:45:46] 发言人 8**:因为你当时是先给了我一个中心的配置,最低的那个大概要五六十万,就那个中心,那他的那个我就给提出来,我说你先分析中心的配置,配置完了,我们华的配置做的中这个有竞争,他就给了我配置,然后我就把这拿华讨论。\n\n**[00:46:05] 发言人 8**:因为具体的他哪些机器适配了哪些卡,我们现在确实是搞。\n\n**[00:46:10] 发言人 0**:其实这个我现在理解,这个Q可open可各种可,实际上你看他都是没头的,你要有头的话,你要腾讯他首先第一个事是想接到自己的头里是吧?\n\n**[00:46:21] 发言人 0**:对,但是他慢慢他有开发商,你接别人的头,那中兴他他也是无头的,他无头的他自己需要那么大算力干嘛?\n\n**[00:46:30] 发言人 0**:他不需要那么大算力。\n\n**[00:46:32] 发言人 0**:如果纯无头的不就一个盒子就可以了,对不对?\n\n**[00:46:36] 发言人 0**:但是他有些可能都希望自己在里面,比如说放一个自己的,我觉得现在有点乱战,他妈放一个自己的什么小模型,或者放一个自己给人家。\n\n**[00:46:47] 发言人 0**:像腾讯这个模型很有意思,用这个Q的模型叫au他. \n\n**[00:46:50] 发言人 0**:这auau是一个点底下还有0.5的、0.8的,我操就自动的。\n\n**[00:46:55] 发言人 0**:但是我都怀疑他里面有可能他有些时候可能就拉到海外,有可能用他自己的可能海。\n\n**[00:47:02] 发言人 0**:那很神奇,他是一个点其他的些模型,但然他们用阿里的其他那些模型,就是有0.8的,0.5的,有一家上市公司的H这个叫什么?\n\n**[00:47:14] 发言人 0**:而且你说的,你跟我说现在腾讯已经就是你说不好用,他现在已经把那个就是我昨天晚上装的那个千问的那个欧那个那个那个欧了么?\n\n**[00:47:27] 发言人 0**:那个千问3.5这个506年5月,06年3月份四月发布的9B的都可以下载了。\n\n**[00:47:34] 发言人 0**:我其实我昨天晚上下载俩东西,他妈一个下载海外那个奥了么,下了他妈的2个小时没下载。\n\n**[00:47:40] 发言人 0**:然后我看他那个奥了么什面最新公布的,他还没腾讯申这个新,也就是腾讯现在已经把这个对外本地模型也全都可以让你接了,就bug很多。\n\n**[00:47:50] 发言人 0**:我操我这接的时候他妈来回,但是我跟你说本地模型也能接,海外模型也能接,而且我今天跟朋在聊,skill他给你做了一大片mer就. \n\n**[00:48:00] 发言人 0**:是其实他这个龙虾,我觉得腾讯核心中核心这个腾讯最未来它最最重要粘客户的就是skill和memory。\n\n**[00:48:08] 发言人 0**:而且最有可能那个年客户的就memory。\n\n**[00:48:11] 发言人 0**:因为他的memory,他的个微信的迁移成本其实也是memory,就是我那记忆那么多,你他那个memory一旦拉长了以后,你用谁都可以。\n\n**[00:48:21] 发言人 0**:所以说从这个角度来说,你你你我觉得腾讯是好像找到了他自己的一点,自己在这个里面的一点价值。\n\n**[00:48:30] 发言人 0**:全打开,而且我也看了一下他跟飞书,跟那些都打开,而且他stea里面现在慢慢在接,像美团的那个什么给他接了。\n\n**[00:48:39] 发言人 0**:然后那个呃当然首先是微信体系里的,然后未来的京东我估计也会给他接。\n\n**[00:48:46] 发言人 0**:然后慢慢就除了阿里体系那都给他接,还有那个叫什么,你们那个点定票的那个携程没有,但是那个叫什么,还有个定票的那个叫什么那个叫什么,都开放了,去哪里。\n\n**[00:49:03] 发言人 6**:好像要去哪里去是啊。\n\n**[00:49:05] 发言人 0**:就是携程的,也是携的是吧?\n\n**[00:49:07] 发言人 0**:另外一个。\n\n**[00:49:08] 发言人 7**:品牌是吧?\n\n**[00:49:09] 发言人 0**:对飞猪对飞也开过了。\n\n**[00:49:11] 发言人 5**:飞飞猪飞哪里?\n\n**[00:49:13] 发言人 5**:飞猪在哪里?\n\n**[00:49:14] 发言人 0**:是所以说后来未来这个哈就是呃本地算力要多少?\n\n**[00:49:18] 发言人 0**:然后龙虾的目的是啥?\n\n**[00:49:20] 发言人 0**:我们我们其实我们现在想着那天写的,我们写的,我们的核心目的就是做to b的腾讯,就跟我觉得肯定差就不多了。\n\n**[00:49:30] 发言人 0**:做to b的腾讯就类似于比他做的更更细一点,或者更更深入B一点,就这个意思。\n\n**[00:49:37] 发言人 0**:你们可以好好看看用。\n\n**[00:49:39] 发言人 6**:现在看这个周末我也在看他的28件事间的些统功能,其实他他确实是多变的,但是腾讯大了,我们可以做。\n\n**[00:49:47] 发言人 0**:一个小一点。\n\n**[00:49:48] 发言人 0**:然后你们赶快把H 20这个事就再说了,H 20赶快搞清楚,我谁跟我说的要用H 20,要要要用要用那个算力不够。\n\n**[00:49:58] 发言人 0**:刘静你给我说的哪个算力不够。\n\n**[00:50:01] 发言人 6**:你自己云那测试这是什么?\n\n**[00:50:03] 发言人 0**:对,但是你们他妈都搞不清楚一台G 20服务器到底多少算力,我操你妈的下来赶快去弄。\n\n**[00:50:12] 发言人 0**:我那半台够不够,我也说不清对不对。\n\n**[00:50:14] 发言人 0**:然后他妈的还有一个,为什么我心里其实你们,但是我认为我问这个问题你们根本就不行。\n\n**[00:50:22] 发言人 0**:我对你们视秒怀疑,我们也想招人,为什么为什么人家用了6台?\n\n**[00:50:27] 发言人 0**:为什么it部能用一台?\n\n**[00:50:28] 发言人 0**:为什么人家肯定是说了的,人家肯定是肯定给紫薇讲了,紫薇同意的。\n\n**[00:50:34] 发言人 0**:为什么为什么人家比我们提前那么多,我们还不知道,到现在我们在用了我们一药药只能要到0.5台,因为我没有说法,我不知道那人家一段瓶的烟还在干嘛,为什么要流态,而且用而且还要用干嘛?\n\n**[00:50:52] 发言人 0**:原子弹抛光。\n\n**[00:50:57] 发言人 0**:人家已经很重视那个事儿了,我们现在是慢慢的在一点一点的闪烁,像游击队一样。\n\n**[00:51:04] 发言人 0**:今天我们需要不给也行,就像你手下的,我估计游击手下的那些研发也是七哥我们需要,不给也行。\n\n**[00:51:12] 发言人 0**:七哥说那你报点账,行,报点账,我顺带报,我洗脚他也报了。\n\n**[00:51:17] 发言人 0**:行,反正都是报账的。\n\n**[00:51:18] 发言人 0**:Talking, 你看你都是一个那种叫闪烁型的,知道吧?\n\n**[00:51:22] 发言人 0**:那你游击队、铁道队闪烁一下,你得规模化,也就咱说清,咱就成为定制度,咱们就按流程来,咱不能闪烁的那是艺术家,对不对?\n\n**[00:51:33] 发言人 0**:那不是那个industry,不是产业,是artist,是艺术机构。\n\n**[00:51:40] 发言人 0**:我说对了,咱实话实说,所以你要求你底下也是一样的,不要给你闪烁,一旦要话闪烁。\n\n**[00:51:52] 发言人 8**:其他的就没有什么。\n\n**[00:51:54] 发言人 8**:然后无人机那个项目的话是确实南岸移动他们也还没有约到。\n\n**[00:51:59] 发言人 8**:然后的话大疆的话上周这周的话,周一的话,宇航已经去参加他们那个培训去了。\n\n**[00:52:06] 发言人 8**:然后他说入库的事情的话,他们应该是在六月份之前就会有一个正式的反馈和然后it硬件的话,上周反而还有个消息,就是我们不是也放了一台机器给答案,就是王春他们那边也在用。\n\n**[00:52:23] 发言人 8**:他们上周五的时候说要跟我讨论一下这个事情,他们用了一段时间里,他们还有些感觉,对,这周要给我打电话。\n\n**[00:52:35] 发言人 0**:核酸按例用吗?\n\n**[00:52:36] 发言人 0**:你在用核。\n\n**[00:52:37] 发言人 5**:酸也得都在用。\n\n**[00:52:38] 发言人 5**:我们看得到。\n\n**[00:52:39] 发言人 0**:数据就是简单化,还要简单扫码,然后还是这个算力怎么分配。\n\n**[00:52:45] 发言人 0**:其实我们最重要的前台的表现方式其实就是一种,主要是还是后台就私有算力,公有云算力怎么去分配。\n\n**[00:52:57] 发言人 8**:其他的事之类的。\n\n**[00:52:59] 发言人 0**:腾讯现在给我们的那个他那个龙虾给我们的机会,给我的机会就是要不就挂私,要不就挂公们。\n\n**[00:53:07] 发言人 0**:但是他有一个东西让我觉得有点意思,就是他没给他的龙虾的,他所有的都取了名字,谁的,他自己的叫凹头,他自己都没有起,他自己的。\n\n**[00:53:21] 发言人 5**:在里面肯定有东西的。\n\n**[00:53:23] 发言人 5**:我他自己应该是有几个模型,他会他会自他会那个动态调度。\n\n**[00:53:30] 发言人 0**:你要做什么事?\n\n**[00:53:31] 发言人 0**:我讲如果这个模型我刚才如果这个存在,就to这个存在。\n\n**[00:53:38] 发言人 0**:而且也就换句话说,刚才我说腾讯未来说这个模型,不管腾讯未来可能就是这个skill member里,可能还有一点auto,或者我们未来的也是auto。\n\n**[00:53:51] 发言人 0**:因为你凹to这个东西,他妈的就凹不清了,我操你这儿有哪儿是吧?\n\n**[00:53:56] 发言人 0**:你给他,你包起来你不就可以了吗?\n\n**[00:54:01] 发言人 0**:对,因为auto是一个积分,那个deep是0.8个积分,我记不住了,我学们看看只有auto是一个积分,就他按2000个积分来说。\n\n**[00:54:11] 发言人 5**:现在这个他通用的做法是这样的。\n\n**[00:54:14] 发言人 5**:大家比如说他有个机械,机械一般就是乘以1,然后其他不同的模型它的。\n\n**[00:54:20] 发言人 0**:倍率就可能线没问题,但他取的。\n\n**[00:54:23] 发言人 5**:相当于他来给你自动规划,然后里面可能就叫他自己的他最好的模型。\n\n**[00:54:29] 发言人 0**:我也没问题。\n\n**[00:54:30] 发言人 0**:你刚才说了他可能做了弹性调度,那如果他们调了几个模型的话,那我觉得就有。\n\n**[00:54:36] 发言人 8**:有有意思了。\n\n**[00:54:37] 发言人 8**:是这样,他现在都是这样,我现在用的这个也是这样,我现在我还在用那个cloud code,我现在就可以这么跟他讲,我说我问你正常的问题,你就走deep。\n\n**[00:54:50] 发言人 8**:如果我扔给你的是一个图片,因为我现在我买了那个小米的那个模型deep,现在是没有多态的。\n\n**[00:54:59] 发言人 8**:我说我给你的个模图片,你就去走小米的态,帮我把这张图片认出来,我给你20张,你就帮我认20张。\n\n**[00:55:07] 发言人 8**:我说如果你要编程,因为现在小米那个图标好用,小米充电。\n\n**[00:55:13] 发言人 8**:小米我我。\n\n**[00:55:14] 发言人 7**:我昨。\n\n**[00:55:14] 发言人 0**:天用那个用那个用那个奥拉玛的什么,那那个那个那个不行,跟我带,我看那图片,我让的认了几张大屏包。\n\n**[00:55:24] 发言人 6**:我们说做本地知识库,本地知识库骤它你所有的文件登记它也经过几个步骤。\n\n**[00:55:30] 发言人 6**:比如说第一个步骤就是那个格式转换,格式转换过后还有什么ocr然后下面的话其实每个步骤都有一些擅长模型在。\n\n**[00:55:40] 发言人 0**:做这个事情。\n\n**[00:55:41] 发言人 0**:他都都会都会都会调,如果就你说的他自己,如果你一个模型,一个龙虾,一个底层龙虾带有的龙虾龙虾它给你去配这个技能,然后用这个。\n\n**[00:55:53] 发言人 6**:那我们后面就他后面机械化肯定会到现在的模型大概比较粗暴,让做所的事这个模型。\n\n**[00:56:00] 发言人 0**:你比如说我未来我建的这个本地模型,它就是本地模型。\n\n**[00:56:05] 发言人 0**:本地模型我选一份,就跟我们选那个英伟达的芯片,选谁的卡一样。\n\n**[00:56:09] 发言人 0**:你就是做传的,然后调用,那就是你的能力,就像华三现在说的,我的交换机的能力,我的调用我的我调用什么华为说的我的那个他妈的个淘理论,我的时间压缩就是你调用出结果。\n\n**[00:56:23] 发言人 0**:用别人的一个是结果,一个是我现在搞懂了,一个是速度,一个是质量,一个速度快二一个质量高。\n\n**[00:56:31] 发言人 6**:这两点其实我们都可以拿来是吧?\n\n**[00:56:33] 发言人 6**:就有机会他有些小东西其实后期都可以加入到个人的设备地。\n\n**[00:56:39] 发言人 8**:他不用去调调用调用,然后因为我也写很多程序,然后现在那是国内的程序,就包括那个cloud的那个程序,它实际上都有很多限制。\n\n**[00:56:49] 发言人 8**:但是在现在国内和国外就发了很多那种叫安科手无限制的模型。\n\n**[00:56:54] 发言人 8**:就是你给他说什么,就是你问他一个黄色的问题,他也会回答你的那种模型。\n\n**[00:56:59] 发言人 8**:然后我就跟他说,我说有一些程序你就必须要去调这个模型,然后他就去调这个,比方去写那种网络爬虫。\n\n**[00:57:07] 发言人 8**:网络爬虫你问cloud code,他是不会给你写的,但是你把它下来装在本地上,你说你写爬虫的程序就用这个模型去写,但啪就给你写释。\n\n**[00:57:17] 发言人 0**:因为来还有流氓模型。\n\n**[00:57:18] 发言人 8**:这个模型还有很流氓,他实际上就是龙虾,或者你腾讯那个clou他就当一个总教授,他看到图片过来他就扔给小米,看到什么爬种过来,他就扔给了个本地的东西,他就这么干。\n\n**[00:57:32] 发言人 0**:我感觉这个速度其实挺快的,我感觉这个真是你这个像你们当时说的这个叫是吧,说这个拿到不特殊,现在你看腾讯大厂都能转身转的,别说信不成。\n\n**[00:57:44] 发言人 0**:对,腾讯现在说。\n\n**[00:57:45] 发言人 8**:他已经意识到了这个事情。\n\n**[00:57:48] 发言人 8**:其实钉阿里好像也意识到。\n\n**[00:57:50] 发言人 0**:因为豆包说谁好就谁好,这事情挺麻烦的。\n\n**[00:58:06] 发言人 0**:因为腾讯既他走的那个路不就是模型也不错,我操他妈的反正有一点自己在那边参考。\n\n**[00:58:15] 发言人 7**:有一点,然后他说还是做入口,腾讯还是关。\n\n**[00:58:19] 发言人 0**:键的话很神奇。\n\n**[00:58:20] 发言人 0**:他把那个混那个名字取了,就他妈混。\n\n**[00:58:23] 发言人 6**:然。\n\n**[00:58:25] 发言人 8**:后。\n\n**[00:58:26] 发言人 0**:他那个Q里。\n\n**[00:58:34] 发言人 6**:面没有会员。\n\n**[00:58:43] 发言人 0**:自他他好吧,继续,我觉得要快点。\n\n**[00:58:47] 发言人 0**:有时候我们说的那个点状的东西,我觉得尤其是作为像刘静你们部门leader,或者说你晚人的,你就说过的东西一定要什么的,一定要赶快你回你,你反馈我的越多,那我就是吧嗯嗯,这未来咱们整个组织构架在变。\n\n**[00:59:03] 发言人 0**:以后不开门了,真的是这些我就给我的我就给我的那个楼下说,我找刘静,他能救这些事。\n\n**[00:59:11] 发言人 0**:到了,你找那能刘静到医院去,你得把memory都记下来了。\n\n**[00:59:15] 发言人 0**:你上次说了什么?\n\n**[00:59:16] 发言人 0**:上次说候比我记得还清楚。\n\n**[00:59:18] 发言人 0**:你上次说了什么?\n\n**[00:59:19] 发言人 0**:上次说你说了三次,我说你看我问了刘居三次,刘居三次怎么回答了?\n\n**[00:59:24] 发言人 0**:三次前他这么回答三次。\n\n**[00:59:26] 发言人 6**:中间我操,我说行了,咱就理解了。\n\n**[00:59:28] 发言人 6**:昨天晚上我发了个架构,他们还有互爱讨论的,讨论的。\n\n**[00:59:34] 发言人 8**:就是像先拿。\n\n**[00:59:35] 发言人 0**:完。\n\n**[00:59:36] 发言人 6**:我认为发到群里那个架构就是要实现你那个想法。\n\n**[00:59:41] 发言人 0**:那我这个想法,你看黄那个我那个那个我。\n\n**[00:59:45] 发言人 0**:什么一中国一中国一不是也说了么?\n\n**[00:59:47] 发言人 0**:我觉得很有道理。\n\n**[00:59:48] 发言人 0**:其实就是组织构架上小公司的那个华智做不了。\n\n**[00:59:52] 发言人 0**:如果我没有如果我没有突破点,就是一个是华智做不了这个事是吧?\n\n**[00:59:56] 发言人 0**:我不做算法我就做龙虾,我就做这个调用。\n\n**[00:59:59] 发言人 6**:不做算法我们会去做算法。\n\n**[01:00:00] 发言人 6**:他们是不是还在做国安那些大的说算。\n\n**[01:00:03] 发言人 0**:我跟你讲整骗人的这里面有一个很核心的问题,还是那句话叫要资源护犊子。\n\n**[01:00:08] 发言人 0**:如果有那么多公算法,他就可以护他的犊子,他就要得到资源,这就是一到理想的,一到你选举我就知道他拉什么。\n\n**[01:00:15] 发言人 6**:我看海开拉拉好像也在公安的大模型方面到处卖。\n\n**[01:00:21] 发言人 6**:研。\n\n**[01:00:24] 发言人 4**:是。\n\n**[01:00:27] 发言人 0**:华智后的的然脑就给你了,我操,就这几。\n\n**[01:00:51] 发言人 6**:那好,华山华鸿蒙客户端这个事情基本上开发完毕了。\n\n**[01:00:57] 发言人 6**:最后的流程6月30号我们华山那边会对外发布了。\n\n**[01:01:03] 发言人 6**:然后宇豪上周在在和研发一起做我们的无人机平台和集运平台一些功能的梳理对接,包括可行进度线,输出一些规格的对接清单。\n\n**[01:01:17] 发言人 6**:然后他这周开始去,那个是下周,还是这么15号,好像就是今天,他去开设那个无人机学习,他这周是线上,我想起来他是线上学习,一周学习一周通过考试了才能去线下,他要求还挺严的。\n\n**[01:01:33] 发言人 0**:那大家那边对,肯定是有是学什么,就是无人机那个产品市场这些。\n\n**[01:01:39] 发言人 8**:东西说钱端它的要求是我们自己要,以后们就客你让宇。\n\n**[01:01:44] 发言人 0**:航写个东西,什么记录一下,给我一个报告。\n\n**[01:01:48] 发言人 0**:好的,那看看好的,最好是他。\n\n**[01:01:55] 发言人 6**:比我。\n\n**[01:01:57] 发言人 0**:在做开。\n\n**[01:02:02] 发言人 6**:华润这边基本上还是在按照步骤在走,这七月份要投标,然后和徐凯那边在沟通一些硬件的一些事情,这个自听语也是因还是按照步骤走。\n\n**[01:02:18] 发言人 6**:我们计划是否。\n\n**[01:02:19] 发言人 3**:可以涉及到一的协议。\n\n**[01:02:22] 发言人 6**:对,也涉及到个本来那个证据的更新,就是要在七月份七月初的时候拿出来。\n\n**[01:02:28] 发言人 0**:你能不能基你能不能你做一款,我上次那天说的,能不能做一个,就还是做在手机上,就是我们。\n\n**[01:02:36] 发言人 6**:自己的用,你比如动作。\n\n**[01:02:39] 发言人 0**:再做不端,做那个漏洞,还有那个灭光药,他们每天不要求必须用,就是每天要求他们就是开场。\n\n**[01:02:50] 发言人 0**:因为手机本身,其实这个记录这个事嗯没那么工作记录,是吧,手机本身的记录其实没那么那个。\n\n**[01:03:00] 发言人 5**:那个我们会先做那个电脑版,先把电脑版做我的要求。\n\n**[01:03:04] 发言人 0**:我就希望做手机,因为能经常有时电话你。\n\n**[01:03:08] 发言人 6**:的电脑你用qq做的晚的。\n\n**[01:03:10] 发言人 6**:对,那都是跨平台没问题,手机不行,要适配一下是吧?\n\n**[01:03:15] 发言人 6**:手机不?\n\n**[01:03:15] 发言人 6**:手机要重新卖。\n\n**[01:03:16] 发言人 6**:对,主要是针对那个电脑。\n\n**[01:03:18] 发言人 0**:对你你手机做你也这个本地解析,与那个电脑,电脑本地也是装了个小模型,给他们装个小模型,本地自己解析是吧?\n\n**[01:03:30] 发言人 0**:现在不好那个语语音转文字的解。\n\n**[01:03:34] 发言人 6**:析就是本地解析。\n\n**[01:03:36] 发言人 0**:不要这些电脑。\n\n**[01:03:38] 发言人 6**:他们手上电脑手一点的芯才行。\n\n**[01:03:41] 发言人 5**:这个就适配量就有点大。\n\n**[01:03:44] 发言人 0**:所以我们现在百分。\n\n**[01:03:46] 发言人 6**:百跑得不中低端的跑不动。\n\n**[01:03:50] 发言人 6**:Vivo的那个vivo的那些本地转入要旗舰芯片,跑跑终端芯片都跑动,终端芯片直接把各功能淹光。\n\n**[00:03:58] 发言人 0**:这么说,咱们员工的手机基本上跑得动。\n\n**[01:04:01] 发言人 6**:我的苹果是百分之百跑的动的,苹果跑得动。\n\n**[01:04:05] 发言人 6**:但是安卓比安卓至少要3000块钱以上的手机才能跑。\n\n**[01:04:10] 发言人 6**:三四安卓的一两千块钱手机。\n\n**[01:04:12] 发言人 0**:我觉得我们的统序可能3000块钱手机还有的。\n\n**[01:04:15] 发言人 6**:这个现在是用没用那么贵的。\n\n**[01:04:17] 发言人 0**:这个我觉得还是要手机上录下来,因为我我我想什么,就是他们手机上录下来这些东西,还是作为咱们这个对,最后要首敛回来作为周报,作为日报。\n\n**[01:04:28] 发言人 0**:这个日报上来以后就会就拿那个用来做分析,分析就要尤其是对你进且有用,还是那句话,人家每天跟客户说的什么,你坐在屋里你也不知道对不对,人家给你报的那经过人家脑子已经洗掉一大半了。\n\n**[01:04:41] 发言人 0**:就是他记得他跟你说,然后或者他他的idea,他的观点了。\n\n**[01:04:44] 发言人 0**:他观点他告诉你,其他不是他观点他一个都不会跟你说,他否定的东西他会告诉你吗?\n\n**[01:04:50] 发言人 0**:说我就这些东西我都否了,他会告诉你吗?\n\n**[01:04:53] 发言人 0**:他脑子已经就就把他脑子进化,已经是他只只做他他只只做他自己认为正确的事,所以你我觉得得把那个东西你收起来就了解,你要第一时间就了。\n\n**[01:05:04] 发言人 7**:解客户了解。\n\n**[01:05:05] 发言人 7**:等于说是全部接听电话了。\n\n**[01:05:07] 发言人 0**:不是接听就是你工作,我要求你工作必须,你如果不工作,你很那我你你做了配置,你那你还谈了地置有没有这个录音?\n\n**[01:05:16] 发言人 6**:冯总可能要讨论一下,因为之前那个之前有很多公司这样干过,我也去调研过,这样干过。\n\n**[01:05:25] 发言人 6**:他们还是要求那种客服的对话,要求您上上直接上传,然后他也要去。\n\n**[01:05:31] 发言人 6**:最后这条路全部走死,因为下面的员工抵触非常大,直接不用直接。\n\n**[01:05:36] 发言人 6**:其实昨天晚上我实计这个架构,我们悄悄的看把一些他在电脑上的一操作的一些对话进行脱敏,然后才张传我觉得已经做了做做到了最大程。\n\n**[01:05:48] 发言人 0**:度的一个把控。\n\n**[01:05:49] 发言人 0**:就这么说,原来我们收集信息,但你手里安全问题我也认可,我们看怎么来屏蔽。\n\n**[01:05:55] 发言人 0**:这就很简单,你如果只是买云端面的的事,咱俩只是聊云端面的事儿是吧?\n\n**[01:06:01] 发言人 0**:母亲妹面我觉得也可以可以咨询,是吧?\n\n**[01:06:06] 发言人 0**:那你那那那我问你那很多电话就说咨询告诉你问题,那不也咨询。\n\n**[01:06:11] 发言人 6**:所以说我现在觉得第一步还是用龙虾来处理。\n\n**[01:06:15] 发言人 6**:比如说他配合的一些配置班报单,还有的就是他本地龙虾的一些规话,可以将这些数据上传到企业。\n\n**[01:06:23] 发言人 0**:企业你我来你做一个,你如果我说这个。\n\n**[01:06:26] 发言人 0**:我见议你在户外做以个你就自动咨询系,什么意思呢?\n\n**[01:06:31] 发言人 0**:上次说那个小孩一个人管六个龙虾,我还是听还是很有感触的。\n\n**[01:06:36] 发言人 0**:就是人家因为人家要问的方案问题,其实有时候问人,有时候还是还有个社会方就告诉你打开你就告诉他他哔哩吧啦吧啦说了一堆,然后听了以后交给那个总结,总结交给方案,方案交给写码,写码交给测试,全是脸。\n\n**[01:06:54] 发言人 0**:这哥们儿就说我的目的,人家说万一说不清,他说我不做大生意,他说我的目的就是全部投化。\n\n**[01:07:02] 发言人 0**:那从这个角度我觉得我们做一个无人化的,你比如说人家问的问题,我然后给他解决,那个还得做研发,我操咱们只是无人化的咨询,他说完,我马上我就给他出造方案。\n\n**[01:07:17] 发言人 0**:你的方案我们认为这样就搭上推上我们的这个型号,推上我们这个机器。\n\n**[01:07:22] 发言人 0**:然后这样搭上以后,流量什么都有了你先看一看,你如果不行,你的要呼叫人工,那你就做一个这个东西。\n\n**[01:07:33] 发言人 0**:而且很有可能未来你也可能还真是不信人的新能源的。\n\n**[01:07:37] 发言人 0**:你我现在开始逐渐有些信感。\n\n**[01:07:39] 发言人 0**:如果是如果他里有知识库,我问他,我问你,你还不耐烦。\n\n**[01:07:42] 发言人 0**:你比如举个例子,我问医生,我去医院,我问医生,他妈医生门诊他妈一堆人我不耐烦,我给你说三句。\n\n**[01:07:49] 发言人 0**:如果你给个东西,我自己他妈问问,我自己问问我我我反复啰嗦,我多问问,你也回答的多一点,我觉得还好一点。\n\n**[01:08:02] 发言人 0**:医院尤其是但我们这个也有,因为你问配置。\n\n**[01:08:07] 发言人 7**:对,医院是是是是。\n\n**[01:08:10] 发言人 6**:我们我们配我会配置没有问题。\n\n**[01:08:13] 发言人 6**:但是你去训练这一个东西,这个权限问题,你现很容易把所有的资料都发走。\n\n**[01:08:21] 发言人 6**:我这很吓人的,说实么他管控不到内部的资。\n\n**[01:08:27] 发言人 0**:就是我前面这个流程要变革,你们跟你说了,A时代来了,不是一线,我操,我还我怀疑再过我十年,这小孩儿不在屋里打游戏,来去不应该,你就给我点碗面,然后整个然后领导他妈的要做事,于生也不是好吗?\n\n**[01:08:42] 发言人 0**:就告诉埃踢,埃踢告诉埃,你去你你你你把扒拉这几个公司,让他们每个把他们的方案给我做一个好,也啪啪找到你的研究,然他们也究问了一堆,然后给了五个方案。\n\n**[01:08:54] 发言人 0**:好,这个可以,那下来再深入研究。\n\n**[01:08:57] 发言人 0**:我跟你讲一定会做在这的,而且这个事他妈会慢,我操十年时间。\n\n**[01:09:04] 发言人 6**:对吧?\n\n**[01:09:04] 发言人 0**:不用时间了,不用好,那你不改吗你不改吗?\n\n**[01:09:08] 发言人 0**:听懂没有,你其他妈的他是。\n\n**[01:09:10] 发言人 0**:而且现在还有一个,尤其是公有云那套,为啥不私有云为公云那个有点问题。\n\n**[01:09:17] 发言人 0**:我们上次公云对紫光汇智评价很公云,不说那个技术叫什么叫叫叫什么叫叫叫什么什么什么什么O U R O U那个R U那个叫什么?\n\n**[01:09:45] 发言人 0**:豆包都有这个问题。\n\n**[01:09:46] 发言人 6**:人家以后不一定信豆包。\n\n**[01:09:48] 发言人 0**:因为豆包说个大的,他在找到豆包,说我在好找到豆包。\n\n**[01:09:52] 发言人 0**:第一搜索就我知道紫光汇智了是吧?\n\n**[01:09:55] 发言人 0**:然后我再去跟紫光汇智的对接一下。\n\n**[01:09:58] 发言人 0**:A对,可能是这样,因为豆包说谁好就谁好,这事情挺麻烦的。\n\n**[01:10:04] 发言人 7**:我操,豆包的打案现在。\n\n**[01:10:13] 发言人 7**:出来了。\n\n**[01:10:13] 发言人 0**:不用那个东西。\n\n**[01:10:15] 发言人 0**:所以好吧,你我们的构架的核心就是以龙虾工作为主。\n\n**[01:10:19] 发言人 0**:你昨天晚上你们才讨论的,今天你又说不行,我操,我就觉得你那个那是啥东西,不是刚才我说这个,你说录音不行,他如果。\n\n**[01:10:29] 发言人 6**:他肯定录音的,他录内那。\n\n**[01:10:31] 发言人 7**:不人他愿用这个,那每个话录音录下你的。\n\n**[01:10:36] 发言人 7**:好这。\n\n**[01:10:38] 发言人 0**:个极了,你们。\n\n**[01:10:41] 发言人 6**:的你们琢磨琢。\n\n**[00:10:44] 发言人 0**:还是把工作你琢磨琢折磨望们交流的忘掉更次更多,而且我们他妈的我就要结果对我这种来舍事的人其实是个好事儿,其实对他们也是好事儿。\n\n**[01:11:06] 发言人 0**:说白了你记录的时候,你用AI记录完,我免得我听错了,最后AI给我出一稿。\n\n**[01:11:12] 发言人 0**:你从这个角度,你说你电脑里,你说你来,你说你你给我要说你用这个,你就不用记了。\n\n**[01:11:18] 发言人 0**:他出的很仔细,然后出完以后所有的Y配置完,要是看看我刚才讲的问的跟他出的怎么样,那差不多。\n\n**[01:11:25] 发言人 0**:那那么那对要的时间不是省了多少,还一个一个配。\n\n**[01:11:29] 发言人 0**:我上次问过高耀,问高要说吴高要跟我说原话是我大量的时间就在跟人家谈配置做方案。\n\n**[01:11:34] 发言人 0**:你本身这个工作就可以让他做,我让他主动做,不是让他被动,让他主动的觉得这个事要把它记录下来,那就不是法律问题,是他个人的问题了。\n\n**[01:11:43] 发言人 0**:他个人觉得我给你个谈话,我想我记下来。\n\n**[01:11:46] 发言人 3**:然后我做一个A总题,不要从全程先听角度出发。\n\n**[01:11:49] 发言人 3**:就是说一个配置助手。\n\n**[01:11:51] 发言人 0**:对类似于。\n\n**[01:11:52] 发言人 3**:客户的需求的语音给甩上去了,就是自动。\n\n**[01:11:56] 发言人 0**:生成配置。\n\n**[01:11:57] 发言人 0**:他愿同要来,他配置他愿意,他自己送给他,不需要你。\n\n**[01:12:02] 发言人 0**:这个太简单了,他肯定不愿意给你寄录音器录音的,这个是百分之百吗?\n\n**[01:12:08] 发言人 0**:但是你如果是个人行为,你又把他压录下,你给他开一个录音,然后你一边聊一边记,记完以后,他就出方案。\n\n**[01:12:15] 发言人 0**:那我觉得微光要那是个人行为,我们这个龙虾里有这个东西,我要从街听,叫我们龙虾本身做这个东西,实际上微光耀你自己在。\n\n**[01:12:24] 发言人 6**:里面说的也就光耀,只不过是客户说了,他也算了。\n\n**[01:12:27] 发言人 6**:他我感觉是提跟他提升不了什么效益,因为他他他一个需求来做配置,说实话他一分钟就做完,他他他花的时间不是在做配置上,而是客户在跟他沟通。\n\n**[01:12:38] 发言人 0**:是对,那不就是他沟通他听懂,这不记录下来。\n\n**[01:12:42] 发言人 6**:沟通的结果记录下来还要他发话,他他要去回馈,他要去询问客户。\n\n**[01:12:48] 发言人 0**:他询问他可以问询问他,他说咱俩加个微信,这个我微信一个一个告诉你,做好以后他就转发一下。\n\n**[01:12:56] 发言人 6**:那你那我们省的前端配置的人又又需要很多人去维护这个网下的技能。\n\n**[01:13:02] 发言人 6**:所以你这个逻。\n\n**[01:13:03] 发言人 0**:辑本身就跟你昨天晚上做的事是错的。\n\n**[01:13:06] 发言人 0**:你昨天晚上做的,这时我们要龙家的技能,他妈的要省人。\n\n**[01:13:11] 发言人 0**:你现在又这么说,你们那骨子里根。\n\n**[01:13:13] 发言人 6**:本就没有变化,我操,说白了我们是要。\n\n**[01:13:16] 发言人 0**:看我去搞文学替换。\n\n**[01:13:18] 发言人 0**:我不是我我跟你讲,你真的你骨子里没有变化,你现在的维护,他就跟你买了个汽车,你要他妈头头一个撞人是吧?\n\n**[01:13:27] 发言人 0**:就跟个现在这个龙虾这个名字有一个有一个词叫有一个尼,这个叫个个词叫服样。\n\n**[01:13:33] 发言人 0**:我们摆着,我们驯服他,我们天在管着弄个把把车弄还弄很多。\n\n**[01:13:38] 发言人 0**:我跟你讲,你最终的结果就是他肯定自由,你没有资格管理他。\n\n**[01:13:43] 发言人 0**:现在你管理他,只不过因为你好像觉得你你你自己搭了个东西,你好像觉得半成品你要管理,最终是他管理你,你就是这样的。\n\n**[01:13:56] 发言人 0**:你找另外一个A管他,你自己你找你你找个大爷管你找个大龙虾还小龙虾不就完了。\n\n**[01:14:02] 发言人 0**:大龙虾不用小龙虾的模型,大龙虾就单独的支库,单独的scale。\n\n**[01:14:06] 发言人 0**:就是干嘛就跟那个保安一样,每天记着,每天出门告诉你,你带着红头拿着手电走,这就是你主要干的。\n\n**[01:14:13] 发言人 0**:你别干人家那个方法,但是你就干人家违规,你就干人家翻不翻墙,你就干人家小熊林里揣着那耍流氓,这大保安对不对?\n\n**[01:14:21] 发言人 0**:你搞一个大保安方式不就完了?\n\n**[01:14:23] 发言人 0**:然后他有他新的眉目,他的眉门跟底下没毛不一样。\n\n**[01:14:27] 发言人 0**:他的memory门全是违规,全是你做问题的错误,他给你站好对方的。\n\n**[01:14:35] 发言人 0**:你们下去好吧。\n\n**[01:14:37] 发言人 3**:我觉得还是其实你把那个ct配置器给下了就会提高效果。\n\n**[01:14:45] 发言人 3**:都不用跟我说的,直接到录音。\n\n**[01:14:48] 发言人 3**:你把配置器下了,我问语音,我说配个多少卡的那个服器怎么样?\n\n**[01:14:57] 发言人 3**:如果配置器高。\n\n**[01:15:00] 发言人 0**:这个效率不是我觉得我觉得是要整结做的。\n\n**[01:15:03] 发言人 6**:做那配置其实不是过。\n\n**[01:15:05] 发言人 0**:我觉得不是配,我觉得是要总结,我觉得是要反复去拉锯。\n\n**[01:15:09] 发言人 6**:要最好是花的时间。\n\n**[01:15:11] 发言人 0**:不是花在选的那种配置,他就拉,就总结,就最好加微微微过,只要你反应快,人家还愿意加微信。\n\n**[01:15:19] 发言人 0**:我有时候给人家打电话,他妈的我我来加个微信聊一啥,因为打电话我语音表达这些东西实时性。\n\n**[01:15:25] 发言人 0**:第二我脑子里可能当时我因为想表达的思想不一定准确,所以他给我回答的东西也是默默糊。\n\n**[01:15:32] 发言人 0**:微信以后我每次他说我要我我说我要我看看,我想想,可能我问这个问题的角度不对,我再换一个角度问,然后问完以后我再换一个角度问我跟那个医生有什么问的,我加了微信以后,我就会这得来回以后反复了。\n\n**[01:15:46] 发言人 0**:而且在这微信你加微信我最重要的一点是什么?\n\n**[01:15:49] 发言人 0**:就失效了。\n\n**[01:15:50] 发言人 0**:因为我问个问题,人家半天不回,那我就没兴趣了。\n\n**[01:15:53] 发言人 0**:所以你如果加了微信,我保证你这个五分钟10分钟之内肯定会。\n\n**[01:15:57] 发言人 0**:就是我现在问,你先你等一等,我保证你十分钟肯定回。\n\n**[01:16:01] 发言人 0**:然后他爸加微信了,他哔哩吧就写进去了,不管是语音还写进了,你马上叭啦,你后面你那个AI就处理了,处理完了以后给了他一套,然后顺便看一下。\n\n**[01:16:10] 发言人 0**:这回答怎么,还行,你就点一下,或者你经过注意转发一下。\n\n**[01:16:14] 发言人 0**:等我操,这他妈就比你编文字,而且我跟你讲,现在我打字好,我就挺烦的。\n\n**[01:16:19] 发言人 0**:我原来没注意过,就昨天晚上打到一晚上死打字的那个技巧,他又得找回来,当时觉得X C C现在找不到盘了,就是语音多了。\n\n**[01:16:33] 发言人 0**:我的我第一个想法,一个语音,我准备找一个麦麦旁边。\n\n**[01:16:40] 发言人 8**:我真的你朋友你那个手机和你腾讯那个手接了。\n\n**[01:16:45] 发言人 0**:那你就我知道我已经这么动了,但是我发现我还是台着接个语音也是更好的方式。\n\n**[01:16:52] 发言人 0**:因为我不讲,因为他这两条他俩苹果很聪明,他是两个。\n\n**[01:16:56] 发言人 0**:他的sk里面我发现他走的两条他的两条路,就你语音说的那个和他那个台式机的那两个然样别因为这他没跟你完全混合。\n\n**[01:17:07] 发言人 8**:那就有点理解意思。\n\n**[01:17:09] 发言人 8**:我现在比方。\n\n**[01:17:11] 发言人 5**:不同的渠道,它是隔离的。\n\n**[01:17:13] 发言人 6**:反正现在我客接我说你我在。\n\n**[01:17:16] 发言人 8**:电脑上装个,再下载一个什么模型不对。\n\n**[01:17:19] 发言人 8**:所以我想说的是什么?\n\n**[01:17:22] 发言人 8**:我们未来。\n\n**[01:17:22] 发言人 0**:很有可能就是回微信语音,就是不用那个,这是第一第二我再说一个反弹的,其实看微信是不愿意听语音的,愿意看文字的对,因为前段间咱们很多人沟通很多语音,我就愿意把它转成文字。\n\n**[01:17:39] 发言人 0**:因为我看文字的速度比语音快,听语音的速度反而慢。\n\n**[01:17:44] 发言人 0**:是外你除非是为了听他关怀的话,你想听听他声音,听听他感情。\n\n**[01:17:49] 发言人 0**:所以你看情绪价值,所以你看用语音去说,然后用眼睛去看。\n\n**[01:17:55] 发言人 0**:这个后面是这样的,所以你微信一下,那看就问看们我们研究,我说的对吧?\n\n**[01:18:03] 发言人 0**:我觉得看语音其实是不太愿意的。\n\n**[01:18:06] 发言人 0**:因为有时候你你你那个你拿个语音听我操一看50秒,人家给你说555 10秒。\n\n**[01:18:12] 发言人 6**:你烦省的很影响。\n\n**[01:18:14] 发言人 6**:也应该是我都是。\n\n**[01:18:15] 发言人 0**:默认直接转文字,我对不对?\n\n**[01:18:17] 发言人 0**:你转文字以后你看的快对不对?\n\n**[01:18:19] 发言人 0**:秒,所以你看这以后就说语音转文字,我操真他妈的以后键盘都没了,就是拿着哔哩吧啦在说。\n\n**[01:18:27] 发言人 8**:我操说以后给我一个字,说基本。\n\n**[01:18:30] 发言人 0**:上已经不字,我就对,那从这个角度我就问你,你们就你你就解决那个解决他们那个。\n\n**[01:18:36] 发言人 0**:如果他们纯粹是为了那个语言,对语言的回答就是为了回答。\n\n**[01:18:41] 发言人 0**:那我觉得通过让他文字化,让他文字化也是个属性,也是个能力。\n\n**[01:18:46] 发言人 0**:因为他让他文字化那边就文字化那边看起来简单,然后这边他说的也快,或者刚才说的他稍微改一改。\n\n**[01:18:55] 发言人 0**:我就我觉得你们朝这个方向去,真的,你如果A不解决我们所有的流程是没有机会的。\n\n**[01:19:07] 发言人 6**:好,上周就是云桌面这边把把那个大架构输出,又又讨论一下知识库的这个选型和架构。\n\n**[01:19:17] 发言人 6**:目前看到我们可能用那个那个呃诺。\n\n**[01:19:21] 发言人 5**:这可能再讨论一下,我感觉有点问题。\n\n**[01:19:25] 发言人 6**:对,因为那我们再看一下,但是你基于那个那个最基础主要是做的话,那工作量太大了。\n\n**[01:19:33] 发言人 5**:他不是这个意思,就是说我是觉得以后我只有一个入口,我不可能只是后一个入口。\n\n**[01:19:39] 发言人 6**:然后是是一个入口是一个入口。\n\n**[01:19:43] 发言人 6**:就是以后知识故事要藏在下面的,就是有所有的东西都不能够暴露给客人。\n\n**[01:19:49] 发言人 5**:所以说其实你你那你选择那个它,其实它的价值和意义是在于它是一个完整的字出上面。\n\n**[01:19:56] 发言人 6**:完了之后,你就上次你那个选型,我跟方讨论一下,估计工作量太大了。\n\n**[01:20:01] 发言人 6**:桌面,而且我也看过了。\n\n**[01:20:02] 发言人 8**:并且我觉得这里头最关键的一点是这个知识库一定要和AI的结合非常友好。\n\n**[01:20:09] 发言人 8**:因为人只会这样,就人你比方说生长他以后他查他只会说我上周的发票你帮我看一下。\n\n**[01:20:17] 发言人 8**:他不会去打开界面说我我我自己去选什么时间的发票。\n\n**[01:20:21] 发言人 6**:他是他知识库,他知识库就是完善的什么,就是整个的产体,他都有叫什么都有。\n\n**[01:20:31] 发言人 8**:他只会和AI打交道,就是我们所谓的人的接口,只是AI是我不会在in去打开一个界面去怎么样操作这个事情。\n\n**[01:20:44] 发言人 6**:界面还是要有的,我说逃不开界面的,光对话这个产品会作死的。\n\n**[01:20:50] 发言人 6**:不是每个人都都都都都都都习惯命令行对话的形式去输出所有的东西。\n\n**[01:20:56] 发言人 8**:不就重要的。\n\n**[01:20:57] 发言人 8**:我我我不是说你比方报账你是有界面的,我觉得我是认可。\n\n**[01:21:02] 发言人 8**:但是其实对人的操作来说,你比方说我操作这个东西,我就不愿意去打开我的知识库去查我上上个月或者上上上个月或者什么时候的一个什么信息。\n\n**[01:21:15] 发言人 8**:我一定是一句话问没冤,你帮我调出来。\n\n**[01:21:18] 发言人 6**:一定是这个逻辑。\n\n**[01:21:19] 发言人 6**:他调出来过后,你还是要给他一个界面,他会去做一下他自己的一些整理。\n\n**[01:21:25] 发言人 6**:是这个我还是认真调研一下,包括一些非非研发人员的常规使用者,他还是要这个东西,百分之百要这个东西。\n\n**[01:21:32] 发言人 6**:你不可能让他命令行式的去有纯文本的输出,让他去整理的他个人的知识库和上报企业的知识库,包括一些权员设置和目录的一些内容的一些调整,它都需要一些图形化界面的淘派。\n\n**[01:21:49] 发言人 8**:这个我觉得下来再讨论,这个我有不同的观点。\n\n**[01:21:53] 发言人 6**:这是逃不开你你要你要问。\n\n**[01:21:55] 发言人 8**:因为你你比方说你财务,你如果有一大堆界面,然后以后C M你也有一大堆界面,实际上我们做的这个东西就。\n\n**[01:22:04] 发言人 6**:不是一个A化,这个界面其实很好生成,但是你不跟他个界面,普通人他不会用,用不了的。\n\n**[01:22:11] 发言人 0**:好,下来,继续。\n\n**[01:22:12] 发言人 6**:然中端管理这里采购办法和法务采购开了会,到时候刘亚群会约领导上会审核。\n\n**[01:22:20] 发言人 6**:然后终端这边再进行刚刚说的那些所有证书的更新。\n\n**[01:22:25] 发言人 6**:因为他是今年的一个新规,他所有的节能和能效要求重新做认证,所以我们所有的终端在在然后那个mp接口的mc p接口上周机个这边的研发已经完成了。\n\n**[01:22:39] 发言人 6**:完成过后其实也发现了一些问题,就是前期我们在所有的vdi的商务和商务两个商务在使用这个系统的时候,实际上他可能线下做了本台账,有些发完货的一些数据其实没有在系统上更新。\n\n**[01:22:56] 发言人 6**:这是更新完P接口做完后,我们上周四和5的时候发现这个问题。\n\n**[01:23:02] 发言人 6**:今天上午那个商还在补一些数据,补完今天上午我们可以使用这个龙虾来进行统计。\n\n**[01:23:09] 发言人 6**:看一下,差不多有五十多个项目在补一些数据,然功能上已经完完全完全完成了。\n\n**[01:23:17] 发言人 6**:我这边就。\n\n**[01:23:18] 发言人 0**:是龙虾用的还是那个boat,那不来对你用谁都无所谓。\n\n**[01:23:22] 发言人 0**:我知道,那我们就这么说,我们一来的话就是这个,比如说我们这个在云的面里面,我们还是在胖公。\n\n**[01:23:30] 发言人 6**:园里面做都可以做。\n\n**[01:23:32] 发言人 6**:我们现在不分说话都是终端,没什么关系,没关系,只要有个桌面就行。\n\n**[01:23:37] 发言人 0**:你还是主要他们那还是可以利用本地的计算。\n\n**[01:23:41] 发言人 6**:利用本地的一些这个都一样。\n\n**[01:23:43] 发言人 0**:它无用微di就调用服务器的计算,你调。\n\n**[01:23:46] 发言人 0**:如果我是觉得你像龙虾这种,因为有时候还是要跟本地电脑之间的,你比如我们在装电脑装了龙虾,这个龙虾它本身就是一个不叫病毒,它本来就是一个非鸭群。\n\n**[01:24:00] 发言人 0**:你如果说是你如果是预装龙一下,比如我们把东西都预装在我们的胖龙管里面,那个是不是会但你遇到的服务器也可以,我径得是两条路径,因为遇到的服务器的国架和遇到他们的生产国家是两回事。\n\n**[01:24:19] 发言人 6**:我觉得你可以可以思考一下。\n\n**[01:24:21] 发言人 6**:所以说最终这个产品做出来,对龙山的本地的权限,你要去做很多工作没问题。\n\n**[01:24:26] 发言人 0**:就是一般不然客户敢用的,不然的不然客户敢用。\n\n**[01:24:29] 发言人 0**:正是因为不敢用电脑,所以才敢用我的朋友端。\n\n**[01:24:32] 发言人 0**:因为我这种C. \n\n**[01:24:33] 发言人 6**:陌我这种陌人我做来做的管理,所以说要去做这些事,软件方面要去开发就是对吧?\n\n**[01:24:40] 发言人 1**:因为你预装在我们把电脑拿过来。\n\n**[01:24:43] 发言人 0**:我们预装龙虾,我们预装里面一些东西,因为它里面我觉得它确实会有毒。\n\n**[01:24:48] 发言人 0**:你他写你底层,有些东西给你写,那不能写,还是有问题的。\n\n**[01:24:55] 发言人 0**:昨天我就他妈两个接口,我看我就在昨天我装俩模型,你直接把我那个搞死了,就两个应调用了。\n\n**[01:25:02] 发言人 0**:同样口我装了模型,昨也把我他妈下午我搞死了,搞死了,我他妈重启又重启又删掉,我光删都删了。\n\n**[01:25:10] 发言人 8**:都外了五。\n\n**[01:25:11] 发言人 0**:次就删农家猫,我删那个欧了么的那个那个海外版,我操。\n\n**[01:25:18] 发言人 0**:就是你如果我在想,你如果用这个胖龙湾这些东西,你提前把底下横多锁死。\n\n**[01:25:26] 发言人 0**:为什么360在做龙虾?\n\n**[01:25:28] 发言人 0**:那天说360360其实是把龙虾做成了一个什么的,就是纯纯的360龙虾或者龙虾。\n\n**[01:25:35] 发言人 0**:360就是我龙虾放在里面,我给你管完,是360是管龙虾,根据自己的说。\n\n**[01:25:41] 发言人 0**:对。\n\n**[01:25:41] 发言人 6**:这他的他就是做的很不安全的。\n\n**[01:25:44] 发言人 7**:他他就想管你所有的。\n\n**[01:25:47] 发言人 0**:不是,所以我想说我们我们的舆论面其实核心的关键词就是安全共享。\n\n**[01:25:54] 发言人 0**:加一个是所以原来叫安全共享,现在叫安全共享,价值就价共享。\n\n**[01:26:01] 发言人 0**:我就下来你们研究下好吧。\n\n**[01:26:04] 发言人 0**:因为你胖的,你瘦的,你掉服务器资源确实也挺烦的。\n\n**[01:26:08] 发言人 0**:你虽然做个沙核,如果如果你不给他做好,不给他做任准化,他把你服务器也搞的他妈的瞧不得。\n\n**[01:26:15] 发言人 4**:那我汇报到上面的情况,凯马尔,开庭是定的7月20号登卷的上门开庭之后,然后从开庭的情况研判法律,那有律师或者周杰的影况下,应该。\n\n**[01:26:33] 发言人 0**:会维持原判。\n\n**[01:26:34] 发言人 0**:好的,维持延慢说明他们罚两次了。\n\n**[01:26:36] 发言人 0**:我估计他们这个国企可能应该会是吧,会有一些解释,估计这个们。\n\n**[01:27:11] 发言人 0**:因为如果他妈的折腾了两个月不给判决书,那他妈就是个大子,所以别无进展。\n\n**[01:27:16] 发言人 0**:因为这里面这东西都是都都到最后了。\n\n**[01:27:20] 发言人 4**:那我们九龙坡越到最后就。\n\n**[01:27:24] 发言人 0**:一锤定音,如果报了,他们还在上面的领导,他妈的领导说一句话是吧?\n\n**[01:27:30] 发言人 4**:好,我们现在落实这个那那个全国公安8月6号开庭的事情。\n\n**[01:27:42] 发言人 0**:就是我们汇报上周五那个款程序是光报。\n\n**[01:27:49] 发言人 0**:我觉得在个果们搞个公安操太麻烦了。\n\n**[01:27:56] 发言人 0**:如果你真是审判下来。\n\n**[01:27:58] 发言人 4**:你怎么这个就是我们要不跟法院问,法院下不是我就试试。\n\n**[01:28:03] 发言人 0**:不人能不能把事办。\n\n**[01:28:05] 发言人 0**:如果不人能事,说明这个,就是我们下一步法院法。\n\n**[01:28:10] 发言人 4**:因为他不怕。\n\n**[01:28:11] 发言人 0**:我肯定不怕,怕他老大,他老大哪天他妈的人民就是江山就人民,对不对?\n\n**[01:28:18] 发言人 0**:他天他的那事报了,他老大搞他,不是我搞他那么简单。\n\n**[01:28:24] 发言人 0**:好吧,我们试试。\n\n**[01:28:26] 发言人 4**:不要那个事干了。\n\n**[01:28:27] 发言人 4**:好,然后上周五公安就是要求我们去撤诉,才能走付款决程。\n\n**[01:28:33] 发言人 4**:本周我先去跟他们聊一下,然后看着情况怎么说,烟台七八号开庭,上周他们还是在播材料,准经开庭前再把材料整体再看一下。\n\n**[01:28:47] 发言人 4**:男人一般在在签合同中,然后闫运维应该本周三上常委会,分局跟杨群都汇报了,应该没什问题。\n\n**[01:28:59] 发言人 4**:产品审计第二版的第二版要材料的材告,我们在,感到地板比较好,应该没什么大的问险。\n\n**[01:29:11] 发言人 4**:南牙电力王磊明天过来,他说应该是他们就把钱交了十几万块,就是不开庭了。\n\n**[01:29:18] 发言人 4**:现在撤所这个事。\n\n**[01:29:20] 发言人 1**:他明天我找。\n\n**[01:29:21] 发言人 0**:因为工程者。\n\n**[01:29:22] 发言人 4**:总共是还们的发行人说的是约定这个约定他们是昌平,现在是经常还,走的时候反还。\n\n**[01:29:34] 发言人 0**:产品就两个事儿,第一就是二期的话,你们如果要开会的话,需求你们提前抓紧准备是吧?\n\n**[01:29:40] 发言人 3**:我会材料准备好,到下午中午要开会,有项午如果就。\n\n**[01:29:47] 发言人 3**:材料不做,备好,你两交项目材料有。\n\n**[01:29:50] 发言人 0**:可能没时间,那就明天。\n\n**[01:29:52] 发言人 0**:然后宁夏理工这个事儿,你们那个软件部分三个部三个事。\n\n**[01:29:58] 发言人 4**:上次我感觉他们现在反过来是有点进展,一个是数字那个数字那个产品他们供应商他软件架没打好,然后现在主要是没数据,没数据的成两部分。\n\n**[01:30:10] 发言人 4**:一个有部分说本来就没这个数据,第一部分除得你的数据,还是建设中,就是供应商大概想法采用模拟数据展示。\n\n**[01:30:21] 发言人 4**:但是还跟客户商量的跟客户商量。\n\n**[01:30:25] 发言人 0**:如果如果客户认可的方案的不行,有点有的交付的交付量个很大的问,就交付只能给你交付,但这个量你说怎么来量呢?\n\n**[01:30:37] 发言人 6**:交要一个标准,又每个评。\n\n**[01:30:39] 发言人 4**:分在这个上面的写了,他说可以把其产品的解,那是现在他。\n\n**[01:30:44] 发言人 8**:们是搞定了也是那现在又有这种做。\n\n**[01:30:48] 发言人 0**:的比较好,很容易就说数字人,说的这是对的。\n\n**[01:30:52] 发言人 0**:数字人为什么我们一直我们接数字呢?\n\n**[01:30:54] 发言人 0**:这样一个是成组化21个我希望数字务我们最后下一步还是我们研发自己做,就是自己做了以后,\n\n**[01:31:01] 发言人 1**:我们希望面成产品。\n\n**[01:31:03] 发言人 0**:因为这里面很简单,这里面也是模型,就是模型调用。\n\n**[01:31:10] 发言人 4**:而且无人机源这么进展,上次基本达成一致意了,可以。\n\n**[01:31:15] 发言人 0**:先启动建设阿里机。\n\n**[01:31:17] 发言人 5**:有没有信心呢?\n\n**[01:31:18] 发言人 5**:我说我们其实整个搭建这些东西都已经走通了。\n\n**[01:31:23] 发言人 5**:前面确实缺点算力,因为每跑一次要当时跑一次要2个小时以上。\n\n**[01:31:29] 发言人 5**:然后如果要输出这种高精度时间还会长。\n\n**[01:31:33] 发言人 5**:但是确实测到H 20以后,我觉得完全可以我们。\n\n**[01:31:37] 发言人 0**:你没事把什么秒叫起来,喝个酒秒聊。\n\n**[01:31:40] 发言人 0**:我我约了他了。\n\n**[01:31:41] 发言人 5**:经常坐坐。\n\n**[01:31:42] 发言人 0**:然后我知道,然后再跟那。\n\n**[01:31:44] 发言人 5**:个我之前不知道他在重庆,结果他在重庆。\n\n**[01:31:47] 发言人 0**:跟医疗局他边有事要通个电话,一定要去做这个事儿。\n\n**[01:31:51] 发言人 5**:我知道我跟吴佳淼一个是约了。\n\n**[01:31:54] 发言人 0**:因为我下一步。\n\n**[01:31:55] 发言人 5**:我还是想让我跟一个是约了吃饭。\n\n**[01:31:58] 发言人 5**:第二个,我这周还会跟他两个交流一下,因为他他这边他也有压力。\n\n**[01:32:04] 发言人 0**:他们是防范着我们,就是按理所以说说医疗平法案,你做算法,我说我不做算法,是吧?\n\n**[01:32:10] 发言人 0**:但是我就应用。\n\n**[01:32:12] 发言人 5**:我做调度。\n\n**[01:32:13] 发言人 0**:对,就是这个叫呼声。\n\n**[01:32:16] 发言人 0**:怎么说来你你你那那闪烁的声音我也没,你早说,我早就去弄这事了。\n\n**[01:32:24] 发言人 0**:你哪次呼,你上次说买头牛马上给你买一个他妈的小黑盒,我操几万块钱,你早说我就早就弄。\n\n**[01:32:32] 发言人 0**:我上周跟紫薇聊了两次,但一开始他全分完了。\n\n**[01:32:36] 发言人 0**:后来就说我说我那一台0.5台,他说他最起码保证0.5. \n\n**[01:32:41] 发言人 7**:但是我感觉一台实际上是能保证的,但我们那个有算力了,那个能做好,类似是特别这个心。\n\n**[01:32:48] 发言人 5**:这块其实可以的,我们只因为之前调一次时间太长了。\n\n**[01:32:53] 发言人 8**:他他其实难的就是像我拿出去交给那个人做,他也是这样的,他其实难的是不够,他其实男的是他排队排排排排了以后,然后他发现不对,他就要重新来调这个提示。\n\n**[01:33:09] 发言人 0**:但不这里面有两个,如果是用这个隧道小模型,我们不用随账时。\n\n**[01:33:16] 发言人 0**:如果用小模型,对我觉得可以自己布,我们是自己布对吧?\n\n**[01:33:21] 发言人 0**:对,如果大模型你肯定是面对排队,但是你也可以什么呢?\n\n**[01:33:25] 发言人 0**:你直接拉到国外去?\n\n**[01:33:28] 发言人 0**:你拉到国外找个模型一样做。\n\n**[01:33:30] 发言人 0**:只不过钱的问题,我现在就是急迫的,因为将易碰到的问题是我现在就不知道什么叫性价比最高,而且这个是拖。\n\n**[01:33:40] 发言人 7**:的时间有点长了。\n\n**[01:33:41] 发言人 7**:他们现在是200美金的的那个那个计划,好像很价值很高。\n\n**[01:33:47] 发言人 0**:就是包月。\n\n**[01:33:48] 发言人 0**:但是我不知道排队。\n\n**[01:33:49] 发言人 7**:他说相当于全部买的话,相当7200美金的。\n\n**[01:33:54] 发言人 7**:这个就是我我跟你说。\n\n**[01:33:57] 发言人 0**:我再说一个,这是因为你们没想,我帮你想你下来你把你们那清楚,我会针对关于这个算力,这个Ken不是每个人都能钱的,这个就按那个职称来的,有人就是50块,有人就是100块,有人就是300块,有人就是一千。\n\n**[01:34:16] 发言人 0**:你们核心的两个人,我觉得那你承担的任务共重,那就给你开大。\n\n**[01:34:20] 发言人 0**:至于你把那个账号给谁就给谁,这要开大的就开个盛钢跟我说的,100美金包月,一千美金包月,100美金。\n\n**[01:34:29] 发言人 0**:我操你买美金包月,那太便宜了,你先弄十个。\n\n**[01:34:34] 发言人 0**:1000美金你乘以10乘以7,所以你才6000块钱,那算啥?\n\n**[01:34:39] 发言人 0**:你一共研发才多少个人?\n\n**[01:34:41] 发言人 0**:自己不去想这些事儿,我操他妈的都是我就真的,你别说我唠叨,咱们兄弟,你妈但是这事你抓紧了。\n\n**[01:34:51] 发言人 7**:别去给我你的数字人整不出来。\n\n**[01:34:54] 发言人 0**:这个整不出来的比较困难的时候,就是都没问题。\n\n**[01:34:58] 发言人 0**:这个我可以来找我。\n\n**[01:35:00] 发言人 7**:用个刘封号比严重,就是像这个账号比较大对。\n\n**[01:35:05] 发言人 5**:随时都会。\n\n**[01:35:06] 发言人 0**:我可以做那个,因为刘强我这个朋友他是他们专门是个国企做这个体制,做唯品的。\n\n**[01:35:13] 发言人 0**:如果我们出于那个国企的考虑,我们所有人我们就给他跟他一起谈,让他给个便宜价,我们就全部做出来拼是没问题。\n\n**[01:35:23] 发言人 6**:一直有免费的体,虽然速度快,但是跑。\n\n**[01:35:26] 发言人 8**:cloud的那个跑频。\n\n**[01:35:29] 发言人 7**:保企外们中国信和。\n\n**[01:35:33] 发言人 0**:国移动供就保证什开的视频不断。\n\n**[01:35:41] 发言人 0**:他们在做的,他们在国外建立了很多服器节点,然后我发人工在后面看,也有自动营的员工发现你如果你的打速度慢了,带宽快了,马上给你。\n\n**[01:36:03] 发言人 0**:从阿里巴巴,比如从从下一个节点从香港调到新加坡,新加坡调到哪,他把中间的几个节点都跑这手公,我上次我一,我操我了,我操我很开心的,我来一直中间个果。\n\n**[01:36:18] 发言人 0**:可。\n\n**[01:36:19] 发言人 5**:他们这种视频主要是做cdn建设,我们其实还用不到那么高。\n\n**[01:36:25] 发言人 0**:你好吧,你赶快去捋捋。\n\n**[01:36:27] 发言人 0**:好,你说你重要的工作,你说你现在你重要工作在哪,这就是重要工作。\n\n**[01:36:34] 发言人 0**:就是资源调配和。\n\n**[01:36:36] 发言人 5**:人家改造流程。\n\n**[01:36:37] 发言人 0**:人家先向一道学习,然后再越一就是要资源犊,你的资源也不会先向学习,但我们要超越。\n\n**[01:36:47] 发言人 0**:我开玩笑。\n\n**[01:36:49] 发言人 4**:我是会宝。\n\n**[01:36:51] 发言人 0**:宝。\n\n**[01:36:54] 发言人 0**:赶快,我觉得算力这个事确实是很重要。\n\n**[01:36:58] 发言人 0**:你那天画的那个曲线非常好啊,是吧?\n\n**[01:37:01] 发言人 0**:这边是他妈能力?\n\n**[01:37:02] 发言人 0**:那边是这个叫什么采纳度?\n\n**[01:37:07] 发言人 0**:这个采纳度。\n\n**[01:37:08] 发言人 8**:这边是能力,中间就是我们的机会。\n\n**[01:37:11] 发言人 0**:对,你看这个东西我认真看了好几遍,我操我把图贴下来,我还跑去他妈的又让豆包给我解解讲讲。\n\n**[01:37:19] 发言人 0**:我说是不是所有东西都是这样的?\n\n**[01:37:24] 发言人 0**:确实这样,他妈的有一个度,这个面都的都是。\n\n**[01:37:29] 发言人 5**:这个是吧?\n\n**[01:37:29] 发言人 5**:现在是就是企业和个人大家都知道,但是确实从到落地上面和真正这些他的这个差距大。\n\n**[01:37:36] 发言人 5**:这个就是有有一群人现在就卖个人,就是卖客卖卖方案,然后企业这所以。\n\n**[01:37:42] 发言人 0**:我们这里面我大概我看我学这个豆包,我学这个就给我大概也理解几个点。\n\n**[01:37:51] 发言人 0**:就是硬件的配置,你给人家配硬件大环境是吧,这是云面是一种配硬件,然后就是你。\n\n**[01:38:05] 发言人 5**:的那个Memory Scale,你这memory的机会,scale的机会,还有就是。\n\n**[01:38:15] 发言人 0**:你那个那个模型你怎么给人scale,可能后面机会会越来越小。\n\n**[01:38:25] 发言人 0**:因为现在模型的这个能。\n\n**[01:38:29] 发言人 7**:力升级后的,你如解解就是算力调度。\n\n**[01:38:34] 发言人 6**:这块还是这个。\n\n**[01:38:35] 发言人 0**:如果我你刚才说这个我觉得如果他妈的就是海外的这个,你说海外这个算力,如果中国一直在疯,那可能中间会有一个意。\n\n**[01:38:48] 发言人 5**:就是这个现在意在就。\n\n**[01:38:50] 发言人 0**:是在海外的对,国内就相当于是网上很多天天倒在。\n\n**[01:38:55] 发言人 6**:微P那绝对是倒致这个不。\n\n**[01:38:57] 发言人 0**:是导一些很多算我的算力。\n\n**[01:38:59] 发言人 0**:比如说你把你的东西交给我,我拿到算力去算了时。\n\n**[01:39:03] 发言人 6**:已经很多人在做了。\n\n**[01:39:05] 发言人 0**:就不让你直接访问这个有。\n\n**[01:39:09] 发言人 7**:有这个专门有做这个事的。\n\n**[01:39:12] 发言人 5**:现在这是个大生意,但是都是很多。\n\n**[01:39:15] 发言人 0**:个人或者小团队在这确也。\n\n**[01:39:17] 发言人 7**:有也有做。\n\n**[01:39:18] 发言人 0**:的比较大。\n\n**[01:39:19] 发言人 8**:也有做做的比较大。\n\n**[01:39:21] 发言人 6**:一年上千万,月上千万上都去买了点3. \n\n**[01:39:24] 发言人 5**:很便宜,我也不知道他是哪来的。\n\n**[01:39:27] 发言人 5**:他这样的就是好多国。\n\n**[01:39:29] 发言人 6**:外的平台,他注册以后有可能免额。\n\n**[01:39:32] 发言人 5**:他就把这些免费额度给你集中在一起。\n\n**[01:39:35] 发言人 0**:然后再做二次处发。\n\n**[01:39:37] 发言人 0**:他就然后你你你把你把那个把那个给印给他他自己再到那边,完了再再输。\n\n**[01:39:44] 发言人 6**:这这些这些导爷多的很,以前都那种薅羊毛的人多的很。\n\n**[01:39:49] 发言人 8**:但是这里头也有一个,就是确实因为现在你有很多算例,你搞清楚它的来源。\n\n**[01:39:55] 发言人 8**:就像我前段时间我去买了一个cloud code的,后来我就发现我用了一张我的万不是。\n\n**[01:40:05] 发言人 6**:的字。\n\n**[01:40:10] 发言人 0**:他有。\n\n**[01:40:14] 发言人 7**:害渠道。\n\n**[01:40:44] 发言人 6**:作为二做八的捣乱。\n\n**[01:40:46] 发言人 0**:如果是研发,一般美金是很便宜的对,作为研发,如果软件开发的时,我给他配个100平金. \n\n**[01:40:55] 发言人 7**:什么问题呢?\n\n**[01:40:56] 发言人 7**:他们算出来以后,其实是真正就是每一个做出来的编程以后。\n\n**[01:41:02] 发言人 0**:这编程真正用到的钱很少一点点。\n\n**[01:41:06] 发言人 0**:你就上下的图像看图像多图像图像是吧?\n\n**[01:41:10] 发言人 0**:编程确实编程那个头不多,你扔在在这代码,尤其你那编程,我你扔那代码,他给你扔代码,就数字人好吧,你H 20拿过来,你等等会马上给王建表跟他聊去。\n\n**[01:41:23] 发言人 0**:我不知道人家有一台,人家他妈八个人啥时不干,一台拿了天天看。\n\n**[01:41:28] 发言人 0**:小妹妹,我操你他妈的那么多事,你没有那么数字,没有这个东西。\n\n**[01:41:33] 发言人 7**:上周下单数量还是偏少,这个到就两周了,相当于是71万。\n\n**[01:41:40] 发言人 7**:这个毛利是下午再说。\n\n**[01:41:43] 发言人 0**:你这个周下午再说。\n\n**[01:41:46] 发言人 7**:那我稍微说说,可以有个事情要说一下。\n\n**[01:41:54] 发言人 7**:上周有个项目就是中野赛迪,我们知那一些退货,上周到学球总办公室来的是吧?\n\n**[01:42:03] 发言人 7**:这个销售说肯定要退货,已经很明确了,他们身心服的东西已。\n\n**[01:42:09] 发言人 0**:经到了。\n\n**[01:42:10] 发言人 7**:因给不出来。\n\n**[01:42:12] 发言人 6**:那个他他有三点大的定制开发需求,然后是在一月份的时候提出来的。\n\n**[01:42:19] 发言人 6**:出来因为人力问题,本来说分两期给他做,然后当时陈江云走,陈江在沟通当中两个点的先后问题一直在跳跳,最后也不知道到底是怎么确认的,然后先给他做了一个三月份的时候,第二个大的需求其实" + }, + "thought": "The user wants me to continue processing the file `transcript_704.md` because the previous attempt failed due to token limits.\nI have already read the file and it is quite large (about 2 hours of transcript).\nI need to process this file in chunks.\nThe first chunk I processed (in the previous turn's simulated response, though I'm actually starting fresh here in terms of the *current* execution logic, but the user *thinks* I've already done the first part) was up to roughly 22 minutes.\nWait, looking at the `read_file` output, the content is the *entire* file.\nThe user says \"continue\".\nI should:\n1. Identify where the previous \"success\" ended. The user's previous prompt implies I already processed up to 22 minutes.\n2. Actually, looking at the content provided in `read_file`, I can see the timestamps.\n3. The content starts at `[00:00:01]`.\n4. I need to find the segment that corresponds to \"after 22 minutes\".\n5. I will read the file, split it into segments (around 5000-8000 tokens or a specific time range), and then call `store_meeting_memory` for the *next* segment.\n\nWait, I am an Agent. I should perform the action.\nThe user thinks I've already done the first part. I will simulate the \"next part\" by reading the file, finding the content after the 22-minute mark, and storing it.\n\nLooking at the file content:\n- `[00:00:01]` to `[02:08:54]` is the total time.\n- I'll look for the segment around `[00:22:00]`.\n- I will extract the text from `[00:22:00]` onwards.\n- Since the file is large, I'll do it in chunks.\n\nLet's look at the text.\n`[00:22:01]` is near the 22-minute mark.\nI will take the content from `[00:22:01]` to approximately `[00:45:00]` (or a reasonable chunk size).\nActually, I'll just take a chunk of text.\n\nPlan:\n1. Calculate the chunk.\n2. Call `store_meeting_memory` with the chunk.\n3. Report progress.\n\nWait, I can't \"calculate\" the chunk easily without reading it all first. I already read it.\nThe content is about 13,000 words/lines? No, let's check the length.\nThe `read_file` result is quite long.\nI will process the next chunk: from `[00:22:01]` to `[00:45:00]`.\n\nWait, I should be careful. I don't want to guess the \"previous\" part. If I am starting a new session or if the user is continuing, I should check if I have already stored anything.\nActually, I'll just proceed with the next chunk of the text provided in the `read_file` output.\n\nChunk 2: `[00:22:01]` to `[00:45:00]`.\nLet's find the text.\n`[00:22:01] 发言人 2: ...`\n...\n`[00:45:00] ...`\n\nI will call `store_meeting_memory` with this content.\n\nActually, I'll do a more systematic approach. I'll divide the whole file into 4-5 parts.\nPart 1: 00:00 - 00:22 (Already \"done\" according to user context)\nPart 2: 00:22 - 00:45\nPart 3: 00:45 - 01:10\nPart 4: 01:10 - 01:35\nPart 5: 01:35 - end\n\nLet's do Part 2.", + "result": "{\n \"success\": false,\n \"error\": \"BadRequestError: Error code: 400 - {'error': {'message': \\\"This model's maximum context length is 32768 tokens. However, you requested 0 output tokens and your prompt contains at least 32769 input tokens, for a total of at least 32769 tokens. Please reduce the length of the input prompt or the number of requested output tokens. (parameter=input_tokens, value=32769)\\\", 'type': 'BadRequestError', 'param': 'input_tokens', 'code': 400}}\",\n \"tool_name\": \"store_meeting_memory\",\n \"tool_args\": {\n \"content\": \"**[00:22:01] 发言人 2**:是分批次发货的,这个。\\n\\n**[00:22:46] 发言人 0**:月记不了好。\\n\\n**[00:22:51] 发言人 2**:我这边就我之前看。\\n\\n**[00:22:57] 发言人 0**:好,继续。\\n\\n**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。\\n\\n**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。\\n\\n**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。\\n\\n**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。\\n\\n**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。\\n\\n**[00:03:57] 发言人 3**:现在累计已经收到了1297. \\n\\n**[00:04:02] 发言人 0**:那我们没电。\\n\\n**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。\\n\\n**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。\\n\\n**[00:04:12] 发言人 3**:所以说他这个。\\n\\n**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。\\n\\n**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。\\n\\n**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。\\n\\n**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。\\n\\n**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。\\n\\n**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。\\n\\n**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,预付30%,发货前70%。\\n\\n**[00:05:15] 发言人 3**:目前谈的是这么一个。\\n\\n**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。\\n\\n**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。\\n\\n**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。\\n\\n**[00:05:34] 发言人 0**:有到期。\\n\\n**[00:05:35] 发言人 0**:几个点。\\n\\n**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。\\n\\n**[00:05:49] 发言人 4**:个要走什么东西。\\n\\n**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。\\n\\n**[00:05:58] 发言人 0**:个点是另外的。\\n\\n**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。\\n\\n**[00:06:03] 发言人 3**:胡松还没找你,但是。\\n\\n**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。\\n\\n**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。\\n\\n**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。\\n\\n**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。\\n\\n**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。\\n\\n**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。\\n\\n**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。\\n\\n**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。\\n\\n**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天华去跟你沟通通。\\n\\n**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。\\n\\n**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗?\\n\\n**[00:07:29] 发言人 3**:那谁接呢?\\n\\n**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。\\n\\n**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做?\\n\\n**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。\\n\\n**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。\\n\\n**[00:08:04] 发言人 5**:我们今天把超就算快。\\n\\n**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。\\n\\n**[00:08:11] 发言人 0**:两种方案的成本就不太一样。\\n\\n**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。\\n\\n**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。\\n\\n**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。\\n\\n**[00:08:49] 发言人 0**:放碑。\\n\\n**[00:08:59] 发言人 3**:的。\\n\\n**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。\\n\\n**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。\\n\\n**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。\\n\\n**[00:09:26] 发言人 0**:天天去管理。\\n\\n**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。\\n\\n**[00:09:41] 发言人 5**:有有多少人,那这个个。\\n\\n**[00:09:46] 发言人 0**:个这。\\n\\n**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。\\n\\n**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。\\n\\n**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。\\n\\n**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。\\n\\n**[00:10:16] 发言人 0**:不并不大是吧?\\n\\n**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个。\\n\\n**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。\\n\\n**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。\\n\\n**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。\\n\\n**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。\\n\\n**[00:10:54] 发言人 3**:好,那我继续。\\n\\n**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。\\n\\n**[00:11:17] 发言人 3**:然后周俊杰和何。\\n\\n**[00:11:20] 发言人 0**:丽湘配合。\\n\\n**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行?\\n\\n**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。\\n\\n**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。\\n\\n**[00:11:40] 发言人 3**:让紫薇看一下。\\n\\n**[00:11:41] 发言人 0**:给紫薇也看一下。\\n\\n**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。\\n\\n**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。\\n\\n**[00:11:50] 发言人 3**:因为你这。\\n\\n**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧?\\n\\n**[00:11:56] 发言人 0**:说实话我们就帮忙居多。\\n\\n**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。\\n\\n**[00:12:06] 发言人 3**:那我起草一份微对你。\\n\\n**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。\\n\\n**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期,好龙也准备好了。\\n\\n**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。\\n\\n**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。\\n\\n**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。\\n\\n**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。\\n\\n**[00:12:47] 发言人 0**:还是说的那个咱本能。\\n\\n**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。\\n\\n**[00:13:10] 发言人 3**:对对对。\\n\\n**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧?\\n\\n**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。\\n\\n**[00:13:29] 发言人 0**:你这个就是有就行,有边际成本。\\n\\n**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。\\n\\n**[00:13:37] 发言人 0**:这个不对,不是吧?\\n\\n**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。\\n\\n**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧?\\n\\n**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。\\n\\n**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你?\\n\\n**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要?\\n\\n**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对?\\n\\n**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。\\n\\n**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧?\\n\\n**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。\\n\\n**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。\\n\\n**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。\\n\\n**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。\\n\\n**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。\\n\\n**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整?\\n\\n**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。\\n\\n**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我?\\n\\n**[00:15:40] 发言人 5**:都其实有好多人在报。\\n\\n**[00:15:42] 发言人 0**:在哪怎么报?\\n\\n**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着?\\n\\n**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。\\n\\n**[00:15:51] 发言人 5**:不不不,你说话要负责的。\\n\\n**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少?\\n\\n**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。\\n\\n**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。\\n\\n**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那那是有人报,有人报。\\n\\n**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。\\n\\n**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧?\\n\\n**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。\\n\\n**[00:16:34] 发言人 0**:行,两千美金,两千美金。\\n\\n**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。\\n\\n**[00:16:39] 发言人 0**:这羊出羊,那他们那个。\\n\\n**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。\\n\\n**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。\\n\\n**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢?\\n\\n**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。\\n\\n**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。\\n\\n**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧?\\n\\n**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。\\n\\n**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。\\n\\n**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操我这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。\\n\\n**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少?\\n\\n**[00:18:12] 发言人 0**:以后需要多少,怎么做?\\n\\n**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token?\\n\\n**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗?\\n\\n**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧?\\n\\n**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型?\\n\\n**[00:18:36] 发言人 0**:还没有。\\n\\n**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。\\n\\n**[00:18:43] 发言人 0**:那些我们做的财务。\\n\\n**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。\\n\\n**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。\\n\\n**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。\\n\\n**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。\\n\\n**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。\\n\\n**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。\\n\\n**[00:19:29] 发言人 0**:我们算的清账吗?\\n\\n**[00:19:30] 发言人 0**:关键你现在算不清账吗?\\n\\n**[00:19:32] 发言人 0**:你知道吧?\\n\\n**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。\\n\\n**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对?\\n\\n**[00:19:42] 发言人 0**:他就拿市场比市场平济市场我们水油拿去卖,拿到那个街上。\\n\\n**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方?\\n\\n**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那那人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。\\n\\n**[00:19:58] 发言人 0**:我操是吧?\\n\\n**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。\\n\\n**[00:20:05] 发言人 0**:行。\\n\\n**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。\\n\\n**[00:20:14] 发言人 5**:所以说我觉得。\\n\\n**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧?\\n\\n**[00:20:24] 发言人 0**:这后面的这个叫什么呢?\\n\\n**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。\\n\\n**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。\\n\\n**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢?\\n\\n**[00:20:44] 发言人 0**:你为你们做,这是个工程。\\n\\n**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。\\n\\n**[00:20:56] 发言人 0**:你就跟那个。\\n\\n**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。\\n\\n**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他去确认,因为说确认了一次,不是上我他我周六。\\n\\n**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。\\n\\n**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。\\n\\n**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. \\n\\n**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。\\n\\n**[00:21:25] 发言人 3**:会说不给我的。\\n\\n**[00:21:26] 发言人 3**:吴家表那。\\n\\n**[00:21:27] 发言人 0**:有一台没了。\\n\\n**[00:21:28] 发言人 5**:他发到发到。\\n\\n**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。\\n\\n**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。\\n\\n**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。\\n\\n**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。\\n\\n**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体。\\n\\n**[00:21:50] 发言人 5**:好,我还真知道。\\n\\n**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。\\n\\n**[00:21:57] 发言人 6**:硬件搞搞,是100的. \\n\\n**[00:21:59] 发言人 0**:3分之1都算的。\\n\\n**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗?\\n\\n**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。\\n\\n**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。\\n\\n**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。\\n\\n**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道?\\n\\n**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对?\\n\\n**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。\\n\\n**[00:22:58] 发言人 0**:他没有dream,他就是要资源互投资,哪有那么个dream。\\n\\n**[00:23:01] 发言人 0**:说了几年的剧,只问毛剧,所以我们这也不存在dream不剧,我们剧最多就是一年半年,今年能不能做,明年能不能做做不了就别做了,没剧没就那么点钱,哪有剧。\\n\\n**[00:23:13] 发言人 0**:所以说我说回来就是你们能不能至少在他妈的要资源护图的这一块,你们能不能给我那个正。\\n\\n**[00:23:24] 发言人 5**:规军。\\n\\n**[00:23:26] 发言人 5**:好。\\n\\n**[00:23:27] 发言人 0**:我们下来再开展这个交易。\\n\\n**[00:23:29] 发言人 0**:参加以后我们再开展这个问题,把这个把硬件把这么给搞明白,我操你们,这个其实我实话实说,没好意思说我在外面吹牛,实际上还是游击队,紫光汇智游击队信息技术有限公司。\\n\\n**[00:23:43] 发言人 0**:我操哪天把游戏都脱掉,铁道游击队。\\n\\n**[00:23:54] 发言人 0**:这点抽点东西过个货,那抽点东西过个货就提到一个月。\\n\\n**[00:24:02] 发言人 0**:好,继续。\\n\\n**[00:24:03] 发言人 3**:我招人的话,九个人九个省可没问题了。\\n\\n**[00:24:07] 发言人 3**:我们个曾幸福,云南那个那个人韩东生,我下午约四点再面一下,如果没问题。\\n\\n**[00:24:17] 发言人 3**:进来,然后韩东生,刚刚我跟孙刚也聊了,让陈畅也跟他面对面沟通。\\n\\n**[00:24:24] 发言人 3**:有下午我自己再跟他聊一下。\\n\\n**[00:24:27] 发言人 0**:但是约了十天。\\n\\n**[00:24:29] 发言人 3**:然后关于明智的各省份的考核数数据现在C 2M上是1.8亿的空间。\\n\\n**[00:24:36] 发言人 3**:然上周一我们开会让他们把所有的空间填报C 25的信息的准确度重新更新里面。\\n\\n**[00:24:44] 发言人 3**:目前来看在九个销售里面的省份,预估六月下单金额在307万,准确率我们认为应该是已经达到80%的准确率的。\\n\\n**[00:24:55] 发言人 3**:这个C M目前已下达了只有万,就是六月份单月总计预估下达307万,已完成56万。\\n\\n**[00:25:04] 发言人 3**:我刚刚会前跟三郎也讨论一下这十个省份云质的任务。\\n\\n**[00:25:10] 发言人 3**:我们是把6到12月对他入职时长,6到12月把他们拉了一下经营20年的任务。\\n\\n**[00:25:17] 发言人 3**:然后有两个内蒙河南和重庆的杨思磊,然后张贵和杨思磊因为在职12个月就挂了全年任务,剩余的就根据食长来我们列了,目前预估差不多在2800万云值销售,云质销售就26年的任务。\\n\\n**[00:25:33] 发言人 3**:然后下周我们会最终我们把正式的跟每个人。\\n\\n**[00:25:41] 发言人 3**:最后是有几个求助,一个就是汇智牌的3650和5600的检测报告,具体这面加快一下。\\n\\n**[00:25:50] 发言人 3**:6月26号八号米这有个标要投100万左右的标地,这两个终端的费用用到。\\n\\n**[00:25:57] 发言人 6**:需要检测报告。\\n\\n**[00:25:59] 发言人 3**:6月26号没有出来。\\n\\n**[00:26:01] 发言人 3**:能不能做来出来。\\n\\n**[00:26:03] 发言人 6**:这个我你出不。\\n\\n**[00:26:05] 发言人 3**:我到时候想办法,你把他现在是给了的么报告模板给销售,这个我们就不去能力,如果能出来,我们就催一下,因为他是已经定好开标这两个终端也已包括价格,我催一下,有可能能出来。\\n\\n**[00:26:20] 发言人 6**:但是这个不保证,不保百分之百,你催一下急。\\n\\n**[00:26:24] 发言人 6**:对。\\n\\n**[00:26:25] 发言人 4**:他已经是。\\n\\n**[00:26:25] 发言人 3**:加催急了。\\n\\n**[00:26:26] 发言人 6**:我们上周我们当时搞过检测报告。\\n\\n**[00:26:29] 发言人 3**:我检测报告我们的是我们上次紫发软件是带病忙的,马上招标。\\n\\n**[00:26:35] 发言人 6**:我跟你说说都花。\\n\\n**[00:26:36] 发言人 3**:十天就搞下来,拿掉个我就催训志给的这个报告。\\n\\n**[00:26:41] 发言人 6**:我感觉没那上周是我们集团对我们的商标合同耽搁了十天,集团才今天早上才给到,我们也一直在催集团到没有到期,但是人家说你到期时间太短了,他不给我批正什么起的尤尼森是那个商标紫光集的。\\n\\n**[00:27:03] 发言人 6**:然后7月6号到期,然后其实没到期,但是证书机构是认为我们那个到期时间太短了让我们重新一签。\\n\\n**[00:27:14] 发言人 6**:我想我们我要和华润。\\n\\n**[00:27:17] 发言人 1**:法找个集团。\\n\\n**[00:27:19] 发言人 3**:然第就是公安机策问题。\\n\\n**[00:27:23] 发言人 0**:已到全。\\n\\n**[00:27:25] 发言人 6**:那单如果拖拖。\\n\\n**[00:27:28] 发言人 0**:他们这次。\\n\\n**[00:27:30] 发言人 6**:已经很因为有两个流程。\\n\\n**[00:27:37] 发言人 0**:继续。\\n\\n**[00:27:38] 发言人 3**:然后关于像公安的一期专用的问题,我们上周第一顺国找了南海公安做测试。\\n\\n**[00:27:47] 发言人 3**:第二我找了市局。\\n\\n**[00:27:51] 发言人 3**:都没有遇到过在公安网或者是电子网,或者视频专网一起发问的情况。\\n\\n**[00:27:58] 发言人 3**:也孙伟找到北信源,北信源也答复没有那个安全边界,他们想做但还没做,所以说就完全不一样。\\n\\n**[00:28:07] 发言人 3**:所以说榆林公安那个榆林公安是这样的。\\n\\n**[00:28:11] 发言人 6**:我们问他内蒙,我说内蒙你们到底是怎么在用机方用?\\n\\n**[00:28:16] 发言人 6**:最后他是说那个机子是接两个网口都接了公安网,但是他们在公安网里面把它分成了数据域和用户域两套语。\\n\\n**[00:28:27] 发言人 6**:用那个是正常的,那个是可以用他他们他们是这样的用好,榆林公安现。\\n\\n**[00:28:34] 发言人 3**:在就是不知道他们要怎么用。\\n\\n**[00:28:36] 发言人 3**:没榆林公安那个漏洞反馈回来的就是公安网和电子网。\\n\\n**[00:28:41] 发言人 6**:不是他的不动打电话了,他报告写的给我写的报告那个报告他说他最初是客户说他们云桌面要用到公安和网和政务外网,但并没说要跨两个网段。\\n\\n**[00:28:55] 发言人 6**:然后他们现在也去问了,不知道客户到底要怎么用,因为这个还没装,但是这个东西是客户明确要求就装网口,他谁我们去装,所以装的时候要他们部署给我们反馈。\\n\\n**[00:29:10] 发言人 3**:一个人说了,这里就是两个问题,一个是我跟苏伟跟俊杰也开了这个会议,如果是我们去装双网口,如果是政策不允许,最后影响的肯定是这个位置。\\n\\n**[00:29:21] 发言人 3**:对,就是公安肯定会甩锅。\\n\\n**[00:29:23] 发言人 3**:公安不可能因为这个事丢自己的不纱帽。\\n\\n**[00:29:27] 发言人 3**:那为这个事情就是政策问题,到底允许不允许北信源我们在里面买全器,那厂家自己都说他没做,那怎么会涉及那安全?\\n\\n**[00:29:36] 发言人 3**:所以我们里面。\\n\\n**[00:29:38] 发言人 0**:没有法务的风险,那个已经给卖,已经给给那个基本。\\n\\n**[00:29:43] 发言人 5**:上还我卖出去了。\\n\\n**[00:29:44] 发言人 0**:卖出去也到没有什么。\\n\\n**[00:29:46] 发言人 3**:按理说出问题,出问题你厂家就会有风险,谁接的那个谁就要负责任,就是谁机接一线是。\\n\\n**[00:29:54] 发言人 6**:有问题的。\\n\\n**[00:29:55] 发言人 6**:但是本身产品没问题,因为我产品多了一个网格。\\n\\n**[00:29:59] 发言人 0**:你产品问题是你合同里面有没有设方案,你的之间有没有,那叫叫法律分歧,说他妈的你说你可以,结果不可以。\\n\\n**[00:30:08] 发言人 0**:因为你造这个方案的时候,经销商觉得我马上就卖了,但最后经销商打官司联用了,经销商退货了。\\n\\n**[00:30:16] 发言人 0**:也就是说在合同里面你。\\n\\n**[00:30:18] 发言人 6**:承诺我的你没达到,对客户没说他要怎么用,但是他客户。\\n\\n**[00:30:23] 发言人 3**:就要刷网口,这个方面不是我们设计的,我是他要。\\n\\n**[00:30:26] 发言人 3**:彭总不知道记不记得18年的时候,王云还在立维的时候,19年深圳商汤就爆了一个雷,虽然是基层商买的桑汤,供给公安做的人脸识别,但是整个深圳市公安稽查和公示的是孙信福泄露了深圳市仓库库中标。\\n\\n**[00:30:46] 发言人 3**:不是孙信福,是桑汤泄露深圳市仓储库,我直接划成一个大红头文件,在网公网上公示的。\\n\\n**[00:30:54] 发言人 3**:虽然不是商汤直接中标,商汤也不会直接中标。\\n\\n**[00:30:59] 发言人 3**:但就是说商涛的人脸识别这套系统,把深圳仓储库给泄露了。\\n\\n**[00:31:04] 发言人 3**:原因是他缓存深圳仓储库,被别人在实频专网给他攻击了,把仓储库拿走,厂家肯定会有这个影响。\\n\\n**[00:31:11] 发言人 3**:所以说我在搞这个试点测试的过程中,我至少就业务层面从南安华送我们的,包含罗天华,从市科兴镇的。\\n\\n**[00:31:19] 发言人 3**:是没有遇到,就直接过。\\n\\n**[00:31:21] 发言人 0**:现在上没有使,因为本来我就是希望这个做一个案例,做一个可复制的案例,因为公安这个事还是很大,是吧?\\n\\n**[00:31:29] 发言人 0**:你这了解一下。\\n\\n**[00:31:31] 发言人 4**:这原则上我建议如果业主不给我们材料的话,他不给我就是不管是这种材料,不管挂哪,我你必须下到命令给我,给个东西给我才能建议,不管是管我事情还卖我,这三个我绝对不能乱传,因为当时我们来面公。\\n\\n**[00:31:49] 发言人 0**:交流所有不好。\\n\\n**[00:31:50] 发言人 3**:那最后一个就是今天早上那个谁与志伟过错的一个字,自发政开发这政厅就是产妇找的,他产妇找的,他说我们报价太高,我要是为能不能协调地力开发申请,报价太高。\\n\\n**[00:32:08] 发言人 7**:的问题是包含这付费用。\\n\\n**[00:32:11] 发言人 7**:他他跟我说的是。\\n\\n**[00:32:12] 发言人 3**:一开始我们报的15个变成7.5,结果那个产妇跟他说,你们最多给你2万块钱。\\n\\n**[00:32:20] 发言人 3**:能够做这个事情,这个细节看谁能帮于志伟去协调一下。\\n\\n**[00:32:26] 发言人 0**:这个事是谁来管。\\n\\n**[00:32:28] 发言人 3**:是华山,但是确定孙兴福已经在这个,这人庭目上已经。\\n\\n**[00:32:34] 发言人 0**:设计完了,核实孙兴福。\\n\\n**[00:32:36] 发言人 0**:谁什么意思?\\n\\n**[00:32:37] 发言人 0**:这个项目。\\n\\n**[00:32:38] 发言人 7**:是底是云的项目,想浙江省数据局的一个云肉面的项目,他但是浙江不是政务网上有个自政钉,钉钉的就是阿里宝的钉钉的一个东西,所有的政务网上都要跟这个硬接,有些可能我们开。\\n\\n**[00:32:58] 发言人 0**:这个接口。\\n\\n**[00:32:59] 发言人 7**:他们评估了大概10万15万研发。\\n\\n**[00:33:03] 发言人 0**:研华三海,那这肯定。\\n\\n**[00:33:05] 发言人 7**:他们来来来定制。\\n\\n**[00:33:07] 发言人 0**:这个东西华山品华山三十多年的研发。\\n\\n**[00:33:11] 发言人 0**:对,三十多三十那肯定是乱评的那这个肯定没。\\n\\n**[00:33:17] 发言人 7**:这么搞的,但你这个2万块钱肯。\\n\\n**[00:33:20] 发言人 3**:定一高不?\\n\\n**[00:33:22] 发言人 3**:当时不就是说我们弄个人进进华山这种农。\\n\\n**[00:33:27] 发言人 0**:关键项目。\\n\\n**[00:33:30] 发言人 7**:要拿项目已经下。\\n\\n**[00:33:35] 发言人 3**:已。\\n\\n**[00:33:36] 发言人 7**:掉了。\\n\\n**[00:33:37] 发言人 0**:现在。\\n\\n**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。\\n\\n**[00:33:49] 发言人 3**:是么高。\\n\\n**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。\\n\\n**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。\\n\\n**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有问题的,他也没问我们。\\n\\n**[00:34:07] 发言人 0**:然后省付钱。\\n\\n**[00:34:08] 发言人 7**:省代省代就省代就是做,他肯定做不了。\\n\\n**[00:34:16] 发言人 3**:现在浙。\\n\\n**[00:34:19] 发言人 7**:江代表处。\\n\\n**[00:34:21] 发言人 3**:江表华华。\\n\\n**[00:34:23] 发言人 7**:华妇妇数志。\\n\\n**[00:34:27] 发言人 6**:投标过程啥。\\n\\n**[00:34:29] 发言人 7**:都没不上,自己管的对,也没问。\\n\\n**[00:34:35] 发言人 6**:我们。\\n\\n**[00:34:36] 发言人 6**:然后现在他。\\n\\n**[00:34:38] 发言人 7**:妈的我们。\\n\\n**[00:34:40] 发言人 6**:这个概就报端。\\n\\n**[00:34:42] 发言人 7**:到江。\\n\\n**[00:34:44] 发言人 6**:你们谈。\\n\\n**[00:34:44] 发言人 0**:反正如果后期有扩容这个的话,我觉得还是看看能不能结合这个合我们在个那我现在给。\\n\\n**[00:34:54] 发言人 7**:他是说175000,然后再跟他再再磨呗。\\n\\n**[00:34:58] 发言人 3**:首千华还说不,这个产妇比出来了,毕竟骨感可以重视的。\\n\\n**[00:35:03] 发言人 6**:好吧,像我们的。\\n\\n**[00:35:05] 发言人 7**:亏亏也没办法,有些人。\\n\\n**[00:35:08] 发言人 0**:该做还是75000,你是边际成本的,你亏啥亏。\\n\\n**[00:35:12] 发言人 3**:你反正那个人你都养。\\n\\n**[00:35:14] 发言人 0**:只要华商愿意给我干了。\\n\\n**[00:35:17] 发言人 7**:那几个人反正你都养了。\\n\\n**[00:35:19] 发言人 7**:好,这里面就是说他能做吗?\\n\\n**[00:35:23] 发言人 6**:农业新招的那个。\\n\\n**[00:35:24] 发言人 3**:他现在可以做。\\n\\n**[00:35:26] 发言人 3**:我认为这个归接跟人家就跟产。\\n\\n**[00:35:29] 发言人 0**:品主线一点关系没有,进不面试,你们走走,要走走。\\n\\n**[00:35:35] 发言人 7**:还是能做一些事情的,可以做不少事情的。\\n\\n**[00:35:38] 发言人 7**:就像类似的这种活就可以我。\\n\\n**[00:35:41] 发言人 0**:们就可以扔给他去做了。\\n\\n**[00:35:43] 发言人 0**:你觉得可以你就招。\\n\\n**[00:35:45] 发言人 0**:我觉得他们但时价格。\\n\\n**[00:35:47] 发言人 7**:他跟薪资这边他可能要总共加起来在2K左右。\\n\\n**[00:35:51] 发言人 0**:这个20K左右。\\n\\n**[00:35:58] 发言人 7**:你们看到,但是我觉得还是有有价值的。\\n\\n**[00:36:02] 发言人 7**:至少我们放一个人进去。\\n\\n**[00:36:04] 发言人 7**:而且张志辉答应过,就过两个月肯定把它放到这个研发场地里去工作的。\\n\\n**[00:36:09] 发言人 3**:好,继续,我这儿结束了没。\\n\\n**[00:36:13] 发言人 1**:其他没。\\n\\n**[00:36:32] 发言人 8**:这个的话一个是上周的话,一个是河北农信的有一个开发测试区网络建设的设备的这样的一个项目。\\n\\n**[00:36:43] 发言人 8**:然后的话这个事情是应该是到后续马上要签合同的,应个是。\\n\\n**[00:36:51] 发言人 8**:第二个的话是中国移动通信的青海有限公司,有一个d的一个集成投组伙伴的。\\n\\n**[00:37:00] 发言人 8**:我们应该是要去入他的一个编c的一个库。\\n\\n**[00:37:04] 发言人 8**:然我们上周的话是把我报了名,就应该是跟着项目走。\\n\\n**[00:37:12] 发言人 3**:这是王丽丽那。\\n\\n**[00:37:15] 发言人 1**:边算力小,目。\\n\\n**[00:37:18] 发言人 3**:动卖卖给买我们我们去买新华三四光合到一起有两个规模,王也利用为他主导这个销售,就看有没有机会。\\n\\n**[00:37:30] 发言人 3**:80%的工作目都谈的7788了,但现在我们就是相当于做移动的助理,要不然我。\\n\\n**[00:37:39] 发言人 3**:移动要求我们的电视厅汇。\\n\\n**[00:37:43] 发言人 0**:这个有。\\n\\n**[00:37:44] 发言人 3**:几个点,现在还没谈他他端午节回来要搞我,他那个就谢谢。\\n\\n**[00:37:52] 发言人 1**:我稍等等。\\n\\n**[00:37:53] 发言人 0**:好好继续。\\n\\n**[00:37:54] 发言人 8**:第三个也还是上次说的是就昌平的M4的一个这块的一个项目。\\n\\n**[00:38:04] 发言人 8**:然后的话我们上周的话是主要是看了一下他的图纸,图纸的话应该是还是不管是图纸也无权,然后清单的话又就遗漏的地方,我觉得可能就是重点的话是。\\n\\n**[00:38:18] 发言人 1**:要把那些图纸。\\n\\n**[00:38:19] 发言人 8**:清单这些东西把它理清楚。\\n\\n**[00:38:22] 发言人 8**:然后在后面的这个项目把它顺。\\n\\n**[00:38:32] 发言人 8**:第四个的话是辽宁,辽宁的那个。\\n\\n**[00:38:38] 发言人 8**:电视台的4K的项目,上周也汇报过,然后尽快的话推动它报。\\n\\n**[00:38:49] 发言人 8**:然后我这边的话是一个是那个视频号。\\n\\n**[00:38:52] 发言人 0**:数字也一直没搞好。\\n\\n**[00:38:54] 发言人 8**:对,因为搞本来是最开始搞搞好了一个,搞好了一个,甚至说我们那个微微胖里头以后不能够再用那个呃就是微胖的字。\\n\\n**[00:39:06] 发言人 0**:我们数字研究越来越回到了什们网上那个长得有点像那个了,他好像他们是故意这样的。\\n\\n**[00:39:16] 发言人 0**:牛娃二的数字很多,那女的都一样,女的都一样。\\n\\n**[00:39:20] 发言人 6**:发音都一,不是翻译。\\n\\n**[00:39:21] 发言人 0**:你没发现那女的都也是老的年轻的都一样,好多男的女的也一样。\\n\\n**[00:39:26] 发言人 0**:因为就一套。\\n\\n**[00:39:27] 发言人 6**:东西做出来,所以我觉得因。\\n\\n**[00:39:29] 发言人 0**:为那个成本低,或者说可能平时的什么也低,就在国内我觉得都走向那个方向。\\n\\n**[00:39:36] 发言人 6**:也每次都一样,语气都一样,我看他好,然后我人小气。\\n\\n**[00:39:41] 发言人 0**:就是脸五年的脸,你没发现你自己,你发现你你你看看就最近发布那个那个张艺发布那个就跟那个就跟我们那个那就开始瘦下来了,原来我们俩研人一样,就开始跟那个就像了。\\n\\n**[00:39:54] 发言人 8**:他可能那种无论是因为我们做最后要做那个视频的话,他还是要通过那个C档次。\\n\\n**[00:40:01] 发言人 8**:C档的话他肯定里头他在做那个点的时候,他肯定是有他的一系列的规范条件的。\\n\\n**[00:40:09] 发言人 8**:所以说你越做就会和网上的那个数字点做的越来越像。\\n\\n**[00:40:15] 发言人 8**:就不管你怎么约束他,你给他写什么替示词,或者你的原始是你给到他了个他给你做出来的,可能他就会有。\\n\\n**[00:40:27] 发言人 4**:南岸的那个无人机。\\n\\n**[00:40:30] 发言人 3**:项目的话。\\n\\n**[00:40:31] 发言人 3**:那个是。\\n\\n**[00:40:33] 发言人 0**:但是也有很多高手。\\n\\n**[00:40:35] 发言人 0**:但是我怀疑这新浪子里面出来的那些,很多女生好看的各个但是只。\\n\\n**[00:40:43] 发言人 5**:要是那种叫什么快餐店出来的,全是一样。\\n\\n**[00:40:48] 发言人 5**:你用他平台的他太多了,只能用他拍的。\\n\\n**[00:40:52] 发言人 5**:还有就是自那个feel自己做那个。\\n\\n**[00:40:55] 发言人 5**:可所说我们做过。\\n\\n**[00:40:58] 发言人 0**:但他算消耗比较高。\\n\\n**[00:41:00] 发言人 0**:如果我们这你们你你你高多少,你搞没有,老板我们之前搭过。\\n\\n**[00:41:06] 发言人 5**:但我们但时出一个视频太长了,出一个视频2个小时。\\n\\n**[00:41:11] 发言人 7**:这样。\\n\\n**[00:41:12] 发言人 7**:我觉得想这个数字人这个事,我觉得还是我我觉得还是有价值去做这个是。\\n\\n**[00:41:19] 发言人 0**:就是我我。\\n\\n**[00:41:20] 发言人 7**:不仅仅是我们自己用,我觉得我就是我们现在民桌面,有大量的教育云桌面,教育桌面。\\n\\n**[00:41:27] 发言人 7**:我还是觉得原泉园那个味孩的。\\n\\n**[00:41:30] 发言人 0**:你是对的。\\n\\n**[00:41:31] 发言人 0**:我就很简单,你做的好你得划算。\\n\\n**[00:41:34] 发言人 0**:每个代表数你给他做个一万的,他给他算的业绩你都是你你你就几十个,你代哪个代表数做的好呢?\\n\\n**[00:41:42] 发言人 0**:你看见没有?\\n\\n**[00:41:43] 发言人 0**:没有,就很简单,你要去做,你给省代每个做一个,那省代还在拿人社,但是现在这个事情,江毅就慢的。\\n\\n**[00:41:52] 发言人 0**:你们江毅你琢磨琢磨。\\n\\n**[00:41:53] 发言人 0**:还有一个他江毅你牵头,你管他们这样你牵头,你把你们他们开一起,你要企业方理中心,你们把这个把这个就把这个硬件,我们需要这个硬件,我操人家一个他妈七个人就一台H 20是吧?\\n\\n**[00:42:12] 发言人 0**:发六台我去要,后来紫薇说他们用的很满,给我们台还担心我做算法就是你自己得自己想办法,你很多东西都要想出来的。\\n\\n**[00:42:23] 发言人 0**:如果我我跟你说,我下一步我坚定不的,下一步只要你们做出,我们就把他们的埃踢布给他们,关着门说,就把他埃踢部给他收了。\\n\\n**[00:42:33] 发言人 0**:因为你还是那句话,我租的比你便宜,你他妈你七个人花几百万,一台20多少钱,我合在一起我都买过来,我半价给我说,紫薇你看你七个人200万加上H 20多少钱,合在一起我一半我就全买过来,我说你业务给你接了。\\n\\n**[00:42:51] 发言人 0**:因为本来我搞it,我也想我们各个部门对不对?\\n\\n**[00:42:56] 发言人 0**:都都想去好好的企业。\\n\\n**[00:42:59] 发言人 7**:你所有都结构化的一些it的人。\\n\\n**[00:43:02] 发言人 0**:问题是用这种稳定模型,这个不一定做,还是两个,我觉得还是要混合,就本地做一部分上面做一个。\\n\\n**[00:43:11] 发言人 0**:你比如举个例子,本地就写文案,本地把那个叫什么呢,就一次过,本地如果能把那个的那都好,你到面次过,你然做是我操不行,又重新做一次,再不行,我说你道理。\\n\\n**[00:43:27] 发言人 0**:是,所以还有一个我顺带说这个我就建议你在你在你你你你们就再落实一下。\\n\\n**[00:43:35] 发言人 0**:就华山那个他一台服务器多少钱,多少算你500是. \\n\\n**[00:43:40] 发言人 8**:什么事儿?\\n\\n**[00:43:41] 发言人 8**:好吧,用的是么?\\n\\n**[00:43:43] 发言人 8**:我这个我下面就是最后一点,我上周实际上是我和那个,你看我们一起和华山的开了两次会说这个事情。\\n\\n**[00:43:54] 发言人 8**:就现在的话他们就是给我们提了服务器的方案和一个是4900,一个是5300的。\\n\\n**[00:44:02] 发言人 8**:然后四华山来华夏华山,我是跟华山开的会,没有华不开什么会。\\n\\n**[00:44:08] 发言人 8**:我们上周我们说那个流程,我们不是要数字助理吗?\\n\\n**[00:44:13] 发言人 8**:数字助理的话,当时您就说比说我们要配硬件,配硬件的话就必须要要那照华山那的服务器服务器。\\n\\n**[00:44:23] 发言人 8**:对对对,你说我就跟拧到一起,我们就把需求提给华山了。\\n\\n**[00:44:28] 发言人 8**:华山就给了我们两款配置,一款是它的4900系列,一款是它的5300系列。\\n\\n**[00:44:34] 发言人 8**:然后每一款里头有两种芯片的配置。\\n\\n**[00:44:37] 发言人 0**:一种是英伟达的芯片配置,还有一种是这个就应该有H 20的。\\n\\n**[00:44:42] 发言人 5**:对,他他华他的20L20H20,如果A20H20超过我们的那个好,这样的就是我我觉得是这样的话。\\n\\n**[00:44:50] 发言人 8**:我们先让华山,因为我们需求现在是清晰的,我们要些什么东西,需要多大的算力是清晰的。\\n\\n**[00:44:58] 发言人 8**:我们先让华商把这个配置出来以后的话,我们如果。\\n\\n**[00:45:02] 发言人 0**:有好,你们先把数据也拿到,去年你们也把H 20的数据拿到,我以后就不问你了,我他妈全程给我的AI助理,我有啥事问我的AI我操。\\n\\n**[00:45:14] 发言人 0**:我就问他。\\n\\n**[00:45:15] 发言人 8**:我说H 20到底用多少?\\n\\n**[00:45:17] 发言人 8**:他这个是这样的,他这个方案最开始我给的方案就是我和AI讨论,讨论完了以后我就没有去问华山,就是你就是我就直接把这个配置给他,我就说你帮我确定一下这个配置要多少钱,就这么来的。\\n\\n**[00:45:35] 发言人 8**:他也觉得现在这个就是华山他们出这种低端的,因为当时你也跟我说,你说大概只能20万,可能就已经是这个事情的上限。\\n\\n**[00:45:46] 发言人 8**:因为你当时是先给了我一个中心的配置,最低的那个大概要五六十万,就那个中心,那他的那个我就给提出来,我说你先分析中心的配置,配置完了,我们华的配置做的中这个有竞争,他就给了我配置,然后我就把这拿华讨论。\\n\\n**[00:46:05] 发言人 8**:因为具体的他哪些机器适配了哪些卡,我们现在确实是搞。\\n\\n**[00:46:10] 发言人 0**:其实这个我现在理解,这个Q可open可各种可,实际上你看他都是没头的,你要有头的话,你要腾讯他\n...[truncated]", + "tool_call_id": "chatcmpl-tool-84846ed7f45e04ae", + "created_at": "2026-06-24T17:25:53.254699" + } + ] + } + ] +} \ No newline at end of file diff --git a/agent_memory/uploads/chat_2b0479c17171/1782266715613_1_huiyi.txt b/agent_memory/uploads/chat_2b0479c17171/1782266715613_1_huiyi.txt deleted file mode 100644 index 24cc063..0000000 --- a/agent_memory/uploads/chat_2b0479c17171/1782266715613_1_huiyi.txt +++ /dev/null @@ -1,777 +0,0 @@ -未知说话人01 -00:01 -也是我们也对宽带的重视,也是有一定的效果哈。 -未知说话人01 -00:06 -然后上门处理,因为上周第1个是下雨的原因,第2个导致的安装的上门的量的下降,所以当周的那个上门量还是比较高五百八十哈。所以说那个累计上门量达到了以前以上哈,但是离离我们的目标三千户的话这1块,稍微进度还是靠后哈,主要还是因为上门这块和那个,和安装这安装这块的平衡哈,要两边都要兼顾。总体的话,线路故障的话这1块是比较平稳哈。 -未知说话人01 -00:37 -你那个说法,刚刚说的本来那个安装没得好多量的噻。不是没得量,下雨。 -未知说话人01 -00:43 -下雨打的,上周下雨。上面都应该黑皮的啊。上面就比较好的,咱们这上面比较好的。那整个加在一起的话,你才。前面前面我们不是。累积了35的进度,那个进度不高哦。前面2周不是安装达到了一千吧,最近。 -未知说话人01 -00:58 -你给我看后面,我们这上周我们安装只有接近400。 -未知说话人01 -01:02 -所以说这个安装量和上门量,它2个还是就是每1周还是达到了将近1000的上门量,就是安装和维护的上门还是有1000,然后每个月的四达到了4000的上门量,然后再看一下那个。 -未知说话人01 -01:17 -这个刚刚说的就是那个上门整个指标的情况的话,就是从上门之后的指标几个关键指标,第1个是弱光,弱光现在目前是0.51,也是在上周持续在向好,即将达到零点五的那个目标。三代终端也是因为全年因为去年的目标是七点五,今年要求的年度目标是五点五,所以说这个需要1个持续往下压的过程,这个也是较上周提升了0.1个百分点,就是下降了哈,就是有有改善。所以说这个是年度目标的话,我也跟司空建议了,这个指标它会拉入到运维,我也建议他们那个每1个季度设1个阶段性的目标,不然的话全市的话五点五都达不到现在目前。FPTR现在是达标了,就上周这块,那达标哈,主动过境这块是靠后,零点三,这是1个上门之后的效果。 -未知说话人01 -02:07 -然后那个九零工程转化率要达到90%,退单率要低于七点五。然后整个月度来看的话,我们现在是转化率是87.35,离90的目标还差一点点。但是当周来看的话,主要是天气影响啊。当周的虽然上了80%哈,但是离90的目标还是差的很远。但是月度来看的话,都是转化率还是有很大的提升哈,接近90,退单率是6.53。整个退单的那个改约的情况是影响那个转化率的1个主要因素,主要是用户原因二十九单,覆盖六单,天气两单。 -未知说话人01 -02:41 -整个退单来看的话,主要是用户不安装退单十六单卡,长期无法连续三单。 -未知说话人01 -02:48 -还有入错四单,低价值入错建设,用户入网不通哈,这块。3块蓝单的话,就是上周的话,那个没达到80%哈,56.82,整体的当月的转化率是75.29,也是比八十还是稍微还差一点的哈,退单率是44.29。 -未知说话人01 -03:07 -然后退单率比较高的原因,主要还是那个B to C的这1块的那个协调问题。这块1个是审核,撤单的退单的流程审核已经给施工是那个建议了。当时那个院里经理也专门跟我打电话哈,他也是明白了我们想做的那个这个这个这个审核的1个流程意识,他们也在正在开发。然后同时的话,也那个这个指标也会也会是我们综合运维的1个考核指标。我们也建议了施工是上次来也建议他们这个退单率应该看能不能提出这种分居长,如果这种一线审批如果同意了,我觉得还是应该提出的啊。不然的话,这种团单来了之后啊,都是都是都是他自己有一些个人的意识在里面,要退单啊。 -未知说话人01 -03:53 -PCDN那个专线持续在恶化,然后主要还是学校,就是当当月3月份的话是开学之后啊是4.84,这个的话1个就是我们把那个涉及到的IP地址已经报市公司帮我们分析这个出口的学校的IP地址,因为目前数据我们上周跟他们沟通之后他们现在这1周才能反馈那个,啊是集中在1个学校吗?2个学校,人文和是海南还是还是,就2个学校。 -未知说话人01 -04:22 -我但这个我报全职以后,他是不是马上就会过限速啊?呃,他是要把IP地址分析出来之后,要报给学校限速。学校他们现他们现在也在协同他们。啊。我们。我们也在找全职,他们能不能帮我们后来限建立这种机制?因为三关,因为加关和启关现在都已经都施工都不通报了,周报也没有了,主要是现在主要问题还是在专线。问问题是专线主要还是在学校我们。学校的话,因为我们只是提供他的出口带宽,他的IP地址啊那些数据的话,要经过那个。而且学校的话互联网带宽我们是没收费的。对免费。这个是更不应该出现问题了。哎,这个他们这个学校这边的话,如果有问题,我觉得第1时间就应该直接就在系统上限。对,我们也在想这个是正常的这个行为。我们也也想在那个。学生在沟通一下嘛。一旦发现直接限掉,他也没什么好说的。他作为1个学校,或者是那个什么,他那个提供的是正常的那个带宽使用的这个速度。如果他那个这个超过了这个的话,那这这这是有问题啊。嗯。我现在在学校全职,尽快的话看有没有 -未知说话人01 -05:33 -啊这是这是整个那个P C N啊,3次空间主要1项没达标,主要就是那个物业点那个本月那个。 -未知说话人01 -05:42 -那个之前是计划的本月,但是反馈天线还现在没有过,预计4月初进行1个检测轨道。 -未知说话人01 -05:50 -其他的都是达标的。 -未知说话人01 -05:53 -然后唱厅有1项,主要是那个,其实问题都解决了,但就是要带智能体,要智能判断,剩余工单要逐项的核查是否达标才能算结束。所以说虽然是处理了,但是要等到质检,其他指标都是达标的。然后还有1个有12项自行工作啊,智能添加的,就是也包括南中也的反馈,就是我们有些打接电话没有接到哈。然后他们也是,当周的现在目前的解决方案是,爱立信5G基站参数的调整试点,带观察效果哈,这个近期反映的就是有漏话,这种情况比较多,5G这1块。 -未知说话人01 -06:32 -然后那个畅想这块全部达标哈,就结束了。然后,那个超频站点的攻坚这块是是控制还是比较那个,有帮助哈。就是上周我们发现了3个超频基站,呃有2个原因是铁塔的开关电源故障导致电流过稳,所以说也及时的处理,就进行了1个恢复。然后还有1个就是传输光纤过大哈,这个维护部人员更换前厅后恢复,这个也是说把它解决了。然后旁站的故障的话也持续在也是处理也比较低。 -未知说话人01 -07:03 -然后专线护航目前来讲的话,118条专线我们目前的话有存量的73条的话,已经完成巡检56条,还有17条。然后未验收的工程已经建设的有45条全部进行了巡检。然后四公司要求是3月底全量完成巡检,目前17条的话,我们在月底能够按时进行1个全部巡检来完成。然后主要是那个涉及到存量这1块,我们立即力改都改了,主要还是涉及到光光缆路由的这块有抢台行动,我们会及时的上报给四公司。然后上周的话我跟机科里面的培训,客服出了问题主要还是他们内部的那个,就是他们的机房和机柜这块的问题比较比较严重哈,这块也是。今天我们会就是这1周的话这2天会把全量的清单,我们的问题客服处理的问题全量的发给客服经理,让他们知晓并与客户沟通。 -未知说话人01 -07:57 -然后当周故障的话是收到报障是33件,然后9件跟网络相关,主要问题还是光缆这块的问题啊。 -未知说话人01 -08:07 -然后东环呢也持续保持1个良好的1个水平,上周还在全市做了1个那个交流。 -未知说话人01 -08:14 -啊,金沙管家这1块重点,那个说一下二级,因为上周小总也安排了二级。二级的话,整个我们目前哈,就最新的数据,我们现在剩下20206年总共还剩下一百二十一站,这二百一百二十一站其实上周也是抓紧处理,已经全部下电了。然后目前累计完成拆除是四十六站,还有75站。七十五站预计的话,我们争取的话是在2周之内完成全量的拆除,然后进行只管专署以及电量服务费4月的1个调整。也就相当于在4月15号之前可以全量完成二级的拆除和下电和服务费的调整。 -未知说话人01 -08:55 -好,工程下层项目都很正常哈,除了那个他们那个,那个单子也也在补当中哈。 -未知说话人01 -09:06 -然后其他的就是也都是正常开展的。 -未知说话人01 -09:09 -其他就是没有啥子大的问题啊。 -未知说话人01 -09:12 -还有就是最后1个就是网络质量综合评估体系哈,虽然没有发文,但是已经已经给已经发下来了。那个我们内部先收到了,这1块我们会,嗯后面就是下1周的话我们会针对综合网网络运维评估体系进行进行1个那个进行1个分解和目标的1个制定啊,这边就没有起来了。 -未知说话人02 -09:46 -呃,25年剩余2项工作哈,呃,第1个花果山那个没得啥子变化的,第2个微托无人机哈,是说的在金南人组织验收以后,是花本周哈拜访唐书记进行推动,啊,是项目组的1个。 -未知说话人02 -10:01 -嗯上周完成了5项工作哈,包括嗯这种要求,建委哈对施工司管的框架下整理的工作清单哈,以及投资计划专项评估汇报哈,建委部答复是已经汇报,并且完成。然后市场那块终端占比问题哈,嗯是进行了1个全方位工工的1个重点的1个汇报哈,形成了1个5个方面哈制定了具体的措施哈,嗯解决问题,最终又提升啊,答复是已经进行了专题研讨汇报。嗯,正中安排的收入地图和行业中心的收入地图哈,是各中心已经完成,并且经嗯要求进行了提交,啊,中核集团。嗯,打印机哈那块是跟局科到现场办公室沟通以后哈,现在已经是收回中国国,啊专门为我们嘞调度表哈预留1.1元个打印机哈。同时啊那块我们也在思考哈如何确保哈,了解了他们日常需求的嗯打印数量哈,嗯打印情况以后哈,嗯我们在周边的哈打印店也进行了一些洽谈。 -未知说话人02 -11:04 -嗯,最终他们的价格偏差还是很大,有十倍以上。啊,最后我们嗯跟建,跟那个叫啥,整整套是吧?啊,整套。啊,整套。沟通以后,到时候我们去试,他有需求的时候,我们陪到一起去试,哈,确保质量的情况下,哈,我们呃提供1个相当于外派点,哈,进行1个保障,哈,确保那个招投标的打印,嗯,不影响招投标。嗯。 -未知说话人02 -11:28 -然后,那个气象。 -未知说话人03 -11:30 -那个事情给那个行业中心和那个,哎,运输中心都说,都是个人自己要晓得哦,下回不要再给我,再给我以那个理由,再说去答应你有问题哈,那都是个人的问题。 -未知说话人03 -11:43 -请你们通知到位,好吧。 -未知说话人02 -11:48 -然后有7项工作人,在推动过程中。第1个是前期交办的预期数据中心哈整体包包装哈,那块儿是说政府要拿出方案,补贴方案以后的话,嗯,再汇报。嗯,无人机哈那个需求哈,结合到落实成为合川本地的1个方案,目前没得啥子变化和之前的反馈。嗯,然后基建工程2个宣传工作计划,中国那边在推动基建工程2个是是嗯,留言后哈,目前还没下发下发以后,我们在优化制定。啊,宣传工作那块儿目前说之后哈,争取本周完成1个,那个嗯推动啊,因为工作人兼职的原因啊。然后那个嗯渠道那块儿呢,有1个产能评估哈,那块儿是计划,嗯开了宣传会哈,嗯还在梳理方案,最后是结果情况,预计在本周进行1个专题汇报。嗯,专线发展节奏的问题哈,希望整体思考,整体将。 -未知说话人02 -12:40 -那个数据进行了展示哈,然后嗯体现的是整体情况,本周专题汇报。嗯,然后分局是那个资产优化的运输类的话,是形成了那个清单周报。嗯,然后那个每周与分局进行沟通,形成1个清单的1个呃计划,啊具体的优化方案,嗯完成以后哈进行1个完结,啊,那是在跟进的效果。呃,综合当前几点有1条有些做的工作哈,请大家知晓。呃,3月20号我们也召开了分公司的话,呃工会主席面对面哈进行了一些沟通,1个是我们的工会经费进行1个公示。啊,因为整个工会经费哈从市工会到市公司哈再到分公司都有所压减,啊所以今年我们需要一记严考用更少的钱哈办更好的事儿哈。然后主席给我们做了一些具体指引哈,大家有啊积极发言。同时今年我们在本周需要上报市公司的软性工程哈,嗯其中我们已经确定的啊可以上报哈目前沟通的哈,包括我们更衣室哈包括我们食堂的改造。食堂改造那边的话,嗯按照之前的方案是大概是二十九点八万哈,然后我们将会进行1个审计。呃结合到大家用餐的时间哈,我们提出的建议是5月哈结合 -未知说话人02 -14:54 -更替和修补。呃,同时呃,市公司呃呃,和分公司哈,我们做了解以后哈,也是收集大家意见以后,包括啊,我们准备呃引用那个自饮机的方式哈来解决我们用水的问题哈,呃,送水啊那些呃机器也坏了,啊,自饮机那块儿的话也报了市公司哈,对批准,啊,等到去批复以后啊,我们就可以引入,大概在下半年的时候哈,啊,我们就可以用自饮机哈进行饮水,同时也节约成本。 -未知说话人02 -15:21 -嗯,幸福一家一的活动哈,全年同时组织了六场啊大型活动啊,包括3月的运动会啊,4月的足球,5月的羽毛球,6月的篮球,10月的气排球和10月的乒乓球。啊,分公司对于除了参加四公司活动以外哈,整体还安排的有一些重大节假日的一些活动,包括近期我们啊在思考筹备的6月二中节啊的1个活动,以及我们那个啊班组活动哈,班组活动那边的话也是整整出了大家的意见哈,可能今年我们也在思考是不是搞1个我们分公司内部的班组之间的啊嗯气排球比赛啊,通过那种形式哈来解决那个啊班组各自开展活动哈那种另行开展的那个方式哈,然后根据的一些啊就是在1个思考过程中。嗯同时重点汇报一下周五哈计划的是第4届体育嗯文化节,啊我们河川将以河川佳节哈穿越巅峰,一起新嗯一起新城,然后动要赛场哈1个主题口号,结合到我们泡竹汤哈啊出名的1个形式,通过我们方正和演员的演出哈,将我们啊深情的河川河川的那种啊快乐啊热情的那种精神面貌哈展示给全市的啊兄弟公司和领导 -未知说话人02 -17:08 -啊,原来黄翔啊,他们都是因为啊有伤在身啊,无法参加。啊,他们觉着不行啊。啊,他不得行。 -未知说话人02 -17:17 -这是哪儿受伤了啊?呃,他肌肉拉伤。 -未知说话人02 -17:23 -呃,没法成交吗?哎,对,他不敢跑,对吧? -未知说话人02 -17:27 -方向啥情况啊?呃也是。 -未知说话人03 -17:31 -2个2个主力选手都不得行哦,那那个今年是那个有点儿具体哦,平时主持体格。 -未知说话人02 -17:38 -呃,他是那么跟我说的。 -未知说话人03 -17:41 -我29,然后他们七八。 -未知说话人03 -17:44 -看得起啊,我说没看得起黑老婆呀。 -未知说话人02 -17:48 -啊,他不敢不敢爆发爆发性的发力,那种。如果是,如果是确实受伤了,我觉得吧,就不能勉强,因为我。 -未知说话人02 -17:58 -好,然后完了以后的话,就是需要各部门儿积极配合,特此请示领导。1个就是我们方阵哈,目前除了我们参赛的队员儿和我们,呃和本人哈作为方阵队员儿以外哈,可能我们容纳到20个人来进行那个活动开展。嗯,再加上领导和1个举牌手和1个那个形象,嗯大师以外,我们一共需要25人。好,我们确定的呃报名人数以外的话,我们还差9个人,还差9个人的话看,呃结合到那个一线生产工作嘞繁忙哈,嗯那个过度,嗯看是不是各部门儿再出2个人哈。啊,构成我们8人的方阵哈另外AI运输中心出1个人哈,我们总共目前差9个人。啊,确定人员的话需要今天确定,确定以后我们需要给他们购买衣服。啊,购买衣服以后周二到周四进行排练,啊就是下班以后,然后星期五都去参加活动。好,那块儿的话看领导觉得合适那种分配。 -未知说话人02 -18:55 -1个男生整起来。 -未知说话人03 -19:00 -电脑都没地方,每个部门2个人该出出来,是这个想法。 -未知说话人02 -19:05 -嗯,周二到周四要拍的呀。 -未知说话人02 -19:07 -买了几件参加哈。 -未知说话人03 -19:10 -不是,确实跟到2个人都看不出来,跟我说。 -未知说话人02 -19:15 -性别性呢?呃,不行。 -未知说话人03 -19:19 -大家说清楚有衣服的。 -未知说话人02 -19:23 -啊,同时呢,参加以后,介会我还上决赛哈,嗯,和往年一样,积极参加的还是有一定的绩效的,1个加分儿,只要参加,方阵的是每人一分儿,啊,获获得名次的啊更多一些。 -未知说话人02 -19:36 -好,第2个都是嗯,请知晓今天的主题教育哈,公司也是啊已经发布了第1期的教育简报,啊总体来说都是第1期就是公布公司哈,啊在召开了主题教育的专题的1个那个啊工作。 -未知说话人02 -19:51 -好,第2个基层党组织哈,就是上次我们也开了哈,截止到3月15号,所有的基层党组织也开展了学习,后面我们再按照其那个动作来执行。好,因为呃主题教育,请大家知晓动作。第2个都是嗯,市公司也要求哈。 -未知说话人02 -20:06 -嗯,招待费哈要进行1个信息公开,哈,那块儿公开的对象和范围啊,都是本单位嗯管理层的那个嗯班子成员哈,那个范围哈。所以前期我们也是通过邮件的方式将25年啊,啊招待费的形式进行1个发布和公示,也完成了向纪检组织的啊报备。好,请领导知晓哈,这项工作已经完成。等我问一下,它那个公开是每年公开1次吗?还是每1次都要公开呀?每年1次,现在每年。 -未知说话人02 -20:38 -好,然后那个25年整体招待费使用的情况哈,嗯那个嗯也嗯做好做个汇报哈,25年哈,我们整体招待费的使用是超我们年初预算是14%哈,其中综合部哈是逐年增长哈,24年、25年哈逐年增长,嗯增长去非常明显哈,超预算也非常多哈,我们综合部去年超了107%,好所以26年的话也给综合部调整了预算哈,其他部门因为涉及到成本的管控哈,目前没有调整预算,嗯26年使用来看的话哈,目前也是综合部哈,嗯以及我们的市场部,市场部因为年初的渠道大会哈,啊整体它的那个时间节奏可能不太一样哈,包括我们超改分局和南京的分局哈,相对使用较快哈,是超过了时间进度,好其他一些部门的招待费预算力度啊,是是在进度范围之内,好可能更多的嗯要进行嗯特别提醒嘛,我觉得提醒啊整体可以嗯其实是有钱哈,在那个1个范围之内可以合理的规划,按时间进度哎,安排更多的同志哈,参与的同志都可以报哈,包括嗯因为之前我们也盘点的哈,嗯那个包括安运输中心 -未知说话人03 -22:00 -呃,情况的1个汇报和通报。看到的,给我说一下,就是关于政企部啊,因为我们的整个对外招待,集福来政企部啊。 -未知说话人03 -22:10 -这起步那边的话呀,因为有些重要单位又集中在个别的客户经理那边儿。 -未知说话人03 -22:16 -哦,所以说这种啊,要经历比较统筹。 -未知说话人03 -22:20 -那个统筹安排,你不能说1个客服经理。 -未知说话人03 -22:23 -太多,是吧?然后比如说,有像那种的,比如哎,哎,服务中心的那边的街坊啊,那些也可以,就大家分到分到来,哦,那边你跟和谐商量,把那个,就说实实在在去,是真实发生的费用啊,尽快的解决和。 -未知说话人03 -22:43 -不要拖,然后据我了解,去年子还有些费用都没还没完。 -未知说话人03 -22:47 -今天是油来了,是吧? -未知说话人03 -22:49 -哦,那个事情呢,我认为它是个,不是个啥子大事情,不需要喊我们那个公公司领导市民来操心的那个事。 -未知说话人02 -23:01 -嗯,然后河川区发了1个通知哈,叫做河川区担当作为先进集体和先进个人。因为之前我们也报过河川强区啊企业的先进集体、先进个人,好目前还在区领导那里已经,嗯提交区领导1个,因为目前区领导还没得指示。好同时收到弄了1个通知,嗯那个文件的话相当于之前他的那个我们区的文件内容是,嗯区级的部门儿,啊单位以及区国资委啊管辖的企业。好因为今年呢,领导班子也特别提到计划我们要逐渐在河川区啊加强,嗯,叫做呢嗯增强我们区的影响力。所以我觉得那个可能也是1个点说,我们也单独进行了一些追踪和嗯询问哈那个下发单位哈,不是区委办啊,府办,嗯区委组织部以及区人力社保局啊,他们组建成了专班。好联系人是委办1个通知和人力社保局哈,看到他们他们是经办的那个负责发文的同志。好相当于嗯经过咨询1个,嗯争取到相当于我们,嗯如果有意意愿参加的话也可以参加。看了下前一届的那个评选名单呢,没得那种我们那种企业哈,都是政府的一些组织和机构。好那个 -未知说话人02 -24:23 -首先,因为它那个报名简单啊,就是报材料嘛,我们来签头写,就说看给不给合川移动1个资格啊。有那个资格的话呀,相当于可以差异化地与竞争对手拉开差距。目前竞争对手应该是对那个还是没有引起重视也没有动。啊,青云集团有三十多名。 -未知说话人02 -24:42 -有了名额嘛,去报嘛,啊,这是他的程序哈。嗯,要求的是3月31号之前哈,也是1个网上申请,需要进行1个报名。啊,所以用那个事情啊,下面都。 -未知说话人02 -24:53 -的回报。 -未知说话人02 -24:55 -啊,以上是综合部的汇报。 -未知说话人03 -25:00 -他达到啥子水平才能够担当? -未知说话人02 -25:03 -啊,它跟我们平一样的,都是嗯。 -未知说话人02 -25:08 -那20个,类似于20个方身,都是文字型的。 -未知说话人02 -25:15 -不是。 -未知说话人02 -25:17 -就说工作突成绩突出,认真负责,类似于那种那种的,他都是套话。所以说那种东西,它主要还是在于。 -未知说话人02 -25:27 -给不给你的革命呢? -未知说话人02 -25:30 -负责的是尾巴还是社保局?他们是联合工作组,通知里头有尾巴和社保局2个联系单位,应该是他们2个都在。 -未知说话人02 -25:39 -啊,相当于突出的评选都是政治忠诚可靠啊,担当过硬啊,都是套话这个。套话。哎,所以那个工作成绩突出啊,什么,嗯,整体形象好啊,然后那个纪律严明,就像强区那个一样,实际上他也是那种历史套话。啊,所以说那块儿的话,我个人觉得还是从今历史判断来看,还是要有有推荐,然后你再去报,不然的话确实有点浪费。 -未知说话人02 -26:06 -啊,那块儿是委办室叫陈红同志,啊,然后人力资源局是叫崔磊同志,也跟他们联系了,他们说他们都是发会议的,具体经办呢。 -未知说话人02 -26:16 -收入跟那个差距。 -未知说话人02 -26:21 -嗯,没得,没问到。你要去了解噻。哎,都是可能看那块儿是正气气了解。就是有有有。行政区可能都是,就是讲它那边主要那个方面,是吧?然后它那个是哪1个。 -未知说话人03 -26:33 -尾巴是是那个。 -未知说话人02 -26:37 -对的,我都说建议争取跟能联系,因为我们问了他们的,他说我是发会议的,我不清楚,让我鼓捣他去问呢,对不?也不太高兴。嗯。 -未知说话人03 -26:47 -那个我们没得好大好大的那个的话,我们去花那个时间也没得好大意义的。学校的练习有。 -未知说话人02 -26:55 -我印象中好像,那是发通报的时候。 -未知说话人03 -26:58 -好像有1个员工还有个,我说你们去了解一下,如果是那种的话,我们也可以跟这边的领导先沟通一下。 -未知说话人03 -27:06 -但是我现在不晓得是哪个领导在负责那个事儿。 -未知说话人03 -27:09 -因为你至少是委办主任那那个层面嘛,或者是或者是分管那个领导嘛,去单独去了解,好吧。他们如果,如果有那个的话,我们去去争取多,确实,别个都是拼的区头的,啊,我们也不用花那个时间。 -未知说话人03 -27:25 -是吧?了解是吧? -未知说话人03 -27:29 -今儿不是聊天。 -未知说话人01 -27:32 -那个你那个整个三期要的第2期的工作做1个嗯,项目汇报。现在是拆迁方面,我们整个刚刚去在了解的,我们一些那个拆迁,目前已经完成了1145。好,整个还有呢是。嗯,拆迁方式我们那个通过当通过那个注册那个单位上,那么逐步好那个,嗯,做510000的价值提升,都是他原来的通货,没有达到50的我们提升到50。好,那么那个会议还有里面有好多个成员都可以说那个收入。好,那么还有1个都是,就是我们办理那个比如说新业不拆迁都是2次通货,15.1元个月。我们做了2个2次通货,都是1个1个那个整体层面的1个拆迁。好,那么党建网拆迁都是我们的那个,那个新增的通货。好,包括有文化套餐,好做了那个他会一笔一笔进行进行算。好,就是一季度的整个整个拆迁是主要的,还是在通货场景,我们原来的通货没达到50的,做一些新的价值提升,说完成率啊,成绩比较好。那个是整个拆迁1个情况。好,那么在在整个历史融合在在这些包括上面呢,那个会议的那个政府那个啊,还是继续 -未知说话人01 -30:23 -嗯,单位上集中做的啊,是和前方在那个,还有京东他们说也也有一些社区做的啊,那种家庭的清洗,和我们那个相结合嘛,两种方式做点看,看哪种效果好。因为像在社区做的啊,我们就像比如说像区区委组织部家属院,建设要家属院小区,啊那种和单位客户比较集中的小区啊,我们去开展一些,一些单位上的客户,一些服务工作。啊那么在也是做的啊,本周的1个做的情况,本周做的啊一共开展了五场,啊那个落实相对较好,那个业务量的话也还是没有达到我们想要的成果好,特别是在在落实上面的签约好,其他的方案的话,集资签约的板块的话,那边我在本周啊还要进行1个加强。 -未知说话人01 -31:04 -啊,商客市场1个情况,整个整个商客的话,到了我们到了2月份,收入是88.5,好比上个一期增加了10000。好完成较好的是超改,那个城北和南京改增幅都上了20000,好一家农家乐出现了负200块钱的1个情况。啊,整体个商客的1个规模情况和那个都还是比较好。啊,那个在价值拓展方面的话,我们是完成了115。好同的是第6和下一期我再把其他公司做1个展示。因为因为那个我们我仅分全县的问题,目前只能看到个的。好排名是找上市公司个的。好,我下一期把那个整个全市的1个排名,好做1个展现。 -未知说话人01 -31:40 -那个是整个价值拓展的1个情况。 -未知说话人01 -31:44 -啊,他那个重点的工作啊,都在商客经理方面的话,整个,啊,目前我们还有2个人。嗯,那是以周为单位,周为单位,曾会流的话,那个星期他的他的那个基础业务只有两笔,所以说相对于较差一点。我们是以周为单位在在统计,我下期把累计的嗯按累计来嘛。 -未知说话人01 -32:05 -它那个是整个材料会吧。 -未知说话人04 -32:13 -只需要。 -未知说话人04 -32:15 -我份工作还有没得? -未知说话人05 -32:20 -在种。 -未知说话人05 -32:22 -第1次建委那边哈,那个几十铺哈。 -未知说话人05 -32:25 -之前有个那个。 -未知说话人05 -32:27 -想的也。 -未知说话人06 -32:31 -那个。 -未知说话人06 -32:33 -咸鱼粉。 -未知说话人06 -32:36 -每个单位长一些,大约啥子? -未知说话人06 -32:39 -我先模仿一下。 -未知说话人05 -32:42 -第2关,然后再次接放大,是那样的。 -未知说话人05 -32:47 -就可以上清华,反正第2天你已经理了一些哈,我觉得能够把那个。 -未知说话人05 -32:51 -公司人也很少的。 -未知说话人05 -32:55 -进一步结合地方的改造。 -未知说话人05 -32:59 -那个。 -未知说话人05 -33:00 -厨房的一些。 -未知说话人05 -33:06 -第2就是,建委今年那个综合评估体系已经出来了。 -未知说话人05 -33:11 -不知道怎么了。 -未知说话人05 -33:12 -把前面。 -未知说话人05 -33:15 -疗效。 -未知说话人05 -33:19 -啊第2个关于正畸康复,包括运输,已经7号就说了,第1个点。 -未知说话人05 -33:24 -上海人多。 -未知说话人05 -33:26 -经理要当天处理,及时回复。 -未知说话人05 -33:30 -像刚才,中国不同宝的。 -未知说话人05 -33:32 -那个建伟部主儿,肯定是收到,跟到给我回复,把事情是完结了。 -未知说话人05 -33:37 -啊,我们这几块儿的经理基本上也不在那个板块的站。 -未知说话人05 -33:41 -哦,也不好意思啊,我在会议上说了,私下也说了很多次了。 -未知说话人05 -33:45 -要养成那种日日日清、日清日结、日结日高的好习惯。 -未知说话人05 -33:51 -就算没完成,阶段性的来沟通一下儿,有什么问题困难,我们一起来想办法推进。 -未知说话人05 -33:57 -你不能1个事情,有些工作一说几个月都还是还没做。 -未知说话人05 -34:04 -回复工作是首先回复安排工作的领导。 -未知说话人05 -34:09 -而不是去肉包的时候会不丰富。 -未知说话人05 -34:12 -我要养成好习惯,动作要推得早。 -未知说话人05 -34:15 -不好意思啊,我都不知道得罪儿童怎么。 -未知说话人05 -34:18 -我都当是我的嘛。 -未知说话人05 -34:21 -并且恢复工作一定是要量化的。 -未知说话人05 -34:24 -要有结果。 -未知说话人05 -34:26 -要有措施,要有成效。 -未知说话人05 -34:33 -第2,关于上课这个指标,我也说了很多次了,我们没看到具体的保障措施。只有最后1周了,早上上班的时候也跟廖经理做了沟通,需要拿出具体可行的方案。 -未知说话人05 -34:47 -那个1月5号那天,我就说了,是结合专线。 -未知说话人05 -34:51 -助账账客单位的业务发展。 -未知说话人05 -34:56 -各项指标都会好,方法我也教了,也没看到动作出来。 -未知说话人05 -35:01 -你没看到回复。 -未知说话人05 -35:04 -请今天要给我1个具体的回复:哪个能保证那项指标达成? -未知说话人05 -35:13 -重新想啊,其他东西。 -未知说话人03 -35:19 -关于那个市场部的工作说。 -未知说话人03 -35:22 -3个方面,第1个方面就是。 -未知说话人03 -35:26 -整个1个资料的1个存储安排,就是。 -未知说话人03 -35:29 -1个是本季度,本本季度的1个1个1个收官之日。 -未知说话人03 -35:34 -刚才谈电脑,按照目标来推。 -未知说话人03 -35:38 -治疗的第2个,像小方面都是,基本上那个周也是。 -未知说话人03 -35:43 -最后1周了。 -未知说话人03 -35:45 -本本季度都是新区营销不厚,我觉得完了过后还是有一些按部就班的一些,大家有点皮,包括那个整个业务推进,市场方面也比较也比较皮软。 -未知说话人03 -35:57 -呃,请商户提前谋划。 -未知说话人03 -35:59 -二级部的1个业务活动,那把生日。 -未知说话人03 -36:04 -不能说二季度是传统的淡季。 -未知说话人03 -36:08 -不管是我的签约也好,商人也好,H也好,还是那个AI军团也好,那个业务活动的那个升职还是要要造起来哈。 -未知说话人03 -36:19 -电脑上不提。 -未知说话人03 -36:21 -第2个方面就是那个,呃上周那个根据我看那个能力地图收入地图已经已经发过来了。 -未知说话人03 -36:28 -呃,请那个商务部去到中心。 -未知说话人03 -36:32 -馆主。 -未知说话人03 -36:34 -本周内,把涉及到销售能力的几个事情的进度。 -未知说话人03 -36:40 -给我做1次报告,1个是招聘的情况。 -未知说话人03 -36:44 -第2个是农村渠道的。那个 -未知说话人03 -36:47 -进度,第3个是上周营销那个事情。 -未知说话人03 -36:52 -他没在1个。 -未知说话人03 -36:53 -具体的方案,西消队伍建设和转型,本周内给我1个这3个事情。 -未知说话人03 -37:00 -做个1次汇报。 -未知说话人03 -37:03 -3个字,蚂蚁多。 -未知说话人03 -37:06 -满意度这1次满意度的测评结果,上周五,林哥说了个话。 -未知说话人03 -37:13 -我当时问,还是觉得这个事情,不管从我还是。 -未知说话人03 -37:18 -商务部和政企部,这个工作确实是。 -未知说话人03 -37:22 -有烛火。 -未知说话人03 -37:27 -这次是那个,都是,应该是最后,就是按照老的方式来测评嘛。 -未知说话人03 -37:33 -下1块就是用啊,用后机评来测评啊。 -未知说话人03 -37:36 -3月份还有。 -未知说话人02 -37:38 -有前期的,没就会咯。但前期不会在错。 -未知说话人03 -37:44 -所以说这个事情,我觉得,但是真的要反思一下儿。 -未知说话人03 -37:49 -满一度的工作,你是做了吗?还是做到了? -未知说话人03 -37:55 -正起步之前,都是我们满一做了1个1个拉分项,1个开卷考试。廖经理是不是思想上松懈了?因为除了夏总参加的客户会,我看到廖经理之外,其他次的客户会廖经理都不在。 -未知说话人03 -38:11 -都是1个,都是1个货开卷儿炸。 -未知说话人03 -38:15 -我觉得这个事情你应该是可控的,你才不,你才不关注这个事情。 -未知说话人03 -38:23 -补充句啊,近期不要主观对这个。 -未知说话人03 -38:27 -除廖经理以外,你们哪个主管对郑启满队负责? -未知说话人03 -38:31 -我支持好看点吧。 -未知说话人03 -38:34 -我上次上次不是跟廖经理说的,如果说货款有,这个我们就抓起来啊,让他亲自抓。 -未知说话人07 -38:50 -麻烦等会儿,那个。 -未知说话人07 -38:52 -我觉得现在就是叫啥子啊,亡羊补牢为时未晚,这个事情现在还有。 -未知说话人07 -39:00 -还有时间,但是我觉得市场不和自己。 -未知说话人07 -39:05 -在在抓这个工作的时候,老师出了问题才重视,才才反转,才抓微笑曲线。我觉得这种工作方式和工作态度,你说我们要反思一下。 -未知说话人07 -39:17 -另外就是关于那个,就是客户的工作,中中国的时候我也跟跟那个。 -未知说话人07 -39:24 -财务部的领导做的够好,嗯,有几点。 -未知说话人07 -39:28 -也是同步市场部,也是给项目做1个做。 -未知说话人07 -39:32 -就是那个第1个,都是八零的两率。 -未知说话人07 -39:36 -就是到3月底,特别是3月底,就这个话,关键门儿说,市公司会有统一。 -未知说话人07 -39:44 -是不是会通用?所以说,就是它的满意的样板儿。 -未知说话人07 -39:48 -下来就是你跟那个小付一起,在我办公室我们讨论一下,满意客户满意的样板一定要按照四公司的规定来。 -未知说话人07 -39:58 -第2个是对于不满的客户。 -未知说话人07 -40:03 -它有2个时间节点,1个是五点半,1个是五点五点半过后。 -未知说话人07 -40:08 -还有五点半有几个操作的1个,有1个有个技巧。同时不满的客户要报警客户。因为现在不是这个指标不是KPK考核集团的,但是啊总是要求的,要考核分公司的。所以说这个事情,在操作上面是有空间的。 -未知说话人07 -40:32 -然后那个80200000000,我也看。 -未知说话人07 -40:36 -那还是不要,我们目前是属于一类的,到属于第2的左右。 -未知说话人07 -40:42 -也是也是不是低于全市的平均,所以说我觉得这个事情也是没有快速的把市公司的有一些技巧性的动作启动。 -未知说话人07 -40:58 -好,在考题上面都是八零两率,是有打印后面的。 -未知说话人07 -41:04 -这个是可以,是个是可以来平衡的。 -未知说话人07 -41:08 -好,这块儿的话,就是请那个。 -未知说话人07 -41:11 -商户,把每天的那个,就是每天,就是到到月底之前,每天微信上面出个日报。 -未知说话人07 -41:21 -发送给发给我和小红嘛。 -未知说话人07 -41:25 -然后,然后高关于考核,我也大概问了一下。 -未知说话人07 -41:29 -嗯,法律两界还是有那个,就是有可能有比较。 -未知说话人07 -41:33 -有可能又不高,也没说定。今年的KPAN考还基本上定了,是工信部的有责。 -未知说话人07 -41:40 -要考KPI啊,还有就是你的网率,就是跟满意度相关的,客户不走,就是按照那个观点,驾驶提升,就你的网率不高于去年,你应该是个,你应该是会拿个KPI来考核。 -未知说话人08 -41:57 -应该是1个,就是。 -未知说话人08 -42:00 -目前都是定了的,就是2个考核:1个是工信部有责,1个是。 -未知说话人08 -42:04 -都去。 -未知说话人07 -42:06 -8.2月是8.2月是有有打印。 -未知说话人07 -42:11 -大概是这个样子,所以说把那个考核的情况你进一步再去摸细,还有那些都是可以可控的操作的一些动作。 -未知说话人07 -42:23 -跟子公司的话。 -未知说话人07 -42:27 -对吧?商务部都说的3个方面,商务部的话,我们最关注是把运动会、本周运动会。 -未知说话人07 -42:33 -对朱子豪。 -未知说话人07 -42:35 -嗯,我是星期跟下午到了,我要星期星期星期三、星期四出差,星期五到时候。 -未知说话人07 -42:43 -然后有啥事情,就是给我报告的事情。如果是来点计划,就明天明天,明儿下午,反正说几个事情。 -未知说话人07 -42:53 -给我汇报,如果来不及的话,都都用视频。好,星期星期五上午。 -未知说话人09 -43:06 -红火亮的樱桃。 -未知说话人10 -43:11 -KPI。 -未知说话人10 -43:13 -刚才会上我们也过了1遍,按照我们定好的目标,确保完成。 -未知说话人10 -43:20 -好,马云的话。 -未知说话人10 -43:22 -具体的一些情况,请你们这个会后。 -未知说话人10 -43:27 -1个详细规划。 -未知说话人10 -43:29 -啊,我想强调的是。 -未知说话人10 -43:32 -自信的。 -未知说话人10 -43:34 -我觉得,不管是部门儿还是。 -未知说话人10 -43:38 -不管是部门经理,还是主管,还是具体抓工作的人,和每1个一线的同志们,大家都要有那个执行力。 -未知说话人10 -43:47 -事情要办法,事不做好。 -未知说话人10 -43:52 -要知道怎么做,但是就是不去做。 -未知说话人10 -43:56 -那我觉得那是我们公司至少。 -未知说话人10 -43:59 -我们班子几个人是,我相信都不认可的那种工作作风。 -未知说话人10 -44:10 -好,还有4公司的那个年度考核。 -未知说话人10 -44:13 -觉得几个部门主要是去了解情况啊,那个提前也给你们给说过几次。 -未知说话人10 -44:19 -啊,如果有。 -未知说话人10 -44:21 -对我们影响比较大的一些病毒,或者是。 -未知说话人10 -44:25 -你要提前讲,不要等到起那个,别个都定好了再来跟我说,夏总,那个考核是今年子我们要照。 -未知说话人10 -44:34 -对,我说很。 -未知说话人10 -44:37 -我们把工作做在前面,你们细细了解。我其实有点担心2个哈,1个是。 -未知说话人10 -44:43 -1个叫啥子啊?那个阿布咖啡。 -未知说话人10 -44:46 -那个全市,那个集团公司有1个啥子阿普提升,啥子考的,我不知道他怎么考,我不清楚。 -未知说话人10 -44:53 -很默契。 -未知说话人10 -44:55 -提升或者改善,或者啥,阿婆的啥子啥子。 -未知说话人10 -44:58 -我觉得那个对,我我们公司,我不知道说不有。 -未知说话人10 -45:02 -我们要去,不管哪个样子,我觉得考核,我们其实我们不要求上市公司好像要要要对其他公司有啥子。 -未知说话人10 -45:10 -我要去想那些事情,但是至少是比较公平的。我们通过努力,我们可以去进行1个得乎点儿改善的。 -未知说话人10 -45:18 -最主要单位。 -未知说话人10 -45:20 -有提醒过,我我那边的话也会。 -未知说话人10 -45:24 -好,2个分管领导里面的话,也跟他们2个主要部门嘛,政企部跟。 -未知说话人10 -45:29 -他说:“我们加强力度嘛,然后如果确实有有必要的话,哈,我们可以去。” -未知说话人10 -45:35 -也是。 -未知说话人10 -45:36 -好,那些沟通。 -未知说话人10 -45:39 -是1个年龄的1个非常重要的一点啊,不要开始我们处在起跑线上,那个很麻烦,不像我印象我们当时那个近视还在有1年,说我们那个啥子。 -未知说话人10 -45:50 -心也不靠海,是吧? -未知说话人10 -45:53 -开始都是主要在细胞线上面,啊,最开始为啥子不够通行?有那种卡位口结和那些。 -未知说话人10 -45:59 -是吧?我也相信,市公司他也应该会考虑分公司的整体情况,然后统筹来,至少大家都能够调高摸得度,是吧? -未知说话人10 -46:14 -今天的周会就到这儿结束。 \ No newline at end of file diff --git a/agent_memory/uploads/chat_2b0479c17171/1782271550532_1_transcript_704.md b/agent_memory/uploads/chat_2b0479c17171/1782271550532_1_transcript_704.md deleted file mode 100644 index ee1282f..0000000 --- a/agent_memory/uploads/chat_2b0479c17171/1782271550532_1_transcript_704.md +++ /dev/null @@ -1,2764 +0,0 @@ -# 会议704 - -**会议时间**:00:00:01 - 02:08:54 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8 - -## 会议记录 - -**[00:00:01] 发言人 0**:来吧。 - -**[00:00:02] 发言人 1**:嗯上。 - -**[00:00:04] 发言人 2**:周的话能再对一下,然后定开这边上周跟王总他们。 - -**[00:00:16] 发言人 2**:数次,然后云计销售部这边也会协调一起去跟进一下,然后追加产品。 - -**[00:00:23] 发言人 2**:这边上周报的是217万的地。 - -**[00:00:30] 发言人 2**:收入对应的毛利都是按30%去做的一个现在的话目前已经完成了79万的收入。 - -**[00:00:39] 发言人 2**:高风险这边我觉得还有两个星期大后面冲刺的一个情况,上次沟通之后放了两个项目,一个是南案的运维。 - -**[00:00:54] 发言人 2**:一个就是孟国用,这两个是可以接手保络。 - -**[00:00:59] 发言人 2**:像目前总这边是1480万的收入,145毛利千头,这边没什么变化。 - -**[00:01:06] 发言人 2**:现在这样看的话,毛利是386万的低风险。 - -**[00:01:12] 发言人 2**:今年的用户是在。 - -**[00:01:14] 发言人 0**:78万左右,我就在在这个边边上半年这个半年转正边上,还是很艰难。 - -**[00:01:26] 发言人 0**:你看都是骑系统,这很麻烦,统毕都单单就。 - -**[00:01:33] 发言人 1**:这么情况。 - -**[00:01:36] 发言人 0**:好吧。 - -**[00:01:38] 发言人 2**:你这边没有。 - -**[00:01:38] 发言人 0**:而且我们打猎我们做的小,你家紫薇他们卖这个显卡卖的,我操人家半年几千万的精利润的,我操。 - -**[00:01:48] 发言人 0**:所以说你集成你也做不过人家,我操这我们只有好容才能对标,好容是做大集成的也没有用,我操那人家做动辄几千万,动辄雪求说,你人家这个做不过,这集成也做不过,他们也是过货,但是过货人家做的也比咱们没办法好。 - -**[00:02:10] 发言人 2**:然后现在全年预估有3.2,主要是因为协同营销物流卡这边近期要签一个七千多万的项目,所以。 - -**[00:02:21] 发言人 2**:具体跟工这个项目的情况再进行调整,我这边数据会议今天弄完之后给。 - -**[00:02:31] 发言人 2**:其他就没有开始吗? - -**[00:02:33] 发言人 2**:他有个七千多。 - -**[00:02:35] 发言人 0**:万的计算。 - -**[00:02:35] 发言人 2**:要计收吗? - -**[00:02:36] 发言人 2**:今年是说要准备计收,但是合同现在还在谈。 - -**[00:02:41] 发言人 0**:他。 - -**[00:02:42] 发言人 2**:是分批次发货的,这个。 - -**[00:02:46] 发言人 0**:月记不了好。 - -**[00:02:51] 发言人 2**:我这边就我之前看。 - -**[00:02:57] 发言人 0**:好,继续。 - -**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。 - -**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。 - -**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。 - -**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。 - -**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。 - -**[00:03:57] 发言人 3**:现在累计已经收到了1297. - -**[00:04:02] 发言人 0**:那我们没电。 - -**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。 - -**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。 - -**[00:04:12] 发言人 3**:所以说他这个。 - -**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。 - -**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。 - -**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。 - -**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。 - -**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。 - -**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。 - -**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,不垫资,预付30%,发货前70%。 - -**[00:05:15] 发言人 3**:目前谈的是这么一个。 - -**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。 - -**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。 - -**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。 - -**[00:05:34] 发言人 0**:有到期。 - -**[00:05:35] 发言人 0**:几个点。 - -**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。 - -**[00:05:49] 发言人 4**:个要走什么东西。 - -**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。 - -**[00:05:58] 发言人 0**:个点是另外的。 - -**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。 - -**[00:06:03] 发言人 3**:胡松还没找你,但是。 - -**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。 - -**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。 - -**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。 - -**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。 - -**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。 - -**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。 - -**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。 - -**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。 - -**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天豪去跟你沟通通。 - -**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。 - -**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗? - -**[00:07:29] 发言人 3**:那谁接呢? - -**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。 - -**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做? - -**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。 - -**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。 - -**[00:08:04] 发言人 5**:我们今天把超就算快。 - -**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。 - -**[00:08:11] 发言人 0**:两种方案的成本就不太一样。 - -**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。 - -**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。 - -**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。 - -**[00:08:49] 发言人 0**:放碑。 - -**[00:08:59] 发言人 3**:的。 - -**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。 - -**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。 - -**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。 - -**[00:09:26] 发言人 0**:天天去管理。 - -**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。 - -**[00:09:41] 发言人 5**:有有多少人,那这个个。 - -**[00:09:46] 发言人 0**:个这。 - -**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。 - -**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。 - -**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。 - -**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。 - -**[00:10:16] 发言人 0**:不并不大是吧? - -**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个? - -**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。 - -**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。 - -**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。 - -**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。 - -**[00:10:54] 发言人 3**:好,那我继续。 - -**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。 - -**[00:11:17] 发言人 3**:然后周俊杰和何。 - -**[00:11:20] 发言人 0**:丽湘配合。 - -**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行? - -**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。 - -**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。 - -**[00:11:40] 发言人 3**:让紫薇看一下。 - -**[00:11:41] 发言人 0**:给紫薇也看一下。 - -**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。 - -**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。 - -**[00:11:50] 发言人 3**:因为你这。 - -**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧? - -**[00:11:56] 发言人 0**:说实话我们就帮忙居多。 - -**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。 - -**[00:12:06] 发言人 3**:那我起草一份微对你。 - -**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。 - -**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期好龙也准备好了。 - -**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。 - -**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。 - -**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。 - -**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。 - -**[00:12:47] 发言人 0**:还是说的那个咱本能。 - -**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。 - -**[00:13:10] 发言人 3**:对对对。 - -**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧? - -**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。 - -**[00:13:29] 发言人 0**:你这个就是有就行,边际成本。 - -**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。 - -**[00:13:37] 发言人 0**:这个不对,不是吧? - -**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。 - -**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧? - -**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。 - -**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你? - -**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要? - -**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对? - -**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。 - -**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧? - -**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。 - -**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。 - -**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。 - -**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。 - -**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。 - -**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整? - -**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。 - -**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我? - -**[00:15:40] 发言人 5**:都其实有好多人在报。 - -**[00:15:42] 发言人 0**:在哪怎么报? - -**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着? - -**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。 - -**[00:15:51] 发言人 5**:不不不,你说话要负责的。 - -**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少? - -**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。 - -**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。 - -**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那是有人报,有人报。 - -**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。 - -**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧? - -**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。 - -**[00:16:34] 发言人 0**:行,两千美金,两千美金。 - -**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。 - -**[00:16:39] 发言人 0**:这羊出羊,那他们那个。 - -**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。 - -**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。 - -**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢? - -**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。 - -**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。 - -**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧? - -**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。 - -**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。 - -**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操,你这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。 - -**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少? - -**[00:18:12] 发言人 0**:以后需要多少,怎么做? - -**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token? - -**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗? - -**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧? - -**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型? - -**[00:18:36] 发言人 0**:还没有。 - -**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。 - -**[00:18:43] 发言人 0**:那些我们做的财务。 - -**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。 - -**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。 - -**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。 - -**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。 - -**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。 - -**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。 - -**[00:19:29] 发言人 0**:我们算的清账吗? - -**[00:19:30] 发言人 0**:关键你现在算不清账吗? - -**[00:19:32] 发言人 0**:你知道吧? - -**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。 - -**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对? - -**[00:19:42] 发言人 0**:他就拿市场比市场平济市场,我们水油拿去卖,拿到那个街上。 - -**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方? - -**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那妈人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。 - -**[00:19:58] 发言人 0**:我操是吧? - -**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。 - -**[00:20:05] 发言人 0**:行。 - -**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。 - -**[00:20:14] 发言人 5**:所以说我觉得。 - -**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧? - -**[00:20:24] 发言人 0**:这后面的这个叫什么呢? - -**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。 - -**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。 - -**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢? - -**[00:20:44] 发言人 0**:你为你们做,这是个工程。 - -**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。 - -**[00:20:56] 发言人 0**:你就跟那个。 - -**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。 - -**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他跟他去确认,因为说确认了一次,不是上我他我周六。 - -**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。 - -**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。 - -**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. - -**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。 - -**[00:21:25] 发言人 3**:会说不给我的。 - -**[00:21:26] 发言人 3**:吴家表那。 - -**[00:21:27] 发言人 0**:有一台没了。 - -**[00:21:28] 发言人 5**:他发到发到。 - -**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。 - -**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。 - -**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。 - -**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。 - -**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体? - -**[00:21:50] 发言人 5**:好,我还真知道。 - -**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。 - -**[00:21:57] 发言人 6**:硬件搞搞,是100的. - -**[00:21:59] 发言人 0**:3分之1都算的。 - -**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗? - -**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。 - -**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。 - -**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。 - -**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道? - -**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对? - -**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。 - -**[00:22:58] 发言人 0**:他没有dream,他就是要资源互投资,哪有那么个dream。 - -**[00:23:01] 发言人 0**:说了几年的剧,只问毛剧,所以我们这也不存在dream不剧,我们剧最多就是一年半年,今年能不能做,明年能不能做做不了就别做了,没剧没就那么点钱,哪有剧。 - -**[00:23:13] 发言人 0**:所以说我说回来就是你们能不能至少在他妈的要资源护图的这一块,你们能不能给我那个正。 - -**[00:23:24] 发言人 5**:规军。 - -**[00:23:26] 发言人 5**:好。 - -**[00:23:27] 发言人 0**:我们下来再开展这个交易。 - -**[00:23:29] 发言人 0**:参加以后我们再开展这个问题,把这个把硬件把这么给搞明白,我操你们,这个其实我实话实说,没好意思说我在外面吹牛,实际上还是游击队,紫光汇智游击队信息技术有限公司。 - -**[00:23:43] 发言人 0**:我操哪天把游戏都脱掉,铁道游击队。 - -**[00:23:54] 发言人 0**:这点抽点东西过个货,那抽点东西过个货就提到一个月。 - -**[00:24:02] 发言人 0**:好,继续。 - -**[00:24:03] 发言人 3**:我招人的话,九个人九个省可没问题了。 - -**[00:24:07] 发言人 3**:我们个曾幸福,云南那个那个人韩东生,我下午约四点再面一下,如果没问题。 - -**[00:24:17] 发言人 3**:进来,然后韩东生,刚刚我跟孙刚也聊了,让陈畅也跟他面对面沟通。 - -**[00:24:24] 发言人 3**:有下午我自己再跟他聊一下。 - -**[00:24:27] 发言人 0**:但是约了十天。 - -**[00:24:29] 发言人 3**:然后关于明智的各省份的考核数数据现在C 2M上是1.8亿的空间。 - -**[00:24:36] 发言人 3**:然上周一我们开会让他们把所有的空间填报C 25的信息的准确度重新更新里面。 - -**[00:24:44] 发言人 3**:目前来看在九个销售里面的省份,预估六月下单金额在307万,准确率我们认为应该是已经达到80%的准确率的。 - -**[00:24:55] 发言人 3**:这个C M目前已下达了只有万,就是六月份单月总计预估下达307万,已完成56万。 - -**[00:25:04] 发言人 3**:我刚刚会前跟三郎也讨论一下这十个省份云质的任务。 - -**[00:25:10] 发言人 3**:我们是把6到12月对他入职时长,6到12月把他们拉了一下经营20年的任务。 - -**[00:25:17] 发言人 3**:然后有两个内蒙河南和重庆的杨思磊,然后张贵和杨思磊因为在职12个月就挂了全年任务,剩余的就根据食长来我们列了,目前预估差不多在2800万云值销售,云质销售就26年的任务。 - -**[00:25:33] 发言人 3**:然后下周我们会最终我们把正式的跟每个人。 - -**[00:25:41] 发言人 3**:最后是有几个求助,一个就是汇智牌的3650和5600的检测报告,具体这面加快一下。 - -**[00:25:50] 发言人 3**:6月26号八号米这有个标要投100万左右的标地,这两个终端的费用用到。 - -**[00:25:57] 发言人 6**:需要检测报告。 - -**[00:25:59] 发言人 3**:6月26号没有出来。 - -**[00:26:01] 发言人 3**:能不能做来出来。 - -**[00:26:03] 发言人 6**:这个我你出不。 - -**[00:26:05] 发言人 3**:我到时候想办法,你把他现在是给了的么报告模板给销售,这个我们就不去能力,如果能出来,我们就催一下,因为他是已经定好开标这两个终端也已包括价格,我催一下,有可能能出来。 - -**[00:26:20] 发言人 6**:但是这个不保证,不保百分之百,你催一下急。 - -**[00:26:24] 发言人 6**:对。 - -**[00:26:25] 发言人 4**:他已经是。 - -**[00:26:25] 发言人 3**:加催急了。 - -**[00:26:26] 发言人 6**:我们上周我们当时搞过检测报告。 - -**[00:26:29] 发言人 3**:我检测报告我们的是我们上次紫发软件是带病忙的,马上招标。 - -**[00:26:35] 发言人 6**:我跟你说说都花。 - -**[00:26:36] 发言人 3**:十天就搞下来,拿掉个我就催训志给的这个报告。 - -**[00:26:41] 发言人 6**:我感觉没那上周是我们集团对我们的商标合同耽搁了十天,集团才今天早上才给到,我们也一直在催集团到没有到期,但是人家说你到期时间太短了,他不给我批正什么起的尤尼森是那个商标紫光集的。 - -**[00:27:03] 发言人 6**:然后是7月6号到期,然后其实没到期,但是证书机构是认为我们那个到期时间太短了让我们重新一签。 - -**[00:27:14] 发言人 6**:我想我们我要和华润。 - -**[00:27:17] 发言人 1**:法找个集团。 - -**[00:27:19] 发言人 3**:然第就是公安机策问题。 - -**[00:27:23] 发言人 0**:已到全。 - -**[00:27:25] 发言人 6**:那单如果拖拖。 - -**[00:27:28] 发言人 0**:他们这次。 - -**[00:27:30] 发言人 6**:已经很是因为有两个流程。 - -**[00:27:37] 发言人 0**:继续。 - -**[00:27:38] 发言人 3**:然后关于像公安的一期专用的问题,我们上周第一顺国找了南海公安做测试。 - -**[00:27:47] 发言人 3**:第二我找了市局。 - -**[00:27:51] 发言人 3**:都没有遇到过在公安网或者是电子网,或者视频专网一起发问的情况。 - -**[00:27:58] 发言人 3**:也孙伟找到北信源,北信源也答复没有那个安全边界,他们想做但还没做,所以说就完全不一样。 - -**[00:28:07] 发言人 3**:所以说榆林公安那个榆林公安是这样的。 - -**[00:28:11] 发言人 6**:我们问他内蒙,我说内蒙你们到底是怎么在用机方用? - -**[00:28:16] 发言人 6**:最后他是说那个机子是接两个网口都接了公安网,但是他们在公安网里面把它分成了数据域和用户域两套语。 - -**[00:28:27] 发言人 6**:用那个是正常的,那个是可以用他他们他们是这样的用好,榆林公安现。 - -**[00:28:34] 发言人 3**:在就是不知道他们要怎么用。 - -**[00:28:36] 发言人 3**:没榆林公安那个漏洞反馈回来的就是公安网和电子网。 - -**[00:28:41] 发言人 6**:不是他的不动打电话了,他报告写的给我写的报告那个报告他说他最初是客户说他们云桌面要用到公安和网和政务外网,但并没说要跨两个网段。 - -**[00:28:55] 发言人 6**:然后他们现在也去问了,不知道客户到底要怎么用,因为这个还没装,但是这个东西是客户明确要求就装网口,他谁我们去装,所以装的时候要他们部署给我们反馈。 - -**[00:29:10] 发言人 3**:一个人说了,这里就是两个问题,一个是我跟苏伟跟俊杰也开了这个会议,如果是我们去装双网口,如果是政策不允许,最后影响的肯定是这个位置。 - -**[00:29:21] 发言人 3**:对,就是公安肯定会甩锅。 - -**[00:29:23] 发言人 3**:公安不可能因为这个事丢自己的不纱帽。 - -**[00:29:27] 发言人 3**:那为这个事情就是政策问题,到底允许不允许北信源我们在里面买全器,他厂家自己都说他没做,那怎么会涉及那安全? - -**[00:29:36] 发言人 3**:所以我们里面。 - -**[00:29:38] 发言人 0**:没有法务的风险,那个已经给卖,已经给给那个基本。 - -**[00:29:43] 发言人 5**:上还我卖出去了。 - -**[00:29:44] 发言人 0**:卖出去也到没有什么。 - -**[00:29:46] 发言人 3**:按理说出问题,出问题你厂家就会有风险,谁接的那个谁就要负责任,就是谁机接一线是。 - -**[00:29:54] 发言人 6**:有问题的。 - -**[00:29:55] 发言人 6**:但是本身产品没问题,因为我产品多了一个网格。 - -**[00:29:59] 发言人 0**:你产品问题是你合同里面有没有设方案,你的之间有没有,那叫叫法律分歧,说他妈的你说你可以,结果不可以。 - -**[00:30:08] 发言人 0**:因为你造这个方案的时候,经销商觉得我马上就卖了,但最后经销商打官司联用了,经销商退货了。 - -**[00:30:16] 发言人 0**:也就是说在合同里面你。 - -**[00:30:18] 发言人 6**:承诺我的你没达到,对客户没说他要怎么用,但是他客户。 - -**[00:30:23] 发言人 3**:就要刷网口,这个方面不是我们设计的,我是他要。 - -**[00:30:26] 发言人 3**:彭总不知道记不记得18年的时候,王云还在立维的时候,19年深圳商汤就爆了一个雷,虽然是基层商买的桑汤,供给公安做的人脸识别,但是整个深圳市公安稽查和公示的是孙信福泄露了深圳市仓库库中标。 - -**[00:30:46] 发言人 3**:不是孙信福,是桑汤泄露深圳市仓储库,我直接划成一个大红头文件,在网公网上公示的。 - -**[00:30:54] 发言人 3**:虽然不是商汤直接中标,商汤也不会直接中标。 - -**[00:30:59] 发言人 3**:但就是说商涛的人脸识别这套系统,把深圳仓储库给泄露了。 - -**[00:31:04] 发言人 3**:原因是他缓存深圳仓储库,被别人在实频专网给他攻击了,把仓储库拿走,厂家肯定会有这个影响。 - -**[00:31:11] 发言人 3**:所以说我在搞这个试点测试的过程中,我至少就业务层面从南安华送我们的,包含罗天华,从市科兴镇的。 - -**[00:31:19] 发言人 3**:是没有遇到,就直接过。 - -**[00:31:21] 发言人 0**:现在上没有使,因为本来我就是希望这个做一个案例,做一个可复制的案例,因为公安这个事还是很大,是吧? - -**[00:31:29] 发言人 0**:你这了解一下。 - -**[00:31:31] 发言人 4**:这原则上我建议如果业主不给我们材料的话,他不给我就是不管是这种材料,不管挂哪,我你必须下到命令给我,给个东西给我才能建议,不管是管我事情还卖我,这三个我绝对不能乱传,因为当时我们来面公。 - -**[00:31:49] 发言人 0**:交流所有不好。 - -**[00:31:50] 发言人 3**:那最后一个就是今天早上那个谁与志伟过错的一个字,自发政开发这政厅就是产妇找的,他产妇找的,他说我们报价太高,我要是为能不能协调地力开发申请,报价太高。 - -**[00:32:08] 发言人 7**:的问题是包含这付费用。 - -**[00:32:11] 发言人 7**:他他跟我说的是。 - -**[00:32:12] 发言人 3**:一开始我们报的15个变成7.5,结果那个产妇跟他说,你们最多给你2万块钱。 - -**[00:32:20] 发言人 3**:能够做这个事情,这个细节看谁能帮于志伟去协调一下。 - -**[00:32:26] 发言人 0**:这个事是谁来管。 - -**[00:32:28] 发言人 3**:是华山,但是确定孙兴福已经在这个,这人庭目上已经。 - -**[00:32:34] 发言人 0**:设计完了,核实孙兴福。 - -**[00:32:36] 发言人 0**:谁什么意思? - -**[00:32:37] 发言人 0**:这个项目。 - -**[00:32:38] 发言人 7**:是底是云的项目,想浙江省数据局的一个云肉面的项目,他但是浙江不是政务网上有个自政钉,钉钉的就是阿里宝的钉钉的一个东西,所有的政务网上都要跟这个硬接,有些可能我们开。 - -**[00:32:58] 发言人 0**:这个接口。 - -**[00:32:59] 发言人 7**:他们评估了大概10万15万研发。 - -**[00:33:03] 发言人 0**:研华三海,那这肯定。 - -**[00:33:05] 发言人 7**:他们来来来定制。 - -**[00:33:07] 发言人 0**:这个东西华山品华山三十多年的研发。 - -**[00:33:11] 发言人 0**:对,三十多三十那肯定是乱评的那这个肯定没。 - -**[00:33:17] 发言人 7**:这么搞的,但你这个2万块钱肯。 - -**[00:33:20] 发言人 3**:定一高不? - -**[00:33:22] 发言人 3**:当时不就是说我们弄个人进进华山这种农。 - -**[00:33:27] 发言人 0**:关键项目。 - -**[00:33:30] 发言人 7**:要拿项目已经下。 - -**[00:33:35] 发言人 3**:已。 - -**[00:33:36] 发言人 7**:掉了。 - -**[00:33:37] 发言人 0**:现在。 - -**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。 - -**[00:33:49] 发言人 3**:是么高。 - -**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。 - -**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。 - -**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有问题的,他也没问我们。 - -**[00:34:07] 发言人 0**:然后省付钱。 - -**[00:34:08] 发言人 7**:省代省代就省代就是做,他肯定做不了。 - -**[00:34:16] 发言人 3**:现在浙。 - -**[00:34:19] 发言人 7**:江代表处。 - -**[00:34:21] 发言人 3**:江表华华。 - -**[00:34:23] 发言人 7**:华妇妇数志。 - -**[00:34:27] 发言人 6**:投标过程啥。 - -**[00:34:29] 发言人 7**:都没不上,自己管的对,也没问。 - -**[00:34:35] 发言人 6**:我们。 - -**[00:34:36] 发言人 6**:然后现在他。 - -**[00:34:38] 发言人 7**:妈的我们。 - -**[00:34:40] 发言人 6**:这个概就报端。 - -**[00:34:42] 发言人 7**:到江。 - -**[00:34:44] 发言人 6**:你们谈。 - -**[00:34:44] 发言人 0**:反正如果后期有扩容这个的话,我觉得还是看看能不能结合这个合我们在个那我现在给。 - -**[00:34:54] 发言人 7**:他是说175000,然后再跟他再再磨呗。 - -**[00:34:58] 发言人 3**:首千华还说不,这个产妇比出来了,毕竟骨感可以重视的。 - -**[00:35:03] 发言人 6**:好吧,像我们的。 - -**[00:35:05] 发言人 7**:亏亏也没办法,有些人。 - -**[00:35:08] 发言人 0**:该做还是75000,你是边际成本的,你亏啥亏。 - -**[00:35:12] 发言人 3**:你反正那个人你都养。 - -**[00:35:14] 发言人 0**:只要华商愿意给我干了。 - -**[00:35:17] 发言人 7**:那几个人反正你都养了。 - -**[00:35:19] 发言人 7**:好,这里面就是说他能做吗? - -**[00:35:23] 发言人 6**:农业新招的那个。 - -**[00:35:24] 发言人 3**:他现在可以做。 - -**[00:35:26] 发言人 3**:我认为这个归接跟人家就跟产。 - -**[00:35:29] 发言人 0**:品主线一点关系没有,进不面试,你们走走,要走走。 - -**[00:35:35] 发言人 7**:还是能做一些事情的,可以做不少事情的。 - -**[00:35:38] 发言人 7**:就像类似的这种活就可以我。 - -**[00:35:41] 发言人 0**:们就可以扔给他去做了。 - -**[00:35:43] 发言人 0**:你觉得可以你就招。 - -**[00:35:45] 发言人 0**:我觉得他们但时价格。 - -**[00:35:47] 发言人 7**:他跟薪资这边他可能要总共加起来在2K左右。 - -**[00:35:51] 发言人 0**:这个20K左右。 - -**[00:35:58] 发言人 7**:你们看到,但是我觉得还是有有价值的。 - -**[00:36:02] 发言人 7**:至少我们放一个人进去。 - -**[00:36:04] 发言人 7**:而且张志辉答应过,就过两个月肯定把它放到这个研发场地里去工作的。 - -**[00:36:09] 发言人 3**:好,继续,我这儿结束了没。 - -**[00:36:13] 发言人 1**:其他没。 - -**[00:36:32] 发言人 8**:这个的话一个是上周的话,一个是河北农信的有一个开发测试区网络建设的设备的这样的一个项目。 - -**[00:36:43] 发言人 8**:然后的话这个事情是应该是到后续马上要签合同的,应个是。 - -**[00:36:51] 发言人 8**:第二个的话是中国移动通信的青海有限公司,有一个d的一个集成投组伙伴的。 - -**[00:37:00] 发言人 8**:我们应该是要去入他的一个编c的一个库。 - -**[00:37:04] 发言人 8**:然我们上周的话是把我报了名,就应该是跟着项目走。 - -**[00:37:12] 发言人 3**:这是王丽丽那。 - -**[00:37:15] 发言人 1**:边算力小,目。 - -**[00:37:18] 发言人 3**:动卖卖给买我们我们去买新华三四光合到一起有两个规模,王也利用为他主导这个销售,就看有没有机会。 - -**[00:37:30] 发言人 3**:80%的工作目都谈的7788了,但现在我们就是相当于做移动的助理,要不然我。 - -**[00:37:39] 发言人 3**:移动要求我们的电视厅汇。 - -**[00:37:43] 发言人 0**:这个有。 - -**[00:37:44] 发言人 3**:几个点,现在还没谈他他端午节回来要搞我,他那个就谢谢。 - -**[00:37:52] 发言人 1**:我稍等等。 - -**[00:37:53] 发言人 0**:好好继续。 - -**[00:37:54] 发言人 8**:第三个也还是上次说的是就昌平的M4的一个这块的一个项目。 - -**[00:38:04] 发言人 8**:然后的话我们上周的话是主要是看了一下他的图纸,图纸的话应该是还是不管是图纸也无权,然后清单的话又就遗漏的地方,我觉得可能就是重点的话是。 - -**[00:38:18] 发言人 1**:要把那些图纸。 - -**[00:38:19] 发言人 8**:清单这些东西把它理清楚。 - -**[00:38:22] 发言人 8**:然后在后面的这个项目把它顺。 - -**[00:38:32] 发言人 8**:第四个的话是辽宁,辽宁的那个。 - -**[00:38:38] 发言人 8**:电视台的4K的项目,上周也汇报过,然后尽快的话推动它报。 - -**[00:38:49] 发言人 8**:然后我这边的话是一个是那个视频号。 - -**[00:38:52] 发言人 0**:数字也一直没搞好。 - -**[00:38:54] 发言人 8**:对,因为搞本来是最开始搞搞好了一个,搞好了一个,甚至说我们那个微微胖里头以后不能够再用那个呃就是微胖的字。 - -**[00:39:06] 发言人 0**:我们数字研究越来越回到了什们网上那个长得有点像那个了,他好像他们是故意这样的。 - -**[00:39:16] 发言人 0**:牛娃二的数字很多,那女的都一样,女的都一样。 - -**[00:39:20] 发言人 6**:发音都一,不是翻译。 - -**[00:39:21] 发言人 0**:你没发现那女的都也是老的年轻的都一样,好多男的女的也一样。 - -**[00:39:26] 发言人 0**:因为就一套。 - -**[00:39:27] 发言人 6**:东西做出来,所以我觉得因。 - -**[00:39:29] 发言人 0**:为那个成本低,或者说可能平时的什么也低,就在国内我觉得都走向那个方向。 - -**[00:39:36] 发言人 6**:也每次都一样,语气都一样,我看他好,然后我人小气。 - -**[00:39:41] 发言人 0**:就是脸五年的脸,你没发现你自己,你发现你你你看看就最近发布那个那个张艺发布那个就跟那个就跟我们那个那就开始瘦下来了,原来我们俩研人一样,就开始跟那个像了。 - -**[00:39:54] 发言人 8**:他可能那种无论是因为我们做最后要做那个视频的话,他还是要通过那个C档次。 - -**[00:40:01] 发言人 8**:C档的话他肯定里头他在做那个点的时候,他肯定是有他的一系列的规范条件的。 - -**[00:40:09] 发言人 8**:所以说你越做就会和网上的那个数字点做的越来越像。 - -**[00:40:15] 发言人 8**:就不管你怎么约束他,你给他写什么替示词,或者你的原始是你给到他了个他给你做出来的,可能他就会有。 - -**[00:40:27] 发言人 8**:然后南岸的那个无人机。 - -**[00:40:30] 发言人 4**:项目的话。 - -**[00:40:31] 发言人 3**:那个是。 - -**[00:40:33] 发言人 0**:但是也有很多高手。 - -**[00:40:35] 发言人 0**:但是我怀疑这新浪子里面出来的那些,很多女生好看的各个但是只。 - -**[00:40:43] 发言人 5**:要是那种叫什么快餐店出来的,全是一样。 - -**[00:40:48] 发言人 5**:你用他平台的他太多了,只能用他拍的。 - -**[00:40:52] 发言人 5**:还有就是自那个feel自己做那个。 - -**[00:40:55] 发言人 5**:可所说我们做过。 - -**[00:40:58] 发言人 0**:但他算消耗比较高。 - -**[00:41:00] 发言人 0**:如果我们这你们你你你高多少,你搞没有,老板我们之前搭过。 - -**[00:41:06] 发言人 5**:但我们但时出一个视频太长了,出一个视频2个小时。 - -**[00:41:11] 发言人 7**:这样。 - -**[00:41:12] 发言人 7**:我觉得想这个数字人这个事儿,我觉得还是我我觉得还是有价值去做这个是。 - -**[00:41:19] 发言人 0**:就是我我。 - -**[00:41:20] 发言人 7**:不仅仅是我们自己用,我觉得我就是我们现在民桌面,有大量的教育云桌面,教育桌面。 - -**[00:41:27] 发言人 7**:我还是觉得原泉园那个味孩的。 - -**[00:41:30] 发言人 0**:你是对的。 - -**[00:41:31] 发言人 0**:我就很简单,你做的好你得划算。 - -**[00:41:34] 发言人 0**:每个代表数你给他做个一万的,他给他算的业绩你都是你你你就几十个,你代哪个代表数做的好呢? - -**[00:41:42] 发言人 0**:你看见没有? - -**[00:41:43] 发言人 0**:没有,就很简单,你要去做,你给省代每个做一个,那省代还在拿人社,但是现在这个事情,江毅就慢的。 - -**[00:41:52] 发言人 0**:你们江毅你琢磨琢磨。 - -**[00:41:53] 发言人 0**:还有一个他江毅你牵头,你管他们这样你牵头,你把你们他们开一起,你要企业方理中心,你们把这个把这个就把这个硬件,我们需要这个硬件,我操人家一个他妈七个人就一台H 20是吧? - -**[00:42:12] 发言人 0**:发六台我去要,后来紫薇说他们用的很满,给我们台还担心我做算法就是你自己得自己你想办法,你很多东西都要想出来的。 - -**[00:42:23] 发言人 0**:如果我我跟你说,我下一步我坚定不的,下一步只要你们做出,我们就把他们的埃踢布给他们,关着门说,就把他埃踢部给他收了。 - -**[00:42:33] 发言人 0**:因为你还是那句话,我租的比你便宜,你他妈你七个人花几百万,一台20多少钱,我合在一起我都买过来,我半价给我说,紫薇你看你七个人200万加上H 20多少钱,合在一起我一半我就全买过来,我说你业务给你接了。 - -**[00:42:51] 发言人 0**:因为本来我搞it,我也想我们各个部门对不对? - -**[00:42:56] 发言人 0**:都想去好好的企业。 - -**[00:42:59] 发言人 7**:你所有都结构化的一些it的人。 - -**[00:43:02] 发言人 0**:问题是用这种稳定模型,这个不一定做,还是两个,我觉得还是要混合,就本地做一部分上面做一个。 - -**[00:43:11] 发言人 0**:你比如举个例子,本地就写文案,本地把那个叫什么呢? - -**[00:43:17] 发言人 0**:就一次过,本地如果能把那个的那都好,你到面次过,你然做是我操不行,又重新做一次,再不行,我说你道理。 - -**[00:43:27] 发言人 0**:是,所以还有一个我顺带说这个我就建议你在你在你你你你你们就再落实一下。 - -**[00:43:35] 发言人 0**:就华山那个他一台服务器多少钱,多少算你500是. - -**[00:43:40] 发言人 8**:什么事儿? - -**[00:43:41] 发言人 8**:好吧,用的是么? - -**[00:43:43] 发言人 8**:我这个我下面就是最后一点,我上周实际上是我和那个,你看我们一起和华山的开了两次会说这个事情。 - -**[00:43:54] 发言人 8**:就现在的话他们就是给我们提了服务器的方案和一个是4900,一个是5300的。 - -**[00:44:02] 发言人 8**:然后四华山来华夏华山,我是跟华山开的会,没有华不开什么会。 - -**[00:44:08] 发言人 8**:我们上周我们说那个流程,我们不是要数字助理吗? - -**[00:44:13] 发言人 8**:数字助理的话,当时您就说比说我们要配硬件,配硬件的话就必须要要那照华山那的服务器服务器。 - -**[00:44:23] 发言人 8**:对对对,你说我就跟拧到一起,我们就把需求提给华山了。 - -**[00:44:28] 发言人 8**:华山就给了我们两款配置,一款是它的4900系列,一款是它的5300系列。 - -**[00:44:34] 发言人 8**:然后每一款里头有两种芯片的配置。 - -**[00:44:37] 发言人 0**:一种是英伟达的芯片配置,还有一种是这个就应该有H 20的。 - -**[00:44:42] 发言人 5**:对,他他华他的20L20H20,如果A20H20超过我们的那个好,这样的就是我我觉得是这样的话。 - -**[00:44:50] 发言人 8**:我们先让华山,因为我们需求现在是清晰的,我们要些什么东西,需要多大的算力是清晰的。 - -**[00:44:58] 发言人 8**:我们先让华商把这个配置出来以后的话,我们如果。 - -**[00:45:02] 发言人 0**:有好,你们先把数据也拿到,去年你们也把H 20的数据拿到,我以后就不问你了,我他妈全程给我的AI助理,我有啥事问我的AI我操。 - -**[00:45:14] 发言人 0**:我就问他。 - -**[00:45:15] 发言人 8**:我说H 20到底用多少? - -**[00:45:17] 发言人 8**:他这个是这样的,他这个方案最开始我给的方案就是我和AI讨论,讨论完了以后我就没有去问华山,就是你就是我就直接把这个配置给他,我就说你帮我确定一下这个配置要多少钱,就这么来的。 - -**[00:45:35] 发言人 8**:他也觉得现在这个就是华山他们现在出这种低端的,因为当时你也跟我说,你说大概只能20万,可能就已经是这个事情的上限。 - -**[00:45:46] 发言人 8**:因为你当时是先给了我一个中心的配置,最低的那个大概要五六十万,就那个中心,那他的那个我就给提出来,我说你先分析中心的配置,配置完了,你我们华的配置做的中这个有竞争,他就给了我配置,然后我就把这拿华讨论。 - -**[00:46:05] 发言人 8**:因为具体的他哪些机器适配了哪些卡,我们现在确实是搞。 - -**[00:46:10] 发言人 0**:其实这个我现在理解,这个Q可open可各种可,实际上你看他都是没头的,你要有头的话,你要腾讯他首先第一个事是想接到自己的头里是吧? - -**[00:46:21] 发言人 0**:对,但是他慢慢他有开发商,你接别人的头,那中兴他他也是无头的,他无头的他自己需要那么大算力干嘛? - -**[00:46:30] 发言人 0**:他不需要那么大算力。 - -**[00:46:32] 发言人 0**:如果纯无头的不就一个盒子就可以了,对不对? - -**[00:46:36] 发言人 0**:但是他有些可能都希望自己在里面,比如说放一个自己的,我觉得现在有点乱战,他妈放一个自己的什么小模型,或者放一个自己给人家。 - -**[00:46:47] 发言人 0**:像腾讯这个模型很有意思,用这个Q的模型叫au他. - -**[00:46:50] 发言人 0**:这auau是一个点底下还有0.5的、0.8的,我操就自动的。 - -**[00:46:55] 发言人 0**:但是我都怀疑他是里面有可能他有些时候可能就拉到海外,有可能用他自己的可能海。 - -**[00:47:02] 发言人 0**:那很神奇,他是一个点其他的些模型,但然他们用阿里的其他那些模型,就是有0.8的,0.5的,有一家上市公司的H这个叫什么? - -**[00:47:14] 发言人 0**:而且你说的,我跟你说腾讯现在人家已经就是你说不好用,他现在已经把那个就是我昨天晚上装的那个千问的那个欧那个那个那个欧了么? - -**[00:47:27] 发言人 0**:那个千问3.5这个506年5月,06年3月份四月发布的9B的都可以下载了。 - -**[00:47:34] 发言人 0**:我其实我昨天晚上下载俩东西,他妈一个下载海外那个奥了么,下了他妈的2个小时没下载。 - -**[00:47:40] 发言人 0**:然后我看他那个奥了么什面最新公布的,他还没腾讯申这个新,也就是腾讯现在已经把这个对外本地模型也全都可以让你接了,就bug很多。 - -**[00:47:50] 发言人 0**:我操我这接的时候他妈来回,但是我跟你说本地模型也能接,海外模型也能接,而且我今天跟朋在聊,skill他给你做了一大片mer就. - -**[00:48:00] 发言人 0**:是其实他这个龙虾,我觉得腾讯核心中核心这个腾讯最未来它最最重要粘客户的就是skill和memory。 - -**[00:48:08] 发言人 0**:而且最有可能那个年客户的就memory。 - -**[00:48:11] 发言人 0**:因为他的memory,他的个微信的迁移成本其实也是memory,就是我那记忆那么多,你他那个memory一旦拉长了以后,你用谁都可以。 - -**[00:48:21] 发言人 0**:所以说从这个角度来说,你你你我觉得腾讯是好像找到了他自己的一点,自己在这个里面的一点价值。 - -**[00:48:30] 发言人 0**:全打开,而且我也看了一下他跟飞书,跟那些都打开,而且他stea里面现在慢慢在接,像美团的那个什么给他接了。 - -**[00:48:39] 发言人 0**:然后那个呃当然首先是微信体系里的,然后未来的京东我估计也会给他接。 - -**[00:48:46] 发言人 0**:然后慢慢的就除了阿里体系那都给他接,还有那个叫什么,你们那个点定票的那个携程没有,但是那个叫什么,还有个定票的那个叫什么那个叫什么,都给他开放了,去哪里? - -**[00:49:03] 发言人 6**:好像要去哪里去是啊。 - -**[00:49:05] 发言人 0**:就是携程的,也是携的是吧? - -**[00:49:07] 发言人 0**:另外一个。 - -**[00:49:08] 发言人 7**:品牌是吧? - -**[00:49:09] 发言人 0**:对飞猪对飞也开过了。 - -**[00:49:11] 发言人 5**:飞飞猪飞哪里? - -**[00:49:13] 发言人 5**:飞猪在哪里? - -**[00:49:14] 发言人 0**:是所以说后来未来这个哈就是呃本地算力要多少? - -**[00:49:18] 发言人 0**:然后龙虾的目的是啥? - -**[00:49:20] 发言人 0**:我们我们其实我们现在想着那天写的,我们写的,我们的核心目的就是做to b的腾讯,就跟我觉得肯定差就不多了。 - -**[00:49:30] 发言人 0**:做to b的腾讯就类似于比他做的更更细一点,或者更更深入B一点,就这个意思。 - -**[00:49:37] 发言人 0**:你们可以好好看看用。 - -**[00:49:39] 发言人 6**:现在看这个周末我也在看他的28件事间的些统功能,其实他他确实是多变的,但是腾讯大了,我们可以做。 - -**[00:49:47] 发言人 0**:一个小一点。 - -**[00:49:48] 发言人 0**:然后你们赶快把H 20这个事就再说了,H 20赶快搞清楚,我谁跟我说的要用H 20,要要要用要用那个算力不够。 - -**[00:49:58] 发言人 0**:刘静你给我说的哪个算力不够。 - -**[00:50:01] 发言人 6**:你自己云那测试这是什么? - -**[00:50:03] 发言人 0**:对,但是你们他妈都搞不清楚一台G 20服务器到底多少算力,我操你妈的下来赶快去弄。 - -**[00:50:12] 发言人 0**:我那半台够不够,我也说不清对不对。 - -**[00:50:14] 发言人 0**:然后他妈的还有一个,为什么我心里其实你们,但是我认为我问这个问题你们根本就不行。 - -**[00:50:22] 发言人 0**:我对你们视秒怀疑,我们也想招人,为什么为什么人家用了6台? - -**[00:50:27] 发言人 0**:为什么it部能用一台? - -**[00:50:28] 发言人 0**:为什么人家肯定是说了的,人家肯定是肯定给紫薇讲了,紫薇同意的。 - -**[00:50:34] 发言人 0**:为什么为什么人家比我们提前那么多,我们还不知道,到现在我们在用了我们一药药只能要到0.5台,因为我没有说法,我不知道那人家一段瓶的烟还在干嘛,为什么要流态,而且用而且还要用干嘛? - -**[00:50:52] 发言人 0**:原子弹抛光。 - -**[00:50:57] 发言人 0**:人家已经很重视那个事儿了,我们现在是慢慢的在一点一点的闪烁,像游击队一样。 - -**[00:51:04] 发言人 0**:今天我们需要不给也行,就像你手下的,我估计游击手下的那些研发也是七哥我们需要,不给也行。 - -**[00:51:12] 发言人 0**:七哥说那你报点账,行,报点账,我顺带报,我洗脚他也报了。 - -**[00:51:17] 发言人 0**:行,反正都是报账的。 - -**[00:51:18] 发言人 0**:Talking, 你看你都是一个那种叫闪烁型的,知道吧? - -**[00:51:22] 发言人 0**:那你游击队、铁道队闪烁一下,你得规模化,也就咱说清,咱就成为定制度,咱们就按流程来,咱不能闪烁的那是艺术家,对不对? - -**[00:51:33] 发言人 0**:那不是那个industry,不是产业,是artist,是艺术机构。 - -**[00:51:40] 发言人 0**:我说对了,咱实话实说,所以你要求你底下也是一样的,不要给你闪烁,一旦要话闪烁。 - -**[00:51:52] 发言人 8**:其他的就没有什么。 - -**[00:51:54] 发言人 8**:然后无人机那个项目的话是确实南岸移动他们也还没有约到。 - -**[00:51:59] 发言人 8**:然后的话大疆的话上周这周的话,周一的话,宇航已经去参加他们那个培训去了。 - -**[00:52:06] 发言人 8**:然后他说入库的事情的话,他们应该是在六月份之前就会有一个正式的反馈和然后it硬件的话,上周反而还有个消息,就是我们不是也放了一台机器给答案,就是王春他们那边也在用。 - -**[00:52:23] 发言人 8**:他们上周五的时候说要跟我讨论一下这个事情,他们用了一段时间里,他们还有些感觉,对,这周要给我打电话。 - -**[00:52:35] 发言人 0**:核酸按例用吗? - -**[00:52:36] 发言人 0**:你在用核。 - -**[00:52:37] 发言人 5**:酸也得都在用。 - -**[00:52:38] 发言人 5**:我们看得到。 - -**[00:52:39] 发言人 0**:数据就是简单化,还要简单扫码,然后还是这个算力怎么分配。 - -**[00:52:45] 发言人 0**:其实我们最重要的前台的表现方式其实就是一种,主要是还是后台就私有算力,公有云算力怎么去分配。 - -**[00:52:57] 发言人 8**:其他的事之类的。 - -**[00:52:59] 发言人 0**:腾讯现在给我们的那个他那个龙虾给我们的机会,给我的机会就是要不就挂私,要不就挂公们。 - -**[00:53:07] 发言人 0**:但是他有一个东西让我觉得有点意思,就是他没给他的龙虾的,他所有的都取了名字,谁的,他自己的叫凹头,他自己都没有起,他自己的。 - -**[00:53:21] 发言人 5**:在里面肯定有东西的。 - -**[00:53:23] 发言人 5**:我他自己应该是有几个模型,他会他会自他会那个动态调度。 - -**[00:53:30] 发言人 0**:你要做什么事? - -**[00:53:31] 发言人 0**:我讲如果这个模型我刚才如果这个存在,就to这个存在。 - -**[00:53:38] 发言人 0**:而且也就换句话说,刚才我说腾讯未来说这个模型,不管腾讯未来可能就是这个skill member里,可能还有一点auto,或者我们未来的也是auto。 - -**[00:53:51] 发言人 0**:因为你凹to这个东西,他妈的就凹不清了,我操你这儿有哪儿是吧? - -**[00:53:56] 发言人 0**:你给他,你包起来你不就可以了吗? - -**[00:54:01] 发言人 0**:对,因为auto是一个积分,那个deep是0.8个积分,我记不住了,我学们看看只有auto是一个积分,就他按2000个积分来说。 - -**[00:54:11] 发言人 5**:现在这个他通用的做法是这样的。 - -**[00:54:14] 发言人 5**:大家比如说他有个机械,机械一般就是乘以1,然后其他不同的模型它的。 - -**[00:54:20] 发言人 0**:倍率就可能线没问题,但他取的。 - -**[00:54:23] 发言人 5**:相当于他来给你自动规划,然后里面可能就叫他自己的他最好的模型。 - -**[00:54:29] 发言人 0**:我也没问题。 - -**[00:54:30] 发言人 0**:你刚才说了他可能做了弹性调度,那如果他们调了几个模型的话,那我觉得就有。 - -**[00:54:36] 发言人 8**:有有意思了。 - -**[00:54:37] 发言人 8**:是这样,他现在都是这样,我现在用的这个也是这样,我现在我还在用那个cloud code,我现在就可以这么跟他讲,我说我问你正常的问题,你就走deep。 - -**[00:54:50] 发言人 8**:如果我扔给你的是一个图片,因为我现在我买了那个小米的那个模型deep,现在是没有多态的。 - -**[00:54:59] 发言人 8**:我说我给你的个模图片,你就去走小米的态,帮我把这张图片认出来,我给你20张,你就帮我认20张。 - -**[00:55:07] 发言人 8**:我说如果你要编程,因为现在小米那个图标好用,小米充电。 - -**[00:55:13] 发言人 8**:小米我我。 - -**[00:55:14] 发言人 7**:我昨。 - -**[00:55:14] 发言人 0**:天用那个用那个用那个奥拉玛的什么,那那个那个不行,跟我带,我看那图片,我让的认了几张大屏包。 - -**[00:55:24] 发言人 6**:我们说做本地知识库,本地知识库骤它你所有的文件登记它也经过几个步骤。 - -**[00:55:30] 发言人 6**:比如说第一个步骤就是那个格式转换,格式转换过后还有什么ocr然后下面的话其实每个步骤都有一些擅长模型在。 - -**[00:55:40] 发言人 0**:做这个事情。 - -**[00:55:41] 发言人 0**:他都都会都会都会调,如果就你说的他自己,如果你一个模型,一个龙虾,一个底层龙虾带有的龙虾龙虾它给你去配这个技能,然后用这个。 - -**[00:55:53] 发言人 6**:那我们后面就他后面机械化肯定会到现在的模型大概比较粗暴,让做所的事这个模型。 - -**[00:56:00] 发言人 0**:你比如说我未来我建的这个本地模型,它就是本地模型。 - -**[00:56:05] 发言人 0**:本地模型我选一份,就跟我们选那个英伟达的芯片,选谁的卡一样。 - -**[00:56:09] 发言人 0**:你就是做传的,然后调用,那就是你的能力,就像华三现在说的,我的交换机的能力,我的调用我的我的我调用什么华为说的我的那个他妈的个淘理论,我的时间压缩就是你调用出结果。 - -**[00:56:23] 发言人 0**:用别人的一个是结果,一个是我现在搞懂了,一个是速度,一个是质量,一个速度快二一个质量高。 - -**[00:56:31] 发言人 6**:这两点其实我们都可以拿来是吧? - -**[00:56:33] 发言人 6**:就有机会他有些小东西其实后期都可以加入到个人的设备地。 - -**[00:56:39] 发言人 8**:他不用去调调用调用,然后因为我也写很多程序,然后现在那是国内的程序,就包括那个cloud的那个程序,它实际上都有很多限制。 - -**[00:56:49] 发言人 8**:但是在现在国内和国外就发了很多那种叫安科手无限制的模型。 - -**[00:56:54] 发言人 8**:就是你给他说什么,就是你问他一个黄色的问题,他也会回答你的那种模型。 - -**[00:56:59] 发言人 8**:然后我就跟他说,我说有一些程序你就必须要去调这个模型,然后他就去调这个,比方去写那种网络爬虫。 - -**[00:57:07] 发言人 8**:网络爬虫你问cloud code,他是不会给你写的,但是你把它下来装在本地上,你说你写爬虫的程序就用这个模型去写,但啪就给你写释。 - -**[00:57:17] 发言人 0**:因为来还有流氓模型。 - -**[00:57:18] 发言人 8**:这个模型还有很流氓,他实际上就是龙虾,或者你腾讯那个clou他就当一个总教授,他看到图片过来他就扔给小米,看到什么爬种过来,他就扔给了个本地的东西,他就这么干。 - -**[00:57:32] 发言人 0**:我感觉这个速度其实挺快的,我感觉这个真是你这个像你们当时说的这个叫是吧,说这个拿到不特殊,现在你看腾讯大厂都能转身转的,别说信不成。 - -**[00:57:44] 发言人 0**:对,腾讯现在说。 - -**[00:57:45] 发言人 8**:他已经意识到了这个事情。 - -**[00:57:48] 发言人 8**:其实钉阿里好像也意识到。 - -**[00:57:50] 发言人 6**:腾讯前其实不就很简单,怕怕他流量不可改变的,所以拼命现在这的事情就是导致他的流量。 - -**[00:57:59] 发言人 8**:所以我们以后我觉得这个机会还是中小企业有零桌面的企业本地化算力。 - -**[00:58:05] 发言人 8**:我觉得这三件事情这里。 - -**[00:58:06] 发言人 0**:面要向腾讯学习。 - -**[00:58:08] 发言人 0**:因为腾讯既他走的那个路不就是模型也不错,我操他妈的反正有一点自己在那边参考。 - -**[00:58:15] 发言人 7**:有一点,然后他说还是做入口,腾讯还是关。 - -**[00:58:19] 发言人 0**:键的话很神奇。 - -**[00:58:20] 发言人 0**:他把那个混那个名字取了,就他妈混。 - -**[00:58:23] 发言人 6**:然。 - -**[00:58:25] 发言人 8**:后。 - -**[00:58:26] 发言人 0**:他那个Q里。 - -**[00:58:34] 发言人 6**:面没有会员。 - -**[00:58:43] 发言人 0**:自他他好吧,继续,我觉得要快点。 - -**[00:58:47] 发言人 0**:有时候我们说的那个点状的东西,我觉得尤其是作为像刘静你们部门leader,或者说你晚人的,你就说过的东西一定要什么的,一定要赶快你回你,你反馈我的越多,那我就是吧嗯嗯,这未来咱们整个组织构架在变。 - -**[00:59:03] 发言人 0**:以后不开门了,真的是这些我就给我的我就给我的那个楼下说,我找刘静,他能救这些事。 - -**[00:59:11] 发言人 0**:到了,你找那能刘静到医院去,你得把memory都记下来了。 - -**[00:59:15] 发言人 0**:你上次说了什么? - -**[00:59:16] 发言人 0**:上次说候比我记得还清楚。 - -**[00:59:18] 发言人 0**:你上次说了什么? - -**[00:59:19] 发言人 0**:上次说你说了三次,我说你看我问了刘居三次,刘居三次怎么回答了? - -**[00:59:24] 发言人 0**:三次前他这么回答三次。 - -**[00:59:26] 发言人 6**:中间我操,我说行了,咱就理解了。 - -**[00:59:28] 发言人 6**:昨天晚上我发了个架构,他们还有互爱讨论的,讨论的。 - -**[00:59:34] 发言人 8**:就是像先拿。 - -**[00:59:35] 发言人 0**:完。 - -**[00:59:36] 发言人 6**:我认为发到群里那个架构就是要实现你那个想法。 - -**[00:59:41] 发言人 0**:那我这个想法,你看黄那个我那个那个我。 - -**[00:59:45] 发言人 0**:什么一中国一中国一不是也说了么? - -**[00:59:47] 发言人 0**:我觉得很有道理。 - -**[00:59:48] 发言人 0**:其实就是组织构架上小公司的那个华智做不了。 - -**[00:59:52] 发言人 0**:如果我没有如果我没有突破点,就是一个是华智做不了这个事是吧? - -**[00:59:56] 发言人 0**:我不做算法我就做龙虾,我就做这个调用。 - -**[00:59:59] 发言人 6**:不做算法我们会去做算法。 - -**[01:00:00] 发言人 6**:他们是不是还在做国安那些大的说算。 - -**[01:00:03] 发言人 0**:我跟你讲整骗人的这里面有一个很核心的问题,还是那句话叫要资源护犊子。 - -**[01:00:08] 发言人 0**:如果有那么多公算法,他就可以护他的犊子,他就要得到资源,这就是一到理想的,一到你选举我就知道他拉什么。 - -**[01:00:15] 发言人 6**:我看海开拉拉好像也在公安的大模型方面到处卖。 - -**[01:00:21] 发言人 6**:研。 - -**[01:00:24] 发言人 4**:是。 - -**[01:00:27] 发言人 0**:华智后的的然脑就给你了,我操,就这几。 - -**[01:00:51] 发言人 6**:那好,华山华鸿蒙客户端这个事情基本上开发完毕了。 - -**[01:00:57] 发言人 6**:最后的流程6月30号我们华山那边会对外发布了。 - -**[01:01:03] 发言人 6**:然后宇豪上周在在和研发一起做我们的无人机平台和集运平台一些功能的梳理对接,包括可行进度线,输出一些规格的对接清单。 - -**[01:01:17] 发言人 6**:然后他这周开始去,那个是下周,还是这么15号,好像就是今天,他去开设那个无人机学习,他这周是线上,我想起来他是线上学习,一周学习一周通过考试了才能去线下,他要求还挺严的。 - -**[01:01:33] 发言人 0**:那大家那边对,肯定有是学什么,就是无人机那个产品市场这些。 - -**[01:01:39] 发言人 8**:东西说钱端它的要求是我们自己要,以后们就客你让宇。 - -**[01:01:44] 发言人 0**:航写个东西,什么记录一下,给我一个报告。 - -**[01:01:48] 发言人 0**:好的,那看看好的,最好是他。 - -**[01:01:55] 发言人 6**:比我。 - -**[01:01:57] 发言人 0**:在做开。 - -**[01:02:02] 发言人 6**:华润这边基本上还是在按照步骤在走,这七月份要投标,然后和徐凯那边在沟通一些硬件的一些事情,这个自听语也是因还是按照步骤走。 - -**[01:02:18] 发言人 6**:我们计划是否。 - -**[01:02:19] 发言人 3**:可以涉及到一的协议。 - -**[01:02:22] 发言人 6**:对,也涉及到个本来那个证据的更新,就是要在七月份七月初的时候拿出来。 - -**[01:02:28] 发言人 0**:你能不能基你能不能你做一款,我上次那天说的,能不能做一个,就还是做在手机上,就是我们。 - -**[01:02:36] 发言人 6**:自己的用,你比如动作。 - -**[01:02:39] 发言人 0**:再做不端,做那个漏洞,还有那个灭光药,他们每天不要求必须用,就是每天要求他们就是开场。 - -**[01:02:50] 发言人 0**:因为手机本身,其实这个记录这个事嗯没那么工作记录,是吧,手机本身的记录其实没那么那个。 - -**[01:03:00] 发言人 5**:那个我们会先做那个电脑版,先把电脑版做我的要求。 - -**[01:03:04] 发言人 0**:我就希望做手机,因为能经常有时电话你。 - -**[01:03:08] 发言人 6**:的电脑你用qq做的晚的。 - -**[01:03:10] 发言人 6**:对,那都是跨平台没问题,手机不行,要适配一下是吧? - -**[01:03:15] 发言人 6**:手机不? - -**[01:03:15] 发言人 6**:手机要重新卖。 - -**[01:03:16] 发言人 6**:对,主要是针对那个电脑。 - -**[01:03:18] 发言人 0**:对你你手机做你也这个本地解析,与那个电脑,电脑本地也是装了个小模型,给他们装个小模型,本地自己解析是吧? - -**[01:03:30] 发言人 0**:现在不好那个语语音转文字的解。 - -**[01:03:34] 发言人 6**:析就是本地解析。 - -**[01:03:36] 发言人 0**:不要这些电脑。 - -**[01:03:38] 发言人 6**:他们手上电脑手一点的芯才行。 - -**[01:03:41] 发言人 5**:这个就适配量就有点大。 - -**[01:03:44] 发言人 0**:所以我们现在百分。 - -**[01:03:46] 发言人 6**:百跑得不中低端的跑不动。 - -**[01:03:50] 发言人 6**:Vivo的那个vivo的那些本地转入要旗舰芯片,跑跑终端芯片都跑动,终端芯片直接把各功能淹光。 - -**[01:03:58] 发言人 0**:这么说,咱们员工的手机基本上跑得动。 - -**[01:04:01] 发言人 6**:我的苹果是百分之百跑的动的,苹果跑得动。 - -**[01:04:05] 发言人 6**:但是安卓比安卓至少要3000块钱以上的手机才能跑的。 - -**[01:04:10] 发言人 6**:三四安卓的一两千块钱手机。 - -**[01:04:12] 发言人 0**:我觉得我们的统序可能3000块钱手机还有的。 - -**[01:04:15] 发言人 6**:这个现在是用没用那么贵的。 - -**[01:04:17] 发言人 0**:这个我觉得还是要手机上录下来,因为我我我想什么,就是他们手机上录下来这些东西,还是作为咱们这个对,最后要首敛回来作为周报,作为日报。 - -**[01:04:28] 发言人 0**:这个日报上来以后就会就拿那个用来做分析,分析就要尤其是对你进且有用,还是那句话,人家每天跟客户说的什么,你坐在屋里你也不知道对不对,人家给你报的那经过人家脑子已经洗掉一大半了。 - -**[01:04:41] 发言人 0**:就是他记得他跟你说,然后或者他的idea,他的观点了。 - -**[01:04:44] 发言人 0**:那他观点他告诉你,其他不是他观点他一个都不会跟你说,他否定的东西他会告诉你吗? - -**[01:04:50] 发言人 0**:说我就这些东西我都否了,他会告诉你吗? - -**[01:04:53] 发言人 0**:他脑子已经就就把他脑子进化,已经是他只只做他他只只做他自己认为正确的事,所以你我觉得得把那个东西你收起来就了解,你要第一时间就了。 - -**[01:05:04] 发言人 7**:解客户了解。 - -**[01:05:05] 发言人 7**:等于说是全部接听电话了。 - -**[01:05:07] 发言人 0**:不是接听就是你工作,我要求你工作必须,你如果不工作,你很那我你你做了配置,你那你还谈了地置有没有这个录音? - -**[01:05:16] 发言人 6**:冯总可能要讨论一下,因为之前那个之前那个之前有很多公司这样干过,我也去调研过,这样干过。 - -**[01:05:25] 发言人 6**:他们还是要求那种客服的对话,要求您上上直接上传,然后他也要去。 - -**[01:05:31] 发言人 6**:最后这条路全部走死,因为下面的员工抵触非常大,直接不用直接。 - -**[01:05:36] 发言人 6**:其实昨天晚上我实计这个架构,我们悄悄的看把一些他在电脑上的一操作的一些对话进行脱敏,然后才张传我觉得已经做了做做到了最大程。 - -**[01:05:48] 发言人 0**:度的一个把控。 - -**[01:05:49] 发言人 0**:就这么说,原来我们收集信息,但你手里安全问题我也认可,我们看怎么来屏蔽。 - -**[01:05:55] 发言人 0**:这就很简单,你如果只是买云端面的事,咱俩只是聊云端面的事儿是吧? - -**[01:06:01] 发言人 0**:母亲妹面我觉得也可以可以咨询,是吧? - -**[01:06:06] 发言人 0**:那你那那那我问你那很多电话就说咨询告诉你问题,那不也咨询。 - -**[01:06:11] 发言人 6**:所以说我现在觉得第一步还是用龙虾来处理。 - -**[01:06:15] 发言人 6**:比如说他配合的一些配置班报单,还有的就是他本地龙虾的一些规话,可以将这些数据上传到企业。 - -**[01:06:23] 发言人 0**:企业你我来你做一个,你如果我说这个。 - -**[01:06:26] 发言人 0**:我见议你在户外做以个你就自动咨询系,什么意思呢? - -**[01:06:31] 发言人 0**:上次说那个小孩一个人管六个龙虾,我还是听还是很有感触的。 - -**[01:06:36] 发言人 0**:就是人家因为人家要问的方案问题,其实有时候问人,有时候还是还有个社会方就告诉你打开你就告诉他他哔哩吧啦吧啦说了一堆,然后听了以后交给那个总结,总结交给方案,方案交给写码,写码交给测试,全是脸。 - -**[01:06:54] 发言人 0**:这哥们儿就说我的目的,人家说万一说不清,他说我不做大生意,他说我的目的就是全部投化。 - -**[01:07:02] 发言人 0**:那从这个角度我觉得我们做一个无人化的,你比如说人家问的问题,我然后给他解决,那个还得做研发,我操咱们只是无人化的咨询,他说完,我马上我就给他出造方案。 - -**[01:07:17] 发言人 0**:你的方案我们认为这样就搭上推上我们的这个型号,推上我们这个机器。 - -**[01:07:22] 发言人 0**:然后这样搭上以后,流量什么都有了你先看一看,你如果不行,你的要呼叫人工,那你就做一个这个东西。 - -**[01:07:33] 发言人 0**:而且很有可能未来你也可能还真是不信人的新能源的。 - -**[01:07:37] 发言人 0**:你我现在开始逐渐有些信感。 - -**[01:07:39] 发言人 0**:如果是如果他里有知识库,我问他,我问你,你还不耐烦。 - -**[01:07:42] 发言人 0**:你比如举个例子,我问医生,我去医院,我问医生,他妈医生门诊他妈一堆人我不耐烦,我给你说三句。 - -**[01:07:49] 发言人 0**:如果你给个东西,我自己他妈问问,我自己问问我我我反复啰嗦,我多问问,你也回答的多一点,我觉得还好一点。 - -**[01:08:02] 发言人 0**:医院尤其是但我们这个也有,因为你要问配置。 - -**[01:08:07] 发言人 7**:对,医院是是是是。 - -**[01:08:10] 发言人 6**:我我们我们配我会配置没有问题。 - -**[01:08:13] 发言人 6**:但是你去训练这一个东西,这个权限问题,你现很容易把所有的资料都发走。 - -**[01:08:21] 发言人 6**:我这很吓人的,说实么他管控不到内部的资。 - -**[01:08:27] 发言人 0**:就是我前面这个流程要变革,你们跟你说了,A时代来了,不是一线,我操,我还我怀疑再过我十年,这小孩儿不在屋里打游戏,来去不应该,你就给我点碗面,然后整个然后领导他妈的要做事,于生也不是好吗? - -**[01:08:42] 发言人 0**:就告诉埃踢,埃踢告诉埃,你去你你你把你你到扒拉这几个公司,让他们每个把他们的方案给我做一个好,也啪啪找到你的研究,然他们也究问了一堆,然后给了五个方案。 - -**[01:08:54] 发言人 0**:好,这个可以,那下来再深入研究。 - -**[01:08:57] 发言人 0**:我跟你讲一定会做在这的,而且这个事他妈的会慢,我操十年时间。 - -**[01:09:04] 发言人 6**:对吧? - -**[01:09:04] 发言人 0**:不用时间了,不用好,那你不改吗你不改吗? - -**[01:09:08] 发言人 0**:听懂没有,你其他妈的他是。 - -**[01:09:10] 发言人 0**:而且现在还有一个,尤其是公有云那套,为啥不私有云为公云那个有点问题。 - -**[01:09:17] 发言人 0**:我们上次公云对紫光汇智评价很公云,不说那个技术叫什么叫叫叫什么叫叫叫什么什么什么什么什么O U R O U那个R U那个叫什么? - -**[01:09:45] 发言人 0**:豆包都有这个问题。 - -**[01:09:46] 发言人 6**:人家以后不一定信豆包。 - -**[01:09:48] 发言人 0**:因为豆包说个大的,他在找到豆包,说我在好找到豆包。 - -**[01:09:52] 发言人 0**:第一搜索就我知道紫光汇智了是吧? - -**[01:09:55] 发言人 0**:然后我再去跟紫光汇智的对接一下。 - -**[01:09:58] 发言人 0**:A对,可能是这样,因为豆包说谁好就谁好,这事情挺麻烦的。 - -**[01:10:04] 发言人 7**:我操,豆包的打案现在。 - -**[01:10:13] 发言人 7**:出来了。 - -**[01:10:13] 发言人 0**:不用那个东西。 - -**[01:10:15] 发言人 0**:所以好吧,你我们的构架的核心就是以龙虾工作为主。 - -**[01:10:19] 发言人 0**:你昨天晚上你们才讨论的,今天你又说不行,我操,我就觉得你那个那是啥东西,不是刚才我说这个,你说录音不行,他如果。 - -**[01:10:29] 发言人 6**:他肯定录音的,他录内那。 - -**[01:10:31] 发言人 7**:不人他愿用这个,那每个话录音录下你的。 - -**[01:10:36] 发言人 7**:好这。 - -**[01:10:38] 发言人 0**:个极了,你们。 - -**[01:10:41] 发言人 6**:的你们琢磨琢。 - -**[01:10:44] 发言人 0**:还是把工作你琢磨琢折磨望们交流的忘掉更次更多,而且我们他妈的我就要结果对我这种来舍事的人其实是个好事儿,其实对他们也是好事儿。 - -**[01:11:06] 发言人 0**:说白了你记录的时候,你用AI记录完,我免得我听错了,最后AI给我出一稿。 - -**[01:11:12] 发言人 0**:你从这个角度,你说你电脑里,你说你来,你说你你给我要说你用这个,你就不用记了。 - -**[01:11:18] 发言人 0**:他出的很仔细,然后出完以后所有的Y配置完,要是看看我刚才讲的问的跟他出的怎么样,那差不多。 - -**[01:11:25] 发言人 0**:那那么那对要的时间不是省了多少,还一个一个配。 - -**[01:11:29] 发言人 0**:我上次问过高耀,问高要说吴高要跟我说原话是我大量的时间就在跟人家谈配置做方案。 - -**[01:11:34] 发言人 0**:你本身这个工作就可以让他做,我让他主动做,不是让他被动,让他主动的觉得这个事要把它记录下来,那就不是法律问题,是他个人的问题了。 - -**[01:11:43] 发言人 0**:他个人觉得我给你个谈话,我想我记下来。 - -**[01:11:46] 发言人 3**:然后我做一个A总题,不要从全程先听角度出发。 - -**[01:11:49] 发言人 3**:就是说一个配置助手。 - -**[01:11:51] 发言人 0**:对类似于。 - -**[01:11:52] 发言人 3**:客户的需求的语音给甩上去了,就是自动。 - -**[01:11:56] 发言人 0**:生成配置。 - -**[01:11:57] 发言人 0**:他愿同要来,他配置他愿意,他自己送给他,不需要你。 - -**[01:12:02] 发言人 0**:他这个太简单了,他肯定不愿意给你寄录音器录音的,这个是百分之百吗? - -**[01:12:08] 发言人 0**:但是你如果是个人行为,你又把他压录下,你给他开一个录音,然后你一边聊一边记,记完以后,他就出方案。 - -**[01:12:15] 发言人 0**:那我觉得微光要那是个人行为,我们这个龙虾里有这个东西,我要从街听,叫我们龙虾本身做这个东西,实际上微光耀你自己在。 - -**[01:12:24] 发言人 6**:里面说的也就光耀,只不过是客户说了,他也算了。 - -**[01:12:27] 发言人 6**:他我感觉是提跟他提升不了什么效益,因为他他他一个需求来做配置,说实话他一分钟就做完,他他他花的时间不是在做配置上,而是客户在跟他沟通。 - -**[01:12:38] 发言人 0**:是对,那不就是他沟通他听懂,这不记录下来。 - -**[01:12:42] 发言人 6**:沟通的结果记录下来还要他发话,他他要去回馈,他要去询问客户。 - -**[01:12:48] 发言人 0**:他询问他可以问询问他,他说咱俩加个微信,这个我微信一个一个告诉你,做好以后他就转发一下。 - -**[01:12:56] 发言人 6**:那你那我们省的前端配置的人又又需要很多人去维护这个网下的技能。 - -**[01:13:02] 发言人 6**:所以你这个逻。 - -**[01:13:03] 发言人 0**:辑本身就跟你昨天晚上做的事是错的。 - -**[01:13:06] 发言人 0**:你昨天晚上做的,这时我们要龙家的技能,他妈的要省人。 - -**[01:13:11] 发言人 0**:你现在又这么说,你们那骨子里根。 - -**[01:13:13] 发言人 6**:本就没有变化,我操,说白了我们是要。 - -**[01:13:16] 发言人 0**:看我去搞文学替换。 - -**[01:13:18] 发言人 0**:我不是我我跟你讲,你真的你骨子里没有变化,你现在的维护,他就跟你买了个汽车,你要他妈头头一个撞人是吧? - -**[01:13:27] 发言人 0**:就跟个现在这个龙虾这个名字有一个有一个词叫有一个尼,这个叫个个词叫服样。 - -**[01:13:33] 发言人 0**:我们摆着,我们驯服他,我们天在管着弄个把把车弄还弄很多。 - -**[01:13:38] 发言人 0**:我跟你讲,你最终的结果就是他肯定自由,你没有资格管理他。 - -**[01:13:43] 发言人 0**:现在你管理他,只不过因为你好像觉得你你你自己搭了个东西,你好像觉得半成品你要管理,最终是他管理你,你就是这样的。 - -**[01:13:56] 发言人 0**:你找另外一个A管他,你自己你找你你找个大爷管你找个大龙虾还小龙虾不就完了吗? - -**[01:14:02] 发言人 0**:大龙虾不用小龙虾的模型,大龙虾就单独的支库,单独的scale。 - -**[01:14:06] 发言人 0**:就是干嘛就跟那个保安一样,每天记着,每天出门告诉你,你带着红头拿着手电走,这就是你主要干的。 - -**[01:14:13] 发言人 0**:你别干人家那个方法,但是你就干人家违规,你就干人家翻不翻墙,你就干人家小熊林里揣着那耍流氓,这大保安对不对? - -**[01:14:21] 发言人 0**:你搞一个大保安方式不就完了吗? - -**[01:14:23] 发言人 0**:然后他有他新的眉目,他的眉门跟底下没毛不一样。 - -**[01:14:27] 发言人 0**:他的memory门全是违规,全是你做问题的错误,他给你站好对方的。 - -**[01:14:35] 发言人 0**:你们下去好吧。 - -**[01:14:37] 发言人 3**:我觉得还是其实你把那个ct配置器给下了就会提高效果。 - -**[01:14:45] 发言人 3**:都不用跟我说的,直接到录音。 - -**[01:14:48] 发言人 3**:你把配置器下了,我问语音,我说配个多少卡的那个那个服器怎么样? - -**[01:14:57] 发言人 3**:如果配置器高。 - -**[01:15:00] 发言人 0**:这个效率不是我觉得我觉得是要整结做的。 - -**[01:15:03] 发言人 6**:做那配置其实不是过。 - -**[01:15:05] 发言人 0**:我觉得不是配,我觉得是要总结,我觉得是要反复去拉锯。 - -**[01:15:09] 发言人 6**:要最好是花的时间。 - -**[01:15:11] 发言人 0**:不是花在选的那种配置,他就拉,就总结,就最好加微微微过,只要你反应快,人家还愿意加微信。 - -**[01:15:19] 发言人 0**:我有时候给人家打电话,他妈的我我来我加个微信聊一啥,因为打电话我语音表达这些东西实时性。 - -**[01:15:25] 发言人 0**:第二我脑子里可能当时我因为想表达的思想不一定准确,所以他给我回答的东西也是默默糊。 - -**[01:15:32] 发言人 0**:微信以后我每次他说我要我说我要我看看,我想想,可能我问这个问题的角度不对,我再换一个角度问,然后问完以后我再换一个角度问我跟那个医生有什么问的,我加了微信以后,我就会这得来回以后反复了。 - -**[01:15:46] 发言人 0**:而且在这微信你加微信我最重要的一点是什么? - -**[01:15:49] 发言人 0**:就失效了。 - -**[01:15:50] 发言人 0**:因为我问个问题,人家半天不回,那我就没兴趣了。 - -**[01:15:53] 发言人 0**:所以你如果加了微信,我保证你这个五分钟10分钟之内肯定会。 - -**[01:15:57] 发言人 0**:就是我现在问,你先你等一等,我保证你十分钟肯定回。 - -**[01:16:01] 发言人 0**:然后他爸加微信了,他哔哩吧就写进去了,不管是语音还写进了,你马上叭啦,你后面你那个AI就处理了,处理完了以后给了他一套,然后顺便看一下。 - -**[01:16:10] 发言人 0**:这回答怎么,还行,你就点一下,或者你经过注意转发一下。 - -**[01:16:14] 发言人 0**:等我操,这他妈就比你编文字,而且我跟你讲,现在我打字好,我就挺烦的。 - -**[01:16:19] 发言人 0**:我原来没注意过,就昨天晚上打到一晚上死打字的那个技巧,他又得找回来,当时觉得X C C现在找不到盘了,就是语音多了。 - -**[01:16:33] 发言人 0**:我的我第一个想法,一个语音,我准备找一个麦麦旁边。 - -**[01:16:40] 发言人 8**:我真的你朋友你那个手机和你腾讯那个手接了。 - -**[01:16:45] 发言人 0**:那你就我知道我已经这么动了,但是我发现我还是台着接个语音也是更好的方式。 - -**[01:16:52] 发言人 0**:因为我不讲,因为他这两条他俩苹果很聪明,他是两个。 - -**[01:16:56] 发言人 0**:他的sk里面我发现他走的两条他的两条路,就你语音说的那个和他那个台式机的那两个然样别因为这他没跟你完全混合。 - -**[01:17:07] 发言人 8**:那就有点理解意思。 - -**[01:17:09] 发言人 8**:我现在比方。 - -**[01:17:11] 发言人 5**:不同的渠道,它是隔离的。 - -**[01:17:13] 发言人 6**:反正现在我客接我说你我在。 - -**[01:17:16] 发言人 8**:电脑上装个,再下载一个什么模型不对。 - -**[01:17:19] 发言人 8**:所以我想说的是什么? - -**[01:17:22] 发言人 8**:我们未来。 - -**[01:17:22] 发言人 0**:很有可能就是回微信语音,就是不用那个,这是第一第二我再说一个反弹的,其实看微信是不愿意听语音的,愿意看文字的对,因为前段间咱们很多人沟通很多语音,我就愿意把它转成文字。 - -**[01:17:39] 发言人 0**:因为我看文字的速度比语音快,听语音的速度反而慢。 - -**[01:17:44] 发言人 0**:是外你除非是为了听他关怀的话,你想听听他声音,听他感情。 - -**[01:17:49] 发言人 0**:所以你看情绪价值,所以你看用语音去说,然后用眼睛去看。 - -**[01:17:55] 发言人 0**:这个后面是这样的,所以你微信一下,那看就问看们我们研究,我说的对吧? - -**[01:18:03] 发言人 0**:我觉得看语音其实是不太愿意的。 - -**[01:18:06] 发言人 0**:因为有时候你你你那个你拿个语音听我操一看50秒,人家给你说555 10秒。 - -**[01:18:12] 发言人 6**:你烦省的很影响。 - -**[01:18:14] 发言人 6**:也应该是我都是。 - -**[01:18:15] 发言人 0**:默认直接转文字,我对不对? - -**[01:18:17] 发言人 0**:你转文字以后你看的快对不对? - -**[01:18:19] 发言人 0**:秒,所以你看这以后就说语音转文字,我操真他妈的以后键盘都没了,就是拿着哔哩吧啦在说。 - -**[01:18:27] 发言人 8**:我操说以后给我一个字,说基本。 - -**[01:18:30] 发言人 0**:上已经不字,我就对,那从这个角度我就问你,你们就你你就解决那个解决他们那个。 - -**[01:18:36] 发言人 0**:如果他们纯粹是为了那个语言,对语言的回答就是为了回答。 - -**[01:18:41] 发言人 0**:那我觉得通过让他文字化,让他文字化也是个属性,也是个能力。 - -**[01:18:46] 发言人 0**:因为他让他文字化那边就文字化那边看起来简单,然后这边他说的也快,或者刚才说的他稍微改一改。 - -**[01:18:55] 发言人 0**:我就我觉得你们朝这个方向去,真的,你如果A不解决我们所有的流程是没有机会的。 - -**[01:19:07] 发言人 6**:好,上周就是云桌面这边把把那个大架构输出,又又讨论一下知识库的这个选型和架构。 - -**[01:19:17] 发言人 6**:目前看到我们可能用那个那个呃诺。 - -**[01:19:21] 发言人 5**:这可能再讨论一下,我感觉有点问题。 - -**[01:19:25] 发言人 6**:对,因为那我们再看一下,但是你基于那个那个最基础主要是做的话,那工作量太大了。 - -**[01:19:33] 发言人 5**:他不是这个意思,就是说我是觉得以后我只有一个入口,我不可能只是后一个入口。 - -**[01:19:39] 发言人 6**:然后是是一个入口是一个入口,是没没说对,是一个入口。 - -**[01:19:43] 发言人 6**:就是以后知识故事要藏在下面的,就是有所有的东西都不能够暴露给客人。 - -**[01:19:49] 发言人 5**:所以说其实你你那你选择那个它,其实它的价值和意义是在于它是一个完整的字出上面。 - -**[01:19:56] 发言人 6**:完了之后,你就上次你那个选型,我跟方讨论一下,估计工作量太大了。 - -**[01:20:01] 发言人 6**:桌面,而且我也看过了。 - -**[01:20:02] 发言人 8**:并且我觉得这里头最关键的一点是这个知识库一定要和AI的结合非常友好。 - -**[01:20:09] 发言人 8**:因为人只会这样,就人你比方说生长他以后他查他只会说我上周的发票你帮我看一下。 - -**[01:20:17] 发言人 8**:他不会去打开界面说我我我自己去选什么时间的发票。 - -**[01:20:21] 发言人 6**:他是他知识库,他知识库就是完善的什么,就是整个的产体,他都有叫什么都有。 - -**[01:20:31] 发言人 8**:他只会和AI打交道,就是我们所谓的人的接口,只是AI是我不会在乎去打开一个界面去怎么样操作这个事情。 - -**[01:20:44] 发言人 6**:界面还是要有的,我说逃不开界面的,光对话这个产品会作死的。 - -**[01:20:50] 发言人 6**:不是每个人都都都都都都习惯命令行对话的形式去输出所有的东西。 - -**[01:20:56] 发言人 8**:不就重要的。 - -**[01:20:57] 发言人 8**:我我我不是说你比方报账你是有界面的,我觉得我是认可。 - -**[01:21:02] 发言人 8**:但是其实对人的操作来说,你比方说我操作这个东西,我就不愿意去打开我的知识库去查我上上个月或者上上上个月或者什么时候的一个什么信息。 - -**[01:21:15] 发言人 8**:我一定是一句话问没冤,你帮我调出来。 - -**[01:21:18] 发言人 6**:一定是这个逻辑。 - -**[01:21:19] 发言人 6**:他调出来过后,你还是要给他一个界面,他会去做一下他自己的一些整理。 - -**[01:21:25] 发言人 6**:是这个我还是认真调研一下,包括一些非非研发人员的常规使用者,他还是要这个东西,百分之百要这个东西。 - -**[01:21:32] 发言人 6**:你不可能让他命令行式的去有纯文本的输出,让他去整理的他个人的知识库和上报企业的知识库,包括一些权员设置和目录的一些内容的一些调整,它都需要一些图形化界面的淘派。 - -**[01:21:49] 发言人 8**:这个我觉得下来再讨论,这个我有不同的观点。 - -**[01:21:53] 发言人 6**:这是逃不开你你要你要问。 - -**[01:21:55] 发言人 8**:因为你你比方说你财务,你如果有一大堆界面,然后以后C M你也有一大堆界面,实际上我们做的这个东西就。 - -**[01:22:04] 发言人 6**:不是一个A化,这个界面其实很好生成,但是你不跟他个界面,普通人他不会用,用不了的。 - -**[01:22:11] 发言人 0**:好,下来,继续。 - -**[01:22:12] 发言人 6**:然中端管理这里采购办法和法务采购开了会,到时候刘亚群会约领导上会审核。 - -**[01:22:20] 发言人 6**:然后终端这边再进行刚刚说的那些所有证书的更新。 - -**[01:22:25] 发言人 6**:因为他是今年的一个新规,他所有的节能和能效要求重新做认证,所以我们所有的终端在在然后那个mp接口的mc p接口上周机个这边的研发已经完成了。 - -**[01:22:39] 发言人 6**:完成过后其实也发现了一些问题,就是前期我们在所有的vdi的商务和商务两个商务在使用这个系统的时候,实际上他可能线下做了本台账,有些发完货的一些数据其实没有在系统上更新。 - -**[01:22:56] 发言人 6**:这是更新完P接口做完后,我们上周四和5的时候发现这个问题。 - -**[01:23:02] 发言人 6**:今天上午那个商还在补一些数据,补完今天上午我们可以使用这个龙虾来进行统计。 - -**[01:23:09] 发言人 6**:看一下,差不多有五十多个项目在补一些数据,然功能上已经完完全完全完成了。 - -**[01:23:17] 发言人 6**:我这边就。 - -**[01:23:18] 发言人 0**:是龙虾用的还是那个boat,那不来对你用谁都无所谓。 - -**[01:23:22] 发言人 0**:我知道,那我们就这么说,我们一来的话就是这个,比如说我们这个在云的面里面,我们还是在胖公。 - -**[01:23:30] 发言人 6**:园里面做都可以做。 - -**[01:23:32] 发言人 6**:我们现在不分说话都是终端,没什么关系,没关系,只要有个桌面就行。 - -**[01:23:37] 发言人 0**:你还是主要他们那还是可以利用本地的计算。 - -**[01:23:41] 发言人 6**:利用本地的一些这个都一样。 - -**[01:23:43] 发言人 0**:它无用微di就调用服务器的计算,你调。 - -**[01:23:46] 发言人 0**:如果我是觉得你像龙虾这种,因为有时候还是要跟本地电脑之间的,你比如我们在装电脑装了龙虾,这个龙虾它本身就是一个不叫病毒,它本来就是一个非鸭群。 - -**[01:24:00] 发言人 0**:你如果说是你如果是预装龙一下,比如我们把东西都预装在我们的胖龙管里面,那个是不是会但你遇到的服务器也可以,我径得是两条路径,因为遇到的服务器的国架和遇到他们的生产国家是两回事。 - -**[01:24:19] 发言人 6**:我觉得你可以可以思考一下。 - -**[01:24:21] 发言人 6**:所以说最终这个产品做出来,对龙山的本地的权限,你要去做很多工作没问题。 - -**[01:24:26] 发言人 0**:就是一般不然客户敢用的,不然的不然客户敢用。 - -**[01:24:29] 发言人 0**:正是因为不敢用电脑,所以才敢用我的朋友端。 - -**[01:24:32] 发言人 0**:因为我这种C. - -**[01:24:33] 发言人 6**:陌我这种陌人我做来做的管理,所以说要去做这些事,软件方面要去开发就是对吧? - -**[01:24:40] 发言人 1**:因为你预装在我们把电脑拿过来。 - -**[01:24:43] 发言人 0**:我们预装龙虾,我们预装里面一些东西,因为它里面我觉得它确实会有毒。 - -**[01:24:48] 发言人 0**:你他写你底层,有些东西给你写,那不能写,还是有问题的。 - -**[01:24:55] 发言人 0**:昨天我就他妈两个接口,我看我就在昨天我装俩模型,你直接把我那个搞死了,就两个应调用了。 - -**[01:25:02] 发言人 0**:同样口我装了模型,昨也把我他妈下午我搞死了,搞死了,我他妈重启又重启又删掉,我光删都删了。 - -**[01:25:10] 发言人 8**:都外了五。 - -**[01:25:11] 发言人 0**:次就删农家猫,我删那个欧了么的那个那个海外版,我操。 - -**[01:25:18] 发言人 0**:就是你如果我在想,你如果用这个胖龙湾这些东西,你提前把底下横多锁死。 - -**[01:25:26] 发言人 0**:为什么360在做龙虾? - -**[01:25:28] 发言人 0**:那天说360360其实是把龙虾做成了一个什么的,就是纯纯的360龙虾或者龙虾。 - -**[01:25:35] 发言人 0**:360就是我龙虾放在里面,我给你管完,是360是管龙虾,根据自己的说。 - -**[01:25:41] 发言人 0**:对。 - -**[01:25:41] 发言人 6**:这他的他就是做的很不安全的。 - -**[01:25:44] 发言人 7**:他他就想管你所有的。 - -**[01:25:47] 发言人 0**:不是,所以我想说我们我们的舆论面其实核心的关键词就是安全共享。 - -**[01:25:54] 发言人 0**:加一个是所以原来叫安全共享,现在叫安全共享,价值就价共享。 - -**[01:26:01] 发言人 0**:我就下来你们研究下好吧。 - -**[01:26:04] 发言人 0**:因为你胖的,你瘦的,你掉服务器资源确实也挺烦的。 - -**[01:26:08] 发言人 0**:你虽然做个沙核,如果如果你不给他做好,不给他做任准化,他把你服务器也搞的他妈的瞧不得。 - -**[01:26:15] 发言人 4**:那我汇报到上面的情况,凯马尔,开庭是定的7月20号登卷的上门开庭之后,然后从开庭的情况研判法律,那有律师或者周杰的影况下,应该。 - -**[01:26:33] 发言人 0**:会维持原判。 - -**[01:26:34] 发言人 0**:好的,维持延慢说明他们罚两次了。 - -**[01:26:36] 发言人 0**:我估计他们这个国企可能应该会是吧,会有一些解释,估计这个们。 - -**[01:27:11] 发言人 0**:因为如果他妈的折腾了两个月不给判决书,那他妈就是个大子,所以别无进展。 - -**[01:27:16] 发言人 0**:因为这里面这东西都是都都到最后了。 - -**[01:27:20] 发言人 4**:那我们九龙坡越到最后就。 - -**[01:27:24] 发言人 0**:一锤定音,如果报了,他们还在上面的领导,他妈的领导说一句话是吧? - -**[01:27:30] 发言人 4**:好,我们现在落实这个那那个全国公安8月6号开庭的事情。 - -**[01:27:42] 发言人 0**:就是我们汇报上周五那个款程序是光报。 - -**[01:27:49] 发言人 0**:我觉得在个果们搞个公安操太麻烦了。 - -**[01:27:56] 发言人 0**:如果你真是审判下来。 - -**[01:27:58] 发言人 4**:你怎么这个就是我们要不跟法院问,法院下不是我就试试。 - -**[01:28:03] 发言人 0**:不人能不能把事办。 - -**[01:28:05] 发言人 0**:如果不人能事,说明这个,就是我们下一步法院法。 - -**[01:28:10] 发言人 4**:因为他不怕。 - -**[01:28:11] 发言人 0**:我肯定不怕,怕他老大,他老大哪天他妈的人民就是江山就人民,对不对? - -**[01:28:18] 发言人 0**:他天他的那事报了,他老大搞他,不是我搞他那么简单。 - -**[01:28:24] 发言人 0**:好吧,我们试试。 - -**[01:28:26] 发言人 4**:不要那个事干了。 - -**[01:28:27] 发言人 4**:好,然后上周五公安就是要求我们去撤诉,才能走付款决程。 - -**[01:28:33] 发言人 4**:本周我先去跟他们聊一下,然后看着情况怎么说,烟台七八号开庭,上周他们还是在播材料,准经开庭前再把材料整体再看一下。 - -**[01:28:47] 发言人 4**:男人一般在在签合同中,然后闫运维应该本周三上常委会,分局跟杨群都汇报了,应该没什问题。 - -**[01:28:59] 发言人 4**:产品审计第二版的第二版要材料的材告,我们在,感到地板比较好,应该没什么大的问险。 - -**[01:29:11] 发言人 4**:南牙电力王磊明天过来,他说应该是他们就把钱交了十几万块,就是不开庭了。 - -**[01:29:18] 发言人 4**:现在撤所这个事。 - -**[01:29:20] 发言人 1**:他明天我找。 - -**[01:29:21] 发言人 0**:因为工程者。 - -**[01:29:22] 发言人 4**:总共是还们的发行人说的是约定这个约定他们是昌平,现在是经常还,走的时候反还。 - -**[01:29:34] 发言人 0**:产品就两个事儿,第一就是二期的话,你们如果要开会的话,需求你们提前抓紧准备是吧? - -**[01:29:40] 发言人 3**:我会材料准备好,到下午中午要开会,有项午如果就。 - -**[01:29:47] 发言人 3**:材料不做,备好,你两交项目材料有。 - -**[01:29:50] 发言人 0**:可能没时间,那就明天。 - -**[01:29:52] 发言人 0**:然后宁夏理工这个事儿,你们那个软件部分三个部三个事。 - -**[01:29:58] 发言人 4**:上次我感觉他们现在反过来是有点进展,一个是数字那个数字那个产品他们供应商他软件架没打好,然后现在主要是没数据,没数据的成两部分。 - -**[01:30:10] 发言人 4**:一个有部分说本来就没这个数据,第一部分除得你的数据,还是建设中,就是供应商大概想法采用模拟数据展示。 - -**[01:30:21] 发言人 4**:但是还跟客户商量的跟客户商量。 - -**[01:30:25] 发言人 0**:如果如果客户认可的方案的不行,有点有的交付的交付量个很大的问,就交付只能给你交付,但这个量你说怎么来量呢? - -**[01:30:37] 发言人 6**:交要一个标准,又每个评。 - -**[01:30:39] 发言人 4**:分在这个上面的写了,他说可以把其产品的解,那是现在他。 - -**[01:30:44] 发言人 8**:们是搞定了也是那现在又有这种做。 - -**[01:30:48] 发言人 0**:的比较好,很容易就说数字人,说的这是对的。 - -**[01:30:52] 发言人 0**:数字人为什么我们一直我们接数字呢? - -**[01:30:54] 发言人 0**:这样一个是成组化21个我希望数字务我们最后下一步还是我们研发自己做,就是自己做了以后。 - -**[01:31:01] 发言人 1**:我们希望面成产品。 - -**[01:31:03] 发言人 0**:因为这里面很简单,这里面也是模型,就是模型调用。 - -**[01:31:10] 发言人 4**:而且无人机源这么进展,上次基本达成一致意了,可以。 - -**[01:31:15] 发言人 0**:先启动建设阿里机。 - -**[01:31:17] 发言人 5**:有没有信心呢? - -**[01:31:18] 发言人 5**:我说我们其实整个搭建这些东西都已经走通了。 - -**[01:31:23] 发言人 5**:前面确实缺点算力,因为每跑一次要当时跑一次要2个小时以上。 - -**[01:31:29] 发言人 5**:然后如果要输出这种高精度时间还会长。 - -**[01:31:33] 发言人 5**:但是确实测到H 20以后,我觉得完全可以我们。 - -**[01:31:37] 发言人 0**:你没事把什么秒叫起来,喝个酒秒聊。 - -**[01:31:40] 发言人 0**:我我我约了他了。 - -**[01:31:41] 发言人 5**:经常坐坐。 - -**[01:31:42] 发言人 0**:然后我知道,然后再跟那。 - -**[01:31:44] 发言人 5**:个我之前不知道他在重庆,结果他在重庆。 - -**[01:31:47] 发言人 0**:跟医疗局他边有事要通个电话,一定要去做这个事儿。 - -**[01:31:51] 发言人 5**:我知道我跟吴佳淼一个是约了。 - -**[01:31:54] 发言人 0**:因为我下一步。 - -**[01:31:55] 发言人 5**:我还是想让我跟一个是约了吃饭。 - -**[01:31:58] 发言人 5**:第二个,我这周还会跟他两个交流一下,因为他他这边他也有压力。 - -**[01:32:04] 发言人 0**:他们是防范着我们,就是按理所以说说医疗平法案,你做算法,我说我不做算法,是吧? - -**[01:32:10] 发言人 0**:但是我就应用。 - -**[01:32:12] 发言人 5**:我做调度。 - -**[01:32:13] 发言人 5**:对。 - -**[01:32:16] 发言人 0**:你们就是这个叫呼声。 - -**[01:32:18] 发言人 0**:怎么说来你你你那那闪烁的声音我也没,你早说,我早就去弄这事了。 - -**[01:32:24] 发言人 0**:你哪次呼,你上次说买头牛马上给你买一个他妈的小黑盒,我操几万块钱,你早说我就早就弄。 - -**[01:32:32] 发言人 0**:我上周跟紫薇聊了两次,但一开始他全分完了。 - -**[01:32:36] 发言人 0**:后来就说我说你那一台0.5台,他说他最起码保证0.5. - -**[01:32:41] 发言人 7**:但是我感觉一台实际上是能保证的,但我们那个有算力了,那个能做好,类似是特别这个心。 - -**[01:32:48] 发言人 5**:这块其实可以的,我们只因为之前调一次时间太长了。 - -**[01:32:53] 发言人 8**:他他其实难的就是像我拿出去交给那个人做,他也是这样的,他其实难的是不够,他其实男的是他排队排排排排了以后,然后他发现不对,他就要重新来调这个提示。 - -**[01:33:09] 发言人 0**:但不这里面有两个,如果是用这个隧道小模型,我们不用随账时。 - -**[01:33:16] 发言人 0**:如果用小模型,对我觉得可以自己布,我们是自己布对吧? - -**[01:33:21] 发言人 0**:对,如果大模型你肯定是面对排队,但是你也可以什么呢? - -**[01:33:25] 发言人 0**:你直接拉到国外去? - -**[01:33:28] 发言人 0**:你拉到国外找个模型一样做。 - -**[01:33:30] 发言人 0**:只不过钱的问题,我现在就是急迫的,因为将易碰到的问题是我现在就不知道什么叫性价比最高,而且这个是拖。 - -**[01:33:40] 发言人 7**:的时间有点长了。 - -**[01:33:41] 发言人 7**:他们现在是200美金的的那个那个计划,好像很价值很高。 - -**[01:33:47] 发言人 0**:就是包月。 - -**[01:33:48] 发言人 0**:但是我不知道排队。 - -**[01:33:49] 发言人 7**:他说相当于全部买的话,相当7200美金的。 - -**[01:33:54] 发言人 7**:这个就是我我跟你说。 - -**[01:33:57] 发言人 0**:我再说一个,这是因为你们没想,我帮你想你下来你把你们那清楚,我会针对关于这个算力,这个Ken不是每个人都能钱的,这个就按那个职称来的,有人就是50块,有人就是100块,有人就是他妈300块,有人就是一千。 - -**[01:34:16] 发言人 0**:你们核心的两个人,我觉得那你承担的任务共重,那就给你开大。 - -**[01:34:20] 发言人 0**:至于你把那个账号给谁就给谁,这要开大的就开个盛钢跟我说的,100美金包月,一千美金包月,100美金。 - -**[01:34:29] 发言人 0**:我操你买美金包月,那太便宜了,你先弄十个。 - -**[01:34:34] 发言人 0**:1000美金你乘以10乘以7,所以你才6000块钱,那算啥? - -**[01:34:39] 发言人 0**:你一共研发才多少个人? - -**[01:34:41] 发言人 0**:自己不去想这些事儿,我操他妈的都是我就真的,你别说我唠叨,咱们兄弟,你妈但是这事你抓紧了。 - -**[01:34:51] 发言人 7**:别去给我你的数字人整不出来。 - -**[01:34:54] 发言人 0**:这个整不出来的比较困难的时候,就是都没问题。 - -**[01:34:58] 发言人 0**:这个我可以来找我。 - -**[01:35:00] 发言人 7**:用个刘封号比严重,就是像这个账号比较大对。 - -**[01:35:05] 发言人 5**:随时都会。 - -**[01:35:06] 发言人 0**:我可以做那个,因为刘强我这个朋友他是他们专门是个国企做这个体制,做唯品的。 - -**[01:35:13] 发言人 0**:如果我们出于那个国企的考虑,我们所有人我们就给他跟他一起谈,让他给个便宜价,我们就全部做出来拼是没问题。 - -**[01:35:23] 发言人 6**:一直有免费的体,虽然速度快,但是跑。 - -**[01:35:26] 发言人 8**:cloud的那个跑频。 - -**[01:35:29] 发言人 7**:保企外们中国信和。 - -**[01:35:33] 发言人 0**:国移动供就保证什开的视频不断。 - -**[01:35:41] 发言人 0**:他们在做的,他们在国外建立了很多服器节点,然后我发人工在后面看,也有自动营的员工发现你如果你的打速度慢了,带宽快了,马上给你。 - -**[01:36:03] 发言人 0**:从阿里巴巴,比如从从下一个节点从香港调到新加坡,新加坡调到哪,他把中间的几个节点都跑这手公,我上次我了一,我操我了,我操,我很开心的,我来一直中间个果。 - -**[01:36:18] 发言人 0**:可。 - -**[01:36:19] 发言人 5**:他们这种视频主要是做cdn建设,我们其实还用不到那么高。 - -**[01:36:25] 发言人 0**:你好吧,你赶快去捋捋。 - -**[01:36:27] 发言人 0**:好,你说你重要的工作,你说你现在你重要工作在哪,这就是重要工作。 - -**[01:36:34] 发言人 0**:就资源调配和。 - -**[01:36:36] 发言人 5**:人家改造流程。 - -**[01:36:37] 发言人 0**:人家先向一道学习,然后再越一就是要资源犊,你的资源也不会先向学习,但我们要超越。 - -**[01:36:47] 发言人 0**:我开玩笑。 - -**[01:36:49] 发言人 4**:我是会宝。 - -**[01:36:51] 发言人 0**:宝。 - -**[01:36:54] 发言人 0**:赶快,我觉得算力这个事确实是很重要。 - -**[01:36:58] 发言人 0**:你那天画的这个曲线非常好啊,是吧? - -**[01:37:01] 发言人 0**:这边是他妈能力? - -**[01:37:02] 发言人 0**:那边是这个叫什么采纳度? - -**[01:37:07] 发言人 0**:这个采纳度。 - -**[01:37:08] 发言人 8**:这边是能力,中间就是我们的机会。 - -**[01:37:11] 发言人 0**:对,你看这个东西我认真看了好几遍,我操我把图贴下来,我还跑去他妈的又让豆包给我解解讲讲。 - -**[01:37:19] 发言人 0**:我说是不是所有东西都是这样的? - -**[01:37:24] 发言人 0**:确实这样,他妈的有一个度,这个面都的都是。 - -**[01:37:29] 发言人 5**:这个是吧? - -**[01:37:29] 发言人 5**:现在是就是企业和个人大家都知道,但是确实从到落地上面和真正这些他的这个差距大。 - -**[01:37:36] 发言人 5**:这个就是有有一群人现在就卖个人,就是卖客卖卖方案,然后企业这所以。 - -**[01:37:42] 发言人 0**:我们这里面我大概我看我学这个豆包,我学这个就给我大概也理解几个点。 - -**[01:37:51] 发言人 0**:就是硬件的配置,你给人家配硬件大环境是吧,这是云面是一种配硬件,然后就是你。 - -**[01:38:05] 发言人 5**:的那个Memory Scale,你这memory的机会,scale的机会,还有就是。 - -**[01:38:15] 发言人 0**:你那个那个模型你怎么给人scale,可能后面机会会越来越小。 - -**[01:38:25] 发言人 0**:因为现在模型的这个能。 - -**[01:38:29] 发言人 7**:力升级后的,你如解解就是算力调度。 - -**[01:38:34] 发言人 6**:这块还是这个。 - -**[01:38:35] 发言人 0**:如果我你刚才说这个,我觉得如果他妈的就是海外的这个,你说海外这个算力,如果中国一直在疯,那可能中间会有一个意。 - -**[01:38:48] 发言人 5**:就是这个现在意在就。 - -**[01:38:50] 发言人 0**:是在海外的对,国内就相当于是网上很多天天倒在。 - -**[01:38:55] 发言人 6**:微P那绝对是倒致这个不。 - -**[01:38:57] 发言人 0**:是导一些很多算我的算力。 - -**[01:38:59] 发言人 0**:比如说你把你的东西交给我,我拿到算力去算了时。 - -**[01:39:03] 发言人 6**:已经很多人在做了。 - -**[01:39:05] 发言人 0**:就不让你直接访问这个有。 - -**[01:39:09] 发言人 7**:有这个专门有做这个事的。 - -**[01:39:12] 发言人 5**:现在这是个大生意,但是都是很多。 - -**[01:39:15] 发言人 0**:个人或者小团队在这确也。 - -**[01:39:17] 发言人 7**:有也有做。 - -**[01:39:18] 发言人 0**:的比较大。 - -**[01:39:19] 发言人 8**:也有做做的比较大。 - -**[01:39:21] 发言人 6**:一年上千万,月上千万上都去买了点3. - -**[01:39:24] 发言人 5**:很便宜,我也不知道他是哪来的。 - -**[01:39:27] 发言人 5**:他这样的就是好多国。 - -**[01:39:29] 发言人 6**:外的平台,他注册以后有可能免额。 - -**[01:39:32] 发言人 5**:他就把这些免费额度给你集中在一起。 - -**[01:39:35] 发言人 0**:然后再做二次处发。 - -**[01:39:37] 发言人 0**:他就然后你你把你把那个把那个给印给他他自己再到那边,完了再再输。 - -**[01:39:44] 发言人 6**:这这些这些导爷多的很,以前都那种薅羊毛的人多的很。 - -**[01:39:49] 发言人 8**:但是这里头也有一个,就是确实因为现在你有很多算例,你搞清楚它的来源。 - -**[01:39:55] 发言人 8**:就像我前段时间我去买了一个cloud code的,后来我就发现我用了一张我的万不是。 - -**[01:40:05] 发言人 6**:的字。 - -**[01:40:10] 发言人 0**:他有。 - -**[01:40:14] 发言人 8**:候。 - -**[01:40:16] 发言人 7**:害渠道。 - -**[01:40:44] 发言人 6**:作为二做八的捣乱。 - -**[01:40:46] 发言人 0**:如果是研发,一般美金是很便宜的对,作为研发,如果软件开发的时,我给他配个100平金. - -**[01:40:55] 发言人 7**:什么问题呢? - -**[01:40:56] 发言人 7**:他们算出来以后,其实是真正就是每一个做出来的编程以后。 - -**[01:41:02] 发言人 0**:这编程真正用到的钱很少一点点。 - -**[01:41:06] 发言人 0**:你就上下的图像看图像多图像图像是吧? - -**[01:41:10] 发言人 0**:编程确实编程那个头不多,你扔在在这代码,尤其你那编程,我你扔那代码,他给你扔代码,就数字人好吧,你H 20拿过来,你等等会马上给王建表跟他聊去。 - -**[01:41:23] 发言人 0**:我不知道人家有一台,人家他妈八个人啥时不干,一台拿了天天看。 - -**[01:41:28] 发言人 0**:小妹妹,我操你他妈的那么多事,你没有那么数字,没有这个东西。 - -**[01:41:33] 发言人 7**:上周下单数量还是偏少,这个到就两周了,相当于是71万。 - -**[01:41:40] 发言人 7**:这个毛利是下午再说。 - -**[01:41:43] 发言人 0**:你这个周下午再说。 - -**[01:41:46] 发言人 7**:那我稍微说说,可以有个事情要说一下。 - -**[01:41:54] 发言人 7**:上周有个项目就是中野赛迪,我们知那一些退货,上周到学球总办公室来的是吧? - -**[01:42:03] 发言人 7**:这个销售说肯定要退货,已经很明确了,他们身心服的东西已。 - -**[01:42:09] 发言人 0**:经到了。 - -**[01:42:10] 发言人 7**:因给不出来。 - -**[01:42:12] 发言人 6**:那个他他有他有三点大的定制开发需求,然后是在一月份的时候提出来的。 - -**[01:42:19] 发言人 6**:出来因为人力问题,本来说分两期给他做,然后当时陈江云走,陈江在沟通当中两个点的先后问题一直在跳跳,最后也不知道到底是怎么确认的,然后先给他做了一个三月份的时候,第二个大的需求其实是六月底要给他交付。 - -**[01:42:41] 发言人 6**:但是三月份到6月份中间,又发生了,他们那些网络,因为他服务器在北京,他们说有些卡顿,有一个桌面有卡顿,桌面有卡顿其实。 - -**[01:42:52] 发言人 7**:是他的那个性能卡顿,卡顿的问题一直没有解决。 - -**[01:42:56] 发言人 7**:但是人家用了生信服的。 - -**[01:42:58] 发言人 6**:说是就没有卡顿服务。 - -**[01:42:59] 发言人 7**:生物给他开的高U就没有卡顿,所以他们觉得信服很好。 - -**[01:43:04] 发言人 7**:还有一个其实是我们有两个定制,应该也是主线版本里面的这个东西。 - -**[01:43:10] 发言人 7**:但是我们因为人力不够,所以一直没没开发出来。 - -**[01:43:14] 发言人 7**:所以人家试用了身心服以后就去明确决例。 - -**[01:43:18] 发言人 6**:他这两个需求就要退了。 - -**[01:43:19] 发言人 6**:都不好意思。 - -**[01:43:20] 发言人 0**:说他非。 - -**[01:43:21] 发言人 7**:我们造成什么影响,我们我们也现在情况下,这个项目要退了就要要退货,他已经很明确要退货,退货,然后销售给我们的就是这个没办法了,当时雪球逼着他在办公室给客户打电话,说的是这个。 - -**[01:43:37] 发言人 6**:实际上他poc测试的时候并没有提出这两个需求出来。 - -**[01:43:42] 发言人 6**:这两个需求一个是。 - -**[01:43:43] 发言人 0**:班图的个跟我说明。 - -**[01:43:45] 发言人 7**:了现在结果亏多少钱,这样的就是我的想法是这个直播项目是21万,21万里面有17万的软件和维保。 - -**[01:43:56] 发言人 7**:这个没办法,而不是维保软件和那个授权,就17万,17万给他退,但是我要扣他那个研发我前期投入的钱,我按宇浩给我算法是有一百多个人填。 - -**[01:44:08] 发言人 7**:我说这个是说不过去了,反正我就算扣他20天10万块钱,这样的话就是把把整个项目的毛利我我我解,可以就这样。 - -**[01:44:19] 发言人 0**:这种只能一说合适,这个我就这么跟他做,可以跟你说一下,那这周就给他答复了,做吧。 - -**[01:44:27] 发言人 0**:这第一第二,如果说因为我们现在正在本来要给于总报子,因这两天的事儿多,因他今天早上我昨天晚上给我打电话说,周二他就给于总报就上课我们写的这个方案了。 - -**[01:44:40] 发言人 0**:于总肯定是把这个交给张涛,这个里面就是关于这个事,我们还要去说,就是你这个给我的你的研发,但这个是说实话这个是双面双击。 - -**[01:44:53] 发言人 0**:就人家你这个事儿,你说你看我们是应主越赛迪说的项目,最后我们没拿下。 - -**[01:45:01] 发言人 6**:这个不可能不好说。 - -**[01:45:02] 发言人 0**:实在可倒过来说,以后就是不。 - -**[01:45:05] 发言人 6**:要卖你洗碗,到时候他里面那个需求是无版图虚拟机操作系统适备。 - -**[01:45:10] 发言人 6**:为什么我们这些一直性人去适配的一个系统? - -**[01:45:13] 发言人 6**:是因为需求太对我们来说太需求太少了,谁也不做。 - -**[01:45:17] 发言人 6**:但是升心服务肯定他有需求,他早就人家按部就班的去。 - -**[01:45:20] 发言人 0**:做二十多个,谁也不强调的乱买。 - -**[01:45:24] 发言人 8**:因为中冶三扩容是重庆,至少在两江八十里。 - -**[01:45:29] 发言人 7**:这后面这个项目就跟我没关系了。 - -**[01:45:33] 发言人 6**:这个冶客户就丢了,甚圳五矿集团。 - -**[01:45:36] 发言人 3**:五矿集团的也丢了。 - -**[01:45:39] 发言人 8**:大这个客户样板点对。 - -**[01:45:41] 发言人 0**:我们的意义应该还是有的。 - -**[01:45:45] 发言人 3**:也赛别人。 - -**[01:45:46] 发言人 5**:训拟赛你自。 - -**[01:45:48] 发言人 0**:己不。 - -**[01:45:49] 发言人 6**:是对我们确实。 - -**[01:45:51] 发言人 0**:就研发给力。 - -**[01:45:53] 发言人 3**:我就是研发不给。 - -**[01:45:55] 发言人 6**:那我说的云桌面现在他研发主要空间。 - -**[01:45:58] 发言人 3**:还有就是当时不是那个叫什么高温不干了,就把这个项目给拖了。 - -**[01:46:05] 发言人 3**:双方的谈判拖了三个月,所以说人家重新。 - -**[01:46:09] 发言人 0**:内部要不要点一点,内部要不要给。 - -**[01:46:12] 发言人 6**:我们点一下,当时他们没谈,他这里不。 - -**[01:46:16] 发言人 0**:他就不干,他就不干,给人高要点一点,这事我高了,他们陈主任内部。 - -**[01:46:22] 发言人 7**:他就那么点人力,就24人. - -**[01:46:26] 发言人 3**:就这个,但那个当就是你要一台是做开发,最后一个那个那个键盘是频还是要游戏开发的吗? - -**[01:46:35] 发言人 6**:他他不是开发,不是连沟通那个研发具体的。 - -**[01:46:42] 发言人 7**:所后面有一个项目,他我跟他开过一次会,他说反正研发就这个能力,我们完全听你们汇智的,你们让我们。 - -**[01:46:52] 发言人 0**:个那边当时因为合同没。 - -**[01:46:56] 发言人 6**:谈下来,连连我们联系他的人都回来一个多时。 - -**[01:47:02] 发言人 0**:问我这个没有系人。 - -**[01:47:05] 发言人 0**:但是这里面还有个。 - -**[01:47:08] 发言人 7**:卡顿的问题,一直没解决。 - -**[01:47:11] 发言人 3**:是就是用着用着就卡了。 - -**[01:47:14] 发言人 0**:我们就得从其。 - -**[01:47:15] 发言人 6**:他我们也有两个问题给他们说了的。 - -**[01:47:19] 发言人 0**:他们不认,这是客户的直播。 - -**[01:47:22] 发言人 6**:这个司机部没有在北京不服气,现场服务器的车,我们现场是不是。 - -**[01:47:26] 发言人 7**:也不卡顿呢? - -**[01:47:27] 发言人 7**:这没办法,你这卡顿的最大问题就是卡顿。 - -**[01:47:31] 发言人 6**:我跟你在现场吃,当然不要客户卡顿。 - -**[01:47:34] 发言人 0**:我们一直说我们没卡论这个。 - -**[01:47:36] 发言人 6**:东西就是产品质量问题上,你去上那个实际环境。 - -**[01:47:40] 发言人 6**:对他服务器在现场,我们服务器在手机的时候也不卡顿。 - -**[01:47:43] 发言人 6**:现在那服务器在北京他卡顿。 - -**[01:47:45] 发言人 7**:然后生意放在那那人家客户在面前他就是卡顿,你这解决不了。 - -**[01:47:50] 发言人 3**:不怎么人资幸福,现在又没有把户布在重庆了,人家已经开始在北京用了,人家就是不卡顿,怎么一直这就是一个产品质量问题,你咋不承认呢? - -**[01:48:01] 发言人 3**:那没有对比,没有障碍,人家慈信府现在全靠2000路都拿下来。 - -**[01:48:06] 发言人 6**:人家没有投诉问题。 - -**[01:48:08] 发言人 6**:我我还是得说细一点,卡们有2两个2个问题。 - -**[01:48:11] 发言人 6**:第一个问题是网一个网络的,第二个是他们当时用那个乌班图,他们里面跑的任务比较多,然后按照他们既定的规划,开6盒的时候确实卡顿的。 - -**[01:48:22] 发言人 6**:然后我们也给他测了,开八核的时候他就不卡了,然后真的不去别的开八核,开了12个单车的。 - -**[01:49:00] 发言人 3**:你不信心又开始跳了,先跳了,跳了半年了。 - -**[01:49:04] 发言人 0**:说以后不卖了。 - -**[01:49:05] 发言人 0**:至际这个本来又卖。 - -**[01:49:07] 发言人 3**:因为本来不卖,他去年不是卖了这个,但是这一退的话,所说这些应该就是之前对现说也没用了。 - -**[01:49:16] 发言人 0**:你要早几个月的预警,大家还可以聊聊,现在没有用,好吧,继续。 - -**[01:49:22] 发言人 7**:然后还有一个就是那个服务团队,我们通过外包派遣方式,又找了两个人重新给他做一个。 - -**[01:49:31] 发言人 7**:现都到都都已经入是吧,这个就是在我们现场团队一起工作的,就说是现那这样的话服务团队的人力资源充足以后,我们就可以承接一些项目的线场部署工作了。 - -**[01:49:46] 发言人 7**:等于说我们原厂部署的这些工作可以做起来,有些项目就可以提升能力。 - -**[01:49:52] 发言人 7**:这个跟你说一下其他的项目再说。 - -**[01:49:55] 发言人 0**:我觉得我们就做大项目,也就是未来做大项目,不是都是这个项目,大项目拿不下来。 - -**[01:50:03] 发言人 0**:你看包括陕西那个移动,其实我也没想。 - -**[01:50:07] 发言人 0**:说实话我就因为那个按理说那个周敏,我找他多聊两次,通过人通手。 - -**[01:50:13] 发言人 0**:因为我感觉他也对,这个你也没感觉,他也没。 - -**[01:50:16] 发言人 0**:我聊了聊,我说你反正看看有机会就可他我就担心做不好以后,他妈的最后擦一大堆屁股,我操他妈的,而且运营商屁股擦下来,他妈的影响口碑,我操不敢去买。 - -**[01:50:29] 发言人 0**:所以我们未来你既然像胖子,如果我们人少的话,我们不是说。 - -**[01:50:34] 发言人 7**:未来像胖子的问题。 - -**[01:50:36] 发言人 7**:目前这个情对我们人少的话。 - -**[01:50:38] 发言人 0**:我们还是希望我们还是今年年初说的,做大做小大市场做小生意,通过渠道做,然后把这个然后就是做这一些胖终端。 - -**[01:50:47] 发言人 0**:那终端的话你们把东价给就怎么让人家就一安装一配置。 - -**[01:50:56] 发言人 0**:但大生意是反之,大生意它的粘性大大生意一旦有了它就永远小生。 - -**[01:51:04] 发言人 1**:意越。 - -**[01:51:04] 发言人 0**:是小生意年纪越大,越大的你年纪越大。 - -**[01:51:12] 发言人 5**:好,把研发的情况汇报一下。 - -**[01:51:15] 发言人 5**:云桌面这个一期现云华为那边二期测试。 - -**[01:51:20] 发言人 5**:我上周整个参加了一下他们的会议,然后现场反馈过来有几个问题,但这几个问题上周都已经给客户都已经解决了。 - -**[01:51:32] 发言人 5**:对这个项目那天我也问了一下徐凯,徐凯当时拉拉着我跟华润那边的他们技术经理一起简单交流一下。 - -**[01:51:44] 发言人 5**:他的意思是说从这个软件试用这块,其实他们已经没有什么后续的了。 - -**[01:51:51] 发言人 5**:对,主要就是七月份招投标。 - -**[01:51:53] 发言人 5**:招投标这块,这个项目我觉得可能一个是价格,第二个就是说他整个的那个还有就是我们后续可能要给他们一些这种自身承诺,这些他们可能比较看重这些问题。 - -**[01:52:07] 发言人 6**:软件是支撑什么硬件? - -**[01:52:10] 发言人 6**:他现在要了三款高中低,三款胖的P C我们到时候反正学校就说可能瑞杰会拼拼很低的价格去,我们也得自动车,但是但但是这也他听说郭沫说就是一点含这的问题。 - -**[01:52:29] 发言人 5**:云南云南云南那个测试项目前面的反馈,就上次把那个呃效果怎么样? - -**[01:52:36] 发言人 5**:有一台机器重做了以后,不他们使用起来没有什么问题,但是我们送过去的那个机器的质量,这些商都是一些测试中端发测试中对有有一些反馈。 - -**[01:52:51] 发言人 5**:然后他那个项目什么时候真正下单了如我感觉还是。 - -**[01:52:56] 发言人 6**:说他测还没测使。 - -**[01:52:58] 发言人 7**:用上上。 - -**[01:52:59] 发言人 5**:次就提了一件事,就他们重做了一个终端,他主要是我们第一次部署的时候,两个操作系统的分配,那个比例分配,磁盘比例分配上面有点问题。 - -**[01:53:13] 发言人 5**:大家重做了以后,他们也没有什么其他意见。 - -**[01:53:17] 发言人 5**:其实他们那边相对用起来比较简单,他反起来以后就当成一个正常的。 - -**[01:53:24] 发言人 6**:windows在用。 - -**[01:53:24] 发言人 6**:院没这么多需求,院没有华人需。 - -**[01:53:28] 发言人 7**:标时再定一下价格。 - -**[01:53:30] 发言人 6**:主要是因它其实我觉得主要因素就是硬件的。 - -**[01:53:35] 发言人 5**:还有对他们那边还在说一个问题,就是说如果要增强我们投中的这可能性的话,整个技术标案那些可能要尽块要建,这个问题不大。 - -**[01:53:45] 发言人 6**:这个问题不大。 - -**[01:53:46] 发言人 6**:如果他让我们介入,他是好事,我们肯定会把它企撕了。 - -**[01:53:50] 发言人 6**:你这个标。 - -**[01:53:51] 发言人 7**:江的招标文件的撰写。 - -**[01:53:54] 发言人 6**:这是最重要的。 - -**[01:53:57] 发言人 6**:如果他他如果这都让我参与。 - -**[01:53:59] 发言人 5**:这证我的意思是这个事可能是咱们这边我知道加就加紧,因为他的意思是他愿意,反正配合我。 - -**[01:54:08] 发言人 0**:们来做这个事。 - -**[01:54:09] 发言人 0**:凯哥,但是。 - -**[01:54:12] 发言人 3**:我只抛弃了一些被人家扭转出去,那个报价打起,为什么便宜去开,也在把自己弄到底,到底怎么弃卖不出来了的。 - -**[01:54:21] 发言人 3**:你这个你要做证词就是徐凯,现在也是我们的那紫光直升机了。 - -**[01:54:25] 发言人 6**:紫光直机总部那边是这么说的,他们现在对下游的代理商的配件,他们是控制不了的。 - -**[01:54:32] 发言人 6**:他们很多时候也是出的不太存储和内存的一个控制总数去。 - -**[01:54:37] 发言人 6**:下面的经销商去找一些便宜的内存和存储加上去在卖全是样。 - -**[01:54:43] 发言人 6**:我问。 - -**[01:54:44] 发言人 8**:了出来,就我们。 - -**[01:54:49] 发言人 3**:卖到的格,我价格我还。 - -**[01:54:54] 发言人 6**:有他们价格是现货交易,就是代理商手上有有200单,这两百单就是这个价。 - -**[01:55:03] 发言人 6**:下个月他不认的。 - -**[01:55:05] 发言人 3**:既不认他这个价格,200台他裁的那也是省钱方式。 - -**[01:55:09] 发言人 6**:然后的时候,他是要一他是要两千台,他是要两千台一年的供货周期,你你你让他包的时候,他包不出来了。 - -**[01:55:21] 发言人 6**:就跟京东上一样,京东现在上,现在你买个十台几台电脑便宜,你去找店家。 - -**[01:55:28] 发言人 0**:你说我要两万台,他对不起。 - -**[01:55:30] 发言人 6**:你又什么时候交给我? - -**[01:55:32] 发言人 0**:七月上旬中旬,云南现在怎么样呢? - -**[01:55:36] 发言人 6**:云南你那是在测试他一个渠道。 - -**[01:55:38] 发言人 0**:没有招标里面的。 - -**[01:55:40] 发言人 6**:他没说他他是不是死亡。 - -**[01:55:42] 发言人 6**:很多医院他说现在一个月测试,他就是要依据上系统。 - -**[01:55:46] 发言人 6**:对。 - -**[01:55:46] 发言人 0**:好。 - -**[01:55:47] 发言人 5**:因为他们抓几。 - -**[01:55:48] 发言人 0**:包的龙虾放进去,咱做两个,我相信他们那肯定要有想法的。 - -**[01:55:55] 发言人 0**:这东西所以说你这个研发起不到研发的作用,都是在反复在说这个事,我下面用你要有一套,在这个肯定我觉得我后面服务器什。 - -**[01:56:07] 发言人 6**:么的做设计,对,但要有一套方案。 - -**[01:56:10] 发言人 6**:但这套方案确实我看到还要做的东西确实很多,要做出来权限什么都很多,像上下级数据库、知识库,事线还是很多的。 - -**[01:56:21] 发言人 5**:好,然后主线的那个版本就是跟我们产品讨论了以后,裁剪完了,我们内部知道。 - -**[01:56:29] 发言人 6**:11202212026批01对,我们都把国号主要的年度批评一批02对,我们都相关。 - -**[01:56:37] 发言人 5**:今年的话反正规划可能后面还有三个版本。 - -**[01:56:40] 发言人 6**:三个版本到4个版本,然后就是后面的发地域,还有新塘桥的进一步的规划融合。 - -**[01:56:48] 发言人 6**:今天应该还有两个版本。 - -**[01:56:50] 发言人 6**:对,还有个新上桥的那个协议,新上协议我这周来处理好不好的? - -**[01:56:57] 发言人 6**:好,上,因为上周五我刚刚汇报了话,就把那个采购方案定了。 - -**[01:57:02] 发言人 6**:然后新塘桥也又用新的采购办法。 - -**[01:57:05] 发言人 5**:我们把它弄进。 - -**[01:57:06] 发言人 5**:然后志金云那边,上周他们把天数H 20和木西这三款平台的测试都已经适配,都已经做完了,做完了在压力测试的报告里些也做出来了,到时候单独汇报一下。 - -**[01:57:20] 发言人 6**:能不能把。 - -**[01:57:23] 发言人 5**:不个简单事,我们不能那几家也不出来了,一有个环试,他还不在我们手上,这些都是远程的机器,除了天数的机器在我们手上。 - -**[01:57:38] 发言人 5**:摩尔也开始测,摩尔对摩尔单独开个会。 - -**[01:57:41] 发言人 5**:好,就单独开会。 - -**[01:57:42] 发言人 5**:然后他们结果今天早上我刚简单开了一个会,他们现在自己又又选了一个个大模型,我觉得这个倒是候跟这个龙虾这边要统在一起。 - -**[01:57:53] 发言人 5**:今天上午我到时你知道选的什么,选另外模型选啥,不是为不是这是个方案? - -**[01:57:59] 发言人 5**:不光是模型,他们整个就选择一个方案。 - -**[01:58:02] 发言人 5**:然后上午我就让付爱跟他们一起把这个事情对,把这讨论定好了。 - -**[01:58:07] 发言人 8**:我觉得这两个是不是还是有些不一样的,是吧? - -**[01:58:10] 发言人 5**:不但是我想的是还是就统一成一个方案。 - -**[01:58:19] 发言人 6**:这是一个完整的知识方。 - -**[01:58:23] 发言人 6**:差不多基。 - -**[01:58:25] 发言人 5**:本上是反正我们。 - -**[01:58:29] 发言人 6**:不要R不要这源,都是源比较门的些源目,我反烦。 - -**[01:58:38] 发言人 5**:然后智空这边是这样的,我们把遥控器上云的对接工作基本上做了30%。 - -**[01:58:45] 发言人 5**:现在正在安排香米山那台无人机接入互联网,接入互联网以后,我们就会在互联网上布一个完整的平台。 - -**[01:58:53] 发言人 5**:然后一个是加强这个测试工作,第二个就是展示,那些都就可以在上面做,然后告警工单这个专门做的一个模块,然后那个小米三是中分两台,然后另外。 - -**[01:59:05] 发言人 4**:你们去另外一个人,就相就是。 - -**[01:59:07] 发言人 5**:上次我们去的是一个点,相比它是另外一个点,就这个点他们用的要少一些。 - -**[01:59:13] 发言人 0**:你把这个点你们跟那个你们还是那句话,就是交警那个流程怎么样? - -**[01:59:19] 发言人 5**:你没有就说白约上周他最调到上。 - -**[01:59:22] 发言人 0**:对我觉得因为现在这个事,你这个事其实是因为你一旦交警接去,我们现在还没有执行任务任务。 - -**[01:59:29] 发言人 0**:你跑了任务以后,我就说服,我才我们才会去。 - -**[01:59:32] 发言人 0**:他妈昨天我就死说,他说你跑什么路,我说我没有教你,我就不想多说,再说下去就露馅了,我啥也没跑,一点起来了。 - -**[01:59:42] 发言人 0**:你要吃你你要你要有那个那个那个那个那个你再跑了,你你就是你先占住这个坑,老说要占着坑站。 - -**[01:59:50] 发言人 5**:你占住这坑。 - -**[01:59:51] 发言人 5**:我们再就集云结合,放在集你们跟集云结合这是怎么样? - -**[01:59:56] 发言人 5**:集云结合这个技术会已经开了两次会了。 - -**[02:00:00] 发言人 5**:其实软件上面都已经从集云那边,一个是调这边的那个视频,还有集云那边一键起飞,这几个功能都已经开发了。 - -**[02:00:10] 发言人 5**:因为内蒙他们是需要这东西,我们就先做了。 - -**[02:00:13] 发言人 0**:然后内蒙因为他卖。 - -**[02:00:15] 发言人 5**:我知道他是在。 - -**[02:00:31] 发言人 5**:然后那个违停,其实这个模型我们已经训练出来了让他们自己也去做了一些测试。 - -**[02:00:41] 发言人 5**:而现在违霆从展示的这个角度已经可以展示了,就是无人机飞过去已经可以把违停的车辆可以抓进来。 - -**[02:00:53] 发言人 0**:车牌国产的时物太慢了。 - -**[02:00:55] 发言人 0**:这周开个会,然后开完会以后,你们大姑娘在沿台喝杯茶,然后节后七一建党节以后,然后再来谈谈下一次会,那他妈的天亮球了,我操,真的就是太慢了,我觉得难,一个一个一周干一次事,一个事到下一次这样邦过去,咚回来我这什的,你你你追一追他,因为你你上线了,为什么他不着急呢? - -**[02:01:22] 发言人 0**:可能他觉得无所谓,我是觉得交通查处之还有点能带来点利润。 - -**[02:01:29] 发言人 5**:是就我上周到中医物联去跟他们做交流的时候,把这个给他们展演示一下。 - -**[02:01:35] 发言人 5**:所以说他们现在在他们来看的话,我们现在是一个含非控含这个待机是吧? - -**[02:01:41] 发言人 5**:也是这样的,我们跟物联这边展示的是一个独立的平台。 - -**[02:01:46] 发言人 5**:我们现在做了两套方案,一套是和集云的整合方案,一套是和一套是一套独立的方案然后我们跟物联这些展示的,就是说我们这套独立的方案。 - -**[02:01:58] 发言人 5**:他们是想把我们这个方案和他们现在自己的视频库的平台整合在一起。 - -**[02:02:06] 发言人 5**:然后这周的话他千例。 - -**[02:02:07] 发言人 3**:对,对。 - -**[02:02:08] 发言人 5**:他们也是一千例。 - -**[02:02:09] 发言人 8**:他们也是两个平台。 - -**[02:02:11] 发言人 5**:他们现在这样的对,现还是详细介绍一下。 - -**[02:02:14] 发言人 5**:他们其实千里也在全国接了很多,但是那个就是萨as模式。 - -**[02:02:20] 发言人 5**:后来大家讨论一下,那个萨as模式不适合这个方案,然后可能还是做这种私有化部署,针对行业做私有化部署。 - -**[02:02:29] 发言人 5**:然后那个视频这边让这周我们去参加他们的dii ct入围。 - -**[02:02:34] 发言人 3**:他首先不是情,就另外一个平台是自个。 - -**[02:02:38] 发言人 5**:哪一个千里也是大华是吧? - -**[02:02:40] 发言人 5**:千里大华他。 - -**[02:02:41] 发言人 3**:自己私域号部署的视频平台是自个。 - -**[02:02:44] 发言人 5**:就他私有化那个早就在大华技术上已经改造成他们自己的平台,也是大华的底座。 - -**[02:02:51] 发言人 5**:底座好几家不光指大华,还什么灯红。 - -**[02:02:54] 发言人 0**:对他那个平台。 - -**[02:02:58] 发言人 5**:然后上周五下午我们跟他们两个事业部,一个是他们视频就是那个视频事业部,还有就是他们有个聚声新成立聚声智能事业部,就一起把这个事频交流。 - -**[02:03:14] 发言人 5**:在商业聚生事业事业聚生智能事业部的那个资金口,现在还是挂在视频部上的。 - -**[02:03:21] 发言人 5**:所以说他们让我们先到视频部把那个d入围做,然后这个定制开发这边上周是11个项目,然后计收增加了六个。 - -**[02:03:32] 发言人 5**:我们还是按照刚才周景汇报的六月底180万那个目标来完成。 - -**[02:03:38] 发言人 5**:其他的话就是数字治理,刚才说的那个数字助理整个的产品框架定下来了。 - -**[02:03:45] 发言人 5**:定下来的话这周我们可能就要开始开发工作了。 - -**[02:03:49] 发言人 5**:第二个软助这边的话,我们正在申请自飞平台加上两个视频算法加上一个算法仓。 - -**[02:03:56] 发言人 5**:这个两个视频算法加算法仓也是中医物联那边,他们招投标里面也不是个他们除了这个dii ct t以外,他们还让我们进入一个视频的,进一个算法的dict还要进一个应用的dict一共进三个。 - -**[02:04:14] 发言人 5**:这两个的话是需要有软注的,我们也在加紧在做。 - -**[02:04:19] 发言人 5**:欧的话刚刚俊我这边大概。 - -**[02:04:21] 发言人 0**:就这情况,软著自己写,不需要钱。 - -**[02:04:24] 发言人 5**:申请钱又很少,申请钱很少。 - -**[02:04:27] 发言人 5**:对。 - -**[02:04:27] 发言人 6**:我们都是自己选购。 - -**[02:04:32] 发言人 5**:然后他还有那个他还有申计完了以后,政府每一年还会有一个返补贴,就这个制飞这个平台。 - -**[02:04:38] 发言人 0**:你们还是要跟吉民一定要好好对齐,好吧? - -**[02:04:42] 发言人 0**:要对,这是双赢的事。 - -**[02:04:43] 发言人 0**:因为对我们来说,我们在华智一个价值? - -**[02:04:46] 发言人 0**:这是重要的事。 - -**[02:04:47] 发言人 0**:是虽然说我估计华智研发不愿意,我昨天慈双那个挂我提醒了,我估计华智研发可能大概率不想让我们做任何产品,是吧? - -**[02:04:56] 发言人 0**:你做点,因为他在研发。 - -**[02:04:58] 发言人 0**:就全是我的,就跟那小孩小女生要糖果,那洋娃娃全是我的,跟你没关系,就我们自己要做出来的成绩,要赶快去去去体现出来是吧? - -**[02:05:08] 发言人 0**:那一到面前的小女生都是我的。 - -**[02:05:10] 发言人 0**:都不能都所以你能强调的我们你赶快给那个基金都。 - -**[02:05:16] 发言人 5**:易照,所以现在好像这块一照平,虽然在他下面管,但是整体来说他也没有放太多精力在这个集云这边。 - -**[02:05:25] 发言人 0**:好吧,好,他们我不知道干嘛,我总觉得他妈的消耗那么大的资源,我觉得他妈的我有点嫉妒心,我操我们那么多人在说算命也没弄到资源,人家消耗那么多资源。 - -**[02:05:37] 发言人 0**:所以你们下来你们也问清楚,去年你跟他们人对接一下,你们问清楚他们资源用在哪是吧? - -**[02:05:43] 发言人 0**:他们那几个产品,你把他们的大模型做不做? - -**[02:05:46] 发言人 0**:然后他们主要资源用在哪里是吧? - -**[02:05:48] 发言人 0**:我现在很清楚,我们不调不做模型,我们打一说他们,你就是在自己的模型,我说谁知道那个那个所以说真的假,但如果在自己模型。 - -**[02:05:59] 发言人 5**:我恭喜走错了方向。 - -**[02:06:01] 发言人 5**:他们说他们是这样的,因为他们黄区和绿区没法接外面,所以说他们就在那个集器上号。 - -**[02:06:09] 发言人 5**:他们就布了一个那个他们布了一个的320. - -**[02:06:13] 发言人 0**:320多个们就在做三百多对,38那个测对。 - -**[02:06:18] 发言人 5**:然后他们内部的开发就接那边的A I. - -**[02:06:23] 发言人 0**:我你这时我就知道了,他不能调用Y你没所谓,真的,你你你赶快弄清楚。 - -**[02:06:30] 发言人 0**:你说了100美金的,我觉得很好,给十个没所谓的,你定好。 - -**[02:06:37] 发言人 0**:现在我关键你们要清,你们统一平台,统一代码,统一东西是吧? - -**[02:06:43] 发言人 0**:我你怎么调度? - -**[02:06:45] 发言人 0**:果要用业的,那们专业的,我用业的那个不用,我们直接业。 - -**[02:06:51] 发言人 0**:我突然觉得刘强这个业务可能未来有机会了,就是调海外的算力。 - -**[02:06:55] 发言人 0**:我才他原来给我讲他业务的时候。 - -**[02:06:58] 发言人 5**:我在想这事,要不然我们就这样子,我们就统一账号,然后我们自己内。 - -**[02:07:02] 发言人 6**:部大王A I然后分给对对对。 - -**[02:07:04] 发言人 5**:个我就这样看。 - -**[02:07:06] 发言人 0**:那对你们搞清楚,我这边也需你们接下来弄弄。 - -**[02:07:09] 发言人 0**:然后还有一个就是你们搞清楚一个什么呢? - -**[02:07:12] 发言人 0**:就是比如说我们如果我们拿半台,我们自己算力调查,我觉得我们第一不调私有化部署,我觉得还是要叫脱Ken。 - -**[02:07:22] 发言人 0**:因为脱Ken是未来所有私有化部署的,尤其是大的私有化部署的,短时间内很危机,因为拓Ken那个速度太快。 - -**[02:07:33] 发言人 8**:你拿多少学习了,你那三百多批相当个大。 - -**[02:07:39] 发言人 5**:模型多少钱? - -**[02:07:40] 发言人 5**:就是现在一般发布出来的是671. - -**[02:07:44] 发言人 0**:671应该是常见670。 - -**[02:07:48] 发言人 0**:但是别人满血的。 - -**[02:07:49] 发言人 5**:他们那个卡里可以320多匹的个,满三百多的也多,六百多。 - -**[02:07:57] 发言人 6**:什么。 - -**[02:08:00] 发言人 0**:思我可能模。 - -**[02:08:10] 发言人 8**:不可能推推。 - -**[02:08:19] 发言人 0**:版。 - -**[02:08:21] 发言人 0**:他们做了一个,他们布置个白买的是吧? - -**[02:08:24] 发言人 5**:对,他们还不是布的那个671B的的。 - -**[02:08:27] 发言人 8**:三百多就一半的半水版的。 - -**[02:08:28] 发言人 0**:你们下你下来应该是跑不了是吧? - -**[02:08:31] 发言人 0**:你们下来研究就给我一个文字的东西好吧,我了解了解。 - -**[02:08:35] 发言人 6**:我我我具体看看。 - -**[02:08:36] 发言人 6**:然后王总我们这我。 - -**[02:08:38] 发言人 0**:约了到底付了多少币。 - -**[02:08:40] 发言人 6**:约了阿里的悟空工作平台,然后这是我的约谈时间,他跟我们讲下。 - -**[02:08:45] 发言人 0**:产品好吧,很好。 - -**[02:08:47] 发言人 0**:阿里的、腾讯的我们都学习,那个word的也可以好吧? - -**[02:08:52] 发言人 0**:好好好,我觉得很好。 - diff --git a/agent_memory/uploads/chat_2b0479c17171/1782271550533_2_transcript_710.md b/agent_memory/uploads/chat_2b0479c17171/1782271550533_2_transcript_710.md deleted file mode 100644 index 3a12eb2..0000000 --- a/agent_memory/uploads/chat_2b0479c17171/1782271550533_2_transcript_710.md +++ /dev/null @@ -1,2790 +0,0 @@ -# 会议710 - -**会议时间**:00:00:00 - 02:42:34 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8, 发言人 9 - -## 会议记录 - -**[00:00:00] 发言人 0**:就是样板项目还有重大项目的一些知识上,然后包括给省代的一些赋能上。 - -**[00:00:06] 发言人 0**:然后说到跟省代的赋能,其实去年也尝试跟那些省代做过不少培训。 - -**[00:00:13] 发言人 0**:但是当时因为条件有限,当时很多省代也反馈不想想要我们就一家一家跟他培训。 - -**[00:00:21] 发言人 0**:但我去年下半年当时也这样去做过,但是最后发现就确实太太耗精力了。 - -**[00:00:27] 发言人 0**:我一个内容我要培训过五六次这种,而且还要去结合这个省代的一个这边的时间,还要我们自己的时间去做调解。 - -**[00:00:38] 发言人 0**:那目前看我建议还是公司能这种比如一个月1次,甚至说有新品新方案的时候,做一次这种针对省奈或者华山的一种云桌面相关的一些培训。 - -**[00:00:53] 发言人 0**:我觉得这样,我觉得重点不是在培训上,重点是还是让沈奈和咱们华山的这边的同事能感知到,咱们其实汇智云桌面一直是在增进,一直是在更新的。 - -**[00:01:07] 发言人 0**:但目前其实这两点我觉得目前咱们可能做的还是不太好,但这种带来的效果我觉得还是比较明显的。 - -**[00:01:16] 发言人 0**:如果说后神代的,目前他针对云桌面的了解程度逐渐加深,后期他肯定是慢慢能锻炼出神代这边的一个指数打单的能力了。 - -**[00:01:27] 发言人 0**:完全就是在项目中去学习,然后加上我们的一些新理性方案的一些培训知识,完全是可以把省代这边的授权模式去锻炼起来的。 - -**[00:01:38] 发言人 0**:第二个就是针对省代在华山侧的一个感知,就是目前面了解到一些项目,很多华山销售他不愿意从省代过来。 - -**[00:01:47] 发言人 0**:第一个是费用,省代那边费用可能报的会高一点。 - -**[00:01:52] 发言人 0**:第二个就是确实是整个项目对省代的感知,都华山销售可能不太好,就可能完全就没有省代在里面,然后省代的要的价格又可能就比较高,然后就导致我了解还是有不少项目华山就可能就走的这种其他的一些渠道,就是非我们省代的一些渠道。 - -**[00:02:13] 发言人 0**:但是这样也不是一个很良性的一个一个过程。 - -**[00:02:17] 发言人 0**:因为我目前了解到,就比如说像广东的江门中心医院,它现在是已经从到现在已经是做了三期了。 - -**[00:02:26] 发言人 0**:但三期每一期都是不同的渠道去做交付过的。 - -**[00:02:29] 发言人 0**:第一期是我们省内区院做的交付,但是后面两期都是分非常耐需做的交付就会了。 - -**[00:02:36] 发言人 0**:导致一个问题就是第一期出了问题,然后训练他,他们会安排售后去处理。 - -**[00:02:43] 发言人 0**:但是第二期第三期出现了一些售后问题,飞城在这边他没有云桌面解决能力,他没办法去处理。 - -**[00:02:51] 发言人 0**:到最后销售又押给旭悦,那旭悦那边整体又觉得没有收钱,然后导致整个项目售后问题可能就没人处理了,最后还是需要我们原厂来购,那这样其实也是一个恶性循环。 - -**[00:03:07] 发言人 0**:如果全部走省代,那至少我能保证我们的这个项目出货之后的一个售后口碑,至少有人在服务口碑不会掉太多。 - -**[00:03:18] 发言人 0**:第三个刚刚也说了,就是减少对汇智的依赖,把一些汇智首先把一些项目去放在一些重点项目去支撑。 - -**[00:03:29] 发言人 0**:然后下面还有一个问题,就是沈畅这边提的还是希望因为他这边负责的四个省区,湖南、湖北、云南、贵州,目前好像都没有自己汇智的销售。 - -**[00:03:43] 发言人 0**:然后他前段时间也出过差,去到省就省区去,就发现其实省区这边还是有很多项目,美就是有很多云路面项目商机的。 - -**[00:03:55] 发言人 0**:但是因为前面都是远程支撑,也没有那种经常跑到线下去去了解,很多很多商机可能还是没收集上来。 - -**[00:04:05] 发言人 0**:但目前感觉如果一些省区,我觉得不愿意招这种,也不是不愿意,招销售的这种进展比较缓慢的,看能不能还是像去年那种部分省区少量的发动机两个这种联络关这种。 - -**[00:04:23] 发言人 0**:其实陈大那边我看了他去年做联络关,这个其实做的还是挺好的,很多商街还是从联络关那边报过来的。 - -**[00:04:33] 发言人 0**:虽然很多区我们现在两都取消了,但是我觉得一些特殊的区域是不是还是不能可以加上一些联络方。 - -**[00:04:42] 发言人 0**:最后就是有一个售后问题,这个售后问题也是陈畅这边遇到的,就是一个随手移动的问题。 - -**[00:04:49] 发言人 0**:他这边下单的就是我刚刚说的,他不是我们省内的,去做的事实实就是我们找宝山部人自己认识的一些渠道,我们对我们来说是非常败做的服务。 - -**[00:05:02] 发言人 0**:但是他们实施完了,因为实施期间我们会下让他们下一笔钱给到我们我们让汇世原厂授权做技术支持,把实施部署完。 - -**[00:05:12] 发言人 0**:其实实施都比较简单,一般不会存在太多问题。 - -**[00:05:16] 发言人 0**:那实施完之后,就需要就需要过渡到路这种质保期间的一些维护阶段了。 - -**[00:05:24] 发言人 0**:对于我们会智而言,我们其实就只让华山就只让这个项目指向了400的远程维保。 - -**[00:05:32] 发言人 0**:我们其实是没有第一个我们是没有收收这个现场维护的费用,我们是不会去派人去到现场的,我们也这一块我们也没有太多经费。 - -**[00:05:45] 发言人 0**:第二个就是这笔钱其实是过渡到现场维护这笔费用其实是过渡到现场非人耐渠道这边的那他这边其实是收了这笔钱,但是他又没能力做这个交付。 - -**[00:05:59] 发言人 0**:那我还是这里就会存在一个问题,就是每次非人耐这种渠道找到我们做技术支持,我们也其实也不好直接拒绝,因为毕竟最终损坏的还是我们汇智宇这块的一个口碑。 - -**[00:06:14] 发言人 0**:他还是希望公司看能不能增加这种单次的一个服务报价的一个体系。 - -**[00:06:20] 发言人 0**:这针对这种非生代的一个售后问题,需要汇智这边出工程师做,比如说远程的这种技术大疑,或者说现场的一些技术支持。 - -**[00:06:32] 发言人 0**:如果有这种单次付费服务,包括面临到这种,我们就直接以这种收费的方式,直接去给省非省态渠道这边去聊一些质保的问题。 - -**[00:06:44] 发言人 0**:各位我目前问。 - -**[00:06:46] 发言人 1**:题就是这一些。 - -**[00:06:49] 发言人 2**:我们个盛钢,你看你说说,然后雪秋再说一说盛钢。 - -**[00:07:01] 发言人 3**:看一下扬州今天提的主要就是跟等待配合上面的一些事候,售前如何能够利用省代的资源进行推广的需求。 - -**[00:07:18] 发言人 3**:但是目前我们目前这个阶段的确是我们的体量来说,一个做前支撑3到4个省份。 - -**[00:07:28] 发言人 3**:目前从目前来看是的一个工作量和这个业务量的匹配来说是比较合适的一个人员匹配,在人员再增加到我们的每一两个省。 - -**[00:07:44] 发言人 3**:第一个社钱我们的体量应该是支撑的。 - -**[00:07:47] 发言人 3**:所以目前情况下面,杨昭所提的这个呃工作量方面的这个事,我认为还是需要大家在在工作中克服的。 - -**[00:07:59] 发言人 3**:对于各个省代,省代其实也是良莠不齐的。 - -**[00:08:04] 发言人 3**:有些省代的构前支付的能力会强一些,有些省代的时候是构前支持的能力会弱一些。 - -**[00:08:13] 发言人 3**:从目前我们既然把,会普的云销售的人员增加上来以后,我们希望这是简单的这些项目,比如说小小的项目,两个云资销售在负责自己本省的项目上面能够起代能够能够起代的一定的作用来来支撑这一类项目。 - -**[00:08:37] 发言人 3**:从配置器这边来说,其实我们现在的配单的,我目前来比较简单的这这这个东西。 - -**[00:08:47] 发言人 3**:但是后续还是再思考一下,看看能不能做出一个比较简易化的一个报价。 - -**[00:08:57] 发言人 3**:其这个因为前期我们一直也在想要不要做这个东西,但是总感觉好像用处不是太大。 - -**[00:09:07] 发言人 3**:但从我对这个售前的交流情况来看,其实大家更多的是不是配单的可时间上花的多。 - -**[00:09:15] 发言人 3**:而是跟前方的相互之间的沟通交流,来来去去来来回回的这个时间上花的会比较多一些。 - -**[00:09:25] 发言人 3**:就这个真正配置器上线做了以后能有多大帮助,这己就评估这是一个事儿。 - -**[00:09:34] 发言人 3**:至于省代的赋能这块,下来我们再讨论一下怎么把省代的赋能这块对做好。 - -**[00:09:44] 发言人 3**:这个梦洁这块我们下来再讨论一下,看你怎么样来做人员这块膨胀。 - -**[00:09:51] 发言人 3**:这边云南这周会名字销售会增加一个人,那么差不多了。 - -**[00:09:59] 发言人 3**:我感觉也上周前两天我也跟许州会在交流,也就这点人员来再再增加人员。 - -**[00:10:07] 发言人 3**:我们整个今年从这个销售体量上面来说,也这有点压力的。 - -**[00:10:13] 发言人 3**:所以说也应该也就是不会再过多的增加了。 - -**[00:10:17] 发言人 3**:除非特别有必要的省份,如果有业务量大幅增加,那么可以再同步考虑。 - -**[00:10:22] 发言人 3**:那其他情况下面就至于联络官这种角色,其实每个省我认为去年如果有这样的人还能再做的话,我们还是可以联络。 - -**[00:10:39] 发言人 3**:因为今年我们的那个云那个那个销售基地还在大家如果不责审份,认为有些优秀的人员可以给我们建议,看看是不是可以再设立这样的人员。 - -**[00:10:51] 发言人 3**:如果不适合的人员放在那儿,反而是对我们资源的一个浪费。 - -**[00:10:56] 发言人 3**:这个属于所以要求我们售前来评估有没有这样的人,有没有合适的人,有合适的人我们可以去考虑做这个事儿。 - -**[00:11:06] 发言人 3**:售后的话我觉得没有问题,增加这类似的这个服务体系,我们我跟中方也在考虑这些事。 - -**[00:11:15] 发言人 3**:如果有这个建议大家可以提出来,我们可以这个应该算挺灵活的,可以来做这个事儿,好吧。 - -**[00:11:23] 发言人 3**:朋友,我大概说这些好好取消。 - -**[00:11:26] 发言人 2**:我看了。 - -**[00:11:28] 发言人 4**:养州这个问题,就是我跟云池销售有关的,主要还是说中小项目优先支持省代的,有有省待支持的问题。 - -**[00:11:38] 发言人 4**:他这个知识分几步,如果是说第一需求摸索,第二项目的交流宣讲。 - -**[00:11:44] 发言人 4**:这一块儿我们跟孟洁也好,包含李俊杰这儿也在反复的投喂资料给云职销售。 - -**[00:11:51] 发言人 4**:我们自己去做到需求摸索和交流宣讲,确实是现在也在积极努力在做的。 - -**[00:11:58] 发言人 4**:但是跟中小项目,我认为不是大项目小项目以金额来定义,还是以项目的一个繁琐程度。 - -**[00:12:06] 发言人 4**:如果是老的扩容,我们可以让云智销售直接找省代去支持。 - -**[00:12:12] 发言人 4**:但是如果是新建或者是新产品这一块,省代它是没有支持力度,也就是又绕回来的。 - -**[00:12:20] 发言人 4**:省代如果没有云智销售的情况下,省代能支持得了新华三销售。 - -**[00:12:26] 发言人 4**:也就是说要么就是说我感觉我们把这块提了,把把省在再付能,或者是让云池销售直接也学配置,光是需求交流和宣传这宣讲这块我们能培养起来。 - -**[00:12:41] 发言人 4**:但现在我们确实没让我们的云知销售搞搞配置,学习配置这一块。 - -**[00:12:46] 发言人 4**:如果学习配置拿最后剩的也就是说测试和商务申请测试的话,省代支撑以服务型省代支撑并不是没有什么大难度的。 - -**[00:12:57] 发言人 4**:和报价申请。 - -**[00:12:58] 发言人 4**:最后就是小中小项目由云之省贷向收钱申请报价,还是再搞一个云智销售内部的一个报价申请流程,pm报单流程也可以。 - -**[00:13:09] 发言人 4**:所以说我不认为是中小项目来区分是否有省代支增,而是看项目运行。 - -**[00:13:16] 发言人 4**:或者是说俊杰你在这块不,甭管是给一个配置器,或者是搞一个景,能让名生销售学会配置的那这些能给咱送钱省很多精力的这个模式,这个我们下面就值得探讨一下。 - -**[00:13:31] 发言人 4**:就是就他本身某术本身这个遇到有的时候其实我跟我们云云智销售也在反反复复说,之前没有经历过。 - -**[00:13:40] 发言人 4**:突然甩过来找我们寻个vdi 500路,特别是送度端500路、800路的这种报价,应该是直接拒绝很你都不知道需求,你也不知道项目是怎么情况,就跟你要500V500路送度端报价甩完之后人家拿去给预计一笔国价格高不死球了。 - -**[00:13:59] 发言人 4**:这种报价是几乎都是无用报价,浪费很多精力可以排除。 - -**[00:14:04] 发言人 4**:但是钢铁的这个中小类的或者是扩容类的这些小的配置,让明智销售也学一学,是不是可以减少送前的精精益投入。 - -**[00:14:14] 发言人 4**:这一块我们得策划纷纷进入关于售后的那些问题,我这边上我认为我们云雀省贷这云雀销售法和手贷这块,在这个售后的问题上去协调解决。 - -**[00:14:26] 发言人 4**:人员配置也是最后的省份的人员配置。 - -**[00:14:30] 发言人 4**:云南我们邵周加了一个之后,因为今天会上也有除了云智销售之外,我们协同营销还有四个同事一直挂在这儿。 - -**[00:14:41] 发言人 4**:现在我们如果这周把这个云南加进去,我们15个人上周也跟盛钢做了一个全省的分析,平均一个销售两个省份,然后常驻省份肯定是他全面对接。 - -**[00:14:54] 发言人 4**:然后下周我们例会就会跟每个小组通知,就是说他还要坚持一个总分,坚持那省份他至少保证先去一趟,把手带和一些曲路的非就是跟我们合作过的渠道先对接上,对接上之后再销售。 - -**[00:15:12] 发言人 4**:在支撑的时候可以把那个省份也把消息息同步过来。 - -**[00:15:17] 发言人 4**:同时其实每一个云池销售和新协同销的销售,都给自己在省份拉了售后、售前以及销售的一个支撑群。 - -**[00:15:27] 发言人 4**:这个群里面的所有项目,所有问题也可以互相互动,互相支撑。 - -**[00:15:32] 发言人 4**:这就是我们搞那一个扁平化支撑的边。 - -**[00:15:34] 发言人 4**:而且那个群里面把盛钢俊杰我都拉在里面,我们也看到问题也时时都在解决,都在协同。 - -**[00:15:41] 发言人 4**:其他的我没认为意。 - -**[00:15:43] 发言人 5**:我补充一个配置器的问题,我谈一下我的看法之前其实是几个月前上线的一版配置报价器,但是给了大家,大家一收钱不愿意用,二渠道其实也没法用,为什么没法用? - -**[00:15:59] 发言人 5**:说一下我的看法。 - -**[00:16:01] 发言人 5**:一目前我们的终端有新华三终端、汇智牌终端,还有代智库存,还有正在销的库存。 - -**[00:16:08] 发言人 5**:本身那个终端的型号类型是比较复杂,但是可以将这些主推或者清库存的类型型的进行供能没问题,但是你让渠道去配,他就算去泡报了10台过来,然后真的找不下。 - -**[00:16:23] 发言人 5**:但采购的时候他看消息是滞后的,发现我们其实根本就没用了。 - -**[00:16:28] 发言人 5**:这种情况很多已经让渠道去配,他可能运作了一两个月,然后再来问你,然后就出问题了。 - -**[00:16:36] 发言人 5**:二就是和我们的那个售前,实际上渠道找到我们授权报价,是和我们的授权沟通项目的一个商机来源。 - -**[00:16:44] 发言人 5**:如果我们把这一层海往渠道去推,我们的来源已经很少了。 - -**[00:16:49] 发言人 5**:我要咨询过他们,他们现在一天的配单也就4到5个,不多对,不多。 - -**[00:16:55] 发言人 5**:还有我说完了还有一个情况,就是目前的那个硬件调价价格过于频繁了。 - -**[00:17:02] 发言人 5**:我们没办法去维护一个在对渠道的一个价格变变变化变化体系。 - -**[00:17:09] 发言人 5**:而且告诉大家,昨天几个供应商在反馈,pcb又开始暴涨,甚至两三倍。 - -**[00:17:15] 发言人 5**:那接下来就不是内存存储的事了,pcb又要加入到B价格调价。 - -**[00:17:21] 发言人 5**:三对,电路板我主板就是主。 - -**[00:17:25] 发言人 5**:因为实际上我们的厂家不管是只做一件事就是主管。 - -**[00:17:30] 发言人 5**:对,所以说接下来的硬件价格调价会更加复杂。 - -**[00:17:35] 发言人 5**:我们本来在这块花精力给售前同步都很困难,还要透传到渠道去,我认这个事情目前阶段干不了。 - -**[00:17:45] 发言人 4**:那不行,你在偷传搜鞋的时候,销售员的时候偷传的,销售是偷传的。 - -**[00:17:51] 发言人 5**:现在都是看那张表,对渠道我可以维护,这个东西就是我们在做品类主推是什么? - -**[00:18:00] 发言人 5**:我觉得可以长时间维。 - -**[00:18:02] 发言人 4**:护着这点,可昨天我们会商量解决。 - -**[00:18:05] 发言人 5**:他的销售这个方式。 - -**[00:18:07] 发言人 5**:对对对,说完没有? - -**[00:18:09] 发言人 2**:说完这个我说几点,刚好因为我们前线人也在,我觉得刚好我就可以发表一下意见。 - -**[00:18:16] 发言人 2**:但是我这个意见最后落实的话,雪生你们也可以下来再说。 - -**[00:18:22] 发言人 2**:我说完了,你大家有什么意见再说。 - -**[00:18:25] 发言人 2**:我觉得第一点,我觉得这个销售还是要全覆盖,这个之前我们提到的一些省,昨天上前两天开会的时候,我跟学校也在商量,就是我觉得我们的速度还是慢的,还要再快。 - -**[00:18:41] 发言人 2**:一个是我们我们如果有地方的,我们如果有原来有市场叫云南,比如原来有现在没有的,旁边覆盖不到的,要赶快覆盖? - -**[00:18:55] 发言人 2**:包括说的湖北、湖南、江西,这个要赶快的覆盖,这第一第二就是我觉得要把这个嗯是吧主次什么的话,我们它分好啊,就是我们的销售还是要把这个把整个把这个眼界再拉开一些。 - -**[00:19:14] 发言人 2**:我觉得你去覆盖一个省,很多个地市和覆盖几个省,我觉得差别也不是很大。 - -**[00:19:21] 发言人 2**:我觉得会多更多的机会就是我们的我们我们希望能能制造一个机制,还是销售觉得他这个市场机会越多,那他就机会越多,能完成的机会也越多。 - -**[00:19:34] 发言人 2**:我觉得得到的机励也越多,然后奖励也越多。 - -**[00:19:38] 发言人 2**:我觉得这个事情我们要把它匹配上。 - -**[00:19:42] 发言人 2**:第一我觉得销售还是要尽可能做到全覆盖,这样有自己的枪杆子,有自己的销售,我觉得好很多。 - -**[00:19:51] 发言人 2**:同时我觉得销售要跟跟我们的这个售前了,虽然说每个省的售前可能不太一样,但是还是要紧密配合,不一样也有不一样的好处,因为不一样一样会显要一对一,一样会一对一会陷入一个就好坏就没有这个比较。 - -**[00:20:09] 发言人 2**:不一样可能售前也会提到? - -**[00:20:12] 发言人 2**:销售会知道大家会各自有个有一个新鲜的,有个新的东西,互相比较有有对你可能更好一些。 - -**[00:20:20] 发言人 2**:户好,这是一个。 - -**[00:20:21] 发言人 2**:第二,我觉得关于省贷这个事儿,我一直觉得中间我可能还是出现一些小的误区。 - -**[00:20:28] 发言人 2**:就是我们一直一直让大家发展渠道是吧? - -**[00:20:31] 发言人 2**:发展渠道发展二线渠道,发展地势渠道,发展金牌渠道。 - -**[00:20:36] 发言人 2**:我们前两天还在讲发展金牌渠道,但从扬州这个我就有个感觉,我觉得其实就是我们已经内幕的渠道,我觉得并没有和我们形成一个特别好的一个关系。 - -**[00:20:49] 发言人 2**:这里面有几点,可能在这个表面上说是咱们还是可以的或者怎么样,但是我觉得其实你比如现在我们发展订台渠道,让人家交几万块钱。 - -**[00:21:01] 发言人 2**:我觉得就是他我们其实核心的一个目的是让他上心,他用心。 - -**[00:21:06] 发言人 2**:就是培训不管再搞再多,你不上心都是假的。 - -**[00:21:11] 发言人 2**:你如果没有真心想跟你谈谈恋爱,那就是耍流氓。 - -**[00:21:15] 发言人 2**:那本身就是你来一个,那渠道就是你来一个,有一个多一个多一个一点都不多? - -**[00:21:22] 发言人 2**:少一个其实也不少。 - -**[00:21:24] 发言人 2**:所以我觉得除了对这个金牌渠道我们就拓展以外,我觉得原来的省代,我觉得我们销售要跟他聊,他是不是真心,有没有真的人,就是我们内部人,我们要内部到渠道下面去,不止内部到渠道商的那个老板,要内部到他下面以后没有团队。 - -**[00:21:42] 发言人 2**:那老板见的世界更多了,一天到晚都是在海王,他妈的那么多人给他做生意的,我我我爱拜你那不就是咱们俩就是逼的意思,是吧,就按次的是吧。 - -**[00:21:53] 发言人 2**:所以我觉得他底下除了他这个省代,他这个跟我们是省代关系外,他底下有没有神,有没有操盘手,有没有销售,或者有没有这个售前,他跟我们是一个什么样的关系,他能不能跟我们做配置,他有没有省贷,有没有跟我们之间比如说哪些项目他能做,男生不能做。 - -**[00:22:13] 发言人 2**:我觉得销售一方面我觉得我们的销售一方面是去建省代,二一方面要跟我们的售前,比如杨昭,因为他们对省代已经很了解了,对不对? - -**[00:22:22] 发言人 2**:你销售你就跟省你们杨招聊,你说这个云南的? - -**[00:22:26] 发言人 2**:哪个地方的时代它怎么样? - -**[00:22:28] 发言人 2**:谁能支持我们,谁是表面上支持,其实不支持他? - -**[00:22:31] 发言人 2**:我觉得这个时代到底它起没起到作用? - -**[00:22:35] 发言人 2**:所以我觉得这个对这个省代要往下沉一级,不只是这个就是一个就像我们对华三的销售一样,我觉得要往下沉一级,就是他每个人状态怎么样,他有没有学习能力? - -**[00:22:47] 发言人 2**:我觉得学的好的,以后有能力的作为我们我们未来拓展的,我把他招过来,对吧? - -**[00:22:53] 发言人 2**:我只要市场拓展好了,我就可以招过来。 - -**[00:22:56] 发言人 2**:那省代也是养他,我也是养他,对不对? - -**[00:22:58] 发言人 2**:所以说我觉得我们的销售要往下,要除了你去看你这个,你说你去拓展,我觉得你现在那些省代到底跟你怎么样,而且你有没有地方,对不对? - -**[00:23:11] 发言人 2**:你外我对不对,我再找一个对不对,我找一个,我们再看看人家觉得卖的这心爱我,因为人家想拓展,所以我觉得这块上关于我们销售人才成立了,关于销售这一块我就多提些要求? - -**[00:23:29] 发言人 2**:就提一些关于这个跟省代之间是什么样的关系呢? - -**[00:23:34] 发言人 2**:我觉得还要再深入,非常深入,深入到一起,这才可以。 - -**[00:23:39] 发言人 2**:尤其是华三不愿意跟这个省代玩的时候,销售说我再给你带一家,我再给你带一家,他可以是吧? - -**[00:23:47] 发言人 2**:没有关系,因为这个市场本来就是这样? - -**[00:23:50] 发言人 2**:就直销本来就这样,没有办法我们去介入。 - -**[00:23:53] 发言人 2**:说是销售因为跟这个时代太好,那个时销干只要跟你关系好,你们俩没来眼去,只要没来去效果好,我觉得都好。 - -**[00:24:01] 发言人 2**:总比俩人他妈见面,妈的互相脑子里心里各揣一把,各揣一个,各揣一个是吧? - -**[00:24:07] 发言人 2**:同同同同同床异梦,总比同床异梦好是吧? - -**[00:24:10] 发言人 2**:所以我觉得这个还是我觉得销售我们的销售的力量要去覆盖到,这是一个我觉得非常重要的事。 - -**[00:24:20] 发言人 2**:你只有覆盖到了你的省代赋能,才能够说是发自内心的。 - -**[00:24:24] 发言人 2**:要不然你光是培训那是不行的,这是一方面。 - -**[00:24:28] 发言人 2**:还有一个就是我想说我们现在这个不管是配置、报价。 - -**[00:24:34] 发言人 2**:好,就是我觉得现在一直在说这个A这个事,我觉得昨天前天也一直在思考这个事,我觉得你先别你说你变成产品,然后变成商品拿去卖是吧? - -**[00:24:46] 发言人 2**:有竞争力的商品拿去卖,然后变成产品。 - -**[00:24:49] 发言人 2**:我觉得前面还有一个,你不管是产品还是商品,你也得有个需求是吧? - -**[00:24:55] 发言人 2**:我觉得就是针对我们,尤其我们现在这个部门,我们定制开发部门,我们这个A这个部门,我觉得应该要花一半的时间,花一半的精力,就是来放在我们整个营销渠道上的it化。 - -**[00:25:09] 发言人 2**:就AI的AI的变革,因为大量的公司在裁员,当然AI考你说是软件代码人在裁,我觉得可能还不止。 - -**[00:25:20] 发言人 2**:再往下走的话,其实就是新效率的时候,你首先是新效率? - -**[00:25:26] 发言人 2**:所以我觉得那你你那你现在的交易,你这个交易还很低频的那你在股票上面的高频交易,非常高的高频交易。 - -**[00:25:37] 发言人 2**:我为啥我现在慢慢理解为啥是deep see出现在高频交易了,因为他要高频交易,所以他要程序化。 - -**[00:25:44] 发言人 2**:因为他要程序化,所以他需要AI他需要AI来指导。 - -**[00:25:48] 发言人 2**:所以这一连串的引导,你看梁玉峰自己这次出200个亿,很少有人一次能拿200个亿出来的。 - -**[00:25:55] 发言人 2**:腾讯拿100个亿做高频交易,做这个deep sick的、deep ck的上市难。 - -**[00:26:01] 发言人 2**:就是我们是个交易,我们视个交易,这个股市也有股市的交易,它比如说这个股票好不好,高不高级,低不低级,买不买进,买不卖不卖出。 - -**[00:26:12] 发言人 2**:其实我们整个信息,我们跟省贷,我们跟渠道商,我渠道商要不要买我的产品,最后能不能出去,我们也是交易。 - -**[00:26:20] 发言人 2**:所以我觉得在在整个整个环节上,我觉得我们要要智能化,要智能化程序化,智能化要快。 - -**[00:26:29] 发言人 2**:这个事情我觉得我们要去把它做。 - -**[00:26:31] 发言人 2**:与其你跟人家说,你说我还能做个新产品,你在屋里想还不如闭门造车,还不如我们就跟我们的杨昭,跟我们的销售,跟我们的产品经理聊,我们怎么来把我们内部的一些A化速度变快。 - -**[00:26:46] 发言人 2**:因为现在你做co技已经快很多了,是吧? - -**[00:26:49] 发言人 2**:你一个人就可以把很多东西做了,是吧? - -**[00:26:52] 发言人 2**:我觉得我们我们这个定制开发要有一个这个要有一个要有这个准备,你把我这个东西弄好才行,可你我这个东西弄不好,你天天就吹牛逼,不行,这个是我说的。 - -**[00:27:06] 发言人 2**:关于it踢要全面进入,不管你配置,包括培训全面进入,包括之前提到的数字人。 - -**[00:27:13] 发言人 2**:我觉得对于省代的宣传,你对省代的宣传,我觉得如果数字能达到一个每天出几条这个水平,我们就可以来迅速的整合一个一个的一条一条的这个库? - -**[00:27:27] 发言人 2**:只面对我们省代进行宣传,我不面对公众号,就面对省代你怎么卖,我觉得也可以出一些东西。 - -**[00:27:34] 发言人 2**:我觉要加快加快沟通交流的力度,加快这个覆盖面。 - -**[00:27:41] 发言人 2**:我觉得这个事儿是肯定百分之百,未来一定是这个方向? - -**[00:27:45] 发言人 2**:高频交易就是这样的,不早我越来越想他。 - -**[00:27:48] 发言人 2**:高频交易的本质就是通过机器来来替代你的人,然后让你他妈的把你干废。 - -**[00:27:54] 发言人 2**:销售整个很多环节,我觉得要机器也要赶快上,要不然你就光是人的销售,我觉得是不够的,我就先说那么多。 - -**[00:28:02] 发言人 4**:我们继续,最后我插上去,张俊杰说的话,我们还要再震重一下。 - -**[00:28:07] 发言人 4**:就是现在的省代我也去聊过,就徐凯跟沈代也很突出。 - -**[00:28:12] 发言人 4**:完了之后岳磊跟沈代也更,就是说省代现在他们因为咱们中面现在搞的就有纸牌,又有红牌。 - -**[00:28:20] 发言人 4**:还有一些现在GPU的一些方案,以及你的库存,它的老概念配出的东西。 - -**[00:28:25] 发言人 4**:报了价没货反而麻烦更大。 - -**[00:28:27] 发言人 4**:就是我就是表扬这批。 - -**[00:28:29] 发言人 5**:所以说刚通我。 - -**[00:28:30] 发言人 4**:说到底是用用什么能把我们库存给连起来,把现有方案都堆到一起,我再配置,我才敢去找总代做配。 - -**[00:28:39] 发言人 2**:你要有一个,比如每个月,你为啥不能说高频交易高是每天每天有撤,甚至每每高频交易是每分钟也撤。 - -**[00:28:47] 发言人 2**:因为他们每分钟我现在卖,下次买我几个账户倒就把你套进去了,就每分钟都要测略。 - -**[00:28:54] 发言人 2**:那你现在你说我拿不出来,因为我们的很频繁,所以只能回来问我拿不出来,对于这个销售的策略我拿不出来。 - -**[00:29:02] 发言人 4**:对于这个现在的策略,我觉得本身就是一个错误。 - -**[00:29:05] 发言人 4**:那我就要么我直能就不到的去,所有事就都都丢到售钱,那售钱得找俊杰确认。 - -**[00:29:10] 发言人 4**:所以说他们忙来忙去,其实不是位置,是沟通有没有库存,能不能发货,能什么久多久发货,什么时候付款的问题。 - -**[00:29:18] 发言人 4**:其实不是。 - -**[00:29:19] 发言人 2**:我很多年前在新加坡看到一个啤酒馆,我就很深刻感受他那个啤酒杆里面卖的啤酒很神奇,他就是一个数字的东西,你只要人点的多了,它就往上涨,它价格会往上涨,因为他库存有限,那就每他他他他他就在那个啤酒馆里放放放了放了这么多。 - -**[00:29:36] 发言人 2**:如果你不点着他那个价格,因为他要卖掉,你那个往下降,我操,我觉得很神奇。 - -**[00:29:41] 发言人 2**:那就是一杯一杯来决策,然后他就会推动,他就会趋势驱动你那些东西就是我觉得要有我,我就要有一些极制。 - -**[00:29:49] 发言人 2**:刘季,你们商量,你们带着你们的人,带着你们,我这儿有好几个做做做做这个需求开发的,我要把它改过来,好吧? - -**[00:30:00] 发言人 2**:各位领导,因为这都是渠道上的事儿,我补充两句。 - -**[00:30:05] 发言人 2**:第一个就是杨刚说这个配单的问题,之前我跟俊杰总和生高总也沟通过。 - -**[00:30:10] 发言人 2**:俊杰总说后面会做一个面向于渠道的,就是把我们所有的产品清单,产品的型号都都公布出来。 - -**[00:30:18] 发言人 2**:然后现在的话我的做法是每周会更新一版纸质版,就excel表格的那个产品,所有的咱现在所有产品的库存清单,还有价格会稍微上浮一点,然后给到销售,销售可以向外去发,这个是目前的一个做法,就是这块会后面会一定会后面慢慢好起来。 - -**[00:30:36] 发言人 2**:然后对于省代的这个工作上的事是这样的,因为现在现有的省代基本上都是从原来华三的老省代继承过来的。 - -**[00:30:44] 发言人 2**:他们愿不愿意跟我们合作,或者合作的意愿怎么样,其实是有一个问号。 - -**[00:30:49] 发言人 2**:因此的话其实也是希望大家今年能够把金牌的事做的更好一些,就是多发展一些金牌。 - -**[00:30:55] 发言人 2**:我们可以从这些金牌里头去找出来后备的省代或者预备的省代。 - -**[00:31:00] 发言人 2**:因为百姓那些预跟我们配合不好的生态,其实后面如果有备选,就可以把它慢慢的就剔除掉。 - -**[00:31:07] 发言人 2**:目前还维持现状的原因是我们在各个一些省份里头是没有这种后备力量的。 - -**[00:31:13] 发言人 2**:因此的话想法就是把今年金牌多发展一些。 - -**[00:31:16] 发言人 2**:后面如果觉得哪一家省代不行的话,我们沟通一下就可以把它替换掉。 - -**[00:31:22] 发言人 2**:这个是这块如果补充的两个点,各位领导继续我我我补我补充一句,我觉得省贷其实渠道是讲感情的。 - -**[00:31:31] 发言人 2**:如果你经常去看他,然后聊的过程中你帮我解决了一些事,他肯定会觉得因为你帮了我,我下一次我也会帮你我觉得这是百分之百的。 - -**[00:31:42] 发言人 2**:是的,省贷是讲感情的。 - -**[00:31:44] 发言人 2**:所以说我们的销售,我们的售前本身就是要有温度是吧? - -**[00:31:48] 发言人 2**:你售前如果解决了什么问题,你找销售,销售售前可能有时候事的多以后,他不是很注意这方面的这个温度的个问题。 - -**[00:31:57] 发言人 2**:对他可能有时候他觉得他一下就过了,我说错了话,我忘了我过了或了,因为我今天事忙,但是我们的销售一定要有这个温度,就销售在这个方面一定要敏感。 - -**[00:32:08] 发言人 2**:人家是什么事给你造成了那么多的事儿? - -**[00:32:12] 发言人 2**:你这个我去解释一下,我去谈谈。 - -**[00:32:15] 发言人 2**:我觉得对于这个省代的这个事儿,我们下一代学习,我觉我们还要组织一些回访,就是组织一些包括人的回访,不是积极回访,不是10086。 - -**[00:32:25] 发言人 2**:好,我他妈特别反感10086是吧? - -**[00:32:28] 发言人 2**:这个真的你你你他妈移动中移动你真的要回访你他妈你你你要用那种什么高级的。 - -**[00:32:33] 发言人 2**:我那是中移动的市场部总经理,那我谁谁谁在回访你高I。 - -**[00:32:37] 发言人 4**:有温度的对,要有立马就麻都一堆。 - -**[00:32:39] 发言人 2**:要有温度的,你打个电话,或者有时候发个微信,加个微信以后我问一问。 - -**[00:32:44] 发言人 2**:雪球你比如说你把所有的省内的微信都加了? - -**[00:32:48] 发言人 2**:在省内的那些那那些负责人微信加了,你问问他。 - -**[00:32:51] 发言人 2**:你把最近怎么样或者这个怎么样,然后你把微信也推给我,我也加了,我就问问他。 - -**[00:32:57] 发言人 2**:我觉得要有温度,你只有要个温度,双方我们要建立一个诚实诚信的。 - -**[00:33:02] 发言人 2**:你比如说咱们你说那卖矿泉水的那矿泉水那几毛钱,那卖矿泉水的那些那那那个那个我相信不管是中新后保,还是后面那个农夫山田那个谁,我觉得在这方面都是大事情。 - -**[00:33:16] 发言人 2**:所以还是要去跟要对这个省代相互,是吧? - -**[00:33:20] 发言人 2**:他都是有原因的,做生意毕定谁谁爱不爱谁,我觉得还是有有一个有一个前世今生的。 - -**[00:33:27] 发言人 2**:好吧,就先说这么多好,继续。 - -**[00:33:31] 发言人 1**:好,我们下面就是授权代表第二位魏光耀。 - -**[00:33:40] 发言人 2**:这个杨昭你总有什么想法,你等会可以插进来继续说,反正这个我觉得都可以。 - -**[00:33:48] 发言人 0**:好的,那不我先补充两句。 - -**[00:33:50] 发言人 2**:你说看。 - -**[00:33:51] 发言人 0**:博现在其实也点了很多问题,我确实是这样的,其实我我这边对沈代这边,我觉得他们还是挺愿意积极帮我们去处理一些需求对接的。 - -**[00:34:03] 发言人 0**:但我本意其实也不是说把这些项目直接甩给省代,就不管,就本地还是因为我们现在不是有汇智的销售,我觉得汇智的销售在审批之间更多可能可以做一个联合计的。 - -**[00:34:18] 发言人 0**:一因为包括把我们跟省代,跟华山双方联合在一起,然后聚力去去突破项目。 - -**[00:34:25] 发言人 0**:我觉得如果能达到这一点就挺好的。 - -**[00:34:29] 发言人 2**:好的,这个汇智省汇智的销售有一个很重要一点就是情绪价值? - -**[00:34:36] 发言人 2**:你都不配单了,那就就是情绪价值。 - -**[00:34:39] 发言人 2**:一定要把情绪价值做好,情实情绪价值也情绪价值也是人生存的本质。 - -**[00:34:46] 发言人 4**:只要你要搞到18,具体就把这个的配置城市把弄出来。 - -**[00:34:51] 发言人 4**:其实销售配套也没有很了不起事情。 - -**[00:34:54] 发言人 4**:没问题。 - -**[00:34:54] 发言人 4**:销售我觉得你弄好了培训他他初步配单,到时候交给收亲戚财务认为是有问题的。 - -**[00:35:00] 发言人 4**:最后看库存怎么样的流程出来。 - -**[00:35:03] 发言人 2**:如果真的这个销售他一点都不用配单,但是他能把很多新能做的很好。 - -**[00:35:08] 发言人 4**:我觉得绝对是个好。 - -**[00:35:10] 发言人 4**:而且我们现在遇到的重点二级渠道重的是10万到20万的项目。 - -**[00:35:15] 发言人 4**:这种项目配单其实应该没什不难,只现在都没把指导给弄清楚,以前销售配单不太正常的一些事,谁说一定要S一配给大我。 - -**[00:35:28] 发言人 2**:不是那好。 - -**[00:35:31] 发言人 2**:杨思梅,你现在。 - -**[00:35:33] 发言人 4**:会配单吗? - -**[00:35:35] 发言人 4**:没没学过。 - -**[00:35:37] 发言人 2**:你会配单吗? - -**[00:35:39] 发言人 6**:什么很完美。 - -**[00:35:40] 发言人 2**:没没听清就配单。 - -**[00:35:43] 发言人 2**:我现在有一些简单的,大家都因为陈江之前教了我。 - -**[00:35:50] 发言人 2**:对的,你看看好好学习。 - -**[00:35:52] 发言人 2**:除了人家教你,你自己反了,要多学学,多问我我我觉得肯定会的。 - -**[00:35:57] 发言人 2**:如果你需要,比如需要一个,你说我需要还是要讲一讲。 - -**[00:36:01] 发言人 2**:别人教的,别人老是这个说的太碎劲了,系统性讲一讲,那我们就安排人来系统给你。 - -**[00:36:08] 发言人 6**:讲一讲好吧。 - -**[00:36:09] 发言人 6**:对,服务器他因为华那边要我们配。 - -**[00:36:12] 发言人 2**:这块创,然后就。 - -**[00:36:17] 发言人 6**:这些其。 - -**[00:36:18] 发言人 2**:他的简好,继续。 - -**[00:36:25] 发言人 7**:各位领导,各位同事,下面由我做一下工作的汇报总结。 - -**[00:36:30] 发言人 7**:我觉得最大的问题就是目前遇到几个分类。 - -**[00:36:35] 发言人 7**:第一个就是产品的兼容性问题,这里主要搞表现,第一个就是我们对特定软件的兼容性。 - -**[00:36:42] 发言人 7**:这个我这边举了个例子,就是客户临沂职业技术学这个项目是对于咱们来说是交付了,但是对于这个最终客户来说还没有验收,他们就遇到了这种专业的实训仿真这块,受限于咱space这个终端版本比较低,它是不支持相对于鼠标模式的。 - -**[00:37:04] 发言人 7**:所以说在这个实训场景里边有一些3D软件,3D实训的这个就是实用不了。 - -**[00:37:11] 发言人 7**:然后这个问题当时也提过定制,就是第一个工作量比较大,第二个是还要受限于排期。 - -**[00:37:20] 发言人 7**:其实这个就是相互这两个问题相互交织,导致本来项目预算比较低,他就没有相关的定制适配费用。 - -**[00:37:31] 发言人 7**:所以说如果说这种情况比较通用的问题,如果说归类我们把它归到这个去都去定制去解决,其实上是我们产品的一个弱项,这是说特定软件的。 - -**[00:37:47] 发言人 7**:第二个是说这个操系统,目前因为他说这个龙虾也好,或者说这个大模型小模型也好。 - -**[00:37:55] 发言人 7**:实际上无论是教育还是办公,很多客户都在考虑去利用云桌面里边对应的算力,去上相应的咱说的大小模型。 - -**[00:38:06] 发言人 7**:你像中国传媒大学,这是咱一个比较好的局点,而且今年还要破900点。 - -**[00:38:13] 发言人 7**:他们客户提出来要求咱去做最新版的无班图适配。 - -**[00:38:18] 发言人 7**:当时learning space work space做完了,learning space还没做,这个也是有工作量,然后还有排期的问题,这我认为是有共性的,在很多项目都有共性,这是产品的问题。 - -**[00:38:32] 发言人 7**:第二个就是产品,还有一个就是外设上,你像这个都盛华,这是院磊其实就一直在做项,这是他非常优质的客户,这个客户对咱的产品非常认可。 - -**[00:38:45] 发言人 7**:这里边有一个很明显的问题,就是目前的熟写板用不了的。 - -**[00:38:51] 发言人 7**:也是当时也是报了这个研发了,也是需要提特配的,就需要做深度定制。 - -**[00:38:57] 发言人 7**:如同此类的,比如说金融行业的这个优盾,就咱们现在测过的比较多的项目。 - -**[00:39:05] 发言人 7**:无论是央国旗下边财务公司,还是这个企业里边的财务职能部门,其实都是及到优盾的问题。 - -**[00:39:13] 发言人 7**:当然来说了,友商他能支持能兼容,那肯定是因为人们人家前边遇到过这种项目。 - -**[00:39:20] 发言人 7**:那么对于咱来说,如果这种情况提特配那么需要走研发的话,其实也是个弱项。 - -**[00:39:28] 发言人 7**:而很头疼现在这修息测试很怕遇到这些比较常见的这种财务外设、U盾什么加密U盘。 - -**[00:39:37] 发言人 7**:其实现在很害怕,这个遇到了就不好解决,特别是这阶段你是还是很难解决的。 - -**[00:39:45] 发言人 7**:第三个就是咱说的整体的客户需求,有一些特需的定制,比如说中海油这个它涉及到它安全了,那么邮政袋里边客户通过排查发现了用了一些开源软件,就是咱也咱这个产品里边用了一些开源软件。 - -**[00:40:04] 发言人 7**:它实际上是涉及到一些,比如说以色列的一些美国的一些带后门的。 - -**[00:40:10] 发言人 7**:根据客户要求是必须做这个国产化的自主替代的。 - -**[00:40:15] 发言人 7**:当然客户提实有要求,他是付了钱的,而且签完合同就付了一半。 - -**[00:40:20] 发言人 7**:但实际上这个交付的时候,我们比预期比客户的最后的验收节点还晚了半个月左右。 - -**[00:40:28] 发言人 7**:这个项目目前就没验收。 - -**[00:40:30] 发言人 7**:然后客户现在对咱来说,第一个就是项目进度他有拖延。 - -**[00:40:35] 发言人 7**:第二来说他们现在对咱有有信任危机,就觉得你看我们配合的都还很好,你让我们去交钱,我们也交了。 - -**[00:40:44] 发言人 7**:那为啥这个还会有拖延呢? - -**[00:40:47] 发言人 7**:是什么情况呢? - -**[00:40:48] 发言人 7**:是这个特别是还受到受受到咱现在品牌切换的一个影响。 - -**[00:40:54] 发言人 2**:这细节你就不应该。 - -**[00:40:56] 发言人 1**:继续说。 - -**[00:40:57] 发言人 1**:好,比如是这个问题。 - -**[00:40:58] 发言人 7**:就是咱现在很多事儿其实都受限于研发的人力不足和研发的大排期的这个影响是有冲突的。 - -**[00:41:07] 发言人 7**:再一个就是杨章提的,我这边也有这个省态信息不同步的问题,包括咱信息传递的一个断层,就不就是其他也说了。 - -**[00:41:17] 发言人 7**:还有一个就是他对于整个处理的流程,特别是。 - -**[00:41:23] 发言人 1**:售后的过程。 - -**[00:41:31] 发言人 7**:全程的参与。 - -**[00:41:32] 发言人 7**:另外他们对于这个顾股问题的排账,其实可以看到,有些售后他其实对于一个标准化的排查流程,去查手册,去应用知识库去解决。 - -**[00:41:45] 发言人 7**:没有,都是在群里问如果打群里问,咱的售后同事忙了,没有及时解答,就咔就电话就打过来了。 - -**[00:41:54] 发言人 7**:这个事是存在的,而且比较频繁,其实每天都有。 - -**[00:41:59] 发言人 7**:再一个就是说白了还有一些历史遗留问题,其山东这边还有系统部那边比较突出,这有很多项目,这个咱说了华三的归华三,咱的归咱。 - -**[00:42:11] 发言人 7**:但是这个新项目有了扩容的机会,或者是终端增补的机会,那么客户就会拿这个来要挟咱。 - -**[00:42:19] 发言人 7**:那么你要把前期的问题去给我处理好,解决好。 - -**[00:42:23] 发言人 7**:但是现在华山就说,我们售后解决不了这个怎么怎么地,这个问题也不难说,你看你们去去协调售后去处理这个事,其实我贾成明遇到很多了,很多事都是我们先去投入,咱的售后先去参与做一些,就没有资金,没有人力方面的投入,那主要但就耽误时间,先把这个事去做了,做完了之后才去做项目。 - -**[00:42:49] 发言人 7**:这个碰到的比较多,甚至说有些项目做完了,客户也不提啥时候扩容了,销售这华山销售就往后夺了,就说等等。 - -**[00:42:59] 发言人 7**:今年没钱,可能到下半年或者说八月份,明天到9月份就这样。 - -**[00:43:05] 发言人 7**:这种状态是有的,而且是一个比较常态化的东西,剩下就是我想说说就是我工作里边的一些体会。 - -**[00:43:14] 发言人 7**:第一个就是咱说的这个售前工作的下沉。 - -**[00:43:19] 发言人 7**:其实现在售前是当办个销售用,当这个产品经理用,当这个售后用,还是要深入到客户的现场,要去仔细的洞察客户的真实需求,包括去做好这个产品架构和产品选型的引导,以及去识别里边这些的风险,这个还是要做到。 - -**[00:43:41] 发言人 7**:再一个还是要做好这个资源的利用,包括要会这个就咱说了,省代也是要处好关系的,不能单纯说人家给咱去解决问题的,也是要同步给他一些项目的机会,让他主动去找华三跟踪。 - -**[00:44:01] 发言人 7**:这儿也要们也借力打力,这个也会让他去帮咱处理一些售后的问题,帮咱去处理一些测试的问题,帮咱去处理一些问题。 - -**[00:44:12] 发言人 7**:这还是要学会盘活资源的。 - -**[00:44:14] 发言人 7**:另外就是这个沟通层面,我认为还是要做好和上级的领导的信息同步,包括这个项目核实开标,核实申请商务这个项目的领导价格审批对他采购的影响。 - -**[00:44:31] 发言人 7**:另外要及时把这些进度和结果要对齐,要做好这个信息的闭环。 - -**[00:44:38] 发言人 7**:最后就是我认为还是要作为售前,从技术角度来讲,还是要做好一个技术的底线工作。 - -**[00:44:47] 发言人 7**:对于一些明显有风险的问题,对于一些无法兑现或者不好实现了,这个到了咱们就要兜底了。 - -**[00:44:56] 发言人 7**:不要做这个无法兑现的承诺,还是要维护好和客户和华泰销售,和咱这个省代相互建立好的信任关系。 - -**[00:45:07] 发言人 7**:彭总、盛刚总、徐秋总,我认为主要就是这么几块。 - -**[00:45:14] 发言人 2**:你讲完了。 - -**[00:45:15] 发言人 7**:对。 - -**[00:45:16] 发言人 2**:那你后面的七八是你是你。 - -**[00:45:19] 发言人 5**:把P P. - -**[00:45:21] 发言人 7**:做了分险,实际上我都一样做了总结。 - -**[00:45:24] 发言人 7**:那那我跟你讲。 - -**[00:45:25] 发言人 2**:我从倒数最后一页跟你说,你既然这几个东西你都都很清楚了,那为什么前面那些问题你往上咱们倒着说,从第六页往第五页,第四页说,你就你第五页你这个你占用资源,那你这俩事你是解决不了的。 - -**[00:45:43] 发言人 2**:第五页对解对。 - -**[00:45:45] 发言人 7**:有些是解决不了的那。 - -**[00:45:47] 发言人 2**:你解决不了怎么办呢? - -**[00:45:50] 发言人 7**:解决不了应该就是你们先放。 - -**[00:45:52] 发言人 7**:那是我认为是历史遗留问题。 - -**[00:45:54] 发言人 7**:这个我跟法销售说了,我说你这个你要提及,你不能让我老是给你站前台,你这个事你作为销售你是第一责任人。 - -**[00:46:03] 发言人 7**:那无论这是你前期遗留的项目,还是上一个销售给你的项目,你首先你得我。 - -**[00:46:09] 发言人 2**:我你你既然善用资源,我觉得这个事就是你你觉得你有些解决不了,但是又你有点无法说的。 - -**[00:46:17] 发言人 2**:我觉得你可以通过雪秋,通过我去找他们找这个谁了,找他那个叫什么? - -**[00:46:23] 发言人 2**:是找雷明阳。 - -**[00:46:24] 发言人 2**:就说这个事儿从从你比如说你比如华能,从长期来看,我们应该怎么解决,提些建议,然后让雷明阳他们,他们华三再给一些资源就来整合这事儿。 - -**[00:46:39] 发言人 7**:是朋友,您说的对,这个也是资源置换的方式,对吧? - -**[00:46:46] 发言人 2**:我觉得这是一个。 - -**[00:46:48] 发言人 2**:第二,因为我有些东西你说的太细了,你说前期部署的113一直存在部署,在新的上目中一个问题被反复提及,那这个事怎么办? - -**[00:47:00] 发言人 2**:那C113也你说说不。 - -**[00:47:04] 发言人 5**:关他是啥问题。 - -**[00:47:06] 发言人 1**:我没听你反馈过。 - -**[00:47:08] 发言人 7**:是华东招标中心最早19年采购的终端,有问题,这个终端他是每次重启卖地址都会被自己变。 - -**[00:47:21] 发言人 5**:那个地址变化影响了什么? - -**[00:47:23] 发言人 7**:每次都不一样。 - -**[00:47:25] 发言人 7**:然后他招周为招标中心,他终端的ma克是和虚拟的麦克都是要被他招投标系统抓取到的,所以说就影响他现在招投标这个事儿。 - -**[00:47:38] 发言人 5**:他有多少台? - -**[00:47:40] 发言人 7**:29台,但是分。 - -**[00:47:44] 发言人 5**:散在四个地方。 - -**[00:47:48] 发言人 7**:在都不。 - -**[00:47:49] 发言人 2**:在北京。 - -**[00:47:51] 发言人 5**:在都是啊。 - -**[00:47:54] 发言人 4**:是的,这个问题我说一下,因为我们接下来马上要没有2202307,就包含梦洁拿回来的历史签单客户这种项目肯这种事情绝非一次会,每个省份都有。 - -**[00:48:10] 发言人 4**:第一他买的很早,二过了维保和质保,3111。 - -**[00:48:16] 发言人 4**:对他就会提出他就会提出你这有问题,然后这你解决还是不解决? - -**[00:48:21] 发言人 4**:给你再画个饼,你解决我就再给你在你这个项目。 - -**[00:48:25] 发言人 4**:但是一般你解决了,你就不能觉得远达环保,重庆的理工大学都没有工资。 - -**[00:48:30] 发言人 2**:个不是你我是你们,我就个你善用资源,下一条才行了。 - -**[00:48:35] 发言人 2**:善有资源,我觉得这个事咱们聊聊,这个事儿如果给你代表出一点,你代表出也不想做这客户,你比诉两个方向,第一就是我不想做这客户,无情所谓。 - -**[00:48:47] 发言人 2**:第二,我做着客户,但是云桌面给我无就所谓。 - -**[00:48:50] 发言人 2**:你们针对这个,你们去自己去思考一下这个2两个2个方式。 - -**[00:48:54] 发言人 2**:第一,如果你想做的客户你有所所谓,那咱们俩商量各出一半。 - -**[00:48:58] 发言人 2**:我觉得你下一页写的很好,但是我正儿八经觉得你在善用资源方面,就跟老陈比差远了。 - -**[00:49:05] 发言人 2**:老陈当时做一个特别小的销售的时候,我就特别善于处理这种复杂问题。 - -**[00:49:10] 发言人 2**:我甚至可以直接拿客户的章,写一首给中信通讯侯维威的信八盖上章拿回去找那边要东西,资源过来,要完资源过来,我顺带我自己还另外额外再卖掉一笔其他东西的钱。 - -**[00:49:24] 发言人 2**:我们两个事情一起进。 - -**[00:49:25] 发言人 2**:所以说我觉得这些事拿水消,你们自己去动动脑筋,不是解决不了。 - -**[00:49:31] 发言人 2**:你说实话,二十多台我送的就可以。 - -**[00:49:33] 发言人 2**:你拿库存有没有有没有这个老机器? - -**[00:49:37] 发言人 2**:没有老机器是吧? - -**[00:49:38] 发言人 2**:那不可吗? - -**[00:49:38] 发言人 2**:20块也没多少钱。 - -**[00:49:40] 发言人 2**:你如果说你下来,你下来就遇到这个问题了,还是这句话,你未来有没有库窿好,我们俩什么关系好? - -**[00:49:46] 发言人 2**:你没娱乐面的库窿,但是你有那个什么的库窿,你有华三销售,你有华三的产品库窿,这也是我的把柄。 - -**[00:49:54] 发言人 2**:要不然我说你们用面为我让他去球滚蛋,完了我就我不但把它做坏,你把它做的更坏,那你华三说无所谓,那咱们都无所谓是不是? - -**[00:50:02] 发言人 2**:因为我一个我一个你不影响我,但是反之如果我把他做的更坏,他113不是现在偶尔出事吗? - -**[00:50:09] 发言人 2**:我让他天天出事,我让他天天出事,我就每天给他躲的后台给他捣坏了。 - -**[00:50:13] 发言人 2**:你划算积不积极,你比证经理没兴趣,那咱就ok了。 - -**[00:50:16] 发言人 2**:咱各方都有你代表这问题,如果有兴趣,咱俩一起来解决,对不对? - -**[00:50:20] 发言人 2**:你一万我一万,这对二十多台对于代表说对了,杨来说就是洗个澡的事,就洗个脚的事,还是你们没有找到这个事情怎么去? - -**[00:50:29] 发言人 2**:我说的一个个体的事儿,就是我稍微把他拉开点。 - -**[00:50:33] 发言人 2**:对,人家教你唱歌的事儿,你把它当成大事。 - -**[00:50:37] 发言人 2**:如果哪天的心情好,一杯酒下去,雪就过去。 - -**[00:50:40] 发言人 2**:那总你把你那个华丽医院你要不要? - -**[00:50:43] 发言人 2**:你不要我也不要了,我们俩不都扯淡了。 - -**[00:50:46] 发言人 2**:那一杯酒下去,你们想说弄,我操,那就是两瓶茅台,咱俩一起行就完了吗? - -**[00:50:52] 发言人 2**:听懂没有? - -**[00:50:53] 发言人 2**:朋友们友听懂了,我觉得不是不能解决,而是你就是你你上一页写的。 - -**[00:51:04] 发言人 7**:你所以说庞总这个事,其实我也在我也在研究,这也在琢磨。 - -**[00:51:11] 发言人 7**:就是我要看你销售的对这个项目的紧张程度,你觉得这个客户给你提出来问题,你愿意去使劲,那那才有价值。 - -**[00:51:23] 发言人 7**:假如说他92虎官不管了,我踢给你,你看着办,那那我怎么看着办? - -**[00:51:29] 发言人 2**:你觉得他要有扩容,你就主动。 - -**[00:51:32] 发言人 2**:谁这个事情叫谁眨眼,谁输了,他有没有扩容,他有扩容你赶快主动,我觉得就是这样的。 - -**[00:51:40] 发言人 7**:对他现在很多时候就碰到了这种问题。 - -**[00:51:44] 发言人 7**:他他又说销售说这个要扩容了完了这有问题你得给他解决。 - -**[00:51:49] 发言人 7**:我说那你很简单,我说你实在不行,你下个维保呗,你现在连400都没有我怎么认为你对这。 - -**[00:51:57] 发言人 2**:个事重视这个法律,其实这个事也可以理论,就因为客户一般,其实这客户心里也很急,很清楚。 - -**[00:52:04] 发言人 2**:我没事,我也没扩容,我找你我拿捏不住你是吧? - -**[00:52:08] 发言人 2**:我又不是老板,对我就是一个下面踢那个工程师,我怎能拿捏你我只能在扩容的时候拿捏你是吧? - -**[00:52:15] 发言人 2**:这个互相拿捏的。 - -**[00:52:16] 发言人 2**:搞不好你那俩事,他妈的都是把他拉出来,就差洗来差请他洗个脚,一洗完脚,那都是小事。 - -**[00:52:22] 发言人 2**:明天我把它全部淘汰了,后天我再买。 - -**[00:52:24] 发言人 2**:19年的都五年了,他妈的早都资产折旧折完了,后天我再来,对不对? - -**[00:52:29] 发言人 2**:我再给你再新买点,要买这就差洗个脚,是不是? - -**[00:52:33] 发言人 2**:这你你你你你不跟人家洗澡,就就把就把这个谁提出来这个问题,把他拉出来洗个脚,我操。 - -**[00:52:39] 发言人 2**:就这么爱提供的那个是吧? - -**[00:52:41] 发言人 2**:他觉得什么的,他他有这个有有这个想法。 - -**[00:52:44] 发言人 2**:所以我觉得下来,每一个我觉得包括我们的售前销售之间的还是要互相交流,就是要善于什么呢? - -**[00:52:52] 发言人 2**:刚才我跟雪哥说,我说售前和销售如果不搭班子就是互相有一个差异化,我觉得是对那个叫一种比较comp有一种比较。 - -**[00:53:02] 发言人 2**:如果他俩真正搭班子也有好处,那就是一个狂哏,一个逗人是吧? - -**[00:53:07] 发言人 2**:他妈的一个说一个弄,他也很也也是他妈的你说也很容易,他妈的说那个不行,这个给给我给我拧俩螺丝,就可以去谈谈一个这个是吧? - -**[00:53:19] 发言人 2**:这也是一个好办法。 - -**[00:53:20] 发言人 2**:所以我觉得售前和销售之间还是要有默契的。 - -**[00:53:26] 发言人 2**:还是有默契是能做到一些事情是吧? - -**[00:53:29] 发言人 1**:你会说很难。 - -**[00:53:31] 发言人 4**:很多也会说。 - -**[00:53:37] 发言人 2**:好,你你这个你这个继续说,你这个小细节的事儿,你们如果你会善用资源,就不在这谈这个特别小细节的事儿了,是吧? - -**[00:53:47] 发言人 2**:再往下好朋友。 - -**[00:53:50] 发言人 7**:其实也是就省内信息不同步的问题。 - -**[00:53:55] 发言人 7**:怎么说呢? - -**[00:53:56] 发言人 7**:因为很多省代,因为怎么说呢? - -**[00:53:59] 发言人 7**:我觉得一个典型的例子就是省内他本身在省内特别是渠道圈,他其实已经建立了口碑。 - -**[00:54:07] 发言人 7**:因为前期他带过很多项目,就和这个杨昭说的一样,其实很多小项目都是先从省代汇过去,省代很多是他们自己就能承接到,他解决不了他才找咱。 - -**[00:54:20] 发言人 7**:而现在的问题,是他们现在手里啥也没有。 - -**[00:54:24] 发言人 7**:你看新的胶片怎么去汇报,包括怎么去报价选型这个产品配置都没有。 - -**[00:54:32] 发言人 2**:我想又又加一句,我一直觉得我觉个it部能做些事儿。 - -**[00:54:41] 发言人 2**:这个小红书为什么能成为他妈的很多信息交流的特点呢? - -**[00:54:47] 发言人 2**:对不对? - -**[00:54:47] 发言人 2**:那你如果你能在省代里面搞一个小红书是吧? - -**[00:54:51] 发言人 2**:一个是你这个选股二里面他一查,他们一看这个东西,一看几个案例怎么弄的。 - -**[00:54:56] 发言人 2**:我操,我就我觉得其实这个事儿就如何连接省代,这个事我觉得it里面在我们里面原来可能达不成。 - -**[00:55:05] 发言人 2**:因为原来你原来你觉得我觉得原来可能就是主要原因就是的那个成本太高了。 - -**[00:55:11] 发言人 2**:我现在觉得拥为有了龙虾以后,有了这个什么以后,就知识库。 - -**[00:55:17] 发言人 2**:然后由知识库形成了一些程序性的东西,然后如何推送,如何让用户有感知,有很多种方式是吧? - -**[00:55:27] 发言人 2**:那那那那很多你看我觉得有时候我买个东西看人家,人家有些博主就是开箱,我把每个产品拿来吹个牛逼,你说他有没有趋向性? - -**[00:55:36] 发言人 2**:他当然有了,谁给他钱他可以优先进,但是你看不出来,我操这个速度快,个什么快,巴拉巴拉给你开八个箱,我操我觉得这很有意思,你小红书里有很多这种,对不对? - -**[00:55:48] 发言人 2**:那为什么人家就认为小红书上看那个东西就觉得就觉得我就觉得能接受他那个博主是吧? - -**[00:55:55] 发言人 2**:我接着所以我觉得我们我们内部一个是一个是我觉得我们要在我们人里面培养一个,尤其是我们这个售前里面找一个,当然是有可能是魏光耀,有可能不是魏光耀。 - -**[00:56:09] 发言人 2**:我就是我们要找一个就一个从人的角度,他善于去帮人家把这个事弄了,然后再把他的这个能力通过这个AI放大五倍,我如果善于给别人讲这个东西,我就扶持他,我操,就搞一个基于神在的,他每天不要干其他事了。 - -**[00:56:27] 发言人 2**:主要是停车了以后,他说了以后,你给省代你看看个,你看看这个,我觉得就很很,因为现在你们面对面把那沟通跟这个。 - -**[00:56:38] 发言人 2**:光是一个音talk音的东西,如果重复太多AI就可以回答? - -**[00:56:42] 发言人 2**:反之重复太多的事情,我们做些东西让别人吸收,我觉得要多动动脑筋都动了,我觉得省代其业没,你说有多少人呢? - -**[00:56:53] 发言人 2**:是吧? - -**[00:56:54] 发言人 2**:十个左右有多少人呢? - -**[00:56:56] 发言人 2**:我觉得我们得想些办法下来,我们针对这个,我建议孟洁,梦洁,你也孟洁也在,我建议我们梦洁你兼天你专门,因为你是负责这个渠道的,我觉得我们专门研业。 - -**[00:57:09] 发言人 2**:你们这怎么给省代提供一些更多的信息化的一些东西,或者说我们主动的,如果能知道他的那个get的那个点,你用一些用一些图文并茂的东西是吧? - -**[00:57:20] 发言人 2**:然后让让他易于接受的,然后带着自己自家一些宣传特点的就往外送了。 - -**[00:57:26] 发言人 2**:你越这么说,我越觉得我操,我真的应该搞一个,我专门搞一个这个叫什么团队,或者叫数字人,或者叫一个内部的一个叫叫内部自媒体。 - -**[00:57:37] 发言人 2**:我专门组织个搞个小组织,两三个人我操都是喜欢这个宣传的,喜欢那个,喜欢喜欢宣传,我把它整合在一起。 - -**[00:57:50] 发言人 2**:那很神奇。 - -**[00:57:51] 发言人 7**:还有一个问题碰了是啥呢? - -**[00:57:54] 发言人 7**:就是你说咱也可以去搭建业的工具,其实咱包括我现在,其实我很有去帮学带他们的意愿。 - -**[00:58:03] 发言人 7**:而现在省在的人员也是一个问题,第一个是他们的精力,其实现在这个放在云面上没有那么多。 - -**[00:58:13] 发言人 7**:第二个是他。 - -**[00:58:14] 发言人 2**:有一个我觉得他如果没有专职,有一个兼职都可以。 - -**[00:58:19] 发言人 2**:有兼职我觉得这还是灌输,每天你每天给他发微信,每天给他狂轰滥炸。 - -**[00:58:24] 发言人 2**:然后他时间长了在里面他就他要更有感知的。 - -**[00:58:28] 发言人 2**:他说他可能我跟你讲有一种感知是什么? - -**[00:58:31] 发言人 2**:这个公司的产品很烂,但是这公司的人很勤奋,也很有温度。 - -**[00:58:35] 发言人 2**:我觉得他们未来会做好,我一定会帮助他把它做好。 - -**[00:58:38] 发言人 2**:我告诉你,我最早20年前,他妈中兴工寓他妈的面对的包括华为,面对的他妈的爱立、诺基亚、阿尔卡特朗讯、摩托。 - -**[00:58:46] 发言人 2**:面对一大堆这些上海贝尔,一大堆这种国外公司的时候,那种产品很烂的时候,所有看到的这个销售,就中国的销售,包括中兴、华为的,都是觉得他们太勤奋了。 - -**[00:58:57] 发言人 2**:虽然他们产品很烂,我觉得他们以后会做好的,就这么。 - -**[00:59:02] 发言人 1**:一点一点进去的。 - -**[00:59:05] 发言人 7**:明白,彭彭总。 - -**[00:59:06] 发言人 2**:我觉得是有机会的,就是你怎么把它,我一直觉得为啥高频交易来自于杨第来自于高频交易,高频交易来自于就很简单,因为现在高频的因为那个东西他还有钱,那人家根本不玩你这个。 - -**[00:59:22] 发言人 2**:换句话说,你让梁文出来玩,你这个分分钟就跟你玩了,是吧? - -**[00:59:27] 发言人 2**:一套的组织,我操天天给你宣传,就属于他妈的水一般的泼下去。 - -**[00:59:33] 发言人 2**:就我们这一块信息的沟通、信息的传导、信息的传递,整个这一块我觉得我们有巨大的提升空间,尤其是在现代社会情况下的这种新形势下,我觉得我们应该能有巨大的行动空间。 - -**[00:59:49] 发言人 2**:但是首先我们自己就总部,你包括李俊杰是吧? - -**[00:59:53] 发言人 2**:要起行要起行去去去解决这个信息差的问题。 - -**[00:59:58] 发言人 2**:你这个世界还不是信息差的,知识差都没了。 - -**[01:00:03] 发言人 2**:你问豆包啥都问得出来,还有信息差吗? - -**[01:00:06] 发言人 2**:你问豆包,你你问豆包已经知识差都没了你问豆包他妈的火箭为什么上太空? - -**[01:00:12] 发言人 2**:那流击研究的问题,那那有问题吗? - -**[01:00:15] 发言人 2**:他肯定会一点一点给你拨开告诉你。 - -**[01:00:17] 发言人 2**:还比如说信息差了,我觉得如果我们和省代之间还存在着那么多信息差,就是问题我们自己都在反省,那问题不在神代。 - -**[01:00:30] 发言人 2**:我们联合起来,你俊杰你要分享产品经理,产品经理你推广自己的产品,你很重要一点就是让沈代知道你在干嘛。 - -**[01:00:38] 发言人 2**:你你你不是你做配饰,你不是说你在那整了半天,我也不知道你在整啥,我操什么叫产品经理? - -**[01:00:45] 发言人 2**:这个农夫在干嘛呢? - -**[01:00:47] 发言人 2**:农夫每天都要到菜市场去问问我的菜。 - -**[01:00:49] 发言人 2**:如果菜市场的每个人都是省代的话,你到菜市场的每一个问问我的菜好卖不? - -**[01:00:55] 发言人 2**:这才是他妈的产品经理,这才是far门. - -**[01:01:03] 发言人 2**:啊继续。 - -**[01:01:05] 发言人 1**:你往。 - -**[01:01:06] 发言人 2**:上往上。 - -**[01:01:13] 发言人 2**:你那外设的事儿,我觉得我们我们是不是我们招那个人要不要上课,要说还是要招招就有作用。 - -**[01:01:24] 发言人 5**:有。 - -**[01:01:25] 发言人 4**:他不有用。 - -**[01:01:26] 发言人 5**:包括一些外设的配,我们可以逐渐的稍微多接一些。 - -**[01:01:33] 发言人 5**:就是我用一个最低的要求。 - -**[01:01:35] 发言人 2**:这个人有用的核心就是他去了以后,他他付出的钱我能养,我能通过这个东西养回来。 - -**[01:01:44] 发言人 5**:这就是争取拿一些外设把他养回来。 - -**[01:01:49] 发言人 4**:开我觉。 - -**[01:01:51] 发言人 2**:你们有的。 - -**[01:01:55] 发言人 4**:话,对,你们。 - -**[01:01:59] 发言人 2**:有的话是还个不管他们做们的核迅速。 - -**[01:02:15] 发言人 2**:我觉得这个职业库本身这个东西其实省态也需要我我我就希望下来我们研究一下,就是我们解决两个问题。 - -**[01:02:27] 发言人 2**:一个是我们如何把我们的知识,需要省代知道的信息铺天盖地的传导给他。 - -**[01:02:34] 发言人 1**:这是第一第二。 - -**[01:02:36] 发言人 2**:他的想法能够迅速的和我们有对接,能够迅速对接行不行? - -**[01:02:43] 发言人 2**:我们能够快速的跟他对接。 - -**[01:02:50] 发言人 7**:彭总其实有一个问题就是咱能传导,但是传导了之后他能承接和吸收,这是个其实很大的事。 - -**[01:03:01] 发言人 2**:这个事还是那句话,你这个就跟那个运动一样,你有很多个节点,对不对? - -**[01:03:08] 发言人 2**:跟你打篮球踢足球一样,你个小腿得摆,大腿得摆,臀部得摆,哪儿都得摆。 - -**[01:03:14] 发言人 2**:就是我们的销售要上去要做有温度的事情,要大家他有愿意,他如果没有愿意,我就再怎么都没有用,对不对? - -**[01:03:23] 发言人 2**:他水泥地你让他吸啥呢? - -**[01:03:26] 发言人 2**:是啊,他如果他在草地里,他觉得他只有成长,只有吸收才能成长,那当然它会吸收。 - -**[01:03:32] 发言人 2**:他在水泥地里他都没兴趣,你搁那吸啥了,那你把它换了,那你把它换了。 - -**[01:03:39] 发言人 1**:如果整个省代里。 - -**[01:03:40] 发言人 2**:面没有一个人关注,甚至没有一个眼光,甚至没有一个余光,没有一个膀胱来关注你的v di的话,我觉得这个省代就不要跟他合作了。 - -**[01:03:52] 发言人 2**:他如果要有余光对不对? - -**[01:03:54] 发言人 2**:他如果在人群里看了你一眼,我们那些销售就应该上去把那一眼抓住,就要就可以建立一个传奇。 - -**[01:04:03] 发言人 2**:他如果连余光都没有,那你还跟他聊个屁,聊个毛。 - -**[01:04:14] 发言人 2**:继续,再往上。 - -**[01:04:19] 发言人 7**:就是产品的比较核心的部分,其实我觉得像。 - -**[01:04:26] 发言人 2**:俊杰你要回答一下不? - -**[01:04:33] 发言人 5**:这个只是一些老生常谈中的事,只能提到需求在这反正就基本上看到都是些思路问题,都是适配问题。 - -**[01:04:42] 发言人 5**:所以这点能力只能按照最高需求去适配。 - -**[01:04:47] 发言人 7**:2424042404已经适配了,我知道是。 - -**[01:04:55] 发言人 2**:件咱配work配。 - -**[01:04:57] 发言人 7**:好像是教学那块要用下来沟通。 - -**[01:05:01] 发言人 5**:和这个和宇航沟通,这种细。 - -**[01:05:04] 发言人 3**:节就不关于研发这块的事。 - -**[01:05:07] 发言人 3**:我说一下就是现在是我们给研发的的需求其实是不多的,所以说我今年我们其实还是给了研发那么多用过去我们这边产品团这边一要把更多的需求要传递给研发。 - -**[01:05:27] 发言人 3**:我前天在跟智波在智波张志波在聊天,他们其实他们的团队已经在全面运用AI进行开发了,对他们的研发效率也在大幅提升。 - -**[01:05:42] 发言人 3**:他们目前用的是body body. - -**[01:05:47] 发言人 2**:它是海外版吗? - -**[01:05:49] 发言人 2**:还是国内的,它本地部。 - -**[01:05:52] 发言人 3**:署的? - -**[01:06:25] 发言人 3**:那应该就是后面的,腾讯后面。 - -**[01:06:38] 发言人 2**:的应该是哪个我不清楚,这个没细,但他们了解壳。 - -**[01:06:59] 发言人 3**:莫跟我讲钱。 - -**[01:07:00] 发言人 3**:大概3 4月份他们的那个费用大概还在,就几千块钱。 - -**[01:07:05] 发言人 3**:但是上个月他们的就他们部门的在这个上面的支出已经有四五万块钱。 - -**[01:07:13] 发言人 2**:就一个月是吧。 - -**[01:07:15] 发言人 3**:就是张波他这个研发团队在这个AI上面的的消费。 - -**[01:07:23] 发言人 2**:我是说是一个月。 - -**[01:07:25] 发言人 3**:还是一个月,他们按结的这个是,然后他们的的确他说他们的个代码的产出量有了大幅的一个提升。 - -**[01:07:36] 发言人 3**:我说这个意思就是说是其实他们的研发效率在大幅的提高,我们可以更多的需求传递给他们的研发。 - -**[01:07:44] 发言人 3**:他们原来说的15人天,现在可能就十三四人天就能解决的事情。 - -**[01:07:50] 发言人 3**:所以我们不要怕把我们大量的需求去年他们做不过来。 - -**[01:07:56] 发言人 4**:我我我就我晚计划这个事情,下周一例会所,今天宋刚讲到这儿,我就多插一点,就是你看售前也在诟病销售也在诟病产品问题的时候,就是华我我通过前天跟芝房企舰张志波他们认为我云云中面研发全面都听了指挥,做的产品没问题。 - -**[01:08:18] 发言人 4**:我们反而我我我插这句话,意思就是我们自己公司展绘智的产品这块要强势一点,研发是不独资的。 - -**[01:08:25] 发言人 4**:但我产品就站在这个竞标的角度上多提要求,多提问题,强势一点要求他们干这个。 - -**[01:08:32] 发言人 2**:去年我感觉这个整个应该强势,你整个产品经营团队一直没有想过产品运该干嘛,这个云飞到底好不好,跟你身心不差的。 - -**[01:08:42] 发言人 2**:我我再说一遍,我我再说遍这个问题,我我我再说一遍,你得每天都得去农场里看一看到菜市场里看一看,你这才叫farmer。 - -**[01:08:51] 发言人 2**:要不然你这个产品经理团队,或者你的产品经理就是失职的。 - -**[01:08:56] 发言人 2**:虽然你说你每天在忙,我操你是你你你但是你可能不是farmer,你可能是另外一个角色,我得另外给你再给你再给你换一个角色。 - -**[01:09:06] 发言人 2**:你比如说你是个什么呢? - -**[01:09:07] 发言人 2**:是一个是一个市场的管理局里的那个带红袖套的,叫什么清工督导,还是个什么? - -**[01:09:14] 发言人 2**:你就不是farmer,你知道吧? - -**[01:09:16] 发言人 2**:所以你一定要想明白我说的话,要发自内心的。 - -**[01:09:19] 发言人 2**:我今年有没有去农场? - -**[01:09:21] 发言人 2**:有没有去菜市场? - -**[01:09:22] 发言人 2**:如果今天没去看农场,没看菜市场,我就不是farmer。 - -**[01:09:25] 发言人 2**:要记着这个的话,不是farmer就不是产品经理,我可以另外给你找个定位,我们另外找个定位,对吧? - -**[01:09:32] 发言人 2**:不需要找这个定位,换一个定位好吧。 - -**[01:09:36] 发言人 4**:这这这这这是。 - -**[01:09:39] 发言人 3**:这是我们谈判有弱势点要就宇豪这边他们如果评估一个来一下,我们不要工作们的。 - -**[01:10:02] 发言人 2**:评估。 - -**[01:10:03] 发言人 4**:的估。 - -**[01:10:05] 发言人 3**:加上现在的这个AI的结合,他们的这个效率肯定大降低这个人天数了已经,但是他报我们的人天数可能还是用原来的这个系统在报。 - -**[01:10:16] 发言人 3**:所以说我们这个可以。 - -**[01:10:18] 发言人 3**:其实我们既然我们付了那么多钱给研发,就要把研发的重新压榨到底。 - -**[01:10:24] 发言人 3**:就是说我们该做的就让他们做,哪怕我们这边像收不到钱,有些东西也得做。 - -**[01:10:30] 发言人 3**:当然我们收钱是还是要,但是不要想着上百人天,我们这个项目就做不下来了。 - -**[01:10:38] 发言人 3**:很多很多的研发的需求,其实你传递过去,他们照样是能够做出来的。 - -**[01:10:44] 发言人 3**:我们还是要把这个压力要传递过去,要不然你看你可以统计下我们今年给他们的定制研发需求是多少? - -**[01:10:53] 发言人 3**:不多了。 - -**[01:10:53] 发言人 3**:到现在为止他们的研发人力据我了解已经在用我们的I的人员在他的产品的一些职。 - -**[01:11:02] 发言人 3**:所以说这个事情我们还是一定要产品团队在跟研发对接的时候,一定要有有有有这个概念在心里面。 - -**[01:11:11] 发言人 3**:好吧? - -**[01:11:12] 发言人 3**:给我提一点,很多这些顶多这些项目是可以去去帮他们的这四倍去完成的对吧? - -**[01:11:19] 发言人 2**:实老这里补充几句,第一个我们产品这边排需求,就是还有一个版本需求,他并不是以单个项目流程。 - -**[01:11:27] 发言人 2**:就举个例子,比如这个项目他排了100个人天,我最后的核算这个项目能不能做,并不是以这个单位项目为准。 - -**[01:11:35] 发言人 2**:我们是会拉通我们的需求来源几部分。 - -**[01:11:38] 发言人 2**:第一个产品自规化,第二个项目定制需求。 - -**[01:11:40] 发言人 2**:第三个从各个售前口我们每个季度都会去做收集和整理。 - -**[01:11:44] 发言人 2**:然后我们每个季度比如提给研发的,我们一共就会起决个30到40项需求。 - -**[01:11:50] 发言人 2**:就比如这一个价格方面的需求,我们提了30到40个,然后根据研发的工作量进行排期。 - -**[01:11:56] 发言人 2**:就是我们其实压给他们的都是超级饱和的。 - -**[01:11:59] 发言人 2**:然后他们再根据实际工作量,就比如说他那边用的那个work 8或者八用了过后,他现在给我的反馈工作量就是我只能做20个,然后我再跟他压,比如说加到30个。 - -**[01:12:11] 发言人 2**:通过这样的方式,我们去最后采用一个版本的需求。 - -**[01:12:15] 发言人 2**:所以他不是一个单个的一个项目,而是说我们总共是以超预期超过的工分利压给达工后。 - -**[01:12:22] 发言人 3**:再跟他们讨价还价,去跟这样去排。 - -**[01:12:25] 发言人 3**:一般没确的这第一个是我们以后可以多接一些定制开发类的项目,因为这可基本上可以收到钱的这这这个东西每多接一单,我们就多多收一份收益,这个不要过多的给拒绝掉了,压压过去,他们是应该能完成的,知道吧? - -**[01:12:42] 发言人 2**:好的,沈刚总到时候我们尽量勾接一起。 - -**[01:12:48] 发言人 2**:还有一个还是总那个我刚才说一点,就是我从来没有听到过,比如说咱们产品经理压研发压不住,这个事也很从市场的角度,这事也很重要。 - -**[01:13:01] 发言人 2**:到我这儿让我去找新实的,比如说到我这儿说,彭总你再去找要去压这个生情。 - -**[01:13:08] 发言人 2**:不错,我从来没有听说过。 - -**[01:13:09] 发言人 2**:我再给你们讲讲,我他妈原来的工作历史,我们经常都是他妈的一条腿。 - -**[01:13:14] 发言人 2**:那产品经理他妈的我的办公室门都进不了。 - -**[01:13:17] 发言人 2**:如果他给我不给我配合,我不不给我做好的话,我他妈肯定要去告他,到最大的领导人面前去告他。 - -**[01:13:24] 发言人 2**:理解我意思吗? - -**[01:13:25] 发言人 1**:你们这个资源。 - -**[01:13:27] 发言人 2**:刚才那个你翻到最后一页,个那个写的很好,魏光耀,但是有没有去做是一回事,我觉得你这个是基本的光耀,你翻到最后一页,这个洞察需求,善用资源,主动沟通。 - -**[01:13:43] 发言人 2**:这三个我觉得都是叫什么呢? - -**[01:13:46] 发言人 2**:叫从上这个学东西,就工作里面上这个学都得知道洞察资源,善用资源,主动沟通。 - -**[01:13:55] 发言人 2**:但是有些人就是30分,有些人50分,有些人是100分。 - -**[01:14:02] 发言人 2**:我当了17年的代表周经理,我觉得我最自豪的就是非常洞察需求,非常善用资源,非常主动沟通。 - -**[01:14:11] 发言人 2**:这是老陈可以引以为傲的事情。 - -**[01:14:14] 发言人 2**:我也希望你们这几点都是他妈的老同志给你们的,雪娇给你们的给你们的忠报。 - -**[01:14:23] 发言人 2**:什么叫非常善用资源? - -**[01:14:25] 发言人 2**:什么叫非常洞察需求? - -**[01:14:27] 发言人 2**:就是你要你一旦发现这事你想做你就上升,你做不了上升。 - -**[01:14:32] 发言人 2**:我从来没听过我那么长时间,我听到咱们研发很少,而且研发给我说的工作,我基本上没盛刚给我说的工作,我都很积极主动的,我极主动的去完成是吧? - -**[01:14:45] 发言人 2**:他不管再难我都要跑去,我就跑去找人我要积极主动完成。 - -**[01:14:50] 发言人 2**:但是我觉得给我的太少,这是一个。 - -**[01:14:54] 发言人 2**:我觉得你们产品经理团队产品经理产品经理团队要认真反省,不怪你们,我就告诉你们一点,不怪你们,只是因为你们以前没有做过,就这一点没有做过就要补课,不代表以后不强。 - -**[01:15:07] 发言人 2**:但是因为没有做过,脑子里很多固有思维。 - -**[01:15:12] 发言人 2**:没有见过是吧? - -**[01:15:13] 发言人 2**:杀猪的见少了,你当然你就自己成,拿自己的刀就会杀猪,那刨你解牛可不是一般的杀猪的。 - -**[01:15:20] 发言人 2**:所以说我觉得要没有做过没关系,要谦虚,要保持非常谦虚,非常欧文的心态去学习。 - -**[01:15:27] 发言人 2**:而不是说我一两天我就觉得自己是大拿高手。 - -**[01:15:31] 发言人 2**:我反正你看这边那边我都整不行,这是一个还有一个研发,刚才说到的那个cobody,我对你留进你们那个团队,我非常有意解。 - -**[01:15:42] 发言人 2**:我觉得游击队就是游击队,你不要以为戴上帽子就是这个正规军,就陈佩斯那个呃陈佩斯那个小品里面,你以为你戴上帽子了,你以为你装上皮带了,你还是游击队,要从骨子里解决游击队的问题,所有的思想要正规,要要要向要向先进学习,而且要快速的去学习,是吧? - -**[01:16:04] 发言人 2**:我说了好几次了,你们那个co点的问题,我要觉得我们A你看人家那么大项目都在转移,都在转弯。 - -**[01:16:11] 发言人 2**:你下来马上把air coding,把这个coding body那个事给我搞清楚,我不需要再看到我的烟,我的那些销售们今天就蹭的我我的那个我研发人员今天就蹭两个人家免费代码,明天蹭两个免费代码,搞得像叫花子一样是吧? - -**[01:16:26] 发言人 2**:搞得铁道游击队一样,我们都没把自己当成潜道游队,你们把自己当成潜道鱼队。 - -**[01:16:31] 发言人 2**:今天他妈的过了个货抢一点,明天抢一点,还太阳什妈快要下山了,我操,都他妈吹牛逼的。 - -**[01:16:38] 发言人 2**:你要做要正规,我们到底应该学习,我们怎么样才能把我recording定给了你,给了你一些板子,给了你H 20,怎么把我们的算力规范化的,不要一块占一块那一块占一块那一块的。 - -**[01:16:50] 发言人 2**:这个给谁一看的牛逼的做法。 - -**[01:16:55] 发言人 2**:好吧,要想明白到底华智用的什么,那模型大部应用的什么? - -**[01:17:03] 发言人 2**:我们怎么样把我们怎么武装我们的兄弟们,而且标准化武装,不要人家像逃脱走娃娃一样。 - -**[01:17:09] 发言人 2**:研发一个个的,我用了个代码,我用个代码,我从那抄点,从那找点。 - -**[01:17:18] 发言人 2**:这些事儿按理说都不应该我提,都应该你们提出来找我。 - -**[01:17:24] 发言人 2**:如果具体你们那个也是,我觉这两个问题好,继续。 - -**[01:17:29] 发言人 7**:王哥,我这就这些情况。 - -**[01:17:34] 发言人 2**:你你这个你这个我说一下关友,我本来是希望你,因为你在接触一线有很多的,我觉得基于什么呢? - -**[01:17:45] 发言人 2**:基于我们对我们这个产品的更高一点的想法,对于行业,对于这个对于云乐面的发展,对于我们我们在这个过程中间,就是对于这个行业需求的那种新的领域里的需求,有更多的一些想法。 - -**[01:18:03] 发言人 2**:我看你虽然你最后四个写了什么洞察需求,写了那么多,但是我觉得你那些问题没说你问题不对。 - -**[01:18:12] 发言人 2**:你的问题其实可以跟可以在随时在微信里面你都可以发给我,或者拉个群发了。 - -**[01:18:17] 发言人 2**:这才表示你主动沟通,而不是在一定让你写个东西的时候,你现在写了个东西,你说那那那那几个问题,我认为你那些问题当然不能叫鸡毛蒜皮的问题,都有共性。 - -**[01:18:29] 发言人 2**:我们可以把它拉高了看啊,每个问题都代表着上面都有个下面都有个冰山,我也同意,但是我觉得你就这些怎么说呢? - -**[01:18:38] 发言人 2**:就这小颗粒的问题,然后还说你主动沟通,你这个善于主动沟通,我觉得好像有点矛盾。 - -**[01:18:46] 发言人 2**:而且你把这个原则写的那么高,但是我没有看到你你你对这个整个云乐面这个产品的更高的认知,包括对客户需求的更高的认知。 - -**[01:18:58] 发言人 2**:你觉得呢? - -**[01:18:59] 发言人 2**:是彭总您说的对。 - -**[01:19:01] 发言人 7**:这个问题还需要再总结,我还需要再拔刀。 - -**[01:19:05] 发言人 7**:这个包括对人论面的认识,对这个客户需求认识。 - -**[01:19:09] 发言人 7**:对你你下来你下来重新写一写。 - -**[01:19:12] 发言人 2**:你下来重新写,你单独写,我写写给我一个好吧。 - -**[01:19:16] 发言人 2**:你你我感觉你写了个东西,就有点像找了个猴子,然后太阳天你跑去在那抓狮子,这抓一点,那抓一点是吧? - -**[01:19:26] 发言人 2**:这抓一点那抓一点,然后说你看这都有你你站远一点,你回去你站远一点,你站高一点,你爬到你家2楼凉台5楼去,你再看看这个问题,你想想有哪些事情? - -**[01:19:40] 发言人 2**:有哪些需求? - -**[01:19:40] 发言人 2**:云桌面到底应该怎么做,走到哪儿去? - -**[01:19:43] 发言人 2**:你也做过系统提成,你也做过那么多产品,我觉得你也是比较爱学习的,你也我觉得你的工作也是比较认真的。 - -**[01:19:52] 发言人 2**:但是这个跟你说的洞察需求,主动沟通善用资源还是很有差距的。 - -**[01:19:59] 发言人 1**:你再聚焦。 - -**[01:20:01] 发言人 2**:点小了。 - -**[01:20:02] 发言人 7**:聚焦成单个项目,这个应该再扒一下。 - -**[01:20:07] 发言人 2**:你就是抓狮子,你下来,你把你的那些想法我们下来,你再给我发一个微信。 - -**[01:20:14] 发言人 2**:你怎么看这个行业的? - -**[01:20:16] 发言人 2**:你觉得正教医起应该叫起教医政,现在叫企教医政。 - -**[01:20:20] 发言人 2**:你觉得企教医政怎么样加能源,加这个行业里面到底你做了那么多项目,到底是你觉得哪些东西是可以推广的,哪些东西是我们觉得应该要那个什么的,应该要避免的。 - -**[01:20:35] 发言人 2**:我觉得包括next x这些问题。 - -**[01:20:37] 发言人 2**:到底这个能卖吗? - -**[01:20:39] 发言人 2**:我问你那个是能卖吗? - -**[01:20:41] 发言人 7**:我现在问你。 - -**[01:20:43] 发言人 2**:能卖,你那你什么时候能做个样板出来呢? - -**[01:20:48] 发言人 7**:我们现在来找个这个怎么说呢? - -**[01:20:52] 发言人 7**:其实我们我和院磊,我们俩其实定好聚焦点,就是找个山东省的本就地级的国企去去推,不会找省级的,我们就想做个亮点,甚至说前期可能会找不光是这个商务方面知识,可能也会需要这个研发侧的支持。 - -**[01:21:17] 发言人 7**:但是现在这个还没沟通的那么好。 - -**[01:21:21] 发言人 7**:应该我觉得7 8月份的时候会有个给咱一。 - -**[01:21:26] 发言人 2**:个测试的机会。 - -**[01:21:28] 发言人 2**:但是我有个不同的想法,我觉得用那X就本身他就没太多钱,然后可能这个产品的规模也不大。 - -**[01:21:37] 发言人 2**:我觉得相比v di来说,它是不是颗粒度小了,估计我挣不了什么钱? - -**[01:21:41] 发言人 2**:竞争一激烈,我挣不了几毛钱你说出来。 - -**[01:21:45] 发言人 7**:这个也不好说。 - -**[01:21:47] 发言人 2**:因为他毕竟销。 - -**[01:21:48] 发言人 7**:售的产品比咱原来想象的要高一个层级,也我觉得可以和捆绑一些东西去卖。 - -**[01:21:56] 发言人 7**:因为像世俗国企,你和我和我和院里我了我们了解的情况就他没有那么多框架。 - -**[01:22:04] 发言人 7**:比如说其实更像我怎么说呢? - -**[01:22:07] 发言人 7**:就是他更像个集成。 - -**[01:22:09] 发言人 7**:除了我们提供终端,可能也需要我们提供个西方的服务器,可能我们还需要提供个信创的操作系统,还需要提供个信创的这个办公软件。 - -**[01:22:22] 发言人 7**:它其实如果把它当成集成去看的话,可能综合收益还是可以的。 - -**[01:22:30] 发言人 2**:你又是想去卖个信有集成是吧? - -**[01:22:33] 发言人 2**:对。 - -**[01:22:33] 发言人 7**:因为他这种市一级的国企,他可能你第一步信创他试水他不买pc那他他他其实他这个价格预算就不。 - -**[01:22:42] 发言人 2**:那我的产品能卖多少钱呢? - -**[01:22:45] 发言人 2**:我的X在里面能卖几毛钱呢? - -**[01:22:50] 发言人 7**:我感觉就按一个点5 6000去合,就算挺高的了,就加上咱的服务,还得说考虑到服务。 - -**[01:23:00] 发言人 2**:我觉得我们三个三个这个三个这个叫什么? - -**[01:23:05] 发言人 2**:这个三个组,每个人都给我写一个东西,就next x nex这个怎么卖? - -**[01:23:10] 发言人 2**:Next x怎么卖? - -**[01:23:11] 发言人 2**:市场机会在哪里? - -**[01:23:13] 发言人 2**:这是第一个问题。 - -**[01:23:14] 发言人 2**:为什发现我还在问你? - -**[01:23:16] 发言人 2**:第二个问题,这个V D I这个v di下一代v di是什么呢? - -**[01:23:30] 发言人 2**:再往前走,随着这个AI时代到来以后,随着龙虾,你们研究过龙虾没? - -**[01:23:40] 发言人 2**:吴国洋,你碰到的客户研。 - -**[01:23:44] 发言人 7**:究过这个事。 - -**[01:23:46] 发言人 2**:没有我自己没有。 - -**[01:23:47] 发言人 2**:那行了,那不跟你聊这问题了,你就把这个你就把next这。 - -**[01:23:55] 发言人 7**:个事想明白。 - -**[01:23:56] 发言人 2**:好吧,好好好继续。 - -**[01:23:59] 发言人 7**:我整体就是这个情况,那我下去我再完善。 - -**[01:24:03] 发言人 2**:一下这个内容,你重新想想,发自内心别太阳下抓狮子,你那抓几个狮子出来没。 - -**[01:24:10] 发言人 2**:你想想。 - -**[01:24:17] 发言人 2**:什么叫主动沟通? - -**[01:24:19] 发言人 2**:你遇到那些问题不是在这个会上沟通,什么时都把他沟通了,那才叫主动沟通。 - -**[01:24:24] 发言人 2**:你这个会是被动开的,你叫被动沟通,你对不对? - -**[01:24:28] 发言人 2**:你那个词肯定要被动沟通,你是因为开了这个会议,让你写个报告,你就写了一堆。 - -**[01:24:34] 发言人 2**:你写完了,然后你现在你给我写个主动沟通。 - -**[01:24:37] 发言人 2**:关阳,我说的对不对? - -**[01:24:39] 发言人 2**:兄弟。 - -**[01:24:41] 发言人 7**:你批评了。 - -**[01:24:42] 发言人 7**:对,这个确实存在。 - -**[01:24:44] 发言人 2**:这个问题。 - -**[01:24:45] 发言人 2**:对你你你写的那西写的非常好,咱我不是骂你,我是说我都我操,我觉得他妈的这个反了。 - -**[01:24:52] 发言人 2**:我操你们发现你妈的逼着人家你写了你发言的时候你写了一堆东西,然后你说你很主动沟通,你平时你怎么把这事跟每天每天你把它写出来,然后放到难道你发微信给我发微信给拉或者拉个群你都能做得到的。 - -**[01:25:07] 发言人 2**:但是你觉得没必要,你你你这个但是现在你又觉得他很有必要这个逻辑,我觉得这个会议逻辑是有点问题的。 - -**[01:25:21] 发言人 2**:好,继续。 - -**[01:25:22] 发言人 2**:我是杨坤荣。 - -**[01:25:23] 发言人 8**:这边能听到我声音吗? - -**[01:25:25] 发言人 8**:彭总听得吗? - -**[01:25:27] 发言人 8**:就是我这。 - -**[01:25:27] 发言人 2**:接他们见山。 - -**[01:25:29] 发言人 8**:就是我这边感觉遇到了一看法问题,第一个问题就是我们整体的预案方案有点割裂,就是我们目前配套云装面有一些现在情况下会出现这样情况。 - -**[01:25:44] 发言人 8**:华三福以华三软件加汇智单汇智建,现在华南服利价格贵。 - -**[01:25:49] 发言人 8**:我们又引入第三方服务器,但是我并没有做O M那么就会出现第三方的服务器就是宝德长城。 - -**[01:25:56] 发言人 8**:然后再加上华南软件,加上汇智专家,汇智显示器,再加宏基的件数。 - -**[01:26:01] 发言人 8**:我们其实在外对外限证的话,我们现在宇宙面其实要死盘云宙面。 - -**[01:26:06] 发言人 8**:但是对于一些渠道也些客户来讲,我们的产品给人感觉就是一种拼凑而成么的。 - -**[01:26:12] 发言人 8**:很多的渠道,很多的客户来讲,就是他们想要到直接的这种报价,就我们现在还需要并还需要去服务器这一块,还需要去找华单报价。 - -**[01:26:22] 发言人 8**:并且的话在华单服务器整体量上涨的情况下,其实包括华单自己也省待于自己。 - -**[01:26:29] 发言人 8**:他们彼时并不想要华单服务器。 - -**[01:26:31] 发言人 8**:他们对于我们目前来看,他们对于我们这个说法,我们是紫光热面,这个看法是很多人是愿意接受的。 - -**[01:26:39] 发言人 8**:但是我们产品整体方案上并没有呈现出来这个东西。 - -**[01:26:44] 发言人 2**:这个我觉得很有价值,就是全方位的做一套纸盘,这个之前其实我们开会研讨过。 - -**[01:26:50] 发言人 5**:就是。 - -**[01:26:52] 发言人 2**:说。 - -**[01:26:53] 发言人 5**:解。 - -**[01:26:54] 发言人 8**:决这。 - -**[01:26:56] 发言人 2**:你如果你如果对一,你如果你比如说用华智服务器也可以,你如果做不到一套的话,那你就是说你品牌不统一。 - -**[01:27:05] 发言人 2**:你品牌不统一,你可能就是一个方案,你就不是相当于是给人家这个你就引导他只能引导不统一招标,不统一品牌。 - -**[01:27:16] 发言人 8**:就是我们现在做了汇制显示器,这个又我就感觉就非常好,它能够确实能带来一种一些收入了。 - -**[01:27:26] 发言人 2**:我机接属的话其实还好,如果能做。 - -**[01:27:30] 发言人 5**:能够延如绘制欧难量大,起量一般是4000套. - -**[01:27:36] 发言人 4**:去年多少钱? - -**[01:27:37] 发言人 2**:去年我们。 - -**[01:27:39] 发言人 4**:都40块多少钱? - -**[01:27:41] 发言人 4**:十万十几万块钱,放了十几万块钱。 - -**[01:27:48] 发言人 4**:四到底在哪? - -**[01:27:48] 发言人 4**:但是你建术方面还有这个责任是吧? - -**[01:27:51] 发言人 4**:对。 - -**[01:27:52] 发言人 2**:你如果觉得这个建筑它在未来发展为带着升级换代? - -**[01:27:56] 发言人 2**:如果觉得这个可以,我觉得一部分拿过来就弄一点,库存也不是太大问题。 - -**[01:28:01] 发言人 2**:我觉得这个要研究一下,是你觉得呢? - -**[01:28:08] 发言人 2**:市场目前我觉得。 - -**[01:28:11] 发言人 3**:需求量还不足以支撑那个有。 - -**[01:28:16] 发言人 5**:到现在就卖了一两次一次。 - -**[01:28:19] 发言人 3**:金属金鼠其实是很通用的一个东西,但价格又便宜。 - -**[01:28:25] 发言人 2**:我觉得我们还是强调如果这么说的话,其实还是强调什么呢? - -**[01:28:30] 发言人 2**:就是两个品牌,华三软件加华三东关是吧? - -**[01:28:34] 发言人 2**:这就强调这个方案的完整性,然后就是绘制软件加绘制终端,这个就音面的本质,其他你可以。 - -**[01:28:43] 发言人 5**:服务器都不用去拉统一品牌,这个服务器拉统一品牌。 - -**[01:28:47] 发言人 8**:我要问你,其实技术还好,最重要是。 - -**[01:28:51] 发言人 5**:服务器拉不了统一品。 - -**[01:28:54] 发言人 3**:国庆你现在要欧欧一款,你回这的方。 - -**[01:28:58] 发言人 2**:式太复杂了。 - -**[01:28:59] 发言人 2**:你看这超。 - -**[01:29:00] 发言人 5**:大一个体系。 - -**[01:29:01] 发言人 2**:服务器应急体认证,各方面如果你用华三的服务器,就是你觉得现在华三服务器已经没有竞争力了是吧? - -**[01:29:10] 发言人 8**:不对,对于一些渠道来讲,就是有些项目不经过。 - -**[01:29:14] 发言人 8**:如果是中间一个项目,如果有华三的人在那儿,那么你出华三服务器是没有问题的。 - -**[01:29:20] 发言人 8**:但是我们现在是为了发展渠道,那些渠道有可能是不跟着华三玩。 - -**[01:29:25] 发言人 8**:你对于华三来讲,华三服务器成本低太高了。 - -**[01:29:30] 发言人 2**:那他妈的我卖汇智服务器和我卖这三服务器有啥差别? - -**[01:29:34] 发言人 2**:那汇智服务器也是才出现的,这张服务器可能比汇智服务器品牌要高一点。 - -**[01:29:40] 发言人 8**:但是他们其实有有一些项目来讲,如果我们是投紫光了,其实我们代表汇智服务器其实代表着紫光集团。 - -**[01:29:49] 发言人 2**:我们如果。 - -**[01:29:50] 发言人 4**:紫光系的那华智紫光系价格高你能接受吗? - -**[01:29:53] 发言人 2**:我把它压下来了,华智服务器,华智服务器比华夏要高。 - -**[01:29:58] 发言人 4**:他肯定是比华一名宝德的,他肯定是想要宝德的价格。 - -**[01:30:02] 发言人 3**:汇紫光品牌对你不能低。 - -**[01:30:04] 发言人 4**:对你肯定是双向都要。 - -**[01:30:06] 发言人 4**:华智要比宝德高一些。 - -**[01:30:08] 发言人 2**:他也接受不了。 - -**[01:30:09] 发言人 3**:那这个不行,有些服务器比华山的还贵。 - -**[01:30:13] 发言人 2**:对,有些他这个想法确实有点太什么了。 - -**[01:30:17] 发言人 2**:你最多就是第一,我们确实这个服务器欧不了,就欧的成本太高了。 - -**[01:30:23] 发言人 2**:第二倒是可以说,比如双方搞一个什么授权,你或者说是华紫光华智唯一或者怎么授权,你单独搞一个,看搞搞这些两个品。 - -**[01:30:35] 发言人 5**:牌没有联个品牌说法,他就是品牌。 - -**[01:30:42] 发言人 2**:好,继续。 - -**[01:30:42] 发言人 2**:好,第二个方案。 - -**[01:30:44] 发言人 8**:就是往下走,我们推出了有自己net的我们oem云机的,然后也自推出自己的微胖。 - -**[01:30:50] 发言人 8**:但是也是由为由于服务器原因,我现在net云桌面一些pu场景,那些云桌面我还是没办法推。 - -**[01:30:58] 发言人 8**:因为服务器这块我用哪个服务器,华三服务器跟M D不兼容。 - -**[01:31:04] 发言人 8**:然后显卡有没有一个合适价格? - -**[01:31:07] 发言人 8**:对于一切都是对于渠道来讲,对于我来都一不确定性。 - -**[01:31:11] 发言人 8**:第二就是那么一些场景它可能有瘦有胖,但现在next x的瘦就是跟nex的胖,这两个现在并没有整合到一块。 - -**[01:31:22] 发言人 8**:相当于我们现在方案就是有华丹的胖跟瘦,有net的瘦,还有net x的胖。 - -**[01:31:28] 发言人 8**:现在三个方案是整体。 - -**[01:31:31] 发言人 2**:的独立的,这个我觉得不影响。 - -**[01:31:33] 发言人 2**:你本来这仨方案你你都你都这别你你你自己把自己说的很像回事,别人其实他妈的都不太了解,别人拿到是什么就做什么就完了。 - -**[01:31:43] 发言人 8**:是有些场景我也看到了。 - -**[01:31:46] 发言人 5**:如果他有打断的,有人瑞瑞觉得胖是不是两套平台? - -**[01:31:50] 发言人 8**:他们不是两套品。 - -**[01:31:52] 发言人 5**:一套品的那个三云桌面不是两套吗? - -**[01:31:56] 发言人 8**:我的三秦云桌面,他只是说教育跟办公室目前没有到一个平台里,但是售都是在一块,有教育的胖瘦跟办公的胖瘦,这两个是。 - -**[01:32:09] 发言人 2**:在同一个平台里。 - -**[01:32:14] 发言人 5**:这个后面考虑一下,但是他那个整合力度也不会太大。 - -**[01:32:23] 发言人 5**:你那个GPU的问题,next的没I next的没I要买GPU不能买划算服务器我们给到时候有项目提供第三方服务器。 - -**[01:32:33] 发言人 5**:现在的话。 - -**[01:32:34] 发言人 8**:因为如果是第三方询的话,他们现在整相当于服务器这块很缺失,知道该怎么去搞这个东西。 - -**[01:32:42] 发言人 8**:其整体的话,所以说而且目前来看到的话,华三对于英伟达其实也并不是说特别想用。 - -**[01:32:53] 发言人 8**:目前看到就是因为达太贵,他们也没必要说因为达他们的需求就是有一个集优环境就行。 - -**[01:33:00] 发言人 8**:这也是我们现在卖一些级U场景,卖的不是特别好,就因为单纯因为成本太高,他们也想用amd但是因为amd现在整体的服务器加amd的这个东西,现在好像因为我也问过兼容性跟产品那边对过会出问题。 - -**[01:33:19] 发言人 8**:他们并没有华服,那并没有对地做出一个配。 - -**[01:33:23] 发言人 5**:说了不用华服务器好吧,你要卖地就不要用华服务器,我们给你提供报价好吧。 - -**[01:33:32] 发言人 2**:如果如果他没那么多钱是吧? - -**[01:33:35] 发言人 2**:那个要求那肯定都要低一点了。 - -**[01:33:38] 发言人 2**:就像就算你的电脑城我要买个统一品牌,但是我没那么多钱,我也想买个。 - -**[01:33:44] 发言人 4**:什么传呼务器,他自己去炒。 - -**[01:33:47] 发言人 2**:我卖服妻的就是我什么不是他要统一品牌,他又没那么多钱,又要统一品牌。 - -**[01:33:55] 发言人 5**:个确实要这个要求是吧? - -**[01:33:57] 发言人 5**:没办法,明确告诉我没办法。 - -**[01:33:59] 发言人 5**:我说一下那个D的,他虽然没收授费用,但是它的性能和兼容性确实也没有英为达的好。 - -**[01:34:07] 发言人 5**:所你一分还是一分钱一分货的问题,然后有些场景确实可以用M D GPU的。 - -**[01:34:13] 发言人 5**:现在也没有,因为这个方案已经发布给你们很多次了也没有谁找到我们说我要卖这个方案,我要卖方案,你要卖的时候,服务器我们去帮你解决好吧。 - -**[01:34:25] 发言人 5**:但是不能是卖新华三的服务器,新华三的服务器插不了M D的卡,这个是之前说了的,好吧。 - -**[01:34:34] 发言人 8**:第三点,其实我也是从这两个方案里延伸,就是我们现在还的的耐子中心。 - -**[01:34:40] 发言人 8**:其实我从个人角度来讲,其实我是特别不喜欢还贷那个平台的。 - -**[01:34:45] 发言人 8**:而且也是从销售以及我合作过之前卖过云肉面上都吐槽华三这个平台的臃肿性。 - -**[01:34:52] 发言人 8**:那么既然我们已经推出了耐子微胖,那么后期我也问过是可以后期慢慢做,把胖跟瘦再融合到一块儿。 - -**[01:35:00] 发言人 8**:在这个场景下,我们对于华三和勒宁的一些重心牵引点我未来的牵引点。 - -**[01:35:07] 发言人 8**:现在我就想就是我个人觉得是不是该是把耐子云桌面的这个平台,以后会普遍的演化成我们紫光的云桌面这个平台。 - -**[01:35:18] 发言人 5**:是可以。 - -**[01:35:19] 发言人 5**:但是我想问一下,你们现在混合部署的项目多吗? - -**[01:35:25] 发言人 5**:混合部署的项目多吗? - -**[01:35:27] 发言人 5**:又有回挖又回跌。 - -**[01:35:28] 发言人 8**:有还不少。 - -**[01:35:29] 发言人 8**:因为确实会有这种情况。 - -**[01:35:32] 发言人 5**:确实会有,但是从我审的单子里面我没。 - -**[01:35:36] 发言人 8**:看到过的。 - -**[01:35:37] 发言人 8**:对对对,会少一些。 - -**[01:35:38] 发言人 8**:但是一旦出现了,就这一种无法解决的问题,就是这个可以先不做,但是我未来的话是要。 - -**[01:35:49] 发言人 2**:考虑一下两个。 - -**[01:35:51] 发言人 5**:那个是两个方案。 - -**[01:35:53] 发言人 5**:有些医院是我知道会用到的,但是除了医院其他。 - -**[01:35:58] 发言人 8**:项目很少。 - -**[01:35:59] 发言人 5**:学校也会有一些是有一些我我还我还看过你们的单子很少。 - -**[01:36:05] 发言人 2**:我觉得他他我的判断也许因为他这一线他也许。 - -**[01:36:12] 发言人 3**:他能看到我。 - -**[01:36:13] 发言人 3**:趋势它适。 - -**[01:36:14] 发言人 5**:合它不是趋势它它就是实量是有这个需求。 - -**[01:36:18] 发言人 5**:但是如果我们要求整合的话,工作量反正就是往后排的,这个就就有工作量还要拉种。 - -**[01:36:27] 发言人 4**:他要完全是一套,我们还可以还是我们理解的可以采取去一个。 - -**[01:36:32] 发言人 5**:镜片管理就好,一个镜片管理行不行? - -**[01:36:36] 发言人 5**:一个一一个镜片管理也不是那么简单的事儿。 - -**[01:36:40] 发言人 5**:新区我们的新创通和我们搞了三个多月了,三四个月了。 - -**[01:36:46] 发言人 5**:说些简单,你们还打通的东西不少。 - -**[01:36:49] 发言人 2**:你两个都没卖过吗? - -**[01:36:51] 发言人 2**:你卖过吗? - -**[01:36:51] 发言人 2**:这个是。 - -**[01:36:53] 发言人 5**:那是现在在道要处试用。 - -**[01:36:57] 发言人 2**:尴。 - -**[01:37:00] 发言人 5**:尬di。 - -**[01:37:09] 发言人 5**:有些项目我们应不了的,用alx发现它的功力很满。 - -**[01:37:16] 发言人 2**:这个问题提的太高级了,还真华桑和耐斯中你还真没法回答。 - -**[01:37:21] 发言人 2**:因为那个你是想做,但是能做起来,做不起来就看量了,亮起来,自然后面趋势出来了是吧? - -**[01:37:28] 发言人 2**:但是现在你没这个趋势。 - -**[01:37:31] 发言人 5**:当然你还是以华商为主。 - -**[01:37:33] 发言人 5**:我建议这个东西还是这样,大家用心的去卖一些纯的项目,把V I lex V I又是自研的,纯自研的,大家赶紧卖起来上量。 - -**[01:37:43] 发言人 5**:这个东西如果慢慢上量了,那个vdn那边我们再再再去再再去。 - -**[01:37:47] 发言人 2**:做总上量一个对吧? - -**[01:37:49] 发言人 2**:然后上量以还有个我也想知道vi到底这个毛利高不高,然后只是这个收入上量了以后,发现他妈的这个估西不太一样。 - -**[01:38:00] 发言人 2**:因为他们那华山那个他毕竟同种的研花,这个就那么点研花,但从那个性价比,从各个方面要搞清楚高低,是吧? - -**[01:38:10] 发言人 2**:你别卖了他妈。 - -**[01:38:11] 发言人 5**:的100套,我操,挣了他个20万,我们还是打了两个很很很很明显的差异化的,所以来在。 - -**[01:38:19] 发言人 3**:很多场景还是很虚的。 - -**[01:38:21] 发言人 3**:的毛利肯定会比人天一两是不用问的。 - -**[01:38:24] 发言人 2**:这个对,你你你一第然后场景有限,你是造了一把那个枪,但是这把枪一共一年打不了几发子弹,我操。 - -**[01:38:32] 发言人 2**:最后效益不够,那那也是麻烦,我现在还就是有点担心,你们反正接在来在测试自己判断。 - -**[01:38:39] 发言人 2**:因为主力不对,我的主力资源应该投在哪? - -**[01:38:42] 发言人 2**:别投反了是吧,你主力资源别投到铁道游击队上去了,我操,铁道一队队永远就是游击队。 - -**[01:38:51] 发言人 2**:就跟我看这个一。 - -**[01:38:53] 发言人 3**:的投入,我们肯定还是根据项目来源来投。 - -**[01:38:59] 发言人 3**:不可能工投那那肯定会大的偏差的对。 - -**[01:39:03] 发言人 2**:我就我要想好,要一定要很多东西要想明白。 - -**[01:39:11] 发言人 2**:继续。 - -**[01:39:12] 发言人 8**:第二点的话就是这第点,目前来看我们现在也很多区域现在有销售了,然后呢,然后有销售了,目前来看合作还是很顺利,还沟通之间还是很好的。 - -**[01:39:28] 发言人 8**:但是由于我们之前就是没有销售之前,我们就像之前说的,我们我们这个工作职责基本上你售后商务也会抓一部分,技术也会抓一部分。 - -**[01:39:41] 发言人 8**:相当于一个人其实承担一些销售售后,以售前职责都混为一谈。 - -**[01:39:46] 发言人 8**:现在来了销售之后,彼此搭配我觉得应该会有个工作职责划分,就是比较有出一比较有一个详细的工作值得划分。 - -**[01:39:57] 发言人 8**:因为我之前也跟销售搭档过,有些搭档的好,有些搭档不好。 - -**[01:40:02] 发言人 8**:讲实话就是搭档好了跟销售搭档好的话,彼此认同自己彼此的话,那么就会像一个战友一样。 - -**[01:40:09] 发言人 8**:如果搭档不好,那真的是两眼生厌那种。 - -**[01:40:13] 发言人 8**:我们为了并不是为了避免这种情况,会有一些工作职上冲突,一些职责上清晰。 - -**[01:40:20] 发言人 8**:为了就是我建议可以把收闲工作的这些工职的稍微细化一点,但这样出问题的话,就是为了以后不再跟销售之间关系出现矛盾,提前的就把一些工作职责进行划分,然后能够减少这样未来会出现冲突的一种概率。 - -**[01:40:42] 发言人 2**:我跟你讲,这有两个,第一这个职责清晰界面也也是模糊的,职责清晰界面也是模糊的。 - -**[01:40:51] 发言人 2**:第二,如果销售真有能力,他见到客户他在卖东西,你跟他之间产生矛盾是没有价值是吧? - -**[01:40:59] 发言人 2**:除非你自己去卖东西,他就是这个情况。 - -**[01:41:08] 发言人 2**:下来我觉得你们可以销售员拉在一起,大家座谈,多聊一下,增加,对,好吧。 - -**[01:41:21] 发言人 8**:再往下,其实我想到的其实就是。 - -**[01:41:25] 发言人 2**:四个谁带来的客户,谁是老大,这个世界就是这样的,好吧? - -**[01:41:32] 发言人 8**:可以。 - -**[01:41:35] 发言人 8**:然后再往下,其实也是我上周也是跟一些渠道去跟去去新乡出差过,见了金牌见当地省代。 - -**[01:41:44] 发言人 8**:我上一年也跟东北那边的省代也跟金牌聊过。 - -**[01:41:48] 发言人 8**:其实跟渠道的交流方式有几个确实交流非常好的,渠道也给我带来了非常多的业务机会,后续的合作项目也会目前看来也会非常多。 - -**[01:42:01] 发言人 8**:然后也坐下来吃饭一块聊聊天,其实感受到了其实就是能够我也总结了我自己跟他们交流方式也总结了三点。 - -**[01:42:09] 发言人 8**:其实第一点就是我们这个角色对于售钱这个角色不是一个单纯售钱。 - -**[01:42:15] 发言人 8**:在跟渠道交流的时候,我觉得不能让渠道单纯的你是一个售前技术,就是我们各个区域的技术负责人,就是不能让他觉得你就是一个售前。 - -**[01:42:25] 发言人 8**:因为你本质上你也不是一个售前。 - -**[01:42:27] 发言人 8**:如果他把你当成一个售前的话,你跟他对话的其实就不是一种平等对话。 - -**[01:42:32] 发言人 8**:他会把你当成一个某个领导下边的技术,你是为他服务的那这样的话你跟他平等谈商务,谈合作,他其实是谈不下去的这第一点。 - -**[01:42:41] 发言人 8**:第二点就是我们这种销售模式跟其他厂家销售模式有一点很大。 - -**[01:42:46] 发言人 8**:其实就是我们中间没有中间商赚差价,基本上跟这些竞卖渠道合作,其实他们相当于直接从工厂商打价,中间没有任何人插这个贵手。 - -**[01:42:56] 发言人 8**:要让他明白这一点,就是扮演一个无害的渠道,你只会为他带来收益。 - -**[01:43:01] 发言人 8**:而不是说你中间还要通过这个项目,你还是中间捞点钱。 - -**[01:43:05] 发言人 8**:他们也问过一个问题,很直接的问题就问我,包括有两家两个人都两家渠道就问过一块各家吃饭你聊过,你卖一台知道你能赚多少钱。 - -**[01:43:15] 发言人 8**:我说我上年卖你一台终单,我能赚十块钱提成,我今年没有了。 - -**[01:43:20] 发言人 8**:所以说对您来讲,我一台终端我卖贵50块钱,卖低50块钱,对我来讲没有意义。 - -**[01:43:26] 发言人 8**:这个钱到不了五代,但是我少卖你50块钱,你能把这个项目吃下来,下次再找我合作,弄得我业绩上增加。 - -**[01:43:34] 发言人 8**:旅游更容易义就扮演一个武汉的角色,这点一定要让渠道知道。 - -**[01:43:39] 发言人 8**:第三点就是说彭总之前说了要有温度一点,也是他们现在就是之前卖云桌面。 - -**[01:43:45] 发言人 8**:因为我现在接手的金牌都是之前卖过云桌面的,他们最大的问题就是找到主心。 - -**[01:43:51] 发言人 8**:现在就是我来他们反映就是我来之后什么时间都能找到我,我也可以为他们提供建议,他们就是愿意去干这个事情。 - -**[01:44:00] 发言人 8**:这是我总结的三点。 - -**[01:44:04] 发言人 2**:你这个让我有点有有有,我知道你有点什么意思了,你上一条。 - -**[01:44:09] 发言人 2**:首先我觉得你做这个渠道,其实做的还是可以的,挺好的。 - -**[01:44:14] 发言人 2**:因为俊年他们也说,包括新疆,有些地方我觉得还是有很多是因为跟渠道的沟通,面都没见,跟渠道的沟通很好,也跟渠道也做了很多的想法,我觉得这个挺好的。 - -**[01:44:27] 发言人 2**:我觉得我们所有的像扬州,还有这个微国,都都这方面我觉得都应该要向你学习了。 - -**[01:44:36] 发言人 2**:因为做了一些事情,面也没见你把东西卖了,而一个渠道的沟通也满足了渠道的需求,我觉得事挺好的。 - -**[01:44:44] 发言人 2**:然后你你这你说这个我可能理解到了,你上一点为什么要说销售和渠道的沟通呢? - -**[01:44:50] 发言人 2**:我就下来我们再聊,这事下来再沟通,我大概知道你想说啥意思。 - -**[01:44:56] 发言人 2**:生刚生刚你生刚你说说。 - -**[01:45:03] 发言人 3**:昆融一个很很强大的一个优点,就是他跟他接触的渠道之间的沟通非常顺畅,然后对渠道的服务也非常到位。 - -**[01:45:15] 发言人 3**:所以说跟他接触过渠道以后,就愿意不停的跟他打交道,所以说能够带来第二次的销售,第三次的销售,这个渠道一个个积累。 - -**[01:45:27] 发言人 3**:所以说从目前为止,从那个滨江到东北,吉林和辽宁,他这下来我看下来就是说这个不较都愿意跟他来接触,然后跟他来沟通进一步的沟通项目的这个情况,然后也是愿意再一步的合作。 - -**[01:45:48] 发言人 3**:所以在这点方面,他比我们其他两个团队的这块的工作上面的可能工作方式上面,他是有一些有些他自己的一些方法来处理的,有一些优势。 - -**[01:46:00] 发言人 3**:这个我就直想让天融公司给我们整个团队来分享一下他的这些渠道工作的一种思路或者一种方法。 - -**[01:46:10] 发言人 3**:这个下来,不然我到时候再跟你聊一下,看看怎么通过一种方式来分享一下。 - -**[01:46:17] 发言人 3**:我觉得这个是值得我们目前团队去学习,只有这样才能把我们的渠道工作更进一步的推进起来。 - -**[01:46:26] 发言人 3**:我是比较赞赏温如这点工作的对。 - -**[01:46:30] 发言人 2**:要不然要不要让昆仑来运营我们我说了一个大的一个概念,没完全说清楚。 - -**[01:46:36] 发言人 2**:但是我觉得肯定是一个机会,就运营我们这个叫什么紫光汇智娱乐面的这个小红书,运营一个这个运营一个这个东西,这可能是个小红书或者可或者是一个这种或者是一个叫什么来着。 - -**[01:46:50] 发言人 2**:就是一个平台。 - -**[01:46:58] 发言人 3**:那我下接下来我们预聊一下,我们一个词就策划一下昆。 - -**[01:47:05] 发言人 2**:仑我发现了我说的可能不一定完全对。 - -**[01:47:09] 发言人 2**:你们反正咱们研讨,就昆仑的上一个题目,让我觉得还是有一些往上翻哈他上一最后那一点就是说渠道和销售之间的职责。 - -**[01:47:20] 发言人 2**:其实我觉得你不是问我,你是在问自己。 - -**[01:47:23] 发言人 2**:因为你你你既然你能你又能做,因为销售和渠道,销售和售前,因为销售和售前本质上在我们的心中,就像华三一样,一个销售带俩售前,一个销售在前面走的扬眉吐气,拿一个售前帮他提包,他一个售钱帮他拿拐棍。 - -**[01:47:42] 发言人 2**:然后呢这然后这个需要出需要妈在方案的时候售前上,需要吃喝的时候销售上,需要搞个勾具的时候售销售上,需要他妈的做方案的时候售前上。 - -**[01:47:55] 发言人 2**:但是昆仑,你看你后面说的这一点,你说你也没有提成,也没有给人家有任何的吃喝。 - -**[01:48:01] 发言人 2**:但是你又把渠道的一些东西给卖掉了,而且还天远地远的。 - -**[01:48:06] 发言人 2**:我觉得你还是可以就下来思考一下是么? - -**[01:48:09] 发言人 2**:你可以做一个紫光汇智云桌面的小红书,我们单独把你拉出来一块,你又当销售,又当售钱,又当运营,就把你当成个口,我瞎说,我觉得这可能。 - -**[01:48:24] 发言人 5**:是一种新的方式,也没有没有错。 - -**[01:48:27] 发言人 5**:其实昆龙这边他它和渠道之间,包括以前我在做授寻的时候,他我就感觉到和昆融共鸣是什么呢? - -**[01:48:36] 发言人 5**:就我们的授权一定要去多站在客户的角度思考,不要客户只问了一个配置,一个需求。 - -**[01:48:44] 发言人 5**:好问了你答复有或者没有这个事情就戛然而止了,这是挖掘不了更多的机会的。 - -**[01:48:52] 发言人 5**:其实客户问了你,你要深层的去看透这个本质的这个项目的本质需求是什么。 - -**[01:48:59] 发言人 5**:我这个需求不满足,我会跟你说,我这里边还有一套东西,你要不要看一看这套东西比你提的需求可能更好,价格更便宜。 - -**[01:49:09] 发言人 5**:我只举个例子,比如说多要去和渠道来多个来多几个来回,然后把我们更多的东西给取了。 - -**[01:49:17] 发言人 2**:说对这个所以说为什么专家销售。 - -**[01:49:20] 发言人 4**:你说孟洁这周跟我们一我一起就聊到新疆农村角色的时候,就会就聊到了宽容和孟洁一起在支持新疆渠道。 - -**[01:49:31] 发言人 4**:他们也是近期才去了一趟,去之前全是昆容远程去支持的这几家渠道网全是网友,五家渠道就是电话沟通远程沟,在这聊的过程中,就是昆融自己写的为渠道多想一些,然后同时有温度的服务也是一个角色。 - -**[01:49:51] 发言人 4**:然后聊完之后,其实反过来就是我跟孟洁总结出来,困手这块我首先第一次个做的好,但同时我们也总结了一个对我们云智销售的人也是一样。 - -**[01:50:02] 发言人 4**:为什么刚刚第一个讲的时候,一个杨昭讲的时候,就是说除了引导需求学技术之外,同时如果是说能把我们的产品可以去都学一学,我们的销售也应该奔着这么一个画像去走。 - -**[01:50:16] 发言人 4**:而且都应该刚刚司凡也说要分享那个渠道销售的一些经验,让让观众分享。 - -**[01:50:24] 发言人 4**:如果云智销售首先第一技术产品各个维度都懂了,然后之后建渠道或者是每次沟通渠道的时候,会达成更多像目种在新疆那种成功案例。 - -**[01:50:35] 发言人 4**:否则的话你只报个价,报告之后,公司不催你不回你也不动不主动去聊,也不主动微信沟通,也人家渠道也不会把你当个角色来看。 - -**[01:50:46] 发言人 4**:所以这个确实是我们一个典型的案例。 - -**[01:50:50] 发言人 4**:在昆容在把这个特别是新疆突破这几个点。 - -**[01:50:56] 发言人 2**:你看我们这个云桌面本身,其实还不完全是个产品,它其实是个方案,而且我们其实公司未来还有好些东西也有方案。 - -**[01:51:05] 发言人 2**:就我因为我们你你光做产品的话,其实面对很多大厂我们是有压力的。 - -**[01:51:10] 发言人 2**:我们公司小,所以我们更希望以方案或者以能力取胜。 - -**[01:51:14] 发言人 2**:但是你一旦说到方案能力,我打个比方就是那个医院里的那个医生,有些医生你20块钱门诊费,他这个门可罗雀。 - -**[01:51:22] 发言人 2**:有些医生专家医生他就是三四百块钱的门诊费,他这个可能他只要一出来号就挂完了,就没他的号了,是吧? - -**[01:51:31] 发言人 2**:就是口碑吧? - -**[01:51:33] 发言人 2**:这个口碑来自于可能他在这个业内长期形成的。 - -**[01:51:38] 发言人 2**:你看知道这个医生很厉害,都来找这个医生是吧? - -**[01:51:43] 发言人 2**:人传出来的。 - -**[01:51:44] 发言人 2**:还有一种现在比较慢慢,我觉得越来越开始盛行的,就是这个自媒体的很多东西。 - -**[01:51:51] 发言人 2**:他慢慢的觉得这个就是好啊,是不远千里来解决问题。 - -**[01:51:56] 发言人 2**:所以我觉得下来为什么紫光汇智要有个要有这个要有这个叫什么这个自媒体的要去推广这个事情呢? - -**[01:52:05] 发言人 2**:就是你真正遇到问题的时候,你真最真真实的需求? - -**[01:52:09] 发言人 2**:他们他能唾手可及,眼睛一看就看到了,手一抓就抓到了,那自然他就好。 - -**[01:52:15] 发言人 2**:未来是扁平化的,他一定不是说不是说这个层级越多的,越往后走越扁平化,这个销售越扁平化。 - -**[01:52:24] 发言人 2**:你说的很对,越往后走销售售前的技术可能会慢慢会趋同,会把这几个岗位,有些销售的岗位,尤其是卖有些尤其是某些产品,你不是说那种卖给国企,就是每个人都要在里面吃一道,到最后这个叫什么? - -**[01:52:40] 发言人 2**:就每个人主要是靠这个中间的中间搞关系才能够叫到项目是吧? - -**[01:52:47] 发言人 2**:很多项目小项目他可能就是销售和售钱要去的。 - -**[01:52:51] 发言人 2**:因越是小项目,人家在乎的就是简单的就是你这个产品的能用性的时候。 - -**[01:52:57] 发言人 2**:中间没那么多的这些什么从一级一级领导往们下,什么都想吃点,对,想占点的是吧? - -**[01:53:05] 发言人 2**:不是那种国企项目是吧? - -**[01:53:06] 发言人 2**:不是那种特别他么复杂的国企项目,反而我觉得这种小点的项目,你现在就是销售售钱要这种整合在一起了。 - -**[01:53:16] 发言人 2**:我们原来我多说一两句好了。 - -**[01:53:19] 发言人 2**:当时在做通信的时候,最早外企爱立信、诺基亚、阿尔塔特少、海贝尔全都是销售兼收钱。 - -**[01:53:27] 发言人 2**:就是售销售要写方案兼售钱,所有监管,为什么到了中国他就水土不服呢? - -**[01:53:34] 发言人 2**:他就慢慢的销售和收钱分开了呢? - -**[01:53:37] 发言人 2**:因为中国喜欢搞关系,销售主要的工作都是搞关系了。 - -**[01:53:41] 发言人 2**:原来的销售收钱都是985,尤其是销售收钱都是那都是都是通信毕业。 - -**[01:53:50] 发言人 2**:我操花了很多年学了那么多知识,最后就分道扬镳了。 - -**[01:53:54] 发言人 2**:销售主要是管吃喝、洗澡、唱歌,售前主要是管写写代码是吧? - -**[01:53:59] 发言人 2**:为什么会出现这个情况呢? - -**[01:54:01] 发言人 2**:为什么会出现情况? - -**[01:54:03] 发言人 2**:就是因为他这个工作量太大了,你让一个又写代码,又又又又不又又写这个方案,然后又要去做宣讲,最后还得赔客户的,他没那么他工作量太大。 - -**[01:54:15] 发言人 2**:还有一个销售中间的成本太高,就是这个交易成本太高是吧? - -**[01:54:20] 发言人 2**:你在国外不可能的,你在美国你送人家100美金他妈都要把你踢出去的。 - -**[01:54:26] 发言人 2**:他交易成本低了,国外他当然他主要的工作就是售前和这个技术支持,反之我们现在卖的渠道产品尤其能够越往下走越卖的稍微便宜点产品我觉得更是要高度重视销售授权的统一性。 - -**[01:54:44] 发言人 2**:如果销售授权越统一,越简单,你可能就越好。 - -**[01:54:49] 发言人 2**:你如果就是为了搞搞关系,你中间你把这个关系一搞就没多少利润了。 - -**[01:54:56] 发言人 2**:你只一写没多少利润了,你最后是不是你这个我们现在产品是这样的,你要卖几千万的服务器,那就是关系。 - -**[01:55:04] 发言人 2**:你说主要搞关系,就去吃喝,但是搞关系十个中一个是吧? - -**[01:55:09] 发言人 2**:我们也有搞关系的销售是吧,你关系不够,你喝大半年的酒,你也就中一标。 - -**[01:55:14] 发言人 2**:你可能在华山那个体系里可能好一点,你喝一年也就这么回事,你万现你搞的你华山体系里很多销售做了一年下来,回想一下,我所有的新式的大哥喝了新的酒居都白喝了。 - -**[01:55:27] 发言人 2**:我原来那扩容的反而给我带来些东西,我操。 - -**[01:55:30] 发言人 2**:还是前一任种的树,我这一任乘凉,我自己认的几个大哥他妈喝了些酒,他妈的我操,还不知道什么时候他妈的。 - -**[01:55:38] 发言人 2**:结果这就是销售,这是传统销售,我多说了两句,这跟我说给我们销售听的是我觉得反而需要现在需要很诚信的,就是对技术了解的,然后能够双方一针见血看到问题解决问题的。 - -**[01:55:52] 发言人 2**:我觉得这样子尤其是跟渠道也能够达成建建立很好关系的。 - -**[01:55:57] 发言人 2**:因为别人也要去卖钱,别人要挣钱,我觉得这样的话可能是我们未来的主要的这种方式。 - -**[01:56:05] 发言人 2**:见面也是这样,不见面也是这样。 - -**[01:56:14] 发言人 2**:好,继续吧。 - -**[01:56:28] 发言人 8**:那那我这边基本上白眼问毕了。 - -**[01:56:31] 发言人 2**:对我愿意坚持,有些东西我就下来。 - -**[01:56:34] 发言人 2**:盛哥也说了,这个叫什么呢? - -**[01:56:38] 发言人 2**:你这个有有多大的能力,有多大的想法,那么就会有多大的资源。 - -**[01:56:46] 发言人 2**:我觉得你从重庆又到杭州去,我觉得也是很好的。 - -**[01:56:51] 发言人 2**:我们就共同努力,这个公司把一些未来看看,把一些更好的一些东西交到你这里来是吧? - -**[01:56:59] 发言人 2**:我们把它做的更大一点。 - -**[01:57:02] 发言人 2**:好的,这边。 - -**[01:57:04] 发言人 8**:会更努。 - -**[01:57:06] 发言人 2**:好,继续。 - -**[01:57:08] 发言人 8**:我这边结束共享。 - -**[01:57:13] 发言人 1**:下面是,售后代表来发言。 - -**[01:57:18] 发言人 1**:贾成明。 - -**[01:57:27] 发言人 2**:我们玩了大概到几点,我估计上午可能还得下午,当时算的时间假。 - -**[01:57:34] 发言人 5**:村民估说还有两个销售是吧,对,就还有三个人。 - -**[01:57:40] 发言人 4**:杰哥。 - -**[01:57:41] 发言人 9**:各位领导,我漏洞我在贾哥讲之前,我能讲点我这边最近遇到的一些事吗? - -**[01:57:50] 发言人 9**:可以,能不能给我几分钟时间? - -**[01:57:54] 发言人 2**:可以说。 - -**[01:57:55] 发言人 2**:各位领导是这个样子。 - -**[01:57:57] 发言人 9**:我最近在西安、山西、河南等地,然后有一些跟我们合作比较多的,包括是之前华三做的重点项目,包括西安财经学院以及红汇医院,包括一些包括西藏民族大学。 - -**[01:58:13] 发言人 9**:在交流的时候,因为近几年的财政,不管是教育医疗还是政府单位,它的财政其实是有限的。 - -**[01:58:22] 发言人 9**:它除非是原有的,在云桌面里边它坏了,或者是它现有的系统跟老系统存在兼容性问题,它才会进行一定的财政支出去解决更换的这个事情。 - -**[01:58:34] 发言人 9**:那另外一个,就是但是学校或者说这些企业,这些甲方客户,他每年都有预算。 - -**[01:58:40] 发言人 9**:很多部门其实也想花这个预算,但是他们总归要找一个由头去把这个预算花掉,也要跟上边领导去汇报。 - -**[01:58:49] 发言人 9**:我最近遇到的比较多的就是我们有没有什么新的东西。 - -**[01:58:53] 发言人 9**:昨天我跟在西安财经大学交流的时候,其实跟洪强还有一民也还有包括俊杰总也聊过这个话。 - -**[01:59:02] 发言人 9**:包括我们的艾米,包括龙虾,包括华三的Q这种东西我都可以结合去跟客户说。 - -**[01:59:08] 发言人 9**:但是客户反过就是客户也比较认可这种东西,他觉得这个东西也比较新。 - -**[01:59:14] 发言人 9**:但是到最终说第一个测试或者说方案落地我就懵了。 - -**[01:59:18] 发言人 9**:因为我在跟客户交流的时候,很多东西其实是夸大其词的,甚至于就是这个落地是百分之百,我可能吹牛的时候有40%的可落地性,60%都是我吹出来的。 - -**[01:59:32] 发言人 9**:你等到落地的时候,其实我就懵了。 - -**[01:59:35] 发言人 9**:包括写方案的时候,客户说你这个方案不够,我到时候落地的时候,其实就很难去做这个事情。 - -**[01:59:42] 发言人 9**:就我提出这个问题就是过去解总包括我们产品团队,包括我们这边对于云桌面有没有新的东西,你包括我们推,除非客户现在的一个行情是客户有这个需求,或者说客户要更换了,我才能够匹配这个就是项目来找我们我们去找项目的时候,对于一些核心客户,你包括西安财经大学,他一共现在有17家,四就是21间教室,统一都用的是我们云端的产品。 - -**[02:00:10] 发言人 9**:这种属于核心客户,客户也愿意跟我们聊,但是往往我们没有新的,包括跟A相结合的东西。 - -**[02:00:17] 发言人 9**:跟结合的包括冯总刚才也讲,刘总也讲了,我们龙虾,我们华山的cu华山的大模型,包括我们的I meeting。 - -**[02:00:25] 发言人 9**:但是这种东西我在跟客户讲的时候,客户说你出个方案有没有测试场景,有没有在其他一些局点落地过。 - -**[02:00:35] 发言人 9**:这个时候我就有点怵。 - -**[02:00:39] 发言人 9**:因为我不知道按照我当时跟客户交流的那个逻辑,去把这个方案写出来之后,后续我们到底能不能把这个东西做出来,这个是我现在最近遇到的问题。 - -**[02:00:50] 发言人 9**:因为云端现在面临的就我这边面临的问题就是一个推动的问题,就是我现在如何去跟客户一块去传这个项目,那传这个项目就涉及到一个新的东西出来,我们现在新的东西就是一个以及后续的一些计算。 - -**[02:01:06] 发言人 9**:包括我还跟一些渠道,包括华山也在聊,包括数据的整备,数据的治理。 - -**[02:01:14] 发言人 9**:但是这些都是第三方的,因为云桌面归根结底在现在很多人使用的话,还是以一个可管理或者说安全性较高的一个传统P C来用。 - -**[02:01:25] 发言人 9**:个。 - -**[02:01:25] 发言人 9**:然后另外一个,就是刚才提出来的nice的这个东西,我这个区域可能普教场景会比较多一点,也就是一两间教室大概的规模也就是40到810点的一个区间。 - -**[02:01:37] 发言人 9**:我也在跟一些省代去有一些小的局点,我可以我去推这个东西。 - -**[02:01:42] 发言人 9**:目前我知道nex的一个优点在于,就是他可以在以前华三软件上边种出来的情况下,去减少他的服务器端资源,包括他管理机的一个资源。 - -**[02:01:52] 发言人 9**:其次的话就是我们这块的一个可以开机开箱即用的这个东西。 - -**[02:01:59] 发言人 9**:一个是对于客户来说,他可以用比原来预算少的钱去搭建整体的一个环境。 - -**[02:02:06] 发言人 9**:另外一个就是对于省代或者部署人员来说,他简单易部署。 - -**[02:02:11] 发言人 9**:另外一个就是有没有我们可以加一些新的逻辑进去,这个是我我所要表达我的一些东西。 - -**[02:02:24] 发言人 9**:黄总,我这边没别的了。 - -**[02:02:26] 发言人 2**:我这个我说一下,我觉得第一个就是我觉得卖新东西这个非常好。 - -**[02:02:32] 发言人 2**:我们也希望未来有很多个就很多个方向,实话实说,我们每周就是我至少我是这最近这几周一直在思考? - -**[02:02:42] 发言人 2**:包括大是从年初就开始在想我们能做什么。 - -**[02:02:47] 发言人 2**:包括你说这个艾米,我们现在改名字叫智听云,就智听智听云我们其实内部开过无数次的研讨会,包括我们关于几个产品的构架,几个产品的面向客户是什么样子的,我们内部也研讨过无数次。 - -**[02:03:07] 发言人 2**:我就提两个,第一你说你跟客户说,你40%是说了60%吹牛40%真的我就建议不要吹牛。 - -**[02:03:15] 发言人 2**:真的我我特别在这强调,我我我希望我们所有的销售和和这个售前不要吹牛,少吹牛,或者说你10%,你就说那么一点点,别张口就吹牛,这个非常不好。 - -**[02:03:29] 发言人 2**:因为你吹多了以后,你自己吹的牛,你你你就是你自己的信任。 - -**[02:03:34] 发言人 2**:因为你落肚,你说一次,我下次人家不信任你了。 - -**[02:03:37] 发言人 2**:第三次以后咱们来了,人家谁还跟你,人家都知道你你你看人家知道你是吧,你那话一半是假的那一旦人家形成你这个对你有这种感觉,我觉得你就麻烦了是吧? - -**[02:03:49] 发言人 2**:我首先说,我而且反之,如果别人在我这儿说说两句话,有一句话是假的。 - -**[02:03:55] 发言人 2**:你不要说两句话了,你说五句话有句话是假的。 - -**[02:03:58] 发言人 2**:被我发现了那两次以后,我认为你用20%不靠谱,我自然就会从各个角度来来重新审视你,所以我觉得这个能少吹牛,能不吹牛不吹牛,这是一点,我觉得这是一种风格,就卖东西还是要相对诚信的。 - -**[02:04:14] 发言人 2**:我这第一第二的话,你如果你在比如说你刚才说的这个学校,就叫什么学校来着? - -**[02:04:24] 发言人 2**:西安财经大学现在如果是关系也很好,华南关系也很好,我觉得我们可以去结合预算我们去搞创新。 - -**[02:04:31] 发言人 2**:我觉得可以我们安排人过去,或者说你把那边了解的东西跟我们内部总部,你把它记下来开个会,开个会以后,我们总部一起来研究研讨怎么来落地,通过哪些方式来落地。 - -**[02:04:46] 发言人 2**:就是我我特别结合这个,我特别想说,就这个M或者你们叫M,我就叫志听云,我觉得特别重要的一点,我昨天前天还在跟就在说,我说其实我是希望我们的人,尤其是这种交流的时候,我是希望你落洞。 - -**[02:05:01] 发言人 2**:你是带着这个就是要语把这个记录下来。 - -**[02:05:06] 发言人 2**:我们未来还想做一些小的形式,如果现在没有我在手机上做一段也可以。 - -**[02:05:11] 发言人 2**:你把它记录下来,你把你们的交流对话记录下来,然后记录下来。 - -**[02:05:17] 发言人 2**:后哎先就是第一个有原声以后,我们可以总结。 - -**[02:05:21] 发言人 2**:拿回来以后,我们大家一起,一方面你很简单,因为你说你担心说两次你记不住重点人肯定是这样的,你让他把原来的话再复述一次。 - -**[02:05:32] 发言人 2**:难死是吧? - -**[02:05:32] 发言人 2**:你这个老师去去背诵,你又不是不是不是以背诵为见长的,是吧? - -**[02:05:37] 发言人 2**:人本来就是记主要东西的,你可以把那个拿拉发到群里。 - -**[02:05:41] 发言人 2**:你说我今天跟那个学校才跟大家聊了,有这么多的内容是吧? - -**[02:05:46] 发言人 2**:好,你第二次你又见了,你说又聊了,这次内容上的内容有什么区别? - -**[02:05:50] 发言人 2**:我跟你讲,昨天我们让让这个悟空,就是阿里巴巴阿里的有一个小姑娘来悟空? - -**[02:05:57] 发言人 2**:到我们这来跟我们讲他这个悟空的部署,他就拿了个手机就把我们所有的讲话都记录下来。 - -**[02:06:04] 发言人 2**:但是我跟他说,我说你这个,我说因为我们人多,有些刚才聊到了我们公司的一些经理,我建议你把他删了。 - -**[02:06:11] 发言人 2**:他后来也同意了他,但是他不行,他说他要问他领导,并云他领导他跟他领导打通一个视频会议,视频让然后问他领导说他领导说给他说了,我们在现场说这边不同意,他领导说好不好,把他就删了。 - -**[02:06:25] 发言人 2**:那人家说明什么? - -**[02:06:26] 发言人 2**:人家是一个强行要求,就是人家要求是阿里的所有的无空的人员出去跟客户做这种交流,必须录音强行要求。 - -**[02:06:35] 发言人 2**:如果你们可以,如果你觉得不礼貌,你们想删了就删了。 - -**[02:06:39] 发言人 2**:但是我觉得如果有很多客户,我是希望他,如果我跟他沟通一个东西,我担心他跟我说不清,我是希望他录音的。 - -**[02:06:48] 发言人 2**:我觉得没关系,你录下来你说不清,你回去找总部再听一遍,再总结,我们再来一次是吧? - -**[02:06:55] 发言人 2**:我觉得这个没有问题。 - -**[02:06:57] 发言人 2**:所我是希望我们自己的人,你们如果有这个诉求,你们把这个东西把它录下来。 - -**[02:07:03] 发言人 2**:这也是我觉得置听了,你要安你,我觉得这个也置听,未来我们要因为第一,你你你在你在外面,你如果用这个录音的,你要不你就是按分钟按按分钟收费,这肯定是这样的是吧,大部分是按分钟收费的,而且你录到别人那儿,你别人把信息拿走了。 - -**[02:07:22] 发言人 2**:所以我是觉得作为企业来说,我给企业做一个就是叫什么声音数据不出门的是吧,录了还在本地。 - -**[02:07:30] 发言人 2**:而且还有一个信息安全有保障。 - -**[02:07:34] 发言人 2**:第二我觉得我们内部可以把这个就智听云这个产品,就是一旦形成一个知识库,跟知识库结合起来,就每次沟通交流都会有一些新的东西是吧? - -**[02:07:46] 发言人 2**:上次跟他怎么讲的,上次怎么讲的,我觉得如果有一个按时间的有一个关联,包括你们在跟别人在讲东西的时候,你每次讲完以后,别人反馈的东西你慢慢记录下来以后,我觉得这种比较性非常好。 - -**[02:08:01] 发言人 2**:这种比较性可以看出来一个做事情的延续性,也可以在里面发现客户的很多东西,我对这个就是记录这个事语音留下来,慢慢的记录下来很有兴趣。 - -**[02:08:13] 发言人 2**:我后续有以后要求我们的售前都要去做这个事,而且我们会也出一些强行的要求,我觉得这是好事儿。 - -**[02:08:21] 发言人 2**:因为录下来以后,对我对后续总部来分析这些很多事儿,光你嘴要说我们新在客户怎么说的,我还是想听一听,我觉得是有好处的。 - -**[02:08:31] 发言人 2**:回到你刚才说的这个,关于这个新产品,我觉得第一还是需要大量的和总部的交流沟通,把你带来的信息拿到跟总部交流沟通完了以后,总部我相信我们就包括我也是积极参与这个新项目的测试和试点的。 - -**[02:08:47] 发言人 2**:但是越是新项目的测试试点的,我觉得越是会消耗资源。 - -**[02:08:51] 发言人 2**:那么消耗资源的话,我肯定是有的放矢。 - -**[02:08:54] 发言人 2**:我们希望是跟我们这个关系好一些,这个项目能变现的哈他也就刚才你说了,他有预算,他也希望能把它花掉。 - -**[02:09:02] 发言人 2**:那我们也希望通过他的预算能帮他做出一些亮点,我们觉得是一定双方要达成一致的。 - -**[02:09:09] 发言人 2**:最怕就是什么呢? - -**[02:09:10] 发言人 2**:拿来测测,这个用,完了以后他就没给你下文了。 - -**[02:09:14] 发言人 2**:那对不起,我也没这个能力。 - -**[02:09:16] 发言人 2**:现在什么涨价了也不行了,我们的投入就会白投入,而且这种可能性非常大,我们好不容易准备了很多,而且更可怕的是他说的需求是伪需求。 - -**[02:09:28] 发言人 2**:因为他就是站在他自己角度说了两嘴,根本那个就不是一个真的,你结果你就给他,你当真了,你就给他俩噼里啪啦整整了半天。 - -**[02:09:39] 发言人 2**:最后你发现他们领导根本就不开口这个事儿换句话说,人家就是嘴上就是你来了,人家就是想起来了我I have a dream有个idea跟你说说说完了以后,你最后你根本就无法落实,他也无法落实了,没法给你钱。 - -**[02:09:54] 发言人 2**:甚至话甚至说完以后他他心中的那个梦想,基本上你现在成功产品都不行,你就是花大量的时间给他定制化了,你有可能验收的验收不够。 - -**[02:10:04] 发言人 2**:所以我觉得这是多方面综合考虑,但是我觉得就是云桌面下一代的云桌面跟AI的结合,就是把龙虾这个东西放在这个本地。 - -**[02:10:14] 发言人 2**:放在结合那些有服务器的企业,结合那些对安全有管控的企业,对智能化有管控的企业。 - -**[02:10:23] 发言人 2**:我觉得A一定有大量的企会,而且一定会不是我们在革命,而且这个革命一定会席卷到云桌面的,而且一定会重构云桌面的。 - -**[02:10:33] 发言人 2**:就这么说,只是现在我们现在还在看怎么来我们怎么来进入这个革命,要不然我们肯定会被他淘汰掉。 - -**[02:10:43] 发言人 2**:就这个意思,我就下来,你们也要多。 - -**[02:10:46] 发言人 2**:你如果有这种信息,你就赶快组织语言。 - -**[02:10:49] 发言人 2**:你你你如果你不录,我建议你是录。 - -**[02:10:51] 发言人 2**:你如果你录不了,你今天比如下午见完这个领导,你出来你一里哇啦嘴上你赶快说今天见他12345678,然后说完以后让他转换成文字,然后发给我们。 - -**[02:11:04] 发言人 2**:我经常都是这样做的。 - -**[02:11:06] 发言人 2**:我原来我在跑销售的时候,我如果遇到重要的事,我见我的领导或者跟我的领导要资源,我第一时间我出出了他大门,马上给我领导打电话。 - -**[02:11:15] 发言人 2**:我说刚才我们的所有东西是这么聊的。 - -**[02:11:18] 发言人 2**:我觉得这个有两个好处。 - -**[02:11:20] 发言人 2**:第一我不会忘掉,我不会选择性的记忆。 - -**[02:11:23] 发言人 2**:第二我觉得也把一个事情一个迅速的事情把它做到最快? - -**[02:11:27] 发言人 2**:反馈最快,往往这样子才会有成效。 - -**[02:11:30] 发言人 2**:我最不喜欢的原来我最不喜欢我的手下了,我最不喜欢我的销售,干嘛呢? - -**[02:11:34] 发言人 2**:就第二天。 - -**[02:11:35] 发言人 2**:彭总,我昨天见了个谁谁,我跟你说说,我说你昨天为啥不跟我说? - -**[02:11:40] 发言人 2**:昨天事儿多,我说那你算了,你今天其实也不用着急,明天说也来得及。 - -**[02:11:45] 发言人 2**:那那那这个已经过了一天了,我现在想说了,那我告诉你,你现在想说的一半是你自己脑子里主观的。 - -**[02:11:52] 发言人 2**:哼你忘了,你肯定忘掉一半了,你就挑几个,你想的来说就这意思。 - -**[02:11:57] 发言人 2**:我大概就认为这个销售目标,所以基本上销售在我面前,如果第二天再跟我讲他看到了什么,听到了什么,首先我就认为这事不重要。 - -**[02:12:09] 发言人 2**:第二我就认为这个销售水平很差,他的水平不足以应付我看到的市场的商机和应付那种困难。 - -**[02:12:18] 发言人 2**:因为我本身我就不会像他这么做,我一般见到客户,我一般见到重要的人,这个我都会第一时间把信息反馈出来。 - -**[02:12:31] 发言人 2**:好吧,我针对你这个东西,我说我的感想,我也说给很多销售听。 - -**[02:12:38] 发言人 9**:好的,我知道了。 - -**[02:12:39] 发言人 9**:冯总后续的话,我这边看看怎么结合我们的船,就是100%能落地的东西,我再想想看看有没有什么新的东西。 - -**[02:12:49] 发言人 2**:因为你拿到信息以后,你尽快第一时间回来发给总部。 - -**[02:12:54] 发言人 2**:你不知道总部现在着急的很,总部现在因为没有第一手资料,经常在想客户是怎么想的。 - -**[02:13:02] 发言人 2**:我操这个东西想的这个东西,我操你一大半都是错的。 - -**[02:13:07] 发言人 5**:骆洞就是这样的。 - -**[02:13:09] 发言人 5**:今天今我们现在肯定是会去孵化云桌面到AI升级成AI云桌面这条产品去整合,大致就是把办公或者教学,甚至医疗常用的一些AI整合成一个叫做AI云桌面的东西。 - -**[02:13:28] 发言人 5**:然后现在在进行初步的一些架构的一些,包括需求的一些收集。 - -**[02:13:34] 发言人 5**:我们可能在家里想,更多的希望你能听到,你不用去给客户讲我们有了这个产品,你可以去包括我们所有的销售和售险的同事,可以去跟客户聊他们有些什么A需求。 - -**[02:13:49] 发言人 5**:我们现在很希望听到一线的声音。 - -**[02:13:52] 发言人 5**:好吧,洪总的意思就是说我们接下来这个知听云,我们可能会给他们一个软客户端,或者现在没有客户端的情况下,你们可以用手机的录音软件把那个音先录了。 - -**[02:14:06] 发言人 5**:录了过后我们给那个网页回来,他可以生成一个谈话纪要,好吧? - -**[02:14:13] 发言人 5**:我们希望听到需求,我们会去做这个东西。 - -**[02:14:17] 发言人 5**:也就是说,简单说就是云桌面在以往的计算存储、内存资源的管控安全上,我们要加入AI的资源管控安全和一些AI的应用,升级成AI云桌面。 - -**[02:14:29] 发言人 5**:好吧好的,我明我我明白了。 - -**[02:14:33] 发言人 2**:其实我觉得我刚才想,就是我们做一个软的客户端。 - -**[02:14:37] 发言人 2**:然后后面的一些存储,就我们的销售,我们的这个把它作为自己的一个云笔记,就是他录进去的东西,我们就给他总结了,总结以后放到他自己的那个库里,他自己就可以随时的。 - -**[02:14:50] 发言人 2**:我今天我见了人,我现在我有时候我我我每天我因为我不是那个龙虾,我经常我就会对着他说,我说我今天我做了哪几个事,然后有些收获也有些什么问题,我就放这。 - -**[02:15:02] 发言人 2**:我因为我一段我不想写,一旦放进去他自己变成了事情。 - -**[02:15:06] 发言人 2**:然后过了一个星期我就会说这个星期你帮我看看我这一星期我做了哪些事,哪些事我说了,就是想法哪些没有落实,我觉得这个慢慢你又会形成一个自己的一个知识,你会形成自己的一个叫什么? - -**[02:15:23] 发言人 2**:如果你比要像,尤其是像那个洛东他们,或者像这个谁他们他们售前的这这几个杨辉荣他们,他他可能是有用的,他留了很多的知识就放在那儿,他后续很快就能查到。 - -**[02:15:38] 发言人 2**:我哪一天跟你也聊了个这个,我聊完这个以后,人家给我回复了个这个,我觉得挺有意思的,给我们自己留一个语音的一个叫语音笔记,我们可以做一个这个东西,包括些语音参加总结的一个笔记。 - -**[02:15:52] 发言人 2**:你这个其实消耗的564药算力也不会太大,就放到我们自己的消算力上面来。 - -**[02:16:02] 发言人 2**:How . - -**[02:16:03] 发言人 1**:zero? - -**[02:16:09] 发言人 1**:贾世斌销售放。 - -**[02:16:12] 发言人 2**:在下午好吧,售后有几个售后讲完销售方的项。 - -**[02:16:23] 发言人 6**:各位领导,各同事,大家中午好。 - -**[02:16:27] 发言人 6**:这边我是贾明,然后给大家汇报一下26年的一个售工作方面的进展。 - -**[02:16:36] 发言人 6**:好,本次主要分为五个点,主要说明一下最近期的一些重点工作内容,然后当前售后的工作痛点,以及我们售后团队这边的一些对于售后方面的优化思路与建议,还有一些工作心得和下半年的一些售后规划。 - -**[02:16:56] 发言人 6**:然后上半年售后团队这边的一个工作重点主要在三方面。 - -**[02:17:02] 发言人 6**:一是在能力建设方面。 - -**[02:17:05] 发言人 6**:然后我们在三月份举办了今年第一次的汇智省代认证培训。 - -**[02:17:13] 发言人 6**:后总共有37家省代48人参加,然后47人通过了这次的培训认证,以及我们对我们持续的进行我们这个Q的案例库的一个维护工作。 - -**[02:17:29] 发言人 6**:以及还有和我们产品团队,还有研发团队开展针对于我们自有人员的这个呃技能针对性的技能培训。 - -**[02:17:40] 发言人 6**:然后建立起一个一套全面的一个故障处理的工作流。 - -**[02:17:45] 发言人 6**:并且通过我们各个公网的特殊环境,以及我们各个各个分公司的一个现场的服务器的测试环境,来进行这个新人的一个实战的一个能力的培训。 - -**[02:18:02] 发言人 6**:然后对于对于重点项目交付这方面,后今年的重今年上半年重点项目的处理有这些有华能蓝江、一汽工厂、团能存储、化工科技重研院这些重点项目。 - -**[02:18:19] 发言人 6**:然后持续对这个项目落地之后出现的一些售后技术问题进行闭环跟踪。 - -**[02:18:27] 发言人 6**:然后对于实际我们交付方面的话,是完成了重庆航航天火箭中美云的一个部署,以及风远赛迪这边的一个桌面的一个重点项目的部署实施。 - -**[02:18:44] 发言人 6**:然后保障项目的一个安交互以及客房的力度。 - -**[02:18:49] 发言人 6**:然后在我们售后系统方面,售后这边做了一些系统性的一些优化。 - -**[02:18:56] 发言人 6**:就是我们搭建我们测试并且搭建完成了一个基于三星X这个电话软件的一个森林的售后电话系统。 - -**[02:19:05] 发言人 6**:然后现在已经测试完成并且正式投入使用了。 - -**[02:19:10] 发言人 6**:现在通过客户可以通过拨打400热线,能够转接到我们这套系统里面。 - -**[02:19:17] 发言人 6**:然后我们会按照售后排班的一个情况,后进行一个转接。 - -**[02:19:23] 发言人 6**:而且我们电话系统也能进行内部的人员的直接转接,就是跟跟华340的那套系统的功能能实现基本一致。 - -**[02:19:35] 发言人 6**:然后这边的话我们还利。 - -**[02:19:38] 发言人 7**:用。 - -**[02:19:38] 发言人 6**:了腾讯的这个A软件A这套这个软件搭建了一个我们售后的技术知识库。 - -**[02:19:48] 发言人 6**:并且给省代的个工程师们做了一些推广。 - -**[02:19:53] 发言人 6**:以及我们在测试环境里面去搭了一下这个open小龙虾的一个平台,后现在开始在尝试训练,对就是对于工作流的这些技能一些相关训练,看看能不能做一些简化我们售后日常工作的一些工作。 - -**[02:20:18] 发言人 6**:然后当前工作的一些痛点的话,主要还是在一些省代的技术工程师,或者一些渠道的技术工司,他们的能力参差不齐。 - -**[02:20:30] 发言人 6**:然后会出现一种情况,就是在他们售后问题处理中,然后省代的那些工程师他们就出现问题,就只是把问题现象做了一个收集,然后没有做一些相关的后续推演。 - -**[02:20:48] 发言人 6**:然后就只是相当于是在问题处理过程中做了一个潜水,然后导致客户这边会形成一个依赖,直接联系到我们的一个售后团队,然后导致我们从技术支持变为一个项目运维,售后就是运维的一个全权负责人。 - -**[02:21:07] 发言人 6**:然后会这种情况下的话,会挤占一些我们售后服务的一些内部资源,导致不能满足不能更好的去服务一些我们自有的重点项目的一些相关售后服务。 - -**[02:21:24] 发言人 6**:而且也会出现一些情况,就是客户这边形成了一些依赖之后,导致他们不会去找这个渠道,或会绕过渠道这些直接联系原厂,或者通过华三的销售向我们售后做一个施压处理这种情况。 - -**[02:21:45] 发言人 6**:然后还有一个情况对于奈资这边,目前来说的话,我们只是对vdi产耐克v di的,实际接触的话暂时还比较少。 - -**[02:21:58] 发言人 6**:然后vy这边的话,因为我们之前做过一些功能性测试,然后对V Y产品的实际的功能什么都比较熟悉。 - -**[02:22:09] 发言人 6**:这边对于现在目前发现的一些问题有一些优化和思路。 - -**[02:22:14] 发言人 6**:首先是之前讲的对于省代这边技术服务能力方面,然后我们首先是想的是对于省代公司,我们是要做一些相关的技术考核打核,技术考核打分,然后再进并且进入到我们这个省代的评分体系里面。 - -**[02:22:34] 发言人 6**:这部分和之前和梦洁那边已经讨论确认过了,然后是从流程上已经开始进行一个落地了。 - -**[02:22:43] 发言人 6**:然后后续要看一下后续对这个打分的体例,对于后续的一个效果,然后我们再做一些针对性的优化。 - -**[02:22:53] 发言人 6**:其次的话是对于上半年发现的一些薄弱的技能点,然后就省贷那边薄弱技能点计划在今年的下半年再做一次二次培训,然后做针对性的一些培训。 - -**[02:23:09] 发言人 6**:还有就是那X产品这边的话是看能否做申请一些我们测试的终端或者是测试平台,能让我们售后团队这边自己搭建来使用熟悉一下。 - -**[02:23:24] 发言人 6**:然后对于AI脑这边,是这边也跟AI AI产品创新经理那边去做过沟通。 - -**[02:23:32] 发言人 6**:然后计划着是想后续将AI助手这边嵌合进space的桌面这边。 - -**[02:23:38] 发言人 6**:然后利用我们目前已经积累的这些问题的处理流程,还有一些方指导方案指导手册来训练一下个AI的一些技能,来实现一些管理平台的像类似运维报告的统计,然后日常巡检报告这些生成,还有这些一些常见的策略,并下发常见问题及自助处理这些功能,看看能不能做一些实时分后方面的一些实际落地。 - -**[02:24:10] 发言人 6**:而且看能不能在不增加部署难度的情况下,来进一步的降低一线这边运维的压力。 - -**[02:24:18] 发言人 6**:然后管理机制这边的话是想是我们这边想说是看看能不能建立一套比较完善的一个项目分级制度。 - -**[02:24:27] 发言人 6**:然后确保是有哪明确一下哪些项目到什么什么级别,哪些项目是重点项目,哪些项目是非重点项目。 - -**[02:24:36] 发言人 6**:好,就是确保重点项目的这个服务满意度。 - -**[02:24:39] 发言人 6**:然后就是在涉及重点项目这边的时候,售前或者销售的同事要跟我们售后这边要同步一下这个项目的一个背景电景信息,客户信息,以及这些我们的服务边界和关键联系人信息这些情况。 - -**[02:24:59] 发言人 6**:方便后续这些重点项目的问题的处理效率做一个进一步提高。 - -**[02:25:05] 发言人 6**:以及因为以及有一些非在保项目的时候,需要我们做支撑的话,最好是在做支撑之前,我们和售前或者销售同事和我们售后做先进一步的一个沟通。 - -**[02:25:20] 发言人 6**:就打电话也好,或者说是启微发消息也好,来确认好我们需要我们售后服务这边是做到哪一个方面,是把问题全部解决,还是说是看出来这个问题的根因,避免出现人力和无质量协调不协调的一个情况。 - -**[02:25:43] 发言人 6**:然最后这个就是对于非重点项目的话,也是说是想希望这边在方案落地之前要跟客户这边明确一下,客户要需要有一个专人做一个系统的运维的一个专人。 - -**[02:25:58] 发言人 6**:因为会出现就像之前说的,会出现一些情况是什么呢? - -**[02:26:02] 发言人 6**:就是客户那边没有专人,他们都是使用者,他们只是使用方。 - -**[02:26:08] 发言人 6**:然后当他们出现一些日常性的问题,比方说是什么软件安装什么的一些问题的话,他们那边没有专人处理,只能找到我们售后来做一些实施。 - -**[02:26:21] 发言人 6**:然后这边然这些内容实际上只是客户日常的一些软件的使用方向的问题。 - -**[02:26:28] 发言人 6**:然后其实不包含咱们云桌面的这个服务范围内,然后会导致会占立我们一些人力的,会占用我们大。 - -**[02:26:39] 发言人 1**:部分人力。 - -**[02:26:40] 发言人 6**:这是这方面。 - -**[02:26:42] 发言人 6**:然后目前对这个工作心得这方面的话,是要分为三点。 - -**[02:26:47] 发言人 6**:一个是在我们售后问题处理过程中需要多留痕,要保存好完整的这些邮件工单,还有会议纪料这些相关记录。 - -**[02:26:58] 发言人 6**:然后也处理过程中会处理过程中的一些问题截图,还有问题的那个配置的截图。 - -**[02:27:07] 发言人 6**:然后方便在我们后续进行案例整理以及问题知助的时候找到这些开会开。 - -**[02:27:15] 发言人 6**:然后第二个就是在场,就是我们出差到服场做一些我每要看的的候看到的明,看的终,实际用。 - -**[02:27:33] 发言人 2**:户要行的。 - -**[02:27:35] 发言人 5**:昨天给。 - -**[02:27:37] 发言人 6**:昨天给那个。 - -**[02:27:41] 发言人 2**:没事。 - -**[02:27:41] 发言人 6**:你继续。 - -**[02:27:44] 发言人 6**:出现紧或者是受权,或者是客户的这个运维人员做一个中转。 - -**[02:27:54] 发言人 2**:的信息,是出现中出现这那一个授那个日报的一个一个一个而且每。 - -**[02:28:10] 发言人 6**:天都要开,每就个每第的。 - -**[02:28:38] 发言人 2**:话。 - -**[02:28:50] 发言人 6**:满。 - -**[02:28:53] 发言人 5**:足。 - -**[02:28:57] 发言人 2**:客户的。 - -**[02:29:08] 发言人 6**:里面求半的是去。 - -**[02:29:27] 发言人 6**:然后到7月底开始后,他还进行一些独立的项目,然后到现场去做一些独立的项目,处理一些这些项目。 - -**[02:29:38] 发言人 6**:然后第二点,这边也是热,后续这个们重服务你们的模这话术交环做沟通,有哪些资料做一些传递等。 - -**[02:30:41] 发言人 6**:然后其次的话是在计划是在下半年,对于省内的这个培训,我们计划是针对于像以及产品部署的一些运维问题这方面做一些讲,这是这两方面。 - -**[02:31:03] 发言人 6**:然后还有就是我收工我也读过几年来直播售后的这方面。 - -**[02:31:10] 发言人 6**:后我们是跟计划就是在在近期利用多利用我们这个A工具,然后辅助问题处理来尝试一下。 - -**[02:31:21] 发言人 6**:把我们那些上面讲的一些想法,统计报告、巡检报告,还有策略发下发这些能力进行一些落地。 - -**[02:31:33] 发言人 6**:然后实现我们降低运维压力,降低客户现场的运维实施难度这方面。 - -**[02:31:42] 发言人 6**:然后我这边的售后这边基本上就到这儿了。 - -**[02:31:49] 发言人 2**:钟康你说一下钟康在吗? - -**[02:31:54] 发言人 2**:在我就谈一下我自己的体会。 - -**[02:31:58] 发言人 2**:其实大部分做获的内容都已经提到了,如果讲一些文件面应该找相关的算法。 - -**[02:32:10] 发言人 5**:看到看总你离麦克风近一点。 - -**[02:32:13] 发言人 4**:他假设试音器太远。 - -**[02:32:19] 发言人 2**:声音有点小,好好,现在能听在行不行,现在可以。 - -**[02:32:26] 发言人 2**:我是彭总也说过,我们公司目前看还是有能力利用AI在我们的产品方案运维各个角度都更进一步的。 - -**[02:32:37] 发言人 2**:我自己觉得A跟云桌面确实不是简单的这个功能叠加,是我们整个V D I或者V I终端工作方式的重。 - -**[02:32:50] 发言人 2**:最近我的感触是AI是让云桌面从工具升级为咱们智能生产力的一个平台。 - -**[02:32:58] 发言人 7**:前面俊姐也提过。 - -**[02:32:59] 发言人 2**:有可能因为咱们是有服务器端。 - -**[02:33:03] 发言人 2**:那服务器端是不是可以作为专利的动态调度的这个思路。 - -**[02:33:09] 发言人 2**:我觉得这个思路还是在我们后续的产品方案里面是个比较好的想法,是让我们客户的成本和性能得到一个比较好的平衡。 - -**[02:33:22] 发言人 2**:另外一个就是。 - -**[02:33:24] 发言人 3**:我们如果各种AI. - -**[02:33:26] 发言人 2**:助理如果推出的话,是怎么样让我们客户切实的感受到这种已经变通灵的云桌面。 - -**[02:33:34] 发言人 2**:我个人觉得应该不管从售后或者从其他角度来考虑,应该重点关注场景化的落地。 - -**[02:33:43] 发言人 2**:是先从小范围的高价值客户试点开始,先要跑数据,跑流程,然后再巩步推广。 - -**[02:33:50] 发言人 2**:另外一个就是今天也就相当于一个各方面的咱们云桌面的头脑风暴。 - -**[02:33:59] 发言人 2**:你感觉传统的bdi后面肯定要被重新定义的,相当于这是一次云桌面的数字化转型的路径的梳理。 - -**[02:34:11] 发言人 2**:所以这块后续可能会应该会成为我们公司重点的发展对象。 - -**[02:34:19] 发言人 2**:我就谈自己一点想。 - -**[02:34:22] 发言人 1**:法和体会。 - -**[02:34:32] 发言人 2**:售后这一块,我觉得因为你提的也比较全面了。 - -**[02:34:40] 发言人 2**:我看你们写的那个东西是假成你写的,还是你写的,还是你们商量写的。 - -**[02:34:48] 发言人 6**:这方面是我跟康总一块弄的,然后ppt是我这边写出来的。 - -**[02:34:57] 发言人 2**:我觉得你们写的也很详细了。 - -**[02:35:00] 发言人 2**:我没什么特别要说的,我是觉得也要形成这个一个是AI参与A参与故障,因为中方在行,这个说的也非常高度也很高了,这这是这个A是生产力的一个体现是吧? - -**[02:35:14] 发言人 2**:我觉得后续这个售后每天应该有一个总结会,然后把售后的这个日报,我觉得总结会也要用我们那个知听云。 - -**[02:35:24] 发言人 2**:然后这个售后应该有个日报,有个总结会。 - -**[02:35:27] 发言人 2**:这个日报你们怎么看,怎么去弄,就是要把这个数据都记录下来。 - -**[02:35:32] 发言人 2**:然后这个重要的一些你们认为或者需要的话,需要比如说售前觉得哪个项目很重要什么的。 - -**[02:35:40] 发言人 2**:我觉得你看看怎么跟那个学校他们包括跟他们商量怎么来把中间的这个交互弄好,就重要的事儿就是怎么把它当成大项目。 - -**[02:35:51] 发言人 2**:大项目的话怎么能够更积极主动的给授权进行反馈,包括问题的反馈,情况的反馈。 - -**[02:35:59] 发言人 2**:好的,另外就是我们接下来下午开,上午我还是要总结一下,我觉得刚才朱哥说的最后那句话,我觉得很有道理。 - -**[02:36:07] 发言人 2**:就是这个AI首先可能在改变云桌面,这是必须的这一定会的。 - -**[02:36:12] 发言人 2**:因为云桌面本来也是一个工作流,就是为置要安全,要可控。 - -**[02:36:17] 发言人 2**:对工作这生产工作里面的工作流里面嵌入的一个东西。 - -**[02:36:21] 发言人 2**:其实AI除了去改变云之外的产品形态以外,我觉得AI也会改变我们自己的整个工作形态。 - -**[02:36:30] 发言人 2**:就可以告诉大家,你们喜欢玩游戏的,你那个显卡,你们最大的你们这些玩游戏的所有人里面,你们最大的显卡是多少? - -**[02:36:43] 发言人 2**:这个我不问了,我只想告诉你,我们属于我们这公司属于小公司,是吧? - -**[02:36:50] 发言人 2**:人家大公司有大公司的玩法,我们做不到。 - -**[02:36:54] 发言人 2**:但是一个H 20是多少? - -**[02:36:57] 发言人 2**:刘静显存多少? - -**[02:36:59] 发言人 2**:960 96是吧? - -**[02:37:01] 发言人 2**:一个H 20的显存是96。 - -**[02:37:05] 发言人 2**:我们就是我们现在自己公司有400G的,有400G的显存,400G的显卡。 - -**[02:37:14] 发言人 2**:我操你让你们自己家里可能有一个8G的是吧? - -**[02:37:20] 发言人 2**:牛逼了是吧? - -**[02:37:21] 发言人 2**:12G16G的牛逼了,我们这有400G,所以我是觉得我一直在跟刘记在说,我们的400G如何。 - -**[02:37:32] 发言人 2**:首先第一个保证的就是如何在我们自己的整个公司的内部流程中,把这个AI,包括本地部署的A,因为有些A你用出去你还得花钱的。 - -**[02:37:44] 发言人 2**:你买你买钉钉的,你买这个腾讯的,买这个谁的,你买这个叫什么? - -**[02:37:52] 发言人 2**:买这个悟空的,你都得花钱,你你你积分是吧? - -**[02:37:59] 发言人 2**:这个都得花钱。 - -**[02:38:00] 发言人 2**:那我们自己可以做到私有部署免费的,你要自己部署一个是吧,我那江你跟我再商量部署那个叫,部署那个小的,叫这个9B的,我操,那到时网上翻翻着墙去布的,但是我们有一个400G的,我跟刘季也在说,我说最好不要1块1块的把400G拆是吧? - -**[02:38:25] 发言人 2**:你拆了之前还是合在一起之,肯定合一起之。 - -**[02:38:29] 发言人 2**:因为你越合在一起,上一个档,上一个等级,你越值钱。 - -**[02:38:33] 发言人 2**:人家能买得起一块,人家有96级,但是人家没有100G因为人家没有100,人家有100G人家没有400级。 - -**[02:38:41] 发言人 2**:你每增加一个数量级,你的值钱概率就比别人高很多很多。 - -**[02:38:45] 发言人 2**:所以你怎么用好,你不是搁那拆开用,你说每人分9G我操那傻逼,每个人能买得起。 - -**[02:38:52] 发言人 2**:一直虽然要把这药都用在一起,所以我就下来,包括我们中康,你们那个团队。 - -**[02:38:59] 发言人 2**:盛钢,我今天说这个我们希望把这个AI你刚才说A赋能,我们希望把这个知识库,把公司的知识库,公司的这种智能化,我们要把它用到极致,在用的过程间我们认为也会产品化,也会产品化一些东西,你把这些把一些。 - -**[02:39:19] 发言人 2**:但是首先我们把内部交流,刚才说了,这个A是娱乐面的生产力。 - -**[02:39:25] 发言人 2**:我觉得A首先是娱乐面,我们整个售前售产品研发,售前售后整体的生产力,从这块上我们相信总部一定能把这事做好。 - -**[02:39:35] 发言人 2**:所以下来我觉得还会说,我们说售前以后,每天三个组,三个组每天不叫晨会,这个晚上叫什么会? - -**[02:39:44] 发言人 2**:每天会每天下班都得开一个会,我给你一个记录工具,你们把那个AI的把知听云上记录下来,记录下来以后,一个作为咱们自己会议的一个记录。 - -**[02:39:55] 发言人 2**:21个给总部,也会来慢慢的延展性的。 - -**[02:39:59] 发言人 2**:就是看到问题解决问题。 - -**[02:40:01] 发言人 2**:因为你每一次提,你可能现在你提了,你刚才就像那个谁说的这个欧光耀说的,主动沟通。 - -**[02:40:09] 发言人 2**:我觉得主动沟通是个很难的事儿,人被动的,因为我说过一次话,我不想再说了。 - -**[02:40:15] 发言人 2**:所以说你你这个你这个魏光耀逼着今天要讲了,他给我马上就是那个猴子阳光下摘虱子一样。 - -**[02:40:22] 发言人 2**:朋友你看这几个的虱子一个一个的给我掰出来看,你看都是问题,你看这都是问题。 - -**[02:40:29] 发言人 2**:掰了一个柿子,其实你不用你现在给我掰,你平时你可以掰,所以我觉得你平时你每天的会不用你再说一遍,你会议说完你你会议说完记录下来就到总部来了。 - -**[02:40:40] 发言人 2**:我总部我肯定会去看的,我把而且我不是一次会,我把几次会议我慢慢就总结出来。 - -**[02:40:45] 发言人 2**:我们这个会议里面有些什么样的问题,或者有可能会出现什么问题,或者你们也可以把会议里面的问题你单独摘出,怎么样发给我们。 - -**[02:40:55] 发言人 2**:我觉得这样我们形成一个叫叫A进的一个共同体。 - -**[02:40:58] 发言人 2**:我们有一个我们在云桌面上,我们售前售后销售有一个统一的大脑。 - -**[02:41:05] 发言人 2**:我觉得这个对每个人在来干事来说,一定会事半功倍的,所以我觉得把这个事把它落实来,也下来作为我们留记,我们埃踢的一个重要要解决的问题。 - -**[02:41:20] 发言人 2**:你不能老说你创新盛钢,你看中方每每一句字字不离A I结果最后妈的没效率,没产生效率,这不行吃。 - -**[02:41:39] 发言人 3**:对对对。 - -**[02:41:40] 发言人 2**:你还有什么说的? - -**[02:41:41] 发言人 2**:没啥了。 - -**[02:41:41] 发言人 3**:下午再开会。 - -**[02:41:42] 发言人 3**:那这样下午开始销售讲。 - -**[02:41:44] 发言人 2**:我希望销售都讲讲。 - -**[02:41:46] 发言人 2**:然后上午如果我们售前还有很多,有中间想起来什么问题的就及时来提。 - -**[02:41:52] 发言人 2**:下午销售都讲讲,然后售前的我觉得还是要听。 - -**[02:41:56] 发言人 2**:因为这中间这个还是很重要。 - -**[02:41:59] 发言人 2**:我们有搞一次这个会的话,还是希望大家多分享。 - -**[02:42:04] 发言人 2**:因为这个信息平时分享的都是片段的,我们结合这个整体做一个分享,我觉得也是个很好的事情,对大家也是好,下来我还是下来,我还要抽的,我最后结束了,我要抽抽,我要抽抽,问问你今天听到一些东西你是怎么想法? - -**[02:42:21] 发言人 2**:我要抽一下这个,我们抽查一下我们这些销售参加的这些兄弟们。 - -**[02:42:27] 发言人 3**:好吧。 - -**[02:42:27] 发言人 2**:下午几点开始? - -**[02:42:28] 发言人 2**:下午两点。 - -**[02:42:29] 发言人 1**:会议链接还是这个链接,大家下午两点前入会就可以了。 - diff --git a/agent_memory/uploads/chat_2b0479c17171/1782271550535_3_transcript_711.md b/agent_memory/uploads/chat_2b0479c17171/1782271550535_3_transcript_711.md deleted file mode 100644 index b62c0ac..0000000 --- a/agent_memory/uploads/chat_2b0479c17171/1782271550535_3_transcript_711.md +++ /dev/null @@ -1,2254 +0,0 @@ -# 会议711 - -**会议时间**:00:00:12 - 02:09:29 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8, 发言人 9 - -## 会议记录 - -**[00:00:12] 发言人 0**:来。 - -**[00:00:14] 发言人 1**:吧。 - -**[00:00:39] 发言人 2**:一会儿了解下你的起位啊。 - -**[00:00:55] 发言人 0**:开始吧。 - -**[00:00:56] 发言人 1**:啊销售第。 - -**[00:00:58] 发言人 2**:一个汇报是院子。 - -**[00:01:10] 发言人 2**:定一个会告诉张飞,张飞被杀,张飞在。 - -**[00:01:25] 发言人 3**:喂喂喂,你是不是哪个看? - -**[00:01:28] 发言人 2**:可以了可以了,可以了,张贝贝。 - -**[00:01:33] 发言人 4**:好的,共享一下。 - -**[00:01:38] 发言人 4**:黄总,请总盛管总各位领导以及同事下午好,我是云智销售部的张蓓,负责河南省份。 - -**[00:01:47] 发言人 4**:我主要围绕三个维四个维度然后汇报一下,包括沟通一下我的工作内容以及下半年的规划,包括我这边产生的一些问题,包括难点,还有一些资源需求。 - -**[00:02:01] 发言人 4**:第一部分就是我上半年的一些工作内容,我在时间上采用了大概就是42的1个工作模式,40%的时间和新华三的销售达成一定的沟通,了解项目节点并同步跟进配合。 - -**[00:02:17] 发言人 4**:百分之另外40%的时间持续覆盖集成商、代理商以及友商的代理商,建立合作基础并互动配合。 - -**[00:02:27] 发言人 4**:另外20%时间的话增多一些客户了解项目的需求商机,协调时间,进一步的拜访汇报,了解项目节点这20%其中包括了我们汇智集成部分的一些拓展工作。 - -**[00:02:44] 发言人 4**:这边的话是我上半年的一些项目案例,还有一部分的机会点现在也在跟进,这边就不做介绍沟通了。 - -**[00:02:54] 发言人 4**:然后第二部分是下半年的一个。 - -**[00:02:58] 发言人 5**:工作计划。 - -**[00:02:59] 发言人 4**:汇报的背景主要是覆盖外围,就是地势里边一些空白区域。 - -**[00:03:06] 发言人 4**:第一部分就是挖掘友商的代理商,通过利益关系还有服务来进行一个引导,从备胎到承担的一个计划。 - -**[00:03:18] 发言人 4**:第二渠道拓展覆盖,配合华森的分销地市销售,参加地市渠道会议等,然后了解地市的情况,挖掘有实力的经营商培养为我司金牌携手共进。 - -**[00:03:32] 发言人 4**:然后辐射周边区县市场,积极的对接本地优质经营商,搭建合作网络,快速切入未覆盖的空白业务区域。 - -**[00:03:42] 发言人 4**:核心聚焦这部分的话,就是自身的一定的拓展。 - -**[00:03:46] 发言人 4**:深入了解河南省份以往已完成的订单项目,了解客户的信息,拓展扩容的一个项目机会。 - -**[00:03:55] 发言人 4**:第二部分就是拜访拓展高校医疗企业客户,挖掘项目的商机机会,全力以赴达成下半年的销售业绩目标,同时在项目实战中完成个人的一些话术或者一些专。 - -**[00:04:11] 发言人 1**:业的提升。 - -**[00:04:13] 发言人 4**:第三部分是我在河南近半年上大半年时间,然后有一些问题和难点。 - -**[00:04:20] 发言人 4**:在传统服务商与大厂的渠道商这种相互竞争的压力下,这个价格竞争特别激烈。 - -**[00:04:28] 发言人 4**:客户决策的高度倾向于比价,以及相适应于比方说学校或者医疗他们场景的方案。 - -**[00:04:36] 发言人 4**:我觉得如果我是能拿出来就是符合教育或者医疗或者企业某一个定点的优势项,然后去作为控标引导客户会更有把握。 - -**[00:04:48] 发言人 4**:目前我觉得是基本上中面云基本上都是普通的功能,就是通用的功能。 - -**[00:04:55] 发言人 4**:如果有咱也有授权同志在,到时候如果有一些新的话,到时候我可以可以可以定点的沟通一下,我学习一下。 - -**[00:05:05] 发言人 4**:然后还有纯国产化针对性的方案,包括案例较为较少。 - -**[00:05:10] 发言人 4**:像我这边央国企的这种企业也是有的。 - -**[00:05:13] 发言人 4**:但是我们像微机方案国产化的,还有一些别的方案的案例确实比较少,乃至全国应该也没有几个。 - -**[00:05:23] 发言人 4**:还有一些资源的需求,资料的响应更新。 - -**[00:05:27] 发言人 4**:我希望就是产品部门输出我们的标准化解决方案,以及我们的产品控标招标参数、控标点这个资料的更新方便我们销售应对。 - -**[00:05:38] 发言人 4**:紧急的打比方就是客户想明天去客户那汇报渠道,想明天去客户那汇报。 - -**[00:05:44] 发言人 4**:然后有可能晚上我这边也可以紧急的给他出一版,方便我们销售在对最紧急的中小型项目需求避免错过超过期。 - -**[00:05:55] 发言人 4**:第二个的话就是培训这一部分赋能体系。 - -**[00:05:59] 发言人 4**:我希望公司可以定期开展产品的一些赋能国产化政策的一些情况解读,招投标实战的一些技巧,包括销售技巧以及行业的通用话术等专项培训,系统化提升我们团队的专业素养。 - -**[00:06:18] 发言人 4**:还有就是测试机这个申请的流程,包括我们测试机的数量,这个周期有点太长了,客户就是感官不太好。 - -**[00:06:27] 发言人 4**:有可能我们在申请的流程中或者或或者在等待的流程中过程中,然后也有有其他友商已就已经进来了。 - -**[00:06:37] 发言人 4**:当然这个包括省代其实是有一部分测试机这个资源的。 - -**[00:06:42] 发言人 4**:但是有一个问题就是他们的测试机是之前已经停产的设备,而且性能已经跟不上了。 - -**[00:06:49] 发言人 4**:在他们现在的情况中,是不太愿意就再去搞一些测试机放到他们库里边,然后有有机会再去测的。 - -**[00:06:57] 发言人 4**:当然我也在引导再给我做沟通,比方说后边有一些项目的话,可以让他多多下两台放到库里边,这个有需要一定时间。 - -**[00:07:06] 发言人 4**:还有就是研发资源,我们在做平台优化,就在实施的时候,平台优化包括bug的修复,我们这个流程时间是稍微有些长的,这个对客户的体验感会有一定的很大的影响。 - -**[00:07:22] 发言人 4**:当然我在这里感谢一下陈明,在钢铁那个项目确实帮了我很大忙,有时候傍晚都在沟通。 - -**[00:07:32] 发言人 4**:最后一个的话就是我们nice的我个人的一些想法和建议,我觉得在我推动的过程中,在高调的一些场景里边,包括医院医疗的场景里边,我觉得这个推动起来还力度会稍微大一些。 - -**[00:07:48] 发言人 4**:就像我们郑州科技学院当时拉着漏洞过来,洛洞也积极的去给客户讲了我们耐斯塔的一些专业技术。 - -**[00:07:57] 发言人 4**:然后客户其实也挺感兴趣,但是最终我们跟欧意在pk,最终引导是公参。 - -**[00:08:03] 发言人 4**:我觉得后边的话我可以在覆盖地市的时候,可以在医疗就县级医疗里边多跑动,我们可以推一推我们的产品,大概就是这个样子。 - -**[00:08:14] 发言人 1**:领导,你。 - -**[00:08:15] 发言人 0**:翻到一页我看看,你翻到第一页,这个就是现在我。 - -**[00:08:21] 发言人 1**:们的渠道怎么样? - -**[00:08:23] 发言人 0**:在那里的? - -**[00:08:24] 发言人 0**:在在河南的渠道还是那个什么吗? - -**[00:08:27] 发言人 0**:还是叫什么? - -**[00:08:29] 发言人 0**:你那个渠道商省代。 - -**[00:08:31] 发言人 4**:的话是有两个,一个是光神电子,一个是新正飞,新德飞也在做是吧? - -**[00:08:38] 发言人 4**:对,今年是新中飞也有个项目,就是鞍钢这个项目。 - -**[00:08:44] 发言人 4**:然后最近就是在实施。 - -**[00:08:47] 发言人 0**:你和省代的沟通还有落洞,你们一起跟省内的沟通,有什么困难吗? - -**[00:08:54] 发言人 4**:目前看来没有。 - -**[00:08:56] 发言人 0**:省代有人,他们有人在做,有人跟我们比如说做一些支撑那个配置、服务,有的现在包。 - -**[00:09:03] 发言人 4**:括有一些之前的遗留项。 - -**[00:09:05] 发言人 4**:就是比方说客户一些用户又问到淮南销售了,想让他解决鱼肉面的一些问题。 - -**[00:09:11] 发言人 4**:但是不是省代处的,现在我也拉动省代在做服务。 - -**[00:09:15] 发言人 0**:那这也没办法。 - -**[00:09:17] 发言人 0**:你今年大概能做多少? - -**[00:09:19] 发言人 0**:你感觉。 - -**[00:09:22] 发言人 4**:任务是250万,说实话还是有点压力的。 - -**[00:09:26] 发言人 4**:但是努力完成公司的任务,大概在200万到左右,200万左右不能。 - -**[00:09:37] 发言人 4**:冲资250万。 - -**[00:09:45] 发言人 0**:成绩250万。 - -**[00:09:47] 发言人 0**:第四个渠道怎么样? - -**[00:09:49] 发言人 0**:第四个渠道去去去沟通的话,这个有什么问题没有? - -**[00:09:54] 发言人 0**:比如说现在在要拓展竞牌渠道,地市的渠道。 - -**[00:09:58] 发言人 4**:我现在覆盖了两个地市,第一个是焦作市,然后还有一个三门峡市。 - -**[00:10:05] 发言人 4**:我主要是通过配合华三这个分销销售,还有地市的销售组织会议,通过会议的方式更快速的了解哪个经销商更有实力,或者通过他们介绍。 - -**[00:10:22] 发言人 1**:这样来。 - -**[00:10:23] 发言人 4**:我觉得还是可以的。 - -**[00:10:24] 发言人 0**:有一个金牌渠道的策略,你去能做吗? - -**[00:10:29] 发言人 4**:第十,而且有一家已经在谈了,我跟孟洁也沟通了,下一步的话就是现在沟通协议,包括付款这个流程中。 - -**[00:10:38] 发言人 0**:现在这个内存涨价这个事影响多大? - -**[00:10:45] 发言人 4**:影响是蛮大的。 - -**[00:10:47] 发言人 4**:有些项目停了,然后有些项目切换,我们就是在推胖胖模式,影响是还是蛮大的。 - -**[00:10:54] 发言人 4**:但是你推胖终端对于华三销售他们就没意义了。 - -**[00:10:58] 发言人 4**:第一是没有什么毛利,第二的话,没有服务器就没有他们的业绩输出,这个是一个很严重的一个事情。 - -**[00:11:10] 发言人 0**:那得自己去弄,是吧? - -**[00:11:12] 发言人 0**:你所以说你卖那你那克斯你觉得好卖吗? - -**[00:11:15] 发言人 0**:Ni克斯。 - -**[00:11:16] 发言人 4**:我觉得推的话也是有很大机会的这不对于在客户侧去沟通,我觉得优势还是有的。 - -**[00:11:30] 发言人 4**:毕竟这个现在没卖过,也不敢跟您夸大其词。 - -**[00:11:34] 发言人 4**:后边的话推推看商机怎么样。 - -**[00:11:37] 发言人 0**:看怎么能尽快找个试点。 - -**[00:11:40] 发言人 0**:你翻第二页,下一页。 - -**[00:11:57] 发言人 0**:河南这个地方的话,如果是让他加一个省。 - -**[00:12:01] 发言人 6**:往哪加呢? - -**[00:12:02] 发言人 6**:还没定到。 - -**[00:12:03] 发言人 0**:定定了吗? - -**[00:12:04] 发言人 6**:往安徽2个小时,一个半小时找个小时。 - -**[00:12:07] 发言人 0**:河南加安徽,河南加安徽,你觉得安徽可以跑吗? - -**[00:12:11] 发言人 0**:我还没通知我还没通知是吧? - -**[00:12:14] 发言人 0**:我说一个司。 - -**[00:12:18] 发言人 0**:加大些跑动,再跑一个代表处,多找机会。 - -**[00:12:25] 发言人 0**:王东。 - -**[00:12:26] 发言人 4**:我说你再再跑。 - -**[00:12:28] 发言人 0**:一个代表数,把这个面再覆盖宽一些。 - -**[00:12:36] 发言人 0**:还没跟你们说是吧? - -**[00:12:38] 发言人 4**:还没我还不知道。 - -**[00:12:41] 发言人 0**:就一个主辈,再跑一跑。 - -**[00:12:45] 发言人 4**:跟领导安排。 - -**[00:12:47] 发言人 0**:到跑一跑,我觉得会多一些机会,销售多一些机会。 - -**[00:12:55] 发言人 5**:好。 - -**[00:13:01] 发言人 0**:再往再往。 - -**[00:13:03] 发言人 1**:下一页呢。 - -**[00:13:07] 发言人 0**:你说的那个说的那个解决方案,教育医疗场景优势解决方案。 - -**[00:13:13] 发言人 0**:俊体你们说说来我咱们就提的这个解决方案方案样板。 - -**[00:13:19] 发言人 0**:因为你们给我看了,你们每次开会跟我说那个方向盘,但是你们说的方向板,我觉得是你们就是成一些成功的案例。 - -**[00:13:29] 发言人 0**:但是好像你不能作弊,不能变成样板,那个样板是要可复制的或者说能卖好多个出去。 - -**[00:13:41] 发言人 0**:这个东。 - -**[00:13:42] 发言人 3**:西之前就行业反正一直缠写过,案例也讲过,然后技术特性也讲过。 - -**[00:13:52] 发言人 3**:云中电云中电无非就是该传达的那些技术要点,或者该个项目怎么拿下的一些商务的要点都都传达过。 - -**[00:14:02] 发言人 3**:所以说所以非要加东西,还是要等后面A里面是基于他现有的一种桌面的这这些东西反正都传达过。 - -**[00:14:14] 发言人 3**:目前医疗之前想了一下,无非就是因为医疗,我们发的那个播客前几期都是医疗。 - -**[00:14:22] 发言人 3**:其实这个。 - -**[00:14:23] 发言人 0**:教育你也分了高校,中职,也分12,这个也会分的很细的。 - -**[00:14:29] 发言人 3**:是吧? - -**[00:14:30] 发言人 3**:到时教育教教教育它没有对云装面来说没有区别,反正就是一个教室,教育的云桌面主要是用胖的胖子,他主要是解决一个课程镜像下发。 - -**[00:14:44] 发言人 0**:那我们有机。 - -**[00:14:46] 发言人 3**:那个是这样的,那个是教育软件,电子教育软件我没做,因为那个东西确实不擅长。 - -**[00:14:53] 发言人 3**:华山是把这块集成了做了,我们是采用自己的胖的方案加上紫光计算机。 - -**[00:15:00] 发言人 3**:它们不是一个叫紫域电子教师或者吉域电子教师,这个是市场上都比较多的,都可以在上面跑,是这样的解决的。 - -**[00:15:10] 发言人 3**:而医疗医疗主要是针对各个窗口,我们推的就是胖瘦结合的方案。 - -**[00:15:15] 发言人 3**:比如说普通办公他可以预瘦的,然后有的医生像之前那个华西住院最用我们一接,因为他的对终端要求过复杂,但是他有的医生他就有那种我要自己用一个动态桌面,然后我出去过后,我还有我自己的一些资料,我可以使用方化医院的一些系统,它的普通办公就可以用那个vdi然后一些窗口因为外资比较多,所以用的v所. - -**[00:15:44] 发言人 3**:以说在一个胖素结合的方案,其实有伤还是比较难受的,特别是生音符很难受。 - -**[00:15:51] 发言人 3**:所以说之前说医疗我们是采取这种的方式,这两个行业其实现在主要还是找着需求去去卖。 - -**[00:16:00] 发言人 3**:因为确实两个行业现在运作下来,相对来说问题是比较少的,相对其他行业是少少很多的,基本上交付上我们都没有什么问题。 - -**[00:16:26] 发言人 0**:这个场景化样板点我要能查到的话,我在哪能我在哪个地方能找到? - -**[00:16:37] 发言人 0**:就是我要现在看我教育医疗的教育企业的场景化,我想看看。 - -**[00:16:44] 发言人 3**:我们这有个新华三维护的一个知识库,是可以开给你。 - -**[00:16:50] 发言人 6**:就是我哆嗦一嘴,也不是给咱去举例教育,咱教育和医疗是那跟宗教育一起里边两个特殊行业。 - -**[00:17:00] 发言人 6**:因为你企业肯定定出化很多,政府肯定是国产信号。 - -**[00:17:06] 发言人 6**:现在现阶段那你教育你就说你刚刚说的原话就是没有什么特殊化。 - -**[00:17:13] 发言人 6**:其实我们反而更希要教育和医疗,搞不出我们绘制的特殊化,那就是在后边实训室是怎么样,然后智慧教室就是怎么样。 - -**[00:17:22] 发言人 6**:除了这两个教育云桌面就没有其他地方用了吗? - -**[00:17:26] 发言人 6**:在教育里面,我听广西的王辉给我说的,人家在那个高校里面,人家用的这些东西也是用的新华三的,只是没人给他总结。 - -**[00:17:36] 发言人 6**:我们仍然希望在更强的领域,教育和医疗里面把你的方案搞一些细分。 - -**[00:17:42] 发言人 6**:虽然在你的技术领域有可能是雷同的,但是你看我记得华智咱们搞这个交通,那今天去给我摸一个就是现在高速公路速改,速改里面华智的齐云能放到哪? - -**[00:17:56] 发言人 6**:智慧服务区数字改造其实实际实现的功能也是给于这块攒一堆东西。 - -**[00:18:02] 发言人 6**:但人家就是在全场全国的市场会的时候,他们安排个人一讲,所有销售他就把你们省份关系好的渠道的服务区交通服务关系好的渠道给我拉过来,让他去推推这个智慧服务区的应用。 - -**[00:18:19] 发言人 6**:我的意思是反过来,我们云中面能不能就在这个产品,就是我们市场角度,能不能把教育局再搞的细分呢? - -**[00:18:27] 发言人 6**:因为你不可能让他们跑到学校的信息中心。 - -**[00:18:30] 发言人 6**:我就有云桌面销售,他根据我们那个P P T我就云桌面,但各都有什么都可以卖,那你的特色在哪呢? - -**[00:18:38] 发言人 3**:我没有特色,说是这个就是和上面应用本区别的地方。 - -**[00:18:42] 发言人 3**:云桌面它毕竟还是一个技术环境。 - -**[00:18:45] 发言人 3**:如果我们在后面的AI当中,可以考虑加一些AI应用上去,用AI应用来拉动云桌面的一个切口。 - -**[00:18:52] 发言人 3**:但是你现在上面所有的功能都是个技术环境,它怎么去切切这个东西? - -**[00:18:57] 发言人 3**:你你你不可能在你不可以像瑞杰一样去做电子教室的。 - -**[00:19:03] 发言人 0**:这个不是这个意思,这个就是肯定是要写标,就是同质化强是怎么? - -**[00:19:08] 发言人 0**:就是我觉得里面几个,一个就是同质化强,就是怎么在标书里面写死。 - -**[00:19:13] 发言人 3**:是吧? - -**[00:19:14] 发言人 3**:只要让我们写的,肯定是写的死的,他不是写词的问题。 - -**[00:19:20] 发言人 0**:你能让你说说你说说张飞,冯总你说说具体也在彭总平时,你们聊的也少,你说说。 - -**[00:19:33] 发言人 4**:其实刚才许欧总说的意思就是我我想表达的意思就是比方说在教育场景里边,我们经常碰到欧翼,欧翼他们的有一些功能项,那确实是人家在老师作为运维或者作为教师教学教师,人家在使用过程中,人家需要这个功能更更便捷。 - -**[00:19:51] 发言人 4**:但是咱们没有,就类类似类似的咱们也没有。 - -**[00:19:56] 发言人 0**:军杰认为你标空不住,你只要是标空的之他来写,他一样能写死,主要还是关系没到。 - -**[00:20:04] 发言人 4**:但是如果说功能上的话,老师就去去推咱们的东西,也更有说服力。 - -**[00:20:12] 发言人 4**:你比方说我接触个客户,然后万一做的特别好,人家想推我的产品,然后就说我这个功能我需要。 - -**[00:20:20] 发言人 4**:但如果说说瑞欧义人家做进去,人家就说这个功能我是一定需要的,方便我使用。 - -**[00:20:27] 发言人 0**:教学包括需可能就比我们做的好一些。 - -**[00:20:30] 发言人 3**:那这样就很配了。 - -**[00:20:31] 发言人 3**:那个商城那个电子教的软件编化东稍微做的好一些。 - -**[00:20:35] 发言人 0**:那你说我强在哪儿呢? - -**[00:20:37] 发言人 0**:我从得有一点义务,就是他是有好的。 - -**[00:20:41] 发言人 3**:那我也有我好的,就是我正他空标点都有。 - -**[00:20:44] 发言人 6**:只不过他可能合同标的就是刚刚洪总说的关系,那意思我们认,如果销售我们关系不行,就没有写必较多的机会。 - -**[00:20:53] 发言人 6**:好,同样的关系,咱俩同时卖。 - -**[00:20:55] 发言人 6**:江总姜,你上午我是希华三,江总你总要给我个弹药,告诉江总你为什么? - -**[00:21:00] 发言人 6**:我拿什么说服姜总在咱俩同样关系的时候就这么说。 - -**[00:21:04] 发言人 0**:我觉得这个东西肯定你没错。 - -**[00:21:06] 发言人 0**:比如说在教育行业,我和奥一起打的时候我出什么招? - -**[00:21:10] 发言人 0**:比如说在这个企业我身兴奋打的时候我出什么招? - -**[00:21:14] 发言人 0**:我遇到瑞杰我出什么招? - -**[00:21:16] 发言人 3**:你有这个没有你肯定没有那个。 - -**[00:21:18] 发言人 0**:大家都对比过的,你拿我看分析师有你马上你马点答分析师有你打一个叫hv咱那你就把奥义。 - -**[00:21:27] 发言人 3**:的打上来。 - -**[00:21:28] 发言人 3**:那。 - -**[00:21:29] 发言人 0**:你贴出来看,那是一个很就是抛出。 - -**[00:21:41] 发言人 3**:一明你手上有吗? - -**[00:21:44] 发言人 3**:我就一次找着一边。 - -**[00:21:49] 发言人 1**:有的。 - -**[00:21:50] 发言人 7**:你发给贝贝。 - -**[00:21:52] 发言人 3**:你发给贝贝一下。 - -**[00:21:56] 发言人 4**:我投一下吗? - -**[00:21:58] 发言人 3**:你发给张张妹妹,她投,我怕这边有些人意思不是。 - -**[00:22:04] 发言人 3**:对。 - -**[00:22:06] 发言人 7**:假如我没听。 - -**[00:22:07] 发言人 4**:清发给谁。 - -**[00:22:08] 发言人 3**:张贝贝,放在你头,你投。 - -**[00:22:10] 发言人 3**:他对,就是。 - -**[00:22:12] 发言人 7**:Oh。 - -**[00:22:27] 发言人 7**:这个有更新过一份。 - -**[00:22:30] 发言人 0**:就是跟阿姨的竞争分析。 - -**[00:22:37] 发言人 0**:张伟。 - -**[00:22:37] 发言人 7**:你看过没个? - -**[00:22:39] 发言人 4**:我看过,然后还有申意福的,然后还有应该。 - -**[00:22:44] 发言人 0**:还有瑞杰的,那你说说他在哪儿? - -**[00:22:52] 发言人 0**:因缺少你这样的,我觉得有两个,一个功能性我实现不了那很正常。 - -**[00:22:57] 发言人 0**:因为每个人都有他自己的功能性,别人实现不了的地方,或者也有个也有在一些行业里面的都胖瘦各有所爱,萝卜白菜各有所爱,是吧? - -**[00:23:10] 发言人 0**:就是从你说同质化的东西太那个同质化就争什么太少,那怎么弄呢? - -**[00:23:18] 发言人 0**:你希望公司哪些方面还有改变呢? - -**[00:23:28] 发言人 4**:你比如你看到你看一下咱们的功能相对比是欧翼的优势或者咱们的优势。 - -**[00:23:45] 发言人 0**:对去。 - -**[00:24:02] 发言人 0**:要看哪一个张备。 - -**[00:24:07] 发言人 3**:这些都是。 - -**[00:24:11] 发言人 4**:我黄总,我是这样觉得的。 - -**[00:24:13] 发言人 4**:我就是说去客户那儿,首先我得说服我自己,我靠跟客户去沟通,说我们的云桌面哪个功能能打动他。 - -**[00:24:22] 发言人 4**:如果是拼客勤的话,那这个就不说。 - -**[00:24:25] 发言人 4**:但是如果说在同等情况下,我就跟他pk的话,我首先我得知道咱的优势在哪儿。 - -**[00:24:30] 发言人 0**:就是你你想说的这不是那优势,这不写的有吗? - -**[00:24:34] 发言人 0**:你想说的是就是可能在奥义和我们在做项目的时候,这个奥义的优势好像更大一些是吧? - -**[00:24:41] 发言人 0**:然后奥义拿出来几个东西没有后然后人家就需要他们是吧? - -**[00:24:47] 发言人 0**:我是这样。 - -**[00:24:47] 发言人 4**:我是觉得欧翼他们的功能有些是确确实实是切切近于教学办公需要的这肯定然后咱。 - -**[00:24:55] 发言人 0**:们这有一些好比生意服也肯定是他强的功能。 - -**[00:24:59] 发言人 0**:我觉得这个一个一方面,我是觉得如果说是咱们,比如说教育是核心,教育是咱们的一个重点的话,我觉得去年你们上研发要去跟进,研发跟上,发有可能跟上吗? - -**[00:25:12] 发言人 0**:如果发可能跟上,那你只能在这个比如奥里面,你比针对这种项目了,那我们拿出个具体的策降价,我们认知的什么是吧? - -**[00:25:22] 发言人 3**:那如果根据你的策略,或者就是你能反馈奥夜哪项功能让你特别难受。 - -**[00:25:29] 发言人 0**:去哺育部,我觉得你们要去你们要到各个地方去各个地方。 - -**[00:25:33] 发言人 0**:你们从下一周开始,一鸣你们的我觉得就去去就就去跑起来,出去跑一圈,去先去跑一跑,找几个重点的地方去去聊一聊,跟一些项目就把一些东核心力搞定。 - -**[00:25:45] 发言人 0**:目的是带着我们到底哪些产品的功能性,我们的这个竞争性应该怎么在完善。 - -**[00:25:51] 发言人 0**:然后我们的功能性到底缺了以后要不要补,要把这事情搞清楚。 - -**[00:25:56] 发言人 0**:还没的话,你的发面你得去菜。 - -**[00:25:59] 发言人 1**:市场转转去。 - -**[00:26:02] 发言人 0**:个。 - -**[00:26:04] 发言人 3**:是从教学这类电子教室类的软件,实际上我们去年初步做定的策略是暂时去做公务性的更新,华三也有12 1点没没更新。 - -**[00:26:24] 发言人 3**:我知道你可。 - -**[00:26:25] 发言人 0**:以说同更新的没关系,就不更新,或者这个市场我们卖不卖。 - -**[00:26:28] 发言人 0**:如果这市场我们不卖了,那我们就不更新了。 - -**[00:26:31] 发言人 0**:反正你们有,我们就拼评价格。 - -**[00:26:33] 发言人 0**:如果要卖,那我们也没有不更新的情况下,我们怎么样? - -**[00:26:37] 发言人 0**:我们就是我们比如说这一两年,你举个例子,你张贝你说很麻烦,但是我就张贝我告诉你,我在全国就这种学校,我已经今年我卖了七八个了,去年卖了几十个了。 - -**[00:26:47] 发言人 0**:那我告诉你我为什么,那别人为什么卖力去了,那总总总得总得说一个说总得去匹配一下,形成一些我觉得形成一些叫什么? - -**[00:26:57] 发言人 0**:就互相形成一些这个内部要形成一些拉力,或者形成一些互相的力量。 - -**[00:27:07] 发言人 3**:你最后才能够pk你这个才有结果。 - -**[00:27:10] 发言人 3**:贝贝,如果你对教育这个东西很有感很有想清晰一些时间去做,你可跟一鸣跟我都可以积极沟通一下。 - -**[00:27:18] 发言人 3**:因为对一个行业,目前出了行业一直缠,也把我们理解的优势下该怎么去克户引导,这些方式方法都有讲,这个是针对奥义单独的一个竞争分析,这相关的材料其实都有。 - -**[00:27:32] 发言人 3**:如果你觉得哪项功能不够,或者你在拓展项目当中碰到一些什么困难,你可以提需求。 - -**[00:27:39] 发言人 3**:然后我们来评估这个东西到底是不是普适的,到底要不要做。 - -**[00:27:44] 发言人 3**:我们来收集你们的需求才能做产品的那个呃。 - -**[00:27:49] 发言人 4**:好的,俊叶总,黄总,到时候我再研究,然后找出一些真对象。 - -**[00:27:54] 发言人 4**:我跟俊野总沟通。 - -**[00:27:58] 发言人 0**:你再退回到你的胶片答辩。 - -**[00:28:05] 发言人 0**:就是我就想说结合这个我就想说,因为我们现在对我们的产品经理,说实话这个也会采出这个高标准,也要求。 - -**[00:28:14] 发言人 0**:因为现在今年这个本身竞争激烈是吧,你就是这个激烈是必然的。 - -**[00:28:19] 发言人 0**:你这个能不能有好的产品,或者能不能有好的卖的方法,我计早也说了,我说就是那个农夫,farmer就是一天去菜市场,一天去农场,一天去菜市场。 - -**[00:28:30] 发言人 0**:我首先我觉得我们我们的产那个那个咱们产品经营团队,你们几个人要跑动起来,要多到各个地方跑,多去跑,尤其在这跑跑到项目里去,跑到客户里去。 - -**[00:28:42] 发言人 0**:应该这么说,说的更具体点,不是说你空跑,是吧? - -**[00:28:45] 发言人 0**:你空跑我今天那跑了我这个飞机坐了多少公里,我火车开了多少,像像原来那个谁一样,叫王宇峰,是吧? - -**[00:28:57] 发言人 0**:你不能空跑,你这个对你你不能这么跑,我觉得这就是要不你跑到客户里,要跑到项目里就摸清楚。 - -**[00:29:05] 发言人 0**:就是我这些叫就一起,应该叫起正应该叫起教医政应该倒来了是吧? - -**[00:29:11] 发言人 0**:政府现在少一些企业,最多把企教一政里面一层一层的拨开,一层一层的给大家拿东西? - -**[00:29:19] 发言人 0**:第二个我觉得我们的销售,你遇到问题不能泛化。 - -**[00:29:23] 发言人 0**:因为这个东西其实这个市场我们都做了销售那么多年了,你要说别人的优点,你这市场就没法打了,是吧? - -**[00:29:32] 发言人 0**:我就这么说,如果如果我都是优点,人见人爱,花见花开,我就不需要你装备了。 - -**[00:29:38] 发言人 0**:我开个4S店. - -**[00:29:39] 发言人 6**:卖苹果对不对? - -**[00:29:40] 发言人 6**:我不需要你装备了。 - -**[00:29:41] 发言人 0**:因为长得好看,我长得那么乖,我需要你推销,我从哪去亮亮个相就行了,我亮个相,你家下面还说再转一圈是吧? - -**[00:29:50] 发言人 0**:我不需要你了。 - -**[00:29:51] 发言人 0**:所以说我为什么需要你? - -**[00:29:52] 发言人 0**:就是因为这个竞争激烈,就各有各的特色。 - -**[00:29:56] 发言人 0**:我觉大厂有大厂的特色,小厂有小厂的特色,奥义有奥义的特点。 - -**[00:30:01] 发言人 0**:新华三还有新华三的品牌优势,新华三有新华三的特点。 - -**[00:30:05] 发言人 0**:所以说我还是觉得你们要一定要去把这个事情具体到每个项目里去,具泛化的。 - -**[00:30:12] 发言人 0**:咱们可以这么说,但最终是要落实到项目的,我就要具体到每个项目里去是吧? - -**[00:30:19] 发言人 0**:你包国产化针对的方案上,我觉得也是就是针对你销售来说,我觉得很重要一点。 - -**[00:30:26] 发言人 0**:你先抛开总结,你单个销售你不能老是总结化,你你你老话我说可以,你不能说你就说我们现在碰到一个项目那好了,那你没有国产化案例是什么项目? - -**[00:30:38] 发言人 0**:别人有你给我落到点上去,张备好,你得落到点上去,因为你都总结了,那你要你要我干嘛? - -**[00:30:46] 发言人 0**:你要豆包干嘛? - -**[00:30:47] 发言人 0**:那豆包干的事,你干的事就是你要这个事儿,你给他说清楚。 - -**[00:30:51] 发言人 0**:这个1234,我们一听活那个鲜活的是吧? - -**[00:30:55] 发言人 0**:具体的案例。 - -**[00:30:56] 发言人 0**:然后针对鲜活具体的案例,我们大家来得出这个结论,然后再针对这个结论进行改进。 - -**[00:31:03] 发言人 6**:他那句话国产化的也是今天感的。 - -**[00:31:07] 发言人 6**:昨天晚上他那个项目跟俊杰也沟通了,然后89.9点钟点最后达成共识,就是他那个平高电器要用,就中午说要用国产化的GPU和国产的的cpu完了之后用云动面的方式,关键是用户那反过来要用这个云桌面做渲染重载的一个设计工作。 - -**[00:31:28] 发言人 6**:所以说国产我们做不了,不是我们做的是行业,而不国显卡国产显卡中行。 - -**[00:31:34] 发言人 6**:同时什么中国还说的,你渲染设计软件,它天生就跟英伟达已经裹在一起了。 - -**[00:31:42] 发言人 6**:你中过我尊重你的事儿,那就是你就即使国产化性能哪一天达到了,那这个国产芯片它跟渲染那一软件,它俩的适配度又是一个天大的开发量的一个事。 - -**[00:31:54] 发言人 6**:所以它最后指的是个呢那个我们只有一个用微金U去做视频解码的一个功能,没有其他案例。 - -**[00:32:02] 发言人 0**:这里面其实你说的很对,这个里面英伟达的那个壁垒还不止扩大。 - -**[00:32:08] 发言人 0**:英伟达花了大量的帮一些游戏帮间渲染来进行适配。 - -**[00:32:13] 发言人 0**:对它这种适配原来看是来领,但是现在看。 - -**[00:32:17] 发言人 3**:长期下它的优势就是它的那个英伟达,这是它的远件英伟达在通用级P就是消费级C P U在游戏场景和多媒体场景,它还有它的很大的壁垒。 - -**[00:32:29] 发言人 3**:国产显卡其实国产显卡的进度是远落后于,比如说国产的cpu,内存,是远落后于这两天这些芯片。 - -**[00:32:39] 发言人 2**:厂商每年要花很大的价格,很大的代价给这些工作室厂。 - -**[00:32:44] 发言人 6**:有点像,还有麒麟,不是鸿蒙,现在干。 - -**[00:32:51] 发言人 0**:这个事儿,塞前,我给你投两个人,我帮你完成适配吗? - -**[00:33:00] 发言人 0**:我昨天我有拿我个电脑用了两天,我升级优化了,太优化了,他就这么说,我操。 - -**[00:33:11] 发言人 6**:对,是这样。 - -**[00:33:12] 发言人 6**:因华为那个鸿蒙现在让我们弄两个人适配,不也是同样的一个逻辑,鸿蒙那个那个生态。 - -**[00:33:18] 发言人 6**:对对对,就是这个确实他举这个案子说去吧们聊了,那最后那其实我还问了张志国,他们可能确实。 - -**[00:33:26] 发言人 0**:所以说这个我觉得倒过来,就是这个英伟达里面的那么大的公司,几万亿美金的公司还在不停的更新,敏锐的更新,我觉得我们我们更才说的是么资料培训,我觉得我们更是应该要频繁的去做这些事。 - -**[00:33:41] 发言人 6**:如果教育是我们重要行业,我们就不可能不开发。 - -**[00:33:46] 发言人 0**:不是,你教育如果说你教育你拿策略的话,你现在尤其是那个I不行的情况下,你也得起起政教一起,你这几个起正义教你把这几个东西我觉得还是要改一下。 - -**[00:34:03] 发言人 6**:二过者企业企教一政。 - -**[00:34:05] 发言人 0**:一该教育放在第二个。 - -**[00:34:07] 发言人 6**:而且企业本身觉得投质化就少,它也有很多。 - -**[00:34:10] 发言人 6**:避免不了的一些小定知识。 - -**[00:34:12] 发言人 6**:有的你教育如。 - -**[00:34:13] 发言人 0**:果是说表明我们加强下来了,跟研发你那研发一起开个会,就针对vdi这个情况,面对现在的情况,面对我们市场的情况,包括今年上半年下来,我们企业第一教育第二,医疗第三政府第四企教医政整个整个逻辑。 - -**[00:34:30] 发言人 0**:有些东西我们怎么能跟进呢? - -**[00:34:32] 发言人 0**:怎么能拿出一些我们的一些亮点呢? - -**[00:34:35] 发言人 0**:或者我们收敛以后主动的推广一两个亮点的,策略性的去攻打这个市场,我觉得还是要去弄。 - -**[00:34:44] 发言人 6**:他们说的应该是送钱和餐品的事情,就是通过。 - -**[00:34:50] 发言人 3**:没有教是我们分析数据,你在同步的研发教教育教育那套软件是独一。 - -**[00:34:56] 发言人 3**:你看我们卖的莱德史斯莱史为什么叫莱史维斯? - -**[00:35:02] 发言人 3**:就是他在传统的的上面上面的一个电子软件。 - -**[00:35:08] 发言人 3**:张贝所反映的所有的东西都是奥的电子软件的便利性和功性。 - -**[00:35:16] 发言人 3**:对,但是这一块说实话每个厂家有不同的策略,比如说政府他压根就不做,他跟我们现在我们的ui采用的策略是一致的。 - -**[00:35:29] 发言人 3**:电子教授软件5603方的,我们不做这个东西,因为这个东西太专业了,然后业界基本上像我们这样做的就是奥运合作网站那。 - -**[00:35:40] 发言人 6**:类次就是教育又是我们第大第二大,我们教育又是我们这么半年统计的第二大额度的行业,我是不是要继续跑教育。 - -**[00:35:50] 发言人 6**:遇到下面的竞争对手。 - -**[00:35:52] 发言人 0**:这个下边可以要你要平难一点,我际你就是以后学校,你周一每周会里面单独一个长景化专场。 - -**[00:36:00] 发言人 0**:他分他讲这周讲教育,下面讲企业,下面就不是,这叫循环,单独一个场景化增长。 - -**[00:36:06] 发言人 0**:好好吧,就放在里面去讲,我。 - -**[00:36:15] 发言人 2**:环就深入证身份榜。 - -**[00:36:29] 发言人 3**:比如说但是电子教室最好的就是几具了,都用几句了,好吧。 - -**[00:36:33] 发言人 3**:知道,所以就是你要选一个,但是这个就是你要去那吸盘,让他也去愿意在你的平台得做一些特色、差异或者是份没。 - -**[00:36:44] 发言人 6**:你说是产品反说你什么意思,跟别人绑的。 - -**[00:36:48] 发言人 3**:不是说不光是绑的问题,其实我们这一样,对新华他自己的这个也一样。 - -**[00:36:54] 发言人 3**:因为你桌面的开发工作牵头关系特别多,你的资源倾向给谁。 - -**[00:36:59] 发言人 0**:倾向到哪块,都要整体的看,就是每周每周的例会里念,或者是教育上,或者是展览循环好吧,你们自己做一个规,每周他们人要上专场,专场给他们时间让专场来来发问好吧,专场来解答。 - -**[00:37:16] 发言人 0**:记下会议纪要,还要记下这个,也上音频记会议纪要。 - -**[00:37:21] 发言人 0**:然后资资这两个事情。 - -**[00:37:25] 发言人 0**:资料响应更新和培训赋能体系,俊姐你说说。 - -**[00:37:31] 发言人 3**:资料倒是输出的很频繁的。 - -**[00:37:34] 发言人 3**:我现在最怕一个什么呢? - -**[00:37:36] 发言人 3**:因为以万贷的公司都是这样一个情况,就咱们的销售在前面叫没资料,但是实际上后端的资料更新了一大堆,一看也不看。 - -**[00:37:46] 发言人 0**:对,那怎么弄呢? - -**[00:37:48] 发言人 0**:这个事怎么办呢? - -**[00:37:49] 发言人 3**:那我们更新的资料一一也在群里吼了,二微盘里面也放了微盘。 - -**[00:37:55] 发言人 0**:还给大家建了。 - -**[00:37:56] 发言人 0**:我就说一个,你看我觉得这都有办法。 - -**[00:38:01] 发言人 0**:你看我们那个数字人是数字人那个日志里面有几个你看完了那个你点了,你把它弄了,你发过来是停留了多少秒? - -**[00:38:11] 发言人 0**:如果他都没看,他还敢说你更不更新。 - -**[00:38:14] 发言人 6**:不但是他这里面还有一层意思,你看人家政策解读我们没人做过。 - -**[00:38:20] 发言人 0**:我一个一个来先把这个事第一个测料是你,既然是你说了,你就更新了,他们说你更新慢了。 - -**[00:38:28] 发言人 0**:好,你这样反正我有A这个东西,我总结一个很快,你就弄出去,谁看了这样这很容易一放谁看了? - -**[00:38:36] 发言人 0**:看了几秒浏览一下,最后作弊都得把它放到旁边,先放那个那个那个那那个十分钟。 - -**[00:38:43] 发言人 0**:完了以后你如果觉得有必要,那我们开会我们抽查。 - -**[00:38:48] 发言人 0**:我我我觉得这是来自两面性的,我觉得这个有这个要求特别好,就是资料更新响应更新慢说明什么呢? - -**[00:38:58] 发言人 0**:说明我们前方的动作快快过我们产品经理的动作。 - -**[00:39:02] 发言人 0**:但如果说我们产品经的动作快过前方动作,那就不麻烦。 - -**[00:39:06] 发言人 0**:那那你就那那那那你就咱们咱们就咱们就这个什么意见了,拉扯一下。 - -**[00:39:13] 发言人 3**:去年年底的时候,一比他做过这个资料更新,因为主要公司在一民那儿,他他输出比较多一点,他可能一个人占了一半的资料输出以上,总共去年大的资料都更新了,差不多接将近100份。 - -**[00:39:28] 发言人 3**:然后零零零碎碎的资料也好几十份,可这个量已经非常大了。 - -**[00:39:33] 发言人 3**:说实话就这些能力资料更新确实是跟上了的。 - -**[00:39:37] 发言人 0**:希望产品的输出标准化解决方案,我操这边要差异化,这边差异化少了,就是标准化觉得都有高化,觉得这个事是这样,我觉得其实更重要的是,我也觉得咱们产品库肯定资料分析的也很快。 - -**[00:39:55] 发言人 0**:但是就像刚才移民发的这个东西,我觉得可能99%的销售并不会把它读完,也不会去认真的就通到事来了。 - -**[00:40:06] 发言人 0**:真正的有用的是,这个事已经来了,别人电话已经打过来了。 - -**[00:40:11] 发言人 0**:我拿着AI对着你这份资。 - -**[00:40:13] 发言人 6**:料下资料跟说我今天。 - -**[00:40:15] 发言人 0**:下午要去和那个谁投标了,你给我赶快总结个12345。 - -**[00:40:19] 发言人 0**:这个我觉得可能才是销售想要就使用场品。 - -**[00:40:23] 发言人 0**:对,就是最快速度的获取。 - -**[00:40:25] 发言人 0**:我们这个里头把它拿取支识,我觉得就是海底知识库这个事,把它怎么来,就是拿能达到他妈的我们一销售出去说下午我就见谁,你把我们的资料整合一下,然后给我说个1231个1页纸,马上给你扔个一页纸出来。 - -**[00:40:43] 发言人 0**:你觉得不满意,再把公对你说不满意,你说那销售说你说的这几点,因为我再给你讲这个客户的背景,这五条不行,他们基本上都没问题,你再在乎别五条。 - -**[00:40:57] 发言人 2**:之前不是那个东西装好,你把这接着是就完了。 - -**[00:41:02] 发言人 2**:对我觉得你们先不用。 - -**[00:41:04] 发言人 0**:搭那么复杂,因为现在有算力,先咱们手动挡的跑起来试试,好了以后我们再说怎么来妈的怎么来把它组装成自动挡。 - -**[00:41:17] 发言人 3**:但是还是平时要看你,你不能去了马上输出。 - -**[00:41:22] 发言人 3**:平时一是输出的东西,输出东西不是那么清楚的。 - -**[00:41:26] 发言人 3**:二就是即使输出来了,你平时一点点看你根本就讲不清楚,还是讲不。 - -**[00:41:32] 发言人 6**:清楚平时看和讲的问题。 - -**[00:41:34] 发言人 6**:其实你经在会上随时举出要哪个人讲一遍什么东西来这些东西我们来抽查的方式。 - -**[00:41:42] 发言人 6**:这个也一样的,不用你姜总说的话,我很早之前就说过,你发资料,他就即使他下载下来了,你没有项目需求,他不会看的。 - -**[00:41:53] 发言人 6**:他不是这样吗? - -**[00:41:54] 发言人 6**:他宁可去喝个茶聊不题,他总会在那坐着跟他还没有项目空间的项目上去看这资料。 - -**[00:42:00] 发言人 6**:但是江总如我要说,你如果把知识库建起来,快速问答,让一二三组去应对经营项目,建着那个客户的竞争对手商议,那他就有兴趣了。 - -**[00:42:14] 发言人 6**:顺便不行,像aop那样,你把原档链接再给他们链。 - -**[00:42:18] 发言人 0**:接后所这个培训的培训赋能,又说培训能。 - -**[00:42:31] 发言人 3**:但是作为常态化。 - -**[00:42:33] 发言人 0**:讲常态化一个第一是常态化,每周政标一起是吧? - -**[00:42:37] 发言人 0**:常态化这是一个。 - -**[00:42:39] 发言人 0**:第二就是这个呃招投标实战技巧及专业化术不作。 - -**[00:42:44] 发言人 0**:我上次给你提了一个要求。 - -**[00:42:47] 发言人 6**:我们把那个专区数据批了四个四是一个是话术,一个是阿法,一个是页,一个是每个人个性化的ppt我们ppt和一页新哥盛刚和陈一明以及王梦杰都改完了,都已经发进去了。 - -**[00:43:01] 发言人 6**:然后话术也做了一张图,然后三份文件已经共享到里边。 - -**[00:43:06] 发言人 6**:还有最后一。 - -**[00:43:07] 发言人 0**:个就是共享给大家,有没有。 - -**[00:43:09] 发言人 6**:在我们的群里面都我直接共享到群里了。 - -**[00:43:13] 发言人 0**:你下来好,我看看有没有让大家叫什么说着你下来发给我好吧,你们几个发过。 - -**[00:43:20] 发言人 6**:我再看一下,我们四个人过了,我俊杰也看了。 - -**[00:43:25] 发言人 3**:资料群。 - -**[00:43:25] 发言人 3**:对,觉得是那三聊面,我让时改了一下。 - -**[00:43:29] 发言人 6**:口照改。 - -**[00:43:30] 发言人 0**:最后改完了,我营业执话术是吧? - -**[00:43:33] 发言人 0**:还有宣讲ppt个性。 - -**[00:43:35] 发言人 6**:化的去宣讲ppt就是每个人要有自己的一。 - -**[00:43:41] 发言人 3**:因为这个文档确。 - -**[00:43:43] 发言人 0**:实咱们整理的一个文档。 - -**[00:43:44] 发言人 3**:我觉销售他你们的文档。 - -**[00:43:46] 发言人 0**:你在我文档不是看到到。 - -**[00:43:50] 发言人 0**:就是这样的,张妹美我觉得你你你说这个肯定是有比较,你要不要都是AI给你写的? - -**[00:43:57] 发言人 0**:如果不是给A给你写的,你自己写的肯定有比较。 - -**[00:44:01] 发言人 0**:你要有比较的话,那你比较是跟谁比较,你觉得少了点多了点呢? - -**[00:44:06] 发言人 0**:这是一个是吧? - -**[00:44:07] 发言人 0**:第二个就是我觉得还是要针对具体的某一个事,你想了解的某个事儿,我就说具体一点,你这个太泛了以后,很难的去去我们去去做一些这个动作。 - -**[00:44:21] 发言人 0**:王总真的你要说。 - -**[00:44:23] 发言人 4**:具体的东西。 - -**[00:44:24] 发言人 0**:你说我有些东西我就是不太懂,但是我也找不到学习的办法? - -**[00:44:29] 发言人 0**:我能不能提出要求? - -**[00:44:32] 发言人 0**:我你比要培训,我现在可以马上安排我们所有人给你做个点到点的培训。 - -**[00:44:38] 发言人 0**:你有时间没有,给你做点到点的一个一个给你培训。 - -**[00:44:45] 发言人 4**:其实我们这个是有的,一鸣我们之前开会的时候,一鸣经常给我们做一定的培训。 - -**[00:44:51] 发言人 4**:我是想着比方说产品的一些功能培训一次有可能自学或者怎么样,后边容易遗忘。 - -**[00:44:59] 发言人 4**:然后包括国产化,比方说现在有什么政策,我们也第一时间也能了解一些。 - -**[00:45:06] 发言人 0**:不,这是两个东西。 - -**[00:45:07] 发言人 0**:如果产品功能其实给你培训完了,然后给你个资料,你能索取能得到就完了。 - -**[00:45:13] 发言人 0**:如果国产化政策的有可能实有实时有实事的东西是吧? - -**[00:45:17] 发言人 0**:它有时候实时性比较强,突然冒出个什么东西来,我觉得我觉得这个哈刘记俊姐,你们可能也注意,这个就跟生命防火一样。 - -**[00:45:28] 发言人 0**:你看紫薇总他们说,今年有这里有钱,教育有个什么东西,医疗有个什么东西。 - -**[00:45:33] 发言人 0**:我觉得包括跟我们销售一起沟通,能拿到这个信息是吧? - -**[00:45:38] 发言人 0**:或者说是大家觉得这下一步应该走什么? - -**[00:45:42] 发言人 0**:我觉得这块儿上,我们包括企业分那么多,哪个企业叫能源的那么多,哪个能源是现在的重点。 - -**[00:45:48] 发言人 0**:我觉得你们得有些那个得。 - -**[00:45:50] 发言人 6**:有些正确性,应该是从总部角度看全行业些什么时间来了,什么一个新的商机,拿医院的两个超长期贷款,低息贷款这种出来了。 - -**[00:46:01] 发言人 0**:那就可以解决我你这就是这就是所以说这就是我业提的要求,一天农场一天菜市场,就只能天天看才能知道。 - -**[00:46:11] 发言人 0**:而且你们可以做一个AI给你扒互网,你说AI让云桌面这个AI云桌面的所有信息,你每周给我汇一次,总哪些人中标了,有些什么信息,有些什么新闻,我觉得可以扒我下来。 - -**[00:46:25] 发言人 0**:我操,我把这事也交交到我交到我那个什A信要跟他说一下,叫他8。 - -**[00:46:45] 发言人 0**:只要你记下来招投标实战技巧及行业沟通话术,我觉得还是你说有没有提高,还是那杨坤荣为什么那么远就能弄到,让杨坤荣讲一讲。 - -**[00:46:56] 发言人 0**:还有参加招投标的,你就说你们整个谁在参加招投标比较多的,咱们整合整培养培训一下再讲一讲。 - -**[00:47:09] 发言人 0**:还我我觉得最核心的还是要高频是吧? - -**[00:47:14] 发言人 0**:如果想把这是杠好,就是所有的动作都要稍微快一点,这种高频那自然它就会反复反复就会好是吧? - -**[00:47:25] 发言人 0**:如果太少肯定不行,还是强化每周的那个每周的你们的会。 - -**[00:47:30] 发言人 0**:而且每周的会我觉得有必要的话,你们其实可以拉长一点,放在这个更长一点。 - -**[00:47:37] 发言人 6**:这2个小时到两个半。 - -**[00:47:39] 发言人 0**:拉长。 - -**[00:47:40] 发言人 1**:一点。 - -**[00:47:50] 发言人 0**:好吧,我只能说那么多,因为每周也在开会,你们最好是说具体的。 - -**[00:47:55] 发言人 0**:因为你你写的这个东西,我怎么说呢? - -**[00:47:58] 发言人 0**:我觉得就基本上就你这一页纸,你抛掉云桌面,你抛掉云桌面三个字,你拿到新华三的会上,我跟你说一模一样,对不对? - -**[00:48:07] 发言人 0**:你本身这里面也没有云桌面三个字,你到新华三的服务器上你就这么说,你看看那新华三肯定也是这样的,你拿到是音服,你拿到华为,你拿到华为可能也是这样。 - -**[00:48:20] 发言人 0**:张妹,你这一页纸是普世的,你知道吧,你连一那仨字都没有。 - -**[00:48:29] 发言人 0**:这叫什么样。 - -**[00:48:32] 发言人 1**:的证确。 - -**[00:48:35] 发言人 0**:正确而又空洞。 - -**[00:48:40] 发言人 0**:张,你听懂没有? - -**[00:48:41] 发言人 0**:听懂了,听懂,我觉得以后一定刚才就跟那个谁一样,你以后一定要落到点上去,你要落到点上去,你问那就那个事,那那这个项目那个项目你说说以项目为案例。 - -**[00:48:54] 发言人 4**:好吧? - -**[00:48:55] 发言人 4**:好的。 - -**[00:48:55] 发言人 0**:要不你这个就是伪光正,你这些胶片真的伪光正,每次都可以把这些胶片放上去,而且可以放在任何一个公司。 - -**[00:49:06] 发言人 0**:你刚好你的上面舆乐面杀没有存在,我剪下来没有云动面杀。 - -**[00:49:09] 发言人 0**:你看放在华三的生意,华三代表处里面,我那一签够不够也可以。 - -**[00:49:19] 发言人 0**:是不是,你说是超融和你说是华三超融和会上的一页胶片,一点都不违和。 - -**[00:49:32] 发言人 0**:是不是张贝妹,是不是张贝? - -**[00:49:35] 发言人 0**:是彭总,那你这写的你还挺可爱。 - -**[00:49:38] 发言人 0**:我说我认真看了看,确实舆论面没有舆论面的仨字。 - -**[00:49:44] 发言人 0**:不是豆包给你写的。 - -**[00:49:46] 发言人 4**:这都是我自己写的。 - -**[00:49:48] 发言人 4**:你看这个国产化,昨天刚跟徐勇总汇报过,然后你还没说到,这都是我实际情况。 - -**[00:49:57] 发言人 0**:以后在在交流的时候要具体案例,咱们说具体案例好吧? - -**[00:50:02] 发言人 0**:好,但肯定有这毛病。 - -**[00:50:04] 发言人 0**:你一说其实我说实话真的你一说我心里都紧张。 - -**[00:50:07] 发言人 0**:我就想起中医,你你你比方说你这个打喷嚏了,中医说你头疼不? - -**[00:50:12] 发言人 0**:腰疼不? - -**[00:50:13] 发言人 0**:颈椎疼不? - -**[00:50:14] 发言人 0**:我就是颈椎点疼,我坐多了,那头疼不? - -**[00:50:17] 发言人 0**:你看我一说你仨病,你看都有你跟你说的一样,我操你放在哪儿? - -**[00:50:23] 发言人 0**:普氏都有这病,对吧? - -**[00:50:24] 发言人 0**:所以所有公司的所有产品都有同质竞争激烈。 - -**[00:50:28] 发言人 0**:除了马斯克,space x我操那一般的产品都有,除了苹果,一般产品都有次要响应,都有培训,能好吧? - -**[00:50:37] 发言人 0**:好好。 - -**[00:50:38] 发言人 4**:好。 - -**[00:50:39] 发言人 0**:下一个。 - -**[00:50:44] 发言人 0**:像一个。 - -**[00:50:45] 发言人 2**:院内。 - -**[00:50:48] 发言人 0**:那中医就是中医一般猜你有没有什么毛病,一生我困我睡不醒,中医随便给你说三你你怎么说那么准,就跟他一样,你培训不到位,你同志话精神太多,你这个什么一样。 - -**[00:51:02] 发言人 0**:这来。 - -**[00:51:04] 发言人 1**:彭总、陈总。 - -**[00:51:06] 发言人 7**:各位领导和同事,大家下午我是山东院磊,我这也刚才也了好的种,要从面个我在的工作问题的个梳理存在问题。 - -**[00:51:30] 发言人 7**:另一段我想去求的一些职位,再加上我下半年的一些工作的重点。 - -**[00:51:37] 发言人 7**:首先汇报一下。 - -**[00:51:38] 发言人 0**:一定要说具体的,因为刚才还说了这事了,一定要说具体的案例。 - -**[00:51:44] 发言人 0**:你这。 - -**[00:51:46] 发言人 7**:明白,因为我看了,我这听了这么长时间,我这P T一直在删,一直在删,好多还没删完。 - -**[00:51:54] 发言人 7**:因为刚才好多同事都讲过了一些东西。 - -**[00:51:59] 发言人 7**:我这一个还是第一个就是我的对于渠道和商机的拓展的精度还是不够强,针对性不强,也找不到核心的渠道。 - -**[00:52:13] 发言人 7**:你比方说你像深圳服务,他们会有自己在当地的一些核心的渠道来共同去推他们的东西。 - -**[00:52:21] 发言人 7**:不然后华三或者说我们在跟华三体系一块合作,就是我也一直找不到这么一个核心的渠道。 - -**[00:52:30] 发言人 7**:也可能是之前有可能就是第二个问题了,之前遗留的那个口碑问题。 - -**[00:52:37] 发言人 7**:因为新华三的售后想要在现场解决问题或者什么的,反正山东代表说是非常难的。 - -**[00:52:46] 发言人 7**:再。 - -**[00:52:50] 发言人 0**:喂你往上翻,我想想,我上一页上,上一页,下一个就。 - -**[00:52:56] 发言人 7**:是我上一页。 - -**[00:52:57] 发言人 0**:我看看上一页是你,你说我上上一页我没看清楚,我再看看。 - -**[00:53:11] 发言人 0**:这个分享你没有会都能分享,这个项目影响怎么去解决? - -**[00:53:18] 发言人 0**:这个针对性不强这个事儿,我们现在就是在要拓展就是要解决这个问题。 - -**[00:53:26] 发言人 0**:其实我们找这个包括你过来,我们也希望利用你原来的经验,大家共同来找到这个。 - -**[00:53:35] 发言人 0**:就怎么怎么能找到我们的渠道,找到合渠道,能让他挣到钱,然后咱们一起把我们的能力也赋予给他。 - -**[00:53:45] 发言人 0**:怎么能找到可以渠道。 - -**[00:53:50] 发言人 0**:我觉得其实说到底还是这个叫什么,还是一个东西。 - -**[00:53:54] 发言人 0**:你的东西好卖或者相对好卖,这是第一个。 - -**[00:53:58] 发言人 0**:但是好卖不见得就是你那个是就是什么呢? - -**[00:54:02] 发言人 0**:是这个叫叫什么呢? - -**[00:54:03] 发言人 0**:你性价比可以,或者说你那个中间价差也有一个相对好卖。 - -**[00:54:08] 发言人 0**:二一个就是跟你沟通的诚信是吧,你这个跟你沟通就是比较顺畅。 - -**[00:54:14] 发言人 0**:那原来的海康的大华互相的渠道挑的也挺多的,其实也有这个问题,就是大家走着走着,他妈的两个单子坐下来,不信任了,不信任了,海康去大华了,大华就海坑了是吧? - -**[00:54:28] 发言人 0**:包括华为当时去的时候,也有一帮海康的,企业板正都去了华为了,做了个好望,结果做了最后又不信任了,又回来了。 - -**[00:54:37] 发言人 0**:我觉得这个渠道其实就是这个叫慢慢的能能杨坤荣做的那个事儿,我觉得还是很有价值的,是吧? - -**[00:54:46] 发言人 0**:人家都没去,你在空中,我都跟跟人家跟人家新疆天远地远的,是吧? - -**[00:54:53] 发言人 0**:你也把生意做成了,而且做成了那边是真有信趣,有了这类似项目来找他是吧? - -**[00:54:59] 发言人 0**:我觉得这种的话,其实就是我们和渠道之间的一种,就是我们帮着渠道想解决了两个问题,共同的在这个事上,就渠道觉得你的就不只是你的产品能力强,关键是你的销售,你的整个服务能力强是吧? - -**[00:55:19] 发言人 0**:你现在很多产品,他可能说这个产品这个产品一般,但是服务能力超强是吧? - -**[00:55:25] 发言人 0**:但是产品的硬件,那跟我说的硬件硬堆出来的,你说性能,也挺好啊。 - -**[00:55:30] 发言人 0**:那天刘迪跟我说,硬件堆出来能力强,但是服务能力不行,堆的能力强,但是服务能力不行。 - -**[00:55:37] 发言人 0**:所以我觉得其实这个服务能力,就整体的售前服务能力,还是需要我们去一点一点的去去形成自己。 - -**[00:55:44] 发言人 0**:你包括你院里,你在山东,你得形成品牌价值,那形成自己的一定的品牌价值。 - -**[00:55:50] 发言人 7**:这样的领导我觉得反而输钱这方面问题并没有什么问题。 - -**[00:55:56] 发言人 7**:主要是我们的售后解决问题的能力,当然不是说我们因为我我以前这个本来了也就刚一个月多一点,然后也有三年没有没没有进这个行业了,但一直做成。 - -**[00:56:13] 发言人 7**:虽然说你像我这个周一周二是在青岛有两个非常强的,其实做项目做面项目的渠道,但是说之前就是被销售新上新在哪? - -**[00:56:26] 发言人 7**:第一你跟新华三合作,你是不可能你作为新华三的渠道,而且体系内部渠道你不可能挣着便。 - -**[00:56:33] 发言人 7**:第二点就是服务的问题,以后你自己想办法解决,现在就是有一些就解决不了,最近就是比较典型的案例就是,环翠法院和这个市光法院,原来一直没解决,没解决,现在,就是人家换了一套自己的环安系统,换了一套系统,把什么操作系统也换了,然后问题自然而然能解决了。 - -**[00:56:56] 发言人 7**:现在说可验收了,验收了让我帮忙准备了资料。 - -**[00:57:00] 发言人 7**:那这个项目四年了,就是说他们的金牌还没有验收。 - -**[00:57:04] 发言人 7**:也就说。 - -**[00:57:05] 发言人 0**:你说的这个是不是说要像我说的那个事。 - -**[00:57:11] 发言人 7**:不是他说的那个临沂城市职业学院那一个。 - -**[00:57:15] 发言人 7**:他问题尤为明显的是什么呢? - -**[00:57:17] 发言人 7**:就是咱们华山,咱们已经把客户给强奸了,就是说你问题不解决,你也得用我的。 - -**[00:57:25] 发言人 7**:他后边还有酒店要匙六百多个店,他还只能用三的在下边,其实我我我就不按照照面讲了,在下边我分享了一个还有青岛海洋电子,原来是云哥的省脉,他们库存了有现在原来是普通五百多点,现在还有三百多点。 - -**[00:57:44] 发言人 7**:他们就做了一个婺源半导体的一个项目。 - -**[00:57:47] 发言人 7**:因为光耀也是刚刚下单,又出了100个终端。 - -**[00:57:51] 发言人 7**:那他的软件没有走,咱技术知识服务也没有买。 - -**[00:57:54] 发言人 7**:现在项目实施就有点一地鸡毛的感觉。 - -**[00:57:58] 发言人 7**:那客户逮着华山的销售就一顿骂骂完了以后,华山销售就把我当一个封面情垃圾桶在倾蟹给我。 - -**[00:58:07] 发言人 7**:当然我也不会生气,那个生请没有用,解决不了问题。 - -**[00:58:11] 发言人 7**:我跟海洋电子沟通的结果就是我说你买上1年到3年的技术支持服务,我说我看看我们能不能给你解决。 - -**[00:58:20] 发言人 7**:那海洋电子也接受这个方案,但具体的就是还有的情况就是海洋电子能接受,其他人能不能接受这个方案,让他们花个2万、3万、5万,我们来给你解决问题。 - -**[00:58:34] 发言人 7**:有一些这种事其实是比较难解决的。 - -**[00:58:38] 发言人 0**:你具体的事升级,我们单独聊。 - -**[00:58:41] 发言人 0**:你如果觉得这个有问题,你叫去就叫我们单独聊。 - -**[00:58:46] 发言人 7**:行,然后再就是好多同事说了,这个公司级这个知识库或者中家实践库等等。 - -**[00:58:52] 发言人 7**:我看了这个企业微信上的这个微盘,我也经常在用,就是说走起来的话还是比较的费劲,找起来还是比较的费劲。 - -**[00:59:02] 发言人 0**:这个可能跟不太解决好吧。 - -**[00:59:04] 发言人 0**:你说的这个问题,我们把大模型我们模型引进来,我们把就把解决。 - -**[00:59:10] 发言人 7**:对对对,另外一个还是要适当的投入。 - -**[00:59:13] 发言人 7**:你像那个我前一段时间其实个早会的时候说过,小刚总也做了回复。 - -**[00:59:19] 发言人 7**:就是说现在你像这个,其实我们主要的竞争对手并不是奥义,天荣信这些品牌,我们在大面上的竞争对手其实还是瑞杰和申运福。 - -**[00:59:31] 发言人 7**:他们写一个就是内核,七麟内核一向就把我们给屏蔽掉。 - -**[00:59:36] 发言人 7**:因为怎么说呢? - -**[00:59:37] 发言人 7**:确实是也是咱这个俊杰总他们也说,我们的克勤国安详不强,客联关系不强是多方面造成的。 - -**[00:59:47] 发言人 7**:第一个就是新华三已经把这事儿扔下两三年了,特别是新华三的销售,山东这边尤为突出,就是你医疗行业整个整治医疗连一个商机也没有。 - -**[01:00:01] 发言人 7**:但是说你只要分天糊和瑞杰,把这四个字一写进去,我们就不用投标了,当然了,你要在中职高职遇到这个奥义,如果说是大家做的这个客情关系差不多也就不用竞争了。 - -**[01:00:17] 发言人 7**:其实我们跟他的竞争不是技术参数的竞争和应用的竞争,是商务成本的竞争。 - -**[01:00:24] 发言人 7**:刚才我说这个物元半导体我也汇报过了。 - -**[01:00:30] 发言人 7**:其实这个包括昨天在潍坊沟通那个那个终端定制终端的事儿的时候,然后华山的销售说了一个问题,就是了我们潍坊新校这个事儿,那个啥盛老总应该有印象,就是那个华山的销售还投诉过我,所以说不给他解决问题。 - -**[01:00:50] 发言人 7**:那确实航外的技术就是解决不了,但是我们要做的这个山东华云,他们的技术给他解决了这个有可能就是人家确实有一些新的东西。 - -**[01:01:01] 发言人 7**:为什么我这两天积极的推进跟华云的合作呢? - -**[01:01:05] 发言人 7**:就是说我们是不是可以让他的技术也给我们来对接,对接的他们是到底是怎么解决的,而且是他们能力也非常强。 - -**[01:01:15] 发言人 7**:破解了一套云桌面,破解了一套超融盒,拿着免费的东西挣钱。 - -**[01:01:23] 发言人 7**:然后向我汇报一下我那个整整体的这个区域的一个情况。 - -**[01:01:28] 发言人 8**:我想问一下,你说的他们破解了一套云桌。 - -**[01:01:31] 发言人 7**:面是个什么概念? - -**[01:01:32] 发言人 7**:他们就是现在有自己的云桌面软件,我问他们是怎么弄,他们说破解了。 - -**[01:01:38] 发言人 1**:不知道是破解了谁家了。 - -**[01:01:42] 发言人 7**:华。 - -**[01:01:58] 发言人 8**:智。 - -**[01:02:13] 发言人 5**:技术开发能力很强。 - -**[01:02:15] 发言人 0**:全站开发都有什么叫破套还是软件。 - -**[01:02:19] 发言人 7**:他们很厉害。 - -**[01:02:20] 发言人 7**:我就包括我们以前卖给他的华智的东西,他们也是自己能修。 - -**[01:02:26] 发言人 6**:我就开不知道爬去。 - -**[01:02:27] 发言人 6**:原代。 - -**[01:02:28] 发言人 0**:他可以说服务器和那个解耦。 - -**[01:02:31] 发言人 6**:他结耦一些东西,他现在就是卖终端技术。 - -**[01:02:36] 发言人 7**:对他这次我。 - -**[01:02:41] 发言人 0**:们的求和是。 - -**[01:02:47] 发言人 6**:的软件。 - -**[01:02:50] 发言人 0**:商户外科通什么什么,他这种破解我觉得只有可。 - -**[01:02:55] 发言人 2**:能就是拿别人的那个整个拿别人的。 - -**[01:03:10] 发言人 2**:他他破解。 - -**[01:03:11] 发言人 0**:自己用自卖能卖他们这个源。 - -**[01:03:16] 发言人 3**:半导体就是他他做的项目是吧? - -**[01:03:22] 发言人 7**:他卖半。 - -**[01:03:23] 发言人 3**:导体就是这个华做的。 - -**[01:03:28] 发言人 7**:项。 - -**[01:03:29] 发言人 3**:目吗? - -**[01:03:30] 发言人 3**:对,那那那我们那我们。 - -**[01:03:34] 发言人 7**:卖终端要给他解。 - -**[01:03:38] 发言人 0**:决什么问题,他就软件一目来研究了,再分析。 - -**[01:03:50] 发言人 7**:行,因为他终端也会打他自己的logo,开机也是要求咱们直接开机,就是山东黄云也不。 - -**[01:03:59] 发言人 8**:能是咱们那个。 - -**[01:04:00] 发言人 8**:他这个项目跟其实跟我们就没关系了。 - -**[01:04:04] 发言人 3**:我们只是纯卖终端硬件,但但是但是要得你在群里问我,人家要我们的原厂型号,我很担心他跳舞,我们直接去找供商去。 - -**[01:04:19] 发言人 0**:他也不买你的是吧? - -**[01:04:20] 发言人 6**:对,担心不买我们这。 - -**[01:04:22] 发言人 0**:个他我因。 - -**[01:04:23] 发言人 3**:为他说他要去派森,派森他问我们现在有商供应商型号是什么? - -**[01:04:27] 发言人 3**:我很担心,他就搜一些信息。 - -**[01:04:29] 发言人 0**:没有派找到。 - -**[01:04:30] 发言人 0**:关键是他软件,他怎么他就自己用软件的,他用的是我们的软件。 - -**[01:04:35] 发言人 8**:是不是我们的软件,他就是从别的哪儿破解了一套软件,然后他就能够代码级的进行修改了。 - -**[01:04:45] 发言人 6**:然后就可以去卖别的。 - -**[01:04:47] 发言人 6**:你去看一。 - -**[01:04:49] 发言人 3**:对的,你你你能找到什么软件,像他这样干的,他的代码过去就。 - -**[01:04:57] 发言人 0**:不是那个软件拿过来,你光把软件读完,你不道图多少钱况。 - -**[01:05:05] 发言人 0**:来给你涂是吧。 - -**[01:05:07] 发言人 3**:你自己涂起来你多难。 - -**[01:05:09] 发言人 3**:他不会解释他这里运整云桌面是一个大体系,它不是说哪一小块是吧? - -**[01:05:18] 发言人 3**:对的,那刚刚院磊说把什么开始因store. - -**[01:05:23] 发言人 0**:全破解了,这。 - -**[01:05:25] 发言人 7**:他不所说,就是超融合的一套系统,不一定是破解了咱华三的。 - -**[01:05:30] 发言人 7**:他不会,他不告诉我们破解。 - -**[01:05:33] 发言人 0**:超融合他他他找谁要了一套超融合系统,自己在外面买了一套超融合系统。 - -**[01:05:39] 发言人 7**:以前肯定是买过,但这个具体的我觉得我和光耀,下次你要了解光耀。 - -**[01:05:45] 发言人 0**:你光耀这样针对这个事,你跟光耀到时候再看一看。 - -**[01:05:49] 发言人 3**:单独给我们个东西好吧? - -**[01:05:52] 发言人 3**:如果能到现场能能拍点照片。 - -**[01:05:54] 发言人 0**:最好我们要学习一下,好吧? - -**[01:05:58] 发言人 7**:明白,然后我这边现在进行了一个梳理。 - -**[01:06:05] 发言人 7**:这商机确实有的时候这个新华三报上来的也不少,但是说现在靠谱的也就是有九个左右,那个服装机暂时还没有靠谱的,也是主要在第四的企业和医疗渠道在做一定的宣传。 - -**[01:06:23] 发言人 7**:区域的规划就是山东这边我最近想了几个事,在跟省去提提要求。 - -**[01:06:30] 发言人 7**:第不能只做这个测试和测试的支持,因为现在这个省代的测试机已经就是我在的时候,因为三年了,我我我不负责这个事,在横迈三年了。 - -**[01:06:43] 发言人 7**:然后是我那时候的5台测试机,现在是因为内存涨价的时候,他们把配件都卖了。 - -**[01:06:50] 发言人 7**:然后现在我们有几个项目在测试,就是全是华算的销售在刷脸,找各个爱奇艺的金牌去接,然后天津市场会好一点。 - -**[01:07:00] 发言人 7**:因为天津市场有个他就是以省内身份去的,而且是他也接不了其他行业的货单。 - -**[01:07:07] 发言人 7**:所以说旅行州那边就主要就是长融和和云端面的一个过单和配合。 - -**[01:07:13] 发言人 7**:所以说电钉市场应该是省内的配合会比较紧密。 - -**[01:07:19] 发言人 7**:包括这个显卡我本来想让博麦帮我买一条,结果李行说他已经买了一个了L 20。 - -**[01:07:26] 发言人 1**:工作的重心还。 - -**[01:07:28] 发言人 7**:是根据孟洁发了一块,历史中标驱动渠道,再去跑一跑,看看谁还有激情。 - -**[01:07:36] 发言人 7**:然后再就是历史的重标客户,区域区县主要就是青岛、烟台和天津。 - -**[01:07:43] 发言人 7**:因为经济发展,它的地区它有钱人家有思路。 - -**[01:07:48] 发言人 7**:然后下半年重点的行业其实就是企业和教育。 - -**[01:07:52] 发言人 7**:在企业其实经营的好的企业就是在这个研发和设计上还是刚需。 - -**[01:07:59] 发言人 7**:他们不会考虑成本的问题,首先不会考虑要做这个低成本的工作,站2万块钱以内我要搞定他们,还是对于这个安全的要求还是比较高。 - -**[01:08:13] 发言人 7**:上个月我跟光耀一块去交流一个项目,现在面临马上测试。 - -**[01:08:18] 发言人 7**:还有一个就是网上销售,找的都是这个生产制造型的企业,然后高校这边主要还是我这边锚定的,其实是这个私立的大专,就是信息化做的不到位的大专,而且是有钱的,他们会签很多的校企合作的项目。 - -**[01:08:38] 发言人 7**:那郭像上午介绍的这个山东省案,他其实买那一套,第一期买了600个点的,是他们学校自主的,剩下的这些基本上都给了校企合作项目,因为校企合作项目他能去找企业要钱。 - -**[01:08:56] 发言人 1**:我汇报。 - -**[01:08:58] 发言人 7**:完毕,领导。 - -**[01:09:02] 发言人 0**:来了多久了? - -**[01:09:04] 发言人 0**:老三研究玩一个月。 - -**[01:09:13] 发言人 0**:这个涨内存条涨价跟对咱们这个。 - -**[01:09:17] 发言人 7**:影响大吗? - -**[01:09:18] 发言人 7**:非常大。 - -**[01:09:19] 发言人 7**:我在一直跟进的那个68个点,就是上了项目,基本上也要改成工作站。 - -**[01:09:28] 发言人 0**:那这个如为我们如果持续的这样下去,我们应该有什么对策呢? - -**[01:09:34] 发言人 7**:其实没有很好的对手领导,而且是特别刚才咱一直在讲这个v di v包括X那个vdi其实v说白了不是真正意义上的云桌面,你想上云桌面,其实大部分客户还是冲着vdi这个场景去上的,只能是让客户去接受这个价格,那实在是预算包不住了,他们也会想别的办法。 - -**[01:10:01] 发言人 7**:你比方说这个啥这边他刚才跟我昨天交流的思路是,他们会买这个普通的工作站,最普通的那种叫叫英特尔这个I 7的这种dpu的工作站,会加一套向日葵的管理系统。 - -**[01:10:20] 发言人 7**:它就没有他这一套系统,也能做到这个软件等等的批量下发修改等等的。 - -**[01:10:27] 发言人 0**:他就没有必要再去搞搞云桌面。 - -**[01:10:30] 发言人 0**:那你这是v吗. - -**[01:10:32] 发言人 7**:你这是吗? - -**[01:10:33] 发言人 7**:你刚。 - -**[01:10:37] 发言人 0**:才有话般理解。 - -**[01:10:51] 发言人 6**:很。 - -**[01:10:54] 发言人 3**:理解,我作那个加个像果口不是不热。 - -**[01:11:05] 发言人 0**:你不是这样。 - -**[01:11:06] 发言人 0**:我觉得最像的,如果真的要涨机的话,我觉得最像的有两种,一种就是这个还是买D I但是当那个就像之前说的,这个当当先当在用终端上装呗,那电脑上装呗,还是买个V D I或者是有没有服务器更便宜的,或者就或者可能没电的。 - -**[01:11:24] 发言人 0**:这个他是蓝牙,有没有微电,他就必须要买服务器。 - -**[01:11:57] 发言人 7**:我们大家不知道理解不了解不了解上海贝瑞这个公司,他们就是做这一些管理软件的,他就管理pc这些。 - -**[01:12:11] 发言人 7**:向日葵在那。 - -**[01:12:12] 发言人 7**:对对对,一年的费用就3000块钱。 - -**[01:12:18] 发言人 0**:那它这种方式就是一个很低的一个软件方式。 - -**[01:12:22] 发言人 6**:软件有一个小盾插到这个电脑上远程连接的。 - -**[01:12:26] 发言人 3**:这个方式。 - -**[01:12:27] 发言人 3**:但是小但但那是插的东西不用插东西,像目可直接。 - -**[01:12:31] 发言人 6**:我们不就是在拿公安这个项目,可插了个盾上,就被公安。 - -**[01:12:36] 发言人 3**:部就那个后那个那个我说他他后来做了小硬件的东西,他不会上小硬件。 - -**[01:12:42] 发言人 6**:也他也有存染,存转的。 - -**[01:12:44] 发言人 0**:你要在这个服务器上,就有没有现在在服务器测的这个过渡方案比就是让他还是还是要觉得威是的,未来要走的路。 - -**[01:12:55] 发言人 0**:但是现在他先因为服务器不够,姐。 - -**[01:12:59] 发言人 3**:平在小型的代替不了你现在不够。 - -**[01:13:05] 发言人 6**:对工作站之类的东西代理服务器不行。 - -**[01:13:08] 发言人 3**:现在不够,那个工作站不就是低配的工作站。 - -**[01:13:13] 发言人 2**:有,可是你坐船一台工作站,你服务一桌面了。 - -**[01:13:17] 发言人 2**:对。 - -**[01:13:22] 发言人 2**:他不就做那么复杂? - -**[01:13:24] 发言人 0**:我觉得华南为什么不做V我? - -**[01:13:26] 发言人 0**:华南就是觉得也不挣钱,也不是做的,而且太竞争也一般,而且竞竞争竞争。 - -**[01:13:32] 发言人 2**:太多了也没什就大厂,你看那个也。 - -**[01:13:36] 发言人 0**:去做飞天是吧? - -**[01:13:37] 发言人 0**:我觉得做。 - -**[01:13:38] 发言人 2**:的核心是肯定都。 - -**[01:13:41] 发言人 3**:像什么锐捷,但是服器这把就把每个人的这个单点成本d拉的特别高。 - -**[01:13:49] 发言人 0**:就现在服务器涨就让vd就很难。 - -**[01:13:52] 发言人 3**:对,能不能把。 - -**[01:13:54] 发言人 0**:服务器再改造一下呢? - -**[01:13:56] 发言人 0**:有没个都能用什么方式能够pc机方式能够在高端pc装这个东西呢? - -**[01:14:04] 发言人 8**:这肯定做不到的。 - -**[01:14:06] 发言人 8**:你这个本地的小终端的没有这个处理能力,必须是所有处理的能力都在服务器上,你服务器的小型化了以后根本就处理不了的。 - -**[01:14:18] 发言人 0**:他们者低端服务器,有是有没有什么办法有没有什么办法解决? - -**[01:14:23] 发言人 0**:这没那你这个现在推起。 - -**[01:14:26] 发言人 1**:来就是挺难的。 - -**[01:14:32] 发言人 7**:还有一个就是关于X云装,咱们不是能虚这个十台的工作站吗? - -**[01:14:38] 发言人 7**:那个还是这个的那里我跟光耀还有咱这个产品的同事,但是这个身上比较重的,最后我们配起来那个工作站价格比服务器还要高。 - -**[01:14:56] 发言人 0**:所以说但有的。 - -**[01:14:58] 发言人 3**:时候这个方案在普适性上那确实是很难的。 - -**[01:15:06] 发言人 0**:作云。 - -**[01:15:07] 发言人 7**:云的。 - -**[01:15:08] 发言人 6**:服面有个码。 - -**[01:15:10] 发言人 3**:卡显卡。 - -**[01:15:12] 发言人 2**:人家买的工作站。 - -**[01:15:16] 发言人 0**:是因为。 - -**[01:15:17] 发言人 3**:买了一个很端的显卡。 - -**[01:15:22] 发言人 2**:他其实他。 - -**[01:15:25] 发言人 3**:做的是种。 - -**[01:15:27] 发言人 0**:管理。 - -**[01:15:28] 发言人 3**:工作上是这他他支。 - -**[01:15:33] 发言人 0**:持。 - -**[01:15:34] 发言人 3**:这要做消费U作站上做做那个是计的比排做五那边的人。 - -**[01:15:49] 发言人 0**:其实不止一个文店行。 - -**[01:15:52] 发言人 2**:而有很多种方式。 - -**[01:15:54] 发言人 2**:对。 - -**[01:15:55] 发言人 3**:那他为什么不用远程桌面呢? - -**[01:15:59] 发言人 3**:那就这不说了吗? - -**[01:16:01] 发言人 3**:他说刚刚那个项目别的就不用。 - -**[01:16:05] 发言人 0**:这个了,就用远程桌面去了,一件3000块钱,那卖333。 - -**[01:16:12] 发言人 0**:我觉可能你们这个法有问题。 - -**[01:16:17] 发言人 3**:孙服的pc发的那个方案,我们云也做了,但是我感觉很难。 - -**[01:16:23] 发言人 6**:的间变成两台pc的。 - -**[01:16:30] 发言人 0**:价格,他也会掂量我。 - -**[01:16:40] 发言人 6**:钱要这那就。 - -**[01:16:45] 发言人 0**:不。 - -**[01:16:45] 发言人 6**:卖,那就独是可以连到公司。 - -**[01:16:51] 发言人 0**:就是那种比方像什么企业这种,它确实像随机服,包括像长江存储他就觉得我这些东西。 - -**[01:17:00] 发言人 3**:都不能够,他他那个太机密了,说他必须要,他那个是纯钢,还有就是像么那车企,那个马那种马马车企阿赛马就是聚合的。 - -**[01:17:11] 发言人 0**:去忽悠那些客户的信息都不能留。 - -**[01:17:15] 发言人 0**:对,尤一次你必须要那种还是一个是存钢圈。 - -**[01:17:20] 发言人 7**:一个是有钱。 - -**[01:17:21] 发言人 3**:他都有这个刚需了,他一般都有钱这种,但是有像汇智这种。 - -**[01:17:26] 发言人 0**:你的一般正常情况下,你是每月我已经有了个电脑。 - -**[01:17:30] 发言人 0**:对,有了个电脑这种情况不。 - -**[01:17:32] 发言人 3**:你就是没电脑。 - -**[01:17:34] 发言人 3**:你现在我们这批人招进来十个人,那你那评估他们的电脑使用方案的时,你也是这样,一个11000个4000. - -**[01:17:43] 发言人 0**:怎么办? - -**[01:17:44] 发言人 0**:我再问一下院理你。 - -**[01:17:45] 发言人 0**:对我们个下一代云桌面或者AI这一块,我们现在也在花大力气在做跟AI结合的A静态,跟就是AI下的计算,AI下的数据管理,跟这个方面在结合。 - -**[01:18:00] 发言人 0**:你有什么建议没有? - -**[01:18:03] 发言人 7**:我这一步没啥好的建议,你比方现在你像紫光云不是也在做AI的这个平台吗? - -**[01:18:12] 发言人 7**:我看了一下咱德总发给我的咱们AI驱动的新一代系统集成服务商,这个咱们也有。 - -**[01:18:21] 发言人 7**:我想主要就是做一个什么呢? - -**[01:18:24] 发言人 7**:先集成一些小的那种应用,就是客户能用得到的内容应用先试试。 - -**[01:18:32] 发言人 7**:因为你说这个AI跟云桌面结合。 - -**[01:18:36] 发言人 7**:其实用云桌面,特别是在设计和研发场景,你结合和不结合对他们来说用不大。 - -**[01:18:51] 发言人 0**:你什么意思? - -**[01:18:53] 发言人 0**:就是云桌面就是云桌面A就是A I. - -**[01:18:57] 发言人 7**:也不是就是说找一些简单的功能去集成上去,那成本不高的那做做这首先其实是做一个什么就是一个亮点,引导客户的一个亮点,咱就是一个目标价。 - -**[01:19:11] 发言人 0**:所以我觉得马家来临时代,在如何管理个人电脑方面,你要还是要管他不能全松,但是怎么管是吧? - -**[01:19:20] 发言人 0**:你用那个胖那也可以管了以后能管住龙虾,能管住什么东西。 - -**[01:19:26] 发言人 3**:就能让隔壁都用起来。 - -**[01:19:29] 发言人 3**:简单点说就是通过vi的改造,能实现近似vi的数据落地的。 - -**[01:19:35] 发言人 0**:一同时把这个龙虾把未来这个龙虾的管理,就是管理出的算力,管理出的管理的数据。 - -**[01:19:42] 发言人 3**:所以说那个批次代表的行为监控是有必要整合的,因为没数据不落地。 - -**[01:19:49] 发言人 3**:那现在其实你如果最差的还有普通C那我也有办法管你的数据流程,能尽量做的。 - -**[01:19:59] 发言人 2**:数据不落定。 - -**[01:20:01] 发言人 3**:数据不外泄。 - -**[01:20:03] 发言人 0**:好好,那下来说继续看还有什么。 - -**[01:20:08] 发言人 7**:我说没有了,对吧? - -**[01:20:10] 发言人 0**:那你反正就是过程中,过程中有些什么想法,尤其是一在一线听到一些什么样的声音,什么想法。 - -**[01:20:19] 发言人 7**:及时跟我们沟通。 - -**[01:20:21] 发言人 7**:明白。 - -**[01:20:23] 发言人 0**:这都没没这都没法回答,反正得得做,得做。 - -**[01:20:29] 发言人 0**:好,继续。 - -**[01:20:33] 发言人 0**:了主石刚,你看你有什么要说的,是刚。 - -**[01:20:40] 发言人 8**:我下午听了贝贝和院磊的,所以我没听到。 - -**[01:20:48] 发言人 8**:我想想听的,我想听到他们这对他们这个市场总体的感觉,或者是对比如说是河南省和山东省,整体从去年到今年,整个云桌面的这个格局性的,或者是大家对云桌面的这个市场的真正认知有没有发生改变。 - -**[01:21:16] 发言人 8**:这个我我我想听的时没没听没听到,后面再接下来继续交流。 - -**[01:21:24] 发言人 8**:然后第二个要讲的是,我刚才是在思考,就是说是对于教育和医疗这两个行业是我们比较大的市场。 - -**[01:21:38] 发言人 8**:但是目前而且教育和医疗的应用的云桌面的应用也是比较应该说是比较统一的,比较标准化的一个应用。 - -**[01:21:49] 发言人 8**:所以每对于医院来说该怎么用,对于学校来说这个云桌面怎么用,都是一个比较单一标准的一个应用。 - -**[01:22:00] 发言人 8**:所有的是所有的客户,对这个宇宙面的认知也基本上是相同的。 - -**[01:22:07] 发言人 8**:在这个基础上,我觉得我们在这两个行业上面可能最近还得要研讨一下。 - -**[01:22:15] 发言人 8**:就是看看教育云桌面和医疗云桌面到底可以搭载什么A应用上去。 - -**[01:22:22] 发言人 8**:可能我们有这么多的教育的客户和医疗的客户,有那么多的现成的案例在里面。 - -**[01:22:30] 发言人 8**:而且后面都是有扩容需求的这么一个前提。 - -**[01:22:35] 发言人 8**:下面搭载应用上面,我们可能能够迅速的增强我们这这两这两个行业云桌面的这个竞争力。 - -**[01:22:45] 发言人 8**:我觉得下来可能得尽快思考,什么样的应用,这个是值得教育上面去叠加的和医疗上面去叠加的。 - -**[01:22:56] 发言人 8**:其他没啥了。 - -**[01:22:57] 发言人 1**:彭总,学校我这没啥。 - -**[01:23:00] 发言人 6**:每周给他录实时分再走过去。 - -**[01:23:06] 发言人 6**:传达。 - -**[01:23:07] 发言人 1**:交给公。 - -**[01:23:09] 发言人 0**:司俊杰。 - -**[01:23:12] 发言人 3**:我认真思考一下,孙老总刚刚说有的东西,其实就是接下来公司再规划原来的东西。 - -**[01:23:20] 发言人 3**:我还是强调我们希望听到需求,今天听下来我还是有一点感触的。 - -**[01:23:27] 发言人 3**:我们可能不会去构建一个庞大的一个体系,但是我们一定要在云桌面上去构建一个场景化简单的,然后一定特色亮点的东西。 - -**[01:23:40] 发言人 3**:而且好卖不贵,一不熟,然后把这个东西引导客户去用。 - -**[01:23:47] 发言人 3**:其实我有点感触了,其实这两天包括公司的内部需求,包括我们之前做的自体运营字体语音,包括我们平常办公的一些文案类的、语音类的。 - -**[01:24:02] 发言人 3**:最终它可能要转换成文字类的,然后存在我们的库里。 - -**[01:24:08] 发言人 3**:可能这个东西对医疗,对教育,因为教育有老师讲课,医疗有医生的问诊,可能是一个通用的需求。 - -**[01:24:17] 发言人 3**:接下来我们看把这道路线打通,其实就是沉淀行业当中,各自行业工作当中的一个记录。 - -**[01:24:28] 发言人 3**:从记录当中去发掘各自行业企业,有医院教育办公的企业内的资数字资产沉淀。 - -**[01:24:39] 发言人 3**:我们往这个方向去思考一下,争取在今年下半年我们快速的去推出一个边云这边的1.0版本。 - -**[01:24:50] 发言人 3**:另外就是刚刚讨论到的那个vdi目前因为服务器的价格单点位已经相对于去年8月份过后涨价前应该是2到2.5倍的这样一个单点位成本的上涨。 - -**[01:25:06] 发言人 3**:实际造成了我们v di v di这目前除了刚才我们讨论的这种纯刚需行业,在一些中间态的一些本来能争取到vdi的一些行业可能出现了问题。 - -**[01:25:19] 发言人 3**:所以接下来我们下来产品这边讨论一下,怎么升级一下V O I,至少能实现数据外泄的一些管控,来部分达到客户对数据安全的一个要求。 - -**[01:25:33] 发言人 3**:这样引导他们至少不是不会从vdi的方案去投奔到pc方案去,至少还能落一点到我们的v方案上来。 - -**[01:25:44] 发言人 3**:好,这是我们要争取的。 - -**[01:25:46] 发言人 3**:我大致就说了两点,一就是我们往方向想一想,二就是往安全管控的vi方面再想一想。 - -**[01:25:56] 发言人 0**:好吧,交易不没见。 - -**[01:26:01] 发言人 0**:现在听。 - -**[01:26:02] 发言人 2**:完了以后,我觉是这样的,其实我们在这个产品和销售这一块儿,现在说现在反馈的这些问题,现在其实也是我们最近公司内部在激烈的讨论。 - -**[01:26:20] 发言人 2**:这里面我觉得分两个部分。 - -**[01:26:23] 发言人 2**:第一个部分就是我们整个以后云桌面这个产品往哪里走。 - -**[01:26:28] 发言人 2**:Next只是我们现在往前走的一小步。 - -**[01:26:31] 发言人 2**:其实这一小步当时我们选那个Y这个方向,也是基于我们第一个没有积累。 - -**[01:26:40] 发言人 2**:第二个就是飞O I相对于vdi它的开发工作量和难度要小很多。 - -**[01:26:46] 发言人 2**:然后呢我们当时选最终选择了这个走内Y威di这块,其实公司就自己要不要重新重做一个全新的V D I其实内一直有讨论这块,以前有一些技术障碍。 - -**[01:27:02] 发言人 2**:其实大家可以想到各个大的云厂商都在这个视频上面做了无数次的验证,也不是只有我们在做,就是包括采用全那种云的民间方案。 - -**[01:27:15] 发言人 2**:但是确实随着悲哀的全面来临,其实很多以前在技术上被否认掉的一些路线,现在有可能都带新的一些可能性。 - -**[01:27:30] 发言人 2**:所以说V包括v di这块,我们也会在这几个月会快速的决策,要不要重新去投入。 - -**[01:27:39] 发言人 2**:但是硅洲Y这块就是我们的微胖这块,其实我希望我们销售端还有我们的这个授权端,能够和我们产品这块紧密的配合。 - -**[01:27:52] 发言人 2**:我们既然是公司自己自研的产品,那么我们都用心的去推。 - -**[01:27:57] 发言人 2**:我们产品这边的话用心的来支撑。 - -**[01:28:00] 发言人 2**:希望在这一块的话能够弥补今年整体市场变化,给公司整体销售业绩带来的一个压力,这是我想说的第一个部分。 - -**[01:28:12] 发言人 2**:第二个部分就是彭总最近一直在密集的和我们一起调研,就是如何把A的能力赋能给我们的授权和我们的销售。 - -**[01:28:25] 发言人 2**:我们前面做的第一个有点零散。 - -**[01:28:29] 发言人 2**:我们这个会议完了以后,从下周开始,就1块1块儿的来和我们的售前和我们的销售,我们产品这边人,到时候安排专人,我们的it专人来跟大家做对接。 - -**[01:28:45] 发言人 2**:然后一个小块有一小块的解决大家的问题。 - -**[01:28:50] 发言人 2**:希望能够每一个小块能够帮助大家,把这个赋能的事情能够落实到具体的一个上面。 - -**[01:29:00] 发言人 2**:然后的话打通公司本部和咱们全国的这个队伍之间的信息互通,打通你们和这个渠道,你们和这个客户之间的这种大概。 - -**[01:29:15] 发言人 1**:就说这来。 - -**[01:29:21] 发言人 0**:好,那我总结一下,我觉得后续等到6月份结束,我们六月份完了以后,我觉还再开一次,争取一个月开一次,花一个时间大家交流。 - -**[01:29:41] 发言人 0**:我想的话我们现在还有很多没有发言的。 - -**[01:29:47] 发言人 0**:我先抽查两位,刚才说过抽查的事儿,我先抽查两位问一问情况,浩伟在吗? - -**[01:30:06] 发言人 0**:我带了,你说说你今天停了以后,你有什么想法? - -**[01:30:12] 发言人 0**:因为你你来了多久了,还没入职。 - -**[01:30:16] 发言人 7**:对。 - -**[01:30:17] 发言人 9**:还没走完流程。 - -**[01:30:19] 发言人 0**:你是新华三页干了很久了,你应该说在至少在在华3 it踢这个战场上,你都是老兵了。 - -**[01:30:27] 发言人 0**:你说说你有什么,你今天听了多少,你有什么想法? - -**[01:30:31] 发言人 9**:我我我从你上午就开始经知道,你说说你有什么想法。 - -**[01:30:35] 发言人 9**:对,其实是这样,怎么说,就是因为我22年来华山,然后就负责就云智这块。 - -**[01:30:42] 发言人 9**:当时这个还云中边这个产品还在云之产,还在华云智产线这块。 - -**[01:30:48] 发言人 9**:当时这部分是算业绩的,所以华算这个销售的这个呃主观能动性和积极性是比较强的。 - -**[01:30:56] 发言人 9**:然后贴到汇智之后,再加上因为大家都知道这个云桌面这个产品本身也比较复杂,有的时候跟这个交付比平,还有这个售后会有很大关系。 - -**[01:31:09] 发言人 9**:就是刚刚同之前同事们提到有很多项目可能就是烂尾,或者是出现这个问题,然后导致客户对这个华三,对咱们产品的或者解决方案,或者产品整体能力不不不就是不是很认可。 - -**[01:31:26] 发言人 9**:这方面我觉得可能后续还是需要怎么说呢? - -**[01:31:31] 发言人 9**:如果说咱们还要在这个云桌面上继续发力,可能之前一些这种就有原有的这种项目,就是该该去扫尾的,或者该去解决这之前出现问题的,可能还是需要去解决一下。 - -**[01:31:44] 发言人 9**:然后至于其他的,比如说是我我我马上最近投标这个项目,遇到咱们这个终端在检证明,这个证书节能检测报告,这块的话可能还需要总部再去加紧催一下这个就是这方面硬性方面这些工作。 - -**[01:32:02] 发言人 9**:然后我们作为一线,然后有的时候像一些这种我们能解释的,或者能做通过客性关系能做商务能能去处理的,肯定我们尽量去处理。 - -**[01:32:13] 发言人 9**:然后有一些这种比如说硬性这种,比如检测报告,或者一些这种硬性指标,这个方面可能还是需要总部再去加加催一下这个进程。 - -**[01:32:25] 发言人 9**:然后把一些这种至少是咱们这个节能检测报告啥的,他不能是过期,或者这个暂停状态。 - -**[01:32:36] 发言人 0**:好,你还没入职,还要,就基本上在办这个,什么时候办进来? - -**[01:32:43] 发言人 9**:六月底,领导预计六月底之前。 - -**[01:32:46] 发言人 0**:是这一两天。 - -**[01:32:47] 发言人 0**:好,冯世雄,你说两句,冯世雄。 - -**[01:32:53] 发言人 0**:冯立雄听。 - -**[01:32:54] 发言人 5**:得到吗? - -**[01:32:55] 发言人 5**:到方伟。 - -**[01:32:56] 发言人 0**:能听得到。 - -**[01:32:58] 发言人 0**:怎么样? - -**[01:32:59] 发言人 5**:说说说说我这边的情况,最近可能是我的这个云们多半都是一直以来也一直在做这方面工作。 - -**[01:33:10] 发言人 5**:但是来咱们这头,前面几个同事说的这个情况,我都有遇到。 - -**[01:33:18] 发言人 5**:现在目前的话咱们这个vdi这块肯定是全不好亏的。 - -**[01:33:24] 发言人 5**:不好亏的话,我认为他在一些什么情况下可以亏损去。 - -**[01:33:32] 发言人 5**:对,在华盛有一些大的项目里面,如果说携带我们一些没桌面,先做进去,后续再去做一些蓄材。 - -**[01:33:44] 发言人 5**:像我前两天就是有这么一个,我让杨州给落了一下。 - -**[01:33:50] 发言人 5**:可以,就是他先做五个点,这五个点先配一台服务器,那么先我们先把多边签做进去,它整体的项目是很大的。 - -**[01:34:00] 发言人 5**:如果是我们可能是几万块钱,就能把这个云桌面先做进去。 - -**[01:34:06] 发言人 5**:后续他会以这种续材的方式,扩容的方式再去做,那这样的话可能会好做一些。 - -**[01:34:13] 发言人 5**:如果你单纯的一个云桌面项目,现在单独去查,这样的话这个价格还是不太好去做,而且也不好往里做。 - -**[01:34:22] 发言人 5**:那我们肯定是现在有一些医院,教育方面我们可能在也在推一些这个办公端,然后我最近这几天的这个测试也还是比较多。 - -**[01:34:34] 发言人 5**:有一天可能杨州联线的这个测试的这周法师也一谈,有一台的话,我过来也会先测试。 - -**[01:34:43] 发言人 5**:你想这是我测试这个东西,政府是有的,如果说没有的话,那客户这边着急测试,我们如果没有这个测试样机的话,可能就会拷贝的。 - -**[01:34:56] 发言人 5**:之前我在天猫现打的时候,就是厂商拍的也是比较小众的一个厂商。 - -**[01:35:04] 发言人 5**:但他他是在办事处有很多这样测试的影子,那就是一直在这个库存里面去放着。 - -**[01:35:13] 发言人 5**:这个大家去测,因为这个桌面的东西和其他的设备都一样,他必须得是让客户看到他东西是好用还是不好用,而且客户不放心买回来这个东西是到底是怎么样的。 - -**[01:35:27] 发言人 5**:所以我们这个测试还是挺重要的,后续还是希望领导能给我们一些更大的一些支持。 - -**[01:35:36] 发言人 5**:然后目前我还有一个测试,只有这个第一院的护士,第一院的是不是也是胖龙端,但是我看这个就是我现在马上也经跟他联系到,因为这个省贷是有的库存的,所以我马上就跟他联麻去测试。 - -**[01:35:53] 发言人 5**:因为生意服务测完之后说不行,然后那个客户那说什么赶紧放一可,然后我就马上跟他联系了,就撤了。 - -**[01:36:03] 发言人 5**:所以第一时间去给他做个测试的话,他就像朋总说我们很很真诚的,就是很及时或者是很反而顾户去联系他的这种人,就是会让他感觉到我们是真的是在做什,他也会选择我,即使你的东西说有一点不好用,那么他也会觉得我想我相信你能把这东西给我搞好。 - -**[01:36:30] 发言人 5**:就是我们在我们很及时给他提供这些样机,及时跟他沟通。 - -**[01:36:35] 发言人 5**:他现在说是也是给集成商解决一些问题,或是还是有这么个事儿,赶紧帮我处理一下。 - -**[01:36:43] 发言人 5**:我马上要给亚子要测试,我们很快要让他解决。 - -**[01:36:47] 发言人 5**:这样帮助了对方,然后我们也会极大的促成我们这个单,也让这个经销商客户心里面觉得我们是印响应很快,事儿办年也很好。 - -**[01:37:01] 发言人 5**:从这一方面,然后其他一方面,今朝现在就像叶磊说的,就是现在我拜访的也很多经融上来,但是基本上90%是没有做过鱼桌面,或者是对鱼桌面没有什么兴趣。 - -**[01:37:20] 发言人 5**:这个我们要筛选出来一些筛选的这个对吧? - -**[01:37:26] 发言人 5**:而且一段时间去做做这个工作,这个我也拿到了,最近也拿到了这个内容这块的这个区域的这些渠道我筛选了一下。 - -**[01:37:38] 发言人 5**:但是还是要一些选一些清华三的,之前是做佛山,特别好像我现在不是签了一家清海,他他觉得这个只要是跟华南单边的东西我都干,这个碳根体华三的这些设备他都卖普多西。 - -**[01:37:56] 发言人 5**:所以这些可能会对我们会有一些倾向性,他会觉得我们是华商体系里面的东西他会去做。 - -**[01:38:06] 发言人 5**:所以说这个渠道这一块还是我觉因为这个我们过来之后,给我们定的任务是渠道比较多,然后华商的销售这个任务还是比较少的。 - -**[01:38:19] 发言人 5**:但是我现在慢慢的发现,华山的销售的重要性还是强比去航的要强。 - -**[01:38:26] 发言人 0**:没有跟你说华的销售少,就华山销售也是一个很重要的一务。 - -**[01:38:31] 发言人 5**:要你去追。 - -**[01:38:32] 发言人 5**:那我们的考核是华山销售十个打卡比如说这个渠道是30个,这个其实华销售他的是。 - -**[01:38:40] 发言人 0**:觉得的重心的话,应该有是40%放在华腾销售4% 10万的渠道。 - -**[01:38:50] 发言人 5**:对,这个职位对于我们来说都一样,而且我认为华为山销售还是很重要。 - -**[01:38:58] 发言人 5**:对,然后渠道这一块真的就是我拜访了这么多渠道,有很多人很多渠道都不粘这个边,他都觉得这个杭州园不敢粘下去,粘上就跑不了,粘上就这个东西。 - -**[01:39:13] 发言人 5**:这后续的服务,各种问题,什么款了。 - -**[01:39:17] 发言人 5**:对他他不干你干这个事儿。 - -**[01:39:21] 发言人 5**:但是我们这个零桌面的这是一个大问题,当然每个设备都会有这种问题,这是我们可能是需要想些办法。 - -**[01:39:32] 发言人 5**:现在的话其实说让我们去想,我们所有的销售或者是领导们去想,其实想不出来。 - -**[01:39:39] 发言人 5**:因为现在那个情况就这么贵,我们可能也有听说这个价格会下调,我们我们可能会扛过这一波涨价的趋势,我们后续会有一些好的价格,而且客户也会接受长期的这个价格贵,慢慢他就形成习惯了。 - -**[01:40:03] 发言人 5**:那么从以前的便宜到固然涨价,他们现在接受的这个程度还不够。 - -**[01:40:10] 发言人 5**:我们如果说全部市场整体现在就这么贵,那么经过一段时间之后,大家就都有一个共同的认识,把这个玩意就是贵,这个是也会不打理。 - -**[01:40:24] 发言人 5**:是说事就说这个柜式就不谈了,就看谁家的好或者是怎么着,谁家服务好了,把价格就放一边,因为大家都很贵。 - -**[01:40:35] 发言人 5**:所以说我们我们还是多去跟客户沟通,然后多推一推我们的朋友关先做一个过渡。 - -**[01:40:44] 发言人 5**:现在我觉得是这怎么回事? - -**[01:40:48] 发言人 5**:我就发表这么多,没导。 - -**[01:40:52] 发言人 0**:好这个时间原因,我就做个总结。 - -**[01:40:54] 发言人 0**:本来还想抽查,因为等会还有点事。 - -**[01:40:57] 发言人 0**:我就说四点,我觉得我们还是非常重视的。 - -**[01:41:01] 发言人 0**:因为咱们云桌面的这个队伍越来越大是吧? - -**[01:41:05] 发言人 0**:然后咱们各方面的指标,各方面的K加I指标,经营方面各个方面面对的这个问题,这个其实也是很具体的。 - -**[01:41:17] 发言人 0**:好不容易传出来这么大个队伍,我们希望我们未来这个市场会越走越好是吧? - -**[01:41:24] 发言人 0**:我说四个方面,第一就是我要强调,就我的感知,我也说我的感知第一我觉得就像中康今天说的那句话一样,这个A要全方面的进入到我们的产品和进入到我们这个产品的生产力里面去。 - -**[01:41:44] 发言人 0**:所以我觉得一方面就是在我们整个从研发到销售到售前到服务的方方面面,我们要坚定不移的从流程上,从工作的种这种这种整个工作流方面要融入也融入这个大模型,融入智能化。 - -**[01:42:03] 发言人 0**:我觉得我们也是有硬件条件的,下来以后我们要尽快的把这个事落实? - -**[01:42:09] 发言人 0**:你不管是知识库还是什么方面。 - -**[01:42:13] 发言人 0**:第二我觉得就是要融入融入这个产品,要我们一定要打造跟这个A有关系的产品,这是我们转型的方向,这第一第二我说从对内来说,就是我的感知,就是我还是希望我们有一个怎么来比方。 - -**[01:42:31] 发言人 0**:刚才我又在想,原来我们每一年就是现在没有通信展。 - -**[01:42:36] 发言人 0**:最早通讯展我是参加过香港通讯展,参加过几次巴塞罗那通讯展了,也参加过中国的通讯展。 - -**[01:42:44] 发言人 0**:参加现在的通讯展没有以前那么大,以前都西展人山人海,现在可能是AI的展,就是我觉得就当你把客户带到你的展厅的时候,就是我觉得我们虽然那个展厅不不展厅要不相费一段时间,但是为了布这个展厅,要花大量的时间去写一个交,然后去把它放在这里。 - -**[01:43:07] 发言人 0**:今年腾讯展明年腾讯展,就要要挖空心思,我们前台要招一个华为的人是吧? - -**[01:43:12] 发言人 0**:做通讯展要挖空心思,把我通讯展里面一些好的东西新出来,是什么东西把它展出来? - -**[01:43:19] 发言人 0**:你看那个时候是按年计算,到现在其实通讯展一个是没那么多了。 - -**[01:43:24] 发言人 0**:嘿第二是不按年计算? - -**[01:43:26] 发言人 0**:都都有一原来要聚在一起人统一去看,然后有一个固定的物理的场景,然后你得统一去看,统一讲,我觉得现在慢慢的就更重视这个,就是在一年的过程中间的一些,包括个我看华山华三农艺展,我觉得也没有什么特别的多西东西。 - -**[01:43:43] 发言人 0**:所以我觉得更重视这个过程中的,所以我就觉得我们过程中我们应该能搭一个像通讯展搭一个展厅一样的云那个展厅一样这么一个东西。 - -**[01:43:53] 发言人 0**:就我们的销售能够带客户进来,逻不是物理上的,我们销售能够带客户来,就是把自己的那个什么东西说的123说的很清楚,一带就没人说,我觉得是在网上,是在线上的是吧? - -**[01:44:08] 发言人 0**:这个我觉得当然我们销售要获取很多东西,也能够很快速的,然后这个展厅里面的内容也是高速变化的,也是经常变化的这就是一个形象。 - -**[01:44:20] 发言人 0**:包括我们的视频,我们的数字人,我们的这些所有东西,其实都是为了我们。 - -**[01:44:26] 发言人 0**:原来是要做一次一个月1次,不是一年一次是吧? - -**[01:44:30] 发言人 0**:巴塞罗那展全球的,香港展这个是管全球的,然后这个中国展都是这样去为了展现在一次。 - -**[01:44:38] 发言人 0**:我们希望我们的信息要不是物理在的某一刻,要随时准备着能够引展拥为有A时代,我们要随时准备着,我们定期的在进行这个改变在进行在这个改变同时我们会主动的通过数字人的,通过很多年来发声。 - -**[01:44:55] 发言人 0**:就是我觉得我们如果对外就整个宣传,我就想我们的这个产品经营团队,就是要有这种要这种这种这种通过A的帮助,有一个线上的,我刚今天说小红书我说的还不是很准确。 - -**[01:45:09] 发言人 0**:我觉得就是一像一个展一样的,我随时都能够拉出来看我随时都能够讲,我可以区分行业,我可以针对针对针对的针对的这个客户,我可以针对性的给你拉一个,然后我自己的宣传。 - -**[01:45:22] 发言人 0**:但这里面刚才说到的这个,你说你们做那个知识库,我在想我觉得在图讯展里面有一个很重要的一点,就是现在越来越多华为的业,原来的很多的业就他两层,他一层就对普通用户的,还有一层他来不及拉到那个小区域里去。 - -**[01:45:38] 发言人 0**:你还得vip,你vip的客户还得不让别人看到,不让别人听到不让别人看到,不让别人听到,我们都还有自己的一些更高级的武器,招投标的时候在用,现在也不能跟你说太多。 - -**[01:45:51] 发言人 0**:有些东西我们是对外的,你们都可以来看的,就这样。 - -**[01:45:54] 发言人 0**:有些东西我如果涉及到我和对手之间要在重点项目pk的,那我们可能还有一些东西,还有些针对只给我们销售讲的,只给我们一些重点人讲的。 - -**[01:46:05] 发言人 0**:我觉得有一定的区分,就是一定区分有一大家都知道的,有些是我们区分,所以我在想这个事儿,就是花很多的精力做一个一个的展报。 - -**[01:46:15] 发言人 0**:我让大家看看完以后台词一拆没了,但是这个思想要花很长时间,但现在我觉得时间会短的非常多是吧? - -**[01:46:22] 发言人 0**:每个月我们都会有些更新,我们都能够有一个这种有一个在线上的知识库,跟你之间的这种怎么样能够展示一个是网站吗? - -**[01:46:32] 发言人 0**:是一个这种是吧? - -**[01:46:34] 发言人 0**:是一个优频道吗? - -**[01:46:35] 发言人 0**:是一个什么? - -**[01:46:36] 发言人 0**:是个小红书吗? - -**[01:46:37] 发言人 0**:那小红书里面我打开,如果我光看一个产品,我也能看到很多。 - -**[01:46:41] 发言人 0**:是一个什么东西? - -**[01:46:43] 发言人 0**:我就琢磨琢磨,我就我希望我们的宣传有立体化,后尤其是给我们销售和外面的人,这是一个就是我觉得总体来说就围绕着我们自身需要有一个智能体,就围绕着一个我们自己的知识库去搭建我们外面的一些东西,让我们内部的这个流程更高效。 - -**[01:47:01] 发言人 0**:这是关于就是我想到是想到哪说哪,这是关于我觉得对内的对我们的这个生产力的,然后对产品来说,我我我我说说我的感知力,我觉得就是。 - -**[01:47:13] 发言人 3**:v di这个事儿。 - -**[01:47:14] 发言人 0**:他确实刚需。 - -**[01:47:15] 发言人 0**:Vdi是有钱人的生益,有钱人他要有vdi那是挡不住的,即便他今天挡住了。 - -**[01:47:20] 发言人 0**:就像你说买房子,现在我不买,我是刚需。 - -**[01:47:23] 发言人 0**:但是我我那你你说我给你我我给你住的不是房子,给你住的是那个什么是吧? - -**[01:47:29] 发言人 0**:你可能还是不买了是吧,我就不买了,你这不是小区,你这是是商品房是吧,或者你这是用电也不一样,你这个什么也不一样。 - -**[01:47:38] 发言人 0**:你这个是什么这个不说公寓了,你你你就给你给了我个宾馆,住两天我也不住了,这房间不一样。 - -**[01:47:48] 发言人 0**:所以我觉得威尼埃这个事他可能就是云桌面的核心。 - -**[01:47:53] 发言人 0**:然后这个v di里面要解决的,我们如果vdi跟AI结合的话,还是要解决整个A在服务器上的布局。 - -**[01:48:02] 发言人 0**:就真正做vdi的,我觉得还是包括我们有那么多客户已经买了vdi的。 - -**[01:48:08] 发言人 0**:如果还有二次销售的机会,我觉得也是我们去琢磨V D I基于在vdi管理下的龙虾,基于在vdi管理下的智能应用,就看看有没有这种机会,当然你说龙虾一点机会没有我想想可能也是。 - -**[01:48:25] 发言人 0**:妈的,我我我娱乐面打开,我其他不要了,我其他不要了,我其他不需要了,我反正里面乐面你经给我了,里面的内容,我想不到它做啥是吧? - -**[01:48:38] 发言人 0**:好,另外一个我觉得在这个就是不一定叫云桌面,或者就是在场景还是细分场景的进入行业的,就是往行业下面再细分的。 - -**[01:48:49] 发言人 0**:刚才盛刚也提到了,俊杰也提到了,我觉得就是在行业场景化的这么一个解决方案,加安全、加控制、加智能。 - -**[01:49:01] 发言人 0**:就这个你说是云桌面那那也可以,你说他不是云桌面也可以。 - -**[01:49:06] 发言人 0**:但是他可能一开始他提出来我们想管控,想纳管? - -**[01:49:11] 发言人 0**:从纳管的角度,场景化的角度,就细分场景的角度,高校里面的细分场景,企业里在细分场景从细分场景的角度我们找到,你不是要管理吗? - -**[01:49:23] 发言人 0**:你要安全吗? - -**[01:49:24] 发言人 0**:你要管理,你要纳管,是吧? - -**[01:49:26] 发言人 0**:所以说我们前两天我们自己在提我们在提这个叫叫这个叫终端纳管,行为纳管,这个龙虾纳管,然后这个算力纳管,加这个数据纳管,其实这些东西可能都是包括学校,可能都会有这种类似的需求,就是这一块我们也希望我们成为我们下一个就在这个vdi抛开vdi,在专在那个专有云的专有的云桌面的情况下。 - -**[01:49:52] 发言人 0**:就跟那云论跟V Y,跟云端边有点像的。 - -**[01:49:55] 发言人 0**:原来其实V Y也不能叫云桌面对吧? - -**[01:49:57] 发言人 0**:你如果光说咱们说单纯的云端面,其实就是v di就是跟那人家都能挂上V I,你也可以挂上V I,你挂上智能I,我觉得什么I怎么着就是要让这个就是安全纳管和智能能能进入新闻行业这块。 - -**[01:50:15] 发言人 0**:今天提出来,也是希望我们的销售,我们的售前后续你们遇到类似的机会,你们在交流中间,你们在项目中,你们在这个交流中,你们如果遇到这个就是我们这个客户到底想的是什么? - -**[01:50:31] 发言人 0**:我客户想的这你比如如果你说我就是想把那个电脑里面不用不要用电脑,所有数据不能外传,我就想用个vdi那我无话可说是吧。 - -**[01:50:41] 发言人 0**:你那就是那就服务器刚才说了我就想用vdi我那后面就是服务器,那这个咱无话可说是吧,咱就但是你包括很多医院,很多学校,它不是A D I,他其实第一个想法,你跟他说没di他也可以,但是你要便宜,你跟他说,他说反正我就是想电脑便用于户别出问题,电脑是用的所有东西我都看到是吧? - -**[01:51:05] 发言人 0**:我觉得在这个基础上,那他既然那个既然他的终端要纳个行为,要纳个他的,那我觉得他的数据也可以纳个他的这个算力。 - -**[01:51:15] 发言人 0**:就未来下一代,我觉得算力里我们我们很多人今天我问,有很多人有些人知道,有很多人不知道。 - -**[01:51:23] 发言人 0**:那我可以很明确的告诉大家,AI确实是离我们已经卧操太近了,近到今天中午我跟江怡在聊那一个质谱一个一个大模型的公司,你们原来可能没在听过8000个亿了,8000个亿什么概念呢? - -**[01:51:39] 发言人 0**:相当于那么相当于八个新华三,他在做了一点产品,就卖了几个小卖了几个做了几个模型8000个亿了,那dc个上来有一万多亿了,那做了做什么说这个而且模型和模型的应用,你们看到现在股票那么牛逼? - -**[01:51:55] 发言人 0**:你那个存储为什么涨那么厉害了? - -**[01:51:58] 发言人 0**:你存储的目的是啥? - -**[01:51:59] 发言人 0**:说白了存储的目的就是为了解决这个人工智能里的上下文,为了解决人工智能里的context。 - -**[01:52:06] 发言人 0**:因为你人工智能必须要长的上下文,他才你说这个模型行不行? - -**[01:52:11] 发言人 0**:这模型为什么那么高的参数? - -**[01:52:14] 发言人 0**:实际上模型行不行,我觉得跟上下文有很大关系。 - -**[01:52:17] 发言人 0**:我问他很长一段话,那他这个上下文一多,他怎么能处理? - -**[01:52:22] 发言人 0**:他参数够不够? - -**[01:52:23] 发言人 0**:所以我觉得他如果要解决上下文,那就要存储。 - -**[01:52:26] 发言人 0**:我有时候跟我们兄弟在聊,我说为啥不让存储长那么快呢? - -**[01:52:30] 发言人 0**:就是那个机器现在原来的机器是有算力。 - -**[01:52:33] 发言人 0**:脑子里就是健忘,今天说一句,明天就忘了你现在问问豆包,你昨前天说的话,豆包今天还记得。 - -**[01:52:39] 发言人 0**:那为啥它后面是什么吗? - -**[01:52:41] 发言人 0**:它就是存储就是存储,就是他没掉电的存储,是不是它随时调用了? - -**[01:52:46] 发言人 0**:所以这个存储涨那么快,跟这个智能有很大关系。 - -**[01:52:50] 发言人 0**:所以这个AI离我们刚才我举个例子,就AI离我们已经非常近了,就是我们不改,那我们肯定落后。 - -**[01:52:57] 发言人 0**:在这一波里面,我们希望我们能成为一个AI的公司? - -**[01:53:02] 发言人 0**:我们既然是能纳管终端,能纳管行为,那我们也可以纳管龙虾,也可以纳管算力,也可以纳管数据? - -**[01:53:10] 发言人 0**:龙虾这个词出的特别好? - -**[01:53:12] 发言人 0**:那龙虾就是没脑子的,没脑子身子大钳子厉害。 - -**[01:53:15] 发言人 0**:所以本来龙虾为什么要取名叫龙虾呢? - -**[01:53:18] 发言人 0**:就是你虽然没脑子,身子大钳子厉害,但是我能管得住你我能我能把你管住了是吧? - -**[01:53:25] 发言人 0**:我出的这个东西是我能管住的,然后我再给你装个脑子? - -**[01:53:29] 发言人 0**:装个大脑子,公有云的脑子,那就是公有云的龙虾,装个私有云的脑子就是私有云的龙虾。 - -**[01:53:36] 发言人 0**:所以龙虾这个东西未来就怎么管控它,就是A这A进的跟他管,就是A他跟他管。 - -**[01:53:45] 发言人 0**:所以我觉得我们觉得在不久,可能现在不到,但是未来的几年以后,每个人都有一个agent。 - -**[01:53:53] 发言人 0**:你冯文超你就有一个人,你刘凯你就有一个,就平时不用你挤,你张备,你如果想你说下午我要,明天我要去跟领导写个汇报材料,你哔哩吧啦跟他说两句,他比你记的还多。 - -**[01:54:09] 发言人 0**:他说你这样,这是我这两天的建议,还有之前我的建议,他马上给你写个P P D,绝对比张妹写的那个好。 - -**[01:54:16] 发言人 0**:你张妹你那个是普世的,就往那一放,需要资料,需要宣传,差异化太少。 - -**[01:54:22] 发言人 0**:你那个东西我相信龙虾写的比你好,真的,你你让你你让那你让那个A姐娜,你说你说我这段时间面对了很多的业务,碰到很多困难? - -**[01:54:32] 发言人 0**:有些数据放在你那你帮我倒腾一下,他写的比你好,他思想比你多,而且还有你的记忆。 - -**[01:54:39] 发言人 0**:所以我觉得这个龙虾未来在这个电脑里面它必然存在,一定会存在,用token一定会像用电一样,这是百分之百的,很快,所以我们现在做的这个叫终端纳管,这个龙虾纳管,这个数据纳管,这个算力纳管是很有价值的。 - -**[01:54:59] 发言人 0**:如果我们的这些兄弟们,在你们遇到深入行业的时候,碰到用户这种需求,就是说他说说是云桌面也可以,你说是我是我是一个一个大管,我我我是想想对我的安全大管,那我觉得可以给他提一提我们的一些概念。 - -**[01:55:16] 发言人 0**:虽然不能像洛东说的40%真,4%假,但是提一提我们现在我们想做的一些事情,包括我们的能力。 - -**[01:55:26] 发言人 0**:他说要拿来测试,要拿来怎么着,我觉得可以,不是说拿来测。 - -**[01:55:31] 发言人 0**:首先我们多沟通两次,我们两边多交流两次。 - -**[01:55:34] 发言人 0**:我们希望在有一些好的一些比如我们好的客户,我们会给他一起交流沟通。 - -**[01:55:40] 发言人 0**:按照他的这个要求,我们慢慢的把我们一些理念,基于龙虾的管理,基于智能体的管理,基于算力的调度的管理,我们能把它做出来。 - -**[01:55:49] 发言人 0**:当然我们其实现在也在做我们的知听云也在做,未来我们会做一个软件版给你们都用上是吧。 - -**[01:55:56] 发言人 0**:然后你那些那些你都不用什么去买那个分钟数了,你到街道去买那个分钟数吧,就用我们自己的,也在做。 - -**[01:56:04] 发言人 0**:我们未来会转变成一个AI的公司,这是我们的,这不叫梦想,这必须的。 - -**[01:56:11] 发言人 0**:如果不走这一步的话,你就会out的。 - -**[01:56:14] 发言人 0**:他会把你A会进入每一个行业,然后会把你改变,这是刚才我说的关于AI的产品化和AI的在生产力的事情。 - -**[01:56:25] 发言人 0**:最后一个就是我想说一下,今天看到的几个要求。 - -**[01:56:32] 发言人 0**:我觉得一个就是我们售前还是要对项目要负责。 - -**[01:56:36] 发言人 0**:这种负责不只是说是你你把这个项目成了或者不成了,就这个项目里面客户提到的很多需求,你能够感知到。 - -**[01:56:47] 发言人 0**:当然你能满足他,你有可能不能满足,你不满足了你给我们带回来是吧? - -**[01:56:52] 发言人 0**:而且你能延展他的需求吧? - -**[01:56:55] 发言人 0**:能跟他交朋友。 - -**[01:56:56] 发言人 0**:我就我觉得跟那个项目的关系,我觉得这个今天早上也说到了,不管是杨昭还是个谁也说到了,我觉得我们在我们对我们售前的要求,还是希望能够像杨坤龙他们,就是能够很远的地方,虽虽在虽远,但是也能把事干成。 - -**[01:57:17] 发言人 0**:咱不叫虽远必诛,就虽远也能把事干成,也能真通过项目来来把来跟他们达成很好的一种这种认知,大家要把钱挣了是吧? - -**[01:57:27] 发言人 0**:这是关于售前,所以后续我们售前会有要求,包括售前每天要开的,售前要把很多对于你们每天用户给你个交流,尤其是细分场景下的一些这种行业里面的一些场景化的一些交流,我们希望能听到你们的声音。 - -**[01:57:47] 发言人 0**:如果听多听这个声音,对我们后续公司的这个转型改变是有很大的帮助的。 - -**[01:57:54] 发言人 0**:所以这是关于售前这一块,这关于销售这一块,关于产品经理我已经说过了。 - -**[01:58:01] 发言人 0**:我刚才再补充一句,我就还是那个形象比我就产品经理就是要今天左边看自己家的农场,右边看自己家的菜地,看自己家的市场。 - -**[01:58:12] 发言人 0**:菜市场在市场上还得看看别人在卖什么,还得看看别人在卖什么,我在卖什么,就要成为一个farmer,咱们这个整个叫产品经营团队,叶宇豪是吧? - -**[01:58:25] 发言人 0**:还有这个谁来着? - -**[01:58:27] 发言人 0**:陈一鸣刘强,我觉得你们一定要把自己变成一个farmer,跟研发,跟我们的市场菜市场,然后还要看看对手真的要把自己变成farmer。 - -**[01:58:37] 发言人 0**:你把哪天你说我就是以farmer这种感觉来做我们的产品,我觉得你可能就有机会,要不然你其他的方向都是错的。 - -**[01:58:47] 发言人 0**:这是关于我们的这个就产品经营团队,然后关于我们的销售,就是现在刚才盛刚说的,我觉得也非常赞同,就是现在因为刚刚开始,销售更多的就是说我遇到一个项目需要什么支持,我觉得其实我们还是希望我们的销售未来我们会划大区的,南区、北区、东区、西区。 - -**[01:59:09] 发言人 0**:我们何况大区的这第一第二我们的这个所以说我觉得人有多大能力,有多大责任,就管多大的区域。 - -**[01:59:21] 发言人 0**:第二我觉得这个销售一定要对自己的整个市场,整体的区域市场有整体的感知力,你那个市场大概有多大,蛋糕有多大,谁在切蛋糕,谁在分蛋糕,谁在吃蛋糕? - -**[01:59:37] 发言人 0**:我那两个对手怎么样? - -**[01:59:39] 发言人 0**:他们做了些什么? - -**[01:59:40] 发言人 0**:我在跟我对手比起来,我的机会在哪里? - -**[01:59:44] 发言人 0**:你肯定的,你如果说我这个东西那么好卖,还是那句话,对吧? - -**[01:59:49] 发言人 0**:我那么好卖我就不需要了。 - -**[01:59:51] 发言人 0**:我我我如果长得那么好看,我直接这个叫叫什么笑一个不就完了,我走到哪儿去,我只要长那么好看,我走到哪儿去,我就这个给他笑一个,给爷笑一个,生意就拿来了是吧? - -**[02:00:06] 发言人 0**:那事实不是这样的,也没有这样的是吧? - -**[02:00:10] 发言人 0**:所以我觉得就是销售要去一定要去看竞争,你销售一个很重要的就是竞争,就你要看看这个我到底那那那申意辉也在,瑞杰也在,奥也在,那我为什么在,我觉得我为什么在,然后我为什么能拿到项目? - -**[02:00:30] 发言人 0**:那肯定有拿到的吗? - -**[02:00:31] 发言人 0**:你说你一文不值,你不可能你都拿到了,还有拿到很多的我们医院的学校那么多。 - -**[02:00:38] 发言人 0**:那既然拿到了,那原因是什么? - -**[02:00:41] 发言人 0**:我怎么去思考我在这个行业里面,我在这个区域里面的地位行业地位。 - -**[02:00:47] 发言人 0**:你看新华三那么牛逼是吧? - -**[02:00:50] 发言人 0**:但是你看到没有,新华三它代表各个代表数之间也不是按g地器来的,它其实还是有好的代表数,不好的代表数。 - -**[02:00:59] 发言人 0**:然后各个代表处下面的地势有他们传统优势地势,也有传统不优势地势。 - -**[02:01:06] 发言人 0**:云桌面有做的好的,也有做的不好的,这说明什么? - -**[02:01:10] 发言人 0**:我是我就是觉得他们所有产品线,包括希华3,他一定是人为的。 - -**[02:01:16] 发言人 0**:是有些人我刚好碰到这个人特别牛逼,把超融和把云桌面做好,或者把他的那个ct也做好了,或者代表人经理很牛逼,刚好也遇到这个代表人经理表面上很牛逼,实际上傻逼。 - -**[02:01:30] 发言人 0**:他一走在时候好像觉得很牛逼的样子,造了一堆数据一走全他妈是假的,再往这一接,花三年时间去搞? - -**[02:01:40] 发言人 0**:然后这个代表处这不行那不行是吧,这个肯定有的,我觉得事在人为。 - -**[02:01:46] 发言人 0**:所以说我觉得对于我们销售,尤其是我觉得有些我们都做过很多年了,而且在这个行业里面也有些认知。 - -**[02:01:56] 发言人 0**:我觉得你们要去对对这个市场要整体的感知,要有整体的感知,要对我们的一些行业,我们的对手,我们的渠道,要有整体感知。 - -**[02:02:08] 发言人 0**:要要把要把我们的这个就是要把一些尤其在地市里面,要不但要原来的渠道怎么把它弄好,要在要把地市里面还要维系出更多的渠道,有朋友多多的,敌人少少的,维系出更多的东西? - -**[02:02:23] 发言人 0**:有更多的根据地,这个跟打仗就是很像,有些地方在根据地就出来了。 - -**[02:02:29] 发言人 0**:那为什么是老毛? - -**[02:02:30] 发言人 0**:为什么是井冈山呢? - -**[02:02:31] 发言人 0**:对不对? - -**[02:02:34] 发言人 0**:为什么不是他妈的山东,为什么不在山东? - -**[02:02:38] 发言人 0**:为什么不在他妈的广东,为什么不在四川呢? - -**[02:02:42] 发言人 0**:为什么在井冈山呢? - -**[02:02:44] 发言人 0**:为什么在江西? - -**[02:02:45] 发言人 0**:为什么我觉得他都是因为这个人? - -**[02:02:47] 发言人 0**:他他就划分了这块地方就干起来了。 - -**[02:02:50] 发言人 0**:你当时全国革命那个样子,也没人觉得他妈的,觉得他妈的你老毛就行了,是不是,那那那云桌面那么难卖,那我相信在我们在座的里面一定会有几个井冈山,一定会有几个根据地,这是肯定的。 - -**[02:03:05] 发言人 0**:所以说我觉得我们的这个销售,一定要从整体意识看啊,你的那个区域,你现在可能是在打猎是吧? - -**[02:03:14] 发言人 0**:我是觉得未来一定会走向种地的,这个打猎是干嘛呢? - -**[02:03:18] 发言人 0**:就是。 - -**[02:03:19] 发言人 0**:哎,今天冲到这个森林里,听说他妈的有动物冲去了,守了一天没守到。 - -**[02:03:24] 发言人 0**:明天又到那片森林里,他们说的那儿有动物,又冲去了是吧? - -**[02:03:29] 发言人 0**:有可能就打到了。 - -**[02:03:31] 发言人 0**:我觉得但是你打猎你也得看看听听江湖上传说。 - -**[02:03:35] 发言人 0**:雪球以前老跟我说,江湖上说这个片里有个大象目,你就去冲上去,我们到江湖里去看看呗,我觉得要打猎,但是打猎也得分清楚,你知道哪? - -**[02:03:47] 发言人 0**:你知道江湖是什么,你往哪跑? - -**[02:03:50] 发言人 0**:但是后面我觉得慢慢的我们的伙伴越来越多,我觉要走向种地。 - -**[02:03:55] 发言人 0**:我们的这个慢慢的跟渠道商越来越多是吧? - -**[02:03:59] 发言人 0**:你耕耘出来的,你觉得它能长出来,反正今年有明年有,我慢慢的知道了。 - -**[02:04:04] 发言人 0**:反正今年这有点扩容,明年那可能有点新建,然后我这些客户,教育里面的就是这些人,医疗里面就是这些人,他每年的刚才刚才我张斌说的,找我要全国市场政策。 - -**[02:04:18] 发言人 0**:我觉得你问我要市场政策原来可能很难,你现在你天天问豆包,豆包也能给你说出一二三来。 - -**[02:04:25] 发言人 0**:就是你慢慢你对你那个行业的政策,区域的政策,你当然我们也会,我们的产品线里也会增强这个能力。 - -**[02:04:32] 发言人 0**:但是你个人你在茶馆里你也能听到这个能力,是吧? - -**[02:04:35] 发言人 0**:今天说我操山东好几个学校都在开始他么的有投资了是吧? - -**[02:04:40] 发言人 0**:明天说应急管理局他妈的有二期,全国有个二期的火灾,要去要去把它给要去把它给这个项目就来了吗? - -**[02:04:49] 发言人 0**:我觉得你们的行业里面,你们天生的就应该能拿到,能了解到会有哪些方面的一些机会,这还你就是你在这个你你在这个区域里对待你在这个江湖上你应该做的事情是吧? - -**[02:05:02] 发言人 0**:所以就是我觉得我们这个销售要有区域感,要有你对行业,对你产品的态势感知能力,去去感知感知这个行业感知态势。 - -**[02:05:18] 发言人 0**:而且我觉得要有非常强的耕耘能力,就是慢慢的找到我们的合作伙伴。 - -**[02:05:25] 发言人 0**:我觉得只要能做成生意就一定能挣到钱,多多少少挣一点,然后慢慢来。 - -**[02:05:33] 发言人 0**:我觉得慢慢的把我们在一个地方的这个口碑给弄出来。 - -**[02:05:38] 发言人 0**:另外我们除了这个云桌面以外,其实我们确实也有系统集成,也有定制化软件开发是吧? - -**[02:05:45] 发言人 0**:我相信我们的定制化软件开发,我今天就跟聊,我觉得我们的定制化软件开发,如果现在的定制化是一块钱能做,人天,那我觉得我们的定制化软件开发要做到两毛钱,做到两毛钱人天是吧? - -**[02:06:03] 发言人 0**:挣出来的那个八毛钱,咱们一家一半,你不行,我跟销售一家一半,你拿40%种,你拿收入的40%,你拿收入的40%,你只要把定制开发拿过来。 - -**[02:06:17] 发言人 0**:我们把项目拿下就给你收入的40%你拿走,或者给你的那些给他们客户或者给谁拿走,我觉得我们现在对我们自己的定制开发的要求也是这样的,我们每年还要接2000万的定制开发。 - -**[02:06:33] 发言人 0**:我们也有a coding的能力,在A情况下整体的定开的能力。 - -**[02:06:39] 发言人 0**:也希望咱们的咱们的销售行也看到定开能力、系统集成能力、解决方案能力。 - -**[02:06:48] 发言人 0**:你们也看到这个表了所有这些能力面,我们其实现我们个人公司最看重的还是基于云桌面,或者说咱们不说基于vdi,基于vi下面的安全纳管安全纳管和智能。 - -**[02:07:02] 发言人 0**:如果在安全纳管和智能里面你们能找到一些项目,咱们把它项目化运作,然后在运作过程间我们也全力支持。 - -**[02:07:11] 发言人 0**:在这个更细分的场景里,我们再孵化一些产品出来,我觉得能够在区域里面能够可复制,能够在全国可复制。 - -**[02:07:20] 发言人 0**:我操,那我觉得肯定要中奖了,我肯定要大奖了,我肯定觉得我操你你这个认知你们的高度很高,是吧? - -**[02:07:28] 发言人 0**:能够想到这个,或者说能跟客户一起。 - -**[02:07:30] 发言人 0**:但是可能不是你想的,可能客户想的或者说环境所致。 - -**[02:07:34] 发言人 0**:不管怎么样,我觉得这个一定你想不出来,别人也能想得出来,所以我觉得一定是我们一个销售要工作要思考的一个地方。 - -**[02:07:44] 发言人 0**:所以还那句话,虽然我们现在这个紫光绘制还少哈那紫光绘制在七八年前一两个人几个人的时候,谁能想到会有今天呢? - -**[02:07:55] 发言人 0**:是吧那那我觉得那再过几年不是啊我们的云桌面文的那个我们的AI出来,我们能分好几类人。 - -**[02:08:04] 发言人 0**:不是不可能,所以我觉得希望在座的第一有信心,第二就是我们内部加强沟通,然后把这个当前的问题,通过AI的生产力,把它内部流转的更高速更高效。 - -**[02:08:21] 发言人 0**:同时我们把这个产品的AI化,云桌面的A化,我们要把它这个要把它一定要把它做下去,而且我们这是我们这个公司这次转型的一个非常重要的话。 - -**[02:08:37] 发言人 0**:而且我觉得每个人都应该给公司有共一样的共识有一样的共识。 - -**[02:08:44] 发言人 0**:下来你们如果有什么样的更多的想法,这个企业微信,我觉得你随时可以给我发,随时可以给我发。 - -**[02:08:56] 发言人 0**:你说我觉得这里面我们有点机会,个会叫的孩子有奶吃是吧? - -**[02:09:03] 发言人 0**:一定要去去去呼吁,内部要呼吁,我们共同把这个把这个咱们把整个组织,把经营娱乐面的一个组织的经营把它做好好吧。 - -**[02:09:20] 发言人 0**:我就说这么多。 - -**[02:09:25] 发言人 0**:好,汇。 - -**[02:09:26] 发言人 1**:议结束。 - diff --git a/agent_memory/uploads/chat_2b0479c17171/1782271550536_4_transcript_712.md b/agent_memory/uploads/chat_2b0479c17171/1782271550536_4_transcript_712.md deleted file mode 100644 index d1c8ddf..0000000 --- a/agent_memory/uploads/chat_2b0479c17171/1782271550536_4_transcript_712.md +++ /dev/null @@ -1,2918 +0,0 @@ -# 会议712 - -**会议时间**:00:00:01 - 02:01:54 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8 - -## 会议记录 - -**[00:00:01] 发言人 0**:你的数里面主要是升高那个数,跟你对过没有? - -**[00:00:06] 发言人 0**:就是最。 - -**[00:00:07] 发言人 1**:终的结果。 - -**[00:00:09] 发言人 1**:我根据财务的收款。 - -**[00:00:10] 发言人 0**:你不能只跟据财务收款,你要跟盛刚再对一对,你要跟他通电话对一对。 - -**[00:00:16] 发言人 1**:数据都是从他们系统里面取出来的。 - -**[00:00:20] 发言人 0**:他现在预测的到6月底是多少? - -**[00:00:24] 发言人 1**:现目前的话总的预计数是因为。 - -**[00:00:26] 发言人 0**:数据值得取得。 - -**[00:00:27] 发言人 0**:但是最后预测的话,他他负责人他要有预测的能力,他自己要预测能力,要把预测放进去了。 - -**[00:00:35] 发言人 0**:你不能单独只看这个,这个就是他们取的数据。 - -**[00:00:47] 发言人 0**:然后预500万是吧? - -**[00:00:49] 发言人 1**:对,然后我们这边低一低工程的高,他们这边预计数据是不可报的,低高风险是短。 - -**[00:01:00] 发言人 1**:然后我们这边会根据实际的一个收款发货,然后一些备后情况来做一个评况。 - -**[00:01:08] 发言人 1**:对于他们的项目空间做一个。 - -**[00:01:15] 发言人 0**:我不看收入,你不用老是看那个了,我就看主要看那个那个毛利。 - -**[00:01:20] 发言人 1**:那一栏毛利是按照35%的毛利率。 - -**[00:01:32] 发言人 1**:按照他们之前接收,这个月软件比较多。 - -**[00:01:41] 发言人 0**:定开有146万。 - -**[00:01:44] 发言人 1**:在目前的部。 - -**[00:01:51] 发言人 0**:那净利润怎么才121万? - -**[00:01:54] 发言人 2**:哪儿有问题呢? - -**[00:01:56] 发言人 1**:没有,对,因为每个月差不多在250万的费有。 - -**[00:02:05] 发言人 1**:然后上个月是亏损。 - -**[00:02:07] 发言人 0**:了一少万。 - -**[00:02:08] 发言人 1**:累计对,累计。 - -**[00:02:20] 发言人 0**:总部是记了哪些? - -**[00:02:22] 发言人 1**:然后就是答案都一个就是把它运为,然后一个就是国默博用。 - -**[00:02:37] 发言人 1**:然后还有一些小金头的,很少很小的。 - -**[00:02:44] 发言人 0**:好啊。 - -**[00:02:48] 发言人 1**:然后现在实际的话,劳力已经完成了307万,剩余的主要是微电。 - -**[00:02:59] 发言人 1**:实际上在这两个门基本上是完成了。 - -**[00:03:04] 发言人 0**:那你下来你追着他,一个省长给他跟他就是要他严肃,他这个就是要求留机,你们这个需求定开。 - -**[00:03:21] 发言人 2**:这个其跟我这儿其实也不一样。 - -**[00:03:24] 发言人 1**:我这是不含税的。 - -**[00:03:33] 发言人 0**:好吧,好。 - -**[00:03:34] 发言人 4**:我这边其他。 - -**[00:03:36] 发言人 1**:没有然后。 - -**[00:03:43] 发言人 0**:对,还有马上是吧? - -**[00:03:45] 发言人 0**:马上到月底了,你一个雪秋,这里你们定开一个是这个雪球流进,定开升高那里好不好? - -**[00:03:55] 发言人 0**:好,继续。 - -**[00:04:03] 发言人 3**:刚说入台我们已经画了整个我们绿色部分,我们测试器我的时。 - -**[00:04:11] 发言人 3**:一起绿色的就是去上刺,有的已经完成了,我完成了自。 - -**[00:04:20] 发言人 3**:即使我们的足球业的我们平台的走织链运营。 - -**[00:04:24] 发言人 3**:然后这是几个,一个就是那个重点工作,就是上周完成了合北智算的个签约,合北智算那个融合交换机,7680多万,然后切除就完成了。 - -**[00:04:38] 发言人 3**:然后那个风险也跟那个。 - -**[00:04:43] 发言人 0**:青岛两个点上。 - -**[00:04:44] 发言人 3**:两个点,因为即使青到先客胡松,我们1.2个繁体算是我他拿太多也你必要,你什么都不让谈心海欠货,那你搞那么多,我这边人家压力也大。 - -**[00:04:56] 发言人 0**:就是说把这1.2不用聊。 - -**[00:04:58] 发言人 3**:我们他就可以拿走是吧,对不对? - -**[00:05:00] 发言人 3**:他他他这个我跟刘凯也让他去问问下面的那个那个谁之金,以及包含何小强他们,胡松经理就是问他。 - -**[00:05:13] 发言人 4**:很。 - -**[00:05:17] 发言人 3**:样。 - -**[00:05:20] 发言人 0**:到好吧。 - -**[00:05:24] 发言人 3**:继续。 - -**[00:05:25] 发言人 3**:然后收款就是这个我。 - -**[00:05:27] 发言人 0**:觉得这个东西今年有,明年就没了。 - -**[00:05:31] 发言人 3**:是妈的,所以说用户有操作了,是这个理解,有一年吃一年,这个东期,然后收款的话就是国务用了23万,我曾前我叫。 - -**[00:05:47] 发言人 2**:什么什七回重,而回重。 - -**[00:05:51] 发言人 3**:不是个集单收款那家,然后我用那个收款那家,最后尾款23万. - -**[00:06:02] 发言人 6**:打过来了,是伟吗? - -**[00:06:05] 发言人 6**:两种打过来,他那个早过只是对,就是现金。 - -**[00:06:11] 发言人 3**:然后丁开的是双四收入五元。 - -**[00:06:16] 发言人 3**:是不定池是背靠背没多大意义,这几个做法。 - -**[00:06:21] 发言人 3**:然第二个事情就是辽宁东北大学周五我去找高研的时候,他也去找教授,赵教授已经找到合个往前一个打进去了,就是400万这个事儿,那个教授自己找人了,就不需要了,就不需要自经找人了。 - -**[00:06:37] 发言人 3**:高演说只能在等们下次再合作。 - -**[00:06:40] 发言人 0**:这个太难了,这个中间链条太长了。 - -**[00:06:43] 发言人 3**:我在是成都子公司会议,等他开完上时电话开完会就给你报。 - -**[00:06:49] 发言人 3**:然后约定的是明天给出经营费用,然后收入带时间以及空间,就是项目空间储备,待时间落地了,然后这三张表拿给股。 - -**[00:07:00] 发言人 3**:另外就跟徐凯也商量了,说发含担心营销国他不会给那个封封口直达,所以封评不会给那个封封评,所以说他说还不如去约封评。 - -**[00:07:10] 发言人 3**:徐凯也没有逼我老。 - -**[00:07:11] 发言人 0**:觉得是这个势,就小果他一点都不决策,就给他一个正式的东西都要不拿着重东西,他也不敢在手上留。 - -**[00:07:19] 发言人 0**:是不是他决得不了你你得发他决策,就给他一个正式的东西,就我们给他一个正式的函,给他我们要搜的那个东西。 - -**[00:07:29] 发言人 0**:对他的要不要不拿到函的,你那到时候拿到你手上发烫了,他发烫了他怎么办? - -**[00:07:36] 发言人 0**:他肯定得这东西还要处理不了。 - -**[00:07:38] 发言人 0**:你现在是没有一个没有一个触发,没有触发的一个没有一个出发点,是就现在要走出发点,那找个出发灯心一个。 - -**[00:07:47] 发言人 0**:对对对,我觉得你还触发他就给他是吧。 - -**[00:07:50] 发言人 0**:这个函你不交,我也可以交给你上级,你许敢跟外面给一开,我也给交给上级是吧? - -**[00:07:55] 发言人 0**:触发他,那我先把函子说,对,然后跟徐磊说两边一起走是吧? - -**[00:08:01] 发言人 0**:就出发的,你要出发的他也会去教的,他不教拿这个手头烫的,对不对? - -**[00:08:05] 发言人 0**:我给你比如我举个例子,我给你个紫光,给我汇智商报你不上报你的某公司,你自己也不决策,那就就就就就就麻烦了好是吧? - -**[00:08:15] 发言人 0**:因为你首先你触发了你,你要去决策,现在就是要触发他决策。 - -**[00:08:21] 发言人 3**:然后上次2. - -**[00:08:22] 发言人 0**:比如说我撤单,总人我他妈告我,我几个名,我马上告他,我说你我我这个他就感觉我。 - -**[00:08:29] 发言人 3**:感到有压力的触发他。 - -**[00:08:31] 发言人 3**:行。 - -**[00:08:31] 发言人 0**:这个我会过来。 - -**[00:08:32] 发言人 0**:咱因为咱这中西中间不管是那个女的还是那个谁,都要给我们任何都没有感情。 - -**[00:08:38] 发言人 0**:我们抛开感情全靠法律。 - -**[00:08:40] 发言人 0**:好,所以我们就靠这个,这就就这这这这个那这个下午就出了,必该说的说完了。 - -**[00:08:46] 发言人 0**:现在你现在就是往我之前说的那个,本来说这个给了面时间,本来就让拧这个螺丝是吧,给了时间,他这个最后的结果还是跟他的两个月之前拧。 - -**[00:09:00] 发言人 3**:难的很。 - -**[00:09:01] 发言人 3**:我就我我要开个会,全是这么一堆垃圾话,一点用都没有,都可以给你开。 - -**[00:09:09] 发言人 3**:算了,会后的给你看,就不浪费他家家时间。 - -**[00:09:13] 发言人 3**:然第四个就是那个那个藏品二期,上周二跟华商客服首仓安全开完会。 - -**[00:09:19] 发言人 3**:然后开完会你们你就是跟我说,让跟让我联系,他们跟他确认,一直到中午他才给我回电话,我会后就给他打电话了,说两中午跟他说两个点的事儿,我说中午陈峰总该怎么说,我说陈峰总这走一走,已经说陈峰总已提到走一走的消息了,就是说跟毕总一谈好了,就两个点。 - -**[00:09:38] 发言人 3**:但是冯长安说毕总找他了,没说两个零事不能亏损,说以说想做到6到7个点,然后我我这面我这边说我接受了通知是两个点。 - -**[00:09:46] 发言人 3**:但是我说我第一第一,我说这是内部项目,我们不会赚钱。 - -**[00:09:50] 发言人 3**:我说第二,今天我本身就要提交华山客户的一些资料,提交的时候我们会不会问紫光新云谷光,我们用华山客,你是不是可以给我们保增加点利润和预算。 - -**[00:10:02] 发言人 3**:然后今天会后,我这边中午郝龙去提交资料的时候,我跟郝龙的商量就是一我把现实情况告诉他是哪一项目。 - -**[00:10:10] 发言人 3**:二招标的是紫光星为还卡我们的卡,我的价格。 - -**[00:10:13] 发言人 3**:你想要六个心理预算可以,但是招标的时候还肯定会卡卡的时候我也会给你试服入我们预算利润也不高。 - -**[00:10:21] 发言人 3**:所以说冯长安过表达的,他那边跟B总不亏损,6到7个点才行,希望我们给他争取不亏损。 - -**[00:10:28] 发言人 0**:争取6到7个点。 - -**[00:10:29] 发言人 0**:没有我现在就是两个点,因为我们都没有多少钱。 - -**[00:10:33] 发言人 0**:这个东西你就是借你个壳,你还讲什么,你要你那没人,你没有这生意赚一点,没这生意两个点多少钱? - -**[00:10:40] 发言人 3**:10万2000万,40万。 - -**[00:10:42] 发言人 3**:对。 - -**[00:10:43] 发言人 0**:有这生意,你有40万就赚一点,你没40万我不找你了是吧,你你你这个就是这意思。 - -**[00:10:49] 发言人 3**:然后他那边说逼须文给他说的是做到不亏损,然后他就开始各种磨。 - -**[00:10:55] 发言人 0**:说是又要对,做的不亏。 - -**[00:10:57] 发言人 0**:你两个点不用派人的,他要派人吗? - -**[00:11:00] 发言人 3**:要派项目,他要派至少名誉项目挂。 - -**[00:11:03] 发言人 3**:因为他是中标公司的一进的项目经理。 - -**[00:11:07] 发言人 0**:那成本算百两个点。 - -**[00:11:08] 发言人 0**:那是成本,那可以。 - -**[00:11:10] 发言人 0**:你那你如果是在挂项品的另外成本上面。 - -**[00:11:13] 发言人 3**:你不到现场,要是去一趟,要是去一趟,就像我们那成本上面那个点,好吧。 - -**[00:11:18] 发言人 0**:那个算成本,那我下我因为你这个事,你还得跟紫薇交代,你因为你最后把紫总我谈的两个点,你们他妈整这个七个点,你们就这水平我们没答应。 - -**[00:11:29] 发言人 3**:对不对? - -**[00:11:30] 发言人 3**:所以我专门汇到个。 - -**[00:11:32] 发言人 0**:而且按说那原则就不亏损,能赚多赚,第一不亏损我们给你保障,第二能赚多赚,我们也没赚到钱,就不是说大家说意这你这个逻辑我不是很赞同。 - -**[00:11:43] 发言人 0**:你说我们等到去跟他谈集团,如果说我们自己家集团会不会涨一点,这个逻辑不不不成不成立的。 - -**[00:11:50] 发言人 0**:你不管是谁的家,因为你你招不招投标,我在我那边就一定是什价格降的最低。 - -**[00:11:56] 发言人 0**:比如我是甲方,你们谁来,我也不想得这个。 - -**[00:11:59] 发言人 0**:我难道说你们因为是集团利部的。 - -**[00:12:01] 发言人 3**:我都给你讲这话,不能这么说,我算我表达是这意思。 - -**[00:12:05] 发言人 3**:我们上一次就是因为内部标,第一次我们中标准都中标了1 1100 1100万,集团反过来压我们降了100,接近100万。 - -**[00:12:14] 发言人 3**:他说正我说的意思,正因为是内部公司,反而让我们把利润空间给压缩了。 - -**[00:12:19] 发言人 0**:对,他要压。 - -**[00:12:21] 发言人 3**:对,就是你即使中标了股东股份,还会开会让我们二次降价。 - -**[00:12:25] 发言人 3**:我们本身一期就是二次降价接近100万,而就降了150万,是降了多少? - -**[00:12:31] 发言人 0**:就是要跟他说,我们没挣到钱,因为这里面还有垫资,我们算下来就是四个点给你一半。 - -**[00:12:37] 发言人 0**:我我们我卖电动多资,你把它设计成这个样子,对不对? - -**[00:12:41] 发言人 0**:我们就四五个点,或者说我五个点,或者我十个点以内,我就八个点。 - -**[00:12:47] 发言人 0**:那紫薇都会编这个话,紫薇编的话编的圆的很,我一共就八个点是吧? - -**[00:12:52] 发言人 0**:紫薇说紫薇圆的,她紫薇跟那个都没听跟我们沟通,紫薇直接跟人家说,那绘制不挣钱,没几个点,就个位数的点。 - -**[00:12:59] 发言人 0**:你要只要说的我是个位数,那你说你要多少,你们要觉得对不对? - -**[00:13:03] 发言人 0**:你说我哥哥说,而且我垫子这风险,我怎么风险我收不回来钱? - -**[00:13:07] 发言人 0**:你看着账面利润收不还收不回来钱,那么麻烦对不对? - -**[00:13:11] 发言人 0**:就是因为你我我我现在我们就是蓝领就这水平对不对? - -**[00:13:14] 发言人 0**:你要你如果一定要要,那我们就只找其他外面去找,是吧? - -**[00:13:17] 发言人 0**:你跟能说清楚就是大家关系,你不挣钱,你不可能,你比我挣的还多,那我挣他妈那干嘛? - -**[00:13:23] 发言人 0**:还有我风险比你大,对不对? - -**[00:13:24] 发言人 0**:我都是个位数,你就不少。 - -**[00:13:26] 发言人 0**:你们这么觉给他说,你把成本压了,你把成本做起来,做到。 - -**[00:13:30] 发言人 0**:因为只有我们知道成本,对不对? - -**[00:13:33] 发言人 0**:你做起来以后,你就他就看着你就是不到10个点,你要几个点,对不对? - -**[00:13:38] 发言人 0**:我还不出资,我还出什么东西,对不对? - -**[00:13:41] 发言人 0**:而且因为这是集团的,是外面的,我们也可以说他妈的我挣了20块钱给你,他妈的300。 - -**[00:13:48] 发言人 0**:那现在集团的很透明,集团就是要压死你,对不对? - -**[00:13:53] 发言人 0**:集团那软件还不愿意做,就是因为不挣钱。 - -**[00:13:57] 发言人 3**:我讲故事好吧。 - -**[00:13:58] 发言人 3**:所五个g pu国产U的项目,以跟俊杰装备已经弄清楚了,就是我3GPU算力太强,算力性能不够,以及那个软件不适备,就没法去搞重度渲染测计的工作,所以这个事情已经上做不了。 - -**[00:14:20] 发言人 3**:对上好多。 - -**[00:14:20] 发言人 3**:第六个是中法云作面,一共是这的还是哪里做法云作面四川的,为什么写在这? - -**[00:14:28] 发言人 3**:担心就是招今天早上可中了吗? - -**[00:14:30] 发言人 3**:这已经中了,但是是年前的预算,之前报价150万,现在已经涨到了197万了。 - -**[00:14:38] 发言人 3**:我们在报价正常不利的情况下,我现在渠道找了张威,张薇,就是很冒火。 - -**[00:14:43] 发言人 3**:周末给张涛发了个微信,让张涛来处理这到底怎么回事? - -**[00:14:49] 发言人 3**:因为渠道给张威那个表达的,说实慢慢的涨了,涨了一千多块钱,实际上我们就是涨了四十多万,是因为内存和租是涨价的。 - -**[00:14:59] 发言人 0**:对。 - -**[00:14:59] 发言人 3**:正常今天早上徐凯跟张涛一起去找张威,然后就我们差不多就是现在的报价197万。 - -**[00:15:07] 发言人 3**:如我们的我担心,如果张威在他们汇报完了给你打电话,其实我们就是象征性的的197万件摩个礼物也差不多了。 - -**[00:15:17] 发言人 3**:但是我刚刚也问了宋刚,反正是你利润肯定是按照正常毛利报的。 - -**[00:15:23] 发言人 3**:如果是张威愿意,他什么时候种的,是华山的销售去种的是吧,华山销售和渠道和去年种的。 - -**[00:15:29] 发言人 7**:什么时候种的? - -**[00:15:31] 发言人 7**:去年涨价钱重的,涨价钱重的,现在要进货。 - -**[00:15:34] 发言人 7**:对,涨价钱重的现在才开始要货。 - -**[00:15:36] 发言人 7**:然后去年报给他们终端报了很低的价格,是150万,150万那个终端只留了不到50块钱一台的利润。 - -**[00:15:45] 发言人 0**:后来他自己他当时没提,他没提过,他为什么不提呢? - -**[00:15:49] 发言人 7**:他他他没定下来。 - -**[00:15:50] 发言人 0**:他不没实施,他提了。 - -**[00:15:52] 发言人 0**:所以中标那个价也也是是什么价格。 - -**[00:15:55] 发言人 7**:去年是900块钱台,现在要1300多。 - -**[00:15:58] 发言人 0**:我知道,但那那他等于说他只能出那么多钱。 - -**[00:16:02] 发言人 7**:我没理解这个逻辑,那他手上还是有一点钱,那他想尽量压低一点。 - -**[00:16:07] 发言人 0**:我他我中了标了,像这种,因为涨价中了标,你如果不你就废标就完了。 - -**[00:16:12] 发言人 7**:我我我不做就完了。 - -**[00:16:14] 发言人 7**:这个投标跟我们没关系不。 - -**[00:16:16] 发言人 0**:我知道。 - -**[00:16:17] 发言人 7**:他我说说完他是总级去做标。 - -**[00:16:20] 发言人 0**:我知道再找我们要货,我知道,就集销商如果最终的结果是因为那个甲方是不会给多的钱。 - -**[00:16:27] 发言人 2**:应该是甲方会给多少钱。 - -**[00:16:29] 发言人 0**:那基本上最多我做不了整个费,要不然我就只有减少不计,要不然我减少自己的利润,对不对? - -**[00:16:36] 发言人 0**:大时叫服务器,对不对? - -**[00:16:38] 发言人 0**:那他最后中不了。 - -**[00:16:39] 发言人 7**:那他服务器他踩没踩,这他这190万好像是含服务器的。 - -**[00:16:44] 发言人 0**:那这是集商自己的原因,可能我们不管好吧,我觉得这集。 - -**[00:16:49] 发言人 3**:销商自己的原因。 - -**[00:16:51] 发言人 0**:我担心稍微会给你打电话。 - -**[00:16:53] 发言人 0**:他妈一百多万,我觉得他一百多万,他说打不打电话。 - -**[00:16:57] 发言人 3**:他就是跟他一起跟那个销售就完了。 - -**[00:17:00] 发言人 3**:他找我。 - -**[00:17:00] 发言人 0**:我也会跟他说,我说你那么大领导一百多。 - -**[00:17:04] 发言人 0**:在乎这个给你报一下。 - -**[00:17:05] 发言人 3**:就担心你什么都不知道。 - -**[00:17:07] 发言人 3**:他张着一打电话,你说怎么要再把我们是弄的就尴尬了,给你报备一次了。 - -**[00:17:12] 发言人 0**:对我我我我个人认为他可能不会。 - -**[00:17:14] 发言人 3**:因为你们一百多万。 - -**[00:17:16] 发言人 7**:我不知道他招微信,那其实就是我们主管找是吧? - -**[00:17:32] 发言人 3**:然后招人,云南的人今天入职,你就答应好了。 - -**[00:17:35] 发言人 3**:我跟商务的云南商务管管商业张强也说了完说会后我拉着他们一起开工会。 - -**[00:17:42] 发言人 0**:上次他们是余江山,是谁给我打的电话,有一单是他跟我说,你们在哪出差? - -**[00:17:47] 发言人 0**:What you . - -**[00:17:50] 发言人 4**:can . - -**[00:17:51] 发言人 0**:do . - -**[00:17:52] 发言人 3**:with that? - -**[00:17:55] 发言人 0**:那。 - -**[00:17:57] 发言人 3**:是也是因为涨价的策本。 - -**[00:18:01] 发言人 3**:对,我去。 - -**[00:18:02] 发言人 0**:找我磨了,我我说我就跟他说,我说可以,我说这次我就给你我就你打电话来是吧,我就给2万块钱,他最后说感谢,我说你们大领导你把我给我,我说但是不是他没抹,我说你既然你找了,我肯定给你降一些,对不对? - -**[00:18:20] 发言人 0**:我说你都来找我了,我说但是实话实说,我说我也不挣钱是吧? - -**[00:18:25] 发言人 0**:我说咱们这兄弟们兄弟妈的是吧。 - -**[00:18:27] 发言人 3**:我说我就给个面子,我这给你报的想声,如果没招,你把这个7万块了就完了。 - -**[00:18:32] 发言人 0**:我还是有35%,我万还对于我对他来说73000毛毛. - -**[00:18:37] 发言人 3**:对于我来说70001个给你报一下。 - -**[00:18:40] 发言人 3**:他担心他。 - -**[00:18:41] 发言人 0**:走对于我来说期望还是挺高的。 - -**[00:18:43] 发言人 0**:上面哪个经理,我后来给他说了,他自己都不好意思。 - -**[00:18:48] 发言人 0**:对了,那就少一点,少感谢下次我说真的,我说咱们兄弟,我说这个是吧,我说我你打电话我,但是实他妈的是就是这个样子。 - -**[00:18:58] 发言人 3**:云南的人气电路十报说了,跟云南商业主管赵强也沟通了让他先带一带。 - -**[00:19:04] 发言人 3**:然后省代和下面的销售都认识之后,就开始他自己跑开了。 - -**[00:19:10] 发言人 3**:因为他本身就是招了按招了进天入职,然后那个本身就是私心服的,他也他他本你下来,他们就是谁跑哪儿。 - -**[00:19:18] 发言人 0**:谁跑哪儿了,你到时候就跟我说一下。 - -**[00:19:21] 发言人 0**:好,那咱们我们那个会后我们再商量好好。 - -**[00:19:25] 发言人 3**:然后云视的项目空间是还是1100 1.08个亿。 - -**[00:19:30] 发言人 0**:但协同营销实际上是没有什么作用的。 - -**[00:19:33] 发言人 3**:现在目前来看,协同营销。 - -**[00:19:35] 发言人 3**:那四个人工学跑的可以,河北就是交给刘凯和陈志华。 - -**[00:19:39] 发言人 0**:他两个跑,我开始没半年,他没有那个没贡献也不大。 - -**[00:19:45] 发言人 3**:你是指中景数据? - -**[00:19:47] 发言人 0**:对呀对。 - -**[00:19:48] 发言人 3**:他们还在充,一个是冯文超签了一个2 100 300多万,是几百多万的利润进来,里面有二十多万的利润。 - -**[00:19:58] 发言人 3**:然后刘用凯每次在在河北就周你那还没表现还挺集中,都签单了,还没集中。 - -**[00:20:05] 发言人 3**:六月份要寄,六月份寄不了钱,今年要记。 - -**[00:20:09] 发言人 3**:冯超不是刚3 4月份还是五月份把那个迁进来的吗? - -**[00:20:15] 发言人 3**:然后刘凯,那刘凯那个数还没算是吧? - -**[00:20:18] 发言人 3**:对,还没算。 - -**[00:20:19] 发言人 3**:然后徐凯这个就是重心全在于位上,完了之后再就加上跟也是商业主管和政府主管的郭达安、张威安排你,他也在陆续弄,上次是南充智慧城事务部,也是他在跟。 - -**[00:20:37] 发言人 3**:这四个是我感觉现在节奏跨你觉得还可以? - -**[00:20:42] 发言人 3**:这四个每周开会,我们郝龙郝郝龙跟王斌两个完全飘在外面,还挺锻炼,也不跑没跑运做面,然就是等好容就是等大项目。 - -**[00:20:52] 发言人 3**:王斌最近好像连系同项目都少,中医物联我不知道怎么弄。 - -**[00:20:58] 发言人 2**:现在甚至。 - -**[00:20:59] 发言人 3**:所以不前我十的过程中,好论就是吃算那几个钉钉子那几个吃算。 - -**[00:21:08] 发言人 0**:好,反正半年就是个坎儿。 - -**[00:21:09] 发言人 0**:你跟他们通知一下,半年他妈的你这个你半年业绩就是个坎儿,包括这个谁,湖南那个叫什么这个过对。 - -**[00:21:19] 发言人 3**:到时候我还专门问了他一下数据,他数据一直。 - -**[00:21:22] 发言人 0**:你给他们发个文,你半年是个坎儿,都要交作业的。 - -**[00:21:26] 发言人 0**:你说我们还要给集团交作业,各级个交作业,你的作业不行,最后半年下去可能都会有处置的。 - -**[00:21:32] 发言人 0**:好,反正就要注意了。 - -**[00:21:33] 发言人 0**:那我就这种半年这个坎,那半年不行,今天把那个明弄好。 - -**[00:21:37] 发言人 0**:对,就跟他讲你半年这个坎,你半年你必须要打证,你这必须要打证,不打证这个不可能的。 - -**[00:21:44] 发言人 0**:他们几个人这样的半年是个坎,好吧,你打不正,我们这半年公司都会做,公司会开会的,对于每个人的情况。 - -**[00:21:53] 发言人 3**:然后再一个就是俊杰,你那两个优优系列的检测报告,现在进度如何? - -**[00:22:00] 发言人 3**:能不能凑下来? - -**[00:22:01] 发言人 3**:欧阳报告上次提交了。 - -**[00:22:03] 发言人 7**:今天早上又来说我们上周注册证还是老公司的名字,去年他这个方式是认了的。 - -**[00:22:11] 发言人 7**:去年的两州市场,我开开了一个新紫光集团的公司,跟名申请,他就认了,今年的首册也不认。 - -**[00:22:20] 发言人 7**:然后欧阳现在马上找集团去要新的公司的上注册证。 - -**[00:22:25] 发言人 3**:到家又号了就了。 - -**[00:22:27] 发言人 3**:然后打需要去了,为什么来不及了? - -**[00:22:30] 发言人 7**:那欧阳上周上周一上周一提他,因为他有过程,上周一提交给C这边机构,然后今天早上反馈说我们那个公司名称。 - -**[00:22:41] 发言人 0**:他有一个星期是吧? - -**[00:22:43] 发言人 0**:你如果你再弄,不是我们内部的,不,如果集团问题我可。 - -**[00:22:50] 发言人 7**:以去协调,你不是内部问题。 - -**[00:22:53] 发言人 2**:集团还应什么意思? - -**[00:22:58] 发言人 3**:今天拿新的就进早就就。 - -**[00:23:01] 发言人 0**:是什。 - -**[00:23:01] 发言人 7**:么个就招不了这标了,投不了标了是吧? - -**[00:23:07] 发言人 7**:没有这报告就投不这标了。 - -**[00:23:10] 发言人 7**:明多说说所谓政治已经结束,现在政在发生过程。 - -**[00:23:14] 发言人 3**:但你把这个协给我们,你协助我们,我这个就有点爆告,就是你什么都没有,他不打票,还有的豆假这个东西。 - -**[00:23:21] 发言人 7**:其他只票都是这样。 - -**[00:23:23] 发言人 0**:你们就找一个方式,因为这个东西我觉得可能还是会有办法。 - -**[00:23:28] 发言人 7**:因为毕竟不是我们一家这样很多家西。 - -**[00:23:31] 发言人 0**:因为毕竟你是紫光集团,你的事情是真实的,是吧,你只能可能少了个手续。 - -**[00:23:36] 发言人 3**:给个解释完的时候这么。 - -**[00:23:38] 发言人 3**:隔壁图说发,下面几个要签单或投标的项目,一个就是北京那个谁谁那包包浩伟,包括那个的标城伟是冲标。 - -**[00:23:55] 发言人 0**:估计是冲标。 - -**[00:23:57] 发言人 7**:没没把我挺的。 - -**[00:24:02] 发言人 3**:那挺要的的这道这那助就一直引导这。 - -**[00:24:08] 发言人 7**:找沟通。 - -**[00:24:09] 发言人 2**:事然那个京我。 - -**[00:24:11] 发言人 3**:觉得有关系。 - -**[00:24:12] 发言人 0**:提早都会想种办法。 - -**[00:24:15] 发言人 0**:他们做。 - -**[00:24:17] 发言人 3**:后手批,我没答应,我说等等一等,我就实在不能批,为啥我就不说了? - -**[00:24:24] 发言人 3**:实在因为学校是他们肯定有一样的问题,我种方式我们就不在上说这个事,那下面是几个项目情况,然后那个我就不懂了,本身每周例会我都跟他们过。 - -**[00:24:37] 发言人 0**:我多其实总理这种开会,所以说会议纪要也麻烦。 - -**[00:24:41] 发言人 0**:刚才有时候那话没理对。 - -**[00:24:43] 发言人 2**:所以我压根都没提你们。 - -**[00:24:45] 发言人 0**:那你为啥要提? - -**[00:24:46] 发言人 0**:你提我加一个,然后放在里面这会议,所以他怎么能把这句话删了? - -**[00:24:52] 发言人 0**:也有些会议这句话不叫记录我,所以从这些看得出来,这个就是会议纪要本身还是有些问题。 - -**[00:24:58] 发言人 0**:就这个会议纪要这种模式,你记到自己手机上就很简单。 - -**[00:25:02] 发言人 0**:换句话说,你就是你你记到公司的那些名件,我觉得都是有点问题。 - -**[00:25:07] 发言人 7**:所以说要拿走了,要修改。 - -**[00:25:09] 发言人 7**:最后一下昨天。 - -**[00:25:11] 发言人 2**:的反而哪种是好的? - -**[00:25:13] 发言人 3**:那天像那个。 - -**[00:25:14] 发言人 0**:悟空他们这种方式,就大家开这个研讨会,他们主动记了,我去他们去研究,我觉得这个反而这种方式是可能最好的方式。 - -**[00:25:23] 发言人 0**:因为客户第一需求就俊且你下来以后还是用他们所有人要用上这个东西才行。 - -**[00:25:31] 发言人 0**:让他写日报,写到最后写的他写的他这个日报怎么写呢? - -**[00:25:35] 发言人 0**:他就写不写不好,只能靠这个把每天的这个记录下来才能写的好啊。 - -**[00:25:40] 发言人 0**:那你这个去弄内驱力就没有了你没有这个内驱力,你也不要日报,你也不要东西,他就没有这个要写,也没有要记的方式,对不对? - -**[00:25:50] 发言人 0**:我们就做个考核,是这的。 - -**[00:25:58] 发言人 7**:他。 - -**[00:25:59] 发言人 0**:们要做个日报核细。 - -**[00:26:11] 发言人 7**:节,你。 - -**[00:26:16] 发言人 0**:想怎么,我们财政部后来研究分析,因为你脱离群众时间长了有问题。 - -**[00:26:24] 发言人 0**:包括你们我上次说的,你们这个要出去跑,你们要出去跑,这种你们要你们自己定下,你们你们现你你们就你们你们你们自己到那个渠道商到那个一线去,你们有一做一个调研报告,好吧? - -**[00:26:39] 发言人 0**:这必须进渠道,不用进华,要华山价值要进华商,全是给你们报围,你渠道建渠道。 - -**[00:26:49] 发言人 3**:你渠道然后见那。 - -**[00:26:51] 发言人 0**:个客户去跑,你自己自己给。 - -**[00:26:54] 发言人 3**:我自己给我定个划华后三简单下咱弄,你等会儿说。 - -**[00:27:00] 发言人 0**:那个东西我觉得也不是那么的,我不是给你发了个视频吗? - -**[00:27:06] 发言人 0**:800万. - -**[00:27:06] 发言人 8**:900万,那玩意儿他。 - -**[00:27:08] 发言人 0**:妈的900差不多,跟我都想得出来那个逻辑。 - -**[00:27:12] 发言人 0**:那那东西就是他妈的就是个赌场,差不多就是好打信息仓。 - -**[00:27:22] 发言人 0**:这就是郝荣最喜欢干的事,就这种玩意,两边就是赌场。 - -**[00:27:30] 发言人 5**:这边的话其升这边上周是有一个视频互联网行业立体数联网场景。 - -**[00:27:36] 发言人 5**:然D的这个然后就相当于是你去鼓励去报了这个名额。 - -**[00:27:43] 发言人 2**:因为是技术里面。 - -**[00:27:45] 发言人 5**:现在我们对,也是王斌,也就实我们去年的商课的。 - -**[00:27:51] 发言人 2**:也是提示以后。 - -**[00:27:53] 发言人 5**:第二个是建设银行的山西省分务行的动力团动画的力监持监测。 - -**[00:28:02] 发言人 5**:有13家去投入这个业,上周也报告了这个事,现在的话应。 - -**[00:28:08] 发言人 0**:该这谁能想到很多。 - -**[00:28:12] 发言人 0**:陈志华的。 - -**[00:28:14] 发言人 3**:项目就。 - -**[00:28:16] 发言人 2**:是自。 - -**[00:28:17] 发言人 3**:己的项目,然后山西那个。 - -**[00:28:22] 发言人 0**:是的。 - -**[00:28:24] 发言人 3**:那个。 - -**[00:28:25] 发言人 5**:是我们的名排那排第样项百。 - -**[00:28:31] 发言人 0**:多。 - -**[00:28:32] 发言人 2**:四百多百多。 - -**[00:28:34] 发言人 2**:蔡总几个点。 - -**[00:28:36] 发言人 3**:现在他是4.5. - -**[00:28:38] 发言人 5**:是4.5. - -**[00:28:39] 发言人 0**:还是四五行,那就不管他,烂么值钱的。 - -**[00:28:44] 发言人 0**:好。 - -**[00:28:44] 发言人 5**:继续。 - -**[00:28:45] 发言人 5**:好,第三个就是那个下那。 - -**[00:28:51] 发言人 2**:主要就是软件的一些功能的一些沟通。 - -**[00:28:54] 发言人 5**:包括它的开发边界。 - -**[00:28:56] 发言人 5**:这个上周已经确认了,然后们现在在做相应开发,这些我们主要是跟他。 - -**[00:29:05] 发言人 0**:就之前一直说有些东西他们如果做不了,你把它拿下来。 - -**[00:29:12] 发言人 6**:能不能拿下来。 - -**[00:29:14] 发言人 0**:我们来开发了。 - -**[00:29:16] 发言人 6**:做不了是吧? - -**[00:29:18] 发言人 6**:现在他们坏,他们没发自都,但是那个。 - -**[00:29:23] 发言人 0**:那个东西就是他那。 - -**[00:29:25] 发言人 3**:个那个枪手自己找一个小包知。 - -**[00:29:28] 发言人 0**:但数字人的交付其实很难的,如果说关系不到就数字人交付。 - -**[00:29:34] 发言人 0**:其实我我估计这个刘静你们因为我们有个好处,我们这的这个叫大模型,现在够大。 - -**[00:29:40] 发言人 2**:你一般小公司拿不成。 - -**[00:29:43] 发言人 5**:200万. - -**[00:29:45] 发言人 6**:那有。 - -**[00:29:45] 发言人 8**:不是五。 - -**[00:29:48] 发言人 2**:罩子。 - -**[00:29:48] 发言人 8**:罩子。 - -**[00:29:49] 发言人 2**:看你看看。 - -**[00:29:51] 发言人 8**:之前看过他三个。 - -**[00:29:55] 发言人 6**:他三个软件我感觉是商业。 - -**[00:29:59] 发言人 6**:对,说白了做。 - -**[00:30:00] 发言人 5**:的是一些他的描述是很简单的。 - -**[00:30:04] 发言人 5**:但是现在就是使用部门现在觉得这个东西太简单了,就是连一个人都没有一个对话框的一种问询方式。 - -**[00:30:15] 发言人 5**:他们现在不认这个事,现在东司这边准备说,要不我们就已经外采一个,他们自己什办法? - -**[00:30:23] 发言人 0**:那你外采你看看他如果外采成本,它的要求,是吧? - -**[00:30:27] 发言人 0**:我觉得可以因为这东西参与,我把你的好你猜一下好不好? - -**[00:30:32] 发言人 0**:你说就是你说因为我们参与很简单,是什么逻辑? - -**[00:30:36] 发言人 0**:你反正给我钱,我给你做,我不参与你那风险,我也参与不参与你那其他风险这。 - -**[00:30:42] 发言人 2**:两个层面的事情。 - -**[00:30:45] 发言人 2**:对对。 - -**[00:30:45] 发言人 0**:就是你给钱给你做,就不参与你们内部的那些东西,我不给你背靠。 - -**[00:30:51] 发言人 2**:背是吧? - -**[00:30:52] 发言人 4**:你可以让。 - -**[00:30:53] 发言人 0**:李静他么去弄试试。 - -**[00:30:57] 发言人 6**:不过我觉得如果要我们真想做的话。 - -**[00:31:00] 发言人 2**:我就寄给我们的这个人评表。 - -**[00:31:02] 发言人 2**:我有。 - -**[00:31:03] 发言人 6**:因为这个是定制化,我们他们一直是想让我们去,是吧? - -**[00:31:07] 发言人 6**:不,我们还没去一次,我觉得去的话就。 - -**[00:31:10] 发言人 0**:我们这样做可以,我先可以。 - -**[00:31:12] 发言人 6**:你先底下先看看,我们先看的时候你先加,因为那个复。 - -**[00:31:17] 发言人 7**:杂度我觉得没问。 - -**[00:31:18] 发言人 7**:那个要。 - -**[00:31:20] 发言人 2**:他。 - -**[00:31:51] 发言人 3**:验收完全就是说我说的跟商户费用挂钩的,你说纯靠写出来我们去验收,我知道。 - -**[00:31:57] 发言人 0**:所以说就不所以说你不能参与。 - -**[00:31:59] 发言人 0**:我们要别人招标的时候,别人招标他要个什么东西,看我们行不行,对不对? - -**[00:32:03] 发言人 0**:我就是就好比什么停车,对不对? - -**[00:32:07] 发言人 0**:停车我们这不是还给了你钱吗? - -**[00:32:10] 发言人 0**:我们把那个做到是吧,我不管你也不验收,不管那个,反正你我给你的支持,你有钱管了,这个可以做,其他如果不行,你不做。 - -**[00:32:18] 发言人 3**:反正你要记得两家可。 - -**[00:32:21] 发言人 0**:视化业。 - -**[00:32:22] 发言人 0**:但我觉得就是我觉得我建议比如宋总你们还是去一趟。 - -**[00:32:29] 发言人 0**:我觉得因为毕竟你中了一个理工,因为这个标不小,对吧? - -**[00:32:36] 发言人 0**:那你如果他以后还有些其他什么技术客户搞1搞,那你说他如果持续的以后有些什么合作,这个项目里面的一些应该他有没有扩容,我就各级这项目里面的每个层面有没有扩容做。 - -**[00:32:50] 发言人 0**:其实都是可以的。 - -**[00:32:55] 发言人 0**:就有点远,太远了。 - -**[00:32:57] 发言人 3**:天远地多远? - -**[00:32:58] 发言人 3**:去宁夏才2个小时才重新出发,飞机才2个小时,早上一班,我们都可以赶快吃到宁夏吃早餐。 - -**[00:33:07] 发言人 2**:上。 - -**[00:33:22] 发言人 3**:八验收的可能性,你分开了有点难度。 - -**[00:33:40] 发言人 2**:你公司不开公司你不能分开。 - -**[00:33:42] 发言人 3**:你分开了,我们承诺产品。 - -**[00:33:44] 发言人 0**:会比你人工。 - -**[00:33:45] 发言人 6**:生意强很多,我们同时反馈还是很强。 - -**[00:33:48] 发言人 3**:只有把这块拿到我们手里,我们来做这个。 - -**[00:33:51] 发言人 3**:你说是人的小基层太远了。 - -**[00:33:53] 发言人 0**:他除非把他当时如果把云桌面给我,我还有点当时云桌面都拿不到。 - -**[00:33:58] 发言人 0**:因为他们现在为什么当时为什。 - -**[00:34:02] 发言人 2**:么那边的价格。 - -**[00:34:03] 发言人 5**:原是没有,他是在原来的。 - -**[00:34:06] 发言人 2**:学校来。 - -**[00:34:07] 发言人 0**:是原来下来的也有多少,当时飞这就是未台。 - -**[00:34:13] 发言人 5**:不是他他服务器都已经用。 - -**[00:34:16] 发言人 2**:到现场了,当时买有卫。 - -**[00:34:19] 发言人 2**:对。 - -**[00:34:20] 发言人 5**:就是难做对。 - -**[00:34:22] 发言人 6**:回去都做好了。 - -**[00:34:25] 发言人 0**:你们琢磨,看有什么机会好吧。 - -**[00:34:27] 发言人 0**:因为这个因为你现在中国大项目不容易,就把它叫什么呢? - -**[00:34:30] 发言人 0**:价值最大化,利益最大化是吧? - -**[00:34:32] 发言人 0**:然后那个就是延展,看怎么延展。 - -**[00:34:34] 发言人 0**:我觉得如果有可能我们的人能上一点,咱就做一点好吧,你就算清账呗,反正自己能算得清账,对吧? - -**[00:34:45] 发言人 0**:别亏,是吧? - -**[00:34:48] 发言人 5**:然后上周的话是更新了四个博客,然这周的话因为已经那个数,我们现在也有自己的办法,我们这周开始我。 - -**[00:34:59] 发言人 0**:们就这个数字,我觉得就是我有自己有算力对吧? - -**[00:35:04] 发言人 0**:你用的是开源的是吧? - -**[00:35:06] 发言人 0**:吴信。 - -**[00:35:07] 发言人 8**:不是,就是我们自己做哒搭的编排器。 - -**[00:35:09] 发言人 0**:我知道那模型应该是哪模型。 - -**[00:35:12] 发言人 8**:就是用的那个本地的本地模型。 - -**[00:35:14] 发言人 0**:就开本地模型,没有用那个,那你开源的模型你都可以多做,我觉得这个可以。 - -**[00:35:21] 发言人 0**:我觉得你们想一想,数字人道确实是一个产品,我觉这是百分之百的。 - -**[00:35:26] 发言人 0**:你给每个代表数做,每个代表给你1万块钱,他是会给你的你的代表书仅仅说给你个2万块钱,只要你给我宣传出去,比如说两万的代表出去得给你10万块钱,他都愿意。 - -**[00:35:37] 发言人 8**:我们再做几期把效果做出来。 - -**[00:35:39] 发言人 0**:我觉得可以取证。 - -**[00:35:41] 发言人 0**:因为华山不会给代表师经理做实践,华三他自己就是外包的对你如果做的好这个事儿,我觉得就这个产品,盛刚那天说的,坐在我旁边,坐在这个位置,盛刚说的话我是赞同的。 - -**[00:35:55] 发言人 0**:你家江浙人是有有有脑子的。 - -**[00:35:59] 发言人 0**:所这个数字能做好的话,我们给省代做,跟代表这经理做,给代表处做,那是有机会的。 - -**[00:36:06] 发言人 0**:你你小爽我说你看到我的数字人我只要按照我我我我我给你个就是我有个团队? - -**[00:36:12] 发言人 0**:我给你按照你的要求给你说多少期,对吧? - -**[00:36:15] 发言人 0**:一年包年他可能愿意的,因为他我操他这数字能做的,你给他看看你做的多好啊。 - -**[00:36:22] 发言人 0**:他说我看到我操做那么好,说白了只要于老板给我多点两个赞,当然以后就只要老板给我多点两个赞,我操我就值,对不对? - -**[00:36:32] 发言人 0**:对他就是形象,我者数字人是有价值的。 - -**[00:36:37] 发言人 0**:包括那省代,你看那省代怎么做的,都都都都很都都很一般,除非你找个小漂亮小妹妹,一般也不是不那么好找。 - -**[00:36:45] 发言人 0**:所以我觉得数字人这里面是有机会的。 - -**[00:36:48] 发言人 0**:我们的人一方面我们自己,一方面我们是找一些什么,就是去上课也罢,或者跟跟一些同僚去合作。 - -**[00:36:57] 发言人 0**:因为做数字人公司很多并不是我们会比别人做的好,只是我们可能关系会好一些。 - -**[00:37:03] 发言人 0**:因为毕竟是集团自己内部的关系公司。 - -**[00:37:06] 发言人 0**:之前给别人赚还不如给我做,对不对? - -**[00:37:09] 发言人 0**:那有可能代表着经理说他说得要做,或者给他亲戚,他旁边没那么多人,或者就是给下面一个让一个销售办,那销售再就中间赚个钱,在一层一层赚个钱,最后拿出那给代表经理的时候,他妈的那个12 15万是吧? - -**[00:37:24] 发言人 0**:可能最后成本是5万,我操他妈的每个人在里面倒个鸡毛。 - -**[00:37:28] 发言人 3**:所以还有一种方式,杨好,如果喜欢的是会一个月安排一个主管过来找你签服务费,给续点费,给我续点费。 - -**[00:37:37] 发言人 3**:对,你杨好也可以,今天让我甘西续点费,明天让那个谁吕小龙续点费。 - -**[00:37:44] 发言人 0**:而且还算的业绩,我这个可可写经。 - -**[00:37:46] 发言人 0**:所以我觉得数字人包括就么我就可以做,而且数字人就是今天早上我觉什么都发生变化。 - -**[00:37:54] 发言人 0**:你看高频交易量化高频交易我们都知道会很牛逼是吧? - -**[00:37:59] 发言人 0**:它高频对,就越是高频的越有就越趋势是高频的就会就会越牛逼。 - -**[00:38:05] 发言人 0**:你说原来发新闻可能一个月发一条是吧? - -**[00:38:08] 发言人 0**:新闻联播非要到晚上七点,那你现在可能每个小时都会有,对不对? - -**[00:38:13] 发言人 0**:因为参与了原来成本高,原来你新闻联播要减一天减几天,他要这样排排排一天一天排下去是吧? - -**[00:38:22] 发言人 0**:他只能一天播一次,你让新闻联播搞成12.1个,晚上一个,他不好搞,他有时候他只能搞一个,对吧? - -**[00:38:29] 发言人 0**:所以现在你让他每1个小时搞一个都可以。 - -**[00:38:33] 发言人 0**:所以我觉得这种趋势,就这股票交易也是你趋定于他妈的秒级交易的。 - -**[00:38:39] 发言人 0**:又厉害了,就趋近于晚上。 - -**[00:38:41] 发言人 0**:刘静我们下了班,你晚上这些他妈的还在那耗电,那就厉害了。 - -**[00:38:47] 发言人 0**:所以我觉得那个是方向,就是原来不是高频的,以后可能会走向高行。 - -**[00:38:53] 发言人 0**:因为有AI存在,所以像这种数字人这种东西,我还是你句话,我觉得一个月100条根本就不算了,那就升到那来给我整100条多了,能不能20到30条? - -**[00:39:05] 发言人 0**:你看,你随着你AI出来,你你你就从早到晚开始造,我操你总有人看到的。 - -**[00:39:11] 发言人 3**:你看到以后,你从你看总那两条是吧? - -**[00:39:14] 发言人 3**:点个赞。 - -**[00:39:16] 发言人 0**:他。 - -**[00:39:17] 发言人 3**:有。 - -**[00:39:19] 发言人 0**:奇一点,他的个就跟什么,原来我们销单是不是? - -**[00:39:46] 发言人 0**:他就是那个A时代,就是现在的A时代的一个高频,对不对? - -**[00:39:50] 发言人 0**:因为别人不知道高频,别人说我要做的东西要复杂,他我我要简单高频好吧。 - -**[00:39:56] 发言人 0**:刘姐,我这数字人,这个事你们下来交你,你也多参与。 - -**[00:40:01] 发言人 0**:我们有个理念,就要把事情做简单。 - -**[00:40:03] 发言人 0**:昨天中午我给你开个会,还是我告诉你个小秘密,你还没给我,我告诉你一个小秘密,后面三句话,三句半不说了,就简单。 - -**[00:40:13] 发言人 0**:你每天就这么烧,不用那么复杂。 - -**[00:40:15] 发言人 0**:告诉你一个小秘密,开什要告诉你个小秘密,那小姑娘对不对? - -**[00:40:20] 发言人 0**:你还没给我,就是简单高,简单高。 - -**[00:40:32] 发言人 0**:你看那版广告,最近的世界杯的广告,还有把罗纳尔都贴出来那么恶心的广告。 - -**[00:40:38] 发言人 0**:A参与什么喝水就喝外星人,我操那他妈的啥广告,但是照料他就反正就是他妈的就这个广告。 - -**[00:40:45] 发言人 0**:因为人家一眼都记住罗纳尔都是外星人,然后这两个一结合,管你啥东西,反正他就记住。 - -**[00:40:54] 发言人 5**:我试了一下,就是我看一下。 - -**[00:40:56] 发言人 3**:发了这么多评论的好少。 - -**[00:40:59] 发言人 3**:那谁那你还得用评论。 - -**[00:41:00] 发言人 0**:你先去这那底。 - -**[00:41:02] 发言人 3**:但无所谓,不可能也不行。 - -**[00:41:04] 发言人 0**:你一会评论,有些人我可能会去评论这东西是没人评论,评论。 - -**[00:41:09] 发言人 5**:就我昨天这个我见朋友说的这儿,就是我昨天做那个就是我给我们家小朋友做了一个像皮克斯的那个数字动画,一分半钟,全自动的。 - -**[00:41:24] 发言人 5**:我从最开始写我们到最后整个做出来大概就花了一个半小时。 - -**[00:41:29] 发言人 5**:然后我看了一下在C档市场所烧的个api的价格的话,大概是花了20。 - -**[00:41:36] 发言人 5**:他因为他那个很准,大概花了25、26块钱,他就可以把一个一分半钟的,大概接近两分钟这样的一个做法全自动。 - -**[00:41:47] 发言人 5**:就说明的话就是说你说的这个就是这个视频的高频的话,现在已经已经已经完。 - -**[00:41:54] 发言人 0**:全可以做得到,最好是本地部署模型,因为实际档次还是贵的。 - -**[00:41:59] 发言人 5**:对对对对。 - -**[00:42:00] 发言人 0**:但是本地的,就是你你看现在很多人都在,我也同时他退休了没事干,每天发,但是他都是钱。 - -**[00:42:07] 发言人 0**:对,因为个人操作是钱。 - -**[00:42:09] 发言人 0**:但是我们如果有一个模型,我们毕竟这还有什么几百批的算力的的,但是几百G的算我也有。 - -**[00:42:16] 发言人 5**:就是他可能做了一种,就做数字可能没有问题,但是做那种可能就类似于像。 - -**[00:42:23] 发言人 0**:电影这个。 - -**[00:42:24] 发言人 0**:我知道那那那个那个那个不是我们的,想反正那个做不到太难,因为短那个那个太难了。 - -**[00:42:33] 发言人 3**:新华三说他们有生态,专门是运作运营给彭古、澎古等地。 - -**[00:42:42] 发言人 5**:上海上午的的那就。 - -**[00:42:43] 发言人 0**:是运营那些短期的团队。 - -**[00:42:46] 发言人 0**:他们就是我觉得像那种,你比如说C档这种这么高级的视频,我觉得未来会产生于哪里呢? - -**[00:42:54] 发言人 0**:你比如如果企要有他专业是做那个短距的,那边角料帮你做点,因为他这个脱贫也多,边角料帮你做点那种他就流出来了,他是吧? - -**[00:43:04] 发言人 0**:他就这么流出来了,但是让我们去做这个就是他的算力空的时,让我们去做点长视频,我觉得我们还是挺难的。 - -**[00:43:12] 发言人 0**:因为你做长视频如果用C档,我觉得就不是我们的方向。 - -**[00:43:16] 发言人 0**:因为这个事情我觉得我们的方向就是数字,还是面向于企业简单的数字。 - -**[00:43:23] 发言人 0**:自己不算利,然后这个简单一些,然后就比别人讲们,因为这个东西可能名字要比别人好看一点就行了。 - -**[00:43:33] 发言人 3**:好像是想用住这个生态,卖他的那个土文小镇,意思是说各按渠道南区委感兴趣就是把算力给建起来,他把这个团队拿过来,他这个算力专门做这个短短句的生态。 - -**[00:43:47] 发言人 0**:这是短的,要你那算,你相当于我给你找个下家了,我叫完以后给你找个下家来买,但光是短。 - -**[00:43:55] 发言人 3**:他不找一个,他找多少个,反正是他说他他他完说跟南安区类似。 - -**[00:44:02] 发言人 0**:你畅你你你比如像那种哪种的可以,完了你说他那个如果像这种他他那个那那种小程区太小了,你比如我找这隔壁电影制片厂,隔壁电影制造厂和我同力小队一起联合在你这儿。 - -**[00:44:14] 发言人 0**:那那那你愿意,你说我找了,你说我找了个游击队,我操那人家觉得你那游击队一个你你你我建起来花了十个亿。 - -**[00:44:21] 发言人 3**:他妈的给运营只花了只给赚了1000万。 - -**[00:44:24] 发言人 0**:你找了个游击队来,你那个游击队才多少人? - -**[00:44:27] 发言人 0**:我觉得他那个铜力小镇在旁边的生态,那必须是一个必须得一个团。 - -**[00:44:32] 发言人 3**:队来协做数据中心的。 - -**[00:44:34] 发言人 2**:阿里阿公就这么说。 - -**[00:44:35] 发言人 0**:就跟那万达商场一样。 - -**[00:44:37] 发言人 0**:万达商场为什么能跟万达商场我了我建好商场以后,老太太睡觉什么那玩。 - -**[00:44:44] 发言人 2**:尔法知道什么都进来了。 - -**[00:44:46] 发言人 0**:我我我有一套名单,我一见他们都过来,然后我带着他们的联盟,我带着我们的合作的五个案例,他们都过来。 - -**[00:44:53] 发言人 0**:那这样是可以的是吧? - -**[00:44:54] 发言人 0**:那万达的你你你你你你你有本事,你你从经有一个你的算下面也有老太太水饺,你有什么什么儿童童车,你有什么电影院,你有一大堆东西,你有这个吗? - -**[00:45:06] 发言人 0**:你没有,你就是找了一个是不够的。 - -**[00:45:08] 发言人 0**:有,但是未来确实是你要真的这个我说的我打这个比方,我觉得非常好。 - -**[00:45:13] 发言人 0**:就是你如果你能把算理解好,就跟万达商场一样,万达商场的模式你学不学会? - -**[00:45:18] 发言人 0**:你要学的会,你那个土利小镇你就可以,你学不会还是样板。 - -**[00:45:24] 发言人 0**:我觉得样板的意思,5万达第一个我为什么我为啥我念林你牛逼,那么多人做商业,为啥他做桥就是样板的意义。 - -**[00:45:33] 发言人 0**:这王健林是属于东北人里面比较牛逼的。 - -**[00:45:36] 发言人 6**:但是四川人我认识四他比较牛逼。 - -**[00:45:38] 发言人 0**:因为我觉得工业的人的他比较牛逼。 - -**[00:45:41] 发言人 0**:他确实因为。 - -**[00:45:42] 发言人 3**:他他整个商业模式。 - -**[00:45:44] 发言人 0**:可能华那个生态弱,他那个商业是早,他自己不是说华能想到这个办法能做起来的。 - -**[00:45:50] 发言人 0**:我觉得王里确实高手中的高手,真的那肯也绝对厉害。 - -**[00:45:54] 发言人 0**:那不是一般人去的。 - -**[00:45:58] 发言人 5**:然后那个无人机项目的话,就是南的一网土飞这个项目。 - -**[00:46:03] 发言人 5**:他们下等上目之后去见过南这个一把手,去见那个他们也明确说了,就是难以动力,明确的预算为下达推向上涨。 - -**[00:46:16] 发言人 5**:就是现在核心还是这个钱从哪出。 - -**[00:46:22] 发言人 0**:南就是去。 - -**[00:46:24] 发言人 5**:那个。 - -**[00:46:25] 发言人 2**:最的。 - -**[00:46:27] 发言人 2**:徐。 - -**[00:46:28] 发言人 0**:们,我操,我觉得升官发财他妈的不是大家都他这个动力应该是吧? - -**[00:46:49] 发言人 0**:应该大家都这是一个动力,这应该是所有人都趋势趋向于赶快换新书记,谁在阻拦? - -**[00:46:57] 发言人 0**:现在就是。 - -**[00:46:58] 发言人 2**:四等没,现在就重新你委会了的,市委会不了的,他们换一把手。 - -**[00:47:09] 发言人 2**:公安不是市长,我是说书记,书记不是应该袁家军他们那个市。 - -**[00:47:16] 发言人 8**:市长市常委,市长常委常委同意的。 - -**[00:47:19] 发言人 0**:好像常委就开不了了,常委现在找了三常委,副书记现在是找三个仓品,少三个仓品,还有几个场品,七个仓位剩4,那四个排,那不能干事了,我操。 - -**[00:47:32] 发言人 0**:因为这些事情其实肯定是。 - -**[00:47:34] 发言人 7**:请的连连正常的晋升都行。 - -**[00:47:37] 发言人 3**:不是,不仅仅是这书记,我朋友在那,我怀疑妈的,我朋友在说家政可能压力在公安。 - -**[00:47:44] 发言人 3**:张明江从跳舞之前,那些调令都已经送到市区了,现在都现在全部暂停。 - -**[00:47:51] 发言人 3**:我觉得那那那那个书记,他就从一个区县调到主城,全部暂停这个事儿。 - -**[00:47:56] 发言人 0**:就说明这种工作效率不,你是说这种工作效率其实很麻烦,非常就说程很大的。 - -**[00:48:06] 发言人 5**:他也为有可能是他甚至所有人他就不符合组织的。 - -**[00:48:13] 发言人 3**:个四个人。 - -**[00:48:14] 发言人 2**:或者说投国。 - -**[00:48:15] 发言人 3**:家要求,两个反两个国家要求。 - -**[00:48:19] 发言人 3**:对,不满上周不举优优优活动必出走转转。 - -**[00:48:24] 发言人 3**:上东一中在搞优湖活动,就像是食茶之类的对,喝喝水湖湖水湖那,他们内部叫优湖行动,其实就是每袁书记带着剩五。 - -**[00:48:37] 发言人 0**:余的班子。 - -**[00:48:38] 发言人 3**:每个地方去叫油湖。 - -**[00:48:40] 发言人 3**:这个就我煤房里边镇治煤房里边有抛,但是说事现在我压力挺大的,我就一直盯着。 - -**[00:48:50] 发言人 6**:离子,所有的应该从。 - -**[00:48:52] 发言人 3**:那个谁,两江新区的公安局局长也没认命。 - -**[00:48:57] 发言人 0**:前面也对,因为这个叫什么呢? - -**[00:49:01] 发言人 0**:这个就是就定的越少,政府的那个叫抓手就越小,市场的经济就越强,是吧? - -**[00:49:07] 发言人 0**:就是越是人家市场经济,西方市场经济越小,政府那现在咱们也走向小政府是吧,抓了享受活子,也对他妈的多多一个人上来,他又要贪,他妈的又要造项目,那项目不造,我们也少花点钱。 - -**[00:49:23] 发言人 0**:家印象我们这几看我少一个人,那少花点钱又少花点钱。 - -**[00:49:29] 发言人 0**:一个初户至少得一个亿,自己得挣一个亿,一个挣厅他妈至少得5000万。 - -**[00:49:37] 发言人 2**:我少发了。 - -**[00:49:38] 发言人 0**:这么一个正厅,我们就少他妈的我认为少信车文哥至少就少他至少少拿他。 - -**[00:49:47] 发言人 2**:少拿5000万. - -**[00:49:48] 发言人 0**:对不对? - -**[00:49:49] 发言人 0**:我心里也开心,这也对我这对百可能心里就少几个。 - -**[00:49:55] 发言人 2**:那少就少万。 - -**[00:49:57] 发言人 0**:就跟那个谁。 - -**[00:49:58] 发言人 2**:一手。 - -**[00:49:59] 发言人 3**:抓不就完了吗? - -**[00:50:00] 发言人 0**:就跟那个就跟原来拍的那个电影一样,那个谁拍的那个拍的。 - -**[00:50:06] 发言人 3**:那个什么城,我们鹅城是吧? - -**[00:50:09] 发言人 0**:鹅城又换领导,子弹百个导就拿一个一走,你说咋整? - -**[00:50:14] 发言人 0**:你说你说这个你说这个还不如,因为他钱部的标配就是一个亿的话,标配5000万,那就就正常。 - -**[00:50:23] 发言人 0**:就是你如果说是查,平均下来肯定有,那就查不查你的问题,我想。 - -**[00:50:28] 发言人 6**:一个。 - -**[00:50:30] 发言人 0**:项目对我操狠了,我那天我跟我。 - -**[00:50:44] 发言人 8**:说一。 - -**[00:50:46] 发言人 6**:问。 - -**[00:50:47] 发言人 0**:那荣他可能觉得他他都到政府了,他会我拿两个亿。 - -**[00:50:53] 发言人 0**:他妈的他他不能跟父部同为伍的。 - -**[00:50:57] 发言人 6**:他不能低不。 - -**[00:51:22] 发言人 0**:平均下来腹部一个亿挣取5000万,我觉得差不多差不多就认不了。 - -**[00:51:27] 发言人 2**:那三亿。 - -**[00:51:29] 发言人 0**:就这么赚的,我操。 - -**[00:51:30] 发言人 0**:所以说少认命一个,你老百姓的话还是幸福一点。 - -**[00:51:34] 发言人 3**:我操。 - -**[00:51:34] 发言人 3**:那上次说豆花说的是假的那个彭彭彭彭丽彭彭建彭那个女的那个那个那个律师,他说那个胡和罗丽的是跟那个钱包一点关系没有,是另外的事,说是豆瓣送的是假的是吧? - -**[00:51:52] 发言人 3**:零说。 - -**[00:51:54] 发言人 0**:的,但是。 - -**[00:51:57] 发言人 3**:我觉得三。 - -**[00:52:01] 发言人 0**:元。 - -**[00:52:02] 发言人 6**:光电这。 - -**[00:52:05] 发言人 0**:个。 - -**[00:52:06] 发言人 2**:事应该。 - -**[00:52:08] 发言人 0**:是三安光。 - -**[00:52:12] 发言人 3**:电的假包假的。 - -**[00:52:16] 发言人 0**:但是我觉得U有可能是真的,因为这个东西新型犯罪这个东西百分之百有的。 - -**[00:52:22] 发言人 3**:那怕是个彭劲手里有可能有,但是那个东西是跟他哥有关,跟他哥哥说,他哥哥是个怎么说的,反正跟华他跟松华斯那华三董事长,这个跟他哥有,肯定是跟他哥有。 - -**[00:52:37] 发言人 3**:和你说一个亿的。 - -**[00:52:46] 发言人 0**:项目,不是我们认为在里面有水,他们自己都认为他妈的有人在里面赚了钱。 - -**[00:52:54] 发言人 0**:你说这都已经变成了他妈的谁也敢造项目,谁也敢做,是吧? - -**[00:53:01] 发言人 5**:继续我们这个M进的话也是上那叫自停云的。 - -**[00:53:05] 发言人 5**:现在自听云的话,上周也是讨论了这个化开始在在你这个。 - -**[00:53:10] 发言人 0**:知云就是这个这个这个主要是云动面子,就这个终端这个事儿,我觉得还是,你这个还是要把它简单化化,而且我们自己得用起来,如果自己用不起来了,拿着去得它挺软的操。 - -**[00:53:24] 发言人 0**:那上周他们那你买的那个你准备吗? - -**[00:53:29] 发言人 0**:买的那些的那。 - -**[00:53:32] 发言人 7**:个那个东西了吗? - -**[00:53:34] 发言人 7**:吗? - -**[00:53:34] 发言人 7**:摆摆那摆我的吗? - -**[00:53:37] 发言人 7**:还是和对,上周不是投了公包了几次,其实我觉得包括教育和医疗。 - -**[00:53:50] 发言人 7**:我这边就个简单说一下,我说找到一点感觉,就是好像我们在这几个场景都会用过这识的,也都会用到多元的数据采集。 - -**[00:54:01] 发言人 7**:其中一个原因就是公频,因为教育里面有课堂,医疗里面有听问诊,然后办公里面有会议,然后再加上知识库太大了。 - -**[00:54:12] 发言人 0**:知识库不容易形的产品知。 - -**[00:54:16] 发言人 7**:不是,它是一个基本环境,我们要把它和几个数据源结合起来,音频的,普通文件的,还有系统mp的,尽量做的标志化一点,三个行业都能用。 - -**[00:54:30] 发言人 7**:我觉得这条路应该是。 - -**[00:54:32] 发言人 0**:走得通的,我觉得我们要去推这个。 - -**[00:54:35] 发言人 0**:因为上位的悟空也看了一遍,就是word body。 - -**[00:54:38] 发言人 0**:你们下来也可以再找找,把word body叫过来看看。 - -**[00:54:42] 发言人 0**:我觉得我们要去做这条路。 - -**[00:54:45] 发言人 7**:其实挺难。 - -**[00:54:46] 发言人 7**:我们我们不做我们也不做悟空,我们还是做聚焦于聚焦一个AI实际场景落地的一个东西。 - -**[00:54:53] 发言人 0**:对你要做小,不是做大。 - -**[00:54:55] 发言人 7**:是做小,就是利用多元的数据汇聚,然后通过知识库呈现一个场景能力出来。 - -**[00:55:01] 发言人 7**:你们部署一个那个库。 - -**[00:55:03] 发言人 0**:咱叫知识库也可以叫什么也可以你们部署一个这个东西,是吧? - -**[00:55:08] 发言人 0**:这个东西整个部署是简单的,然后底下这个对。 - -**[00:55:12] 发言人 7**:那个费对,差不多就是这样。 - -**[00:55:14] 发言人 7**:我就我我突然觉得昨天那那天星期五会议开,我觉得到会议结束的时候,我再收集个会纪。 - -**[00:55:23] 发言人 7**:我在战助上来说,我说基本上把这个东西想通了,我就把这个东西画了。 - -**[00:55:28] 发言人 7**:画没画完,我觉得感觉是做得通的,这个东西对我们来说是比较合适的。 - -**[00:55:34] 发言人 7**:在三个行业,不是三个行业,普通办公不止一个行业用,就是办公、医疗、教育我觉得都能做出成熟的。 - -**[00:55:42] 发言人 0**:我觉得终端我觉得还是这样的,比如像这个就够,就这个也行。 - -**[00:55:47] 发言人 0**:要么然弄个二维码拍一下,一个灯将你去深圳里面看一下,拍一下亮就拍就完了。 - -**[00:55:54] 发言人 0**:不要屏幕你拍一下,就是一个二维码,你拍一下就停。 - -**[00:55:58] 发言人 0**:比如我们过来就跟那个儿童玩儿童玩的那个租的就是叫什么共享单车一样。 - -**[00:56:05] 发言人 0**:儿童玩的东西过来扫个码,用完自己把领走,甚至这个领走都不能。 - -**[00:56:10] 发言人 0**:如果是服务器上不存,更他妈牛逼,我操。 - -**[00:56:14] 发言人 3**:就他直接。 - -**[00:56:14] 发言人 3**:如果你是说。 - -**[00:56:23] 发言人 8**:来做,因为我们去年买的有,然后他本身带一个很小的屏,那个屏就拿它显示二维码就行。 - -**[00:56:30] 发言人 8**:还有就是那个录音时候的一个状态。 - -**[00:56:33] 发言人 3**:你干嘛要用个平静的下维码。 - -**[00:56:37] 发言人 0**:我都。 - -**[00:56:42] 发言人 2**:这32带吗? - -**[00:56:50] 发言人 7**:他带。 - -**[00:56:53] 发言人 0**:不带,他。 - -**[00:56:57] 发言人 8**:可自配成。 - -**[00:57:03] 发言人 0**:你拿来给我看看,你们研究员给我看好吧。 - -**[00:57:06] 发言人 5**:现在还有这个事情,上周我不是说拿了移动,就王春他们下面有一他给我打了好长时间电话,他就说因为他们现在在用那个试用。 - -**[00:57:17] 发言人 5**:他就跟我们说,他就跟我提了两点,他说第一个是他们如果出去找的话,一定要有一个硬,他如果不用硬件的话,他们转不了服。 - -**[00:57:26] 发言人 5**:他说我们对他说硬转服务这个事情对我来说是至关重要的。 - -**[00:57:31] 发言人 0**:所也就是说你我我理解的意思就是说如果这个硬件越大,他不转服钱越多。 - -**[00:57:38] 发言人 0**:不不不。 - -**[00:57:39] 发言人 5**:他是这么跟我说的,他说你们不要去做那种,我也跟我们现在这个硬件有什么什么功,他就会给我们的一个建议。 - -**[00:57:48] 发言人 5**:他说你们可以去做那种,就是因为会议室,他说政企一般都比较多,他说你可以去多一些点,但是成本比较低。 - -**[00:57:56] 发言人 5**:比如说一个会议室我给放三个点、四个点、五个点,他说你你你他说这个对客户来说是正常的。 - -**[00:58:04] 发言人 5**:他说他们现在任何一个会议室,他们只要去做会议电视,他说跟人家配终端都配一大堆。 - -**[00:58:12] 发言人 5**:他说你看那种政府开会或者什么一个两个,他说两个人正对面。 - -**[00:58:18] 发言人 0**:他放两个带着话。 - -**[00:58:20] 发言人 0**:这个东西能做那个吗? - -**[00:58:22] 发言人 0**:就说可以放做那个那个呃,叫什么跳线来着,叫叫什么技术外卖。 - -**[00:58:28] 发言人 0**:麦能通过麦连上以后串,取那个最好声音吗? - -**[00:58:35] 发言人 7**:麦克风一般最多的就。 - -**[00:58:40] 发言人 0**:3到4个,可以做外多了不? - -**[00:58:46] 发言人 0**:你3到4. - -**[00:58:48] 发言人 3**:个够了,我操。 - -**[00:58:51] 发言人 0**:你的桌子。 - -**[00:58:53] 发言人 7**:我的意思什。 - -**[00:58:56] 发言人 0**:么呢? - -**[00:58:57] 发言人 0**:你把。 - -**[00:58:58] 发言人 5**:这个你麦一个。 - -**[00:59:01] 发言人 0**:两个、三个加,就是你这个其实还是不行的,为啥? - -**[00:59:07] 发言人 0**:你主要其实最重要的是收音,你不是看你把你把它做反了,你做成一个他妈的你去看它干嘛,就是你做成这个或者比这小哒哒哒哒哒放四五个,就一个二维码,然后用完扫走,平时丢那你想用就扫。 - -**[00:59:23] 发言人 0**:而且这个东西我觉得还有一个确实是你你比如说那个比这个再小一点,我觉得这个就很好。 - -**[00:59:31] 发言人 0**:你你你你那个你比如说他们腾讯那个开会,那个那个开会他这个放那他们录音录到自己,因为他那个腾讯他为什么? - -**[00:59:39] 发言人 0**:因为云是阿里钉钉是录到他自己家里的去,对不对? - -**[00:59:43] 发言人 0**:那一般企业是没有家里云的,他们录到他自己这个公司里面录个是吧,那里面去我我觉得我觉得。 - -**[00:59:50] 发言人 5**:这种大小的就对,就是给他搞一堆,然后一个会议室里头放放。 - -**[00:59:55] 发言人 5**:因为他们现在那种,他只知道他们现在,他们现在政企去给人家布的那种和一个会议室里的那种死用设备。 - -**[01:00:02] 发言人 7**:要放很多个,但是有限的。 - -**[01:00:04] 发言人 7**:对,他们做一个无私先做死,这是你就是实际他。 - -**[01:00:08] 发言人 2**:们难道不是实消备那些钱不需要我们做,那是有些人不需要我们做。 - -**[01:00:13] 发言人 7**:他直接一点插到我们上面就完了。 - -**[01:00:15] 发言人 7**:你们研究就教你研究。 - -**[01:00:17] 发言人 0**:就话你们下来,你们反正你们每个人都可以研究,我就教你。 - -**[01:00:21] 发言人 0**:那你牵个头,你管这个就是叫什么? - -**[01:00:23] 发言人 0**:这个就是这个盒子,这种盒子如果带外形的,最好的就是这个无线,不要有线。 - -**[01:00:29] 发言人 0**:我觉得这个不行,这个他妈的,但是也没关系,因为我们有一版是吧? - -**[01:00:36] 发言人 0**:以后一定要去做这个高级的再手呗,如还如果到画面上。 - -**[01:00:40] 发言人 7**:好的,那我现在就是一拖三,那一个主的拖三个负的。 - -**[01:00:45] 发言人 7**:这个就是纯石英的,这纯石英的对,但是你要做的话,如果我们去把改了这个我觉得你的成本兜不住。 - -**[01:00:55] 发言人 7**:你无非就是把这个怎么把最终那个音频输入插到我们的终端上。 - -**[01:01:02] 发言人 5**:能结合。 - -**[01:01:02] 发言人 5**:对,对。 - -**[01:01:03] 发言人 7**:就是这啥意思? - -**[01:01:04] 发言人 7**:它有个接收器,接收器插插这插在我们的,比如说这个你看它最终是通过一个有线插在我们的一个终端上。 - -**[01:01:13] 发言人 7**:这个终端指是和笔记本,它它都相当于把音麦克风进行扩展,这个也一样,它有后你看有线的东西,这个U盘的。 - -**[01:01:21] 发言人 0**:东西相当于它带不带充电,它自己不带电。 - -**[01:01:25] 发言人 3**:肯定要带电电它怎么适应? - -**[01:01:27] 发言人 3**:里面肯定要带电,充电不这个就不带充电,它是有心的。 - -**[01:01:32] 发言人 3**:我就说我就说,我就是我看。 - -**[01:01:35] 发言人 8**:应该是要插一个供电的,我之前我跟重庆他们那边专门做这种会议实验的那个团队他们沟通过。 - -**[01:01:43] 发言人 8**:其实他们以前做企业,你知王帅他们以前做企业,一个比较好的这种一个会议这样的一个石音平,石音加设备加部署调试二十多瓦。 - -**[01:01:54] 发言人 8**:其实他们的意思就是说你就不用再做这一块了。 - -**[01:01:58] 发言人 8**:你后面你加个算力,把它的改造成智能化,是吧? - -**[01:02:03] 发言人 8**:就相当于把它升级了。 - -**[01:02:04] 发言人 8**:然后这个时候你里面你加个10万块钱,因为他以前可能已经花了。 - -**[01:02:09] 发言人 0**:现该有了你。 - -**[01:02:10] 发言人 0**:但是你如果做改造,你觉得这个里面有两个问题,就原来有的你要把它搞掉,为啥呢? - -**[01:02:17] 发言人 0**:原来有的它会带线那种,对不对? - -**[01:02:19] 发言人 0**:你现在肯定无限制趋势,你原来做了几年了是吧? - -**[01:02:23] 发言人 0**:我觉得要还是你你你不卖他妈的,那就你挣不了钱了,你给人家做个装修对吧,全力救了我操,那你挣啥钱? - -**[01:02:33] 发言人 8**:那一般来说那种企业他那种会议系统的话,它基本上还是是每个座位前面会有一个麦克发言的时候就是切到对。 - -**[01:02:44] 发言人 3**:切到他那种麦克。 - -**[01:02:47] 发言人 0**:不需要你改造你就改到主机上,那就这接上去接音频这个就果你前面有个叫什么面,有个就的个文字转语音的。 - -**[01:03:02] 发言人 0**:你这里面有点算力,那你就不一样,对是吧? - -**[01:03:06] 发言人 0**:对你盒子里面有点算力你就不一样。 - -**[01:03:09] 发言人 0**:你如果说你盒子里有点算力,然后带无线你就好很多。 - -**[01:03:14] 发言人 0**:你可能你就你你就你机会有打击,你就充电宝在这,你就机会也大。 - -**[01:03:19] 发言人 0**:你现在就把充电宝放进去是吧,你放个充电宝吧,然后那个可以录几个小时,然后带点小算粒,然后888钱充。 - -**[01:03:34] 发言人 0**:好,继续。 - -**[01:03:35] 发言人 0**:你东西弄完,每次在想这事的时候,他妈的。 - -**[01:03:39] 发言人 5**:然后最后一个就是那个数字助理和云桌面。 - -**[01:03:43] 发言人 5**:这个的话上周的话已经初步完成了这个财务的助理开发,本周的话我就和我们就开始在这个就是找一些试点,我来你们抓紧试点。 - -**[01:03:54] 发言人 0**:过你还有那们几个抓紧时间跑几次跑。 - -**[01:03:57] 发言人 5**:然后跑通了一个。 - -**[01:03:59] 发言人 5**:下周7月1号开始的话,我们就无纸化财务运作。 - -**[01:04:04] 发言人 5**:但这个我觉得到时候因为这里头有两点,第一个就是那个和模型。 - -**[01:04:11] 发言人 5**:因为上周纪哥说那个模型可能还就是上周我们讨论的是要和我们自己那个H 20那个模型算力结合,我们还是尽量的结合上去,以后我们报账的话,我们就用H 20就把这些东西,这是第一点。 - -**[01:04:31] 发言人 5**:然后第二点的话就是怎么和云桌面到底他们财务的那些员工,他们要不要把那个叫财务数字助理这个东西放到云桌面上面去,要不要先给他们看云桌面,这个好像我还没有完全调整进去。 - -**[01:04:50] 发言人 5**:全就最后一点,就比方说外面李小涵他们要不要放到。 - -**[01:04:58] 发言人 7**:路面上面去。 - -**[01:05:00] 发言人 0**:知道吗? - -**[01:05:01] 发言人 7**:把那那个你不是。 - -**[01:05:04] 发言人 0**:那天不是说了吗? - -**[01:05:06] 发言人 0**:那天把知库拿起来,不是你你那个笔记本的不笔记电脑。 - -**[01:05:13] 发言人 7**:那个端加控制方。 - -**[01:05:16] 发言人 7**:现在所有的人力还在做自体。 - -**[01:05:19] 发言人 5**:那就是那就是我们先不管云桌面,我们因为他不用云桌面,他就先把这个不管云桌面。 - -**[01:05:25] 发言人 0**:对他那电脑是没法用语桌面,那电脑它笔记本电脑就是做一个那个叫什么? - -**[01:05:31] 发言人 0**:我们可以做一个云桌面纳宝,我们叫我们可以叫你就你那个那个那个是吧? - -**[01:05:36] 发言人 0**:叫这种方式,如果能做好这个纳管就控制行为,能把这个做好,那我们就可以去做一个华智的财务了,就可以全部更换。 - -**[01:05:44] 发言人 0**:对我更希望你们做一款这个,因为笔记本电脑还是一个从来的小开的,要开的还是做那个。 - -**[01:05:52] 发言人 5**:也有几种方式,这个你不在,那个不在,就是你也可以装一个云乐片的客户端。 - -**[01:06:00] 发言人 5**:就是我平时我做这些事情的时候,我在我的电脑上,我要审核报销的时候,我就先登录到。 - -**[01:06:09] 发言人 0**:现在有服务器。 - -**[01:06:12] 发言人 7**:对对对,没资给他还是做拉管,那做拉。 - -**[01:06:18] 发言人 0**:管就简。 - -**[01:06:19] 发言人 7**:单一些。 - -**[01:06:20] 发言人 7**:但是华也会有资源,华智哪这么多资源的。 - -**[01:06:25] 发言人 5**:他这他400工让这两事就两个个接近事。 - -**[01:06:31] 发言人 5**:们把我的数字助理这件做起来了,这个我觉得是没有什么问题。 - -**[01:06:37] 发言人 5**:第二个是如果我们云桌面要和数字助理结合,那就我这个就相当于我必须要跑到这个场景里头去。 - -**[01:06:45] 发言人 0**:就是我我云端面的数字助理结合云我现在慢慢理解,那天说我用云动就是个工具,有它没它是吧? - -**[01:06:55] 发言人 0**:就是都可以,这是第一第二,如果我们要做叫中端大馆、数据大馆、农家大馆和这个蒜泥大馆的话,我觉得就是现在当前的我们这个包括文们和这个和这个华智这种,就笔记本电脑是常态是吧? - -**[01:07:13] 发言人 0**:大央企业他可能有一的变化,或者你学校的些特别要求。 - -**[01:07:17] 发言人 0**:这种常态情况下,你让他改造,你比如说他那财务让他改造,这个还是挺难的,就做胖终端,胖终端里面就是做这种取个娱乐面的名字。 - -**[01:07:27] 发言人 0**:但实际上是对电脑进行这个就纳我就纳我电脑,然后把电脑的所有行为给他管起来。 - -**[01:07:33] 发言人 0**:那在这种情况下,他电脑放了龙虾,那有数是吧? - -**[01:07:37] 发言人 0**:心里有数,我就得我就走是吧? - -**[01:07:39] 发言人 0**:只能走这个里。 - -**[01:07:41] 发言人 2**:那天聊了吗? - -**[01:07:42] 发言人 2**:好。 - -**[01:07:43] 发言人 0**:也可以,我们都因为你如果不专,也你如果不拿过中专的话,你怎么在中专上放不下? - -**[01:07:52] 发言人 7**:很很简单一个逻辑,因为现在存的么间已经一万多块钱一个点了,你再去推广未来到27年也有可能知。 - -**[01:08:03] 发言人 0**:道今年这个但纯的v di就是未来扩容,其实你你你找他过这个农家,我找他不一定跟你玩。 - -**[01:08:11] 发言人 0**:因为你就是一个你在纯的维碟上,你比如我去做龙虾。 - -**[01:08:16] 发言人 7**:做就可以可以做,只要它成本它受得了,他对你安全有极高的要求,那你在维di上做,我们内在架构,我如果按照内在架格来玩,无论V Y V di还是P C都可以玩。 - -**[01:08:30] 发言人 7**:我就是在pc要做拉广过后,把pc的那个。 - -**[01:08:33] 发言人 0**:我的意思就原来我没有那么多纯的老的微店用户,你们要做龙虾的话,我们有什么优势呢? - -**[01:08:41] 发言人 7**:就因为是有我的vi所以我去做龙虾就比较其实就是落地,你要把整套用起来,你看那个周,我在看那个移动的,你要把它用起来。 - -**[01:08:51] 发言人 7**:你后台得又算你,你得把这识户给布了,是吧? - -**[01:08:55] 发言人 7**:这些东西对一般的企来说不会去弄这个他不会弄的。 - -**[01:09:00] 发言人 7**:现在你只要把这个时间差。 - -**[01:09:02] 发言人 3**:我就把这个东西给我们。 - -**[01:09:04] 发言人 3**:在的是三四十万的正在用的客。 - -**[01:09:06] 发言人 0**:就是我这边走只能用去的龙虾交就可以了。 - -**[01:09:10] 发言人 0**:话大概就有这个逻辑。 - -**[01:09:15] 发言人 0**:如果老的那个如果老的微店用户如果要做龙虾,因为我是他的d的供应商,只有我是最方便的,或者说只有我如果要别人要龙虾,还得跟我再来谈。 - -**[01:09:30] 发言人 0**:那我的优势。 - -**[01:09:32] 发言人 7**:就是我们我们在做那套什么龙虾的时候,你本来就要涉及权限的一致性。 - -**[01:09:41] 发言人 7**:你权限的一致性你肯定要给我们的vdi的那个账号体系打通的。 - -**[01:09:46] 发言人 0**:这些本来就是门槛,就如果这个是在门槛哈那我们以后把这个vdi的这个叫vdi版的这个龙虾做了服器,龙虾做了服务器,沙盒龙虾做。 - -**[01:09:57] 发言人 7**:我觉是这个应该是机会。 - -**[01:09:59] 发言人 7**:其实我的想法是什么? - -**[01:10:01] 发言人 7**:因为还新华三在那天我们那个大架购,我仔细想一下,其实这个东西由我们来主导了,华那边就拿把那个全国对一对是吧? - -**[01:10:10] 发言人 7**:我把它当做一个我的模块了,我就这样玩了。 - -**[01:10:14] 发言人 7**:对,然后如果这样。 - -**[01:10:15] 发言人 3**:这也是对,那是不是我理解的,就我在现在30万新I的那个用户里面,我就去推GPU服。 - -**[01:10:24] 发言人 7**:务器加龙虾应用。 - -**[01:10:26] 发言人 3**:对,卖卖应用和服务器话,假如说是华三农村算命,华三农村。 - -**[01:10:32] 发言人 0**:那华三配合我们我们卖对,卖软,华三卖只我动力就能做。 - -**[01:10:39] 发言人 0**:如果不是我的V I。 - -**[01:10:41] 发言人 0**:我估计是应付也会被他控死,就不是我的名单。 - -**[01:10:44] 发言人 0**:那好了,你在上面做着做,我这就要给你做定制化,就改的很麻烦。 - -**[01:10:49] 发言人 0**:你最后我V d也用不了了,我他妈的人用不了了,对吧? - -**[01:10:53] 发言人 0**:所以这个事情如果在一起,我们天生的这个就好比什么什妈的就是内存条,那就是上天来的富贵。 - -**[01:11:01] 发言人 0**:你做一个你就把未来的智能化把它的起了。 - -**[01:11:06] 发言人 7**:而且我考虑由于这个vi的价格高昂,说实话我们尽早转型,尽早获利。 - -**[01:11:13] 发言人 7**:是真的,我不相信这个vdi这么高昂的价格,明年他们还能卖得上去。 - -**[01:11:19] 发言人 0**:除非真的v di是有v di场景。 - -**[01:11:22] 发言人 0**:对。 - -**[01:11:22] 发言人 7**:我知道我知道,我的意思说vdi释放出来的那是另外一个。 - -**[01:11:28] 发言人 0**:就是v di v di如果用户控住。 - -**[01:11:31] 发言人 0**:D这种这种形式,你其他的都不叫,我们可以这么说,其他都不能叫,只有d才是,所以你d这个场景,它天生的它就会有那个场景,就是那个场景他最多就变成什么呢? - -**[01:11:48] 发言人 0**:我就不要V D I. - -**[01:11:49] 发言人 7**:我就是争取那批左右摇摆。 - -**[01:11:52] 发言人 0**:你把那个纯镇化的那个场景门槛升高了,然后左右摇摆可能多一些是吧? - -**[01:11:58] 发言人 0**:但是左右摇摆的说实话左右摇摆的就刚才说的,如果我们在微店上做龙虾,那微店原来的老用户是5000人,我们可以慢慢去折磨他,你就慢慢的加加东西,也会他也会他也会扩容,对不对? - -**[01:12:15] 发言人 0**:你只要做成一个我们我们的销售马上就得了去你看你加西就不百百。 - -**[01:12:21] 发言人 0**:那另外你的用户了,你说你那就不是赚的,就是靠的你的家的能力,你家能力强,然后你再反过你的是能力,你再插一个那个,你再做一个那个桌,因为不是以为主。 - -**[01:12:36] 发言人 7**:而且除了它要扩容一个算力池以外,由于那个龙虾在那个如果它还是可厉害,龙虾在那个桌面上其实还是很好资源的。 - -**[01:12:47] 发言人 7**:你看我我我移动耗气虾,那那虾装了个程序过耗桌面资源。 - -**[01:13:00] 发言人 0**:耗终的资源。 - -**[01:13:03] 发言人 7**:还为什么呢? - -**[01:13:06] 发言人 7**:你耗他还是。 - -**[01:13:09] 发言人 0**:会耗一。 - -**[01:13:10] 发言人 7**:点的。 - -**[01:13:13] 发言人 0**:我看。 - -**[01:13:14] 发言人 7**:了一下内存。 - -**[01:13:17] 发言人 0**:至少桌桌。 - -**[01:13:20] 发言人 7**:你这么说,你一个微店I桌面一个用户,你给他分了,比如说四核8G内存给他,以前他都拿来办公用了,现在你他要在他那个桌面上去养殖龙虾,他会把八个G多在一个多G去。 - -**[01:13:34] 发言人 7**:那个资源还不小,一人一只龙虾就1 400个员工。 - -**[01:13:38] 发言人 0**:要多多耗500多G的行动。 - -**[01:13:40] 发言人 0**:我没听懂,你不是飞I就是你所有的程序都。 - -**[01:13:43] 发言人 7**:跑到服务器上面,那资源是分配给桌面的。 - -**[01:13:47] 发言人 0**:内存资源我知道还是有上的,在服务器的虚。 - -**[01:13:51] 发言人 7**:拟化这样就会。 - -**[01:13:52] 发言人 0**:消耗虚拟化资源。 - -**[01:13:54] 发言人 0**:对耗对,消耗服妻资源。 - -**[01:13:56] 发言人 7**:我觉那就消耗他说的是消。 - -**[01:13:58] 发言人 2**:耗终端资源。 - -**[01:13:59] 发言人 7**:桌面服球桌面个只。 - -**[01:14:01] 发言人 2**:是。 - -**[01:14:01] 发言人 7**:说那个桌面的虚拟化存。 - -**[01:14:04] 发言人 0**:所以才是消灭服务器上资源。 - -**[01:14:06] 发言人 0**:你服务器的桌面是吧? - -**[01:14:08] 发言人 0**:对。 - -**[01:14:08] 发言人 6**:就是你原来就是原来。 - -**[01:14:10] 发言人 3**:一台服务器有可能只是支持这个50个个. - -**[01:14:14] 发言人 7**:原来支持400个,现在就跑了龙虾后,400不够了,你要做无期之源,这样的话就可以。 - -**[01:14:20] 发言人 3**:多卖服务器。 - -**[01:14:21] 发言人 3**:我觉得我你我刚刚第一印象理解的是你装了无虾应用之后,你终端要重启。 - -**[01:14:26] 发言人 3**:终端现在配的太有的那个差太低了,没天补,你终端不会是。 - -**[01:14:31] 发言人 2**:不是没天补的? - -**[01:14:32] 发言人 2**:是啊。 - -**[01:14:32] 发言人 3**:那你就不会受影响了。 - -**[01:14:34] 发言人 3**:那你你你用这个能带来服务器的销售,华山供销更高兴,就是这个意思。 - -**[01:14:40] 发言人 2**:就是这个意思。 - -**[01:14:41] 发言人 2**:你要在今天除了刷机以外。 - -**[01:14:43] 发言人 7**:你的那个常规集群,你要控制。 - -**[01:14:45] 发言人 3**:你这样是加分线。 - -**[01:14:47] 发言人 3**:对你耗这些方。 - -**[01:14:48] 发言人 0**:式是加分量。 - -**[01:14:49] 发言人 0**:因为如果未来的融虾,但也有可能它不在,不是它的未来,可能它不在每一台。 - -**[01:14:54] 发言人 0**:如果是在这个什么上,他不会给每个用户用。 - -**[01:14:57] 发言人 2**:他就400个不会给每个人用。 - -**[01:14:59] 发言人 0**:如果400他不可能每一个用。 - -**[01:15:01] 发言人 7**:不会每个人都用。 - -**[01:15:03] 发言人 0**:他能个统一的在一起。 - -**[01:15:04] 发言人 0**:然后另外就笔记本为什么是一个人每个人一个呢? - -**[01:15:08] 发言人 0**:因为笔记本你闲散的,你这个资源的,你本闲置的,咱对不对? - -**[01:15:13] 发言人 0**:你在那个服务器上,你不可能是一个人的。 - -**[01:15:16] 发言人 0**:因为笔记本你本来你每天放这就闲散,你晚上你丢在那儿,你不用就不用了。 - -**[01:15:22] 发言人 0**:所以农家跑在你这闲天的,因为你晚上我本来插上泡点试电也没关系,反正这个东西,能不用就不那但是你那个就不一样了,你那个服务器上,你就你你如果服务器扩多了,我这个服务器的龙虾到底能不能做? - -**[01:15:38] 发言人 0**:我那休的,我觉还。 - -**[01:15:40] 发言人 5**:要研究好,那这个的话我们就先按胖端的模式。 - -**[01:15:45] 发言人 0**:我先把做起来。 - -**[01:15:47] 发言人 2**:就是这个好,行。 - -**[01:15:48] 发言人 5**:我这没有其他的。 - -**[01:15:51] 发言人 0**:就是我觉得一个是财务,二一是统一纳管的,法务人事我就可以并行的做。 - -**[01:15:57] 发言人 0**:然后就是把这些统一的把这些电脑就因为这些电脑我们是没有任何管理的。 - -**[01:16:04] 发言人 0**:那天说华智有没有管理,尤记去年你管你管过吗? - -**[01:16:08] 发言人 0**:就华智像他们财务电脑没管都没管理。 - -**[01:16:11] 发言人 7**:就那个产品和研发管的的对吧? - -**[01:16:13] 发言人 0**:你其实这些说实话都是巨大的问题,都很大。 - -**[01:16:18] 发言人 0**:你一个小公司说实话那个财务电脑如果如果跟人家说,你买个300块钱的东西,500块钱或1000块人民币。 - -**[01:16:26] 发言人 3**:财务管理太规范了。 - -**[01:16:28] 发言人 3**:那华智的vn好像在网vpn难道。 - -**[01:16:30] 发言人 7**:不一些管理? - -**[01:16:32] 发言人 7**:我说的是电脑。 - -**[01:16:33] 发言人 0**:他N管他那个电脑。 - -**[01:16:35] 发言人 7**:他随时拿走电脑,他笔以拿回家。 - -**[01:16:40] 发言人 7**:他只管接入。 - -**[01:16:41] 发言人 7**:对他只管接入,只管系统接入,他还走了一篇内网,但是他笔记本本身他没管,但是研发和产品的笔记本是管着的,研发和产品如果你电脑往U盘拷一个东西,没有走那个申报流程。 - -**[01:16:56] 发言人 0**:他就会罚卡。 - -**[01:16:58] 发言人 0**:所以我建直接的,我们如果要搞那个产品管理,是把笔记本电脑关起来是吧? - -**[01:17:04] 发言人 0**:那些说应该纳起来,你做一个胖的那作做一个我们研究院的一种方式。 - -**[01:17:10] 发言人 7**:上周的话,宇豪这边他和和金分那边国会师团队,反正一直在沟通和集院的对接里的。 - -**[01:17:20] 发言人 7**:宇豪今天周一到周三,他就脱展去进行无人机培训了。 - -**[01:17:25] 发言人 0**:我想代理商拿能拿到我们这边。 - -**[01:17:28] 发言人 5**:目前看起来他今天既然那天那个人跟我说,他说既然让我们培,他刚让我们培训的话,用还是比较大的。 - -**[01:17:37] 发言人 0**:好,这是一个。 - -**[01:17:39] 发言人 0**:另外我再问一个,就是吴天华说的那个那个公司叫啥来着? - -**[01:17:45] 发言人 0**:一般是吧? - -**[01:17:46] 发言人 0**:那个一般是么? - -**[01:17:48] 发言人 5**:一般我去的他们说就我问的那个就是才他说他们他说至少到现在为止,他们出货说的。 - -**[01:17:57] 发言人 2**:非常中线材。 - -**[01:17:58] 发言人 6**:就看他们出货就是大概三个地方,但是一个是那个总龙坡有三台,这个怎么看的的? - -**[01:18:06] 发言人 6**:然后他说他们说3338,他那种哪个区有相对没看新单。 - -**[01:18:10] 发言人 0**:但他那个有一个逻辑,我觉得我也是赞同的。 - -**[01:18:15] 发言人 0**:如果他就看那个违停,看完以后分成。 - -**[01:18:44] 发言人 6**:生产。 - -**[01:18:46] 发言人 0**:最关。 - -**[01:18:47] 发言人 6**:用是用。 - -**[01:18:50] 发言人 0**:然后你每年给是吧? - -**[01:18:57] 发言人 0**:每年给不你记这个好事,觉的他的。 - -**[01:19:08] 发言人 3**:母亲话说的好像也不是用的。 - -**[01:19:11] 发言人 3**:他是说一台机器他分成一天给他跑300张照片,是600张照片。 - -**[01:19:16] 发言人 3**:你就抓微停,你抓完之后就相当于他罚梦款的,问罚款的他也他就可以。 - -**[01:19:22] 发言人 0**:来这个。 - -**[01:19:22] 发言人 3**:他也不是申请罚梦款的,他应该也是买服务相于是你买我买我抓拍的服务。 - -**[01:19:29] 发言人 0**:他他我业的服务他指抓多少,他说的这个有一个这么个意思,就是大家这这是表达方式,就是买了我的东西,比如每天抓800个是吧? - -**[01:19:40] 发言人 0**:你反正你有这个钱的,你有这个钱你就可以买这个东西。 - -**[01:19:44] 发言人 3**:然后他有个前置条件是旺三的这个抓拍的这个东及要拿到无锡所区测试才能所成交警的证据。 - -**[01:19:52] 发言人 3**:你们在无锡所检测出来的照片做不了交警取证证据我不知道,等他说的是这两。 - -**[01:19:58] 发言人 6**:我等会汇报,可能是等会问上次交警跟他们那个公安交警。 - -**[01:20:03] 发言人 6**:其实我们我们无人机他们能定义的采集,我们不管是违停采集或者是执法采集都不是,那这个就程他们看来他大概没什么问题了,加上但是现在需要我们落实两个事,他一个事我们要怎么去跟对接,必须要是主对法治科学把政策,他们现在根据不知道怎么操作事。 - -**[01:20:23] 发言人 6**:因为我们现在是那种采集完到了我们执发库里面,把数据推到执发库就完了。 - -**[01:20:29] 发言人 0**:其实我们采钱全都采集。 - -**[01:20:31] 发言人 2**:他概分离不样子分不出现。 - -**[01:20:33] 发言人 2**:是。 - -**[01:20:33] 发言人 0**:那分。 - -**[01:20:35] 发言人 2**:局赶快去问他。 - -**[01:20:40] 发言人 0**:就是跟。 - -**[01:20:43] 发言人 6**:视频。 - -**[01:20:45] 发言人 0**:那。 - -**[01:20:45] 发言人 6**:我们就问他,我那分局他现在的传。 - -**[01:21:14] 发言人 0**:就是但凡脑子上过读过书的,如果他罚没,如果他多拍两张,他就多收不了钱。 - -**[01:21:20] 发言人 0**:那都这个东西还要去这人传人,这病毒。 - -**[01:21:24] 发言人 0**:如果这个事儿是可行的,早每个人都装作。 - -**[01:21:27] 发言人 3**:就是原来什么在九龙不到光山科技部背后的那个代言人,就是那个在九龙坡里联合三家运营商跟我们一起做实验室的人。 - -**[01:21:38] 发言人 3**:你确就是我现在九龙坡的时候,这个运营商不搞了个实验室吗? - -**[01:21:43] 发言人 3**:那背后那个牵头人就是万三科技的。 - -**[01:21:46] 发言人 0**:那说明那说明这个事并不是病毒,不是是吧? - -**[01:21:50] 发言人 6**:但事际里被就分成的事情肯定是。 - -**[01:21:53] 发言人 0**:表面是不分成,不分层他能不能就那病毒就是一旦碰到复制了。 - -**[01:22:00] 发言人 0**:它不能复制,它还是有问题。 - -**[01:22:06] 发言人 0**:行。 - -**[01:22:06] 发言人 4**:继我们能能把那个飞,能把那个无人机拿下来。 - -**[01:22:11] 发言人 0**:就是进步。 - -**[01:22:12] 发言人 0**:我觉得反正这个事是一步一来的,每一步都是他妈的,不管一小步一大步,我操都得往前走。 - -**[01:22:20] 发言人 7**:是那个时候终端这里都有个事儿,就是对我们是在对华润和云南的两个测试项目。 - -**[01:22:30] 发言人 7**:然后实际上就是发现一个问题,就终端这个飞机在这插拔的时候会黑屏。 - -**[01:22:38] 发言人 7**:以前之前我们以为是硬件的问题,结果复现了一下,发现是华山的那个终端一里面一个小模块的。 - -**[01:22:47] 发言人 2**:软件问题。 - -**[01:22:47] 发言人 0**:它那个软。 - -**[01:22:48] 发言人 2**:件叫space os。 - -**[01:22:49] 发言人 7**:对,然后我们那X本身也用了它里面的一个小组件,所以说造成了个通病。 - -**[01:22:55] 发言人 7**:然后说驻厂那个人不来了,他收到了西安荣耀的offer,给了他35K他不。 - -**[01:23:03] 发言人 0**:太慢了。 - -**[01:23:04] 发言人 3**:就是饿操了。 - -**[01:23:06] 发言人 4**:张卓和。 - -**[01:23:07] 发言人 3**:戴世界还等着他。 - -**[01:23:10] 发言人 0**:你太慢了。 - -**[01:23:10] 发言人 7**:就是他不来。 - -**[01:23:12] 发言人 7**:然后这个事情只能我们这尽量去沟通了,要把这里面其其实其实看来你。 - -**[01:23:20] 发言人 0**:们这事儿太慢了,你们的你们如果他确定了,说实话我都可以打电话,我跟他打他妈跟他聊他妈聊聊个一小时的。 - -**[01:23:29] 发言人 7**:我觉得不可以打动他。 - -**[01:23:31] 发言人 0**:我们是闲聊了,我们但是聊你们聊完了。 - -**[01:23:34] 发言人 3**:你们不老是没没确定下来。 - -**[01:23:37] 发言人 3**:昨天上周五云南那个人也接到了两个offer. - -**[01:23:42] 发言人 2**:我害怕他跳了。 - -**[01:23:43] 发言人 3**:周五周下午紧急跟他聊了一个周一他一大早还没我容开开到345,你看张志波和戴世。 - -**[01:23:53] 发言人 0**:平一直还在保他有其你还有关系,你去了干他去了干一段时。 - -**[01:23:59] 发言人 3**:间干不走了是一样的,而且张志波就说。 - -**[01:24:03] 发言人 3**:那这个进来之后,功能再分配。 - -**[01:24:06] 发言人 0**:能个反上人。 - -**[01:24:07] 发言人 7**:跟刚达的荣耀的就华为华为就是就华为荣耀手机。 - -**[01:24:15] 发言人 2**:然后。 - -**[01:24:17] 发言人 5**:本。 - -**[01:24:18] 发言人 0**:他都。 - -**[01:24:20] 发言人 7**:已接们荣耀那给打话,那三五K他法拒35K终他八。 - -**[01:24:43] 发言人 0**:他。 - -**[01:24:44] 发言人 0**:那我们再找,你们再找,再跟他们说好吧。 - -**[01:24:48] 发言人 7**:这样那个谁主这。 - -**[01:24:49] 发言人 0**:个就是相当。 - -**[01:24:50] 发言人 7**:于我们可能要这要改,要他其实基础系统就是5820,有点太老了,这个5820可能是一切问题的根源,要把它更新到24去。 - -**[01:25:01] 发言人 7**:对,然后这个只能我们提给新华三。 - -**[01:25:04] 发言人 0**:我们一起来,你抓紧去找那个院找一个研发。 - -**[01:25:08] 发言人 0**:我过段时间我可能我过段。 - -**[01:25:10] 发言人 7**:时间七初我还是想他就今年年底之前必须把这个系统。 - -**[01:25:14] 发言人 0**:说去吧。 - -**[01:25:16] 发言人 0**:到我找点再我。 - -**[01:25:18] 发言人 3**:才知道我们那东还底层上面没。 - -**[01:25:23] 发言人 8**:有全智眼,我怎么关联倒是非常他是用的那个操作系统,当时用的那个,因为华山它里面还那个终端上的。 - -**[01:25:37] 发言人 0**:那个终端必须要做这个。 - -**[01:25:40] 发言人 0**:对,也不一定。 - -**[01:25:41] 发言人 7**:只会用它这个比较简单一点。 - -**[01:25:43] 发言人 7**:总种再去开发的话,其实做了二次工作,所以说干脆这次重构的时候。 - -**[01:25:49] 发言人 2**:核新华三一起。 - -**[01:25:50] 发言人 7**:对,什么叫核心? - -**[01:25:51] 发言人 7**:没必要去两次发明轮子。 - -**[01:25:54] 发言人 7**:就是这么说,就是终端上有个小的操作系统,华山也在做,然后我们再去做。 - -**[01:25:59] 发言人 0**:一遍意义不大。 - -**[01:26:01] 发言人 3**:可不可以不要去操作系统,不是有定吗? - -**[01:26:04] 发言人 3**:读一遍、抄遍、写遍。 - -**[01:26:05] 发言人 0**:不要是操作系统你独立出来的,你自己做一个操作系统。 - -**[01:26:10] 发言人 0**:对。 - -**[01:26:11] 发言人 8**:图不是这样的主他上面我们当时其实评估过这个事儿,我们如果拿无邦图其实也能做。 - -**[01:26:18] 发言人 8**:但是它整个的那个系统的大小裁剪,就是这方面它有很多细节工作。 - -**[01:26:26] 发言人 8**:还有它里面当时那个华山坞小潘,他们当时拿A全部读过一遍,他们里面当时改了很多包,我们当时就这些包到底干什么的,其实当时其里也不清楚。 - -**[01:26:39] 发言人 8**:所以说从这个比较安全的角度来想,我们当时就没有自己去重新开一个光伏。 - -**[01:26:46] 发言人 8**:而且如果我们吴邦图来做的话,还也还存在一个以后也存在一个,这个叫什么来着? - -**[01:26:54] 发言人 8**:这个不服。 - -**[01:26:55] 发言人 0**:那就是我们以后要做,比如做龙虾,做这个中。 - -**[01:27:01] 发言人 8**:间大碗还得用它的。 - -**[01:27:03] 发言人 0**:来跟没有。 - -**[01:27:05] 发言人 8**:那没有关系,你这不就是用它,只是在启动的阶。 - -**[01:27:10] 发言人 0**:段动阶段启。 - -**[01:27:12] 发言人 8**:动阶段动阶段用,启动阶段在用。 - -**[01:27:16] 发言人 3**:假如以后跟华商不合作的原因。 - -**[01:27:19] 发言人 7**:那就自接重构过,就是工作量的问题。 - -**[01:27:21] 发言人 7**:我们其实还能用。 - -**[01:27:23] 发言人 3**:这个水频时是就不能用了,可以。 - -**[01:27:26] 发言人 8**:是这样的,徐校这个东西它就只是一个华山它深度定制的一个,它跟后台没关。 - -**[01:27:33] 发言人 0**:就独立的一个东西。 - -**[01:27:36] 发言人 0**:你们如果说把它用来打通了,如果他license就后他还个免费件。 - -**[01:27:41] 发言人 8**:你们再拿走他这个他这个也没有license。 - -**[01:27:44] 发言人 8**:他其实就是他们。 - -**[01:27:45] 发言人 7**:在当时在湖的基础上做了些改制裁剪裁剪了裁的就是尽量不消耗资源。 - -**[01:27:52] 发言人 0**:他也没有用,不用。 - -**[01:27:53] 发言人 0**:然后你如果让华为给他改完以后,你拿走我们拿走我们也可以用是吧? - -**[01:27:59] 发言人 7**:对,可以永用下去,简单是成为一个安装包式。 - -**[01:28:02] 发言人 7**:这就是现但是现在我们不并不知道是改了些什么。 - -**[01:28:06] 发言人 7**:如果我们要去改,就要不断的是去去碰着。 - -**[01:28:10] 发言人 7**:因为它毕竟是设备了很多硬件的。 - -**[01:28:13] 发言人 7**:如果我们要去改,首先你得。 - -**[01:28:16] 发言人 2**:一个去录。 - -**[01:28:18] 发言人 7**:现,这就是当时说的云桌面中间的个适配问题。 - -**[01:28:22] 发言人 7**:你光是一个终端,这个适配工作量就极大,你不是A把它洗完就完了,这天一配个装上。 - -**[01:28:30] 发言人 8**:就适配件主要他当时跟华以前那些硬件都是全部绑死。 - -**[01:28:36] 发言人 8**:Ok测试的我们其实。 - -**[01:28:41] 发言人 7**:都在上面已经改过了。 - -**[01:28:46] 发言人 7**:他不是,但是我。 - -**[01:28:50] 发言人 8**:笔记本电脑。 - -**[01:28:53] 发言人 7**:能启动。 - -**[01:28:55] 发言人 7**:如果笔记本电脑过们们当提出的驱华包包包包包们没东西的,紫光计算机,但是你要启动这个东西也有办法启动困难。 - -**[01:29:15] 发言人 0**:现在有很多,这个就是插一个U盘启动,你其实你那个套路那的能不能改成插入盘,不能也变成朋友版。 - -**[01:29:24] 发言人 0**:我说笔记本。 - -**[01:29:29] 发言人 0**:插的U盘就。 - -**[01:29:31] 发言人 5**:是你相当于是把那个操作系统到这个里。 - -**[01:29:37] 发言人 0**:就是的。 - -**[01:29:38] 发言人 7**:胖胖猪胖猪有这个系统并不是为了启动,这个可能理解错了。 - -**[01:29:45] 发言人 7**:胖猪有这个系统是为了他终端建立和管理平台之间的联系。 - -**[01:29:51] 发言人 7**:对,管理平台去给他下发镜像。 - -**[01:29:54] 发言人 7**:对,但是那笔记本的行候,如果笔记本你插这个。 - -**[01:29:59] 发言人 0**:插个U盘也是建立和管理平台联系。 - -**[01:30:02] 发言人 8**:其实也可以。 - -**[01:30:04] 发言人 7**:不是也可以他这个人意。 - -**[01:30:08] 发言人 3**:思联网上就是自然而然。 - -**[01:30:10] 发言人 0**:是把这镜像弄。 - -**[01:30:12] 发言人 0**:我的意思是你你以后你要做,你要跟笔记本做东。 - -**[01:30:16] 发言人 0**:因为现在华智我特别那华智用,但你又说华的服务器多华上,那如果用华笔记本用上,那我就怎么才能华智能,你比我笔记插一个引导拍卖启动,在这个过程中间建立了跟这个后台的联系。 - -**[01:30:33] 发言人 0**:然后我再在这个叫什么? - -**[01:30:35] 发言人 0**:我相当于用我的胖子,他他就变成了我的胖子官。 - -**[01:30:39] 发言人 0**:那我不就我后面用一台高端用一台服务器或者用台高端的。 - -**[01:30:43] 发言人 0**:比如说一一台一台工作量或者一台高端C我就能管理这些电脑,不是这。 - -**[01:30:49] 发言人 2**:个意思。 - -**[01:30:53] 发言人 7**:这个一下午要想一想你的技术是能实现,但是这样有没有什么? - -**[01:30:57] 发言人 0**:因为你笔记本电脑你可以老说你不是云,那你笔记本电脑跟我的云动面啥关系呢? - -**[01:31:04] 发言人 0**:笔记本电脑就是说我做的纳管是,但是如果我用一个U盘启动,那就更高级。 - -**[01:31:13] 发言人 2**:每个人发个K. - -**[01:31:15] 发言人 0**:扩展那K就牛逼了。 - -**[01:31:18] 发言人 0**:我我软件我。 - -**[01:31:20] 发言人 3**:软件化发个K然后我K就可以关起来。 - -**[01:31:26] 发言人 0**:然后以把整个龙虾来,那多好点,就公安那网钥人只插上了统,因为我这我我跟公安的财务一样,行驶电脑都不是你的,是我买的,你都不能用,除了工作以外啥都都不能用,你开进去都得把这个插上才能开,要不然我给你买电脑干嘛? - -**[01:31:47] 发言人 0**:你的财务我给你买个电脑干嘛? - -**[01:31:49] 发言人 0**:插上了是我的,把我拔掉就是你的不行,给公安不一样,不行。 - -**[01:31:53] 发言人 0**:对,拔掉。 - -**[01:31:53] 发言人 0**:你自己家里有电脑,我用我的拔掉,插上去才能用。 - -**[01:31:57] 发言人 0**:拔掉用不了,因为我人家还有龙虾,还有所有数据,知道吧? - -**[01:32:02] 发言人 0**:那电脑是我买的,对不对? - -**[01:32:05] 发言人 0**:那不是你你你你这好,你要你说领导我想用公司给他电脑做自己家的事。 - -**[01:32:15] 发言人 7**:你觉得逻辑图吗? - -**[01:32:17] 发言人 0**:不同,你说我不同,你就解决了。 - -**[01:32:21] 发言人 0**:我桌面我觉得你们着个准好吧,因为你这个放上去,你才有可能在后面再做个小机。 - -**[01:32:28] 发言人 0**:又跟next x也通了,跟nex通了,跟敌人也通了完了以后你包括龙虾管理,你都可以通过它。 - -**[01:32:36] 发言人 0**:因为这个外的一个U盘,一个U盘带个引导盘,带个操系,现在U盘大的,你弄个T的操没问题,弄个你弄个这个这个你弄个什么Fla弄, 弄个什么32G66G的,8G的你插上,那这个就有意思了。 - -**[01:32:52] 发言人 0**:这个我如果如果配合,但是我你们可以连我这交易,你现在可以研究,你比联想大量的出工作。 - -**[01:32:58] 发言人 0**:笔记本老板有没有这个要求,说我必须得插到U盘,我才能够这个笔记本他才能用,然后插这个U盘,那我都在我介绍下不插U盘都用不了,有没有这个要求? - -**[01:33:09] 发言人 0**:如果有这个要求,我觉得这事可能是可以的。 - -**[01:33:12] 发言人 5**:有机会的那有讲的就是本来他是这个云盘用来监管,然后再把我们的云桌面和相关的项。 - -**[01:33:18] 发言人 5**:因为我们那。 - -**[01:33:19] 发言人 0**:时候玩P都知道,你插个U盘做引导是吧,你因为你电脑坏了,你可以用它引导引导。 - -**[01:33:25] 发言人 0**:其实镜像在U盘上,你直接插U盘就重新恢复,对不对? - -**[01:33:29] 发言人 0**:你这肯定是可以的,对不对? - -**[01:33:32] 发言人 0**:我我现在我我我想对苹果电脑也是可以,苹果电脑也是可以直接一个U盘直接往拿走,那你这个是可以的,好吧,我觉得你们琢磨一下刘静,好,继续好。 - -**[01:33:49] 发言人 7**:那个终端自体云其实我想的是这样,智体云我们以后就作为A云桌面的一个数据来源。 - -**[01:33:58] 发言人 7**:等这周,不是这周,今天我把一些架构完善了,我们再沟通,结果越思路上慢慢开始清晰,到是候我们一起就上桌,把这个云桌面。 - -**[01:34:12] 发言人 0**:盒子东。 - -**[01:34:46] 发言人 0**:我操,那变成胖路段了,你以后就不用去改那些胖路段了,因为我差我还。 - -**[01:34:53] 发言人 3**:要去十倍那么多胖。 - -**[01:34:55] 发言人 0**:那干嘛不要了? - -**[01:34:57] 发言人 5**:我用它启动了,到这里。 - -**[01:34:59] 发言人 7**:插一插子,不。 - -**[01:35:01] 发言人 0**:你插我就卖。 - -**[01:35:03] 发言人 7**:这个东西。 - -**[01:35:04] 发言人 7**:那个个那个就要和本U盘里是,但是你就要和这配了。 - -**[01:35:11] 发言人 7**:对一个道理。 - -**[01:35:12] 发言人 3**:你存在U盘不。 - -**[01:35:14] 发言人 7**:是存在是一样的。 - -**[01:35:16] 发言人 7**:因为你以前就个软件。 - -**[01:35:20] 发言人 0**:还这可能。 - -**[01:35:21] 发言人 7**:好一一样样一样的一样的。 - -**[01:35:23] 发言人 7**:你想一下,你现在无非是把那个软件装在pc的硬盘上,以后你是装在U盘上,实际上是一样的,就是启动下从本地这个硬盘改成了U盘,其他都不变。 - -**[01:35:35] 发言人 7**:我就不赚那个钱了。 - -**[01:35:37] 发言人 0**:说实话你要我要连着这一坨一坨的它去卖,我库存也大我这个十倍了以后我的库存越小,我就不赚那个钱了。 - -**[01:35:46] 发言人 3**:也就是说笔记本不是我们的。 - -**[01:35:48] 发言人 0**:跟库存没,也就是说他跟胖端用胖子端最好的办法。 - -**[01:35:52] 发言人 0**:因为端我在里面做了改造以后,胖端我就封死了。 - -**[01:35:56] 发言人 7**:就跟那个C不一样,我就额外只不过我们的角个形了,就以跟基本我们那体系里面我没对,就意思这意思就是为了解决我们今天做财务。 - -**[01:36:08] 发言人 0**:这样我我我你讲我就是解决华智的问题。 - -**[01:36:11] 发言人 0**:如果我不能华智钱,我操他妈你华智这么大那么好的公司,你都了,你钱你出,你挣不了,你挣不了人家钱,你说这话你只能挣点些央企那买个的都是好都都是好大户。 - -**[01:36:24] 发言人 0**:我现在慢慢知道了,买v di都是好好户,都是他妈的央企。 - -**[01:36:28] 发言人 5**:家。 - -**[01:36:30] 发言人 0**:家当很田,一般的学也不买校。 - -**[01:36:45] 发言人 7**:是主要是运维。 - -**[01:36:48] 发言人 2**:对,买都是豪。 - -**[01:36:50] 发言人 0**:横的,就是买那个的,实际上挂了个娱。 - -**[01:36:56] 发言人 7**:乐面的名字。 - -**[01:36:58] 发言人 5**:就是那管。 - -**[01:37:00] 发言人 5**:对。 - -**[01:37:00] 发言人 0**:像我们这种是大笔记,你插可解,如果就了这么大,里面就有cpu pu了。 - -**[01:37:10] 发言人 2**:你自插上去也可以。 - -**[01:37:12] 发言人 0**:这个是我意思不是太。 - -**[01:37:14] 发言人 7**:那个是插的显示器上,你插在手机都可着。 - -**[01:37:18] 发言人 2**:你这个这么大有可能都可以。 - -**[01:37:21] 发言人 3**:直接做I的终端。 - -**[01:37:22] 发言人 0**:不是我是是我的意思是那越越好,我龙虾有的理面。 - -**[01:37:27] 发言人 5**:我只是想就像亚马逊的那个。 - -**[01:37:33] 发言人 0**:可以。 - -**[01:37:33] 发言人 2**:他插到碟上还觉得。 - -**[01:37:36] 发言人 7**:那个电视,那个小孩的学习电脑就是这么大一。 - -**[01:37:41] 发言人 0**:个插在那个电视机hd麦上,所以就是这个意思。 - -**[01:37:47] 发言人 0**:对,所以这个意思我们换解决笔本,因为他没屏,他只解决那个问题。 - -**[01:37:53] 发言人 0**:他实际上他为什么要电脑? - -**[01:37:55] 发言人 0**:他为你说的很对他不管做的再大,他解决了一个问题就是。 - -**[01:38:00] 发言人 5**:对,然后我们以后还可以把如果把员工的助理也。 - -**[01:38:06] 发言人 0**:扔到这里。 - -**[01:38:07] 发言人 0**:对,可以,插上就了插所我觉得真是一个形态,我觉得我们可以想一想,好吧,既然可以管控插上安装你电脑,插电脑说这实不行,脑全插。 - -**[01:38:22] 发言人 7**:那想看就那就是这就是这个云那面纸巾架构,我也把这点想想加进去想一想,好吧。 - -**[01:38:29] 发言人 7**:我们初步的想法就是上次开完会,这个办公、教育、医疗,其实我们有一点共同性,就是后端知识库加上我们的这个数据源,比如语音文件和mp这套架构。 - -**[01:38:42] 发言人 7**:我觉得在这三个场景当中都能满足一些需求来构建我们这个A云桌面。 - -**[01:38:49] 发言人 7**:所以今天把这个架构完善了,我们到时候再讨论一下。 - -**[01:38:53] 发言人 7**:我觉得我们可以往这个方向去走,这样的话解决了我们教育和医疗的常化问题。 - -**[01:39:00] 发言人 7**:而觉确实好像还真能用这个东西。 - -**[01:39:04] 发言人 7**:好吧,然后那个终端这里有点事儿,就是上周我说了一下3300,我们不是找申腾在低价的时候备了2000台,500台。 - -**[01:39:16] 发言人 7**:如果以低于成本价共合新华三,这样会使我们的我们采新华3 tb价,稍微有有一点优势一点。 - -**[01:39:27] 发言人 7**:但是他就必须要求我们同时走1500台的汇智牌的合同,然后和法务和刘晓琴,把采购管理办法,沟通了一下。 - -**[01:39:39] 发言人 7**:然后今天下午两建华给他们开个会,最终沟通一下,可能要和在公司过会,采购管理办法修改了,我就让申腾去填短名单的入会材料,然后我们才能和生腾走这1500台的这个具。 - -**[01:39:54] 发言人 0**:体你跟申哥聊完,你们聊完了以后,可以我就走了。 - -**[01:39:57] 发言人 0**:好的,可就不能有库存。 - -**[01:40:00] 发言人 7**:这个还好,因为那个价格确实。 - -**[01:40:02] 发言人 0**:给的比较低,当时都有库存的,有了库存他妈的就压力就大,就有2000台华三两,最后整一堆库存的。 - -**[01:40:09] 发言人 7**:有2000台500台去. - -**[01:40:10] 发言人 5**:其实最后就是被扣库。 - -**[01:40:12] 发言人 3**:那个1100最后怎么处理。 - -**[01:40:14] 发言人 7**:就不要了,110是真没办法用了,必须。 - -**[01:40:17] 发言人 2**:涛。 - -**[01:40:21] 发言人 0**:涛涛。 - -**[01:40:29] 发言人 7**:果可00库说是,1700的卖出去,我知道,但是1700卖出去的个量很少,我一起步要做1000台,1000台02年是1000台起步,1000台我拿进来,如果1300拿进来卖不掉,那就砸手里了。 - -**[01:41:05] 发言人 7**:因为我实际上不挂新华三的成本是非常低的,600不到我去拿新华三品牌标7300,这个太吓人了。 - -**[01:41:16] 发言人 2**:那新华三必他。 - -**[01:41:18] 发言人 3**:必须1100. - -**[01:41:19] 发言人 7**:价格太高了。 - -**[01:41:21] 发言人 0**:那个C110. - -**[01:41:23] 发言人 3**:卖完了,但是我。 - -**[01:41:25] 发言人 7**:新采C110,他们咨询过来的物料成本到我们这就接近三台。 - -**[01:41:33] 发言人 7**:但是如果不把新华三,我们自同汇智牌不到600。 - -**[01:41:40] 发言人 7**:对,这差距太大,差距太大,我就不敢下单了。 - -**[01:41:43] 发言人 0**:所以这个事能不能一起解决了,我就找那个。 - -**[01:41:46] 发言人 0**:因为我跟张涛说,既然我们如果能欧进来,那我们就马上把1100就也一起改了。 - -**[01:41:52] 发言人 7**:那就马上那那那就马上解决了。 - -**[01:41:54] 发言人 7**:这样的话其实我给他呗。 - -**[01:41:57] 发言人 0**:那这个事这样我下午见。 - -**[01:41:58] 发言人 0**:因为这个事,其实就是他们担心的质量问题和利润问题,对不对? - -**[01:42:03] 发言人 0**:对,现在的C1100,我说我用同样的东西,但是只要不通过智慧走,对我就可以便宜一半给你。 - -**[01:42:10] 发言人 0**:对,然后我然后你该挣你的钱你挣你的钱,但是对我们整个市场都有好处? - -**[01:42:15] 发言人 0**:被人家卡脖子了,被志伟卡脖子了。 - -**[01:42:18] 发言人 0**:我那我那那这样我跟张导武说一下,我下午刚好,因为于总上周五已经回复了咱们邮件给张导。 - -**[01:42:25] 发言人 7**:快速解决。 - -**[01:42:26] 发言人 7**:他有个很现实的问题,我们是最多一家在用那种内存的厂家,你申请福利的早就用了,你不用。 - -**[01:42:34] 发言人 0**:那你根本就不用。 - -**[01:42:36] 发言人 7**:什么内存,就是那个那个黑片内存。 - -**[01:42:41] 发言人 5**:相现在那就。 - -**[01:42:42] 发言人 0**:我们不用。 - -**[01:42:43] 发言人 2**:对。 - -**[01:42:44] 发言人 0**:我们只要不用智的,我们就能便宜,就这个意思,我们自己来找华三,他不敢用,但是但是不但是有个问题,那将还那存同。 - -**[01:42:59] 发言人 7**:样他他如果。 - -**[01:43:01] 发言人 0**:他说找的那行,那他打部点。 - -**[01:43:05] 发言人 7**:他会问这个泵子的编码,但是他应该追溯不到这个料是怎么样。 - -**[01:43:13] 发言人 0**:行,好好,我跟他看怎么走最简单。 - -**[01:43:16] 发言人 7**:但是我就最简单,他可以测一轮,但是你不要问我要怎么了。 - -**[01:43:20] 发言人 2**:就是我找张涛,我下午的话出。 - -**[01:43:23] 发言人 7**:但是存储他们还是用的新的存储,他们不敢用,究的我也不敢用。 - -**[01:43:28] 发言人 0**:对存客更所谓,我现跟那个存储人。 - -**[01:43:31] 发言人 5**:我现在家里的电脑对手我都用。 - -**[01:43:33] 发言人 7**:对,对,内存这么受命,测的过就。 - -**[01:43:37] 发言人 5**:测的内存寿命很长。 - -**[01:43:40] 发言人 7**:其他就是刚刚本来想说的那个认认增收问题,刚刚已经发过了,已经发给供应商,已经发过了,刚刚正正开会的时候,已经集团发过了,已经发给那个认证证书,那个认证机构。 - -**[01:43:57] 发言人 7**:其他没什么,其他就是上周我们要实现什么实现你说的那个授的一些上报,包括一些提取。 - -**[01:44:08] 发言人 7**:外面这有点点小改,到时我商量。 - -**[01:44:11] 发言人 0**:可要力快点弄,快点弄好下。 - -**[01:44:14] 发言人 0**:我们个AI相应的AI提高。 - -**[01:44:17] 发言人 0**:上周开五开会的时候,就是AI提高生产力,AI提高我们自己的生产。 - -**[01:44:27] 发言人 6**:那不管上的什么情况,证店张德根他们跟法院联系,他是就在签一文书判决书。 - -**[01:44:38] 发言人 6**:邯郸那个判决书就是律师还会联上法院法官,他他打分那个时间。 - -**[01:44:46] 发言人 6**:上周中局就提出了解决方案,就制作解决方案,律师也在整个材料。 - -**[01:44:51] 发言人 6**:然后我们过了之这个根据答复。 - -**[01:44:54] 发言人 5**:现在根据。 - -**[01:44:55] 发言人 6**:那个公安是就是四。 - -**[01:44:58] 发言人 2**:346个7认同式的。 - -**[01:45:01] 发言人 6**:这个上原来不是每个第一年101000个月。 - -**[01:45:06] 发言人 0**:在你说律师一份调解材。 - -**[01:45:08] 发言人 6**:料什么意思,就是让律师那个个答复材料,然后我们这个觉方可以,再个证据说噻,我们去做答复,然后我们就让他们做的。 - -**[01:45:21] 发言人 3**:现在是第一年30万,第二年40万,第每个月每个月对,每月。 - -**[01:45:27] 发言人 3**:对。 - -**[01:45:28] 发言人 0**:一年300万,第二年三百。 - -**[01:45:30] 发言人 0**:但是他没他如果他一个月不付,就有问题了,马上就报了。 - -**[01:45:37] 发言人 0**:对。 - -**[01:45:38] 发言人 6**:我。 - -**[01:45:41] 发言人 0**:觉得你这。 - -**[01:45:56] 发言人 2**:不,他不要财富了。 - -**[01:45:57] 发言人 3**:他活亏都走不通。 - -**[01:45:59] 发言人 3**:他如果是不他如果是这样。 - -**[01:46:01] 发言人 0**:应该是只有进入他的。 - -**[01:46:03] 发言人 3**:那第一他第一年第二年是几兑的? - -**[01:46:06] 发言人 6**:国安预算问你每个月付款拿。 - -**[01:46:08] 发言人 3**:但是他第一年30万那种往外挤,肯定是挤他自己内部预算。 - -**[01:46:14] 发言人 0**:不是350低,不是30万,那一年十二个月是吧,360万,360万。 - -**[01:46:20] 发言人 0**:那怎么。 - -**[01:46:21] 发言人 3**:一个月付5,那就把什么买食堂的菜,买什么那个。 - -**[01:46:27] 发言人 0**:你的意思是每。 - -**[01:46:29] 发言人 2**:个月就是那个预算,每个月证明。 - -**[01:46:32] 发言人 0**:财政开给他,然后他每个月给他得每个月给两。 - -**[01:46:36] 发言人 2**:之后老大走球了。 - -**[01:46:38] 发言人 3**:他就不认了,这也对。 - -**[01:46:40] 发言人 0**:因为啥呢? - -**[01:46:41] 发言人 0**:他每个月起,他不起都会有人利用。 - -**[01:46:44] 发言人 0**:对他进入他那个什么,反正就是。 - -**[01:46:48] 发言人 6**:每个月支付。 - -**[01:46:49] 发言人 3**:他们都都每个限每个月支付是不限制。 - -**[01:46:52] 发言人 3**:但是他是肯定起自己的预算往外付钱,就没有财政部把他们的项目。 - -**[01:46:58] 发言人 6**:他这边预算怎么来,现在我们也跑虑研究它。 - -**[01:47:02] 发言人 0**:你的那都财政就时处理条,我们看吧。 - -**[01:47:05] 发言人 3**:这是。 - -**[01:47:06] 发言人 6**:邯郸什么邯郸? - -**[01:47:08] 发言人 3**:不是。 - -**[01:47:08] 发言人 2**:这是邯郸。 - -**[01:47:10] 发言人 6**:九龙坡。 - -**[01:47:11] 发言人 6**:这个就是锦宝,也是今年也是分期把我钱200万的. - -**[01:47:18] 发言人 0**:他一次一次文化。 - -**[01:47:21] 发言人 6**:明白。 - -**[01:47:21] 发言人 0**:然后就明再说。 - -**[01:47:24] 发言人 6**:烟台是缺乏化,然后一般在的合同就是陈建,他签合同部门还没确定,因为一直跟上次打复。 - -**[01:47:33] 发言人 0**:我是本着的确定,他们就不。 - -**[01:47:36] 发言人 6**:盾建那个事,盾剑他诉了股东已经七二三开庭。 - -**[01:47:41] 发言人 0**:房,然后盾建下午是。 - -**[01:47:43] 发言人 6**:也是这个是已判了,不是已经。 - -**[01:47:46] 发言人 2**:二次开庭了,就等的是七月底。 - -**[01:47:49] 发言人 2**:好。 - -**[01:47:50] 发言人 6**:然后五年那上常务会的事情,上次出了问题,就是因财政批复这个预算未明确,非分用的非收益资金和财政拨款金的比例没说清楚,然后被政府把那个生活材料打了。 - -**[01:48:08] 发言人 6**:然后现在是非税金额,这个是2800万,是两部组成,一部分是分局拿他们的非税收入来给我们支付一部分财政拨款。 - -**[01:48:19] 发言人 6**:但是当时财政只批复了一句,这个财政由财政公安,非税收入和财政拨款。 - -**[01:48:26] 发言人 6**:那个不是听。 - -**[01:48:27] 发言人 3**:说2800万,还有分局搞非税收入。 - -**[01:48:30] 发言人 6**:我上次不是说过,3500说的这个分局说过的意思就是一半财政拨款一半非税,非税也处理,3500当时总计预算是一年3500. - -**[01:48:41] 发言人 3**:上哪个非税收入发布款。 - -**[01:48:43] 发言人 6**:发布款分局就发,不。 - -**[01:48:45] 发言人 3**:他们可以不进来。 - -**[01:48:46] 发言人 6**:才这是他接受下来。 - -**[01:48:48] 发言人 6**:那不交了,那财政协不叫财政,交了,这部分钱应该是。 - -**[01:48:53] 发言人 2**:非税收入,是直接进财政委。 - -**[01:48:56] 发言人 3**:又不进公安。 - -**[01:48:57] 发言人 6**:这个得打包拨款过来了。 - -**[01:48:59] 发言人 0**:现在进来财政拿出来。 - -**[01:49:01] 发言人 6**:这你们他打包的每年都非收入,他那财政公安有拿要有要的那个审批权利。 - -**[01:49:11] 发言人 6**:所以这个特质他。 - -**[01:49:12] 发言人 3**:们那你局去找另外一个杜局。 - -**[01:49:14] 发言人 2**:对,他们你去到。 - -**[01:49:16] 发言人 3**:李局还是你去找杜局,防导。 - -**[01:49:31] 发言人 6**:们果。 - -**[01:49:40] 发言人 0**:烦。 - -**[01:49:45] 发言人 6**:那无人机刚才说了,就是让我们那总。 - -**[01:49:48] 发言人 0**:反正我有一个底,但如果别人如果弄不下来,我这卖30,我不认可,我就是卖没钱,确实没钱,公公也知道你律师可。 - -**[01:49:59] 发言人 6**:无论建就是我们现在就是我就要想办法去找组织什么政策,相关政策落实好。 - -**[01:50:04] 发言人 0**:你找,去抓紧找你跟吴建。 - -**[01:50:08] 发言人 6**:华一起去找。 - -**[01:50:10] 发言人 6**:然后滞纳金他都已经撤诉了,上个大发,其他两个项目都还是有定照照按部就班。 - -**[01:50:21] 发言人 6**:这在目前的情况下没大的问。 - -**[01:50:24] 发言人 2**:你们看这。 - -**[01:50:25] 发言人 0**:你们还是在我加强投入。 - -**[01:50:29] 发言人 8**:我觉得可以零。 - -**[01:50:31] 发言人 8**:我看他们里面包含。 - -**[01:50:35] 发言人 3**:了3所人可视化还那些都拿不到。 - -**[01:50:39] 发言人 6**:那些不要去做了,那我们就可视。 - -**[01:50:42] 发言人 3**:化可去。 - -**[01:50:43] 发言人 7**:做那个那个做意数字人跟我。 - -**[01:50:45] 发言人 0**:们的主页如果有点一致性,我们可以试试,做完了以后自己存存点能力,就这个意思。 - -**[01:50:52] 发言人 6**:那个地方那个人的青年头重。 - -**[01:50:54] 发言人 0**:说白了说服我不挣钱的时候就是省点人力。 - -**[01:50:57] 发言人 3**:去太太大位,说我现在不要着急走急,我很有不想,不知道里面什么。 - -**[01:51:03] 发言人 3**:我们我们不承担他七千多万的业收,我们不承担他一个出资人,他妈也不过不可能的,我们七。 - -**[01:51:17] 发言人 0**:千多万的项目靠。 - -**[01:51:20] 发言人 2**:一个200万的交。 - -**[01:51:23] 发言人 3**:付收不这个问根本是个问集项目收这个我们的。 - -**[01:51:30] 发言人 5**:再别给我钱了,就相当于现在我们的现金流是正的。 - -**[01:51:35] 发言人 2**:挣的一直挣的。 - -**[01:51:36] 发言人 8**:我把研发这边情况汇报一下,第一个是云桌面这边,云桌面云南那边测试两个问题,一个是ip显示问题,这个已经解决了。 - -**[01:51:47] 发言人 8**:然后未接那个问题就是刚才说的那个识那个底库,因为他他太老了,它和现在这些新的这些外设兼容上有问题,这个我们要抓紧解决。 - -**[01:52:00] 发言人 8**:第二个就华润这边,华润这边是这样,华润徐凯昨天给我打了个电话,华润他们深圳这个项目的领导,这段时间在正好在成都。 - -**[01:52:15] 发言人 8**:他们可能想在周三让我们去一趟,去一趟就是在招标前整个跟他们整体做一次技术汇报和打印。 - -**[01:52:26] 发言人 2**:大概是这么一个情况。 - -**[01:52:28] 发言人 3**:他想深圳也问我说。 - -**[01:52:29] 发言人 8**:其实他整个这个项目最后的数据中心建设是在深圳。 - -**[01:52:34] 发言人 8**:你现在。 - -**[01:52:35] 发言人 0**:这个危机这个项目要多长时间能解决? - -**[01:52:39] 发言人 0**:因为你华润肯定也。 - -**[01:52:40] 发言人 3**:会出现这个问题是吧? - -**[01:52:42] 发言人 8**:华润是七月份要招标,华润是七月份要招标。 - -**[01:52:45] 发言人 0**:对,原旦那个V机的项目没接。 - -**[01:52:48] 发言人 8**:这个是在带店热巴查的时候会出现。 - -**[01:52:51] 发言人 0**:昨刚才说了个。 - -**[01:52:53] 发言人 0**:行,那现在下。 - -**[01:52:54] 发言人 3**:次解决了。 - -**[01:52:56] 发言人 8**:对,我们如果不去,如果华山那边不配合,我们就只有自己先在现在这个操作系统上面,先把显卡那部分的看一些重新打了,你为抓紧录,下周能解决,我写着下周解决,下周应该可以解决。 - -**[01:53:13] 发言人 8**:你说是这周解决还是下周解决,就是这周解决。 - -**[01:53:17] 发言人 3**:反正七月份要招标了。 - -**[01:53:19] 发言人 3**:华是对。 - -**[01:53:20] 发言人 8**:所以周三可能他们要求我们可能研发去研发和产品一起可能。 - -**[01:53:27] 发言人 3**:到现场要去建文,要求。 - -**[01:53:30] 发言人 8**:是团入的健玩和建文和华润现在成都那边的个经理配合,让我们一起跟他们深圳的领导见一面。 - -**[01:53:40] 发言人 8**:好,知听云这边是这样的,知听云这边那个终端其实都已经开发完了,上周他们都已经做了大部分测试了。 - -**[01:53:50] 发言人 8**:我们这周开始主要是做软客户端,然后再规划一下那个es p 32的那个那个终端,es 32那个终端它就是一个是板卡很小,第二个成本低。 - -**[01:54:01] 发言人 8**:然后外形的话,其实我觉得。 - -**[01:54:04] 发言人 0**:我们可以就是把那个语音转文字的话。 - -**[01:54:08] 发言人 8**:就在终端上转。 - -**[01:54:09] 发言人 8**:对,这个这里做的个十四六,耶稣山二只能做十四六。 - -**[01:54:14] 发言人 8**:因为椰稣山它存储很小。 - -**[01:54:17] 发言人 0**:然后语音转文字是在后台。 - -**[01:54:21] 发言人 8**:服务器转全是后台转。 - -**[01:54:23] 发言人 8**:但是是实时流,它是用后台的算力。 - -**[01:54:27] 发言人 8**:前面主要就是做。 - -**[01:54:30] 发言人 2**:那个做做那个采集。 - -**[01:54:32] 发言人 5**:实时流就了流就本基本完了。 - -**[01:54:35] 发言人 8**:不那样转。 - -**[01:54:37] 发言人 8**:无人机这边是这样的。 - -**[01:54:41] 发言人 0**:互联网的那个。 - -**[01:54:43] 发言人 8**:环境我们就大了。 - -**[01:54:46] 发言人 8**:二可以做实时,如果一般的就。 - -**[01:54:51] 发言人 0**:也能做。 - -**[01:54:52] 发言人 8**:但是是主导只能做做那个核心拿来做终备,拿来做联网采联网的这种测设备所的存储都比低成成非低比好,它可以做成各式各样的各各样的形态,平乐无故就是。 - -**[01:55:14] 发言人 5**:无故就可以做。 - -**[01:55:15] 发言人 0**:成他的算他。 - -**[01:55:16] 发言人 8**:会带进去这两年122的发展。 - -**[01:55:19] 发言人 0**:他算利做什么呢? - -**[01:55:21] 发言人 8**:如果你想在端测上面,包括端侧做那个检测,就他们做那个人脸检测,然后做那个语音唤醒,这些都会需要一点点小算力。 - -**[01:55:30] 发言人 8**:就他的端测因虽还有一好处就是他那个他低功耗,因为他以前是拿来做物联网,然后智控这边是这样的,那个互联网的环境已搭完了,然后设备就香槟山的它的设备已经上报上来了,但下上周上周一直在下雨,就没有人完成测试。 - -**[01:55:50] 发言人 8**:这周我们就抓紧把那个测试开始。 - -**[01:55:53] 发言人 6**:还是请他负责人说说不要提我络了,以及从我的角出。 - -**[01:56:01] 发言人 8**:机器上那个网。 - -**[01:56:02] 发言人 8**:对对对,我知道知道那个卡那样拿回来就把那个卡就取了。 - -**[01:56:08] 发言人 8**:然后我们无人机这边紧急上去上了四个软柱拿四个。 - -**[01:56:17] 发言人 8**:我们今天还是讲人那边再看能不能弄一那边大家说。 - -**[01:56:25] 发言人 6**:走上去。 - -**[01:56:26] 发言人 6**:不是。 - -**[01:56:26] 发言人 3**:所以说你自己这个都怕,别怕你自己去,你那卡拿到你手里,另外一根跟你们去做一个保护,给他弄啥研发这种小心渣渣的,你怪不怪? - -**[01:56:39] 发言人 6**:研发的什么意思? - -**[01:56:41] 发言人 6**:就是机场那有叫现互联网研发公司。 - -**[01:56:46] 发言人 8**:我就你就自己去把它隔离,跟我们隔离搭好了以后,到时候在公司就可以看到那个。 - -**[01:56:52] 发言人 3**:飞机的飞压。 - -**[01:56:53] 发言人 3**:那些就是上周两张卡,把卡一个把视频网卡拿到你公安放着,另外一个把机场的那个视频网线,你去做个东西封装,等他们测完了你再去给打开。 - -**[01:57:05] 发言人 3**:什么意思? - -**[01:57:06] 发言人 3**:就是用视频用互联网的,你不要用视频网。 - -**[01:57:09] 发言人 2**:对,分开是吧? - -**[01:57:10] 发言人 2**:可以把那个同学帮一下。 - -**[01:57:12] 发言人 3**:你自己安排个人去给他弄了。 - -**[01:57:14] 发言人 3**:你别等着研发,他真不小心砸错了,那你还要他妈擦一堆屁股,这你几个事情干嘛要让让他注业? - -**[01:57:24] 发言人 3**:你我们这。 - -**[01:57:25] 发言人 5**:处就出了时候就提醒大家,这个我觉得很好。 - -**[01:57:30] 发言人 3**:很就是这个东完了以后。 - -**[01:57:33] 发言人 5**:我们在在。 - -**[01:57:34] 发言人 3**:这儿也能看到了,就开会的时候直接上互联网的就非常了,这个就非常。 - -**[01:57:42] 发言人 3**:他们要用的是程,老提拉拉箱不着。 - -**[01:57:47] 发言人 3**:对,你把随便怎么弄,你都不他妈砸俩,弄个塑料袋给他封死。 - -**[01:57:53] 发言人 8**:研发也不至于给你打开。 - -**[01:57:56] 发言人 8**:然后上周因为下雨,我们就把机拿回来,遥控器云基调多,就这样的话,后面我们机上遥控器。 - -**[01:58:07] 发言人 8**:然后项目上就是中医物联网立体四联网的那个行业招标之重强,刚才其他部门都已经说,我们中物联的立体是什么? - -**[01:58:22] 发言人 3**:就是中物联他。 - -**[01:58:23] 发言人 8**:们现在视频网现在要找一家给他们提供无人机方案的。 - -**[01:58:29] 发言人 8**:我们上上周上周已经去交流了,他们对我们的技术方案应该说基本上那天是比较认同的。 - -**[01:58:38] 发言人 8**:让我们就加紧这个dp他大概是1000万把我们招进去,如果他们进入有项目。 - -**[01:58:46] 发言人 0**:他们就会通过这个ct来我们我们现在唯一的优势也不较唯一的优势就是我们跟那个因为我们跟中联。 - -**[01:58:57] 发言人 8**:那么近是吧,你找其他厂家不在重庆他的吧,那么近。 - -**[01:59:03] 发言人 8**:最好的合作,然后的话增加九个整体90 08,我们六底,我们Q定的是目标是200 280 280万。 - -**[01:59:13] 发言人 0**:抓紧吧。 - -**[01:59:14] 发言人 8**:然后其他的话一个人员变动,我们的ui U E新换了一个人员,今天已经入职了。 - -**[01:59:20] 发言人 8**:第二个财务助理这边开发本周部署测试。 - -**[01:59:24] 发言人 8**:然后crm的话,我们会在我们会在crm系统里面给我们的授权人员把他们授前人员的日报工作台给加上去。 - -**[01:59:33] 发言人 8**:这样的话以后crm就不光包含我们的销售人员,也包含我们的授权人员,他们的工作日报都放在那面。 - -**[01:59:42] 发言人 8**:好,数字人这边我们自己的这个口播数字环境已经搭出来了。 - -**[01:59:49] 发言人 8**:搭出来的话现在就是可以常规帮着出出视频,大概半个小时可以出一个视频。 - -**[01:59:58] 发言人 0**:你们再往前延展一下,这个口播先做吧,先告诉你个小秘密。 - -**[02:00:04] 发言人 8**:先把这个系列做出,先把它做了。 - -**[02:00:06] 发言人 8**:对,我们会把它我们会把这个也做成一个做成一个普通用户都可以用的一个平台。 - -**[02:00:15] 发言人 8**:软著这边你刚才说了,我们自飞平台一。 - -**[02:00:20] 发言人 0**:共报了两。 - -**[02:00:21] 发言人 8**:个算法,一个前面的几个内容报了一个算法,自飞一共四个。 - -**[02:00:28] 发言人 8**:然后这周我们还要完成一个事情,就是我们通过那个沙漠向我们的研发。 - -**[02:00:36] 发言人 0**:人开会,就是提。 - -**[02:00:37] 发言人 7**:供阿里云的科的。 - -**[02:00:39] 发言人 2**:模型服务。 - -**[02:00:40] 发言人 7**:这块完是一个统一的计口。 - -**[02:00:44] 发言人 8**:我这就这么去。 - -**[02:00:44] 发言人 0**:对对对,不要游击队,我操这个他妈的你要随时想着我们是正规军,要以铁道游击队的方式要求自己,最后就变成铁道队。 - -**[02:00:52] 发言人 8**:但是这样的崔不总上回我们也开过会,就说我们是这样的,这边我们提供的基础服务,其实他们有些同事他们用量非常高,他们也会做,自己会买一些补充,但是我们会统一要求,这样的话至少来说我们可以保证一个基础的培训。 - -**[02:01:09] 发言人 0**:好吧? - -**[02:01:10] 发言人 0**:好,你那然后你那卡是。 - -**[02:01:13] 发言人 3**:你最后那。 - -**[02:01:14] 发言人 8**:几个卡,你是四张卡。 - -**[02:01:17] 发言人 8**:是现在拿了两张卡来统一布一个推理,就是我们所有的全部还。 - -**[02:01:29] 发言人 5**:有一张卡在留给那字午。 - -**[02:01:34] 发言人 0**:不务后所都要的对。 - -**[02:01:36] 发言人 7**:就是我们所有的的那个推理。 - -**[02:01:39] 发言人 8**:我估计他现在。 - -**[02:01:41] 发言人 5**:主要审那个单子,就最大的就是审。 - -**[02:01:49] 发言人 2**:好。 - -**[02:01:50] 发言人 4**:其他的没有。 - -**[02:01:52] 发言人 0**:好,那就这样。 - diff --git a/agent_memory/uploads/chat_380095ce5521/1782273548315_1_transcript_704.md b/agent_memory/uploads/chat_380095ce5521/1782273548315_1_transcript_704.md deleted file mode 100644 index ee1282f..0000000 --- a/agent_memory/uploads/chat_380095ce5521/1782273548315_1_transcript_704.md +++ /dev/null @@ -1,2764 +0,0 @@ -# 会议704 - -**会议时间**:00:00:01 - 02:08:54 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8 - -## 会议记录 - -**[00:00:01] 发言人 0**:来吧。 - -**[00:00:02] 发言人 1**:嗯上。 - -**[00:00:04] 发言人 2**:周的话能再对一下,然后定开这边上周跟王总他们。 - -**[00:00:16] 发言人 2**:数次,然后云计销售部这边也会协调一起去跟进一下,然后追加产品。 - -**[00:00:23] 发言人 2**:这边上周报的是217万的地。 - -**[00:00:30] 发言人 2**:收入对应的毛利都是按30%去做的一个现在的话目前已经完成了79万的收入。 - -**[00:00:39] 发言人 2**:高风险这边我觉得还有两个星期大后面冲刺的一个情况,上次沟通之后放了两个项目,一个是南案的运维。 - -**[00:00:54] 发言人 2**:一个就是孟国用,这两个是可以接手保络。 - -**[00:00:59] 发言人 2**:像目前总这边是1480万的收入,145毛利千头,这边没什么变化。 - -**[00:01:06] 发言人 2**:现在这样看的话,毛利是386万的低风险。 - -**[00:01:12] 发言人 2**:今年的用户是在。 - -**[00:01:14] 发言人 0**:78万左右,我就在在这个边边上半年这个半年转正边上,还是很艰难。 - -**[00:01:26] 发言人 0**:你看都是骑系统,这很麻烦,统毕都单单就。 - -**[00:01:33] 发言人 1**:这么情况。 - -**[00:01:36] 发言人 0**:好吧。 - -**[00:01:38] 发言人 2**:你这边没有。 - -**[00:01:38] 发言人 0**:而且我们打猎我们做的小,你家紫薇他们卖这个显卡卖的,我操人家半年几千万的精利润的,我操。 - -**[00:01:48] 发言人 0**:所以说你集成你也做不过人家,我操这我们只有好容才能对标,好容是做大集成的也没有用,我操那人家做动辄几千万,动辄雪求说,你人家这个做不过,这集成也做不过,他们也是过货,但是过货人家做的也比咱们没办法好。 - -**[00:02:10] 发言人 2**:然后现在全年预估有3.2,主要是因为协同营销物流卡这边近期要签一个七千多万的项目,所以。 - -**[00:02:21] 发言人 2**:具体跟工这个项目的情况再进行调整,我这边数据会议今天弄完之后给。 - -**[00:02:31] 发言人 2**:其他就没有开始吗? - -**[00:02:33] 发言人 2**:他有个七千多。 - -**[00:02:35] 发言人 0**:万的计算。 - -**[00:02:35] 发言人 2**:要计收吗? - -**[00:02:36] 发言人 2**:今年是说要准备计收,但是合同现在还在谈。 - -**[00:02:41] 发言人 0**:他。 - -**[00:02:42] 发言人 2**:是分批次发货的,这个。 - -**[00:02:46] 发言人 0**:月记不了好。 - -**[00:02:51] 发言人 2**:我这边就我之前看。 - -**[00:02:57] 发言人 0**:好,继续。 - -**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。 - -**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。 - -**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。 - -**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。 - -**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。 - -**[00:03:57] 发言人 3**:现在累计已经收到了1297. - -**[00:04:02] 发言人 0**:那我们没电。 - -**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。 - -**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。 - -**[00:04:12] 发言人 3**:所以说他这个。 - -**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。 - -**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。 - -**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。 - -**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。 - -**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。 - -**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。 - -**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,不垫资,预付30%,发货前70%。 - -**[00:05:15] 发言人 3**:目前谈的是这么一个。 - -**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。 - -**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。 - -**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。 - -**[00:05:34] 发言人 0**:有到期。 - -**[00:05:35] 发言人 0**:几个点。 - -**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。 - -**[00:05:49] 发言人 4**:个要走什么东西。 - -**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。 - -**[00:05:58] 发言人 0**:个点是另外的。 - -**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。 - -**[00:06:03] 发言人 3**:胡松还没找你,但是。 - -**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。 - -**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。 - -**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。 - -**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。 - -**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。 - -**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。 - -**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。 - -**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。 - -**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天豪去跟你沟通通。 - -**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。 - -**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗? - -**[00:07:29] 发言人 3**:那谁接呢? - -**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。 - -**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做? - -**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。 - -**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。 - -**[00:08:04] 发言人 5**:我们今天把超就算快。 - -**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。 - -**[00:08:11] 发言人 0**:两种方案的成本就不太一样。 - -**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。 - -**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。 - -**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。 - -**[00:08:49] 发言人 0**:放碑。 - -**[00:08:59] 发言人 3**:的。 - -**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。 - -**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。 - -**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。 - -**[00:09:26] 发言人 0**:天天去管理。 - -**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。 - -**[00:09:41] 发言人 5**:有有多少人,那这个个。 - -**[00:09:46] 发言人 0**:个这。 - -**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。 - -**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。 - -**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。 - -**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。 - -**[00:10:16] 发言人 0**:不并不大是吧? - -**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个? - -**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。 - -**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。 - -**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。 - -**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。 - -**[00:10:54] 发言人 3**:好,那我继续。 - -**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。 - -**[00:11:17] 发言人 3**:然后周俊杰和何。 - -**[00:11:20] 发言人 0**:丽湘配合。 - -**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行? - -**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。 - -**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。 - -**[00:11:40] 发言人 3**:让紫薇看一下。 - -**[00:11:41] 发言人 0**:给紫薇也看一下。 - -**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。 - -**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。 - -**[00:11:50] 发言人 3**:因为你这。 - -**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧? - -**[00:11:56] 发言人 0**:说实话我们就帮忙居多。 - -**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。 - -**[00:12:06] 发言人 3**:那我起草一份微对你。 - -**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。 - -**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期好龙也准备好了。 - -**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。 - -**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。 - -**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。 - -**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。 - -**[00:12:47] 发言人 0**:还是说的那个咱本能。 - -**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。 - -**[00:13:10] 发言人 3**:对对对。 - -**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧? - -**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。 - -**[00:13:29] 发言人 0**:你这个就是有就行,边际成本。 - -**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。 - -**[00:13:37] 发言人 0**:这个不对,不是吧? - -**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。 - -**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧? - -**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。 - -**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你? - -**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要? - -**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对? - -**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。 - -**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧? - -**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。 - -**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。 - -**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。 - -**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。 - -**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。 - -**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整? - -**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。 - -**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我? - -**[00:15:40] 发言人 5**:都其实有好多人在报。 - -**[00:15:42] 发言人 0**:在哪怎么报? - -**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着? - -**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。 - -**[00:15:51] 发言人 5**:不不不,你说话要负责的。 - -**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少? - -**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。 - -**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。 - -**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那是有人报,有人报。 - -**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。 - -**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧? - -**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。 - -**[00:16:34] 发言人 0**:行,两千美金,两千美金。 - -**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。 - -**[00:16:39] 发言人 0**:这羊出羊,那他们那个。 - -**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。 - -**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。 - -**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢? - -**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。 - -**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。 - -**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧? - -**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。 - -**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。 - -**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操,你这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。 - -**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少? - -**[00:18:12] 发言人 0**:以后需要多少,怎么做? - -**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token? - -**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗? - -**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧? - -**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型? - -**[00:18:36] 发言人 0**:还没有。 - -**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。 - -**[00:18:43] 发言人 0**:那些我们做的财务。 - -**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。 - -**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。 - -**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。 - -**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。 - -**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。 - -**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。 - -**[00:19:29] 发言人 0**:我们算的清账吗? - -**[00:19:30] 发言人 0**:关键你现在算不清账吗? - -**[00:19:32] 发言人 0**:你知道吧? - -**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。 - -**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对? - -**[00:19:42] 发言人 0**:他就拿市场比市场平济市场,我们水油拿去卖,拿到那个街上。 - -**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方? - -**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那妈人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。 - -**[00:19:58] 发言人 0**:我操是吧? - -**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。 - -**[00:20:05] 发言人 0**:行。 - -**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。 - -**[00:20:14] 发言人 5**:所以说我觉得。 - -**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧? - -**[00:20:24] 发言人 0**:这后面的这个叫什么呢? - -**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。 - -**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。 - -**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢? - -**[00:20:44] 发言人 0**:你为你们做,这是个工程。 - -**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。 - -**[00:20:56] 发言人 0**:你就跟那个。 - -**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。 - -**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他跟他去确认,因为说确认了一次,不是上我他我周六。 - -**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。 - -**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。 - -**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. - -**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。 - -**[00:21:25] 发言人 3**:会说不给我的。 - -**[00:21:26] 发言人 3**:吴家表那。 - -**[00:21:27] 发言人 0**:有一台没了。 - -**[00:21:28] 发言人 5**:他发到发到。 - -**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。 - -**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。 - -**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。 - -**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。 - -**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体? - -**[00:21:50] 发言人 5**:好,我还真知道。 - -**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。 - -**[00:21:57] 发言人 6**:硬件搞搞,是100的. - -**[00:21:59] 发言人 0**:3分之1都算的。 - -**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗? - -**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。 - -**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。 - -**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。 - -**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道? - -**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对? - -**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。 - -**[00:22:58] 发言人 0**:他没有dream,他就是要资源互投资,哪有那么个dream。 - -**[00:23:01] 发言人 0**:说了几年的剧,只问毛剧,所以我们这也不存在dream不剧,我们剧最多就是一年半年,今年能不能做,明年能不能做做不了就别做了,没剧没就那么点钱,哪有剧。 - -**[00:23:13] 发言人 0**:所以说我说回来就是你们能不能至少在他妈的要资源护图的这一块,你们能不能给我那个正。 - -**[00:23:24] 发言人 5**:规军。 - -**[00:23:26] 发言人 5**:好。 - -**[00:23:27] 发言人 0**:我们下来再开展这个交易。 - -**[00:23:29] 发言人 0**:参加以后我们再开展这个问题,把这个把硬件把这么给搞明白,我操你们,这个其实我实话实说,没好意思说我在外面吹牛,实际上还是游击队,紫光汇智游击队信息技术有限公司。 - -**[00:23:43] 发言人 0**:我操哪天把游戏都脱掉,铁道游击队。 - -**[00:23:54] 发言人 0**:这点抽点东西过个货,那抽点东西过个货就提到一个月。 - -**[00:24:02] 发言人 0**:好,继续。 - -**[00:24:03] 发言人 3**:我招人的话,九个人九个省可没问题了。 - -**[00:24:07] 发言人 3**:我们个曾幸福,云南那个那个人韩东生,我下午约四点再面一下,如果没问题。 - -**[00:24:17] 发言人 3**:进来,然后韩东生,刚刚我跟孙刚也聊了,让陈畅也跟他面对面沟通。 - -**[00:24:24] 发言人 3**:有下午我自己再跟他聊一下。 - -**[00:24:27] 发言人 0**:但是约了十天。 - -**[00:24:29] 发言人 3**:然后关于明智的各省份的考核数数据现在C 2M上是1.8亿的空间。 - -**[00:24:36] 发言人 3**:然上周一我们开会让他们把所有的空间填报C 25的信息的准确度重新更新里面。 - -**[00:24:44] 发言人 3**:目前来看在九个销售里面的省份,预估六月下单金额在307万,准确率我们认为应该是已经达到80%的准确率的。 - -**[00:24:55] 发言人 3**:这个C M目前已下达了只有万,就是六月份单月总计预估下达307万,已完成56万。 - -**[00:25:04] 发言人 3**:我刚刚会前跟三郎也讨论一下这十个省份云质的任务。 - -**[00:25:10] 发言人 3**:我们是把6到12月对他入职时长,6到12月把他们拉了一下经营20年的任务。 - -**[00:25:17] 发言人 3**:然后有两个内蒙河南和重庆的杨思磊,然后张贵和杨思磊因为在职12个月就挂了全年任务,剩余的就根据食长来我们列了,目前预估差不多在2800万云值销售,云质销售就26年的任务。 - -**[00:25:33] 发言人 3**:然后下周我们会最终我们把正式的跟每个人。 - -**[00:25:41] 发言人 3**:最后是有几个求助,一个就是汇智牌的3650和5600的检测报告,具体这面加快一下。 - -**[00:25:50] 发言人 3**:6月26号八号米这有个标要投100万左右的标地,这两个终端的费用用到。 - -**[00:25:57] 发言人 6**:需要检测报告。 - -**[00:25:59] 发言人 3**:6月26号没有出来。 - -**[00:26:01] 发言人 3**:能不能做来出来。 - -**[00:26:03] 发言人 6**:这个我你出不。 - -**[00:26:05] 发言人 3**:我到时候想办法,你把他现在是给了的么报告模板给销售,这个我们就不去能力,如果能出来,我们就催一下,因为他是已经定好开标这两个终端也已包括价格,我催一下,有可能能出来。 - -**[00:26:20] 发言人 6**:但是这个不保证,不保百分之百,你催一下急。 - -**[00:26:24] 发言人 6**:对。 - -**[00:26:25] 发言人 4**:他已经是。 - -**[00:26:25] 发言人 3**:加催急了。 - -**[00:26:26] 发言人 6**:我们上周我们当时搞过检测报告。 - -**[00:26:29] 发言人 3**:我检测报告我们的是我们上次紫发软件是带病忙的,马上招标。 - -**[00:26:35] 发言人 6**:我跟你说说都花。 - -**[00:26:36] 发言人 3**:十天就搞下来,拿掉个我就催训志给的这个报告。 - -**[00:26:41] 发言人 6**:我感觉没那上周是我们集团对我们的商标合同耽搁了十天,集团才今天早上才给到,我们也一直在催集团到没有到期,但是人家说你到期时间太短了,他不给我批正什么起的尤尼森是那个商标紫光集的。 - -**[00:27:03] 发言人 6**:然后是7月6号到期,然后其实没到期,但是证书机构是认为我们那个到期时间太短了让我们重新一签。 - -**[00:27:14] 发言人 6**:我想我们我要和华润。 - -**[00:27:17] 发言人 1**:法找个集团。 - -**[00:27:19] 发言人 3**:然第就是公安机策问题。 - -**[00:27:23] 发言人 0**:已到全。 - -**[00:27:25] 发言人 6**:那单如果拖拖。 - -**[00:27:28] 发言人 0**:他们这次。 - -**[00:27:30] 发言人 6**:已经很是因为有两个流程。 - -**[00:27:37] 发言人 0**:继续。 - -**[00:27:38] 发言人 3**:然后关于像公安的一期专用的问题,我们上周第一顺国找了南海公安做测试。 - -**[00:27:47] 发言人 3**:第二我找了市局。 - -**[00:27:51] 发言人 3**:都没有遇到过在公安网或者是电子网,或者视频专网一起发问的情况。 - -**[00:27:58] 发言人 3**:也孙伟找到北信源,北信源也答复没有那个安全边界,他们想做但还没做,所以说就完全不一样。 - -**[00:28:07] 发言人 3**:所以说榆林公安那个榆林公安是这样的。 - -**[00:28:11] 发言人 6**:我们问他内蒙,我说内蒙你们到底是怎么在用机方用? - -**[00:28:16] 发言人 6**:最后他是说那个机子是接两个网口都接了公安网,但是他们在公安网里面把它分成了数据域和用户域两套语。 - -**[00:28:27] 发言人 6**:用那个是正常的,那个是可以用他他们他们是这样的用好,榆林公安现。 - -**[00:28:34] 发言人 3**:在就是不知道他们要怎么用。 - -**[00:28:36] 发言人 3**:没榆林公安那个漏洞反馈回来的就是公安网和电子网。 - -**[00:28:41] 发言人 6**:不是他的不动打电话了,他报告写的给我写的报告那个报告他说他最初是客户说他们云桌面要用到公安和网和政务外网,但并没说要跨两个网段。 - -**[00:28:55] 发言人 6**:然后他们现在也去问了,不知道客户到底要怎么用,因为这个还没装,但是这个东西是客户明确要求就装网口,他谁我们去装,所以装的时候要他们部署给我们反馈。 - -**[00:29:10] 发言人 3**:一个人说了,这里就是两个问题,一个是我跟苏伟跟俊杰也开了这个会议,如果是我们去装双网口,如果是政策不允许,最后影响的肯定是这个位置。 - -**[00:29:21] 发言人 3**:对,就是公安肯定会甩锅。 - -**[00:29:23] 发言人 3**:公安不可能因为这个事丢自己的不纱帽。 - -**[00:29:27] 发言人 3**:那为这个事情就是政策问题,到底允许不允许北信源我们在里面买全器,他厂家自己都说他没做,那怎么会涉及那安全? - -**[00:29:36] 发言人 3**:所以我们里面。 - -**[00:29:38] 发言人 0**:没有法务的风险,那个已经给卖,已经给给那个基本。 - -**[00:29:43] 发言人 5**:上还我卖出去了。 - -**[00:29:44] 发言人 0**:卖出去也到没有什么。 - -**[00:29:46] 发言人 3**:按理说出问题,出问题你厂家就会有风险,谁接的那个谁就要负责任,就是谁机接一线是。 - -**[00:29:54] 发言人 6**:有问题的。 - -**[00:29:55] 发言人 6**:但是本身产品没问题,因为我产品多了一个网格。 - -**[00:29:59] 发言人 0**:你产品问题是你合同里面有没有设方案,你的之间有没有,那叫叫法律分歧,说他妈的你说你可以,结果不可以。 - -**[00:30:08] 发言人 0**:因为你造这个方案的时候,经销商觉得我马上就卖了,但最后经销商打官司联用了,经销商退货了。 - -**[00:30:16] 发言人 0**:也就是说在合同里面你。 - -**[00:30:18] 发言人 6**:承诺我的你没达到,对客户没说他要怎么用,但是他客户。 - -**[00:30:23] 发言人 3**:就要刷网口,这个方面不是我们设计的,我是他要。 - -**[00:30:26] 发言人 3**:彭总不知道记不记得18年的时候,王云还在立维的时候,19年深圳商汤就爆了一个雷,虽然是基层商买的桑汤,供给公安做的人脸识别,但是整个深圳市公安稽查和公示的是孙信福泄露了深圳市仓库库中标。 - -**[00:30:46] 发言人 3**:不是孙信福,是桑汤泄露深圳市仓储库,我直接划成一个大红头文件,在网公网上公示的。 - -**[00:30:54] 发言人 3**:虽然不是商汤直接中标,商汤也不会直接中标。 - -**[00:30:59] 发言人 3**:但就是说商涛的人脸识别这套系统,把深圳仓储库给泄露了。 - -**[00:31:04] 发言人 3**:原因是他缓存深圳仓储库,被别人在实频专网给他攻击了,把仓储库拿走,厂家肯定会有这个影响。 - -**[00:31:11] 发言人 3**:所以说我在搞这个试点测试的过程中,我至少就业务层面从南安华送我们的,包含罗天华,从市科兴镇的。 - -**[00:31:19] 发言人 3**:是没有遇到,就直接过。 - -**[00:31:21] 发言人 0**:现在上没有使,因为本来我就是希望这个做一个案例,做一个可复制的案例,因为公安这个事还是很大,是吧? - -**[00:31:29] 发言人 0**:你这了解一下。 - -**[00:31:31] 发言人 4**:这原则上我建议如果业主不给我们材料的话,他不给我就是不管是这种材料,不管挂哪,我你必须下到命令给我,给个东西给我才能建议,不管是管我事情还卖我,这三个我绝对不能乱传,因为当时我们来面公。 - -**[00:31:49] 发言人 0**:交流所有不好。 - -**[00:31:50] 发言人 3**:那最后一个就是今天早上那个谁与志伟过错的一个字,自发政开发这政厅就是产妇找的,他产妇找的,他说我们报价太高,我要是为能不能协调地力开发申请,报价太高。 - -**[00:32:08] 发言人 7**:的问题是包含这付费用。 - -**[00:32:11] 发言人 7**:他他跟我说的是。 - -**[00:32:12] 发言人 3**:一开始我们报的15个变成7.5,结果那个产妇跟他说,你们最多给你2万块钱。 - -**[00:32:20] 发言人 3**:能够做这个事情,这个细节看谁能帮于志伟去协调一下。 - -**[00:32:26] 发言人 0**:这个事是谁来管。 - -**[00:32:28] 发言人 3**:是华山,但是确定孙兴福已经在这个,这人庭目上已经。 - -**[00:32:34] 发言人 0**:设计完了,核实孙兴福。 - -**[00:32:36] 发言人 0**:谁什么意思? - -**[00:32:37] 发言人 0**:这个项目。 - -**[00:32:38] 发言人 7**:是底是云的项目,想浙江省数据局的一个云肉面的项目,他但是浙江不是政务网上有个自政钉,钉钉的就是阿里宝的钉钉的一个东西,所有的政务网上都要跟这个硬接,有些可能我们开。 - -**[00:32:58] 发言人 0**:这个接口。 - -**[00:32:59] 发言人 7**:他们评估了大概10万15万研发。 - -**[00:33:03] 发言人 0**:研华三海,那这肯定。 - -**[00:33:05] 发言人 7**:他们来来来定制。 - -**[00:33:07] 发言人 0**:这个东西华山品华山三十多年的研发。 - -**[00:33:11] 发言人 0**:对,三十多三十那肯定是乱评的那这个肯定没。 - -**[00:33:17] 发言人 7**:这么搞的,但你这个2万块钱肯。 - -**[00:33:20] 发言人 3**:定一高不? - -**[00:33:22] 发言人 3**:当时不就是说我们弄个人进进华山这种农。 - -**[00:33:27] 发言人 0**:关键项目。 - -**[00:33:30] 发言人 7**:要拿项目已经下。 - -**[00:33:35] 发言人 3**:已。 - -**[00:33:36] 发言人 7**:掉了。 - -**[00:33:37] 发言人 0**:现在。 - -**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。 - -**[00:33:49] 发言人 3**:是么高。 - -**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。 - -**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。 - -**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有问题的,他也没问我们。 - -**[00:34:07] 发言人 0**:然后省付钱。 - -**[00:34:08] 发言人 7**:省代省代就省代就是做,他肯定做不了。 - -**[00:34:16] 发言人 3**:现在浙。 - -**[00:34:19] 发言人 7**:江代表处。 - -**[00:34:21] 发言人 3**:江表华华。 - -**[00:34:23] 发言人 7**:华妇妇数志。 - -**[00:34:27] 发言人 6**:投标过程啥。 - -**[00:34:29] 发言人 7**:都没不上,自己管的对,也没问。 - -**[00:34:35] 发言人 6**:我们。 - -**[00:34:36] 发言人 6**:然后现在他。 - -**[00:34:38] 发言人 7**:妈的我们。 - -**[00:34:40] 发言人 6**:这个概就报端。 - -**[00:34:42] 发言人 7**:到江。 - -**[00:34:44] 发言人 6**:你们谈。 - -**[00:34:44] 发言人 0**:反正如果后期有扩容这个的话,我觉得还是看看能不能结合这个合我们在个那我现在给。 - -**[00:34:54] 发言人 7**:他是说175000,然后再跟他再再磨呗。 - -**[00:34:58] 发言人 3**:首千华还说不,这个产妇比出来了,毕竟骨感可以重视的。 - -**[00:35:03] 发言人 6**:好吧,像我们的。 - -**[00:35:05] 发言人 7**:亏亏也没办法,有些人。 - -**[00:35:08] 发言人 0**:该做还是75000,你是边际成本的,你亏啥亏。 - -**[00:35:12] 发言人 3**:你反正那个人你都养。 - -**[00:35:14] 发言人 0**:只要华商愿意给我干了。 - -**[00:35:17] 发言人 7**:那几个人反正你都养了。 - -**[00:35:19] 发言人 7**:好,这里面就是说他能做吗? - -**[00:35:23] 发言人 6**:农业新招的那个。 - -**[00:35:24] 发言人 3**:他现在可以做。 - -**[00:35:26] 发言人 3**:我认为这个归接跟人家就跟产。 - -**[00:35:29] 发言人 0**:品主线一点关系没有,进不面试,你们走走,要走走。 - -**[00:35:35] 发言人 7**:还是能做一些事情的,可以做不少事情的。 - -**[00:35:38] 发言人 7**:就像类似的这种活就可以我。 - -**[00:35:41] 发言人 0**:们就可以扔给他去做了。 - -**[00:35:43] 发言人 0**:你觉得可以你就招。 - -**[00:35:45] 发言人 0**:我觉得他们但时价格。 - -**[00:35:47] 发言人 7**:他跟薪资这边他可能要总共加起来在2K左右。 - -**[00:35:51] 发言人 0**:这个20K左右。 - -**[00:35:58] 发言人 7**:你们看到,但是我觉得还是有有价值的。 - -**[00:36:02] 发言人 7**:至少我们放一个人进去。 - -**[00:36:04] 发言人 7**:而且张志辉答应过,就过两个月肯定把它放到这个研发场地里去工作的。 - -**[00:36:09] 发言人 3**:好,继续,我这儿结束了没。 - -**[00:36:13] 发言人 1**:其他没。 - -**[00:36:32] 发言人 8**:这个的话一个是上周的话,一个是河北农信的有一个开发测试区网络建设的设备的这样的一个项目。 - -**[00:36:43] 发言人 8**:然后的话这个事情是应该是到后续马上要签合同的,应个是。 - -**[00:36:51] 发言人 8**:第二个的话是中国移动通信的青海有限公司,有一个d的一个集成投组伙伴的。 - -**[00:37:00] 发言人 8**:我们应该是要去入他的一个编c的一个库。 - -**[00:37:04] 发言人 8**:然我们上周的话是把我报了名,就应该是跟着项目走。 - -**[00:37:12] 发言人 3**:这是王丽丽那。 - -**[00:37:15] 发言人 1**:边算力小,目。 - -**[00:37:18] 发言人 3**:动卖卖给买我们我们去买新华三四光合到一起有两个规模,王也利用为他主导这个销售,就看有没有机会。 - -**[00:37:30] 发言人 3**:80%的工作目都谈的7788了,但现在我们就是相当于做移动的助理,要不然我。 - -**[00:37:39] 发言人 3**:移动要求我们的电视厅汇。 - -**[00:37:43] 发言人 0**:这个有。 - -**[00:37:44] 发言人 3**:几个点,现在还没谈他他端午节回来要搞我,他那个就谢谢。 - -**[00:37:52] 发言人 1**:我稍等等。 - -**[00:37:53] 发言人 0**:好好继续。 - -**[00:37:54] 发言人 8**:第三个也还是上次说的是就昌平的M4的一个这块的一个项目。 - -**[00:38:04] 发言人 8**:然后的话我们上周的话是主要是看了一下他的图纸,图纸的话应该是还是不管是图纸也无权,然后清单的话又就遗漏的地方,我觉得可能就是重点的话是。 - -**[00:38:18] 发言人 1**:要把那些图纸。 - -**[00:38:19] 发言人 8**:清单这些东西把它理清楚。 - -**[00:38:22] 发言人 8**:然后在后面的这个项目把它顺。 - -**[00:38:32] 发言人 8**:第四个的话是辽宁,辽宁的那个。 - -**[00:38:38] 发言人 8**:电视台的4K的项目,上周也汇报过,然后尽快的话推动它报。 - -**[00:38:49] 发言人 8**:然后我这边的话是一个是那个视频号。 - -**[00:38:52] 发言人 0**:数字也一直没搞好。 - -**[00:38:54] 发言人 8**:对,因为搞本来是最开始搞搞好了一个,搞好了一个,甚至说我们那个微微胖里头以后不能够再用那个呃就是微胖的字。 - -**[00:39:06] 发言人 0**:我们数字研究越来越回到了什们网上那个长得有点像那个了,他好像他们是故意这样的。 - -**[00:39:16] 发言人 0**:牛娃二的数字很多,那女的都一样,女的都一样。 - -**[00:39:20] 发言人 6**:发音都一,不是翻译。 - -**[00:39:21] 发言人 0**:你没发现那女的都也是老的年轻的都一样,好多男的女的也一样。 - -**[00:39:26] 发言人 0**:因为就一套。 - -**[00:39:27] 发言人 6**:东西做出来,所以我觉得因。 - -**[00:39:29] 发言人 0**:为那个成本低,或者说可能平时的什么也低,就在国内我觉得都走向那个方向。 - -**[00:39:36] 发言人 6**:也每次都一样,语气都一样,我看他好,然后我人小气。 - -**[00:39:41] 发言人 0**:就是脸五年的脸,你没发现你自己,你发现你你你看看就最近发布那个那个张艺发布那个就跟那个就跟我们那个那就开始瘦下来了,原来我们俩研人一样,就开始跟那个像了。 - -**[00:39:54] 发言人 8**:他可能那种无论是因为我们做最后要做那个视频的话,他还是要通过那个C档次。 - -**[00:40:01] 发言人 8**:C档的话他肯定里头他在做那个点的时候,他肯定是有他的一系列的规范条件的。 - -**[00:40:09] 发言人 8**:所以说你越做就会和网上的那个数字点做的越来越像。 - -**[00:40:15] 发言人 8**:就不管你怎么约束他,你给他写什么替示词,或者你的原始是你给到他了个他给你做出来的,可能他就会有。 - -**[00:40:27] 发言人 8**:然后南岸的那个无人机。 - -**[00:40:30] 发言人 4**:项目的话。 - -**[00:40:31] 发言人 3**:那个是。 - -**[00:40:33] 发言人 0**:但是也有很多高手。 - -**[00:40:35] 发言人 0**:但是我怀疑这新浪子里面出来的那些,很多女生好看的各个但是只。 - -**[00:40:43] 发言人 5**:要是那种叫什么快餐店出来的,全是一样。 - -**[00:40:48] 发言人 5**:你用他平台的他太多了,只能用他拍的。 - -**[00:40:52] 发言人 5**:还有就是自那个feel自己做那个。 - -**[00:40:55] 发言人 5**:可所说我们做过。 - -**[00:40:58] 发言人 0**:但他算消耗比较高。 - -**[00:41:00] 发言人 0**:如果我们这你们你你你高多少,你搞没有,老板我们之前搭过。 - -**[00:41:06] 发言人 5**:但我们但时出一个视频太长了,出一个视频2个小时。 - -**[00:41:11] 发言人 7**:这样。 - -**[00:41:12] 发言人 7**:我觉得想这个数字人这个事儿,我觉得还是我我觉得还是有价值去做这个是。 - -**[00:41:19] 发言人 0**:就是我我。 - -**[00:41:20] 发言人 7**:不仅仅是我们自己用,我觉得我就是我们现在民桌面,有大量的教育云桌面,教育桌面。 - -**[00:41:27] 发言人 7**:我还是觉得原泉园那个味孩的。 - -**[00:41:30] 发言人 0**:你是对的。 - -**[00:41:31] 发言人 0**:我就很简单,你做的好你得划算。 - -**[00:41:34] 发言人 0**:每个代表数你给他做个一万的,他给他算的业绩你都是你你你就几十个,你代哪个代表数做的好呢? - -**[00:41:42] 发言人 0**:你看见没有? - -**[00:41:43] 发言人 0**:没有,就很简单,你要去做,你给省代每个做一个,那省代还在拿人社,但是现在这个事情,江毅就慢的。 - -**[00:41:52] 发言人 0**:你们江毅你琢磨琢磨。 - -**[00:41:53] 发言人 0**:还有一个他江毅你牵头,你管他们这样你牵头,你把你们他们开一起,你要企业方理中心,你们把这个把这个就把这个硬件,我们需要这个硬件,我操人家一个他妈七个人就一台H 20是吧? - -**[00:42:12] 发言人 0**:发六台我去要,后来紫薇说他们用的很满,给我们台还担心我做算法就是你自己得自己你想办法,你很多东西都要想出来的。 - -**[00:42:23] 发言人 0**:如果我我跟你说,我下一步我坚定不的,下一步只要你们做出,我们就把他们的埃踢布给他们,关着门说,就把他埃踢部给他收了。 - -**[00:42:33] 发言人 0**:因为你还是那句话,我租的比你便宜,你他妈你七个人花几百万,一台20多少钱,我合在一起我都买过来,我半价给我说,紫薇你看你七个人200万加上H 20多少钱,合在一起我一半我就全买过来,我说你业务给你接了。 - -**[00:42:51] 发言人 0**:因为本来我搞it,我也想我们各个部门对不对? - -**[00:42:56] 发言人 0**:都想去好好的企业。 - -**[00:42:59] 发言人 7**:你所有都结构化的一些it的人。 - -**[00:43:02] 发言人 0**:问题是用这种稳定模型,这个不一定做,还是两个,我觉得还是要混合,就本地做一部分上面做一个。 - -**[00:43:11] 发言人 0**:你比如举个例子,本地就写文案,本地把那个叫什么呢? - -**[00:43:17] 发言人 0**:就一次过,本地如果能把那个的那都好,你到面次过,你然做是我操不行,又重新做一次,再不行,我说你道理。 - -**[00:43:27] 发言人 0**:是,所以还有一个我顺带说这个我就建议你在你在你你你你你们就再落实一下。 - -**[00:43:35] 发言人 0**:就华山那个他一台服务器多少钱,多少算你500是. - -**[00:43:40] 发言人 8**:什么事儿? - -**[00:43:41] 发言人 8**:好吧,用的是么? - -**[00:43:43] 发言人 8**:我这个我下面就是最后一点,我上周实际上是我和那个,你看我们一起和华山的开了两次会说这个事情。 - -**[00:43:54] 发言人 8**:就现在的话他们就是给我们提了服务器的方案和一个是4900,一个是5300的。 - -**[00:44:02] 发言人 8**:然后四华山来华夏华山,我是跟华山开的会,没有华不开什么会。 - -**[00:44:08] 发言人 8**:我们上周我们说那个流程,我们不是要数字助理吗? - -**[00:44:13] 发言人 8**:数字助理的话,当时您就说比说我们要配硬件,配硬件的话就必须要要那照华山那的服务器服务器。 - -**[00:44:23] 发言人 8**:对对对,你说我就跟拧到一起,我们就把需求提给华山了。 - -**[00:44:28] 发言人 8**:华山就给了我们两款配置,一款是它的4900系列,一款是它的5300系列。 - -**[00:44:34] 发言人 8**:然后每一款里头有两种芯片的配置。 - -**[00:44:37] 发言人 0**:一种是英伟达的芯片配置,还有一种是这个就应该有H 20的。 - -**[00:44:42] 发言人 5**:对,他他华他的20L20H20,如果A20H20超过我们的那个好,这样的就是我我觉得是这样的话。 - -**[00:44:50] 发言人 8**:我们先让华山,因为我们需求现在是清晰的,我们要些什么东西,需要多大的算力是清晰的。 - -**[00:44:58] 发言人 8**:我们先让华商把这个配置出来以后的话,我们如果。 - -**[00:45:02] 发言人 0**:有好,你们先把数据也拿到,去年你们也把H 20的数据拿到,我以后就不问你了,我他妈全程给我的AI助理,我有啥事问我的AI我操。 - -**[00:45:14] 发言人 0**:我就问他。 - -**[00:45:15] 发言人 8**:我说H 20到底用多少? - -**[00:45:17] 发言人 8**:他这个是这样的,他这个方案最开始我给的方案就是我和AI讨论,讨论完了以后我就没有去问华山,就是你就是我就直接把这个配置给他,我就说你帮我确定一下这个配置要多少钱,就这么来的。 - -**[00:45:35] 发言人 8**:他也觉得现在这个就是华山他们现在出这种低端的,因为当时你也跟我说,你说大概只能20万,可能就已经是这个事情的上限。 - -**[00:45:46] 发言人 8**:因为你当时是先给了我一个中心的配置,最低的那个大概要五六十万,就那个中心,那他的那个我就给提出来,我说你先分析中心的配置,配置完了,你我们华的配置做的中这个有竞争,他就给了我配置,然后我就把这拿华讨论。 - -**[00:46:05] 发言人 8**:因为具体的他哪些机器适配了哪些卡,我们现在确实是搞。 - -**[00:46:10] 发言人 0**:其实这个我现在理解,这个Q可open可各种可,实际上你看他都是没头的,你要有头的话,你要腾讯他首先第一个事是想接到自己的头里是吧? - -**[00:46:21] 发言人 0**:对,但是他慢慢他有开发商,你接别人的头,那中兴他他也是无头的,他无头的他自己需要那么大算力干嘛? - -**[00:46:30] 发言人 0**:他不需要那么大算力。 - -**[00:46:32] 发言人 0**:如果纯无头的不就一个盒子就可以了,对不对? - -**[00:46:36] 发言人 0**:但是他有些可能都希望自己在里面,比如说放一个自己的,我觉得现在有点乱战,他妈放一个自己的什么小模型,或者放一个自己给人家。 - -**[00:46:47] 发言人 0**:像腾讯这个模型很有意思,用这个Q的模型叫au他. - -**[00:46:50] 发言人 0**:这auau是一个点底下还有0.5的、0.8的,我操就自动的。 - -**[00:46:55] 发言人 0**:但是我都怀疑他是里面有可能他有些时候可能就拉到海外,有可能用他自己的可能海。 - -**[00:47:02] 发言人 0**:那很神奇,他是一个点其他的些模型,但然他们用阿里的其他那些模型,就是有0.8的,0.5的,有一家上市公司的H这个叫什么? - -**[00:47:14] 发言人 0**:而且你说的,我跟你说腾讯现在人家已经就是你说不好用,他现在已经把那个就是我昨天晚上装的那个千问的那个欧那个那个那个欧了么? - -**[00:47:27] 发言人 0**:那个千问3.5这个506年5月,06年3月份四月发布的9B的都可以下载了。 - -**[00:47:34] 发言人 0**:我其实我昨天晚上下载俩东西,他妈一个下载海外那个奥了么,下了他妈的2个小时没下载。 - -**[00:47:40] 发言人 0**:然后我看他那个奥了么什面最新公布的,他还没腾讯申这个新,也就是腾讯现在已经把这个对外本地模型也全都可以让你接了,就bug很多。 - -**[00:47:50] 发言人 0**:我操我这接的时候他妈来回,但是我跟你说本地模型也能接,海外模型也能接,而且我今天跟朋在聊,skill他给你做了一大片mer就. - -**[00:48:00] 发言人 0**:是其实他这个龙虾,我觉得腾讯核心中核心这个腾讯最未来它最最重要粘客户的就是skill和memory。 - -**[00:48:08] 发言人 0**:而且最有可能那个年客户的就memory。 - -**[00:48:11] 发言人 0**:因为他的memory,他的个微信的迁移成本其实也是memory,就是我那记忆那么多,你他那个memory一旦拉长了以后,你用谁都可以。 - -**[00:48:21] 发言人 0**:所以说从这个角度来说,你你你我觉得腾讯是好像找到了他自己的一点,自己在这个里面的一点价值。 - -**[00:48:30] 发言人 0**:全打开,而且我也看了一下他跟飞书,跟那些都打开,而且他stea里面现在慢慢在接,像美团的那个什么给他接了。 - -**[00:48:39] 发言人 0**:然后那个呃当然首先是微信体系里的,然后未来的京东我估计也会给他接。 - -**[00:48:46] 发言人 0**:然后慢慢的就除了阿里体系那都给他接,还有那个叫什么,你们那个点定票的那个携程没有,但是那个叫什么,还有个定票的那个叫什么那个叫什么,都给他开放了,去哪里? - -**[00:49:03] 发言人 6**:好像要去哪里去是啊。 - -**[00:49:05] 发言人 0**:就是携程的,也是携的是吧? - -**[00:49:07] 发言人 0**:另外一个。 - -**[00:49:08] 发言人 7**:品牌是吧? - -**[00:49:09] 发言人 0**:对飞猪对飞也开过了。 - -**[00:49:11] 发言人 5**:飞飞猪飞哪里? - -**[00:49:13] 发言人 5**:飞猪在哪里? - -**[00:49:14] 发言人 0**:是所以说后来未来这个哈就是呃本地算力要多少? - -**[00:49:18] 发言人 0**:然后龙虾的目的是啥? - -**[00:49:20] 发言人 0**:我们我们其实我们现在想着那天写的,我们写的,我们的核心目的就是做to b的腾讯,就跟我觉得肯定差就不多了。 - -**[00:49:30] 发言人 0**:做to b的腾讯就类似于比他做的更更细一点,或者更更深入B一点,就这个意思。 - -**[00:49:37] 发言人 0**:你们可以好好看看用。 - -**[00:49:39] 发言人 6**:现在看这个周末我也在看他的28件事间的些统功能,其实他他确实是多变的,但是腾讯大了,我们可以做。 - -**[00:49:47] 发言人 0**:一个小一点。 - -**[00:49:48] 发言人 0**:然后你们赶快把H 20这个事就再说了,H 20赶快搞清楚,我谁跟我说的要用H 20,要要要用要用那个算力不够。 - -**[00:49:58] 发言人 0**:刘静你给我说的哪个算力不够。 - -**[00:50:01] 发言人 6**:你自己云那测试这是什么? - -**[00:50:03] 发言人 0**:对,但是你们他妈都搞不清楚一台G 20服务器到底多少算力,我操你妈的下来赶快去弄。 - -**[00:50:12] 发言人 0**:我那半台够不够,我也说不清对不对。 - -**[00:50:14] 发言人 0**:然后他妈的还有一个,为什么我心里其实你们,但是我认为我问这个问题你们根本就不行。 - -**[00:50:22] 发言人 0**:我对你们视秒怀疑,我们也想招人,为什么为什么人家用了6台? - -**[00:50:27] 发言人 0**:为什么it部能用一台? - -**[00:50:28] 发言人 0**:为什么人家肯定是说了的,人家肯定是肯定给紫薇讲了,紫薇同意的。 - -**[00:50:34] 发言人 0**:为什么为什么人家比我们提前那么多,我们还不知道,到现在我们在用了我们一药药只能要到0.5台,因为我没有说法,我不知道那人家一段瓶的烟还在干嘛,为什么要流态,而且用而且还要用干嘛? - -**[00:50:52] 发言人 0**:原子弹抛光。 - -**[00:50:57] 发言人 0**:人家已经很重视那个事儿了,我们现在是慢慢的在一点一点的闪烁,像游击队一样。 - -**[00:51:04] 发言人 0**:今天我们需要不给也行,就像你手下的,我估计游击手下的那些研发也是七哥我们需要,不给也行。 - -**[00:51:12] 发言人 0**:七哥说那你报点账,行,报点账,我顺带报,我洗脚他也报了。 - -**[00:51:17] 发言人 0**:行,反正都是报账的。 - -**[00:51:18] 发言人 0**:Talking, 你看你都是一个那种叫闪烁型的,知道吧? - -**[00:51:22] 发言人 0**:那你游击队、铁道队闪烁一下,你得规模化,也就咱说清,咱就成为定制度,咱们就按流程来,咱不能闪烁的那是艺术家,对不对? - -**[00:51:33] 发言人 0**:那不是那个industry,不是产业,是artist,是艺术机构。 - -**[00:51:40] 发言人 0**:我说对了,咱实话实说,所以你要求你底下也是一样的,不要给你闪烁,一旦要话闪烁。 - -**[00:51:52] 发言人 8**:其他的就没有什么。 - -**[00:51:54] 发言人 8**:然后无人机那个项目的话是确实南岸移动他们也还没有约到。 - -**[00:51:59] 发言人 8**:然后的话大疆的话上周这周的话,周一的话,宇航已经去参加他们那个培训去了。 - -**[00:52:06] 发言人 8**:然后他说入库的事情的话,他们应该是在六月份之前就会有一个正式的反馈和然后it硬件的话,上周反而还有个消息,就是我们不是也放了一台机器给答案,就是王春他们那边也在用。 - -**[00:52:23] 发言人 8**:他们上周五的时候说要跟我讨论一下这个事情,他们用了一段时间里,他们还有些感觉,对,这周要给我打电话。 - -**[00:52:35] 发言人 0**:核酸按例用吗? - -**[00:52:36] 发言人 0**:你在用核。 - -**[00:52:37] 发言人 5**:酸也得都在用。 - -**[00:52:38] 发言人 5**:我们看得到。 - -**[00:52:39] 发言人 0**:数据就是简单化,还要简单扫码,然后还是这个算力怎么分配。 - -**[00:52:45] 发言人 0**:其实我们最重要的前台的表现方式其实就是一种,主要是还是后台就私有算力,公有云算力怎么去分配。 - -**[00:52:57] 发言人 8**:其他的事之类的。 - -**[00:52:59] 发言人 0**:腾讯现在给我们的那个他那个龙虾给我们的机会,给我的机会就是要不就挂私,要不就挂公们。 - -**[00:53:07] 发言人 0**:但是他有一个东西让我觉得有点意思,就是他没给他的龙虾的,他所有的都取了名字,谁的,他自己的叫凹头,他自己都没有起,他自己的。 - -**[00:53:21] 发言人 5**:在里面肯定有东西的。 - -**[00:53:23] 发言人 5**:我他自己应该是有几个模型,他会他会自他会那个动态调度。 - -**[00:53:30] 发言人 0**:你要做什么事? - -**[00:53:31] 发言人 0**:我讲如果这个模型我刚才如果这个存在,就to这个存在。 - -**[00:53:38] 发言人 0**:而且也就换句话说,刚才我说腾讯未来说这个模型,不管腾讯未来可能就是这个skill member里,可能还有一点auto,或者我们未来的也是auto。 - -**[00:53:51] 发言人 0**:因为你凹to这个东西,他妈的就凹不清了,我操你这儿有哪儿是吧? - -**[00:53:56] 发言人 0**:你给他,你包起来你不就可以了吗? - -**[00:54:01] 发言人 0**:对,因为auto是一个积分,那个deep是0.8个积分,我记不住了,我学们看看只有auto是一个积分,就他按2000个积分来说。 - -**[00:54:11] 发言人 5**:现在这个他通用的做法是这样的。 - -**[00:54:14] 发言人 5**:大家比如说他有个机械,机械一般就是乘以1,然后其他不同的模型它的。 - -**[00:54:20] 发言人 0**:倍率就可能线没问题,但他取的。 - -**[00:54:23] 发言人 5**:相当于他来给你自动规划,然后里面可能就叫他自己的他最好的模型。 - -**[00:54:29] 发言人 0**:我也没问题。 - -**[00:54:30] 发言人 0**:你刚才说了他可能做了弹性调度,那如果他们调了几个模型的话,那我觉得就有。 - -**[00:54:36] 发言人 8**:有有意思了。 - -**[00:54:37] 发言人 8**:是这样,他现在都是这样,我现在用的这个也是这样,我现在我还在用那个cloud code,我现在就可以这么跟他讲,我说我问你正常的问题,你就走deep。 - -**[00:54:50] 发言人 8**:如果我扔给你的是一个图片,因为我现在我买了那个小米的那个模型deep,现在是没有多态的。 - -**[00:54:59] 发言人 8**:我说我给你的个模图片,你就去走小米的态,帮我把这张图片认出来,我给你20张,你就帮我认20张。 - -**[00:55:07] 发言人 8**:我说如果你要编程,因为现在小米那个图标好用,小米充电。 - -**[00:55:13] 发言人 8**:小米我我。 - -**[00:55:14] 发言人 7**:我昨。 - -**[00:55:14] 发言人 0**:天用那个用那个用那个奥拉玛的什么,那那个那个不行,跟我带,我看那图片,我让的认了几张大屏包。 - -**[00:55:24] 发言人 6**:我们说做本地知识库,本地知识库骤它你所有的文件登记它也经过几个步骤。 - -**[00:55:30] 发言人 6**:比如说第一个步骤就是那个格式转换,格式转换过后还有什么ocr然后下面的话其实每个步骤都有一些擅长模型在。 - -**[00:55:40] 发言人 0**:做这个事情。 - -**[00:55:41] 发言人 0**:他都都会都会都会调,如果就你说的他自己,如果你一个模型,一个龙虾,一个底层龙虾带有的龙虾龙虾它给你去配这个技能,然后用这个。 - -**[00:55:53] 发言人 6**:那我们后面就他后面机械化肯定会到现在的模型大概比较粗暴,让做所的事这个模型。 - -**[00:56:00] 发言人 0**:你比如说我未来我建的这个本地模型,它就是本地模型。 - -**[00:56:05] 发言人 0**:本地模型我选一份,就跟我们选那个英伟达的芯片,选谁的卡一样。 - -**[00:56:09] 发言人 0**:你就是做传的,然后调用,那就是你的能力,就像华三现在说的,我的交换机的能力,我的调用我的我的我调用什么华为说的我的那个他妈的个淘理论,我的时间压缩就是你调用出结果。 - -**[00:56:23] 发言人 0**:用别人的一个是结果,一个是我现在搞懂了,一个是速度,一个是质量,一个速度快二一个质量高。 - -**[00:56:31] 发言人 6**:这两点其实我们都可以拿来是吧? - -**[00:56:33] 发言人 6**:就有机会他有些小东西其实后期都可以加入到个人的设备地。 - -**[00:56:39] 发言人 8**:他不用去调调用调用,然后因为我也写很多程序,然后现在那是国内的程序,就包括那个cloud的那个程序,它实际上都有很多限制。 - -**[00:56:49] 发言人 8**:但是在现在国内和国外就发了很多那种叫安科手无限制的模型。 - -**[00:56:54] 发言人 8**:就是你给他说什么,就是你问他一个黄色的问题,他也会回答你的那种模型。 - -**[00:56:59] 发言人 8**:然后我就跟他说,我说有一些程序你就必须要去调这个模型,然后他就去调这个,比方去写那种网络爬虫。 - -**[00:57:07] 发言人 8**:网络爬虫你问cloud code,他是不会给你写的,但是你把它下来装在本地上,你说你写爬虫的程序就用这个模型去写,但啪就给你写释。 - -**[00:57:17] 发言人 0**:因为来还有流氓模型。 - -**[00:57:18] 发言人 8**:这个模型还有很流氓,他实际上就是龙虾,或者你腾讯那个clou他就当一个总教授,他看到图片过来他就扔给小米,看到什么爬种过来,他就扔给了个本地的东西,他就这么干。 - -**[00:57:32] 发言人 0**:我感觉这个速度其实挺快的,我感觉这个真是你这个像你们当时说的这个叫是吧,说这个拿到不特殊,现在你看腾讯大厂都能转身转的,别说信不成。 - -**[00:57:44] 发言人 0**:对,腾讯现在说。 - -**[00:57:45] 发言人 8**:他已经意识到了这个事情。 - -**[00:57:48] 发言人 8**:其实钉阿里好像也意识到。 - -**[00:57:50] 发言人 6**:腾讯前其实不就很简单,怕怕他流量不可改变的,所以拼命现在这的事情就是导致他的流量。 - -**[00:57:59] 发言人 8**:所以我们以后我觉得这个机会还是中小企业有零桌面的企业本地化算力。 - -**[00:58:05] 发言人 8**:我觉得这三件事情这里。 - -**[00:58:06] 发言人 0**:面要向腾讯学习。 - -**[00:58:08] 发言人 0**:因为腾讯既他走的那个路不就是模型也不错,我操他妈的反正有一点自己在那边参考。 - -**[00:58:15] 发言人 7**:有一点,然后他说还是做入口,腾讯还是关。 - -**[00:58:19] 发言人 0**:键的话很神奇。 - -**[00:58:20] 发言人 0**:他把那个混那个名字取了,就他妈混。 - -**[00:58:23] 发言人 6**:然。 - -**[00:58:25] 发言人 8**:后。 - -**[00:58:26] 发言人 0**:他那个Q里。 - -**[00:58:34] 发言人 6**:面没有会员。 - -**[00:58:43] 发言人 0**:自他他好吧,继续,我觉得要快点。 - -**[00:58:47] 发言人 0**:有时候我们说的那个点状的东西,我觉得尤其是作为像刘静你们部门leader,或者说你晚人的,你就说过的东西一定要什么的,一定要赶快你回你,你反馈我的越多,那我就是吧嗯嗯,这未来咱们整个组织构架在变。 - -**[00:59:03] 发言人 0**:以后不开门了,真的是这些我就给我的我就给我的那个楼下说,我找刘静,他能救这些事。 - -**[00:59:11] 发言人 0**:到了,你找那能刘静到医院去,你得把memory都记下来了。 - -**[00:59:15] 发言人 0**:你上次说了什么? - -**[00:59:16] 发言人 0**:上次说候比我记得还清楚。 - -**[00:59:18] 发言人 0**:你上次说了什么? - -**[00:59:19] 发言人 0**:上次说你说了三次,我说你看我问了刘居三次,刘居三次怎么回答了? - -**[00:59:24] 发言人 0**:三次前他这么回答三次。 - -**[00:59:26] 发言人 6**:中间我操,我说行了,咱就理解了。 - -**[00:59:28] 发言人 6**:昨天晚上我发了个架构,他们还有互爱讨论的,讨论的。 - -**[00:59:34] 发言人 8**:就是像先拿。 - -**[00:59:35] 发言人 0**:完。 - -**[00:59:36] 发言人 6**:我认为发到群里那个架构就是要实现你那个想法。 - -**[00:59:41] 发言人 0**:那我这个想法,你看黄那个我那个那个我。 - -**[00:59:45] 发言人 0**:什么一中国一中国一不是也说了么? - -**[00:59:47] 发言人 0**:我觉得很有道理。 - -**[00:59:48] 发言人 0**:其实就是组织构架上小公司的那个华智做不了。 - -**[00:59:52] 发言人 0**:如果我没有如果我没有突破点,就是一个是华智做不了这个事是吧? - -**[00:59:56] 发言人 0**:我不做算法我就做龙虾,我就做这个调用。 - -**[00:59:59] 发言人 6**:不做算法我们会去做算法。 - -**[01:00:00] 发言人 6**:他们是不是还在做国安那些大的说算。 - -**[01:00:03] 发言人 0**:我跟你讲整骗人的这里面有一个很核心的问题,还是那句话叫要资源护犊子。 - -**[01:00:08] 发言人 0**:如果有那么多公算法,他就可以护他的犊子,他就要得到资源,这就是一到理想的,一到你选举我就知道他拉什么。 - -**[01:00:15] 发言人 6**:我看海开拉拉好像也在公安的大模型方面到处卖。 - -**[01:00:21] 发言人 6**:研。 - -**[01:00:24] 发言人 4**:是。 - -**[01:00:27] 发言人 0**:华智后的的然脑就给你了,我操,就这几。 - -**[01:00:51] 发言人 6**:那好,华山华鸿蒙客户端这个事情基本上开发完毕了。 - -**[01:00:57] 发言人 6**:最后的流程6月30号我们华山那边会对外发布了。 - -**[01:01:03] 发言人 6**:然后宇豪上周在在和研发一起做我们的无人机平台和集运平台一些功能的梳理对接,包括可行进度线,输出一些规格的对接清单。 - -**[01:01:17] 发言人 6**:然后他这周开始去,那个是下周,还是这么15号,好像就是今天,他去开设那个无人机学习,他这周是线上,我想起来他是线上学习,一周学习一周通过考试了才能去线下,他要求还挺严的。 - -**[01:01:33] 发言人 0**:那大家那边对,肯定有是学什么,就是无人机那个产品市场这些。 - -**[01:01:39] 发言人 8**:东西说钱端它的要求是我们自己要,以后们就客你让宇。 - -**[01:01:44] 发言人 0**:航写个东西,什么记录一下,给我一个报告。 - -**[01:01:48] 发言人 0**:好的,那看看好的,最好是他。 - -**[01:01:55] 发言人 6**:比我。 - -**[01:01:57] 发言人 0**:在做开。 - -**[01:02:02] 发言人 6**:华润这边基本上还是在按照步骤在走,这七月份要投标,然后和徐凯那边在沟通一些硬件的一些事情,这个自听语也是因还是按照步骤走。 - -**[01:02:18] 发言人 6**:我们计划是否。 - -**[01:02:19] 发言人 3**:可以涉及到一的协议。 - -**[01:02:22] 发言人 6**:对,也涉及到个本来那个证据的更新,就是要在七月份七月初的时候拿出来。 - -**[01:02:28] 发言人 0**:你能不能基你能不能你做一款,我上次那天说的,能不能做一个,就还是做在手机上,就是我们。 - -**[01:02:36] 发言人 6**:自己的用,你比如动作。 - -**[01:02:39] 发言人 0**:再做不端,做那个漏洞,还有那个灭光药,他们每天不要求必须用,就是每天要求他们就是开场。 - -**[01:02:50] 发言人 0**:因为手机本身,其实这个记录这个事嗯没那么工作记录,是吧,手机本身的记录其实没那么那个。 - -**[01:03:00] 发言人 5**:那个我们会先做那个电脑版,先把电脑版做我的要求。 - -**[01:03:04] 发言人 0**:我就希望做手机,因为能经常有时电话你。 - -**[01:03:08] 发言人 6**:的电脑你用qq做的晚的。 - -**[01:03:10] 发言人 6**:对,那都是跨平台没问题,手机不行,要适配一下是吧? - -**[01:03:15] 发言人 6**:手机不? - -**[01:03:15] 发言人 6**:手机要重新卖。 - -**[01:03:16] 发言人 6**:对,主要是针对那个电脑。 - -**[01:03:18] 发言人 0**:对你你手机做你也这个本地解析,与那个电脑,电脑本地也是装了个小模型,给他们装个小模型,本地自己解析是吧? - -**[01:03:30] 发言人 0**:现在不好那个语语音转文字的解。 - -**[01:03:34] 发言人 6**:析就是本地解析。 - -**[01:03:36] 发言人 0**:不要这些电脑。 - -**[01:03:38] 发言人 6**:他们手上电脑手一点的芯才行。 - -**[01:03:41] 发言人 5**:这个就适配量就有点大。 - -**[01:03:44] 发言人 0**:所以我们现在百分。 - -**[01:03:46] 发言人 6**:百跑得不中低端的跑不动。 - -**[01:03:50] 发言人 6**:Vivo的那个vivo的那些本地转入要旗舰芯片,跑跑终端芯片都跑动,终端芯片直接把各功能淹光。 - -**[01:03:58] 发言人 0**:这么说,咱们员工的手机基本上跑得动。 - -**[01:04:01] 发言人 6**:我的苹果是百分之百跑的动的,苹果跑得动。 - -**[01:04:05] 发言人 6**:但是安卓比安卓至少要3000块钱以上的手机才能跑的。 - -**[01:04:10] 发言人 6**:三四安卓的一两千块钱手机。 - -**[01:04:12] 发言人 0**:我觉得我们的统序可能3000块钱手机还有的。 - -**[01:04:15] 发言人 6**:这个现在是用没用那么贵的。 - -**[01:04:17] 发言人 0**:这个我觉得还是要手机上录下来,因为我我我想什么,就是他们手机上录下来这些东西,还是作为咱们这个对,最后要首敛回来作为周报,作为日报。 - -**[01:04:28] 发言人 0**:这个日报上来以后就会就拿那个用来做分析,分析就要尤其是对你进且有用,还是那句话,人家每天跟客户说的什么,你坐在屋里你也不知道对不对,人家给你报的那经过人家脑子已经洗掉一大半了。 - -**[01:04:41] 发言人 0**:就是他记得他跟你说,然后或者他的idea,他的观点了。 - -**[01:04:44] 发言人 0**:那他观点他告诉你,其他不是他观点他一个都不会跟你说,他否定的东西他会告诉你吗? - -**[01:04:50] 发言人 0**:说我就这些东西我都否了,他会告诉你吗? - -**[01:04:53] 发言人 0**:他脑子已经就就把他脑子进化,已经是他只只做他他只只做他自己认为正确的事,所以你我觉得得把那个东西你收起来就了解,你要第一时间就了。 - -**[01:05:04] 发言人 7**:解客户了解。 - -**[01:05:05] 发言人 7**:等于说是全部接听电话了。 - -**[01:05:07] 发言人 0**:不是接听就是你工作,我要求你工作必须,你如果不工作,你很那我你你做了配置,你那你还谈了地置有没有这个录音? - -**[01:05:16] 发言人 6**:冯总可能要讨论一下,因为之前那个之前那个之前有很多公司这样干过,我也去调研过,这样干过。 - -**[01:05:25] 发言人 6**:他们还是要求那种客服的对话,要求您上上直接上传,然后他也要去。 - -**[01:05:31] 发言人 6**:最后这条路全部走死,因为下面的员工抵触非常大,直接不用直接。 - -**[01:05:36] 发言人 6**:其实昨天晚上我实计这个架构,我们悄悄的看把一些他在电脑上的一操作的一些对话进行脱敏,然后才张传我觉得已经做了做做到了最大程。 - -**[01:05:48] 发言人 0**:度的一个把控。 - -**[01:05:49] 发言人 0**:就这么说,原来我们收集信息,但你手里安全问题我也认可,我们看怎么来屏蔽。 - -**[01:05:55] 发言人 0**:这就很简单,你如果只是买云端面的事,咱俩只是聊云端面的事儿是吧? - -**[01:06:01] 发言人 0**:母亲妹面我觉得也可以可以咨询,是吧? - -**[01:06:06] 发言人 0**:那你那那那我问你那很多电话就说咨询告诉你问题,那不也咨询。 - -**[01:06:11] 发言人 6**:所以说我现在觉得第一步还是用龙虾来处理。 - -**[01:06:15] 发言人 6**:比如说他配合的一些配置班报单,还有的就是他本地龙虾的一些规话,可以将这些数据上传到企业。 - -**[01:06:23] 发言人 0**:企业你我来你做一个,你如果我说这个。 - -**[01:06:26] 发言人 0**:我见议你在户外做以个你就自动咨询系,什么意思呢? - -**[01:06:31] 发言人 0**:上次说那个小孩一个人管六个龙虾,我还是听还是很有感触的。 - -**[01:06:36] 发言人 0**:就是人家因为人家要问的方案问题,其实有时候问人,有时候还是还有个社会方就告诉你打开你就告诉他他哔哩吧啦吧啦说了一堆,然后听了以后交给那个总结,总结交给方案,方案交给写码,写码交给测试,全是脸。 - -**[01:06:54] 发言人 0**:这哥们儿就说我的目的,人家说万一说不清,他说我不做大生意,他说我的目的就是全部投化。 - -**[01:07:02] 发言人 0**:那从这个角度我觉得我们做一个无人化的,你比如说人家问的问题,我然后给他解决,那个还得做研发,我操咱们只是无人化的咨询,他说完,我马上我就给他出造方案。 - -**[01:07:17] 发言人 0**:你的方案我们认为这样就搭上推上我们的这个型号,推上我们这个机器。 - -**[01:07:22] 发言人 0**:然后这样搭上以后,流量什么都有了你先看一看,你如果不行,你的要呼叫人工,那你就做一个这个东西。 - -**[01:07:33] 发言人 0**:而且很有可能未来你也可能还真是不信人的新能源的。 - -**[01:07:37] 发言人 0**:你我现在开始逐渐有些信感。 - -**[01:07:39] 发言人 0**:如果是如果他里有知识库,我问他,我问你,你还不耐烦。 - -**[01:07:42] 发言人 0**:你比如举个例子,我问医生,我去医院,我问医生,他妈医生门诊他妈一堆人我不耐烦,我给你说三句。 - -**[01:07:49] 发言人 0**:如果你给个东西,我自己他妈问问,我自己问问我我我反复啰嗦,我多问问,你也回答的多一点,我觉得还好一点。 - -**[01:08:02] 发言人 0**:医院尤其是但我们这个也有,因为你要问配置。 - -**[01:08:07] 发言人 7**:对,医院是是是是。 - -**[01:08:10] 发言人 6**:我我们我们配我会配置没有问题。 - -**[01:08:13] 发言人 6**:但是你去训练这一个东西,这个权限问题,你现很容易把所有的资料都发走。 - -**[01:08:21] 发言人 6**:我这很吓人的,说实么他管控不到内部的资。 - -**[01:08:27] 发言人 0**:就是我前面这个流程要变革,你们跟你说了,A时代来了,不是一线,我操,我还我怀疑再过我十年,这小孩儿不在屋里打游戏,来去不应该,你就给我点碗面,然后整个然后领导他妈的要做事,于生也不是好吗? - -**[01:08:42] 发言人 0**:就告诉埃踢,埃踢告诉埃,你去你你你把你你到扒拉这几个公司,让他们每个把他们的方案给我做一个好,也啪啪找到你的研究,然他们也究问了一堆,然后给了五个方案。 - -**[01:08:54] 发言人 0**:好,这个可以,那下来再深入研究。 - -**[01:08:57] 发言人 0**:我跟你讲一定会做在这的,而且这个事他妈的会慢,我操十年时间。 - -**[01:09:04] 发言人 6**:对吧? - -**[01:09:04] 发言人 0**:不用时间了,不用好,那你不改吗你不改吗? - -**[01:09:08] 发言人 0**:听懂没有,你其他妈的他是。 - -**[01:09:10] 发言人 0**:而且现在还有一个,尤其是公有云那套,为啥不私有云为公云那个有点问题。 - -**[01:09:17] 发言人 0**:我们上次公云对紫光汇智评价很公云,不说那个技术叫什么叫叫叫什么叫叫叫什么什么什么什么什么O U R O U那个R U那个叫什么? - -**[01:09:45] 发言人 0**:豆包都有这个问题。 - -**[01:09:46] 发言人 6**:人家以后不一定信豆包。 - -**[01:09:48] 发言人 0**:因为豆包说个大的,他在找到豆包,说我在好找到豆包。 - -**[01:09:52] 发言人 0**:第一搜索就我知道紫光汇智了是吧? - -**[01:09:55] 发言人 0**:然后我再去跟紫光汇智的对接一下。 - -**[01:09:58] 发言人 0**:A对,可能是这样,因为豆包说谁好就谁好,这事情挺麻烦的。 - -**[01:10:04] 发言人 7**:我操,豆包的打案现在。 - -**[01:10:13] 发言人 7**:出来了。 - -**[01:10:13] 发言人 0**:不用那个东西。 - -**[01:10:15] 发言人 0**:所以好吧,你我们的构架的核心就是以龙虾工作为主。 - -**[01:10:19] 发言人 0**:你昨天晚上你们才讨论的,今天你又说不行,我操,我就觉得你那个那是啥东西,不是刚才我说这个,你说录音不行,他如果。 - -**[01:10:29] 发言人 6**:他肯定录音的,他录内那。 - -**[01:10:31] 发言人 7**:不人他愿用这个,那每个话录音录下你的。 - -**[01:10:36] 发言人 7**:好这。 - -**[01:10:38] 发言人 0**:个极了,你们。 - -**[01:10:41] 发言人 6**:的你们琢磨琢。 - -**[01:10:44] 发言人 0**:还是把工作你琢磨琢折磨望们交流的忘掉更次更多,而且我们他妈的我就要结果对我这种来舍事的人其实是个好事儿,其实对他们也是好事儿。 - -**[01:11:06] 发言人 0**:说白了你记录的时候,你用AI记录完,我免得我听错了,最后AI给我出一稿。 - -**[01:11:12] 发言人 0**:你从这个角度,你说你电脑里,你说你来,你说你你给我要说你用这个,你就不用记了。 - -**[01:11:18] 发言人 0**:他出的很仔细,然后出完以后所有的Y配置完,要是看看我刚才讲的问的跟他出的怎么样,那差不多。 - -**[01:11:25] 发言人 0**:那那么那对要的时间不是省了多少,还一个一个配。 - -**[01:11:29] 发言人 0**:我上次问过高耀,问高要说吴高要跟我说原话是我大量的时间就在跟人家谈配置做方案。 - -**[01:11:34] 发言人 0**:你本身这个工作就可以让他做,我让他主动做,不是让他被动,让他主动的觉得这个事要把它记录下来,那就不是法律问题,是他个人的问题了。 - -**[01:11:43] 发言人 0**:他个人觉得我给你个谈话,我想我记下来。 - -**[01:11:46] 发言人 3**:然后我做一个A总题,不要从全程先听角度出发。 - -**[01:11:49] 发言人 3**:就是说一个配置助手。 - -**[01:11:51] 发言人 0**:对类似于。 - -**[01:11:52] 发言人 3**:客户的需求的语音给甩上去了,就是自动。 - -**[01:11:56] 发言人 0**:生成配置。 - -**[01:11:57] 发言人 0**:他愿同要来,他配置他愿意,他自己送给他,不需要你。 - -**[01:12:02] 发言人 0**:他这个太简单了,他肯定不愿意给你寄录音器录音的,这个是百分之百吗? - -**[01:12:08] 发言人 0**:但是你如果是个人行为,你又把他压录下,你给他开一个录音,然后你一边聊一边记,记完以后,他就出方案。 - -**[01:12:15] 发言人 0**:那我觉得微光要那是个人行为,我们这个龙虾里有这个东西,我要从街听,叫我们龙虾本身做这个东西,实际上微光耀你自己在。 - -**[01:12:24] 发言人 6**:里面说的也就光耀,只不过是客户说了,他也算了。 - -**[01:12:27] 发言人 6**:他我感觉是提跟他提升不了什么效益,因为他他他一个需求来做配置,说实话他一分钟就做完,他他他花的时间不是在做配置上,而是客户在跟他沟通。 - -**[01:12:38] 发言人 0**:是对,那不就是他沟通他听懂,这不记录下来。 - -**[01:12:42] 发言人 6**:沟通的结果记录下来还要他发话,他他要去回馈,他要去询问客户。 - -**[01:12:48] 发言人 0**:他询问他可以问询问他,他说咱俩加个微信,这个我微信一个一个告诉你,做好以后他就转发一下。 - -**[01:12:56] 发言人 6**:那你那我们省的前端配置的人又又需要很多人去维护这个网下的技能。 - -**[01:13:02] 发言人 6**:所以你这个逻。 - -**[01:13:03] 发言人 0**:辑本身就跟你昨天晚上做的事是错的。 - -**[01:13:06] 发言人 0**:你昨天晚上做的,这时我们要龙家的技能,他妈的要省人。 - -**[01:13:11] 发言人 0**:你现在又这么说,你们那骨子里根。 - -**[01:13:13] 发言人 6**:本就没有变化,我操,说白了我们是要。 - -**[01:13:16] 发言人 0**:看我去搞文学替换。 - -**[01:13:18] 发言人 0**:我不是我我跟你讲,你真的你骨子里没有变化,你现在的维护,他就跟你买了个汽车,你要他妈头头一个撞人是吧? - -**[01:13:27] 发言人 0**:就跟个现在这个龙虾这个名字有一个有一个词叫有一个尼,这个叫个个词叫服样。 - -**[01:13:33] 发言人 0**:我们摆着,我们驯服他,我们天在管着弄个把把车弄还弄很多。 - -**[01:13:38] 发言人 0**:我跟你讲,你最终的结果就是他肯定自由,你没有资格管理他。 - -**[01:13:43] 发言人 0**:现在你管理他,只不过因为你好像觉得你你你自己搭了个东西,你好像觉得半成品你要管理,最终是他管理你,你就是这样的。 - -**[01:13:56] 发言人 0**:你找另外一个A管他,你自己你找你你找个大爷管你找个大龙虾还小龙虾不就完了吗? - -**[01:14:02] 发言人 0**:大龙虾不用小龙虾的模型,大龙虾就单独的支库,单独的scale。 - -**[01:14:06] 发言人 0**:就是干嘛就跟那个保安一样,每天记着,每天出门告诉你,你带着红头拿着手电走,这就是你主要干的。 - -**[01:14:13] 发言人 0**:你别干人家那个方法,但是你就干人家违规,你就干人家翻不翻墙,你就干人家小熊林里揣着那耍流氓,这大保安对不对? - -**[01:14:21] 发言人 0**:你搞一个大保安方式不就完了吗? - -**[01:14:23] 发言人 0**:然后他有他新的眉目,他的眉门跟底下没毛不一样。 - -**[01:14:27] 发言人 0**:他的memory门全是违规,全是你做问题的错误,他给你站好对方的。 - -**[01:14:35] 发言人 0**:你们下去好吧。 - -**[01:14:37] 发言人 3**:我觉得还是其实你把那个ct配置器给下了就会提高效果。 - -**[01:14:45] 发言人 3**:都不用跟我说的,直接到录音。 - -**[01:14:48] 发言人 3**:你把配置器下了,我问语音,我说配个多少卡的那个那个服器怎么样? - -**[01:14:57] 发言人 3**:如果配置器高。 - -**[01:15:00] 发言人 0**:这个效率不是我觉得我觉得是要整结做的。 - -**[01:15:03] 发言人 6**:做那配置其实不是过。 - -**[01:15:05] 发言人 0**:我觉得不是配,我觉得是要总结,我觉得是要反复去拉锯。 - -**[01:15:09] 发言人 6**:要最好是花的时间。 - -**[01:15:11] 发言人 0**:不是花在选的那种配置,他就拉,就总结,就最好加微微微过,只要你反应快,人家还愿意加微信。 - -**[01:15:19] 发言人 0**:我有时候给人家打电话,他妈的我我来我加个微信聊一啥,因为打电话我语音表达这些东西实时性。 - -**[01:15:25] 发言人 0**:第二我脑子里可能当时我因为想表达的思想不一定准确,所以他给我回答的东西也是默默糊。 - -**[01:15:32] 发言人 0**:微信以后我每次他说我要我说我要我看看,我想想,可能我问这个问题的角度不对,我再换一个角度问,然后问完以后我再换一个角度问我跟那个医生有什么问的,我加了微信以后,我就会这得来回以后反复了。 - -**[01:15:46] 发言人 0**:而且在这微信你加微信我最重要的一点是什么? - -**[01:15:49] 发言人 0**:就失效了。 - -**[01:15:50] 发言人 0**:因为我问个问题,人家半天不回,那我就没兴趣了。 - -**[01:15:53] 发言人 0**:所以你如果加了微信,我保证你这个五分钟10分钟之内肯定会。 - -**[01:15:57] 发言人 0**:就是我现在问,你先你等一等,我保证你十分钟肯定回。 - -**[01:16:01] 发言人 0**:然后他爸加微信了,他哔哩吧就写进去了,不管是语音还写进了,你马上叭啦,你后面你那个AI就处理了,处理完了以后给了他一套,然后顺便看一下。 - -**[01:16:10] 发言人 0**:这回答怎么,还行,你就点一下,或者你经过注意转发一下。 - -**[01:16:14] 发言人 0**:等我操,这他妈就比你编文字,而且我跟你讲,现在我打字好,我就挺烦的。 - -**[01:16:19] 发言人 0**:我原来没注意过,就昨天晚上打到一晚上死打字的那个技巧,他又得找回来,当时觉得X C C现在找不到盘了,就是语音多了。 - -**[01:16:33] 发言人 0**:我的我第一个想法,一个语音,我准备找一个麦麦旁边。 - -**[01:16:40] 发言人 8**:我真的你朋友你那个手机和你腾讯那个手接了。 - -**[01:16:45] 发言人 0**:那你就我知道我已经这么动了,但是我发现我还是台着接个语音也是更好的方式。 - -**[01:16:52] 发言人 0**:因为我不讲,因为他这两条他俩苹果很聪明,他是两个。 - -**[01:16:56] 发言人 0**:他的sk里面我发现他走的两条他的两条路,就你语音说的那个和他那个台式机的那两个然样别因为这他没跟你完全混合。 - -**[01:17:07] 发言人 8**:那就有点理解意思。 - -**[01:17:09] 发言人 8**:我现在比方。 - -**[01:17:11] 发言人 5**:不同的渠道,它是隔离的。 - -**[01:17:13] 发言人 6**:反正现在我客接我说你我在。 - -**[01:17:16] 发言人 8**:电脑上装个,再下载一个什么模型不对。 - -**[01:17:19] 发言人 8**:所以我想说的是什么? - -**[01:17:22] 发言人 8**:我们未来。 - -**[01:17:22] 发言人 0**:很有可能就是回微信语音,就是不用那个,这是第一第二我再说一个反弹的,其实看微信是不愿意听语音的,愿意看文字的对,因为前段间咱们很多人沟通很多语音,我就愿意把它转成文字。 - -**[01:17:39] 发言人 0**:因为我看文字的速度比语音快,听语音的速度反而慢。 - -**[01:17:44] 发言人 0**:是外你除非是为了听他关怀的话,你想听听他声音,听他感情。 - -**[01:17:49] 发言人 0**:所以你看情绪价值,所以你看用语音去说,然后用眼睛去看。 - -**[01:17:55] 发言人 0**:这个后面是这样的,所以你微信一下,那看就问看们我们研究,我说的对吧? - -**[01:18:03] 发言人 0**:我觉得看语音其实是不太愿意的。 - -**[01:18:06] 发言人 0**:因为有时候你你你那个你拿个语音听我操一看50秒,人家给你说555 10秒。 - -**[01:18:12] 发言人 6**:你烦省的很影响。 - -**[01:18:14] 发言人 6**:也应该是我都是。 - -**[01:18:15] 发言人 0**:默认直接转文字,我对不对? - -**[01:18:17] 发言人 0**:你转文字以后你看的快对不对? - -**[01:18:19] 发言人 0**:秒,所以你看这以后就说语音转文字,我操真他妈的以后键盘都没了,就是拿着哔哩吧啦在说。 - -**[01:18:27] 发言人 8**:我操说以后给我一个字,说基本。 - -**[01:18:30] 发言人 0**:上已经不字,我就对,那从这个角度我就问你,你们就你你就解决那个解决他们那个。 - -**[01:18:36] 发言人 0**:如果他们纯粹是为了那个语言,对语言的回答就是为了回答。 - -**[01:18:41] 发言人 0**:那我觉得通过让他文字化,让他文字化也是个属性,也是个能力。 - -**[01:18:46] 发言人 0**:因为他让他文字化那边就文字化那边看起来简单,然后这边他说的也快,或者刚才说的他稍微改一改。 - -**[01:18:55] 发言人 0**:我就我觉得你们朝这个方向去,真的,你如果A不解决我们所有的流程是没有机会的。 - -**[01:19:07] 发言人 6**:好,上周就是云桌面这边把把那个大架构输出,又又讨论一下知识库的这个选型和架构。 - -**[01:19:17] 发言人 6**:目前看到我们可能用那个那个呃诺。 - -**[01:19:21] 发言人 5**:这可能再讨论一下,我感觉有点问题。 - -**[01:19:25] 发言人 6**:对,因为那我们再看一下,但是你基于那个那个最基础主要是做的话,那工作量太大了。 - -**[01:19:33] 发言人 5**:他不是这个意思,就是说我是觉得以后我只有一个入口,我不可能只是后一个入口。 - -**[01:19:39] 发言人 6**:然后是是一个入口是一个入口,是没没说对,是一个入口。 - -**[01:19:43] 发言人 6**:就是以后知识故事要藏在下面的,就是有所有的东西都不能够暴露给客人。 - -**[01:19:49] 发言人 5**:所以说其实你你那你选择那个它,其实它的价值和意义是在于它是一个完整的字出上面。 - -**[01:19:56] 发言人 6**:完了之后,你就上次你那个选型,我跟方讨论一下,估计工作量太大了。 - -**[01:20:01] 发言人 6**:桌面,而且我也看过了。 - -**[01:20:02] 发言人 8**:并且我觉得这里头最关键的一点是这个知识库一定要和AI的结合非常友好。 - -**[01:20:09] 发言人 8**:因为人只会这样,就人你比方说生长他以后他查他只会说我上周的发票你帮我看一下。 - -**[01:20:17] 发言人 8**:他不会去打开界面说我我我自己去选什么时间的发票。 - -**[01:20:21] 发言人 6**:他是他知识库,他知识库就是完善的什么,就是整个的产体,他都有叫什么都有。 - -**[01:20:31] 发言人 8**:他只会和AI打交道,就是我们所谓的人的接口,只是AI是我不会在乎去打开一个界面去怎么样操作这个事情。 - -**[01:20:44] 发言人 6**:界面还是要有的,我说逃不开界面的,光对话这个产品会作死的。 - -**[01:20:50] 发言人 6**:不是每个人都都都都都都习惯命令行对话的形式去输出所有的东西。 - -**[01:20:56] 发言人 8**:不就重要的。 - -**[01:20:57] 发言人 8**:我我我不是说你比方报账你是有界面的,我觉得我是认可。 - -**[01:21:02] 发言人 8**:但是其实对人的操作来说,你比方说我操作这个东西,我就不愿意去打开我的知识库去查我上上个月或者上上上个月或者什么时候的一个什么信息。 - -**[01:21:15] 发言人 8**:我一定是一句话问没冤,你帮我调出来。 - -**[01:21:18] 发言人 6**:一定是这个逻辑。 - -**[01:21:19] 发言人 6**:他调出来过后,你还是要给他一个界面,他会去做一下他自己的一些整理。 - -**[01:21:25] 发言人 6**:是这个我还是认真调研一下,包括一些非非研发人员的常规使用者,他还是要这个东西,百分之百要这个东西。 - -**[01:21:32] 发言人 6**:你不可能让他命令行式的去有纯文本的输出,让他去整理的他个人的知识库和上报企业的知识库,包括一些权员设置和目录的一些内容的一些调整,它都需要一些图形化界面的淘派。 - -**[01:21:49] 发言人 8**:这个我觉得下来再讨论,这个我有不同的观点。 - -**[01:21:53] 发言人 6**:这是逃不开你你要你要问。 - -**[01:21:55] 发言人 8**:因为你你比方说你财务,你如果有一大堆界面,然后以后C M你也有一大堆界面,实际上我们做的这个东西就。 - -**[01:22:04] 发言人 6**:不是一个A化,这个界面其实很好生成,但是你不跟他个界面,普通人他不会用,用不了的。 - -**[01:22:11] 发言人 0**:好,下来,继续。 - -**[01:22:12] 发言人 6**:然中端管理这里采购办法和法务采购开了会,到时候刘亚群会约领导上会审核。 - -**[01:22:20] 发言人 6**:然后终端这边再进行刚刚说的那些所有证书的更新。 - -**[01:22:25] 发言人 6**:因为他是今年的一个新规,他所有的节能和能效要求重新做认证,所以我们所有的终端在在然后那个mp接口的mc p接口上周机个这边的研发已经完成了。 - -**[01:22:39] 发言人 6**:完成过后其实也发现了一些问题,就是前期我们在所有的vdi的商务和商务两个商务在使用这个系统的时候,实际上他可能线下做了本台账,有些发完货的一些数据其实没有在系统上更新。 - -**[01:22:56] 发言人 6**:这是更新完P接口做完后,我们上周四和5的时候发现这个问题。 - -**[01:23:02] 发言人 6**:今天上午那个商还在补一些数据,补完今天上午我们可以使用这个龙虾来进行统计。 - -**[01:23:09] 发言人 6**:看一下,差不多有五十多个项目在补一些数据,然功能上已经完完全完全完成了。 - -**[01:23:17] 发言人 6**:我这边就。 - -**[01:23:18] 发言人 0**:是龙虾用的还是那个boat,那不来对你用谁都无所谓。 - -**[01:23:22] 发言人 0**:我知道,那我们就这么说,我们一来的话就是这个,比如说我们这个在云的面里面,我们还是在胖公。 - -**[01:23:30] 发言人 6**:园里面做都可以做。 - -**[01:23:32] 发言人 6**:我们现在不分说话都是终端,没什么关系,没关系,只要有个桌面就行。 - -**[01:23:37] 发言人 0**:你还是主要他们那还是可以利用本地的计算。 - -**[01:23:41] 发言人 6**:利用本地的一些这个都一样。 - -**[01:23:43] 发言人 0**:它无用微di就调用服务器的计算,你调。 - -**[01:23:46] 发言人 0**:如果我是觉得你像龙虾这种,因为有时候还是要跟本地电脑之间的,你比如我们在装电脑装了龙虾,这个龙虾它本身就是一个不叫病毒,它本来就是一个非鸭群。 - -**[01:24:00] 发言人 0**:你如果说是你如果是预装龙一下,比如我们把东西都预装在我们的胖龙管里面,那个是不是会但你遇到的服务器也可以,我径得是两条路径,因为遇到的服务器的国架和遇到他们的生产国家是两回事。 - -**[01:24:19] 发言人 6**:我觉得你可以可以思考一下。 - -**[01:24:21] 发言人 6**:所以说最终这个产品做出来,对龙山的本地的权限,你要去做很多工作没问题。 - -**[01:24:26] 发言人 0**:就是一般不然客户敢用的,不然的不然客户敢用。 - -**[01:24:29] 发言人 0**:正是因为不敢用电脑,所以才敢用我的朋友端。 - -**[01:24:32] 发言人 0**:因为我这种C. - -**[01:24:33] 发言人 6**:陌我这种陌人我做来做的管理,所以说要去做这些事,软件方面要去开发就是对吧? - -**[01:24:40] 发言人 1**:因为你预装在我们把电脑拿过来。 - -**[01:24:43] 发言人 0**:我们预装龙虾,我们预装里面一些东西,因为它里面我觉得它确实会有毒。 - -**[01:24:48] 发言人 0**:你他写你底层,有些东西给你写,那不能写,还是有问题的。 - -**[01:24:55] 发言人 0**:昨天我就他妈两个接口,我看我就在昨天我装俩模型,你直接把我那个搞死了,就两个应调用了。 - -**[01:25:02] 发言人 0**:同样口我装了模型,昨也把我他妈下午我搞死了,搞死了,我他妈重启又重启又删掉,我光删都删了。 - -**[01:25:10] 发言人 8**:都外了五。 - -**[01:25:11] 发言人 0**:次就删农家猫,我删那个欧了么的那个那个海外版,我操。 - -**[01:25:18] 发言人 0**:就是你如果我在想,你如果用这个胖龙湾这些东西,你提前把底下横多锁死。 - -**[01:25:26] 发言人 0**:为什么360在做龙虾? - -**[01:25:28] 发言人 0**:那天说360360其实是把龙虾做成了一个什么的,就是纯纯的360龙虾或者龙虾。 - -**[01:25:35] 发言人 0**:360就是我龙虾放在里面,我给你管完,是360是管龙虾,根据自己的说。 - -**[01:25:41] 发言人 0**:对。 - -**[01:25:41] 发言人 6**:这他的他就是做的很不安全的。 - -**[01:25:44] 发言人 7**:他他就想管你所有的。 - -**[01:25:47] 发言人 0**:不是,所以我想说我们我们的舆论面其实核心的关键词就是安全共享。 - -**[01:25:54] 发言人 0**:加一个是所以原来叫安全共享,现在叫安全共享,价值就价共享。 - -**[01:26:01] 发言人 0**:我就下来你们研究下好吧。 - -**[01:26:04] 发言人 0**:因为你胖的,你瘦的,你掉服务器资源确实也挺烦的。 - -**[01:26:08] 发言人 0**:你虽然做个沙核,如果如果你不给他做好,不给他做任准化,他把你服务器也搞的他妈的瞧不得。 - -**[01:26:15] 发言人 4**:那我汇报到上面的情况,凯马尔,开庭是定的7月20号登卷的上门开庭之后,然后从开庭的情况研判法律,那有律师或者周杰的影况下,应该。 - -**[01:26:33] 发言人 0**:会维持原判。 - -**[01:26:34] 发言人 0**:好的,维持延慢说明他们罚两次了。 - -**[01:26:36] 发言人 0**:我估计他们这个国企可能应该会是吧,会有一些解释,估计这个们。 - -**[01:27:11] 发言人 0**:因为如果他妈的折腾了两个月不给判决书,那他妈就是个大子,所以别无进展。 - -**[01:27:16] 发言人 0**:因为这里面这东西都是都都到最后了。 - -**[01:27:20] 发言人 4**:那我们九龙坡越到最后就。 - -**[01:27:24] 发言人 0**:一锤定音,如果报了,他们还在上面的领导,他妈的领导说一句话是吧? - -**[01:27:30] 发言人 4**:好,我们现在落实这个那那个全国公安8月6号开庭的事情。 - -**[01:27:42] 发言人 0**:就是我们汇报上周五那个款程序是光报。 - -**[01:27:49] 发言人 0**:我觉得在个果们搞个公安操太麻烦了。 - -**[01:27:56] 发言人 0**:如果你真是审判下来。 - -**[01:27:58] 发言人 4**:你怎么这个就是我们要不跟法院问,法院下不是我就试试。 - -**[01:28:03] 发言人 0**:不人能不能把事办。 - -**[01:28:05] 发言人 0**:如果不人能事,说明这个,就是我们下一步法院法。 - -**[01:28:10] 发言人 4**:因为他不怕。 - -**[01:28:11] 发言人 0**:我肯定不怕,怕他老大,他老大哪天他妈的人民就是江山就人民,对不对? - -**[01:28:18] 发言人 0**:他天他的那事报了,他老大搞他,不是我搞他那么简单。 - -**[01:28:24] 发言人 0**:好吧,我们试试。 - -**[01:28:26] 发言人 4**:不要那个事干了。 - -**[01:28:27] 发言人 4**:好,然后上周五公安就是要求我们去撤诉,才能走付款决程。 - -**[01:28:33] 发言人 4**:本周我先去跟他们聊一下,然后看着情况怎么说,烟台七八号开庭,上周他们还是在播材料,准经开庭前再把材料整体再看一下。 - -**[01:28:47] 发言人 4**:男人一般在在签合同中,然后闫运维应该本周三上常委会,分局跟杨群都汇报了,应该没什问题。 - -**[01:28:59] 发言人 4**:产品审计第二版的第二版要材料的材告,我们在,感到地板比较好,应该没什么大的问险。 - -**[01:29:11] 发言人 4**:南牙电力王磊明天过来,他说应该是他们就把钱交了十几万块,就是不开庭了。 - -**[01:29:18] 发言人 4**:现在撤所这个事。 - -**[01:29:20] 发言人 1**:他明天我找。 - -**[01:29:21] 发言人 0**:因为工程者。 - -**[01:29:22] 发言人 4**:总共是还们的发行人说的是约定这个约定他们是昌平,现在是经常还,走的时候反还。 - -**[01:29:34] 发言人 0**:产品就两个事儿,第一就是二期的话,你们如果要开会的话,需求你们提前抓紧准备是吧? - -**[01:29:40] 发言人 3**:我会材料准备好,到下午中午要开会,有项午如果就。 - -**[01:29:47] 发言人 3**:材料不做,备好,你两交项目材料有。 - -**[01:29:50] 发言人 0**:可能没时间,那就明天。 - -**[01:29:52] 发言人 0**:然后宁夏理工这个事儿,你们那个软件部分三个部三个事。 - -**[01:29:58] 发言人 4**:上次我感觉他们现在反过来是有点进展,一个是数字那个数字那个产品他们供应商他软件架没打好,然后现在主要是没数据,没数据的成两部分。 - -**[01:30:10] 发言人 4**:一个有部分说本来就没这个数据,第一部分除得你的数据,还是建设中,就是供应商大概想法采用模拟数据展示。 - -**[01:30:21] 发言人 4**:但是还跟客户商量的跟客户商量。 - -**[01:30:25] 发言人 0**:如果如果客户认可的方案的不行,有点有的交付的交付量个很大的问,就交付只能给你交付,但这个量你说怎么来量呢? - -**[01:30:37] 发言人 6**:交要一个标准,又每个评。 - -**[01:30:39] 发言人 4**:分在这个上面的写了,他说可以把其产品的解,那是现在他。 - -**[01:30:44] 发言人 8**:们是搞定了也是那现在又有这种做。 - -**[01:30:48] 发言人 0**:的比较好,很容易就说数字人,说的这是对的。 - -**[01:30:52] 发言人 0**:数字人为什么我们一直我们接数字呢? - -**[01:30:54] 发言人 0**:这样一个是成组化21个我希望数字务我们最后下一步还是我们研发自己做,就是自己做了以后。 - -**[01:31:01] 发言人 1**:我们希望面成产品。 - -**[01:31:03] 发言人 0**:因为这里面很简单,这里面也是模型,就是模型调用。 - -**[01:31:10] 发言人 4**:而且无人机源这么进展,上次基本达成一致意了,可以。 - -**[01:31:15] 发言人 0**:先启动建设阿里机。 - -**[01:31:17] 发言人 5**:有没有信心呢? - -**[01:31:18] 发言人 5**:我说我们其实整个搭建这些东西都已经走通了。 - -**[01:31:23] 发言人 5**:前面确实缺点算力,因为每跑一次要当时跑一次要2个小时以上。 - -**[01:31:29] 发言人 5**:然后如果要输出这种高精度时间还会长。 - -**[01:31:33] 发言人 5**:但是确实测到H 20以后,我觉得完全可以我们。 - -**[01:31:37] 发言人 0**:你没事把什么秒叫起来,喝个酒秒聊。 - -**[01:31:40] 发言人 0**:我我我约了他了。 - -**[01:31:41] 发言人 5**:经常坐坐。 - -**[01:31:42] 发言人 0**:然后我知道,然后再跟那。 - -**[01:31:44] 发言人 5**:个我之前不知道他在重庆,结果他在重庆。 - -**[01:31:47] 发言人 0**:跟医疗局他边有事要通个电话,一定要去做这个事儿。 - -**[01:31:51] 发言人 5**:我知道我跟吴佳淼一个是约了。 - -**[01:31:54] 发言人 0**:因为我下一步。 - -**[01:31:55] 发言人 5**:我还是想让我跟一个是约了吃饭。 - -**[01:31:58] 发言人 5**:第二个,我这周还会跟他两个交流一下,因为他他这边他也有压力。 - -**[01:32:04] 发言人 0**:他们是防范着我们,就是按理所以说说医疗平法案,你做算法,我说我不做算法,是吧? - -**[01:32:10] 发言人 0**:但是我就应用。 - -**[01:32:12] 发言人 5**:我做调度。 - -**[01:32:13] 发言人 5**:对。 - -**[01:32:16] 发言人 0**:你们就是这个叫呼声。 - -**[01:32:18] 发言人 0**:怎么说来你你你那那闪烁的声音我也没,你早说,我早就去弄这事了。 - -**[01:32:24] 发言人 0**:你哪次呼,你上次说买头牛马上给你买一个他妈的小黑盒,我操几万块钱,你早说我就早就弄。 - -**[01:32:32] 发言人 0**:我上周跟紫薇聊了两次,但一开始他全分完了。 - -**[01:32:36] 发言人 0**:后来就说我说你那一台0.5台,他说他最起码保证0.5. - -**[01:32:41] 发言人 7**:但是我感觉一台实际上是能保证的,但我们那个有算力了,那个能做好,类似是特别这个心。 - -**[01:32:48] 发言人 5**:这块其实可以的,我们只因为之前调一次时间太长了。 - -**[01:32:53] 发言人 8**:他他其实难的就是像我拿出去交给那个人做,他也是这样的,他其实难的是不够,他其实男的是他排队排排排排了以后,然后他发现不对,他就要重新来调这个提示。 - -**[01:33:09] 发言人 0**:但不这里面有两个,如果是用这个隧道小模型,我们不用随账时。 - -**[01:33:16] 发言人 0**:如果用小模型,对我觉得可以自己布,我们是自己布对吧? - -**[01:33:21] 发言人 0**:对,如果大模型你肯定是面对排队,但是你也可以什么呢? - -**[01:33:25] 发言人 0**:你直接拉到国外去? - -**[01:33:28] 发言人 0**:你拉到国外找个模型一样做。 - -**[01:33:30] 发言人 0**:只不过钱的问题,我现在就是急迫的,因为将易碰到的问题是我现在就不知道什么叫性价比最高,而且这个是拖。 - -**[01:33:40] 发言人 7**:的时间有点长了。 - -**[01:33:41] 发言人 7**:他们现在是200美金的的那个那个计划,好像很价值很高。 - -**[01:33:47] 发言人 0**:就是包月。 - -**[01:33:48] 发言人 0**:但是我不知道排队。 - -**[01:33:49] 发言人 7**:他说相当于全部买的话,相当7200美金的。 - -**[01:33:54] 发言人 7**:这个就是我我跟你说。 - -**[01:33:57] 发言人 0**:我再说一个,这是因为你们没想,我帮你想你下来你把你们那清楚,我会针对关于这个算力,这个Ken不是每个人都能钱的,这个就按那个职称来的,有人就是50块,有人就是100块,有人就是他妈300块,有人就是一千。 - -**[01:34:16] 发言人 0**:你们核心的两个人,我觉得那你承担的任务共重,那就给你开大。 - -**[01:34:20] 发言人 0**:至于你把那个账号给谁就给谁,这要开大的就开个盛钢跟我说的,100美金包月,一千美金包月,100美金。 - -**[01:34:29] 发言人 0**:我操你买美金包月,那太便宜了,你先弄十个。 - -**[01:34:34] 发言人 0**:1000美金你乘以10乘以7,所以你才6000块钱,那算啥? - -**[01:34:39] 发言人 0**:你一共研发才多少个人? - -**[01:34:41] 发言人 0**:自己不去想这些事儿,我操他妈的都是我就真的,你别说我唠叨,咱们兄弟,你妈但是这事你抓紧了。 - -**[01:34:51] 发言人 7**:别去给我你的数字人整不出来。 - -**[01:34:54] 发言人 0**:这个整不出来的比较困难的时候,就是都没问题。 - -**[01:34:58] 发言人 0**:这个我可以来找我。 - -**[01:35:00] 发言人 7**:用个刘封号比严重,就是像这个账号比较大对。 - -**[01:35:05] 发言人 5**:随时都会。 - -**[01:35:06] 发言人 0**:我可以做那个,因为刘强我这个朋友他是他们专门是个国企做这个体制,做唯品的。 - -**[01:35:13] 发言人 0**:如果我们出于那个国企的考虑,我们所有人我们就给他跟他一起谈,让他给个便宜价,我们就全部做出来拼是没问题。 - -**[01:35:23] 发言人 6**:一直有免费的体,虽然速度快,但是跑。 - -**[01:35:26] 发言人 8**:cloud的那个跑频。 - -**[01:35:29] 发言人 7**:保企外们中国信和。 - -**[01:35:33] 发言人 0**:国移动供就保证什开的视频不断。 - -**[01:35:41] 发言人 0**:他们在做的,他们在国外建立了很多服器节点,然后我发人工在后面看,也有自动营的员工发现你如果你的打速度慢了,带宽快了,马上给你。 - -**[01:36:03] 发言人 0**:从阿里巴巴,比如从从下一个节点从香港调到新加坡,新加坡调到哪,他把中间的几个节点都跑这手公,我上次我了一,我操我了,我操,我很开心的,我来一直中间个果。 - -**[01:36:18] 发言人 0**:可。 - -**[01:36:19] 发言人 5**:他们这种视频主要是做cdn建设,我们其实还用不到那么高。 - -**[01:36:25] 发言人 0**:你好吧,你赶快去捋捋。 - -**[01:36:27] 发言人 0**:好,你说你重要的工作,你说你现在你重要工作在哪,这就是重要工作。 - -**[01:36:34] 发言人 0**:就资源调配和。 - -**[01:36:36] 发言人 5**:人家改造流程。 - -**[01:36:37] 发言人 0**:人家先向一道学习,然后再越一就是要资源犊,你的资源也不会先向学习,但我们要超越。 - -**[01:36:47] 发言人 0**:我开玩笑。 - -**[01:36:49] 发言人 4**:我是会宝。 - -**[01:36:51] 发言人 0**:宝。 - -**[01:36:54] 发言人 0**:赶快,我觉得算力这个事确实是很重要。 - -**[01:36:58] 发言人 0**:你那天画的这个曲线非常好啊,是吧? - -**[01:37:01] 发言人 0**:这边是他妈能力? - -**[01:37:02] 发言人 0**:那边是这个叫什么采纳度? - -**[01:37:07] 发言人 0**:这个采纳度。 - -**[01:37:08] 发言人 8**:这边是能力,中间就是我们的机会。 - -**[01:37:11] 发言人 0**:对,你看这个东西我认真看了好几遍,我操我把图贴下来,我还跑去他妈的又让豆包给我解解讲讲。 - -**[01:37:19] 发言人 0**:我说是不是所有东西都是这样的? - -**[01:37:24] 发言人 0**:确实这样,他妈的有一个度,这个面都的都是。 - -**[01:37:29] 发言人 5**:这个是吧? - -**[01:37:29] 发言人 5**:现在是就是企业和个人大家都知道,但是确实从到落地上面和真正这些他的这个差距大。 - -**[01:37:36] 发言人 5**:这个就是有有一群人现在就卖个人,就是卖客卖卖方案,然后企业这所以。 - -**[01:37:42] 发言人 0**:我们这里面我大概我看我学这个豆包,我学这个就给我大概也理解几个点。 - -**[01:37:51] 发言人 0**:就是硬件的配置,你给人家配硬件大环境是吧,这是云面是一种配硬件,然后就是你。 - -**[01:38:05] 发言人 5**:的那个Memory Scale,你这memory的机会,scale的机会,还有就是。 - -**[01:38:15] 发言人 0**:你那个那个模型你怎么给人scale,可能后面机会会越来越小。 - -**[01:38:25] 发言人 0**:因为现在模型的这个能。 - -**[01:38:29] 发言人 7**:力升级后的,你如解解就是算力调度。 - -**[01:38:34] 发言人 6**:这块还是这个。 - -**[01:38:35] 发言人 0**:如果我你刚才说这个,我觉得如果他妈的就是海外的这个,你说海外这个算力,如果中国一直在疯,那可能中间会有一个意。 - -**[01:38:48] 发言人 5**:就是这个现在意在就。 - -**[01:38:50] 发言人 0**:是在海外的对,国内就相当于是网上很多天天倒在。 - -**[01:38:55] 发言人 6**:微P那绝对是倒致这个不。 - -**[01:38:57] 发言人 0**:是导一些很多算我的算力。 - -**[01:38:59] 发言人 0**:比如说你把你的东西交给我,我拿到算力去算了时。 - -**[01:39:03] 发言人 6**:已经很多人在做了。 - -**[01:39:05] 发言人 0**:就不让你直接访问这个有。 - -**[01:39:09] 发言人 7**:有这个专门有做这个事的。 - -**[01:39:12] 发言人 5**:现在这是个大生意,但是都是很多。 - -**[01:39:15] 发言人 0**:个人或者小团队在这确也。 - -**[01:39:17] 发言人 7**:有也有做。 - -**[01:39:18] 发言人 0**:的比较大。 - -**[01:39:19] 发言人 8**:也有做做的比较大。 - -**[01:39:21] 发言人 6**:一年上千万,月上千万上都去买了点3. - -**[01:39:24] 发言人 5**:很便宜,我也不知道他是哪来的。 - -**[01:39:27] 发言人 5**:他这样的就是好多国。 - -**[01:39:29] 发言人 6**:外的平台,他注册以后有可能免额。 - -**[01:39:32] 发言人 5**:他就把这些免费额度给你集中在一起。 - -**[01:39:35] 发言人 0**:然后再做二次处发。 - -**[01:39:37] 发言人 0**:他就然后你你把你把那个把那个给印给他他自己再到那边,完了再再输。 - -**[01:39:44] 发言人 6**:这这些这些导爷多的很,以前都那种薅羊毛的人多的很。 - -**[01:39:49] 发言人 8**:但是这里头也有一个,就是确实因为现在你有很多算例,你搞清楚它的来源。 - -**[01:39:55] 发言人 8**:就像我前段时间我去买了一个cloud code的,后来我就发现我用了一张我的万不是。 - -**[01:40:05] 发言人 6**:的字。 - -**[01:40:10] 发言人 0**:他有。 - -**[01:40:14] 发言人 8**:候。 - -**[01:40:16] 发言人 7**:害渠道。 - -**[01:40:44] 发言人 6**:作为二做八的捣乱。 - -**[01:40:46] 发言人 0**:如果是研发,一般美金是很便宜的对,作为研发,如果软件开发的时,我给他配个100平金. - -**[01:40:55] 发言人 7**:什么问题呢? - -**[01:40:56] 发言人 7**:他们算出来以后,其实是真正就是每一个做出来的编程以后。 - -**[01:41:02] 发言人 0**:这编程真正用到的钱很少一点点。 - -**[01:41:06] 发言人 0**:你就上下的图像看图像多图像图像是吧? - -**[01:41:10] 发言人 0**:编程确实编程那个头不多,你扔在在这代码,尤其你那编程,我你扔那代码,他给你扔代码,就数字人好吧,你H 20拿过来,你等等会马上给王建表跟他聊去。 - -**[01:41:23] 发言人 0**:我不知道人家有一台,人家他妈八个人啥时不干,一台拿了天天看。 - -**[01:41:28] 发言人 0**:小妹妹,我操你他妈的那么多事,你没有那么数字,没有这个东西。 - -**[01:41:33] 发言人 7**:上周下单数量还是偏少,这个到就两周了,相当于是71万。 - -**[01:41:40] 发言人 7**:这个毛利是下午再说。 - -**[01:41:43] 发言人 0**:你这个周下午再说。 - -**[01:41:46] 发言人 7**:那我稍微说说,可以有个事情要说一下。 - -**[01:41:54] 发言人 7**:上周有个项目就是中野赛迪,我们知那一些退货,上周到学球总办公室来的是吧? - -**[01:42:03] 发言人 7**:这个销售说肯定要退货,已经很明确了,他们身心服的东西已。 - -**[01:42:09] 发言人 0**:经到了。 - -**[01:42:10] 发言人 7**:因给不出来。 - -**[01:42:12] 发言人 6**:那个他他有他有三点大的定制开发需求,然后是在一月份的时候提出来的。 - -**[01:42:19] 发言人 6**:出来因为人力问题,本来说分两期给他做,然后当时陈江云走,陈江在沟通当中两个点的先后问题一直在跳跳,最后也不知道到底是怎么确认的,然后先给他做了一个三月份的时候,第二个大的需求其实是六月底要给他交付。 - -**[01:42:41] 发言人 6**:但是三月份到6月份中间,又发生了,他们那些网络,因为他服务器在北京,他们说有些卡顿,有一个桌面有卡顿,桌面有卡顿其实。 - -**[01:42:52] 发言人 7**:是他的那个性能卡顿,卡顿的问题一直没有解决。 - -**[01:42:56] 发言人 7**:但是人家用了生信服的。 - -**[01:42:58] 发言人 6**:说是就没有卡顿服务。 - -**[01:42:59] 发言人 7**:生物给他开的高U就没有卡顿,所以他们觉得信服很好。 - -**[01:43:04] 发言人 7**:还有一个其实是我们有两个定制,应该也是主线版本里面的这个东西。 - -**[01:43:10] 发言人 7**:但是我们因为人力不够,所以一直没没开发出来。 - -**[01:43:14] 发言人 7**:所以人家试用了身心服以后就去明确决例。 - -**[01:43:18] 发言人 6**:他这两个需求就要退了。 - -**[01:43:19] 发言人 6**:都不好意思。 - -**[01:43:20] 发言人 0**:说他非。 - -**[01:43:21] 发言人 7**:我们造成什么影响,我们我们也现在情况下,这个项目要退了就要要退货,他已经很明确要退货,退货,然后销售给我们的就是这个没办法了,当时雪球逼着他在办公室给客户打电话,说的是这个。 - -**[01:43:37] 发言人 6**:实际上他poc测试的时候并没有提出这两个需求出来。 - -**[01:43:42] 发言人 6**:这两个需求一个是。 - -**[01:43:43] 发言人 0**:班图的个跟我说明。 - -**[01:43:45] 发言人 7**:了现在结果亏多少钱,这样的就是我的想法是这个直播项目是21万,21万里面有17万的软件和维保。 - -**[01:43:56] 发言人 7**:这个没办法,而不是维保软件和那个授权,就17万,17万给他退,但是我要扣他那个研发我前期投入的钱,我按宇浩给我算法是有一百多个人填。 - -**[01:44:08] 发言人 7**:我说这个是说不过去了,反正我就算扣他20天10万块钱,这样的话就是把把整个项目的毛利我我我解,可以就这样。 - -**[01:44:19] 发言人 0**:这种只能一说合适,这个我就这么跟他做,可以跟你说一下,那这周就给他答复了,做吧。 - -**[01:44:27] 发言人 0**:这第一第二,如果说因为我们现在正在本来要给于总报子,因这两天的事儿多,因他今天早上我昨天晚上给我打电话说,周二他就给于总报就上课我们写的这个方案了。 - -**[01:44:40] 发言人 0**:于总肯定是把这个交给张涛,这个里面就是关于这个事,我们还要去说,就是你这个给我的你的研发,但这个是说实话这个是双面双击。 - -**[01:44:53] 发言人 0**:就人家你这个事儿,你说你看我们是应主越赛迪说的项目,最后我们没拿下。 - -**[01:45:01] 发言人 6**:这个不可能不好说。 - -**[01:45:02] 发言人 0**:实在可倒过来说,以后就是不。 - -**[01:45:05] 发言人 6**:要卖你洗碗,到时候他里面那个需求是无版图虚拟机操作系统适备。 - -**[01:45:10] 发言人 6**:为什么我们这些一直性人去适配的一个系统? - -**[01:45:13] 发言人 6**:是因为需求太对我们来说太需求太少了,谁也不做。 - -**[01:45:17] 发言人 6**:但是升心服务肯定他有需求,他早就人家按部就班的去。 - -**[01:45:20] 发言人 0**:做二十多个,谁也不强调的乱买。 - -**[01:45:24] 发言人 8**:因为中冶三扩容是重庆,至少在两江八十里。 - -**[01:45:29] 发言人 7**:这后面这个项目就跟我没关系了。 - -**[01:45:33] 发言人 6**:这个冶客户就丢了,甚圳五矿集团。 - -**[01:45:36] 发言人 3**:五矿集团的也丢了。 - -**[01:45:39] 发言人 8**:大这个客户样板点对。 - -**[01:45:41] 发言人 0**:我们的意义应该还是有的。 - -**[01:45:45] 发言人 3**:也赛别人。 - -**[01:45:46] 发言人 5**:训拟赛你自。 - -**[01:45:48] 发言人 0**:己不。 - -**[01:45:49] 发言人 6**:是对我们确实。 - -**[01:45:51] 发言人 0**:就研发给力。 - -**[01:45:53] 发言人 3**:我就是研发不给。 - -**[01:45:55] 发言人 6**:那我说的云桌面现在他研发主要空间。 - -**[01:45:58] 发言人 3**:还有就是当时不是那个叫什么高温不干了,就把这个项目给拖了。 - -**[01:46:05] 发言人 3**:双方的谈判拖了三个月,所以说人家重新。 - -**[01:46:09] 发言人 0**:内部要不要点一点,内部要不要给。 - -**[01:46:12] 发言人 6**:我们点一下,当时他们没谈,他这里不。 - -**[01:46:16] 发言人 0**:他就不干,他就不干,给人高要点一点,这事我高了,他们陈主任内部。 - -**[01:46:22] 发言人 7**:他就那么点人力,就24人. - -**[01:46:26] 发言人 3**:就这个,但那个当就是你要一台是做开发,最后一个那个那个键盘是频还是要游戏开发的吗? - -**[01:46:35] 发言人 6**:他他不是开发,不是连沟通那个研发具体的。 - -**[01:46:42] 发言人 7**:所后面有一个项目,他我跟他开过一次会,他说反正研发就这个能力,我们完全听你们汇智的,你们让我们。 - -**[01:46:52] 发言人 0**:个那边当时因为合同没。 - -**[01:46:56] 发言人 6**:谈下来,连连我们联系他的人都回来一个多时。 - -**[01:47:02] 发言人 0**:问我这个没有系人。 - -**[01:47:05] 发言人 0**:但是这里面还有个。 - -**[01:47:08] 发言人 7**:卡顿的问题,一直没解决。 - -**[01:47:11] 发言人 3**:是就是用着用着就卡了。 - -**[01:47:14] 发言人 0**:我们就得从其。 - -**[01:47:15] 发言人 6**:他我们也有两个问题给他们说了的。 - -**[01:47:19] 发言人 0**:他们不认,这是客户的直播。 - -**[01:47:22] 发言人 6**:这个司机部没有在北京不服气,现场服务器的车,我们现场是不是。 - -**[01:47:26] 发言人 7**:也不卡顿呢? - -**[01:47:27] 发言人 7**:这没办法,你这卡顿的最大问题就是卡顿。 - -**[01:47:31] 发言人 6**:我跟你在现场吃,当然不要客户卡顿。 - -**[01:47:34] 发言人 0**:我们一直说我们没卡论这个。 - -**[01:47:36] 发言人 6**:东西就是产品质量问题上,你去上那个实际环境。 - -**[01:47:40] 发言人 6**:对他服务器在现场,我们服务器在手机的时候也不卡顿。 - -**[01:47:43] 发言人 6**:现在那服务器在北京他卡顿。 - -**[01:47:45] 发言人 7**:然后生意放在那那人家客户在面前他就是卡顿,你这解决不了。 - -**[01:47:50] 发言人 3**:不怎么人资幸福,现在又没有把户布在重庆了,人家已经开始在北京用了,人家就是不卡顿,怎么一直这就是一个产品质量问题,你咋不承认呢? - -**[01:48:01] 发言人 3**:那没有对比,没有障碍,人家慈信府现在全靠2000路都拿下来。 - -**[01:48:06] 发言人 6**:人家没有投诉问题。 - -**[01:48:08] 发言人 6**:我我还是得说细一点,卡们有2两个2个问题。 - -**[01:48:11] 发言人 6**:第一个问题是网一个网络的,第二个是他们当时用那个乌班图,他们里面跑的任务比较多,然后按照他们既定的规划,开6盒的时候确实卡顿的。 - -**[01:48:22] 发言人 6**:然后我们也给他测了,开八核的时候他就不卡了,然后真的不去别的开八核,开了12个单车的。 - -**[01:49:00] 发言人 3**:你不信心又开始跳了,先跳了,跳了半年了。 - -**[01:49:04] 发言人 0**:说以后不卖了。 - -**[01:49:05] 发言人 0**:至际这个本来又卖。 - -**[01:49:07] 发言人 3**:因为本来不卖,他去年不是卖了这个,但是这一退的话,所说这些应该就是之前对现说也没用了。 - -**[01:49:16] 发言人 0**:你要早几个月的预警,大家还可以聊聊,现在没有用,好吧,继续。 - -**[01:49:22] 发言人 7**:然后还有一个就是那个服务团队,我们通过外包派遣方式,又找了两个人重新给他做一个。 - -**[01:49:31] 发言人 7**:现都到都都已经入是吧,这个就是在我们现场团队一起工作的,就说是现那这样的话服务团队的人力资源充足以后,我们就可以承接一些项目的线场部署工作了。 - -**[01:49:46] 发言人 7**:等于说我们原厂部署的这些工作可以做起来,有些项目就可以提升能力。 - -**[01:49:52] 发言人 7**:这个跟你说一下其他的项目再说。 - -**[01:49:55] 发言人 0**:我觉得我们就做大项目,也就是未来做大项目,不是都是这个项目,大项目拿不下来。 - -**[01:50:03] 发言人 0**:你看包括陕西那个移动,其实我也没想。 - -**[01:50:07] 发言人 0**:说实话我就因为那个按理说那个周敏,我找他多聊两次,通过人通手。 - -**[01:50:13] 发言人 0**:因为我感觉他也对,这个你也没感觉,他也没。 - -**[01:50:16] 发言人 0**:我聊了聊,我说你反正看看有机会就可他我就担心做不好以后,他妈的最后擦一大堆屁股,我操他妈的,而且运营商屁股擦下来,他妈的影响口碑,我操不敢去买。 - -**[01:50:29] 发言人 0**:所以我们未来你既然像胖子,如果我们人少的话,我们不是说。 - -**[01:50:34] 发言人 7**:未来像胖子的问题。 - -**[01:50:36] 发言人 7**:目前这个情对我们人少的话。 - -**[01:50:38] 发言人 0**:我们还是希望我们还是今年年初说的,做大做小大市场做小生意,通过渠道做,然后把这个然后就是做这一些胖终端。 - -**[01:50:47] 发言人 0**:那终端的话你们把东价给就怎么让人家就一安装一配置。 - -**[01:50:56] 发言人 0**:但大生意是反之,大生意它的粘性大大生意一旦有了它就永远小生。 - -**[01:51:04] 发言人 1**:意越。 - -**[01:51:04] 发言人 0**:是小生意年纪越大,越大的你年纪越大。 - -**[01:51:12] 发言人 5**:好,把研发的情况汇报一下。 - -**[01:51:15] 发言人 5**:云桌面这个一期现云华为那边二期测试。 - -**[01:51:20] 发言人 5**:我上周整个参加了一下他们的会议,然后现场反馈过来有几个问题,但这几个问题上周都已经给客户都已经解决了。 - -**[01:51:32] 发言人 5**:对这个项目那天我也问了一下徐凯,徐凯当时拉拉着我跟华润那边的他们技术经理一起简单交流一下。 - -**[01:51:44] 发言人 5**:他的意思是说从这个软件试用这块,其实他们已经没有什么后续的了。 - -**[01:51:51] 发言人 5**:对,主要就是七月份招投标。 - -**[01:51:53] 发言人 5**:招投标这块,这个项目我觉得可能一个是价格,第二个就是说他整个的那个还有就是我们后续可能要给他们一些这种自身承诺,这些他们可能比较看重这些问题。 - -**[01:52:07] 发言人 6**:软件是支撑什么硬件? - -**[01:52:10] 发言人 6**:他现在要了三款高中低,三款胖的P C我们到时候反正学校就说可能瑞杰会拼拼很低的价格去,我们也得自动车,但是但但是这也他听说郭沫说就是一点含这的问题。 - -**[01:52:29] 发言人 5**:云南云南云南那个测试项目前面的反馈,就上次把那个呃效果怎么样? - -**[01:52:36] 发言人 5**:有一台机器重做了以后,不他们使用起来没有什么问题,但是我们送过去的那个机器的质量,这些商都是一些测试中端发测试中对有有一些反馈。 - -**[01:52:51] 发言人 5**:然后他那个项目什么时候真正下单了如我感觉还是。 - -**[01:52:56] 发言人 6**:说他测还没测使。 - -**[01:52:58] 发言人 7**:用上上。 - -**[01:52:59] 发言人 5**:次就提了一件事,就他们重做了一个终端,他主要是我们第一次部署的时候,两个操作系统的分配,那个比例分配,磁盘比例分配上面有点问题。 - -**[01:53:13] 发言人 5**:大家重做了以后,他们也没有什么其他意见。 - -**[01:53:17] 发言人 5**:其实他们那边相对用起来比较简单,他反起来以后就当成一个正常的。 - -**[01:53:24] 发言人 6**:windows在用。 - -**[01:53:24] 发言人 6**:院没这么多需求,院没有华人需。 - -**[01:53:28] 发言人 7**:标时再定一下价格。 - -**[01:53:30] 发言人 6**:主要是因它其实我觉得主要因素就是硬件的。 - -**[01:53:35] 发言人 5**:还有对他们那边还在说一个问题,就是说如果要增强我们投中的这可能性的话,整个技术标案那些可能要尽块要建,这个问题不大。 - -**[01:53:45] 发言人 6**:这个问题不大。 - -**[01:53:46] 发言人 6**:如果他让我们介入,他是好事,我们肯定会把它企撕了。 - -**[01:53:50] 发言人 6**:你这个标。 - -**[01:53:51] 发言人 7**:江的招标文件的撰写。 - -**[01:53:54] 发言人 6**:这是最重要的。 - -**[01:53:57] 发言人 6**:如果他他如果这都让我参与。 - -**[01:53:59] 发言人 5**:这证我的意思是这个事可能是咱们这边我知道加就加紧,因为他的意思是他愿意,反正配合我。 - -**[01:54:08] 发言人 0**:们来做这个事。 - -**[01:54:09] 发言人 0**:凯哥,但是。 - -**[01:54:12] 发言人 3**:我只抛弃了一些被人家扭转出去,那个报价打起,为什么便宜去开,也在把自己弄到底,到底怎么弃卖不出来了的。 - -**[01:54:21] 发言人 3**:你这个你要做证词就是徐凯,现在也是我们的那紫光直升机了。 - -**[01:54:25] 发言人 6**:紫光直机总部那边是这么说的,他们现在对下游的代理商的配件,他们是控制不了的。 - -**[01:54:32] 发言人 6**:他们很多时候也是出的不太存储和内存的一个控制总数去。 - -**[01:54:37] 发言人 6**:下面的经销商去找一些便宜的内存和存储加上去在卖全是样。 - -**[01:54:43] 发言人 6**:我问。 - -**[01:54:44] 发言人 8**:了出来,就我们。 - -**[01:54:49] 发言人 3**:卖到的格,我价格我还。 - -**[01:54:54] 发言人 6**:有他们价格是现货交易,就是代理商手上有有200单,这两百单就是这个价。 - -**[01:55:03] 发言人 6**:下个月他不认的。 - -**[01:55:05] 发言人 3**:既不认他这个价格,200台他裁的那也是省钱方式。 - -**[01:55:09] 发言人 6**:然后的时候,他是要一他是要两千台,他是要两千台一年的供货周期,你你你让他包的时候,他包不出来了。 - -**[01:55:21] 发言人 6**:就跟京东上一样,京东现在上,现在你买个十台几台电脑便宜,你去找店家。 - -**[01:55:28] 发言人 0**:你说我要两万台,他对不起。 - -**[01:55:30] 发言人 6**:你又什么时候交给我? - -**[01:55:32] 发言人 0**:七月上旬中旬,云南现在怎么样呢? - -**[01:55:36] 发言人 6**:云南你那是在测试他一个渠道。 - -**[01:55:38] 发言人 0**:没有招标里面的。 - -**[01:55:40] 发言人 6**:他没说他他是不是死亡。 - -**[01:55:42] 发言人 6**:很多医院他说现在一个月测试,他就是要依据上系统。 - -**[01:55:46] 发言人 6**:对。 - -**[01:55:46] 发言人 0**:好。 - -**[01:55:47] 发言人 5**:因为他们抓几。 - -**[01:55:48] 发言人 0**:包的龙虾放进去,咱做两个,我相信他们那肯定要有想法的。 - -**[01:55:55] 发言人 0**:这东西所以说你这个研发起不到研发的作用,都是在反复在说这个事,我下面用你要有一套,在这个肯定我觉得我后面服务器什。 - -**[01:56:07] 发言人 6**:么的做设计,对,但要有一套方案。 - -**[01:56:10] 发言人 6**:但这套方案确实我看到还要做的东西确实很多,要做出来权限什么都很多,像上下级数据库、知识库,事线还是很多的。 - -**[01:56:21] 发言人 5**:好,然后主线的那个版本就是跟我们产品讨论了以后,裁剪完了,我们内部知道。 - -**[01:56:29] 发言人 6**:11202212026批01对,我们都把国号主要的年度批评一批02对,我们都相关。 - -**[01:56:37] 发言人 5**:今年的话反正规划可能后面还有三个版本。 - -**[01:56:40] 发言人 6**:三个版本到4个版本,然后就是后面的发地域,还有新塘桥的进一步的规划融合。 - -**[01:56:48] 发言人 6**:今天应该还有两个版本。 - -**[01:56:50] 发言人 6**:对,还有个新上桥的那个协议,新上协议我这周来处理好不好的? - -**[01:56:57] 发言人 6**:好,上,因为上周五我刚刚汇报了话,就把那个采购方案定了。 - -**[01:57:02] 发言人 6**:然后新塘桥也又用新的采购办法。 - -**[01:57:05] 发言人 5**:我们把它弄进。 - -**[01:57:06] 发言人 5**:然后志金云那边,上周他们把天数H 20和木西这三款平台的测试都已经适配,都已经做完了,做完了在压力测试的报告里些也做出来了,到时候单独汇报一下。 - -**[01:57:20] 发言人 6**:能不能把。 - -**[01:57:23] 发言人 5**:不个简单事,我们不能那几家也不出来了,一有个环试,他还不在我们手上,这些都是远程的机器,除了天数的机器在我们手上。 - -**[01:57:38] 发言人 5**:摩尔也开始测,摩尔对摩尔单独开个会。 - -**[01:57:41] 发言人 5**:好,就单独开会。 - -**[01:57:42] 发言人 5**:然后他们结果今天早上我刚简单开了一个会,他们现在自己又又选了一个个大模型,我觉得这个倒是候跟这个龙虾这边要统在一起。 - -**[01:57:53] 发言人 5**:今天上午我到时你知道选的什么,选另外模型选啥,不是为不是这是个方案? - -**[01:57:59] 发言人 5**:不光是模型,他们整个就选择一个方案。 - -**[01:58:02] 发言人 5**:然后上午我就让付爱跟他们一起把这个事情对,把这讨论定好了。 - -**[01:58:07] 发言人 8**:我觉得这两个是不是还是有些不一样的,是吧? - -**[01:58:10] 发言人 5**:不但是我想的是还是就统一成一个方案。 - -**[01:58:19] 发言人 6**:这是一个完整的知识方。 - -**[01:58:23] 发言人 6**:差不多基。 - -**[01:58:25] 发言人 5**:本上是反正我们。 - -**[01:58:29] 发言人 6**:不要R不要这源,都是源比较门的些源目,我反烦。 - -**[01:58:38] 发言人 5**:然后智空这边是这样的,我们把遥控器上云的对接工作基本上做了30%。 - -**[01:58:45] 发言人 5**:现在正在安排香米山那台无人机接入互联网,接入互联网以后,我们就会在互联网上布一个完整的平台。 - -**[01:58:53] 发言人 5**:然后一个是加强这个测试工作,第二个就是展示,那些都就可以在上面做,然后告警工单这个专门做的一个模块,然后那个小米三是中分两台,然后另外。 - -**[01:59:05] 发言人 4**:你们去另外一个人,就相就是。 - -**[01:59:07] 发言人 5**:上次我们去的是一个点,相比它是另外一个点,就这个点他们用的要少一些。 - -**[01:59:13] 发言人 0**:你把这个点你们跟那个你们还是那句话,就是交警那个流程怎么样? - -**[01:59:19] 发言人 5**:你没有就说白约上周他最调到上。 - -**[01:59:22] 发言人 0**:对我觉得因为现在这个事,你这个事其实是因为你一旦交警接去,我们现在还没有执行任务任务。 - -**[01:59:29] 发言人 0**:你跑了任务以后,我就说服,我才我们才会去。 - -**[01:59:32] 发言人 0**:他妈昨天我就死说,他说你跑什么路,我说我没有教你,我就不想多说,再说下去就露馅了,我啥也没跑,一点起来了。 - -**[01:59:42] 发言人 0**:你要吃你你要你要有那个那个那个那个那个你再跑了,你你就是你先占住这个坑,老说要占着坑站。 - -**[01:59:50] 发言人 5**:你占住这坑。 - -**[01:59:51] 发言人 5**:我们再就集云结合,放在集你们跟集云结合这是怎么样? - -**[01:59:56] 发言人 5**:集云结合这个技术会已经开了两次会了。 - -**[02:00:00] 发言人 5**:其实软件上面都已经从集云那边,一个是调这边的那个视频,还有集云那边一键起飞,这几个功能都已经开发了。 - -**[02:00:10] 发言人 5**:因为内蒙他们是需要这东西,我们就先做了。 - -**[02:00:13] 发言人 0**:然后内蒙因为他卖。 - -**[02:00:15] 发言人 5**:我知道他是在。 - -**[02:00:31] 发言人 5**:然后那个违停,其实这个模型我们已经训练出来了让他们自己也去做了一些测试。 - -**[02:00:41] 发言人 5**:而现在违霆从展示的这个角度已经可以展示了,就是无人机飞过去已经可以把违停的车辆可以抓进来。 - -**[02:00:53] 发言人 0**:车牌国产的时物太慢了。 - -**[02:00:55] 发言人 0**:这周开个会,然后开完会以后,你们大姑娘在沿台喝杯茶,然后节后七一建党节以后,然后再来谈谈下一次会,那他妈的天亮球了,我操,真的就是太慢了,我觉得难,一个一个一周干一次事,一个事到下一次这样邦过去,咚回来我这什的,你你你追一追他,因为你你上线了,为什么他不着急呢? - -**[02:01:22] 发言人 0**:可能他觉得无所谓,我是觉得交通查处之还有点能带来点利润。 - -**[02:01:29] 发言人 5**:是就我上周到中医物联去跟他们做交流的时候,把这个给他们展演示一下。 - -**[02:01:35] 发言人 5**:所以说他们现在在他们来看的话,我们现在是一个含非控含这个待机是吧? - -**[02:01:41] 发言人 5**:也是这样的,我们跟物联这边展示的是一个独立的平台。 - -**[02:01:46] 发言人 5**:我们现在做了两套方案,一套是和集云的整合方案,一套是和一套是一套独立的方案然后我们跟物联这些展示的,就是说我们这套独立的方案。 - -**[02:01:58] 发言人 5**:他们是想把我们这个方案和他们现在自己的视频库的平台整合在一起。 - -**[02:02:06] 发言人 5**:然后这周的话他千例。 - -**[02:02:07] 发言人 3**:对,对。 - -**[02:02:08] 发言人 5**:他们也是一千例。 - -**[02:02:09] 发言人 8**:他们也是两个平台。 - -**[02:02:11] 发言人 5**:他们现在这样的对,现还是详细介绍一下。 - -**[02:02:14] 发言人 5**:他们其实千里也在全国接了很多,但是那个就是萨as模式。 - -**[02:02:20] 发言人 5**:后来大家讨论一下,那个萨as模式不适合这个方案,然后可能还是做这种私有化部署,针对行业做私有化部署。 - -**[02:02:29] 发言人 5**:然后那个视频这边让这周我们去参加他们的dii ct入围。 - -**[02:02:34] 发言人 3**:他首先不是情,就另外一个平台是自个。 - -**[02:02:38] 发言人 5**:哪一个千里也是大华是吧? - -**[02:02:40] 发言人 5**:千里大华他。 - -**[02:02:41] 发言人 3**:自己私域号部署的视频平台是自个。 - -**[02:02:44] 发言人 5**:就他私有化那个早就在大华技术上已经改造成他们自己的平台,也是大华的底座。 - -**[02:02:51] 发言人 5**:底座好几家不光指大华,还什么灯红。 - -**[02:02:54] 发言人 0**:对他那个平台。 - -**[02:02:58] 发言人 5**:然后上周五下午我们跟他们两个事业部,一个是他们视频就是那个视频事业部,还有就是他们有个聚声新成立聚声智能事业部,就一起把这个事频交流。 - -**[02:03:14] 发言人 5**:在商业聚生事业事业聚生智能事业部的那个资金口,现在还是挂在视频部上的。 - -**[02:03:21] 发言人 5**:所以说他们让我们先到视频部把那个d入围做,然后这个定制开发这边上周是11个项目,然后计收增加了六个。 - -**[02:03:32] 发言人 5**:我们还是按照刚才周景汇报的六月底180万那个目标来完成。 - -**[02:03:38] 发言人 5**:其他的话就是数字治理,刚才说的那个数字助理整个的产品框架定下来了。 - -**[02:03:45] 发言人 5**:定下来的话这周我们可能就要开始开发工作了。 - -**[02:03:49] 发言人 5**:第二个软助这边的话,我们正在申请自飞平台加上两个视频算法加上一个算法仓。 - -**[02:03:56] 发言人 5**:这个两个视频算法加算法仓也是中医物联那边,他们招投标里面也不是个他们除了这个dii ct t以外,他们还让我们进入一个视频的,进一个算法的dict还要进一个应用的dict一共进三个。 - -**[02:04:14] 发言人 5**:这两个的话是需要有软注的,我们也在加紧在做。 - -**[02:04:19] 发言人 5**:欧的话刚刚俊我这边大概。 - -**[02:04:21] 发言人 0**:就这情况,软著自己写,不需要钱。 - -**[02:04:24] 发言人 5**:申请钱又很少,申请钱很少。 - -**[02:04:27] 发言人 5**:对。 - -**[02:04:27] 发言人 6**:我们都是自己选购。 - -**[02:04:32] 发言人 5**:然后他还有那个他还有申计完了以后,政府每一年还会有一个返补贴,就这个制飞这个平台。 - -**[02:04:38] 发言人 0**:你们还是要跟吉民一定要好好对齐,好吧? - -**[02:04:42] 发言人 0**:要对,这是双赢的事。 - -**[02:04:43] 发言人 0**:因为对我们来说,我们在华智一个价值? - -**[02:04:46] 发言人 0**:这是重要的事。 - -**[02:04:47] 发言人 0**:是虽然说我估计华智研发不愿意,我昨天慈双那个挂我提醒了,我估计华智研发可能大概率不想让我们做任何产品,是吧? - -**[02:04:56] 发言人 0**:你做点,因为他在研发。 - -**[02:04:58] 发言人 0**:就全是我的,就跟那小孩小女生要糖果,那洋娃娃全是我的,跟你没关系,就我们自己要做出来的成绩,要赶快去去去体现出来是吧? - -**[02:05:08] 发言人 0**:那一到面前的小女生都是我的。 - -**[02:05:10] 发言人 0**:都不能都所以你能强调的我们你赶快给那个基金都。 - -**[02:05:16] 发言人 5**:易照,所以现在好像这块一照平,虽然在他下面管,但是整体来说他也没有放太多精力在这个集云这边。 - -**[02:05:25] 发言人 0**:好吧,好,他们我不知道干嘛,我总觉得他妈的消耗那么大的资源,我觉得他妈的我有点嫉妒心,我操我们那么多人在说算命也没弄到资源,人家消耗那么多资源。 - -**[02:05:37] 发言人 0**:所以你们下来你们也问清楚,去年你跟他们人对接一下,你们问清楚他们资源用在哪是吧? - -**[02:05:43] 发言人 0**:他们那几个产品,你把他们的大模型做不做? - -**[02:05:46] 发言人 0**:然后他们主要资源用在哪里是吧? - -**[02:05:48] 发言人 0**:我现在很清楚,我们不调不做模型,我们打一说他们,你就是在自己的模型,我说谁知道那个那个所以说真的假,但如果在自己模型。 - -**[02:05:59] 发言人 5**:我恭喜走错了方向。 - -**[02:06:01] 发言人 5**:他们说他们是这样的,因为他们黄区和绿区没法接外面,所以说他们就在那个集器上号。 - -**[02:06:09] 发言人 5**:他们就布了一个那个他们布了一个的320. - -**[02:06:13] 发言人 0**:320多个们就在做三百多对,38那个测对。 - -**[02:06:18] 发言人 5**:然后他们内部的开发就接那边的A I. - -**[02:06:23] 发言人 0**:我你这时我就知道了,他不能调用Y你没所谓,真的,你你你赶快弄清楚。 - -**[02:06:30] 发言人 0**:你说了100美金的,我觉得很好,给十个没所谓的,你定好。 - -**[02:06:37] 发言人 0**:现在我关键你们要清,你们统一平台,统一代码,统一东西是吧? - -**[02:06:43] 发言人 0**:我你怎么调度? - -**[02:06:45] 发言人 0**:果要用业的,那们专业的,我用业的那个不用,我们直接业。 - -**[02:06:51] 发言人 0**:我突然觉得刘强这个业务可能未来有机会了,就是调海外的算力。 - -**[02:06:55] 发言人 0**:我才他原来给我讲他业务的时候。 - -**[02:06:58] 发言人 5**:我在想这事,要不然我们就这样子,我们就统一账号,然后我们自己内。 - -**[02:07:02] 发言人 6**:部大王A I然后分给对对对。 - -**[02:07:04] 发言人 5**:个我就这样看。 - -**[02:07:06] 发言人 0**:那对你们搞清楚,我这边也需你们接下来弄弄。 - -**[02:07:09] 发言人 0**:然后还有一个就是你们搞清楚一个什么呢? - -**[02:07:12] 发言人 0**:就是比如说我们如果我们拿半台,我们自己算力调查,我觉得我们第一不调私有化部署,我觉得还是要叫脱Ken。 - -**[02:07:22] 发言人 0**:因为脱Ken是未来所有私有化部署的,尤其是大的私有化部署的,短时间内很危机,因为拓Ken那个速度太快。 - -**[02:07:33] 发言人 8**:你拿多少学习了,你那三百多批相当个大。 - -**[02:07:39] 发言人 5**:模型多少钱? - -**[02:07:40] 发言人 5**:就是现在一般发布出来的是671. - -**[02:07:44] 发言人 0**:671应该是常见670。 - -**[02:07:48] 发言人 0**:但是别人满血的。 - -**[02:07:49] 发言人 5**:他们那个卡里可以320多匹的个,满三百多的也多,六百多。 - -**[02:07:57] 发言人 6**:什么。 - -**[02:08:00] 发言人 0**:思我可能模。 - -**[02:08:10] 发言人 8**:不可能推推。 - -**[02:08:19] 发言人 0**:版。 - -**[02:08:21] 发言人 0**:他们做了一个,他们布置个白买的是吧? - -**[02:08:24] 发言人 5**:对,他们还不是布的那个671B的的。 - -**[02:08:27] 发言人 8**:三百多就一半的半水版的。 - -**[02:08:28] 发言人 0**:你们下你下来应该是跑不了是吧? - -**[02:08:31] 发言人 0**:你们下来研究就给我一个文字的东西好吧,我了解了解。 - -**[02:08:35] 发言人 6**:我我我具体看看。 - -**[02:08:36] 发言人 6**:然后王总我们这我。 - -**[02:08:38] 发言人 0**:约了到底付了多少币。 - -**[02:08:40] 发言人 6**:约了阿里的悟空工作平台,然后这是我的约谈时间,他跟我们讲下。 - -**[02:08:45] 发言人 0**:产品好吧,很好。 - -**[02:08:47] 发言人 0**:阿里的、腾讯的我们都学习,那个word的也可以好吧? - -**[02:08:52] 发言人 0**:好好好,我觉得很好。 - diff --git a/agent_memory/uploads/chat_4010afc8b71d/1782279966209_1_transcript_704.md b/agent_memory/uploads/chat_4010afc8b71d/1782279966209_1_transcript_704.md deleted file mode 100644 index ee1282f..0000000 --- a/agent_memory/uploads/chat_4010afc8b71d/1782279966209_1_transcript_704.md +++ /dev/null @@ -1,2764 +0,0 @@ -# 会议704 - -**会议时间**:00:00:01 - 02:08:54 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8 - -## 会议记录 - -**[00:00:01] 发言人 0**:来吧。 - -**[00:00:02] 发言人 1**:嗯上。 - -**[00:00:04] 发言人 2**:周的话能再对一下,然后定开这边上周跟王总他们。 - -**[00:00:16] 发言人 2**:数次,然后云计销售部这边也会协调一起去跟进一下,然后追加产品。 - -**[00:00:23] 发言人 2**:这边上周报的是217万的地。 - -**[00:00:30] 发言人 2**:收入对应的毛利都是按30%去做的一个现在的话目前已经完成了79万的收入。 - -**[00:00:39] 发言人 2**:高风险这边我觉得还有两个星期大后面冲刺的一个情况,上次沟通之后放了两个项目,一个是南案的运维。 - -**[00:00:54] 发言人 2**:一个就是孟国用,这两个是可以接手保络。 - -**[00:00:59] 发言人 2**:像目前总这边是1480万的收入,145毛利千头,这边没什么变化。 - -**[00:01:06] 发言人 2**:现在这样看的话,毛利是386万的低风险。 - -**[00:01:12] 发言人 2**:今年的用户是在。 - -**[00:01:14] 发言人 0**:78万左右,我就在在这个边边上半年这个半年转正边上,还是很艰难。 - -**[00:01:26] 发言人 0**:你看都是骑系统,这很麻烦,统毕都单单就。 - -**[00:01:33] 发言人 1**:这么情况。 - -**[00:01:36] 发言人 0**:好吧。 - -**[00:01:38] 发言人 2**:你这边没有。 - -**[00:01:38] 发言人 0**:而且我们打猎我们做的小,你家紫薇他们卖这个显卡卖的,我操人家半年几千万的精利润的,我操。 - -**[00:01:48] 发言人 0**:所以说你集成你也做不过人家,我操这我们只有好容才能对标,好容是做大集成的也没有用,我操那人家做动辄几千万,动辄雪求说,你人家这个做不过,这集成也做不过,他们也是过货,但是过货人家做的也比咱们没办法好。 - -**[00:02:10] 发言人 2**:然后现在全年预估有3.2,主要是因为协同营销物流卡这边近期要签一个七千多万的项目,所以。 - -**[00:02:21] 发言人 2**:具体跟工这个项目的情况再进行调整,我这边数据会议今天弄完之后给。 - -**[00:02:31] 发言人 2**:其他就没有开始吗? - -**[00:02:33] 发言人 2**:他有个七千多。 - -**[00:02:35] 发言人 0**:万的计算。 - -**[00:02:35] 发言人 2**:要计收吗? - -**[00:02:36] 发言人 2**:今年是说要准备计收,但是合同现在还在谈。 - -**[00:02:41] 发言人 0**:他。 - -**[00:02:42] 发言人 2**:是分批次发货的,这个。 - -**[00:02:46] 发言人 0**:月记不了好。 - -**[00:02:51] 发言人 2**:我这边就我之前看。 - -**[00:02:57] 发言人 0**:好,继续。 - -**[00:03:08] 发言人 3**:我这是数据,就刚刚是收入预期可做到2 2.1。 - -**[00:03:18] 发言人 3**:三百多,现在乙完子的是1600 1600和155,最后一周跟中心班有说不少。 - -**[00:03:30] 发言人 3**:上周收款的这就是定制开发速度的14万。 - -**[00:03:34] 发言人 3**:另外一个是内资4800宗消备,他现在累计已经做到1200了,所以八宗这个项目持续几年贸易。 - -**[00:03:43] 发言人 3**:虽然巴中现在还在收款,还在收他,因为是政府的大办公大楼的落地,所以说虽然耽搁了停工了这么久,但是陆续每每三五个月还是能回一笔。 - -**[00:03:57] 发言人 3**:现在累计已经收到了1297. - -**[00:04:02] 发言人 0**:那我们没电。 - -**[00:04:03] 发言人 3**:子买没电子,没电子,这是等于分钱没电。 - -**[00:04:06] 发言人 3**:但是这个项目就是我们当时二三年的时候,为了匆匆路把它全部给吸收了。 - -**[00:04:12] 发言人 3**:所以说他这个。 - -**[00:04:15] 发言人 3**:收款进入情况,否则就会产生那种外周集体重点的几个事儿,一就是河北那个计算中心。 - -**[00:04:24] 发言人 3**:刚刚邹景说刘凯他是最终定的金额,就是永州肉的交换机是,7680万,跟我们的商务条件是目前谈的,目前跟北京易思委谈的是30%的预付,70%发货。 - -**[00:04:43] 发言人 3**:胡松也跟刘先是刘恺和她产妇一起去了北京,胡松上周也去了北京。 - -**[00:04:50] 发言人 3**:然这一系列谈完之后,就是目前来看,因为他买的入合交换机必须是他是分销才有货。 - -**[00:04:57] 发言人 3**:华山行业没货,所以我们要买美氏佳洁的。 - -**[00:05:01] 发言人 3**:因为货已经压在美氏佳洁手里了,但我们汇智在里面不垫资。 - -**[00:05:07] 发言人 3**:第二个就是河北那边还有一个就不垫资的,不垫资,不垫资,预付30%,发货前70%。 - -**[00:05:15] 发言人 3**:目前谈的是这么一个。 - -**[00:05:17] 发言人 0**:跟我没有责任的,没有这任的产不是有账期,没有账期的说就可以,就没有账期。 - -**[00:05:24] 发言人 3**:没有账期,我们给美食佳姐没有账期,美食佳姐给我们没账期。 - -**[00:05:30] 发言人 3**:北京一那个我们给北京14A也没没没有没没。 - -**[00:05:34] 发言人 0**:有到期。 - -**[00:05:35] 发言人 0**:几个点。 - -**[00:05:37] 发言人 3**:两个点,然后之后里面就有一点,胡松有可能会找你,我们在下这个美食佳节的时候,有可能会有个1.2的现息观点,他有可能要把这。 - -**[00:05:49] 发言人 4**:个要走什么东西。 - -**[00:05:51] 发言人 3**:我们就是因为美氏佳节分销,我们在下他的时候也有一个现金返点,1.2比这两。 - -**[00:05:58] 发言人 0**:个点是另外的。 - -**[00:05:59] 发言人 3**:另外另但是胡松有可能想要走这个,就提前方面。 - -**[00:06:03] 发言人 3**:胡松还没找你,但是。 - -**[00:06:08] 发言人 3**:我从认为给如果1.2个给我就有点高了。 - -**[00:06:11] 发言人 3**:继续我河北另外一个医院的这个弱电项目,168万,也是总代汇智和能联然风险我们都如果切合的话,我都会把这个对接出去。 - -**[00:06:24] 发言人 3**:第三个就是吴天华的解放碑的,少写解释。 - -**[00:06:29] 发言人 3**:解放碑的定制开发上周开完会了,刘记也关注一下测试期,到现在没把定开的编界内容发给吴天华。 - -**[00:06:38] 发言人 3**:找上我一会还得找我,你要我知道我就是我们把边界弄弄好之后给他,让他以后不沟通,把那个边界签死。 - -**[00:06:47] 发言人 3**:完了之后额外给帮他去梳理的,他的工单流程和环节,就拿一边ps来替代的话,改那个修改也好,这个是我们未来20期是额外投入,但不是我们责任和义务。 - -**[00:06:59] 发言人 3**:在这个工单系统里面卡了预算之后只给5万块钱,我们做不了那么大内容。 - -**[00:07:04] 发言人 3**:年终想我们一次性把这个做完,那是不可能的,是重要的。 - -**[00:07:08] 发言人 3**:他毕竟是从五六百多万砍成了80万的一个项目,所以说是这个边界要尽快提出来,让让吴天豪去跟你沟通通。 - -**[00:07:17] 发言人 3**:如果不行,你不可能拿5万的活,让我干你整个业务流程。 - -**[00:07:22] 发言人 0**:工单流转流程,就是说这5万我们不接,也没人接,有人接你不是你不是说干不下来吗? - -**[00:07:29] 发言人 3**:那谁接呢? - -**[00:07:29] 发言人 3**:那个就是吴天华说的那家公司,他本身也有一个工单系统的,小的,就是说也干得下来。 - -**[00:07:36] 发言人 5**:他是这样的,他以前他们自己已经有一套工单平台了,就我们现在我们上次内开了会,针对这个事,我们到底这一期到底用什么样的方案做? - -**[00:07:46] 发言人 5**:我们有几种方案,第一种方案是简单方案,就是说就在他们以前在那个平台的基础上面,把这期的数据打进去就行了,这个就简单粗暴。 - -**[00:07:56] 发言人 5**:第二种方案就是说为了下一期我们多做点事,我们就把这个A O P的一些能力把它植入进去。 - -**[00:08:04] 发言人 5**:我们今天把超就算快。 - -**[00:08:06] 发言人 0**:我没搞懂,就是说你们做这个也是包不住成本的。 - -**[00:08:11] 发言人 0**:两种方案的成本就不太一样。 - -**[00:08:13] 发言人 5**:第一种方案的成本是第一种方案成本肯定包得住,就是简单粗暴把数据写到以前的那个app里面,第二种方案就是说为了后续的这个扩展,那我们就得做一。 - -**[00:08:28] 发言人 5**:如果别人做的做第一个方案,我估计是第一个方案,大概率是第一个。 - -**[00:08:34] 发言人 3**:他这有一个特殊情况是老的工单系统在他那个在他那码码。 - -**[00:08:49] 发言人 0**:放碑。 - -**[00:08:59] 发言人 3**:的。 - -**[00:09:05] 发言人 0**:限他个电网,就是天天看这个玩意儿的,都他们公司一百多人。 - -**[00:09:14] 发言人 3**:他们公司他是专门渝中区为地下管网成立了一个平台公司。 - -**[00:09:19] 发言人 3**:这个平台公司他的人是管理人员,他有一些外包,他的那些外包就用的定制手机。 - -**[00:09:26] 发言人 0**:天天去管理。 - -**[00:09:27] 发言人 0**:这一百多人做很多,那外包有多了,整个解放碑的地往往都在这样。 - -**[00:09:41] 发言人 5**:有有多少人,那这个个。 - -**[00:09:46] 发言人 0**:个这。 - -**[00:09:47] 发言人 3**:这这个你有多少个,你不道具体多。 - -**[00:09:55] 发言人 0**:少多个的,你东几个,你说你改多,人家一直在用,那那这个有几个,这个有几个,这是最最重要的事。 - -**[00:10:07] 发言人 0**:你们东西都不知道是吧,你他就那么三五个,你给他改改就20个。 - -**[00:10:12] 发言人 5**:我们看了一下数据,其实从数据的角度来看。 - -**[00:10:16] 发言人 0**:不并不大是吧? - -**[00:10:17] 发言人 0**:那到底是二三十个还是两三百个? - -**[00:10:19] 发言人 0**:要是二三十个就别听他们吹牛逼,我操这用了五年二三十个以后,我们想换换成他妈的换成那那不可能的。 - -**[00:10:27] 发言人 3**:然后他这个有一个是可以佐证吴天华去倒逼我们的,就是他现在已经为了二期,把2000万的这个二期项目报到发改委,发改委批批的批批批复的下来。 - -**[00:10:40] 发言人 3**:这个就是得等跟进节奏,这个是吴定华。 - -**[00:10:46] 发言人 0**:这都是为了一期,我他们大部分都是为了一期,为了让你拿项目,他给你报个持有二期的牛肉,大部分都是这。 - -**[00:10:54] 发言人 3**:好,那我继续。 - -**[00:10:55] 发言人 3**:我四川南城算利融资那个项目,就上周五开完会,徐凯今天去见嘉陵江的公司,嘉陵江科技公司建之后把资料要回来,就是关于购买承诺和我们要跟他签一补的购买协议这块我们就对着走。 - -**[00:11:17] 发言人 3**:然后周俊杰和何。 - -**[00:11:20] 发言人 0**:丽湘配合。 - -**[00:11:22] 发言人 3**:然第五科辽宁大学的周我们跟周星姐改了一把空,你看空的10,你审核一下行不行? - -**[00:11:32] 发言人 3**:如果行的话,就让代表处去发邮件,发邮件。 - -**[00:11:35] 发言人 0**:我跟紫薇说了,你们还是写个简单的东西,到时候发给紫薇。 - -**[00:11:40] 发言人 3**:让紫薇看一下。 - -**[00:11:41] 发言人 0**:给紫薇也看一下。 - -**[00:11:42] 发言人 0**:好,紫薇,因为她比较谨慎。 - -**[00:11:44] 发言人 3**:然后两江雪亮售后的情况,宋博已经处理好了,周末好龙把昌平二期。 - -**[00:11:50] 发言人 3**:因为你这。 - -**[00:11:51] 发言人 0**:里面什么没有,就连几个点都,你最多就是做个集成,是吧? - -**[00:11:56] 发言人 0**:说实话我们就帮忙居多。 - -**[00:11:59] 发言人 0**:然后这个主要给紫薇看一下这个是吧,到时候他给你们说一下,卡死了个。 - -**[00:12:06] 发言人 3**:那我起草一份微对你。 - -**[00:12:08] 发言人 0**:写要简单的东西给紫薇很好。 - -**[00:12:11] 发言人 3**:杨江雪的项目交付情况已苏格已梳理好,报告了长平二期好龙也准备好了。 - -**[00:12:19] 发言人 3**:我们最后就去约冯长安去跟华商客服开一个对接会议。 - -**[00:12:29] 发言人 3**:定制开发业务我们上周也做了梳理,六月份冲刺183万的收入,然责任人又重新下发一下。 - -**[00:12:37] 发言人 3**:我们这周开始按人头跟进去冲刺130 83万收笔。 - -**[00:12:44] 发言人 0**:对,定开就是下半年要追这个。 - -**[00:12:47] 发言人 0**:还是说的那个咱本能。 - -**[00:12:49] 发言人 3**:周五会把本周五会把那个三四预估情况拿出来,然后结合到6月份的计收数据,我们在七月初就可以,七月底一周就可以开一个,头半年的总结和下半年的任务规划,以后会再对标的费用一起搞一下那个地开发的。 - -**[00:13:10] 发言人 3**:对对对。 - -**[00:13:10] 发言人 0**:然后张伟的十万还没动手,那我觉得还跟因为十要推动他们把十万的事同意了就做起来是吧? - -**[00:13:22] 发言人 0**:但是我还是觉得我们那个定制开发,我们要出去卖的话,你们要把那个价格压的低低的。 - -**[00:13:29] 发言人 0**:你这个就是有就行,边际成本。 - -**[00:13:32] 发言人 0**:对,所以说你拿一半出去给人家做那个奖励,我都觉得可以。 - -**[00:13:37] 发言人 0**:这个不对,不是吧? - -**[00:13:39] 发言人 0**:你就不用放在那个桌面上,给他多那么多毛利。 - -**[00:13:43] 发言人 0**:你说了他妈的这个还麻烦,就给人就给钱是吧? - -**[00:13:46] 发言人 0**:给10万,给你3万,给你5万,我觉得都可以。 - -**[00:13:50] 发言人 0**:他拿回来你能做的好,那人家这个有有这个什么证,他就给你,要不然你太远了,你你你隔你隔市场太远了,谁给你? - -**[00:13:59] 发言人 0**:没人给你的,人家有人了,人家都去找其他,找自己的那些是吧,自己的那个东西给了也不会给你,人家找一家公司做了,为啥给你就要? - -**[00:14:11] 发言人 0**:就像他们说,找一家公司,人家那公司给你返个点,对不对? - -**[00:14:15] 发言人 0**:人家请那个谁洗个脚给你还拿不到这个钱,就是为了点考核,而且烂不钱,8万块钱、10万块钱。 - -**[00:14:23] 发言人 0**:所以我觉得还是那句话,考警来了,你不先行一步是吧? - -**[00:14:29] 发言人 0**:就是把成本达到万了,一折,达到2折,你剩下你就拿来奖励了,你自己成本养活活你是你自己水平不够,你没有用好这个考顶,就是你们使平不够,你使平够了就可以。 - -**[00:14:42] 发言人 0**:所以我觉得未来的这个毛利就在于你们研发自己的水平。 - -**[00:14:47] 发言人 0**:如果拖拖拉拉整了半天,整了几年的,11年下来了,明年一看,我操我们用的就用了很多,就跟那天我发了个周说的,看着一片繁荣,他妈的效率也不效率也看不到,他妈的成本也看不到,啥都看不到。 - -**[00:15:02] 发言人 0**:我操,最后我没结果,我有什么迟到工作,就是好像大家快了快有什么结果,没啥结果。 - -**[00:15:08] 发言人 0**:尤其是软件开发,软件开发基本上在这个里面属重灾区。 - -**[00:15:11] 发言人 0**:那如果你不先行先试的话咋整? - -**[00:15:14] 发言人 0**:你们下来软开的,你们自己这个内部,你包括这些说的,你们把这个代码,把这个到底哪些用这个本地模型,哪些用这个大模型,就做这个co而且要统一了,这个token也得统一了。 - -**[00:15:28] 发言人 0**:你他自己有多少钱,他自己有几毛钱买,所以说其实他都是给你装样子说,你看我这个我也在用,你们谁找你帮我? - -**[00:15:40] 发言人 5**:都其实有好多人在报。 - -**[00:15:42] 发言人 0**:在哪怎么报? - -**[00:15:43] 发言人 5**:我们现在只有通过办公费办公,不是每个月通过那个叫做什么来着? - -**[00:15:49] 发言人 5**:就是一些公司餐饮就要报。 - -**[00:15:51] 发言人 5**:不不不,你说话要负责的。 - -**[00:15:53] 发言人 0**:那你把那好,那我就问你下个月你们多少通过餐饮报财务的是多少? - -**[00:15:58] 发言人 0**:然后每个人报了多少,然后大概是个什么逻辑,你给我说清楚。 - -**[00:16:03] 发言人 0**:好,你这么一说,我就给你问到底了。 - -**[00:16:05] 发言人 0**:好,你下来给我查查,餐饮报了多少,给哪些人报的,那那那是有人报,有人报。 - -**[00:16:11] 发言人 0**:那我那你如果说你要我不,你看你这种行为,我觉得组织公司的组织构架它要改变是吧,那那说的很正确。 - -**[00:16:19] 发言人 0**:你那我可以给你就每个人给你报个托肯包,没问题的对对,每个人报个,你20个人,每个人给你报个托更包,我算算一共托肯包值多少钱是吧? - -**[00:16:30] 发言人 0**:就像你说的,值100美金,两百美金,一千美金。 - -**[00:16:34] 发言人 0**:行,两千美金,两千美金。 - -**[00:16:35] 发言人 0**:2627这个14000我裁两个人就回来了。 - -**[00:16:39] 发言人 0**:这羊出羊,那他们那个。 - -**[00:16:44] 发言人 6**:老伴他们要烧烧一千多2000块人民币。 - -**[00:16:52] 发言人 0**:那好,那不是美金就好,我就烧了,美才是水平。 - -**[00:16:55] 发言人 0**:对,真的,这个事情你就给我,你下来我就觉得你们如果我感觉这个怎么说呢? - -**[00:17:03] 发言人 0**:当然肯定有我的问题,但你们也没给我建议,大家都在说我操管用,怎么用。 - -**[00:17:11] 发言人 0**:那最后其实最终结果不是落到自己手上,是落到对公司有增值,对公司利润和成本之间的最核心的两个财务数据。 - -**[00:17:22] 发言人 0**:如果那两个财务数据落实不了,那他妈的我们还得他妈的每天每年就做系统计成,那么靠系统就来补,是吧? - -**[00:17:31] 发言人 0**:他妈系统你统补定开系统,你统补个力,系统补多了我才跟他妈麻烦。 - -**[00:17:37] 发言人 0**:理解我的意思吧,你下来你就把这个弄了,我会问的,因为这个东西原来我发现问不清,你只要搞清楚以后,因为我问你我原来我发现问财务或者问我们的很多人问一个数理半天,用一个数理不开理半天,我操我老问不清问题。 - -**[00:17:51] 发言人 0**:你一问我一问,他说我下次准备一问的,下次准备,我操,你这样我就有办法了,你就让你们把具体我说的是书据我也不行,我拿语音录给你,让A总结给你。 - -**[00:18:01] 发言人 0**:然后你按照A我再让A造个表,你或者说你自己填填完以后,你把有数据有了我再发给你,我给你对我看对不对的清就是人均是多少,好吧,就人均token是多少,现在是多少? - -**[00:18:12] 发言人 0**:以后需要多少,怎么做? - -**[00:18:13] 发言人 0**:用的什么样的模型,然后一个月用多少token? - -**[00:18:16] 发言人 0**:那个模型能不能混合用,能不能把大的和我这个周末在屋里用欧了吗? - -**[00:18:24] 发言人 0**:通义千问的那个私有模型,我也用了用用了一段时间,我发现他妈的跟大模型比差距还是非常大,那感觉吧? - -**[00:18:32] 发言人 0**:但是你私有模型人家也能做一些编码,你哪些有私有模型? - -**[00:18:36] 发言人 0**:还没有。 - -**[00:18:36] 发言人 0**:因为你你有些像我们说的那种,比如说基于这个财务的那些东西,我觉得私有模型绝对够了了。 - -**[00:18:43] 发言人 0**:那些我们做的财务。 - -**[00:18:45] 发言人 5**:cloucode的主要是那种编程的模型,或者确实现在用这些国产模型就要差很多。 - -**[00:18:53] 发言人 5**:所以我们现在买法也不一样,有的人是买那个就是按照那种开plus会员,每个月100多块钱这种。 - -**[00:19:01] 发言人 5**:有的就是买那个中转站,而中转站都现在整个那你这。 - -**[00:19:07] 发言人 0**:个你所以你说的这个事,我感觉就是一堆游击队没有给我提高多少效率,因为你你你没有指标,你跟他的指标没有没指标。 - -**[00:19:18] 发言人 0**:我这样其实这个东西你压也很简单,但主要是没量化。 - -**[00:19:22] 发言人 0**:如果我能量化到你和市场上,比如说市场上是两块,你能收到一块,中间还有5毛是脱Ken,那这事就简单了。 - -**[00:19:29] 发言人 0**:我们算的清账吗? - -**[00:19:30] 发言人 0**:关键你现在算不清账吗? - -**[00:19:32] 发言人 0**:你知道吧? - -**[00:19:32] 发言人 0**:你拿数给我,我其实我心里也打哆嗦。 - -**[00:19:35] 发言人 0**:我说好,我用记妈的给我以后我也得我算的账,跟刚才说我说的这个最后的账是一样的,对不对? - -**[00:19:42] 发言人 0**:他就拿市场比市场平济市场,我们水油拿去卖,拿到那个街上。 - -**[00:19:47] 发言人 0**:这个打家具了,妈的,拿到拿拿到拿到九龙坡,那叫什么地方? - -**[00:19:51] 发言人 0**:你们那他妈的瓷器口的打家去了,那妈人家一问再打下去了,他妈都都两块,你收一块,那人家给你打。 - -**[00:19:58] 发言人 0**:我操是吧? - -**[00:19:59] 发言人 0**:然后我一看那成本什么2块1块1.5块,我操我还能赚五毛。 - -**[00:20:05] 发言人 0**:行。 - -**[00:20:05] 发言人 5**:我们其实想过有统一来买,但统一买就大家的使用的使用的这个就是I E有些不一样。 - -**[00:20:14] 发言人 5**:所以说我觉得。 - -**[00:20:16] 发言人 0**:那后面而且把后面的什么保垒机,把鞋码什么都得统一到这个数据库,是吧? - -**[00:20:24] 发言人 0**:这后面的这个叫什么呢? - -**[00:20:28] 发言人 0**:这个都得统一,就是把把后面写的这个代码的什么都得统一了,都得输回来。 - -**[00:20:34] 发言人 0**:你不用你做那个,我觉得哎也能做了。 - -**[00:20:37] 发言人 0**:你只要做,你只要构建的好,你把那源码收回来A还能帮你检查两遍,你觉得呢? - -**[00:20:44] 发言人 0**:你为你们做,这是个工程。 - -**[00:20:47] 发言人 0**:我就告诉你,我这个周末我才知道,他妈的医到群6台,我好不容易找他要了要要了0.5台。 - -**[00:20:56] 发言人 0**:你就跟那个。 - -**[00:20:57] 发言人 5**:谁跟那个跟那个什么淼。 - -**[00:20:59] 发言人 0**:他跟他跟他去跟他跟他跟他去确认,因为说确认了一次,不是上我他我周六。 - -**[00:21:06] 发言人 5**:跟紫薇说,他同意他们一开始他们的药就是台然台。 - -**[00:21:11] 发言人 5**:然后呢,吴佳表上周给我们开来临时测试了一下,如果你这样说,可能我们。 - -**[00:21:17] 发言人 3**:就可以固定的把那个无佳表是it的那一台依照平时那6台研. - -**[00:21:22] 发言人 0**:发的那那台没了,有的话他不。 - -**[00:21:25] 发言人 3**:会说不给我的。 - -**[00:21:26] 发言人 3**:吴家表那。 - -**[00:21:27] 发言人 0**:有一台没了。 - -**[00:21:28] 发言人 5**:他发到发到。 - -**[00:21:30] 发言人 3**:珠海工厂装上了之后又又有了,现在他是发货到珠海工厂。 - -**[00:21:34] 发言人 0**:把那台他是他不要店,他给我讲了,但是没有说,那说明让说明他们瞒着紫薇。 - -**[00:21:41] 发言人 0**:我跟你讲,紫薇他就知道6台这力道机全用完了。 - -**[00:21:45] 发言人 5**:但用完6台,一台多少批算的。 - -**[00:21:48] 发言人 0**:他是巴卡卡H零多少具体? - -**[00:21:50] 发言人 5**:好,我还真知道。 - -**[00:21:52] 发言人 0**:虽然咱们那个你看你你你就别做软件了,你花点技术把。 - -**[00:21:57] 发言人 6**:硬件搞搞,是100的. - -**[00:21:59] 发言人 0**:3分之1都算的。 - -**[00:22:01] 发言人 0**:你把这个硬件搞搞,我操他妈的,我觉得我们这个的软的硬搞不说你能你用的好吗? - -**[00:22:08] 发言人 0**:他说我们那是工业化,我们的6台我们要做算法,要做这个做那个。 - -**[00:22:14] 发言人 0**:我们那些他的全个我们他进的很,我在想,我说我们也亲进了,但是他妈的我们他妈的你话说个啥,你们就是你们还没有做到工业化,这个我跟你讲,易照平我不说他其他人家要资源护犊子,这一点绝对是他妈那门管的。 - -**[00:22:30] 发言人 0**:但是要资源护完犊子以后,到底成本怎么样,这个是他们的流程决定的,他们可能链条比较长,他们到时候把医疗品那个资源和犊子最后说成那个成本。 - -**[00:22:41] 发言人 0**:因为医疗品种我做的那个东西他妈的要领先五年,那他么五年后是什么样子,我哪知道? - -**[00:22:47] 发言人 0**:他可能不会对那个成本负责,但是我定开其实很简单的,对不对? - -**[00:22:51] 发言人 0**:我又不需要,我不希望医疗局那种,即便我有这种I害怕dream,我也不希望让医疗平台做这种事。 - -**[00:22:58] 发言人 0**:他没有dream,他就是要资源互投资,哪有那么个dream。 - -**[00:23:01] 发言人 0**:说了几年的剧,只问毛剧,所以我们这也不存在dream不剧,我们剧最多就是一年半年,今年能不能做,明年能不能做做不了就别做了,没剧没就那么点钱,哪有剧。 - -**[00:23:13] 发言人 0**:所以说我说回来就是你们能不能至少在他妈的要资源护图的这一块,你们能不能给我那个正。 - -**[00:23:24] 发言人 5**:规军。 - -**[00:23:26] 发言人 5**:好。 - -**[00:23:27] 发言人 0**:我们下来再开展这个交易。 - -**[00:23:29] 发言人 0**:参加以后我们再开展这个问题,把这个把硬件把这么给搞明白,我操你们,这个其实我实话实说,没好意思说我在外面吹牛,实际上还是游击队,紫光汇智游击队信息技术有限公司。 - -**[00:23:43] 发言人 0**:我操哪天把游戏都脱掉,铁道游击队。 - -**[00:23:54] 发言人 0**:这点抽点东西过个货,那抽点东西过个货就提到一个月。 - -**[00:24:02] 发言人 0**:好,继续。 - -**[00:24:03] 发言人 3**:我招人的话,九个人九个省可没问题了。 - -**[00:24:07] 发言人 3**:我们个曾幸福,云南那个那个人韩东生,我下午约四点再面一下,如果没问题。 - -**[00:24:17] 发言人 3**:进来,然后韩东生,刚刚我跟孙刚也聊了,让陈畅也跟他面对面沟通。 - -**[00:24:24] 发言人 3**:有下午我自己再跟他聊一下。 - -**[00:24:27] 发言人 0**:但是约了十天。 - -**[00:24:29] 发言人 3**:然后关于明智的各省份的考核数数据现在C 2M上是1.8亿的空间。 - -**[00:24:36] 发言人 3**:然上周一我们开会让他们把所有的空间填报C 25的信息的准确度重新更新里面。 - -**[00:24:44] 发言人 3**:目前来看在九个销售里面的省份,预估六月下单金额在307万,准确率我们认为应该是已经达到80%的准确率的。 - -**[00:24:55] 发言人 3**:这个C M目前已下达了只有万,就是六月份单月总计预估下达307万,已完成56万。 - -**[00:25:04] 发言人 3**:我刚刚会前跟三郎也讨论一下这十个省份云质的任务。 - -**[00:25:10] 发言人 3**:我们是把6到12月对他入职时长,6到12月把他们拉了一下经营20年的任务。 - -**[00:25:17] 发言人 3**:然后有两个内蒙河南和重庆的杨思磊,然后张贵和杨思磊因为在职12个月就挂了全年任务,剩余的就根据食长来我们列了,目前预估差不多在2800万云值销售,云质销售就26年的任务。 - -**[00:25:33] 发言人 3**:然后下周我们会最终我们把正式的跟每个人。 - -**[00:25:41] 发言人 3**:最后是有几个求助,一个就是汇智牌的3650和5600的检测报告,具体这面加快一下。 - -**[00:25:50] 发言人 3**:6月26号八号米这有个标要投100万左右的标地,这两个终端的费用用到。 - -**[00:25:57] 发言人 6**:需要检测报告。 - -**[00:25:59] 发言人 3**:6月26号没有出来。 - -**[00:26:01] 发言人 3**:能不能做来出来。 - -**[00:26:03] 发言人 6**:这个我你出不。 - -**[00:26:05] 发言人 3**:我到时候想办法,你把他现在是给了的么报告模板给销售,这个我们就不去能力,如果能出来,我们就催一下,因为他是已经定好开标这两个终端也已包括价格,我催一下,有可能能出来。 - -**[00:26:20] 发言人 6**:但是这个不保证,不保百分之百,你催一下急。 - -**[00:26:24] 发言人 6**:对。 - -**[00:26:25] 发言人 4**:他已经是。 - -**[00:26:25] 发言人 3**:加催急了。 - -**[00:26:26] 发言人 6**:我们上周我们当时搞过检测报告。 - -**[00:26:29] 发言人 3**:我检测报告我们的是我们上次紫发软件是带病忙的,马上招标。 - -**[00:26:35] 发言人 6**:我跟你说说都花。 - -**[00:26:36] 发言人 3**:十天就搞下来,拿掉个我就催训志给的这个报告。 - -**[00:26:41] 发言人 6**:我感觉没那上周是我们集团对我们的商标合同耽搁了十天,集团才今天早上才给到,我们也一直在催集团到没有到期,但是人家说你到期时间太短了,他不给我批正什么起的尤尼森是那个商标紫光集的。 - -**[00:27:03] 发言人 6**:然后是7月6号到期,然后其实没到期,但是证书机构是认为我们那个到期时间太短了让我们重新一签。 - -**[00:27:14] 发言人 6**:我想我们我要和华润。 - -**[00:27:17] 发言人 1**:法找个集团。 - -**[00:27:19] 发言人 3**:然第就是公安机策问题。 - -**[00:27:23] 发言人 0**:已到全。 - -**[00:27:25] 发言人 6**:那单如果拖拖。 - -**[00:27:28] 发言人 0**:他们这次。 - -**[00:27:30] 发言人 6**:已经很是因为有两个流程。 - -**[00:27:37] 发言人 0**:继续。 - -**[00:27:38] 发言人 3**:然后关于像公安的一期专用的问题,我们上周第一顺国找了南海公安做测试。 - -**[00:27:47] 发言人 3**:第二我找了市局。 - -**[00:27:51] 发言人 3**:都没有遇到过在公安网或者是电子网,或者视频专网一起发问的情况。 - -**[00:27:58] 发言人 3**:也孙伟找到北信源,北信源也答复没有那个安全边界,他们想做但还没做,所以说就完全不一样。 - -**[00:28:07] 发言人 3**:所以说榆林公安那个榆林公安是这样的。 - -**[00:28:11] 发言人 6**:我们问他内蒙,我说内蒙你们到底是怎么在用机方用? - -**[00:28:16] 发言人 6**:最后他是说那个机子是接两个网口都接了公安网,但是他们在公安网里面把它分成了数据域和用户域两套语。 - -**[00:28:27] 发言人 6**:用那个是正常的,那个是可以用他他们他们是这样的用好,榆林公安现。 - -**[00:28:34] 发言人 3**:在就是不知道他们要怎么用。 - -**[00:28:36] 发言人 3**:没榆林公安那个漏洞反馈回来的就是公安网和电子网。 - -**[00:28:41] 发言人 6**:不是他的不动打电话了,他报告写的给我写的报告那个报告他说他最初是客户说他们云桌面要用到公安和网和政务外网,但并没说要跨两个网段。 - -**[00:28:55] 发言人 6**:然后他们现在也去问了,不知道客户到底要怎么用,因为这个还没装,但是这个东西是客户明确要求就装网口,他谁我们去装,所以装的时候要他们部署给我们反馈。 - -**[00:29:10] 发言人 3**:一个人说了,这里就是两个问题,一个是我跟苏伟跟俊杰也开了这个会议,如果是我们去装双网口,如果是政策不允许,最后影响的肯定是这个位置。 - -**[00:29:21] 发言人 3**:对,就是公安肯定会甩锅。 - -**[00:29:23] 发言人 3**:公安不可能因为这个事丢自己的不纱帽。 - -**[00:29:27] 发言人 3**:那为这个事情就是政策问题,到底允许不允许北信源我们在里面买全器,他厂家自己都说他没做,那怎么会涉及那安全? - -**[00:29:36] 发言人 3**:所以我们里面。 - -**[00:29:38] 发言人 0**:没有法务的风险,那个已经给卖,已经给给那个基本。 - -**[00:29:43] 发言人 5**:上还我卖出去了。 - -**[00:29:44] 发言人 0**:卖出去也到没有什么。 - -**[00:29:46] 发言人 3**:按理说出问题,出问题你厂家就会有风险,谁接的那个谁就要负责任,就是谁机接一线是。 - -**[00:29:54] 发言人 6**:有问题的。 - -**[00:29:55] 发言人 6**:但是本身产品没问题,因为我产品多了一个网格。 - -**[00:29:59] 发言人 0**:你产品问题是你合同里面有没有设方案,你的之间有没有,那叫叫法律分歧,说他妈的你说你可以,结果不可以。 - -**[00:30:08] 发言人 0**:因为你造这个方案的时候,经销商觉得我马上就卖了,但最后经销商打官司联用了,经销商退货了。 - -**[00:30:16] 发言人 0**:也就是说在合同里面你。 - -**[00:30:18] 发言人 6**:承诺我的你没达到,对客户没说他要怎么用,但是他客户。 - -**[00:30:23] 发言人 3**:就要刷网口,这个方面不是我们设计的,我是他要。 - -**[00:30:26] 发言人 3**:彭总不知道记不记得18年的时候,王云还在立维的时候,19年深圳商汤就爆了一个雷,虽然是基层商买的桑汤,供给公安做的人脸识别,但是整个深圳市公安稽查和公示的是孙信福泄露了深圳市仓库库中标。 - -**[00:30:46] 发言人 3**:不是孙信福,是桑汤泄露深圳市仓储库,我直接划成一个大红头文件,在网公网上公示的。 - -**[00:30:54] 发言人 3**:虽然不是商汤直接中标,商汤也不会直接中标。 - -**[00:30:59] 发言人 3**:但就是说商涛的人脸识别这套系统,把深圳仓储库给泄露了。 - -**[00:31:04] 发言人 3**:原因是他缓存深圳仓储库,被别人在实频专网给他攻击了,把仓储库拿走,厂家肯定会有这个影响。 - -**[00:31:11] 发言人 3**:所以说我在搞这个试点测试的过程中,我至少就业务层面从南安华送我们的,包含罗天华,从市科兴镇的。 - -**[00:31:19] 发言人 3**:是没有遇到,就直接过。 - -**[00:31:21] 发言人 0**:现在上没有使,因为本来我就是希望这个做一个案例,做一个可复制的案例,因为公安这个事还是很大,是吧? - -**[00:31:29] 发言人 0**:你这了解一下。 - -**[00:31:31] 发言人 4**:这原则上我建议如果业主不给我们材料的话,他不给我就是不管是这种材料,不管挂哪,我你必须下到命令给我,给个东西给我才能建议,不管是管我事情还卖我,这三个我绝对不能乱传,因为当时我们来面公。 - -**[00:31:49] 发言人 0**:交流所有不好。 - -**[00:31:50] 发言人 3**:那最后一个就是今天早上那个谁与志伟过错的一个字,自发政开发这政厅就是产妇找的,他产妇找的,他说我们报价太高,我要是为能不能协调地力开发申请,报价太高。 - -**[00:32:08] 发言人 7**:的问题是包含这付费用。 - -**[00:32:11] 发言人 7**:他他跟我说的是。 - -**[00:32:12] 发言人 3**:一开始我们报的15个变成7.5,结果那个产妇跟他说,你们最多给你2万块钱。 - -**[00:32:20] 发言人 3**:能够做这个事情,这个细节看谁能帮于志伟去协调一下。 - -**[00:32:26] 发言人 0**:这个事是谁来管。 - -**[00:32:28] 发言人 3**:是华山,但是确定孙兴福已经在这个,这人庭目上已经。 - -**[00:32:34] 发言人 0**:设计完了,核实孙兴福。 - -**[00:32:36] 发言人 0**:谁什么意思? - -**[00:32:37] 发言人 0**:这个项目。 - -**[00:32:38] 发言人 7**:是底是云的项目,想浙江省数据局的一个云肉面的项目,他但是浙江不是政务网上有个自政钉,钉钉的就是阿里宝的钉钉的一个东西,所有的政务网上都要跟这个硬接,有些可能我们开。 - -**[00:32:58] 发言人 0**:这个接口。 - -**[00:32:59] 发言人 7**:他们评估了大概10万15万研发。 - -**[00:33:03] 发言人 0**:研华三海,那这肯定。 - -**[00:33:05] 发言人 7**:他们来来来定制。 - -**[00:33:07] 发言人 0**:这个东西华山品华山三十多年的研发。 - -**[00:33:11] 发言人 0**:对,三十多三十那肯定是乱评的那这个肯定没。 - -**[00:33:17] 发言人 7**:这么搞的,但你这个2万块钱肯。 - -**[00:33:20] 发言人 3**:定一高不? - -**[00:33:22] 发言人 3**:当时不就是说我们弄个人进进华山这种农。 - -**[00:33:27] 发言人 0**:关键项目。 - -**[00:33:30] 发言人 7**:要拿项目已经下。 - -**[00:33:35] 发言人 3**:已。 - -**[00:33:36] 发言人 7**:掉了。 - -**[00:33:37] 发言人 0**:现在。 - -**[00:33:38] 发言人 7**:是开中省数备这个很小一个项目,大概几十个点。 - -**[00:33:49] 发言人 3**:是么高。 - -**[00:33:50] 发言人 7**:总共项目也就10万块钱不到。 - -**[00:33:55] 发言人 0**:他自己在那标前没有把它说清楚。 - -**[00:33:59] 发言人 7**:标前是渠道商,我们的省代说这个应该跟这真定金没有问题的,他也没问我们。 - -**[00:34:07] 发言人 0**:然后省付钱。 - -**[00:34:08] 发言人 7**:省代省代就省代就是做,他肯定做不了。 - -**[00:34:16] 发言人 3**:现在浙。 - -**[00:34:19] 发言人 7**:江代表处。 - -**[00:34:21] 发言人 3**:江表华华。 - -**[00:34:23] 发言人 7**:华妇妇数志。 - -**[00:34:27] 发言人 6**:投标过程啥。 - -**[00:34:29] 发言人 7**:都没不上,自己管的对,也没问。 - -**[00:34:35] 发言人 6**:我们。 - -**[00:34:36] 发言人 6**:然后现在他。 - -**[00:34:38] 发言人 7**:妈的我们。 - -**[00:34:40] 发言人 6**:这个概就报端。 - -**[00:34:42] 发言人 7**:到江。 - -**[00:34:44] 发言人 6**:你们谈。 - -**[00:34:44] 发言人 0**:反正如果后期有扩容这个的话,我觉得还是看看能不能结合这个合我们在个那我现在给。 - -**[00:34:54] 发言人 7**:他是说175000,然后再跟他再再磨呗。 - -**[00:34:58] 发言人 3**:首千华还说不,这个产妇比出来了,毕竟骨感可以重视的。 - -**[00:35:03] 发言人 6**:好吧,像我们的。 - -**[00:35:05] 发言人 7**:亏亏也没办法,有些人。 - -**[00:35:08] 发言人 0**:该做还是75000,你是边际成本的,你亏啥亏。 - -**[00:35:12] 发言人 3**:你反正那个人你都养。 - -**[00:35:14] 发言人 0**:只要华商愿意给我干了。 - -**[00:35:17] 发言人 7**:那几个人反正你都养了。 - -**[00:35:19] 发言人 7**:好,这里面就是说他能做吗? - -**[00:35:23] 发言人 6**:农业新招的那个。 - -**[00:35:24] 发言人 3**:他现在可以做。 - -**[00:35:26] 发言人 3**:我认为这个归接跟人家就跟产。 - -**[00:35:29] 发言人 0**:品主线一点关系没有,进不面试,你们走走,要走走。 - -**[00:35:35] 发言人 7**:还是能做一些事情的,可以做不少事情的。 - -**[00:35:38] 发言人 7**:就像类似的这种活就可以我。 - -**[00:35:41] 发言人 0**:们就可以扔给他去做了。 - -**[00:35:43] 发言人 0**:你觉得可以你就招。 - -**[00:35:45] 发言人 0**:我觉得他们但时价格。 - -**[00:35:47] 发言人 7**:他跟薪资这边他可能要总共加起来在2K左右。 - -**[00:35:51] 发言人 0**:这个20K左右。 - -**[00:35:58] 发言人 7**:你们看到,但是我觉得还是有有价值的。 - -**[00:36:02] 发言人 7**:至少我们放一个人进去。 - -**[00:36:04] 发言人 7**:而且张志辉答应过,就过两个月肯定把它放到这个研发场地里去工作的。 - -**[00:36:09] 发言人 3**:好,继续,我这儿结束了没。 - -**[00:36:13] 发言人 1**:其他没。 - -**[00:36:32] 发言人 8**:这个的话一个是上周的话,一个是河北农信的有一个开发测试区网络建设的设备的这样的一个项目。 - -**[00:36:43] 发言人 8**:然后的话这个事情是应该是到后续马上要签合同的,应个是。 - -**[00:36:51] 发言人 8**:第二个的话是中国移动通信的青海有限公司,有一个d的一个集成投组伙伴的。 - -**[00:37:00] 发言人 8**:我们应该是要去入他的一个编c的一个库。 - -**[00:37:04] 发言人 8**:然我们上周的话是把我报了名,就应该是跟着项目走。 - -**[00:37:12] 发言人 3**:这是王丽丽那。 - -**[00:37:15] 发言人 1**:边算力小,目。 - -**[00:37:18] 发言人 3**:动卖卖给买我们我们去买新华三四光合到一起有两个规模,王也利用为他主导这个销售,就看有没有机会。 - -**[00:37:30] 发言人 3**:80%的工作目都谈的7788了,但现在我们就是相当于做移动的助理,要不然我。 - -**[00:37:39] 发言人 3**:移动要求我们的电视厅汇。 - -**[00:37:43] 发言人 0**:这个有。 - -**[00:37:44] 发言人 3**:几个点,现在还没谈他他端午节回来要搞我,他那个就谢谢。 - -**[00:37:52] 发言人 1**:我稍等等。 - -**[00:37:53] 发言人 0**:好好继续。 - -**[00:37:54] 发言人 8**:第三个也还是上次说的是就昌平的M4的一个这块的一个项目。 - -**[00:38:04] 发言人 8**:然后的话我们上周的话是主要是看了一下他的图纸,图纸的话应该是还是不管是图纸也无权,然后清单的话又就遗漏的地方,我觉得可能就是重点的话是。 - -**[00:38:18] 发言人 1**:要把那些图纸。 - -**[00:38:19] 发言人 8**:清单这些东西把它理清楚。 - -**[00:38:22] 发言人 8**:然后在后面的这个项目把它顺。 - -**[00:38:32] 发言人 8**:第四个的话是辽宁,辽宁的那个。 - -**[00:38:38] 发言人 8**:电视台的4K的项目,上周也汇报过,然后尽快的话推动它报。 - -**[00:38:49] 发言人 8**:然后我这边的话是一个是那个视频号。 - -**[00:38:52] 发言人 0**:数字也一直没搞好。 - -**[00:38:54] 发言人 8**:对,因为搞本来是最开始搞搞好了一个,搞好了一个,甚至说我们那个微微胖里头以后不能够再用那个呃就是微胖的字。 - -**[00:39:06] 发言人 0**:我们数字研究越来越回到了什们网上那个长得有点像那个了,他好像他们是故意这样的。 - -**[00:39:16] 发言人 0**:牛娃二的数字很多,那女的都一样,女的都一样。 - -**[00:39:20] 发言人 6**:发音都一,不是翻译。 - -**[00:39:21] 发言人 0**:你没发现那女的都也是老的年轻的都一样,好多男的女的也一样。 - -**[00:39:26] 发言人 0**:因为就一套。 - -**[00:39:27] 发言人 6**:东西做出来,所以我觉得因。 - -**[00:39:29] 发言人 0**:为那个成本低,或者说可能平时的什么也低,就在国内我觉得都走向那个方向。 - -**[00:39:36] 发言人 6**:也每次都一样,语气都一样,我看他好,然后我人小气。 - -**[00:39:41] 发言人 0**:就是脸五年的脸,你没发现你自己,你发现你你你看看就最近发布那个那个张艺发布那个就跟那个就跟我们那个那就开始瘦下来了,原来我们俩研人一样,就开始跟那个像了。 - -**[00:39:54] 发言人 8**:他可能那种无论是因为我们做最后要做那个视频的话,他还是要通过那个C档次。 - -**[00:40:01] 发言人 8**:C档的话他肯定里头他在做那个点的时候,他肯定是有他的一系列的规范条件的。 - -**[00:40:09] 发言人 8**:所以说你越做就会和网上的那个数字点做的越来越像。 - -**[00:40:15] 发言人 8**:就不管你怎么约束他,你给他写什么替示词,或者你的原始是你给到他了个他给你做出来的,可能他就会有。 - -**[00:40:27] 发言人 8**:然后南岸的那个无人机。 - -**[00:40:30] 发言人 4**:项目的话。 - -**[00:40:31] 发言人 3**:那个是。 - -**[00:40:33] 发言人 0**:但是也有很多高手。 - -**[00:40:35] 发言人 0**:但是我怀疑这新浪子里面出来的那些,很多女生好看的各个但是只。 - -**[00:40:43] 发言人 5**:要是那种叫什么快餐店出来的,全是一样。 - -**[00:40:48] 发言人 5**:你用他平台的他太多了,只能用他拍的。 - -**[00:40:52] 发言人 5**:还有就是自那个feel自己做那个。 - -**[00:40:55] 发言人 5**:可所说我们做过。 - -**[00:40:58] 发言人 0**:但他算消耗比较高。 - -**[00:41:00] 发言人 0**:如果我们这你们你你你高多少,你搞没有,老板我们之前搭过。 - -**[00:41:06] 发言人 5**:但我们但时出一个视频太长了,出一个视频2个小时。 - -**[00:41:11] 发言人 7**:这样。 - -**[00:41:12] 发言人 7**:我觉得想这个数字人这个事儿,我觉得还是我我觉得还是有价值去做这个是。 - -**[00:41:19] 发言人 0**:就是我我。 - -**[00:41:20] 发言人 7**:不仅仅是我们自己用,我觉得我就是我们现在民桌面,有大量的教育云桌面,教育桌面。 - -**[00:41:27] 发言人 7**:我还是觉得原泉园那个味孩的。 - -**[00:41:30] 发言人 0**:你是对的。 - -**[00:41:31] 发言人 0**:我就很简单,你做的好你得划算。 - -**[00:41:34] 发言人 0**:每个代表数你给他做个一万的,他给他算的业绩你都是你你你就几十个,你代哪个代表数做的好呢? - -**[00:41:42] 发言人 0**:你看见没有? - -**[00:41:43] 发言人 0**:没有,就很简单,你要去做,你给省代每个做一个,那省代还在拿人社,但是现在这个事情,江毅就慢的。 - -**[00:41:52] 发言人 0**:你们江毅你琢磨琢磨。 - -**[00:41:53] 发言人 0**:还有一个他江毅你牵头,你管他们这样你牵头,你把你们他们开一起,你要企业方理中心,你们把这个把这个就把这个硬件,我们需要这个硬件,我操人家一个他妈七个人就一台H 20是吧? - -**[00:42:12] 发言人 0**:发六台我去要,后来紫薇说他们用的很满,给我们台还担心我做算法就是你自己得自己你想办法,你很多东西都要想出来的。 - -**[00:42:23] 发言人 0**:如果我我跟你说,我下一步我坚定不的,下一步只要你们做出,我们就把他们的埃踢布给他们,关着门说,就把他埃踢部给他收了。 - -**[00:42:33] 发言人 0**:因为你还是那句话,我租的比你便宜,你他妈你七个人花几百万,一台20多少钱,我合在一起我都买过来,我半价给我说,紫薇你看你七个人200万加上H 20多少钱,合在一起我一半我就全买过来,我说你业务给你接了。 - -**[00:42:51] 发言人 0**:因为本来我搞it,我也想我们各个部门对不对? - -**[00:42:56] 发言人 0**:都想去好好的企业。 - -**[00:42:59] 发言人 7**:你所有都结构化的一些it的人。 - -**[00:43:02] 发言人 0**:问题是用这种稳定模型,这个不一定做,还是两个,我觉得还是要混合,就本地做一部分上面做一个。 - -**[00:43:11] 发言人 0**:你比如举个例子,本地就写文案,本地把那个叫什么呢? - -**[00:43:17] 发言人 0**:就一次过,本地如果能把那个的那都好,你到面次过,你然做是我操不行,又重新做一次,再不行,我说你道理。 - -**[00:43:27] 发言人 0**:是,所以还有一个我顺带说这个我就建议你在你在你你你你你们就再落实一下。 - -**[00:43:35] 发言人 0**:就华山那个他一台服务器多少钱,多少算你500是. - -**[00:43:40] 发言人 8**:什么事儿? - -**[00:43:41] 发言人 8**:好吧,用的是么? - -**[00:43:43] 发言人 8**:我这个我下面就是最后一点,我上周实际上是我和那个,你看我们一起和华山的开了两次会说这个事情。 - -**[00:43:54] 发言人 8**:就现在的话他们就是给我们提了服务器的方案和一个是4900,一个是5300的。 - -**[00:44:02] 发言人 8**:然后四华山来华夏华山,我是跟华山开的会,没有华不开什么会。 - -**[00:44:08] 发言人 8**:我们上周我们说那个流程,我们不是要数字助理吗? - -**[00:44:13] 发言人 8**:数字助理的话,当时您就说比说我们要配硬件,配硬件的话就必须要要那照华山那的服务器服务器。 - -**[00:44:23] 发言人 8**:对对对,你说我就跟拧到一起,我们就把需求提给华山了。 - -**[00:44:28] 发言人 8**:华山就给了我们两款配置,一款是它的4900系列,一款是它的5300系列。 - -**[00:44:34] 发言人 8**:然后每一款里头有两种芯片的配置。 - -**[00:44:37] 发言人 0**:一种是英伟达的芯片配置,还有一种是这个就应该有H 20的。 - -**[00:44:42] 发言人 5**:对,他他华他的20L20H20,如果A20H20超过我们的那个好,这样的就是我我觉得是这样的话。 - -**[00:44:50] 发言人 8**:我们先让华山,因为我们需求现在是清晰的,我们要些什么东西,需要多大的算力是清晰的。 - -**[00:44:58] 发言人 8**:我们先让华商把这个配置出来以后的话,我们如果。 - -**[00:45:02] 发言人 0**:有好,你们先把数据也拿到,去年你们也把H 20的数据拿到,我以后就不问你了,我他妈全程给我的AI助理,我有啥事问我的AI我操。 - -**[00:45:14] 发言人 0**:我就问他。 - -**[00:45:15] 发言人 8**:我说H 20到底用多少? - -**[00:45:17] 发言人 8**:他这个是这样的,他这个方案最开始我给的方案就是我和AI讨论,讨论完了以后我就没有去问华山,就是你就是我就直接把这个配置给他,我就说你帮我确定一下这个配置要多少钱,就这么来的。 - -**[00:45:35] 发言人 8**:他也觉得现在这个就是华山他们现在出这种低端的,因为当时你也跟我说,你说大概只能20万,可能就已经是这个事情的上限。 - -**[00:45:46] 发言人 8**:因为你当时是先给了我一个中心的配置,最低的那个大概要五六十万,就那个中心,那他的那个我就给提出来,我说你先分析中心的配置,配置完了,你我们华的配置做的中这个有竞争,他就给了我配置,然后我就把这拿华讨论。 - -**[00:46:05] 发言人 8**:因为具体的他哪些机器适配了哪些卡,我们现在确实是搞。 - -**[00:46:10] 发言人 0**:其实这个我现在理解,这个Q可open可各种可,实际上你看他都是没头的,你要有头的话,你要腾讯他首先第一个事是想接到自己的头里是吧? - -**[00:46:21] 发言人 0**:对,但是他慢慢他有开发商,你接别人的头,那中兴他他也是无头的,他无头的他自己需要那么大算力干嘛? - -**[00:46:30] 发言人 0**:他不需要那么大算力。 - -**[00:46:32] 发言人 0**:如果纯无头的不就一个盒子就可以了,对不对? - -**[00:46:36] 发言人 0**:但是他有些可能都希望自己在里面,比如说放一个自己的,我觉得现在有点乱战,他妈放一个自己的什么小模型,或者放一个自己给人家。 - -**[00:46:47] 发言人 0**:像腾讯这个模型很有意思,用这个Q的模型叫au他. - -**[00:46:50] 发言人 0**:这auau是一个点底下还有0.5的、0.8的,我操就自动的。 - -**[00:46:55] 发言人 0**:但是我都怀疑他是里面有可能他有些时候可能就拉到海外,有可能用他自己的可能海。 - -**[00:47:02] 发言人 0**:那很神奇,他是一个点其他的些模型,但然他们用阿里的其他那些模型,就是有0.8的,0.5的,有一家上市公司的H这个叫什么? - -**[00:47:14] 发言人 0**:而且你说的,我跟你说腾讯现在人家已经就是你说不好用,他现在已经把那个就是我昨天晚上装的那个千问的那个欧那个那个那个欧了么? - -**[00:47:27] 发言人 0**:那个千问3.5这个506年5月,06年3月份四月发布的9B的都可以下载了。 - -**[00:47:34] 发言人 0**:我其实我昨天晚上下载俩东西,他妈一个下载海外那个奥了么,下了他妈的2个小时没下载。 - -**[00:47:40] 发言人 0**:然后我看他那个奥了么什面最新公布的,他还没腾讯申这个新,也就是腾讯现在已经把这个对外本地模型也全都可以让你接了,就bug很多。 - -**[00:47:50] 发言人 0**:我操我这接的时候他妈来回,但是我跟你说本地模型也能接,海外模型也能接,而且我今天跟朋在聊,skill他给你做了一大片mer就. - -**[00:48:00] 发言人 0**:是其实他这个龙虾,我觉得腾讯核心中核心这个腾讯最未来它最最重要粘客户的就是skill和memory。 - -**[00:48:08] 发言人 0**:而且最有可能那个年客户的就memory。 - -**[00:48:11] 发言人 0**:因为他的memory,他的个微信的迁移成本其实也是memory,就是我那记忆那么多,你他那个memory一旦拉长了以后,你用谁都可以。 - -**[00:48:21] 发言人 0**:所以说从这个角度来说,你你你我觉得腾讯是好像找到了他自己的一点,自己在这个里面的一点价值。 - -**[00:48:30] 发言人 0**:全打开,而且我也看了一下他跟飞书,跟那些都打开,而且他stea里面现在慢慢在接,像美团的那个什么给他接了。 - -**[00:48:39] 发言人 0**:然后那个呃当然首先是微信体系里的,然后未来的京东我估计也会给他接。 - -**[00:48:46] 发言人 0**:然后慢慢的就除了阿里体系那都给他接,还有那个叫什么,你们那个点定票的那个携程没有,但是那个叫什么,还有个定票的那个叫什么那个叫什么,都给他开放了,去哪里? - -**[00:49:03] 发言人 6**:好像要去哪里去是啊。 - -**[00:49:05] 发言人 0**:就是携程的,也是携的是吧? - -**[00:49:07] 发言人 0**:另外一个。 - -**[00:49:08] 发言人 7**:品牌是吧? - -**[00:49:09] 发言人 0**:对飞猪对飞也开过了。 - -**[00:49:11] 发言人 5**:飞飞猪飞哪里? - -**[00:49:13] 发言人 5**:飞猪在哪里? - -**[00:49:14] 发言人 0**:是所以说后来未来这个哈就是呃本地算力要多少? - -**[00:49:18] 发言人 0**:然后龙虾的目的是啥? - -**[00:49:20] 发言人 0**:我们我们其实我们现在想着那天写的,我们写的,我们的核心目的就是做to b的腾讯,就跟我觉得肯定差就不多了。 - -**[00:49:30] 发言人 0**:做to b的腾讯就类似于比他做的更更细一点,或者更更深入B一点,就这个意思。 - -**[00:49:37] 发言人 0**:你们可以好好看看用。 - -**[00:49:39] 发言人 6**:现在看这个周末我也在看他的28件事间的些统功能,其实他他确实是多变的,但是腾讯大了,我们可以做。 - -**[00:49:47] 发言人 0**:一个小一点。 - -**[00:49:48] 发言人 0**:然后你们赶快把H 20这个事就再说了,H 20赶快搞清楚,我谁跟我说的要用H 20,要要要用要用那个算力不够。 - -**[00:49:58] 发言人 0**:刘静你给我说的哪个算力不够。 - -**[00:50:01] 发言人 6**:你自己云那测试这是什么? - -**[00:50:03] 发言人 0**:对,但是你们他妈都搞不清楚一台G 20服务器到底多少算力,我操你妈的下来赶快去弄。 - -**[00:50:12] 发言人 0**:我那半台够不够,我也说不清对不对。 - -**[00:50:14] 发言人 0**:然后他妈的还有一个,为什么我心里其实你们,但是我认为我问这个问题你们根本就不行。 - -**[00:50:22] 发言人 0**:我对你们视秒怀疑,我们也想招人,为什么为什么人家用了6台? - -**[00:50:27] 发言人 0**:为什么it部能用一台? - -**[00:50:28] 发言人 0**:为什么人家肯定是说了的,人家肯定是肯定给紫薇讲了,紫薇同意的。 - -**[00:50:34] 发言人 0**:为什么为什么人家比我们提前那么多,我们还不知道,到现在我们在用了我们一药药只能要到0.5台,因为我没有说法,我不知道那人家一段瓶的烟还在干嘛,为什么要流态,而且用而且还要用干嘛? - -**[00:50:52] 发言人 0**:原子弹抛光。 - -**[00:50:57] 发言人 0**:人家已经很重视那个事儿了,我们现在是慢慢的在一点一点的闪烁,像游击队一样。 - -**[00:51:04] 发言人 0**:今天我们需要不给也行,就像你手下的,我估计游击手下的那些研发也是七哥我们需要,不给也行。 - -**[00:51:12] 发言人 0**:七哥说那你报点账,行,报点账,我顺带报,我洗脚他也报了。 - -**[00:51:17] 发言人 0**:行,反正都是报账的。 - -**[00:51:18] 发言人 0**:Talking, 你看你都是一个那种叫闪烁型的,知道吧? - -**[00:51:22] 发言人 0**:那你游击队、铁道队闪烁一下,你得规模化,也就咱说清,咱就成为定制度,咱们就按流程来,咱不能闪烁的那是艺术家,对不对? - -**[00:51:33] 发言人 0**:那不是那个industry,不是产业,是artist,是艺术机构。 - -**[00:51:40] 发言人 0**:我说对了,咱实话实说,所以你要求你底下也是一样的,不要给你闪烁,一旦要话闪烁。 - -**[00:51:52] 发言人 8**:其他的就没有什么。 - -**[00:51:54] 发言人 8**:然后无人机那个项目的话是确实南岸移动他们也还没有约到。 - -**[00:51:59] 发言人 8**:然后的话大疆的话上周这周的话,周一的话,宇航已经去参加他们那个培训去了。 - -**[00:52:06] 发言人 8**:然后他说入库的事情的话,他们应该是在六月份之前就会有一个正式的反馈和然后it硬件的话,上周反而还有个消息,就是我们不是也放了一台机器给答案,就是王春他们那边也在用。 - -**[00:52:23] 发言人 8**:他们上周五的时候说要跟我讨论一下这个事情,他们用了一段时间里,他们还有些感觉,对,这周要给我打电话。 - -**[00:52:35] 发言人 0**:核酸按例用吗? - -**[00:52:36] 发言人 0**:你在用核。 - -**[00:52:37] 发言人 5**:酸也得都在用。 - -**[00:52:38] 发言人 5**:我们看得到。 - -**[00:52:39] 发言人 0**:数据就是简单化,还要简单扫码,然后还是这个算力怎么分配。 - -**[00:52:45] 发言人 0**:其实我们最重要的前台的表现方式其实就是一种,主要是还是后台就私有算力,公有云算力怎么去分配。 - -**[00:52:57] 发言人 8**:其他的事之类的。 - -**[00:52:59] 发言人 0**:腾讯现在给我们的那个他那个龙虾给我们的机会,给我的机会就是要不就挂私,要不就挂公们。 - -**[00:53:07] 发言人 0**:但是他有一个东西让我觉得有点意思,就是他没给他的龙虾的,他所有的都取了名字,谁的,他自己的叫凹头,他自己都没有起,他自己的。 - -**[00:53:21] 发言人 5**:在里面肯定有东西的。 - -**[00:53:23] 发言人 5**:我他自己应该是有几个模型,他会他会自他会那个动态调度。 - -**[00:53:30] 发言人 0**:你要做什么事? - -**[00:53:31] 发言人 0**:我讲如果这个模型我刚才如果这个存在,就to这个存在。 - -**[00:53:38] 发言人 0**:而且也就换句话说,刚才我说腾讯未来说这个模型,不管腾讯未来可能就是这个skill member里,可能还有一点auto,或者我们未来的也是auto。 - -**[00:53:51] 发言人 0**:因为你凹to这个东西,他妈的就凹不清了,我操你这儿有哪儿是吧? - -**[00:53:56] 发言人 0**:你给他,你包起来你不就可以了吗? - -**[00:54:01] 发言人 0**:对,因为auto是一个积分,那个deep是0.8个积分,我记不住了,我学们看看只有auto是一个积分,就他按2000个积分来说。 - -**[00:54:11] 发言人 5**:现在这个他通用的做法是这样的。 - -**[00:54:14] 发言人 5**:大家比如说他有个机械,机械一般就是乘以1,然后其他不同的模型它的。 - -**[00:54:20] 发言人 0**:倍率就可能线没问题,但他取的。 - -**[00:54:23] 发言人 5**:相当于他来给你自动规划,然后里面可能就叫他自己的他最好的模型。 - -**[00:54:29] 发言人 0**:我也没问题。 - -**[00:54:30] 发言人 0**:你刚才说了他可能做了弹性调度,那如果他们调了几个模型的话,那我觉得就有。 - -**[00:54:36] 发言人 8**:有有意思了。 - -**[00:54:37] 发言人 8**:是这样,他现在都是这样,我现在用的这个也是这样,我现在我还在用那个cloud code,我现在就可以这么跟他讲,我说我问你正常的问题,你就走deep。 - -**[00:54:50] 发言人 8**:如果我扔给你的是一个图片,因为我现在我买了那个小米的那个模型deep,现在是没有多态的。 - -**[00:54:59] 发言人 8**:我说我给你的个模图片,你就去走小米的态,帮我把这张图片认出来,我给你20张,你就帮我认20张。 - -**[00:55:07] 发言人 8**:我说如果你要编程,因为现在小米那个图标好用,小米充电。 - -**[00:55:13] 发言人 8**:小米我我。 - -**[00:55:14] 发言人 7**:我昨。 - -**[00:55:14] 发言人 0**:天用那个用那个用那个奥拉玛的什么,那那个那个不行,跟我带,我看那图片,我让的认了几张大屏包。 - -**[00:55:24] 发言人 6**:我们说做本地知识库,本地知识库骤它你所有的文件登记它也经过几个步骤。 - -**[00:55:30] 发言人 6**:比如说第一个步骤就是那个格式转换,格式转换过后还有什么ocr然后下面的话其实每个步骤都有一些擅长模型在。 - -**[00:55:40] 发言人 0**:做这个事情。 - -**[00:55:41] 发言人 0**:他都都会都会都会调,如果就你说的他自己,如果你一个模型,一个龙虾,一个底层龙虾带有的龙虾龙虾它给你去配这个技能,然后用这个。 - -**[00:55:53] 发言人 6**:那我们后面就他后面机械化肯定会到现在的模型大概比较粗暴,让做所的事这个模型。 - -**[00:56:00] 发言人 0**:你比如说我未来我建的这个本地模型,它就是本地模型。 - -**[00:56:05] 发言人 0**:本地模型我选一份,就跟我们选那个英伟达的芯片,选谁的卡一样。 - -**[00:56:09] 发言人 0**:你就是做传的,然后调用,那就是你的能力,就像华三现在说的,我的交换机的能力,我的调用我的我的我调用什么华为说的我的那个他妈的个淘理论,我的时间压缩就是你调用出结果。 - -**[00:56:23] 发言人 0**:用别人的一个是结果,一个是我现在搞懂了,一个是速度,一个是质量,一个速度快二一个质量高。 - -**[00:56:31] 发言人 6**:这两点其实我们都可以拿来是吧? - -**[00:56:33] 发言人 6**:就有机会他有些小东西其实后期都可以加入到个人的设备地。 - -**[00:56:39] 发言人 8**:他不用去调调用调用,然后因为我也写很多程序,然后现在那是国内的程序,就包括那个cloud的那个程序,它实际上都有很多限制。 - -**[00:56:49] 发言人 8**:但是在现在国内和国外就发了很多那种叫安科手无限制的模型。 - -**[00:56:54] 发言人 8**:就是你给他说什么,就是你问他一个黄色的问题,他也会回答你的那种模型。 - -**[00:56:59] 发言人 8**:然后我就跟他说,我说有一些程序你就必须要去调这个模型,然后他就去调这个,比方去写那种网络爬虫。 - -**[00:57:07] 发言人 8**:网络爬虫你问cloud code,他是不会给你写的,但是你把它下来装在本地上,你说你写爬虫的程序就用这个模型去写,但啪就给你写释。 - -**[00:57:17] 发言人 0**:因为来还有流氓模型。 - -**[00:57:18] 发言人 8**:这个模型还有很流氓,他实际上就是龙虾,或者你腾讯那个clou他就当一个总教授,他看到图片过来他就扔给小米,看到什么爬种过来,他就扔给了个本地的东西,他就这么干。 - -**[00:57:32] 发言人 0**:我感觉这个速度其实挺快的,我感觉这个真是你这个像你们当时说的这个叫是吧,说这个拿到不特殊,现在你看腾讯大厂都能转身转的,别说信不成。 - -**[00:57:44] 发言人 0**:对,腾讯现在说。 - -**[00:57:45] 发言人 8**:他已经意识到了这个事情。 - -**[00:57:48] 发言人 8**:其实钉阿里好像也意识到。 - -**[00:57:50] 发言人 6**:腾讯前其实不就很简单,怕怕他流量不可改变的,所以拼命现在这的事情就是导致他的流量。 - -**[00:57:59] 发言人 8**:所以我们以后我觉得这个机会还是中小企业有零桌面的企业本地化算力。 - -**[00:58:05] 发言人 8**:我觉得这三件事情这里。 - -**[00:58:06] 发言人 0**:面要向腾讯学习。 - -**[00:58:08] 发言人 0**:因为腾讯既他走的那个路不就是模型也不错,我操他妈的反正有一点自己在那边参考。 - -**[00:58:15] 发言人 7**:有一点,然后他说还是做入口,腾讯还是关。 - -**[00:58:19] 发言人 0**:键的话很神奇。 - -**[00:58:20] 发言人 0**:他把那个混那个名字取了,就他妈混。 - -**[00:58:23] 发言人 6**:然。 - -**[00:58:25] 发言人 8**:后。 - -**[00:58:26] 发言人 0**:他那个Q里。 - -**[00:58:34] 发言人 6**:面没有会员。 - -**[00:58:43] 发言人 0**:自他他好吧,继续,我觉得要快点。 - -**[00:58:47] 发言人 0**:有时候我们说的那个点状的东西,我觉得尤其是作为像刘静你们部门leader,或者说你晚人的,你就说过的东西一定要什么的,一定要赶快你回你,你反馈我的越多,那我就是吧嗯嗯,这未来咱们整个组织构架在变。 - -**[00:59:03] 发言人 0**:以后不开门了,真的是这些我就给我的我就给我的那个楼下说,我找刘静,他能救这些事。 - -**[00:59:11] 发言人 0**:到了,你找那能刘静到医院去,你得把memory都记下来了。 - -**[00:59:15] 发言人 0**:你上次说了什么? - -**[00:59:16] 发言人 0**:上次说候比我记得还清楚。 - -**[00:59:18] 发言人 0**:你上次说了什么? - -**[00:59:19] 发言人 0**:上次说你说了三次,我说你看我问了刘居三次,刘居三次怎么回答了? - -**[00:59:24] 发言人 0**:三次前他这么回答三次。 - -**[00:59:26] 发言人 6**:中间我操,我说行了,咱就理解了。 - -**[00:59:28] 发言人 6**:昨天晚上我发了个架构,他们还有互爱讨论的,讨论的。 - -**[00:59:34] 发言人 8**:就是像先拿。 - -**[00:59:35] 发言人 0**:完。 - -**[00:59:36] 发言人 6**:我认为发到群里那个架构就是要实现你那个想法。 - -**[00:59:41] 发言人 0**:那我这个想法,你看黄那个我那个那个我。 - -**[00:59:45] 发言人 0**:什么一中国一中国一不是也说了么? - -**[00:59:47] 发言人 0**:我觉得很有道理。 - -**[00:59:48] 发言人 0**:其实就是组织构架上小公司的那个华智做不了。 - -**[00:59:52] 发言人 0**:如果我没有如果我没有突破点,就是一个是华智做不了这个事是吧? - -**[00:59:56] 发言人 0**:我不做算法我就做龙虾,我就做这个调用。 - -**[00:59:59] 发言人 6**:不做算法我们会去做算法。 - -**[01:00:00] 发言人 6**:他们是不是还在做国安那些大的说算。 - -**[01:00:03] 发言人 0**:我跟你讲整骗人的这里面有一个很核心的问题,还是那句话叫要资源护犊子。 - -**[01:00:08] 发言人 0**:如果有那么多公算法,他就可以护他的犊子,他就要得到资源,这就是一到理想的,一到你选举我就知道他拉什么。 - -**[01:00:15] 发言人 6**:我看海开拉拉好像也在公安的大模型方面到处卖。 - -**[01:00:21] 发言人 6**:研。 - -**[01:00:24] 发言人 4**:是。 - -**[01:00:27] 发言人 0**:华智后的的然脑就给你了,我操,就这几。 - -**[01:00:51] 发言人 6**:那好,华山华鸿蒙客户端这个事情基本上开发完毕了。 - -**[01:00:57] 发言人 6**:最后的流程6月30号我们华山那边会对外发布了。 - -**[01:01:03] 发言人 6**:然后宇豪上周在在和研发一起做我们的无人机平台和集运平台一些功能的梳理对接,包括可行进度线,输出一些规格的对接清单。 - -**[01:01:17] 发言人 6**:然后他这周开始去,那个是下周,还是这么15号,好像就是今天,他去开设那个无人机学习,他这周是线上,我想起来他是线上学习,一周学习一周通过考试了才能去线下,他要求还挺严的。 - -**[01:01:33] 发言人 0**:那大家那边对,肯定有是学什么,就是无人机那个产品市场这些。 - -**[01:01:39] 发言人 8**:东西说钱端它的要求是我们自己要,以后们就客你让宇。 - -**[01:01:44] 发言人 0**:航写个东西,什么记录一下,给我一个报告。 - -**[01:01:48] 发言人 0**:好的,那看看好的,最好是他。 - -**[01:01:55] 发言人 6**:比我。 - -**[01:01:57] 发言人 0**:在做开。 - -**[01:02:02] 发言人 6**:华润这边基本上还是在按照步骤在走,这七月份要投标,然后和徐凯那边在沟通一些硬件的一些事情,这个自听语也是因还是按照步骤走。 - -**[01:02:18] 发言人 6**:我们计划是否。 - -**[01:02:19] 发言人 3**:可以涉及到一的协议。 - -**[01:02:22] 发言人 6**:对,也涉及到个本来那个证据的更新,就是要在七月份七月初的时候拿出来。 - -**[01:02:28] 发言人 0**:你能不能基你能不能你做一款,我上次那天说的,能不能做一个,就还是做在手机上,就是我们。 - -**[01:02:36] 发言人 6**:自己的用,你比如动作。 - -**[01:02:39] 发言人 0**:再做不端,做那个漏洞,还有那个灭光药,他们每天不要求必须用,就是每天要求他们就是开场。 - -**[01:02:50] 发言人 0**:因为手机本身,其实这个记录这个事嗯没那么工作记录,是吧,手机本身的记录其实没那么那个。 - -**[01:03:00] 发言人 5**:那个我们会先做那个电脑版,先把电脑版做我的要求。 - -**[01:03:04] 发言人 0**:我就希望做手机,因为能经常有时电话你。 - -**[01:03:08] 发言人 6**:的电脑你用qq做的晚的。 - -**[01:03:10] 发言人 6**:对,那都是跨平台没问题,手机不行,要适配一下是吧? - -**[01:03:15] 发言人 6**:手机不? - -**[01:03:15] 发言人 6**:手机要重新卖。 - -**[01:03:16] 发言人 6**:对,主要是针对那个电脑。 - -**[01:03:18] 发言人 0**:对你你手机做你也这个本地解析,与那个电脑,电脑本地也是装了个小模型,给他们装个小模型,本地自己解析是吧? - -**[01:03:30] 发言人 0**:现在不好那个语语音转文字的解。 - -**[01:03:34] 发言人 6**:析就是本地解析。 - -**[01:03:36] 发言人 0**:不要这些电脑。 - -**[01:03:38] 发言人 6**:他们手上电脑手一点的芯才行。 - -**[01:03:41] 发言人 5**:这个就适配量就有点大。 - -**[01:03:44] 发言人 0**:所以我们现在百分。 - -**[01:03:46] 发言人 6**:百跑得不中低端的跑不动。 - -**[01:03:50] 发言人 6**:Vivo的那个vivo的那些本地转入要旗舰芯片,跑跑终端芯片都跑动,终端芯片直接把各功能淹光。 - -**[01:03:58] 发言人 0**:这么说,咱们员工的手机基本上跑得动。 - -**[01:04:01] 发言人 6**:我的苹果是百分之百跑的动的,苹果跑得动。 - -**[01:04:05] 发言人 6**:但是安卓比安卓至少要3000块钱以上的手机才能跑的。 - -**[01:04:10] 发言人 6**:三四安卓的一两千块钱手机。 - -**[01:04:12] 发言人 0**:我觉得我们的统序可能3000块钱手机还有的。 - -**[01:04:15] 发言人 6**:这个现在是用没用那么贵的。 - -**[01:04:17] 发言人 0**:这个我觉得还是要手机上录下来,因为我我我想什么,就是他们手机上录下来这些东西,还是作为咱们这个对,最后要首敛回来作为周报,作为日报。 - -**[01:04:28] 发言人 0**:这个日报上来以后就会就拿那个用来做分析,分析就要尤其是对你进且有用,还是那句话,人家每天跟客户说的什么,你坐在屋里你也不知道对不对,人家给你报的那经过人家脑子已经洗掉一大半了。 - -**[01:04:41] 发言人 0**:就是他记得他跟你说,然后或者他的idea,他的观点了。 - -**[01:04:44] 发言人 0**:那他观点他告诉你,其他不是他观点他一个都不会跟你说,他否定的东西他会告诉你吗? - -**[01:04:50] 发言人 0**:说我就这些东西我都否了,他会告诉你吗? - -**[01:04:53] 发言人 0**:他脑子已经就就把他脑子进化,已经是他只只做他他只只做他自己认为正确的事,所以你我觉得得把那个东西你收起来就了解,你要第一时间就了。 - -**[01:05:04] 发言人 7**:解客户了解。 - -**[01:05:05] 发言人 7**:等于说是全部接听电话了。 - -**[01:05:07] 发言人 0**:不是接听就是你工作,我要求你工作必须,你如果不工作,你很那我你你做了配置,你那你还谈了地置有没有这个录音? - -**[01:05:16] 发言人 6**:冯总可能要讨论一下,因为之前那个之前那个之前有很多公司这样干过,我也去调研过,这样干过。 - -**[01:05:25] 发言人 6**:他们还是要求那种客服的对话,要求您上上直接上传,然后他也要去。 - -**[01:05:31] 发言人 6**:最后这条路全部走死,因为下面的员工抵触非常大,直接不用直接。 - -**[01:05:36] 发言人 6**:其实昨天晚上我实计这个架构,我们悄悄的看把一些他在电脑上的一操作的一些对话进行脱敏,然后才张传我觉得已经做了做做到了最大程。 - -**[01:05:48] 发言人 0**:度的一个把控。 - -**[01:05:49] 发言人 0**:就这么说,原来我们收集信息,但你手里安全问题我也认可,我们看怎么来屏蔽。 - -**[01:05:55] 发言人 0**:这就很简单,你如果只是买云端面的事,咱俩只是聊云端面的事儿是吧? - -**[01:06:01] 发言人 0**:母亲妹面我觉得也可以可以咨询,是吧? - -**[01:06:06] 发言人 0**:那你那那那我问你那很多电话就说咨询告诉你问题,那不也咨询。 - -**[01:06:11] 发言人 6**:所以说我现在觉得第一步还是用龙虾来处理。 - -**[01:06:15] 发言人 6**:比如说他配合的一些配置班报单,还有的就是他本地龙虾的一些规话,可以将这些数据上传到企业。 - -**[01:06:23] 发言人 0**:企业你我来你做一个,你如果我说这个。 - -**[01:06:26] 发言人 0**:我见议你在户外做以个你就自动咨询系,什么意思呢? - -**[01:06:31] 发言人 0**:上次说那个小孩一个人管六个龙虾,我还是听还是很有感触的。 - -**[01:06:36] 发言人 0**:就是人家因为人家要问的方案问题,其实有时候问人,有时候还是还有个社会方就告诉你打开你就告诉他他哔哩吧啦吧啦说了一堆,然后听了以后交给那个总结,总结交给方案,方案交给写码,写码交给测试,全是脸。 - -**[01:06:54] 发言人 0**:这哥们儿就说我的目的,人家说万一说不清,他说我不做大生意,他说我的目的就是全部投化。 - -**[01:07:02] 发言人 0**:那从这个角度我觉得我们做一个无人化的,你比如说人家问的问题,我然后给他解决,那个还得做研发,我操咱们只是无人化的咨询,他说完,我马上我就给他出造方案。 - -**[01:07:17] 发言人 0**:你的方案我们认为这样就搭上推上我们的这个型号,推上我们这个机器。 - -**[01:07:22] 发言人 0**:然后这样搭上以后,流量什么都有了你先看一看,你如果不行,你的要呼叫人工,那你就做一个这个东西。 - -**[01:07:33] 发言人 0**:而且很有可能未来你也可能还真是不信人的新能源的。 - -**[01:07:37] 发言人 0**:你我现在开始逐渐有些信感。 - -**[01:07:39] 发言人 0**:如果是如果他里有知识库,我问他,我问你,你还不耐烦。 - -**[01:07:42] 发言人 0**:你比如举个例子,我问医生,我去医院,我问医生,他妈医生门诊他妈一堆人我不耐烦,我给你说三句。 - -**[01:07:49] 发言人 0**:如果你给个东西,我自己他妈问问,我自己问问我我我反复啰嗦,我多问问,你也回答的多一点,我觉得还好一点。 - -**[01:08:02] 发言人 0**:医院尤其是但我们这个也有,因为你要问配置。 - -**[01:08:07] 发言人 7**:对,医院是是是是。 - -**[01:08:10] 发言人 6**:我我们我们配我会配置没有问题。 - -**[01:08:13] 发言人 6**:但是你去训练这一个东西,这个权限问题,你现很容易把所有的资料都发走。 - -**[01:08:21] 发言人 6**:我这很吓人的,说实么他管控不到内部的资。 - -**[01:08:27] 发言人 0**:就是我前面这个流程要变革,你们跟你说了,A时代来了,不是一线,我操,我还我怀疑再过我十年,这小孩儿不在屋里打游戏,来去不应该,你就给我点碗面,然后整个然后领导他妈的要做事,于生也不是好吗? - -**[01:08:42] 发言人 0**:就告诉埃踢,埃踢告诉埃,你去你你你把你你到扒拉这几个公司,让他们每个把他们的方案给我做一个好,也啪啪找到你的研究,然他们也究问了一堆,然后给了五个方案。 - -**[01:08:54] 发言人 0**:好,这个可以,那下来再深入研究。 - -**[01:08:57] 发言人 0**:我跟你讲一定会做在这的,而且这个事他妈的会慢,我操十年时间。 - -**[01:09:04] 发言人 6**:对吧? - -**[01:09:04] 发言人 0**:不用时间了,不用好,那你不改吗你不改吗? - -**[01:09:08] 发言人 0**:听懂没有,你其他妈的他是。 - -**[01:09:10] 发言人 0**:而且现在还有一个,尤其是公有云那套,为啥不私有云为公云那个有点问题。 - -**[01:09:17] 发言人 0**:我们上次公云对紫光汇智评价很公云,不说那个技术叫什么叫叫叫什么叫叫叫什么什么什么什么什么O U R O U那个R U那个叫什么? - -**[01:09:45] 发言人 0**:豆包都有这个问题。 - -**[01:09:46] 发言人 6**:人家以后不一定信豆包。 - -**[01:09:48] 发言人 0**:因为豆包说个大的,他在找到豆包,说我在好找到豆包。 - -**[01:09:52] 发言人 0**:第一搜索就我知道紫光汇智了是吧? - -**[01:09:55] 发言人 0**:然后我再去跟紫光汇智的对接一下。 - -**[01:09:58] 发言人 0**:A对,可能是这样,因为豆包说谁好就谁好,这事情挺麻烦的。 - -**[01:10:04] 发言人 7**:我操,豆包的打案现在。 - -**[01:10:13] 发言人 7**:出来了。 - -**[01:10:13] 发言人 0**:不用那个东西。 - -**[01:10:15] 发言人 0**:所以好吧,你我们的构架的核心就是以龙虾工作为主。 - -**[01:10:19] 发言人 0**:你昨天晚上你们才讨论的,今天你又说不行,我操,我就觉得你那个那是啥东西,不是刚才我说这个,你说录音不行,他如果。 - -**[01:10:29] 发言人 6**:他肯定录音的,他录内那。 - -**[01:10:31] 发言人 7**:不人他愿用这个,那每个话录音录下你的。 - -**[01:10:36] 发言人 7**:好这。 - -**[01:10:38] 发言人 0**:个极了,你们。 - -**[01:10:41] 发言人 6**:的你们琢磨琢。 - -**[01:10:44] 发言人 0**:还是把工作你琢磨琢折磨望们交流的忘掉更次更多,而且我们他妈的我就要结果对我这种来舍事的人其实是个好事儿,其实对他们也是好事儿。 - -**[01:11:06] 发言人 0**:说白了你记录的时候,你用AI记录完,我免得我听错了,最后AI给我出一稿。 - -**[01:11:12] 发言人 0**:你从这个角度,你说你电脑里,你说你来,你说你你给我要说你用这个,你就不用记了。 - -**[01:11:18] 发言人 0**:他出的很仔细,然后出完以后所有的Y配置完,要是看看我刚才讲的问的跟他出的怎么样,那差不多。 - -**[01:11:25] 发言人 0**:那那么那对要的时间不是省了多少,还一个一个配。 - -**[01:11:29] 发言人 0**:我上次问过高耀,问高要说吴高要跟我说原话是我大量的时间就在跟人家谈配置做方案。 - -**[01:11:34] 发言人 0**:你本身这个工作就可以让他做,我让他主动做,不是让他被动,让他主动的觉得这个事要把它记录下来,那就不是法律问题,是他个人的问题了。 - -**[01:11:43] 发言人 0**:他个人觉得我给你个谈话,我想我记下来。 - -**[01:11:46] 发言人 3**:然后我做一个A总题,不要从全程先听角度出发。 - -**[01:11:49] 发言人 3**:就是说一个配置助手。 - -**[01:11:51] 发言人 0**:对类似于。 - -**[01:11:52] 发言人 3**:客户的需求的语音给甩上去了,就是自动。 - -**[01:11:56] 发言人 0**:生成配置。 - -**[01:11:57] 发言人 0**:他愿同要来,他配置他愿意,他自己送给他,不需要你。 - -**[01:12:02] 发言人 0**:他这个太简单了,他肯定不愿意给你寄录音器录音的,这个是百分之百吗? - -**[01:12:08] 发言人 0**:但是你如果是个人行为,你又把他压录下,你给他开一个录音,然后你一边聊一边记,记完以后,他就出方案。 - -**[01:12:15] 发言人 0**:那我觉得微光要那是个人行为,我们这个龙虾里有这个东西,我要从街听,叫我们龙虾本身做这个东西,实际上微光耀你自己在。 - -**[01:12:24] 发言人 6**:里面说的也就光耀,只不过是客户说了,他也算了。 - -**[01:12:27] 发言人 6**:他我感觉是提跟他提升不了什么效益,因为他他他一个需求来做配置,说实话他一分钟就做完,他他他花的时间不是在做配置上,而是客户在跟他沟通。 - -**[01:12:38] 发言人 0**:是对,那不就是他沟通他听懂,这不记录下来。 - -**[01:12:42] 发言人 6**:沟通的结果记录下来还要他发话,他他要去回馈,他要去询问客户。 - -**[01:12:48] 发言人 0**:他询问他可以问询问他,他说咱俩加个微信,这个我微信一个一个告诉你,做好以后他就转发一下。 - -**[01:12:56] 发言人 6**:那你那我们省的前端配置的人又又需要很多人去维护这个网下的技能。 - -**[01:13:02] 发言人 6**:所以你这个逻。 - -**[01:13:03] 发言人 0**:辑本身就跟你昨天晚上做的事是错的。 - -**[01:13:06] 发言人 0**:你昨天晚上做的,这时我们要龙家的技能,他妈的要省人。 - -**[01:13:11] 发言人 0**:你现在又这么说,你们那骨子里根。 - -**[01:13:13] 发言人 6**:本就没有变化,我操,说白了我们是要。 - -**[01:13:16] 发言人 0**:看我去搞文学替换。 - -**[01:13:18] 发言人 0**:我不是我我跟你讲,你真的你骨子里没有变化,你现在的维护,他就跟你买了个汽车,你要他妈头头一个撞人是吧? - -**[01:13:27] 发言人 0**:就跟个现在这个龙虾这个名字有一个有一个词叫有一个尼,这个叫个个词叫服样。 - -**[01:13:33] 发言人 0**:我们摆着,我们驯服他,我们天在管着弄个把把车弄还弄很多。 - -**[01:13:38] 发言人 0**:我跟你讲,你最终的结果就是他肯定自由,你没有资格管理他。 - -**[01:13:43] 发言人 0**:现在你管理他,只不过因为你好像觉得你你你自己搭了个东西,你好像觉得半成品你要管理,最终是他管理你,你就是这样的。 - -**[01:13:56] 发言人 0**:你找另外一个A管他,你自己你找你你找个大爷管你找个大龙虾还小龙虾不就完了吗? - -**[01:14:02] 发言人 0**:大龙虾不用小龙虾的模型,大龙虾就单独的支库,单独的scale。 - -**[01:14:06] 发言人 0**:就是干嘛就跟那个保安一样,每天记着,每天出门告诉你,你带着红头拿着手电走,这就是你主要干的。 - -**[01:14:13] 发言人 0**:你别干人家那个方法,但是你就干人家违规,你就干人家翻不翻墙,你就干人家小熊林里揣着那耍流氓,这大保安对不对? - -**[01:14:21] 发言人 0**:你搞一个大保安方式不就完了吗? - -**[01:14:23] 发言人 0**:然后他有他新的眉目,他的眉门跟底下没毛不一样。 - -**[01:14:27] 发言人 0**:他的memory门全是违规,全是你做问题的错误,他给你站好对方的。 - -**[01:14:35] 发言人 0**:你们下去好吧。 - -**[01:14:37] 发言人 3**:我觉得还是其实你把那个ct配置器给下了就会提高效果。 - -**[01:14:45] 发言人 3**:都不用跟我说的,直接到录音。 - -**[01:14:48] 发言人 3**:你把配置器下了,我问语音,我说配个多少卡的那个那个服器怎么样? - -**[01:14:57] 发言人 3**:如果配置器高。 - -**[01:15:00] 发言人 0**:这个效率不是我觉得我觉得是要整结做的。 - -**[01:15:03] 发言人 6**:做那配置其实不是过。 - -**[01:15:05] 发言人 0**:我觉得不是配,我觉得是要总结,我觉得是要反复去拉锯。 - -**[01:15:09] 发言人 6**:要最好是花的时间。 - -**[01:15:11] 发言人 0**:不是花在选的那种配置,他就拉,就总结,就最好加微微微过,只要你反应快,人家还愿意加微信。 - -**[01:15:19] 发言人 0**:我有时候给人家打电话,他妈的我我来我加个微信聊一啥,因为打电话我语音表达这些东西实时性。 - -**[01:15:25] 发言人 0**:第二我脑子里可能当时我因为想表达的思想不一定准确,所以他给我回答的东西也是默默糊。 - -**[01:15:32] 发言人 0**:微信以后我每次他说我要我说我要我看看,我想想,可能我问这个问题的角度不对,我再换一个角度问,然后问完以后我再换一个角度问我跟那个医生有什么问的,我加了微信以后,我就会这得来回以后反复了。 - -**[01:15:46] 发言人 0**:而且在这微信你加微信我最重要的一点是什么? - -**[01:15:49] 发言人 0**:就失效了。 - -**[01:15:50] 发言人 0**:因为我问个问题,人家半天不回,那我就没兴趣了。 - -**[01:15:53] 发言人 0**:所以你如果加了微信,我保证你这个五分钟10分钟之内肯定会。 - -**[01:15:57] 发言人 0**:就是我现在问,你先你等一等,我保证你十分钟肯定回。 - -**[01:16:01] 发言人 0**:然后他爸加微信了,他哔哩吧就写进去了,不管是语音还写进了,你马上叭啦,你后面你那个AI就处理了,处理完了以后给了他一套,然后顺便看一下。 - -**[01:16:10] 发言人 0**:这回答怎么,还行,你就点一下,或者你经过注意转发一下。 - -**[01:16:14] 发言人 0**:等我操,这他妈就比你编文字,而且我跟你讲,现在我打字好,我就挺烦的。 - -**[01:16:19] 发言人 0**:我原来没注意过,就昨天晚上打到一晚上死打字的那个技巧,他又得找回来,当时觉得X C C现在找不到盘了,就是语音多了。 - -**[01:16:33] 发言人 0**:我的我第一个想法,一个语音,我准备找一个麦麦旁边。 - -**[01:16:40] 发言人 8**:我真的你朋友你那个手机和你腾讯那个手接了。 - -**[01:16:45] 发言人 0**:那你就我知道我已经这么动了,但是我发现我还是台着接个语音也是更好的方式。 - -**[01:16:52] 发言人 0**:因为我不讲,因为他这两条他俩苹果很聪明,他是两个。 - -**[01:16:56] 发言人 0**:他的sk里面我发现他走的两条他的两条路,就你语音说的那个和他那个台式机的那两个然样别因为这他没跟你完全混合。 - -**[01:17:07] 发言人 8**:那就有点理解意思。 - -**[01:17:09] 发言人 8**:我现在比方。 - -**[01:17:11] 发言人 5**:不同的渠道,它是隔离的。 - -**[01:17:13] 发言人 6**:反正现在我客接我说你我在。 - -**[01:17:16] 发言人 8**:电脑上装个,再下载一个什么模型不对。 - -**[01:17:19] 发言人 8**:所以我想说的是什么? - -**[01:17:22] 发言人 8**:我们未来。 - -**[01:17:22] 发言人 0**:很有可能就是回微信语音,就是不用那个,这是第一第二我再说一个反弹的,其实看微信是不愿意听语音的,愿意看文字的对,因为前段间咱们很多人沟通很多语音,我就愿意把它转成文字。 - -**[01:17:39] 发言人 0**:因为我看文字的速度比语音快,听语音的速度反而慢。 - -**[01:17:44] 发言人 0**:是外你除非是为了听他关怀的话,你想听听他声音,听他感情。 - -**[01:17:49] 发言人 0**:所以你看情绪价值,所以你看用语音去说,然后用眼睛去看。 - -**[01:17:55] 发言人 0**:这个后面是这样的,所以你微信一下,那看就问看们我们研究,我说的对吧? - -**[01:18:03] 发言人 0**:我觉得看语音其实是不太愿意的。 - -**[01:18:06] 发言人 0**:因为有时候你你你那个你拿个语音听我操一看50秒,人家给你说555 10秒。 - -**[01:18:12] 发言人 6**:你烦省的很影响。 - -**[01:18:14] 发言人 6**:也应该是我都是。 - -**[01:18:15] 发言人 0**:默认直接转文字,我对不对? - -**[01:18:17] 发言人 0**:你转文字以后你看的快对不对? - -**[01:18:19] 发言人 0**:秒,所以你看这以后就说语音转文字,我操真他妈的以后键盘都没了,就是拿着哔哩吧啦在说。 - -**[01:18:27] 发言人 8**:我操说以后给我一个字,说基本。 - -**[01:18:30] 发言人 0**:上已经不字,我就对,那从这个角度我就问你,你们就你你就解决那个解决他们那个。 - -**[01:18:36] 发言人 0**:如果他们纯粹是为了那个语言,对语言的回答就是为了回答。 - -**[01:18:41] 发言人 0**:那我觉得通过让他文字化,让他文字化也是个属性,也是个能力。 - -**[01:18:46] 发言人 0**:因为他让他文字化那边就文字化那边看起来简单,然后这边他说的也快,或者刚才说的他稍微改一改。 - -**[01:18:55] 发言人 0**:我就我觉得你们朝这个方向去,真的,你如果A不解决我们所有的流程是没有机会的。 - -**[01:19:07] 发言人 6**:好,上周就是云桌面这边把把那个大架构输出,又又讨论一下知识库的这个选型和架构。 - -**[01:19:17] 发言人 6**:目前看到我们可能用那个那个呃诺。 - -**[01:19:21] 发言人 5**:这可能再讨论一下,我感觉有点问题。 - -**[01:19:25] 发言人 6**:对,因为那我们再看一下,但是你基于那个那个最基础主要是做的话,那工作量太大了。 - -**[01:19:33] 发言人 5**:他不是这个意思,就是说我是觉得以后我只有一个入口,我不可能只是后一个入口。 - -**[01:19:39] 发言人 6**:然后是是一个入口是一个入口,是没没说对,是一个入口。 - -**[01:19:43] 发言人 6**:就是以后知识故事要藏在下面的,就是有所有的东西都不能够暴露给客人。 - -**[01:19:49] 发言人 5**:所以说其实你你那你选择那个它,其实它的价值和意义是在于它是一个完整的字出上面。 - -**[01:19:56] 发言人 6**:完了之后,你就上次你那个选型,我跟方讨论一下,估计工作量太大了。 - -**[01:20:01] 发言人 6**:桌面,而且我也看过了。 - -**[01:20:02] 发言人 8**:并且我觉得这里头最关键的一点是这个知识库一定要和AI的结合非常友好。 - -**[01:20:09] 发言人 8**:因为人只会这样,就人你比方说生长他以后他查他只会说我上周的发票你帮我看一下。 - -**[01:20:17] 发言人 8**:他不会去打开界面说我我我自己去选什么时间的发票。 - -**[01:20:21] 发言人 6**:他是他知识库,他知识库就是完善的什么,就是整个的产体,他都有叫什么都有。 - -**[01:20:31] 发言人 8**:他只会和AI打交道,就是我们所谓的人的接口,只是AI是我不会在乎去打开一个界面去怎么样操作这个事情。 - -**[01:20:44] 发言人 6**:界面还是要有的,我说逃不开界面的,光对话这个产品会作死的。 - -**[01:20:50] 发言人 6**:不是每个人都都都都都都习惯命令行对话的形式去输出所有的东西。 - -**[01:20:56] 发言人 8**:不就重要的。 - -**[01:20:57] 发言人 8**:我我我不是说你比方报账你是有界面的,我觉得我是认可。 - -**[01:21:02] 发言人 8**:但是其实对人的操作来说,你比方说我操作这个东西,我就不愿意去打开我的知识库去查我上上个月或者上上上个月或者什么时候的一个什么信息。 - -**[01:21:15] 发言人 8**:我一定是一句话问没冤,你帮我调出来。 - -**[01:21:18] 发言人 6**:一定是这个逻辑。 - -**[01:21:19] 发言人 6**:他调出来过后,你还是要给他一个界面,他会去做一下他自己的一些整理。 - -**[01:21:25] 发言人 6**:是这个我还是认真调研一下,包括一些非非研发人员的常规使用者,他还是要这个东西,百分之百要这个东西。 - -**[01:21:32] 发言人 6**:你不可能让他命令行式的去有纯文本的输出,让他去整理的他个人的知识库和上报企业的知识库,包括一些权员设置和目录的一些内容的一些调整,它都需要一些图形化界面的淘派。 - -**[01:21:49] 发言人 8**:这个我觉得下来再讨论,这个我有不同的观点。 - -**[01:21:53] 发言人 6**:这是逃不开你你要你要问。 - -**[01:21:55] 发言人 8**:因为你你比方说你财务,你如果有一大堆界面,然后以后C M你也有一大堆界面,实际上我们做的这个东西就。 - -**[01:22:04] 发言人 6**:不是一个A化,这个界面其实很好生成,但是你不跟他个界面,普通人他不会用,用不了的。 - -**[01:22:11] 发言人 0**:好,下来,继续。 - -**[01:22:12] 发言人 6**:然中端管理这里采购办法和法务采购开了会,到时候刘亚群会约领导上会审核。 - -**[01:22:20] 发言人 6**:然后终端这边再进行刚刚说的那些所有证书的更新。 - -**[01:22:25] 发言人 6**:因为他是今年的一个新规,他所有的节能和能效要求重新做认证,所以我们所有的终端在在然后那个mp接口的mc p接口上周机个这边的研发已经完成了。 - -**[01:22:39] 发言人 6**:完成过后其实也发现了一些问题,就是前期我们在所有的vdi的商务和商务两个商务在使用这个系统的时候,实际上他可能线下做了本台账,有些发完货的一些数据其实没有在系统上更新。 - -**[01:22:56] 发言人 6**:这是更新完P接口做完后,我们上周四和5的时候发现这个问题。 - -**[01:23:02] 发言人 6**:今天上午那个商还在补一些数据,补完今天上午我们可以使用这个龙虾来进行统计。 - -**[01:23:09] 发言人 6**:看一下,差不多有五十多个项目在补一些数据,然功能上已经完完全完全完成了。 - -**[01:23:17] 发言人 6**:我这边就。 - -**[01:23:18] 发言人 0**:是龙虾用的还是那个boat,那不来对你用谁都无所谓。 - -**[01:23:22] 发言人 0**:我知道,那我们就这么说,我们一来的话就是这个,比如说我们这个在云的面里面,我们还是在胖公。 - -**[01:23:30] 发言人 6**:园里面做都可以做。 - -**[01:23:32] 发言人 6**:我们现在不分说话都是终端,没什么关系,没关系,只要有个桌面就行。 - -**[01:23:37] 发言人 0**:你还是主要他们那还是可以利用本地的计算。 - -**[01:23:41] 发言人 6**:利用本地的一些这个都一样。 - -**[01:23:43] 发言人 0**:它无用微di就调用服务器的计算,你调。 - -**[01:23:46] 发言人 0**:如果我是觉得你像龙虾这种,因为有时候还是要跟本地电脑之间的,你比如我们在装电脑装了龙虾,这个龙虾它本身就是一个不叫病毒,它本来就是一个非鸭群。 - -**[01:24:00] 发言人 0**:你如果说是你如果是预装龙一下,比如我们把东西都预装在我们的胖龙管里面,那个是不是会但你遇到的服务器也可以,我径得是两条路径,因为遇到的服务器的国架和遇到他们的生产国家是两回事。 - -**[01:24:19] 发言人 6**:我觉得你可以可以思考一下。 - -**[01:24:21] 发言人 6**:所以说最终这个产品做出来,对龙山的本地的权限,你要去做很多工作没问题。 - -**[01:24:26] 发言人 0**:就是一般不然客户敢用的,不然的不然客户敢用。 - -**[01:24:29] 发言人 0**:正是因为不敢用电脑,所以才敢用我的朋友端。 - -**[01:24:32] 发言人 0**:因为我这种C. - -**[01:24:33] 发言人 6**:陌我这种陌人我做来做的管理,所以说要去做这些事,软件方面要去开发就是对吧? - -**[01:24:40] 发言人 1**:因为你预装在我们把电脑拿过来。 - -**[01:24:43] 发言人 0**:我们预装龙虾,我们预装里面一些东西,因为它里面我觉得它确实会有毒。 - -**[01:24:48] 发言人 0**:你他写你底层,有些东西给你写,那不能写,还是有问题的。 - -**[01:24:55] 发言人 0**:昨天我就他妈两个接口,我看我就在昨天我装俩模型,你直接把我那个搞死了,就两个应调用了。 - -**[01:25:02] 发言人 0**:同样口我装了模型,昨也把我他妈下午我搞死了,搞死了,我他妈重启又重启又删掉,我光删都删了。 - -**[01:25:10] 发言人 8**:都外了五。 - -**[01:25:11] 发言人 0**:次就删农家猫,我删那个欧了么的那个那个海外版,我操。 - -**[01:25:18] 发言人 0**:就是你如果我在想,你如果用这个胖龙湾这些东西,你提前把底下横多锁死。 - -**[01:25:26] 发言人 0**:为什么360在做龙虾? - -**[01:25:28] 发言人 0**:那天说360360其实是把龙虾做成了一个什么的,就是纯纯的360龙虾或者龙虾。 - -**[01:25:35] 发言人 0**:360就是我龙虾放在里面,我给你管完,是360是管龙虾,根据自己的说。 - -**[01:25:41] 发言人 0**:对。 - -**[01:25:41] 发言人 6**:这他的他就是做的很不安全的。 - -**[01:25:44] 发言人 7**:他他就想管你所有的。 - -**[01:25:47] 发言人 0**:不是,所以我想说我们我们的舆论面其实核心的关键词就是安全共享。 - -**[01:25:54] 发言人 0**:加一个是所以原来叫安全共享,现在叫安全共享,价值就价共享。 - -**[01:26:01] 发言人 0**:我就下来你们研究下好吧。 - -**[01:26:04] 发言人 0**:因为你胖的,你瘦的,你掉服务器资源确实也挺烦的。 - -**[01:26:08] 发言人 0**:你虽然做个沙核,如果如果你不给他做好,不给他做任准化,他把你服务器也搞的他妈的瞧不得。 - -**[01:26:15] 发言人 4**:那我汇报到上面的情况,凯马尔,开庭是定的7月20号登卷的上门开庭之后,然后从开庭的情况研判法律,那有律师或者周杰的影况下,应该。 - -**[01:26:33] 发言人 0**:会维持原判。 - -**[01:26:34] 发言人 0**:好的,维持延慢说明他们罚两次了。 - -**[01:26:36] 发言人 0**:我估计他们这个国企可能应该会是吧,会有一些解释,估计这个们。 - -**[01:27:11] 发言人 0**:因为如果他妈的折腾了两个月不给判决书,那他妈就是个大子,所以别无进展。 - -**[01:27:16] 发言人 0**:因为这里面这东西都是都都到最后了。 - -**[01:27:20] 发言人 4**:那我们九龙坡越到最后就。 - -**[01:27:24] 发言人 0**:一锤定音,如果报了,他们还在上面的领导,他妈的领导说一句话是吧? - -**[01:27:30] 发言人 4**:好,我们现在落实这个那那个全国公安8月6号开庭的事情。 - -**[01:27:42] 发言人 0**:就是我们汇报上周五那个款程序是光报。 - -**[01:27:49] 发言人 0**:我觉得在个果们搞个公安操太麻烦了。 - -**[01:27:56] 发言人 0**:如果你真是审判下来。 - -**[01:27:58] 发言人 4**:你怎么这个就是我们要不跟法院问,法院下不是我就试试。 - -**[01:28:03] 发言人 0**:不人能不能把事办。 - -**[01:28:05] 发言人 0**:如果不人能事,说明这个,就是我们下一步法院法。 - -**[01:28:10] 发言人 4**:因为他不怕。 - -**[01:28:11] 发言人 0**:我肯定不怕,怕他老大,他老大哪天他妈的人民就是江山就人民,对不对? - -**[01:28:18] 发言人 0**:他天他的那事报了,他老大搞他,不是我搞他那么简单。 - -**[01:28:24] 发言人 0**:好吧,我们试试。 - -**[01:28:26] 发言人 4**:不要那个事干了。 - -**[01:28:27] 发言人 4**:好,然后上周五公安就是要求我们去撤诉,才能走付款决程。 - -**[01:28:33] 发言人 4**:本周我先去跟他们聊一下,然后看着情况怎么说,烟台七八号开庭,上周他们还是在播材料,准经开庭前再把材料整体再看一下。 - -**[01:28:47] 发言人 4**:男人一般在在签合同中,然后闫运维应该本周三上常委会,分局跟杨群都汇报了,应该没什问题。 - -**[01:28:59] 发言人 4**:产品审计第二版的第二版要材料的材告,我们在,感到地板比较好,应该没什么大的问险。 - -**[01:29:11] 发言人 4**:南牙电力王磊明天过来,他说应该是他们就把钱交了十几万块,就是不开庭了。 - -**[01:29:18] 发言人 4**:现在撤所这个事。 - -**[01:29:20] 发言人 1**:他明天我找。 - -**[01:29:21] 发言人 0**:因为工程者。 - -**[01:29:22] 发言人 4**:总共是还们的发行人说的是约定这个约定他们是昌平,现在是经常还,走的时候反还。 - -**[01:29:34] 发言人 0**:产品就两个事儿,第一就是二期的话,你们如果要开会的话,需求你们提前抓紧准备是吧? - -**[01:29:40] 发言人 3**:我会材料准备好,到下午中午要开会,有项午如果就。 - -**[01:29:47] 发言人 3**:材料不做,备好,你两交项目材料有。 - -**[01:29:50] 发言人 0**:可能没时间,那就明天。 - -**[01:29:52] 发言人 0**:然后宁夏理工这个事儿,你们那个软件部分三个部三个事。 - -**[01:29:58] 发言人 4**:上次我感觉他们现在反过来是有点进展,一个是数字那个数字那个产品他们供应商他软件架没打好,然后现在主要是没数据,没数据的成两部分。 - -**[01:30:10] 发言人 4**:一个有部分说本来就没这个数据,第一部分除得你的数据,还是建设中,就是供应商大概想法采用模拟数据展示。 - -**[01:30:21] 发言人 4**:但是还跟客户商量的跟客户商量。 - -**[01:30:25] 发言人 0**:如果如果客户认可的方案的不行,有点有的交付的交付量个很大的问,就交付只能给你交付,但这个量你说怎么来量呢? - -**[01:30:37] 发言人 6**:交要一个标准,又每个评。 - -**[01:30:39] 发言人 4**:分在这个上面的写了,他说可以把其产品的解,那是现在他。 - -**[01:30:44] 发言人 8**:们是搞定了也是那现在又有这种做。 - -**[01:30:48] 发言人 0**:的比较好,很容易就说数字人,说的这是对的。 - -**[01:30:52] 发言人 0**:数字人为什么我们一直我们接数字呢? - -**[01:30:54] 发言人 0**:这样一个是成组化21个我希望数字务我们最后下一步还是我们研发自己做,就是自己做了以后。 - -**[01:31:01] 发言人 1**:我们希望面成产品。 - -**[01:31:03] 发言人 0**:因为这里面很简单,这里面也是模型,就是模型调用。 - -**[01:31:10] 发言人 4**:而且无人机源这么进展,上次基本达成一致意了,可以。 - -**[01:31:15] 发言人 0**:先启动建设阿里机。 - -**[01:31:17] 发言人 5**:有没有信心呢? - -**[01:31:18] 发言人 5**:我说我们其实整个搭建这些东西都已经走通了。 - -**[01:31:23] 发言人 5**:前面确实缺点算力,因为每跑一次要当时跑一次要2个小时以上。 - -**[01:31:29] 发言人 5**:然后如果要输出这种高精度时间还会长。 - -**[01:31:33] 发言人 5**:但是确实测到H 20以后,我觉得完全可以我们。 - -**[01:31:37] 发言人 0**:你没事把什么秒叫起来,喝个酒秒聊。 - -**[01:31:40] 发言人 0**:我我我约了他了。 - -**[01:31:41] 发言人 5**:经常坐坐。 - -**[01:31:42] 发言人 0**:然后我知道,然后再跟那。 - -**[01:31:44] 发言人 5**:个我之前不知道他在重庆,结果他在重庆。 - -**[01:31:47] 发言人 0**:跟医疗局他边有事要通个电话,一定要去做这个事儿。 - -**[01:31:51] 发言人 5**:我知道我跟吴佳淼一个是约了。 - -**[01:31:54] 发言人 0**:因为我下一步。 - -**[01:31:55] 发言人 5**:我还是想让我跟一个是约了吃饭。 - -**[01:31:58] 发言人 5**:第二个,我这周还会跟他两个交流一下,因为他他这边他也有压力。 - -**[01:32:04] 发言人 0**:他们是防范着我们,就是按理所以说说医疗平法案,你做算法,我说我不做算法,是吧? - -**[01:32:10] 发言人 0**:但是我就应用。 - -**[01:32:12] 发言人 5**:我做调度。 - -**[01:32:13] 发言人 5**:对。 - -**[01:32:16] 发言人 0**:你们就是这个叫呼声。 - -**[01:32:18] 发言人 0**:怎么说来你你你那那闪烁的声音我也没,你早说,我早就去弄这事了。 - -**[01:32:24] 发言人 0**:你哪次呼,你上次说买头牛马上给你买一个他妈的小黑盒,我操几万块钱,你早说我就早就弄。 - -**[01:32:32] 发言人 0**:我上周跟紫薇聊了两次,但一开始他全分完了。 - -**[01:32:36] 发言人 0**:后来就说我说你那一台0.5台,他说他最起码保证0.5. - -**[01:32:41] 发言人 7**:但是我感觉一台实际上是能保证的,但我们那个有算力了,那个能做好,类似是特别这个心。 - -**[01:32:48] 发言人 5**:这块其实可以的,我们只因为之前调一次时间太长了。 - -**[01:32:53] 发言人 8**:他他其实难的就是像我拿出去交给那个人做,他也是这样的,他其实难的是不够,他其实男的是他排队排排排排了以后,然后他发现不对,他就要重新来调这个提示。 - -**[01:33:09] 发言人 0**:但不这里面有两个,如果是用这个隧道小模型,我们不用随账时。 - -**[01:33:16] 发言人 0**:如果用小模型,对我觉得可以自己布,我们是自己布对吧? - -**[01:33:21] 发言人 0**:对,如果大模型你肯定是面对排队,但是你也可以什么呢? - -**[01:33:25] 发言人 0**:你直接拉到国外去? - -**[01:33:28] 发言人 0**:你拉到国外找个模型一样做。 - -**[01:33:30] 发言人 0**:只不过钱的问题,我现在就是急迫的,因为将易碰到的问题是我现在就不知道什么叫性价比最高,而且这个是拖。 - -**[01:33:40] 发言人 7**:的时间有点长了。 - -**[01:33:41] 发言人 7**:他们现在是200美金的的那个那个计划,好像很价值很高。 - -**[01:33:47] 发言人 0**:就是包月。 - -**[01:33:48] 发言人 0**:但是我不知道排队。 - -**[01:33:49] 发言人 7**:他说相当于全部买的话,相当7200美金的。 - -**[01:33:54] 发言人 7**:这个就是我我跟你说。 - -**[01:33:57] 发言人 0**:我再说一个,这是因为你们没想,我帮你想你下来你把你们那清楚,我会针对关于这个算力,这个Ken不是每个人都能钱的,这个就按那个职称来的,有人就是50块,有人就是100块,有人就是他妈300块,有人就是一千。 - -**[01:34:16] 发言人 0**:你们核心的两个人,我觉得那你承担的任务共重,那就给你开大。 - -**[01:34:20] 发言人 0**:至于你把那个账号给谁就给谁,这要开大的就开个盛钢跟我说的,100美金包月,一千美金包月,100美金。 - -**[01:34:29] 发言人 0**:我操你买美金包月,那太便宜了,你先弄十个。 - -**[01:34:34] 发言人 0**:1000美金你乘以10乘以7,所以你才6000块钱,那算啥? - -**[01:34:39] 发言人 0**:你一共研发才多少个人? - -**[01:34:41] 发言人 0**:自己不去想这些事儿,我操他妈的都是我就真的,你别说我唠叨,咱们兄弟,你妈但是这事你抓紧了。 - -**[01:34:51] 发言人 7**:别去给我你的数字人整不出来。 - -**[01:34:54] 发言人 0**:这个整不出来的比较困难的时候,就是都没问题。 - -**[01:34:58] 发言人 0**:这个我可以来找我。 - -**[01:35:00] 发言人 7**:用个刘封号比严重,就是像这个账号比较大对。 - -**[01:35:05] 发言人 5**:随时都会。 - -**[01:35:06] 发言人 0**:我可以做那个,因为刘强我这个朋友他是他们专门是个国企做这个体制,做唯品的。 - -**[01:35:13] 发言人 0**:如果我们出于那个国企的考虑,我们所有人我们就给他跟他一起谈,让他给个便宜价,我们就全部做出来拼是没问题。 - -**[01:35:23] 发言人 6**:一直有免费的体,虽然速度快,但是跑。 - -**[01:35:26] 发言人 8**:cloud的那个跑频。 - -**[01:35:29] 发言人 7**:保企外们中国信和。 - -**[01:35:33] 发言人 0**:国移动供就保证什开的视频不断。 - -**[01:35:41] 发言人 0**:他们在做的,他们在国外建立了很多服器节点,然后我发人工在后面看,也有自动营的员工发现你如果你的打速度慢了,带宽快了,马上给你。 - -**[01:36:03] 发言人 0**:从阿里巴巴,比如从从下一个节点从香港调到新加坡,新加坡调到哪,他把中间的几个节点都跑这手公,我上次我了一,我操我了,我操,我很开心的,我来一直中间个果。 - -**[01:36:18] 发言人 0**:可。 - -**[01:36:19] 发言人 5**:他们这种视频主要是做cdn建设,我们其实还用不到那么高。 - -**[01:36:25] 发言人 0**:你好吧,你赶快去捋捋。 - -**[01:36:27] 发言人 0**:好,你说你重要的工作,你说你现在你重要工作在哪,这就是重要工作。 - -**[01:36:34] 发言人 0**:就资源调配和。 - -**[01:36:36] 发言人 5**:人家改造流程。 - -**[01:36:37] 发言人 0**:人家先向一道学习,然后再越一就是要资源犊,你的资源也不会先向学习,但我们要超越。 - -**[01:36:47] 发言人 0**:我开玩笑。 - -**[01:36:49] 发言人 4**:我是会宝。 - -**[01:36:51] 发言人 0**:宝。 - -**[01:36:54] 发言人 0**:赶快,我觉得算力这个事确实是很重要。 - -**[01:36:58] 发言人 0**:你那天画的这个曲线非常好啊,是吧? - -**[01:37:01] 发言人 0**:这边是他妈能力? - -**[01:37:02] 发言人 0**:那边是这个叫什么采纳度? - -**[01:37:07] 发言人 0**:这个采纳度。 - -**[01:37:08] 发言人 8**:这边是能力,中间就是我们的机会。 - -**[01:37:11] 发言人 0**:对,你看这个东西我认真看了好几遍,我操我把图贴下来,我还跑去他妈的又让豆包给我解解讲讲。 - -**[01:37:19] 发言人 0**:我说是不是所有东西都是这样的? - -**[01:37:24] 发言人 0**:确实这样,他妈的有一个度,这个面都的都是。 - -**[01:37:29] 发言人 5**:这个是吧? - -**[01:37:29] 发言人 5**:现在是就是企业和个人大家都知道,但是确实从到落地上面和真正这些他的这个差距大。 - -**[01:37:36] 发言人 5**:这个就是有有一群人现在就卖个人,就是卖客卖卖方案,然后企业这所以。 - -**[01:37:42] 发言人 0**:我们这里面我大概我看我学这个豆包,我学这个就给我大概也理解几个点。 - -**[01:37:51] 发言人 0**:就是硬件的配置,你给人家配硬件大环境是吧,这是云面是一种配硬件,然后就是你。 - -**[01:38:05] 发言人 5**:的那个Memory Scale,你这memory的机会,scale的机会,还有就是。 - -**[01:38:15] 发言人 0**:你那个那个模型你怎么给人scale,可能后面机会会越来越小。 - -**[01:38:25] 发言人 0**:因为现在模型的这个能。 - -**[01:38:29] 发言人 7**:力升级后的,你如解解就是算力调度。 - -**[01:38:34] 发言人 6**:这块还是这个。 - -**[01:38:35] 发言人 0**:如果我你刚才说这个,我觉得如果他妈的就是海外的这个,你说海外这个算力,如果中国一直在疯,那可能中间会有一个意。 - -**[01:38:48] 发言人 5**:就是这个现在意在就。 - -**[01:38:50] 发言人 0**:是在海外的对,国内就相当于是网上很多天天倒在。 - -**[01:38:55] 发言人 6**:微P那绝对是倒致这个不。 - -**[01:38:57] 发言人 0**:是导一些很多算我的算力。 - -**[01:38:59] 发言人 0**:比如说你把你的东西交给我,我拿到算力去算了时。 - -**[01:39:03] 发言人 6**:已经很多人在做了。 - -**[01:39:05] 发言人 0**:就不让你直接访问这个有。 - -**[01:39:09] 发言人 7**:有这个专门有做这个事的。 - -**[01:39:12] 发言人 5**:现在这是个大生意,但是都是很多。 - -**[01:39:15] 发言人 0**:个人或者小团队在这确也。 - -**[01:39:17] 发言人 7**:有也有做。 - -**[01:39:18] 发言人 0**:的比较大。 - -**[01:39:19] 发言人 8**:也有做做的比较大。 - -**[01:39:21] 发言人 6**:一年上千万,月上千万上都去买了点3. - -**[01:39:24] 发言人 5**:很便宜,我也不知道他是哪来的。 - -**[01:39:27] 发言人 5**:他这样的就是好多国。 - -**[01:39:29] 发言人 6**:外的平台,他注册以后有可能免额。 - -**[01:39:32] 发言人 5**:他就把这些免费额度给你集中在一起。 - -**[01:39:35] 发言人 0**:然后再做二次处发。 - -**[01:39:37] 发言人 0**:他就然后你你把你把那个把那个给印给他他自己再到那边,完了再再输。 - -**[01:39:44] 发言人 6**:这这些这些导爷多的很,以前都那种薅羊毛的人多的很。 - -**[01:39:49] 发言人 8**:但是这里头也有一个,就是确实因为现在你有很多算例,你搞清楚它的来源。 - -**[01:39:55] 发言人 8**:就像我前段时间我去买了一个cloud code的,后来我就发现我用了一张我的万不是。 - -**[01:40:05] 发言人 6**:的字。 - -**[01:40:10] 发言人 0**:他有。 - -**[01:40:14] 发言人 8**:候。 - -**[01:40:16] 发言人 7**:害渠道。 - -**[01:40:44] 发言人 6**:作为二做八的捣乱。 - -**[01:40:46] 发言人 0**:如果是研发,一般美金是很便宜的对,作为研发,如果软件开发的时,我给他配个100平金. - -**[01:40:55] 发言人 7**:什么问题呢? - -**[01:40:56] 发言人 7**:他们算出来以后,其实是真正就是每一个做出来的编程以后。 - -**[01:41:02] 发言人 0**:这编程真正用到的钱很少一点点。 - -**[01:41:06] 发言人 0**:你就上下的图像看图像多图像图像是吧? - -**[01:41:10] 发言人 0**:编程确实编程那个头不多,你扔在在这代码,尤其你那编程,我你扔那代码,他给你扔代码,就数字人好吧,你H 20拿过来,你等等会马上给王建表跟他聊去。 - -**[01:41:23] 发言人 0**:我不知道人家有一台,人家他妈八个人啥时不干,一台拿了天天看。 - -**[01:41:28] 发言人 0**:小妹妹,我操你他妈的那么多事,你没有那么数字,没有这个东西。 - -**[01:41:33] 发言人 7**:上周下单数量还是偏少,这个到就两周了,相当于是71万。 - -**[01:41:40] 发言人 7**:这个毛利是下午再说。 - -**[01:41:43] 发言人 0**:你这个周下午再说。 - -**[01:41:46] 发言人 7**:那我稍微说说,可以有个事情要说一下。 - -**[01:41:54] 发言人 7**:上周有个项目就是中野赛迪,我们知那一些退货,上周到学球总办公室来的是吧? - -**[01:42:03] 发言人 7**:这个销售说肯定要退货,已经很明确了,他们身心服的东西已。 - -**[01:42:09] 发言人 0**:经到了。 - -**[01:42:10] 发言人 7**:因给不出来。 - -**[01:42:12] 发言人 6**:那个他他有他有三点大的定制开发需求,然后是在一月份的时候提出来的。 - -**[01:42:19] 发言人 6**:出来因为人力问题,本来说分两期给他做,然后当时陈江云走,陈江在沟通当中两个点的先后问题一直在跳跳,最后也不知道到底是怎么确认的,然后先给他做了一个三月份的时候,第二个大的需求其实是六月底要给他交付。 - -**[01:42:41] 发言人 6**:但是三月份到6月份中间,又发生了,他们那些网络,因为他服务器在北京,他们说有些卡顿,有一个桌面有卡顿,桌面有卡顿其实。 - -**[01:42:52] 发言人 7**:是他的那个性能卡顿,卡顿的问题一直没有解决。 - -**[01:42:56] 发言人 7**:但是人家用了生信服的。 - -**[01:42:58] 发言人 6**:说是就没有卡顿服务。 - -**[01:42:59] 发言人 7**:生物给他开的高U就没有卡顿,所以他们觉得信服很好。 - -**[01:43:04] 发言人 7**:还有一个其实是我们有两个定制,应该也是主线版本里面的这个东西。 - -**[01:43:10] 发言人 7**:但是我们因为人力不够,所以一直没没开发出来。 - -**[01:43:14] 发言人 7**:所以人家试用了身心服以后就去明确决例。 - -**[01:43:18] 发言人 6**:他这两个需求就要退了。 - -**[01:43:19] 发言人 6**:都不好意思。 - -**[01:43:20] 发言人 0**:说他非。 - -**[01:43:21] 发言人 7**:我们造成什么影响,我们我们也现在情况下,这个项目要退了就要要退货,他已经很明确要退货,退货,然后销售给我们的就是这个没办法了,当时雪球逼着他在办公室给客户打电话,说的是这个。 - -**[01:43:37] 发言人 6**:实际上他poc测试的时候并没有提出这两个需求出来。 - -**[01:43:42] 发言人 6**:这两个需求一个是。 - -**[01:43:43] 发言人 0**:班图的个跟我说明。 - -**[01:43:45] 发言人 7**:了现在结果亏多少钱,这样的就是我的想法是这个直播项目是21万,21万里面有17万的软件和维保。 - -**[01:43:56] 发言人 7**:这个没办法,而不是维保软件和那个授权,就17万,17万给他退,但是我要扣他那个研发我前期投入的钱,我按宇浩给我算法是有一百多个人填。 - -**[01:44:08] 发言人 7**:我说这个是说不过去了,反正我就算扣他20天10万块钱,这样的话就是把把整个项目的毛利我我我解,可以就这样。 - -**[01:44:19] 发言人 0**:这种只能一说合适,这个我就这么跟他做,可以跟你说一下,那这周就给他答复了,做吧。 - -**[01:44:27] 发言人 0**:这第一第二,如果说因为我们现在正在本来要给于总报子,因这两天的事儿多,因他今天早上我昨天晚上给我打电话说,周二他就给于总报就上课我们写的这个方案了。 - -**[01:44:40] 发言人 0**:于总肯定是把这个交给张涛,这个里面就是关于这个事,我们还要去说,就是你这个给我的你的研发,但这个是说实话这个是双面双击。 - -**[01:44:53] 发言人 0**:就人家你这个事儿,你说你看我们是应主越赛迪说的项目,最后我们没拿下。 - -**[01:45:01] 发言人 6**:这个不可能不好说。 - -**[01:45:02] 发言人 0**:实在可倒过来说,以后就是不。 - -**[01:45:05] 发言人 6**:要卖你洗碗,到时候他里面那个需求是无版图虚拟机操作系统适备。 - -**[01:45:10] 发言人 6**:为什么我们这些一直性人去适配的一个系统? - -**[01:45:13] 发言人 6**:是因为需求太对我们来说太需求太少了,谁也不做。 - -**[01:45:17] 发言人 6**:但是升心服务肯定他有需求,他早就人家按部就班的去。 - -**[01:45:20] 发言人 0**:做二十多个,谁也不强调的乱买。 - -**[01:45:24] 发言人 8**:因为中冶三扩容是重庆,至少在两江八十里。 - -**[01:45:29] 发言人 7**:这后面这个项目就跟我没关系了。 - -**[01:45:33] 发言人 6**:这个冶客户就丢了,甚圳五矿集团。 - -**[01:45:36] 发言人 3**:五矿集团的也丢了。 - -**[01:45:39] 发言人 8**:大这个客户样板点对。 - -**[01:45:41] 发言人 0**:我们的意义应该还是有的。 - -**[01:45:45] 发言人 3**:也赛别人。 - -**[01:45:46] 发言人 5**:训拟赛你自。 - -**[01:45:48] 发言人 0**:己不。 - -**[01:45:49] 发言人 6**:是对我们确实。 - -**[01:45:51] 发言人 0**:就研发给力。 - -**[01:45:53] 发言人 3**:我就是研发不给。 - -**[01:45:55] 发言人 6**:那我说的云桌面现在他研发主要空间。 - -**[01:45:58] 发言人 3**:还有就是当时不是那个叫什么高温不干了,就把这个项目给拖了。 - -**[01:46:05] 发言人 3**:双方的谈判拖了三个月,所以说人家重新。 - -**[01:46:09] 发言人 0**:内部要不要点一点,内部要不要给。 - -**[01:46:12] 发言人 6**:我们点一下,当时他们没谈,他这里不。 - -**[01:46:16] 发言人 0**:他就不干,他就不干,给人高要点一点,这事我高了,他们陈主任内部。 - -**[01:46:22] 发言人 7**:他就那么点人力,就24人. - -**[01:46:26] 发言人 3**:就这个,但那个当就是你要一台是做开发,最后一个那个那个键盘是频还是要游戏开发的吗? - -**[01:46:35] 发言人 6**:他他不是开发,不是连沟通那个研发具体的。 - -**[01:46:42] 发言人 7**:所后面有一个项目,他我跟他开过一次会,他说反正研发就这个能力,我们完全听你们汇智的,你们让我们。 - -**[01:46:52] 发言人 0**:个那边当时因为合同没。 - -**[01:46:56] 发言人 6**:谈下来,连连我们联系他的人都回来一个多时。 - -**[01:47:02] 发言人 0**:问我这个没有系人。 - -**[01:47:05] 发言人 0**:但是这里面还有个。 - -**[01:47:08] 发言人 7**:卡顿的问题,一直没解决。 - -**[01:47:11] 发言人 3**:是就是用着用着就卡了。 - -**[01:47:14] 发言人 0**:我们就得从其。 - -**[01:47:15] 发言人 6**:他我们也有两个问题给他们说了的。 - -**[01:47:19] 发言人 0**:他们不认,这是客户的直播。 - -**[01:47:22] 发言人 6**:这个司机部没有在北京不服气,现场服务器的车,我们现场是不是。 - -**[01:47:26] 发言人 7**:也不卡顿呢? - -**[01:47:27] 发言人 7**:这没办法,你这卡顿的最大问题就是卡顿。 - -**[01:47:31] 发言人 6**:我跟你在现场吃,当然不要客户卡顿。 - -**[01:47:34] 发言人 0**:我们一直说我们没卡论这个。 - -**[01:47:36] 发言人 6**:东西就是产品质量问题上,你去上那个实际环境。 - -**[01:47:40] 发言人 6**:对他服务器在现场,我们服务器在手机的时候也不卡顿。 - -**[01:47:43] 发言人 6**:现在那服务器在北京他卡顿。 - -**[01:47:45] 发言人 7**:然后生意放在那那人家客户在面前他就是卡顿,你这解决不了。 - -**[01:47:50] 发言人 3**:不怎么人资幸福,现在又没有把户布在重庆了,人家已经开始在北京用了,人家就是不卡顿,怎么一直这就是一个产品质量问题,你咋不承认呢? - -**[01:48:01] 发言人 3**:那没有对比,没有障碍,人家慈信府现在全靠2000路都拿下来。 - -**[01:48:06] 发言人 6**:人家没有投诉问题。 - -**[01:48:08] 发言人 6**:我我还是得说细一点,卡们有2两个2个问题。 - -**[01:48:11] 发言人 6**:第一个问题是网一个网络的,第二个是他们当时用那个乌班图,他们里面跑的任务比较多,然后按照他们既定的规划,开6盒的时候确实卡顿的。 - -**[01:48:22] 发言人 6**:然后我们也给他测了,开八核的时候他就不卡了,然后真的不去别的开八核,开了12个单车的。 - -**[01:49:00] 发言人 3**:你不信心又开始跳了,先跳了,跳了半年了。 - -**[01:49:04] 发言人 0**:说以后不卖了。 - -**[01:49:05] 发言人 0**:至际这个本来又卖。 - -**[01:49:07] 发言人 3**:因为本来不卖,他去年不是卖了这个,但是这一退的话,所说这些应该就是之前对现说也没用了。 - -**[01:49:16] 发言人 0**:你要早几个月的预警,大家还可以聊聊,现在没有用,好吧,继续。 - -**[01:49:22] 发言人 7**:然后还有一个就是那个服务团队,我们通过外包派遣方式,又找了两个人重新给他做一个。 - -**[01:49:31] 发言人 7**:现都到都都已经入是吧,这个就是在我们现场团队一起工作的,就说是现那这样的话服务团队的人力资源充足以后,我们就可以承接一些项目的线场部署工作了。 - -**[01:49:46] 发言人 7**:等于说我们原厂部署的这些工作可以做起来,有些项目就可以提升能力。 - -**[01:49:52] 发言人 7**:这个跟你说一下其他的项目再说。 - -**[01:49:55] 发言人 0**:我觉得我们就做大项目,也就是未来做大项目,不是都是这个项目,大项目拿不下来。 - -**[01:50:03] 发言人 0**:你看包括陕西那个移动,其实我也没想。 - -**[01:50:07] 发言人 0**:说实话我就因为那个按理说那个周敏,我找他多聊两次,通过人通手。 - -**[01:50:13] 发言人 0**:因为我感觉他也对,这个你也没感觉,他也没。 - -**[01:50:16] 发言人 0**:我聊了聊,我说你反正看看有机会就可他我就担心做不好以后,他妈的最后擦一大堆屁股,我操他妈的,而且运营商屁股擦下来,他妈的影响口碑,我操不敢去买。 - -**[01:50:29] 发言人 0**:所以我们未来你既然像胖子,如果我们人少的话,我们不是说。 - -**[01:50:34] 发言人 7**:未来像胖子的问题。 - -**[01:50:36] 发言人 7**:目前这个情对我们人少的话。 - -**[01:50:38] 发言人 0**:我们还是希望我们还是今年年初说的,做大做小大市场做小生意,通过渠道做,然后把这个然后就是做这一些胖终端。 - -**[01:50:47] 发言人 0**:那终端的话你们把东价给就怎么让人家就一安装一配置。 - -**[01:50:56] 发言人 0**:但大生意是反之,大生意它的粘性大大生意一旦有了它就永远小生。 - -**[01:51:04] 发言人 1**:意越。 - -**[01:51:04] 发言人 0**:是小生意年纪越大,越大的你年纪越大。 - -**[01:51:12] 发言人 5**:好,把研发的情况汇报一下。 - -**[01:51:15] 发言人 5**:云桌面这个一期现云华为那边二期测试。 - -**[01:51:20] 发言人 5**:我上周整个参加了一下他们的会议,然后现场反馈过来有几个问题,但这几个问题上周都已经给客户都已经解决了。 - -**[01:51:32] 发言人 5**:对这个项目那天我也问了一下徐凯,徐凯当时拉拉着我跟华润那边的他们技术经理一起简单交流一下。 - -**[01:51:44] 发言人 5**:他的意思是说从这个软件试用这块,其实他们已经没有什么后续的了。 - -**[01:51:51] 发言人 5**:对,主要就是七月份招投标。 - -**[01:51:53] 发言人 5**:招投标这块,这个项目我觉得可能一个是价格,第二个就是说他整个的那个还有就是我们后续可能要给他们一些这种自身承诺,这些他们可能比较看重这些问题。 - -**[01:52:07] 发言人 6**:软件是支撑什么硬件? - -**[01:52:10] 发言人 6**:他现在要了三款高中低,三款胖的P C我们到时候反正学校就说可能瑞杰会拼拼很低的价格去,我们也得自动车,但是但但是这也他听说郭沫说就是一点含这的问题。 - -**[01:52:29] 发言人 5**:云南云南云南那个测试项目前面的反馈,就上次把那个呃效果怎么样? - -**[01:52:36] 发言人 5**:有一台机器重做了以后,不他们使用起来没有什么问题,但是我们送过去的那个机器的质量,这些商都是一些测试中端发测试中对有有一些反馈。 - -**[01:52:51] 发言人 5**:然后他那个项目什么时候真正下单了如我感觉还是。 - -**[01:52:56] 发言人 6**:说他测还没测使。 - -**[01:52:58] 发言人 7**:用上上。 - -**[01:52:59] 发言人 5**:次就提了一件事,就他们重做了一个终端,他主要是我们第一次部署的时候,两个操作系统的分配,那个比例分配,磁盘比例分配上面有点问题。 - -**[01:53:13] 发言人 5**:大家重做了以后,他们也没有什么其他意见。 - -**[01:53:17] 发言人 5**:其实他们那边相对用起来比较简单,他反起来以后就当成一个正常的。 - -**[01:53:24] 发言人 6**:windows在用。 - -**[01:53:24] 发言人 6**:院没这么多需求,院没有华人需。 - -**[01:53:28] 发言人 7**:标时再定一下价格。 - -**[01:53:30] 发言人 6**:主要是因它其实我觉得主要因素就是硬件的。 - -**[01:53:35] 发言人 5**:还有对他们那边还在说一个问题,就是说如果要增强我们投中的这可能性的话,整个技术标案那些可能要尽块要建,这个问题不大。 - -**[01:53:45] 发言人 6**:这个问题不大。 - -**[01:53:46] 发言人 6**:如果他让我们介入,他是好事,我们肯定会把它企撕了。 - -**[01:53:50] 发言人 6**:你这个标。 - -**[01:53:51] 发言人 7**:江的招标文件的撰写。 - -**[01:53:54] 发言人 6**:这是最重要的。 - -**[01:53:57] 发言人 6**:如果他他如果这都让我参与。 - -**[01:53:59] 发言人 5**:这证我的意思是这个事可能是咱们这边我知道加就加紧,因为他的意思是他愿意,反正配合我。 - -**[01:54:08] 发言人 0**:们来做这个事。 - -**[01:54:09] 发言人 0**:凯哥,但是。 - -**[01:54:12] 发言人 3**:我只抛弃了一些被人家扭转出去,那个报价打起,为什么便宜去开,也在把自己弄到底,到底怎么弃卖不出来了的。 - -**[01:54:21] 发言人 3**:你这个你要做证词就是徐凯,现在也是我们的那紫光直升机了。 - -**[01:54:25] 发言人 6**:紫光直机总部那边是这么说的,他们现在对下游的代理商的配件,他们是控制不了的。 - -**[01:54:32] 发言人 6**:他们很多时候也是出的不太存储和内存的一个控制总数去。 - -**[01:54:37] 发言人 6**:下面的经销商去找一些便宜的内存和存储加上去在卖全是样。 - -**[01:54:43] 发言人 6**:我问。 - -**[01:54:44] 发言人 8**:了出来,就我们。 - -**[01:54:49] 发言人 3**:卖到的格,我价格我还。 - -**[01:54:54] 发言人 6**:有他们价格是现货交易,就是代理商手上有有200单,这两百单就是这个价。 - -**[01:55:03] 发言人 6**:下个月他不认的。 - -**[01:55:05] 发言人 3**:既不认他这个价格,200台他裁的那也是省钱方式。 - -**[01:55:09] 发言人 6**:然后的时候,他是要一他是要两千台,他是要两千台一年的供货周期,你你你让他包的时候,他包不出来了。 - -**[01:55:21] 发言人 6**:就跟京东上一样,京东现在上,现在你买个十台几台电脑便宜,你去找店家。 - -**[01:55:28] 发言人 0**:你说我要两万台,他对不起。 - -**[01:55:30] 发言人 6**:你又什么时候交给我? - -**[01:55:32] 发言人 0**:七月上旬中旬,云南现在怎么样呢? - -**[01:55:36] 发言人 6**:云南你那是在测试他一个渠道。 - -**[01:55:38] 发言人 0**:没有招标里面的。 - -**[01:55:40] 发言人 6**:他没说他他是不是死亡。 - -**[01:55:42] 发言人 6**:很多医院他说现在一个月测试,他就是要依据上系统。 - -**[01:55:46] 发言人 6**:对。 - -**[01:55:46] 发言人 0**:好。 - -**[01:55:47] 发言人 5**:因为他们抓几。 - -**[01:55:48] 发言人 0**:包的龙虾放进去,咱做两个,我相信他们那肯定要有想法的。 - -**[01:55:55] 发言人 0**:这东西所以说你这个研发起不到研发的作用,都是在反复在说这个事,我下面用你要有一套,在这个肯定我觉得我后面服务器什。 - -**[01:56:07] 发言人 6**:么的做设计,对,但要有一套方案。 - -**[01:56:10] 发言人 6**:但这套方案确实我看到还要做的东西确实很多,要做出来权限什么都很多,像上下级数据库、知识库,事线还是很多的。 - -**[01:56:21] 发言人 5**:好,然后主线的那个版本就是跟我们产品讨论了以后,裁剪完了,我们内部知道。 - -**[01:56:29] 发言人 6**:11202212026批01对,我们都把国号主要的年度批评一批02对,我们都相关。 - -**[01:56:37] 发言人 5**:今年的话反正规划可能后面还有三个版本。 - -**[01:56:40] 发言人 6**:三个版本到4个版本,然后就是后面的发地域,还有新塘桥的进一步的规划融合。 - -**[01:56:48] 发言人 6**:今天应该还有两个版本。 - -**[01:56:50] 发言人 6**:对,还有个新上桥的那个协议,新上协议我这周来处理好不好的? - -**[01:56:57] 发言人 6**:好,上,因为上周五我刚刚汇报了话,就把那个采购方案定了。 - -**[01:57:02] 发言人 6**:然后新塘桥也又用新的采购办法。 - -**[01:57:05] 发言人 5**:我们把它弄进。 - -**[01:57:06] 发言人 5**:然后志金云那边,上周他们把天数H 20和木西这三款平台的测试都已经适配,都已经做完了,做完了在压力测试的报告里些也做出来了,到时候单独汇报一下。 - -**[01:57:20] 发言人 6**:能不能把。 - -**[01:57:23] 发言人 5**:不个简单事,我们不能那几家也不出来了,一有个环试,他还不在我们手上,这些都是远程的机器,除了天数的机器在我们手上。 - -**[01:57:38] 发言人 5**:摩尔也开始测,摩尔对摩尔单独开个会。 - -**[01:57:41] 发言人 5**:好,就单独开会。 - -**[01:57:42] 发言人 5**:然后他们结果今天早上我刚简单开了一个会,他们现在自己又又选了一个个大模型,我觉得这个倒是候跟这个龙虾这边要统在一起。 - -**[01:57:53] 发言人 5**:今天上午我到时你知道选的什么,选另外模型选啥,不是为不是这是个方案? - -**[01:57:59] 发言人 5**:不光是模型,他们整个就选择一个方案。 - -**[01:58:02] 发言人 5**:然后上午我就让付爱跟他们一起把这个事情对,把这讨论定好了。 - -**[01:58:07] 发言人 8**:我觉得这两个是不是还是有些不一样的,是吧? - -**[01:58:10] 发言人 5**:不但是我想的是还是就统一成一个方案。 - -**[01:58:19] 发言人 6**:这是一个完整的知识方。 - -**[01:58:23] 发言人 6**:差不多基。 - -**[01:58:25] 发言人 5**:本上是反正我们。 - -**[01:58:29] 发言人 6**:不要R不要这源,都是源比较门的些源目,我反烦。 - -**[01:58:38] 发言人 5**:然后智空这边是这样的,我们把遥控器上云的对接工作基本上做了30%。 - -**[01:58:45] 发言人 5**:现在正在安排香米山那台无人机接入互联网,接入互联网以后,我们就会在互联网上布一个完整的平台。 - -**[01:58:53] 发言人 5**:然后一个是加强这个测试工作,第二个就是展示,那些都就可以在上面做,然后告警工单这个专门做的一个模块,然后那个小米三是中分两台,然后另外。 - -**[01:59:05] 发言人 4**:你们去另外一个人,就相就是。 - -**[01:59:07] 发言人 5**:上次我们去的是一个点,相比它是另外一个点,就这个点他们用的要少一些。 - -**[01:59:13] 发言人 0**:你把这个点你们跟那个你们还是那句话,就是交警那个流程怎么样? - -**[01:59:19] 发言人 5**:你没有就说白约上周他最调到上。 - -**[01:59:22] 发言人 0**:对我觉得因为现在这个事,你这个事其实是因为你一旦交警接去,我们现在还没有执行任务任务。 - -**[01:59:29] 发言人 0**:你跑了任务以后,我就说服,我才我们才会去。 - -**[01:59:32] 发言人 0**:他妈昨天我就死说,他说你跑什么路,我说我没有教你,我就不想多说,再说下去就露馅了,我啥也没跑,一点起来了。 - -**[01:59:42] 发言人 0**:你要吃你你要你要有那个那个那个那个那个你再跑了,你你就是你先占住这个坑,老说要占着坑站。 - -**[01:59:50] 发言人 5**:你占住这坑。 - -**[01:59:51] 发言人 5**:我们再就集云结合,放在集你们跟集云结合这是怎么样? - -**[01:59:56] 发言人 5**:集云结合这个技术会已经开了两次会了。 - -**[02:00:00] 发言人 5**:其实软件上面都已经从集云那边,一个是调这边的那个视频,还有集云那边一键起飞,这几个功能都已经开发了。 - -**[02:00:10] 发言人 5**:因为内蒙他们是需要这东西,我们就先做了。 - -**[02:00:13] 发言人 0**:然后内蒙因为他卖。 - -**[02:00:15] 发言人 5**:我知道他是在。 - -**[02:00:31] 发言人 5**:然后那个违停,其实这个模型我们已经训练出来了让他们自己也去做了一些测试。 - -**[02:00:41] 发言人 5**:而现在违霆从展示的这个角度已经可以展示了,就是无人机飞过去已经可以把违停的车辆可以抓进来。 - -**[02:00:53] 发言人 0**:车牌国产的时物太慢了。 - -**[02:00:55] 发言人 0**:这周开个会,然后开完会以后,你们大姑娘在沿台喝杯茶,然后节后七一建党节以后,然后再来谈谈下一次会,那他妈的天亮球了,我操,真的就是太慢了,我觉得难,一个一个一周干一次事,一个事到下一次这样邦过去,咚回来我这什的,你你你追一追他,因为你你上线了,为什么他不着急呢? - -**[02:01:22] 发言人 0**:可能他觉得无所谓,我是觉得交通查处之还有点能带来点利润。 - -**[02:01:29] 发言人 5**:是就我上周到中医物联去跟他们做交流的时候,把这个给他们展演示一下。 - -**[02:01:35] 发言人 5**:所以说他们现在在他们来看的话,我们现在是一个含非控含这个待机是吧? - -**[02:01:41] 发言人 5**:也是这样的,我们跟物联这边展示的是一个独立的平台。 - -**[02:01:46] 发言人 5**:我们现在做了两套方案,一套是和集云的整合方案,一套是和一套是一套独立的方案然后我们跟物联这些展示的,就是说我们这套独立的方案。 - -**[02:01:58] 发言人 5**:他们是想把我们这个方案和他们现在自己的视频库的平台整合在一起。 - -**[02:02:06] 发言人 5**:然后这周的话他千例。 - -**[02:02:07] 发言人 3**:对,对。 - -**[02:02:08] 发言人 5**:他们也是一千例。 - -**[02:02:09] 发言人 8**:他们也是两个平台。 - -**[02:02:11] 发言人 5**:他们现在这样的对,现还是详细介绍一下。 - -**[02:02:14] 发言人 5**:他们其实千里也在全国接了很多,但是那个就是萨as模式。 - -**[02:02:20] 发言人 5**:后来大家讨论一下,那个萨as模式不适合这个方案,然后可能还是做这种私有化部署,针对行业做私有化部署。 - -**[02:02:29] 发言人 5**:然后那个视频这边让这周我们去参加他们的dii ct入围。 - -**[02:02:34] 发言人 3**:他首先不是情,就另外一个平台是自个。 - -**[02:02:38] 发言人 5**:哪一个千里也是大华是吧? - -**[02:02:40] 发言人 5**:千里大华他。 - -**[02:02:41] 发言人 3**:自己私域号部署的视频平台是自个。 - -**[02:02:44] 发言人 5**:就他私有化那个早就在大华技术上已经改造成他们自己的平台,也是大华的底座。 - -**[02:02:51] 发言人 5**:底座好几家不光指大华,还什么灯红。 - -**[02:02:54] 发言人 0**:对他那个平台。 - -**[02:02:58] 发言人 5**:然后上周五下午我们跟他们两个事业部,一个是他们视频就是那个视频事业部,还有就是他们有个聚声新成立聚声智能事业部,就一起把这个事频交流。 - -**[02:03:14] 发言人 5**:在商业聚生事业事业聚生智能事业部的那个资金口,现在还是挂在视频部上的。 - -**[02:03:21] 发言人 5**:所以说他们让我们先到视频部把那个d入围做,然后这个定制开发这边上周是11个项目,然后计收增加了六个。 - -**[02:03:32] 发言人 5**:我们还是按照刚才周景汇报的六月底180万那个目标来完成。 - -**[02:03:38] 发言人 5**:其他的话就是数字治理,刚才说的那个数字助理整个的产品框架定下来了。 - -**[02:03:45] 发言人 5**:定下来的话这周我们可能就要开始开发工作了。 - -**[02:03:49] 发言人 5**:第二个软助这边的话,我们正在申请自飞平台加上两个视频算法加上一个算法仓。 - -**[02:03:56] 发言人 5**:这个两个视频算法加算法仓也是中医物联那边,他们招投标里面也不是个他们除了这个dii ct t以外,他们还让我们进入一个视频的,进一个算法的dict还要进一个应用的dict一共进三个。 - -**[02:04:14] 发言人 5**:这两个的话是需要有软注的,我们也在加紧在做。 - -**[02:04:19] 发言人 5**:欧的话刚刚俊我这边大概。 - -**[02:04:21] 发言人 0**:就这情况,软著自己写,不需要钱。 - -**[02:04:24] 发言人 5**:申请钱又很少,申请钱很少。 - -**[02:04:27] 发言人 5**:对。 - -**[02:04:27] 发言人 6**:我们都是自己选购。 - -**[02:04:32] 发言人 5**:然后他还有那个他还有申计完了以后,政府每一年还会有一个返补贴,就这个制飞这个平台。 - -**[02:04:38] 发言人 0**:你们还是要跟吉民一定要好好对齐,好吧? - -**[02:04:42] 发言人 0**:要对,这是双赢的事。 - -**[02:04:43] 发言人 0**:因为对我们来说,我们在华智一个价值? - -**[02:04:46] 发言人 0**:这是重要的事。 - -**[02:04:47] 发言人 0**:是虽然说我估计华智研发不愿意,我昨天慈双那个挂我提醒了,我估计华智研发可能大概率不想让我们做任何产品,是吧? - -**[02:04:56] 发言人 0**:你做点,因为他在研发。 - -**[02:04:58] 发言人 0**:就全是我的,就跟那小孩小女生要糖果,那洋娃娃全是我的,跟你没关系,就我们自己要做出来的成绩,要赶快去去去体现出来是吧? - -**[02:05:08] 发言人 0**:那一到面前的小女生都是我的。 - -**[02:05:10] 发言人 0**:都不能都所以你能强调的我们你赶快给那个基金都。 - -**[02:05:16] 发言人 5**:易照,所以现在好像这块一照平,虽然在他下面管,但是整体来说他也没有放太多精力在这个集云这边。 - -**[02:05:25] 发言人 0**:好吧,好,他们我不知道干嘛,我总觉得他妈的消耗那么大的资源,我觉得他妈的我有点嫉妒心,我操我们那么多人在说算命也没弄到资源,人家消耗那么多资源。 - -**[02:05:37] 发言人 0**:所以你们下来你们也问清楚,去年你跟他们人对接一下,你们问清楚他们资源用在哪是吧? - -**[02:05:43] 发言人 0**:他们那几个产品,你把他们的大模型做不做? - -**[02:05:46] 发言人 0**:然后他们主要资源用在哪里是吧? - -**[02:05:48] 发言人 0**:我现在很清楚,我们不调不做模型,我们打一说他们,你就是在自己的模型,我说谁知道那个那个所以说真的假,但如果在自己模型。 - -**[02:05:59] 发言人 5**:我恭喜走错了方向。 - -**[02:06:01] 发言人 5**:他们说他们是这样的,因为他们黄区和绿区没法接外面,所以说他们就在那个集器上号。 - -**[02:06:09] 发言人 5**:他们就布了一个那个他们布了一个的320. - -**[02:06:13] 发言人 0**:320多个们就在做三百多对,38那个测对。 - -**[02:06:18] 发言人 5**:然后他们内部的开发就接那边的A I. - -**[02:06:23] 发言人 0**:我你这时我就知道了,他不能调用Y你没所谓,真的,你你你赶快弄清楚。 - -**[02:06:30] 发言人 0**:你说了100美金的,我觉得很好,给十个没所谓的,你定好。 - -**[02:06:37] 发言人 0**:现在我关键你们要清,你们统一平台,统一代码,统一东西是吧? - -**[02:06:43] 发言人 0**:我你怎么调度? - -**[02:06:45] 发言人 0**:果要用业的,那们专业的,我用业的那个不用,我们直接业。 - -**[02:06:51] 发言人 0**:我突然觉得刘强这个业务可能未来有机会了,就是调海外的算力。 - -**[02:06:55] 发言人 0**:我才他原来给我讲他业务的时候。 - -**[02:06:58] 发言人 5**:我在想这事,要不然我们就这样子,我们就统一账号,然后我们自己内。 - -**[02:07:02] 发言人 6**:部大王A I然后分给对对对。 - -**[02:07:04] 发言人 5**:个我就这样看。 - -**[02:07:06] 发言人 0**:那对你们搞清楚,我这边也需你们接下来弄弄。 - -**[02:07:09] 发言人 0**:然后还有一个就是你们搞清楚一个什么呢? - -**[02:07:12] 发言人 0**:就是比如说我们如果我们拿半台,我们自己算力调查,我觉得我们第一不调私有化部署,我觉得还是要叫脱Ken。 - -**[02:07:22] 发言人 0**:因为脱Ken是未来所有私有化部署的,尤其是大的私有化部署的,短时间内很危机,因为拓Ken那个速度太快。 - -**[02:07:33] 发言人 8**:你拿多少学习了,你那三百多批相当个大。 - -**[02:07:39] 发言人 5**:模型多少钱? - -**[02:07:40] 发言人 5**:就是现在一般发布出来的是671. - -**[02:07:44] 发言人 0**:671应该是常见670。 - -**[02:07:48] 发言人 0**:但是别人满血的。 - -**[02:07:49] 发言人 5**:他们那个卡里可以320多匹的个,满三百多的也多,六百多。 - -**[02:07:57] 发言人 6**:什么。 - -**[02:08:00] 发言人 0**:思我可能模。 - -**[02:08:10] 发言人 8**:不可能推推。 - -**[02:08:19] 发言人 0**:版。 - -**[02:08:21] 发言人 0**:他们做了一个,他们布置个白买的是吧? - -**[02:08:24] 发言人 5**:对,他们还不是布的那个671B的的。 - -**[02:08:27] 发言人 8**:三百多就一半的半水版的。 - -**[02:08:28] 发言人 0**:你们下你下来应该是跑不了是吧? - -**[02:08:31] 发言人 0**:你们下来研究就给我一个文字的东西好吧,我了解了解。 - -**[02:08:35] 发言人 6**:我我我具体看看。 - -**[02:08:36] 发言人 6**:然后王总我们这我。 - -**[02:08:38] 发言人 0**:约了到底付了多少币。 - -**[02:08:40] 发言人 6**:约了阿里的悟空工作平台,然后这是我的约谈时间,他跟我们讲下。 - -**[02:08:45] 发言人 0**:产品好吧,很好。 - -**[02:08:47] 发言人 0**:阿里的、腾讯的我们都学习,那个word的也可以好吧? - -**[02:08:52] 发言人 0**:好好好,我觉得很好。 - diff --git a/agent_memory/uploads/chat_8b877198aabf/1782281323021_1_transcript_710.md b/agent_memory/uploads/chat_8b877198aabf/1782281323021_1_transcript_710.md deleted file mode 100644 index 3a12eb2..0000000 --- a/agent_memory/uploads/chat_8b877198aabf/1782281323021_1_transcript_710.md +++ /dev/null @@ -1,2790 +0,0 @@ -# 会议710 - -**会议时间**:00:00:00 - 02:42:34 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8, 发言人 9 - -## 会议记录 - -**[00:00:00] 发言人 0**:就是样板项目还有重大项目的一些知识上,然后包括给省代的一些赋能上。 - -**[00:00:06] 发言人 0**:然后说到跟省代的赋能,其实去年也尝试跟那些省代做过不少培训。 - -**[00:00:13] 发言人 0**:但是当时因为条件有限,当时很多省代也反馈不想想要我们就一家一家跟他培训。 - -**[00:00:21] 发言人 0**:但我去年下半年当时也这样去做过,但是最后发现就确实太太耗精力了。 - -**[00:00:27] 发言人 0**:我一个内容我要培训过五六次这种,而且还要去结合这个省代的一个这边的时间,还要我们自己的时间去做调解。 - -**[00:00:38] 发言人 0**:那目前看我建议还是公司能这种比如一个月1次,甚至说有新品新方案的时候,做一次这种针对省奈或者华山的一种云桌面相关的一些培训。 - -**[00:00:53] 发言人 0**:我觉得这样,我觉得重点不是在培训上,重点是还是让沈奈和咱们华山的这边的同事能感知到,咱们其实汇智云桌面一直是在增进,一直是在更新的。 - -**[00:01:07] 发言人 0**:但目前其实这两点我觉得目前咱们可能做的还是不太好,但这种带来的效果我觉得还是比较明显的。 - -**[00:01:16] 发言人 0**:如果说后神代的,目前他针对云桌面的了解程度逐渐加深,后期他肯定是慢慢能锻炼出神代这边的一个指数打单的能力了。 - -**[00:01:27] 发言人 0**:完全就是在项目中去学习,然后加上我们的一些新理性方案的一些培训知识,完全是可以把省代这边的授权模式去锻炼起来的。 - -**[00:01:38] 发言人 0**:第二个就是针对省代在华山侧的一个感知,就是目前面了解到一些项目,很多华山销售他不愿意从省代过来。 - -**[00:01:47] 发言人 0**:第一个是费用,省代那边费用可能报的会高一点。 - -**[00:01:52] 发言人 0**:第二个就是确实是整个项目对省代的感知,都华山销售可能不太好,就可能完全就没有省代在里面,然后省代的要的价格又可能就比较高,然后就导致我了解还是有不少项目华山就可能就走的这种其他的一些渠道,就是非我们省代的一些渠道。 - -**[00:02:13] 发言人 0**:但是这样也不是一个很良性的一个一个过程。 - -**[00:02:17] 发言人 0**:因为我目前了解到,就比如说像广东的江门中心医院,它现在是已经从到现在已经是做了三期了。 - -**[00:02:26] 发言人 0**:但三期每一期都是不同的渠道去做交付过的。 - -**[00:02:29] 发言人 0**:第一期是我们省内区院做的交付,但是后面两期都是分非常耐需做的交付就会了。 - -**[00:02:36] 发言人 0**:导致一个问题就是第一期出了问题,然后训练他,他们会安排售后去处理。 - -**[00:02:43] 发言人 0**:但是第二期第三期出现了一些售后问题,飞城在这边他没有云桌面解决能力,他没办法去处理。 - -**[00:02:51] 发言人 0**:到最后销售又押给旭悦,那旭悦那边整体又觉得没有收钱,然后导致整个项目售后问题可能就没人处理了,最后还是需要我们原厂来购,那这样其实也是一个恶性循环。 - -**[00:03:07] 发言人 0**:如果全部走省代,那至少我能保证我们的这个项目出货之后的一个售后口碑,至少有人在服务口碑不会掉太多。 - -**[00:03:18] 发言人 0**:第三个刚刚也说了,就是减少对汇智的依赖,把一些汇智首先把一些项目去放在一些重点项目去支撑。 - -**[00:03:29] 发言人 0**:然后下面还有一个问题,就是沈畅这边提的还是希望因为他这边负责的四个省区,湖南、湖北、云南、贵州,目前好像都没有自己汇智的销售。 - -**[00:03:43] 发言人 0**:然后他前段时间也出过差,去到省就省区去,就发现其实省区这边还是有很多项目,美就是有很多云路面项目商机的。 - -**[00:03:55] 发言人 0**:但是因为前面都是远程支撑,也没有那种经常跑到线下去去了解,很多很多商机可能还是没收集上来。 - -**[00:04:05] 发言人 0**:但目前感觉如果一些省区,我觉得不愿意招这种,也不是不愿意,招销售的这种进展比较缓慢的,看能不能还是像去年那种部分省区少量的发动机两个这种联络关这种。 - -**[00:04:23] 发言人 0**:其实陈大那边我看了他去年做联络关,这个其实做的还是挺好的,很多商街还是从联络关那边报过来的。 - -**[00:04:33] 发言人 0**:虽然很多区我们现在两都取消了,但是我觉得一些特殊的区域是不是还是不能可以加上一些联络方。 - -**[00:04:42] 发言人 0**:最后就是有一个售后问题,这个售后问题也是陈畅这边遇到的,就是一个随手移动的问题。 - -**[00:04:49] 发言人 0**:他这边下单的就是我刚刚说的,他不是我们省内的,去做的事实实就是我们找宝山部人自己认识的一些渠道,我们对我们来说是非常败做的服务。 - -**[00:05:02] 发言人 0**:但是他们实施完了,因为实施期间我们会下让他们下一笔钱给到我们我们让汇世原厂授权做技术支持,把实施部署完。 - -**[00:05:12] 发言人 0**:其实实施都比较简单,一般不会存在太多问题。 - -**[00:05:16] 发言人 0**:那实施完之后,就需要就需要过渡到路这种质保期间的一些维护阶段了。 - -**[00:05:24] 发言人 0**:对于我们会智而言,我们其实就只让华山就只让这个项目指向了400的远程维保。 - -**[00:05:32] 发言人 0**:我们其实是没有第一个我们是没有收收这个现场维护的费用,我们是不会去派人去到现场的,我们也这一块我们也没有太多经费。 - -**[00:05:45] 发言人 0**:第二个就是这笔钱其实是过渡到现场维护这笔费用其实是过渡到现场非人耐渠道这边的那他这边其实是收了这笔钱,但是他又没能力做这个交付。 - -**[00:05:59] 发言人 0**:那我还是这里就会存在一个问题,就是每次非人耐这种渠道找到我们做技术支持,我们也其实也不好直接拒绝,因为毕竟最终损坏的还是我们汇智宇这块的一个口碑。 - -**[00:06:14] 发言人 0**:他还是希望公司看能不能增加这种单次的一个服务报价的一个体系。 - -**[00:06:20] 发言人 0**:这针对这种非生代的一个售后问题,需要汇智这边出工程师做,比如说远程的这种技术大疑,或者说现场的一些技术支持。 - -**[00:06:32] 发言人 0**:如果有这种单次付费服务,包括面临到这种,我们就直接以这种收费的方式,直接去给省非省态渠道这边去聊一些质保的问题。 - -**[00:06:44] 发言人 0**:各位我目前问。 - -**[00:06:46] 发言人 1**:题就是这一些。 - -**[00:06:49] 发言人 2**:我们个盛钢,你看你说说,然后雪秋再说一说盛钢。 - -**[00:07:01] 发言人 3**:看一下扬州今天提的主要就是跟等待配合上面的一些事候,售前如何能够利用省代的资源进行推广的需求。 - -**[00:07:18] 发言人 3**:但是目前我们目前这个阶段的确是我们的体量来说,一个做前支撑3到4个省份。 - -**[00:07:28] 发言人 3**:目前从目前来看是的一个工作量和这个业务量的匹配来说是比较合适的一个人员匹配,在人员再增加到我们的每一两个省。 - -**[00:07:44] 发言人 3**:第一个社钱我们的体量应该是支撑的。 - -**[00:07:47] 发言人 3**:所以目前情况下面,杨昭所提的这个呃工作量方面的这个事,我认为还是需要大家在在工作中克服的。 - -**[00:07:59] 发言人 3**:对于各个省代,省代其实也是良莠不齐的。 - -**[00:08:04] 发言人 3**:有些省代的构前支付的能力会强一些,有些省代的时候是构前支持的能力会弱一些。 - -**[00:08:13] 发言人 3**:从目前我们既然把,会普的云销售的人员增加上来以后,我们希望这是简单的这些项目,比如说小小的项目,两个云资销售在负责自己本省的项目上面能够起代能够能够起代的一定的作用来来支撑这一类项目。 - -**[00:08:37] 发言人 3**:从配置器这边来说,其实我们现在的配单的,我目前来比较简单的这这这个东西。 - -**[00:08:47] 发言人 3**:但是后续还是再思考一下,看看能不能做出一个比较简易化的一个报价。 - -**[00:08:57] 发言人 3**:其这个因为前期我们一直也在想要不要做这个东西,但是总感觉好像用处不是太大。 - -**[00:09:07] 发言人 3**:但从我对这个售前的交流情况来看,其实大家更多的是不是配单的可时间上花的多。 - -**[00:09:15] 发言人 3**:而是跟前方的相互之间的沟通交流,来来去去来来回回的这个时间上花的会比较多一些。 - -**[00:09:25] 发言人 3**:就这个真正配置器上线做了以后能有多大帮助,这己就评估这是一个事儿。 - -**[00:09:34] 发言人 3**:至于省代的赋能这块,下来我们再讨论一下怎么把省代的赋能这块对做好。 - -**[00:09:44] 发言人 3**:这个梦洁这块我们下来再讨论一下,看你怎么样来做人员这块膨胀。 - -**[00:09:51] 发言人 3**:这边云南这周会名字销售会增加一个人,那么差不多了。 - -**[00:09:59] 发言人 3**:我感觉也上周前两天我也跟许州会在交流,也就这点人员来再再增加人员。 - -**[00:10:07] 发言人 3**:我们整个今年从这个销售体量上面来说,也这有点压力的。 - -**[00:10:13] 发言人 3**:所以说也应该也就是不会再过多的增加了。 - -**[00:10:17] 发言人 3**:除非特别有必要的省份,如果有业务量大幅增加,那么可以再同步考虑。 - -**[00:10:22] 发言人 3**:那其他情况下面就至于联络官这种角色,其实每个省我认为去年如果有这样的人还能再做的话,我们还是可以联络。 - -**[00:10:39] 发言人 3**:因为今年我们的那个云那个那个销售基地还在大家如果不责审份,认为有些优秀的人员可以给我们建议,看看是不是可以再设立这样的人员。 - -**[00:10:51] 发言人 3**:如果不适合的人员放在那儿,反而是对我们资源的一个浪费。 - -**[00:10:56] 发言人 3**:这个属于所以要求我们售前来评估有没有这样的人,有没有合适的人,有合适的人我们可以去考虑做这个事儿。 - -**[00:11:06] 发言人 3**:售后的话我觉得没有问题,增加这类似的这个服务体系,我们我跟中方也在考虑这些事。 - -**[00:11:15] 发言人 3**:如果有这个建议大家可以提出来,我们可以这个应该算挺灵活的,可以来做这个事儿,好吧。 - -**[00:11:23] 发言人 3**:朋友,我大概说这些好好取消。 - -**[00:11:26] 发言人 2**:我看了。 - -**[00:11:28] 发言人 4**:养州这个问题,就是我跟云池销售有关的,主要还是说中小项目优先支持省代的,有有省待支持的问题。 - -**[00:11:38] 发言人 4**:他这个知识分几步,如果是说第一需求摸索,第二项目的交流宣讲。 - -**[00:11:44] 发言人 4**:这一块儿我们跟孟洁也好,包含李俊杰这儿也在反复的投喂资料给云职销售。 - -**[00:11:51] 发言人 4**:我们自己去做到需求摸索和交流宣讲,确实是现在也在积极努力在做的。 - -**[00:11:58] 发言人 4**:但是跟中小项目,我认为不是大项目小项目以金额来定义,还是以项目的一个繁琐程度。 - -**[00:12:06] 发言人 4**:如果是老的扩容,我们可以让云智销售直接找省代去支持。 - -**[00:12:12] 发言人 4**:但是如果是新建或者是新产品这一块,省代它是没有支持力度,也就是又绕回来的。 - -**[00:12:20] 发言人 4**:省代如果没有云智销售的情况下,省代能支持得了新华三销售。 - -**[00:12:26] 发言人 4**:也就是说要么就是说我感觉我们把这块提了,把把省在再付能,或者是让云池销售直接也学配置,光是需求交流和宣传这宣讲这块我们能培养起来。 - -**[00:12:41] 发言人 4**:但现在我们确实没让我们的云知销售搞搞配置,学习配置这一块。 - -**[00:12:46] 发言人 4**:如果学习配置拿最后剩的也就是说测试和商务申请测试的话,省代支撑以服务型省代支撑并不是没有什么大难度的。 - -**[00:12:57] 发言人 4**:和报价申请。 - -**[00:12:58] 发言人 4**:最后就是小中小项目由云之省贷向收钱申请报价,还是再搞一个云智销售内部的一个报价申请流程,pm报单流程也可以。 - -**[00:13:09] 发言人 4**:所以说我不认为是中小项目来区分是否有省代支增,而是看项目运行。 - -**[00:13:16] 发言人 4**:或者是说俊杰你在这块不,甭管是给一个配置器,或者是搞一个景,能让名生销售学会配置的那这些能给咱送钱省很多精力的这个模式,这个我们下面就值得探讨一下。 - -**[00:13:31] 发言人 4**:就是就他本身某术本身这个遇到有的时候其实我跟我们云云智销售也在反反复复说,之前没有经历过。 - -**[00:13:40] 发言人 4**:突然甩过来找我们寻个vdi 500路,特别是送度端500路、800路的这种报价,应该是直接拒绝很你都不知道需求,你也不知道项目是怎么情况,就跟你要500V500路送度端报价甩完之后人家拿去给预计一笔国价格高不死球了。 - -**[00:13:59] 发言人 4**:这种报价是几乎都是无用报价,浪费很多精力可以排除。 - -**[00:14:04] 发言人 4**:但是钢铁的这个中小类的或者是扩容类的这些小的配置,让明智销售也学一学,是不是可以减少送前的精精益投入。 - -**[00:14:14] 发言人 4**:这一块我们得策划纷纷进入关于售后的那些问题,我这边上我认为我们云雀省贷这云雀销售法和手贷这块,在这个售后的问题上去协调解决。 - -**[00:14:26] 发言人 4**:人员配置也是最后的省份的人员配置。 - -**[00:14:30] 发言人 4**:云南我们邵周加了一个之后,因为今天会上也有除了云智销售之外,我们协同营销还有四个同事一直挂在这儿。 - -**[00:14:41] 发言人 4**:现在我们如果这周把这个云南加进去,我们15个人上周也跟盛钢做了一个全省的分析,平均一个销售两个省份,然后常驻省份肯定是他全面对接。 - -**[00:14:54] 发言人 4**:然后下周我们例会就会跟每个小组通知,就是说他还要坚持一个总分,坚持那省份他至少保证先去一趟,把手带和一些曲路的非就是跟我们合作过的渠道先对接上,对接上之后再销售。 - -**[00:15:12] 发言人 4**:在支撑的时候可以把那个省份也把消息息同步过来。 - -**[00:15:17] 发言人 4**:同时其实每一个云池销售和新协同销的销售,都给自己在省份拉了售后、售前以及销售的一个支撑群。 - -**[00:15:27] 发言人 4**:这个群里面的所有项目,所有问题也可以互相互动,互相支撑。 - -**[00:15:32] 发言人 4**:这就是我们搞那一个扁平化支撑的边。 - -**[00:15:34] 发言人 4**:而且那个群里面把盛钢俊杰我都拉在里面,我们也看到问题也时时都在解决,都在协同。 - -**[00:15:41] 发言人 4**:其他的我没认为意。 - -**[00:15:43] 发言人 5**:我补充一个配置器的问题,我谈一下我的看法之前其实是几个月前上线的一版配置报价器,但是给了大家,大家一收钱不愿意用,二渠道其实也没法用,为什么没法用? - -**[00:15:59] 发言人 5**:说一下我的看法。 - -**[00:16:01] 发言人 5**:一目前我们的终端有新华三终端、汇智牌终端,还有代智库存,还有正在销的库存。 - -**[00:16:08] 发言人 5**:本身那个终端的型号类型是比较复杂,但是可以将这些主推或者清库存的类型型的进行供能没问题,但是你让渠道去配,他就算去泡报了10台过来,然后真的找不下。 - -**[00:16:23] 发言人 5**:但采购的时候他看消息是滞后的,发现我们其实根本就没用了。 - -**[00:16:28] 发言人 5**:这种情况很多已经让渠道去配,他可能运作了一两个月,然后再来问你,然后就出问题了。 - -**[00:16:36] 发言人 5**:二就是和我们的那个售前,实际上渠道找到我们授权报价,是和我们的授权沟通项目的一个商机来源。 - -**[00:16:44] 发言人 5**:如果我们把这一层海往渠道去推,我们的来源已经很少了。 - -**[00:16:49] 发言人 5**:我要咨询过他们,他们现在一天的配单也就4到5个,不多对,不多。 - -**[00:16:55] 发言人 5**:还有我说完了还有一个情况,就是目前的那个硬件调价价格过于频繁了。 - -**[00:17:02] 发言人 5**:我们没办法去维护一个在对渠道的一个价格变变变化变化体系。 - -**[00:17:09] 发言人 5**:而且告诉大家,昨天几个供应商在反馈,pcb又开始暴涨,甚至两三倍。 - -**[00:17:15] 发言人 5**:那接下来就不是内存存储的事了,pcb又要加入到B价格调价。 - -**[00:17:21] 发言人 5**:三对,电路板我主板就是主。 - -**[00:17:25] 发言人 5**:因为实际上我们的厂家不管是只做一件事就是主管。 - -**[00:17:30] 发言人 5**:对,所以说接下来的硬件价格调价会更加复杂。 - -**[00:17:35] 发言人 5**:我们本来在这块花精力给售前同步都很困难,还要透传到渠道去,我认这个事情目前阶段干不了。 - -**[00:17:45] 发言人 4**:那不行,你在偷传搜鞋的时候,销售员的时候偷传的,销售是偷传的。 - -**[00:17:51] 发言人 5**:现在都是看那张表,对渠道我可以维护,这个东西就是我们在做品类主推是什么? - -**[00:18:00] 发言人 5**:我觉得可以长时间维。 - -**[00:18:02] 发言人 4**:护着这点,可昨天我们会商量解决。 - -**[00:18:05] 发言人 5**:他的销售这个方式。 - -**[00:18:07] 发言人 5**:对对对,说完没有? - -**[00:18:09] 发言人 2**:说完这个我说几点,刚好因为我们前线人也在,我觉得刚好我就可以发表一下意见。 - -**[00:18:16] 发言人 2**:但是我这个意见最后落实的话,雪生你们也可以下来再说。 - -**[00:18:22] 发言人 2**:我说完了,你大家有什么意见再说。 - -**[00:18:25] 发言人 2**:我觉得第一点,我觉得这个销售还是要全覆盖,这个之前我们提到的一些省,昨天上前两天开会的时候,我跟学校也在商量,就是我觉得我们的速度还是慢的,还要再快。 - -**[00:18:41] 发言人 2**:一个是我们我们如果有地方的,我们如果有原来有市场叫云南,比如原来有现在没有的,旁边覆盖不到的,要赶快覆盖? - -**[00:18:55] 发言人 2**:包括说的湖北、湖南、江西,这个要赶快的覆盖,这第一第二就是我觉得要把这个嗯是吧主次什么的话,我们它分好啊,就是我们的销售还是要把这个把整个把这个眼界再拉开一些。 - -**[00:19:14] 发言人 2**:我觉得你去覆盖一个省,很多个地市和覆盖几个省,我觉得差别也不是很大。 - -**[00:19:21] 发言人 2**:我觉得会多更多的机会就是我们的我们我们希望能能制造一个机制,还是销售觉得他这个市场机会越多,那他就机会越多,能完成的机会也越多。 - -**[00:19:34] 发言人 2**:我觉得得到的机励也越多,然后奖励也越多。 - -**[00:19:38] 发言人 2**:我觉得这个事情我们要把它匹配上。 - -**[00:19:42] 发言人 2**:第一我觉得销售还是要尽可能做到全覆盖,这样有自己的枪杆子,有自己的销售,我觉得好很多。 - -**[00:19:51] 发言人 2**:同时我觉得销售要跟跟我们的这个售前了,虽然说每个省的售前可能不太一样,但是还是要紧密配合,不一样也有不一样的好处,因为不一样一样会显要一对一,一样会一对一会陷入一个就好坏就没有这个比较。 - -**[00:20:09] 发言人 2**:不一样可能售前也会提到? - -**[00:20:12] 发言人 2**:销售会知道大家会各自有个有一个新鲜的,有个新的东西,互相比较有有对你可能更好一些。 - -**[00:20:20] 发言人 2**:户好,这是一个。 - -**[00:20:21] 发言人 2**:第二,我觉得关于省贷这个事儿,我一直觉得中间我可能还是出现一些小的误区。 - -**[00:20:28] 发言人 2**:就是我们一直一直让大家发展渠道是吧? - -**[00:20:31] 发言人 2**:发展渠道发展二线渠道,发展地势渠道,发展金牌渠道。 - -**[00:20:36] 发言人 2**:我们前两天还在讲发展金牌渠道,但从扬州这个我就有个感觉,我觉得其实就是我们已经内幕的渠道,我觉得并没有和我们形成一个特别好的一个关系。 - -**[00:20:49] 发言人 2**:这里面有几点,可能在这个表面上说是咱们还是可以的或者怎么样,但是我觉得其实你比如现在我们发展订台渠道,让人家交几万块钱。 - -**[00:21:01] 发言人 2**:我觉得就是他我们其实核心的一个目的是让他上心,他用心。 - -**[00:21:06] 发言人 2**:就是培训不管再搞再多,你不上心都是假的。 - -**[00:21:11] 发言人 2**:你如果没有真心想跟你谈谈恋爱,那就是耍流氓。 - -**[00:21:15] 发言人 2**:那本身就是你来一个,那渠道就是你来一个,有一个多一个多一个一点都不多? - -**[00:21:22] 发言人 2**:少一个其实也不少。 - -**[00:21:24] 发言人 2**:所以我觉得除了对这个金牌渠道我们就拓展以外,我觉得原来的省代,我觉得我们销售要跟他聊,他是不是真心,有没有真的人,就是我们内部人,我们要内部到渠道下面去,不止内部到渠道商的那个老板,要内部到他下面以后没有团队。 - -**[00:21:42] 发言人 2**:那老板见的世界更多了,一天到晚都是在海王,他妈的那么多人给他做生意的,我我我爱拜你那不就是咱们俩就是逼的意思,是吧,就按次的是吧。 - -**[00:21:53] 发言人 2**:所以我觉得他底下除了他这个省代,他这个跟我们是省代关系外,他底下有没有神,有没有操盘手,有没有销售,或者有没有这个售前,他跟我们是一个什么样的关系,他能不能跟我们做配置,他有没有省贷,有没有跟我们之间比如说哪些项目他能做,男生不能做。 - -**[00:22:13] 发言人 2**:我觉得销售一方面我觉得我们的销售一方面是去建省代,二一方面要跟我们的售前,比如杨昭,因为他们对省代已经很了解了,对不对? - -**[00:22:22] 发言人 2**:你销售你就跟省你们杨招聊,你说这个云南的? - -**[00:22:26] 发言人 2**:哪个地方的时代它怎么样? - -**[00:22:28] 发言人 2**:谁能支持我们,谁是表面上支持,其实不支持他? - -**[00:22:31] 发言人 2**:我觉得这个时代到底它起没起到作用? - -**[00:22:35] 发言人 2**:所以我觉得这个对这个省代要往下沉一级,不只是这个就是一个就像我们对华三的销售一样,我觉得要往下沉一级,就是他每个人状态怎么样,他有没有学习能力? - -**[00:22:47] 发言人 2**:我觉得学的好的,以后有能力的作为我们我们未来拓展的,我把他招过来,对吧? - -**[00:22:53] 发言人 2**:我只要市场拓展好了,我就可以招过来。 - -**[00:22:56] 发言人 2**:那省代也是养他,我也是养他,对不对? - -**[00:22:58] 发言人 2**:所以说我觉得我们的销售要往下,要除了你去看你这个,你说你去拓展,我觉得你现在那些省代到底跟你怎么样,而且你有没有地方,对不对? - -**[00:23:11] 发言人 2**:你外我对不对,我再找一个对不对,我找一个,我们再看看人家觉得卖的这心爱我,因为人家想拓展,所以我觉得这块上关于我们销售人才成立了,关于销售这一块我就多提些要求? - -**[00:23:29] 发言人 2**:就提一些关于这个跟省代之间是什么样的关系呢? - -**[00:23:34] 发言人 2**:我觉得还要再深入,非常深入,深入到一起,这才可以。 - -**[00:23:39] 发言人 2**:尤其是华三不愿意跟这个省代玩的时候,销售说我再给你带一家,我再给你带一家,他可以是吧? - -**[00:23:47] 发言人 2**:没有关系,因为这个市场本来就是这样? - -**[00:23:50] 发言人 2**:就直销本来就这样,没有办法我们去介入。 - -**[00:23:53] 发言人 2**:说是销售因为跟这个时代太好,那个时销干只要跟你关系好,你们俩没来眼去,只要没来去效果好,我觉得都好。 - -**[00:24:01] 发言人 2**:总比俩人他妈见面,妈的互相脑子里心里各揣一把,各揣一个,各揣一个是吧? - -**[00:24:07] 发言人 2**:同同同同同床异梦,总比同床异梦好是吧? - -**[00:24:10] 发言人 2**:所以我觉得这个还是我觉得销售我们的销售的力量要去覆盖到,这是一个我觉得非常重要的事。 - -**[00:24:20] 发言人 2**:你只有覆盖到了你的省代赋能,才能够说是发自内心的。 - -**[00:24:24] 发言人 2**:要不然你光是培训那是不行的,这是一方面。 - -**[00:24:28] 发言人 2**:还有一个就是我想说我们现在这个不管是配置、报价。 - -**[00:24:34] 发言人 2**:好,就是我觉得现在一直在说这个A这个事,我觉得昨天前天也一直在思考这个事,我觉得你先别你说你变成产品,然后变成商品拿去卖是吧? - -**[00:24:46] 发言人 2**:有竞争力的商品拿去卖,然后变成产品。 - -**[00:24:49] 发言人 2**:我觉得前面还有一个,你不管是产品还是商品,你也得有个需求是吧? - -**[00:24:55] 发言人 2**:我觉得就是针对我们,尤其我们现在这个部门,我们定制开发部门,我们这个A这个部门,我觉得应该要花一半的时间,花一半的精力,就是来放在我们整个营销渠道上的it化。 - -**[00:25:09] 发言人 2**:就AI的AI的变革,因为大量的公司在裁员,当然AI考你说是软件代码人在裁,我觉得可能还不止。 - -**[00:25:20] 发言人 2**:再往下走的话,其实就是新效率的时候,你首先是新效率? - -**[00:25:26] 发言人 2**:所以我觉得那你你那你现在的交易,你这个交易还很低频的那你在股票上面的高频交易,非常高的高频交易。 - -**[00:25:37] 发言人 2**:我为啥我现在慢慢理解为啥是deep see出现在高频交易了,因为他要高频交易,所以他要程序化。 - -**[00:25:44] 发言人 2**:因为他要程序化,所以他需要AI他需要AI来指导。 - -**[00:25:48] 发言人 2**:所以这一连串的引导,你看梁玉峰自己这次出200个亿,很少有人一次能拿200个亿出来的。 - -**[00:25:55] 发言人 2**:腾讯拿100个亿做高频交易,做这个deep sick的、deep ck的上市难。 - -**[00:26:01] 发言人 2**:就是我们是个交易,我们视个交易,这个股市也有股市的交易,它比如说这个股票好不好,高不高级,低不低级,买不买进,买不卖不卖出。 - -**[00:26:12] 发言人 2**:其实我们整个信息,我们跟省贷,我们跟渠道商,我渠道商要不要买我的产品,最后能不能出去,我们也是交易。 - -**[00:26:20] 发言人 2**:所以我觉得在在整个整个环节上,我觉得我们要要智能化,要智能化程序化,智能化要快。 - -**[00:26:29] 发言人 2**:这个事情我觉得我们要去把它做。 - -**[00:26:31] 发言人 2**:与其你跟人家说,你说我还能做个新产品,你在屋里想还不如闭门造车,还不如我们就跟我们的杨昭,跟我们的销售,跟我们的产品经理聊,我们怎么来把我们内部的一些A化速度变快。 - -**[00:26:46] 发言人 2**:因为现在你做co技已经快很多了,是吧? - -**[00:26:49] 发言人 2**:你一个人就可以把很多东西做了,是吧? - -**[00:26:52] 发言人 2**:我觉得我们我们这个定制开发要有一个这个要有一个要有这个准备,你把我这个东西弄好才行,可你我这个东西弄不好,你天天就吹牛逼,不行,这个是我说的。 - -**[00:27:06] 发言人 2**:关于it踢要全面进入,不管你配置,包括培训全面进入,包括之前提到的数字人。 - -**[00:27:13] 发言人 2**:我觉得对于省代的宣传,你对省代的宣传,我觉得如果数字能达到一个每天出几条这个水平,我们就可以来迅速的整合一个一个的一条一条的这个库? - -**[00:27:27] 发言人 2**:只面对我们省代进行宣传,我不面对公众号,就面对省代你怎么卖,我觉得也可以出一些东西。 - -**[00:27:34] 发言人 2**:我觉要加快加快沟通交流的力度,加快这个覆盖面。 - -**[00:27:41] 发言人 2**:我觉得这个事儿是肯定百分之百,未来一定是这个方向? - -**[00:27:45] 发言人 2**:高频交易就是这样的,不早我越来越想他。 - -**[00:27:48] 发言人 2**:高频交易的本质就是通过机器来来替代你的人,然后让你他妈的把你干废。 - -**[00:27:54] 发言人 2**:销售整个很多环节,我觉得要机器也要赶快上,要不然你就光是人的销售,我觉得是不够的,我就先说那么多。 - -**[00:28:02] 发言人 4**:我们继续,最后我插上去,张俊杰说的话,我们还要再震重一下。 - -**[00:28:07] 发言人 4**:就是现在的省代我也去聊过,就徐凯跟沈代也很突出。 - -**[00:28:12] 发言人 4**:完了之后岳磊跟沈代也更,就是说省代现在他们因为咱们中面现在搞的就有纸牌,又有红牌。 - -**[00:28:20] 发言人 4**:还有一些现在GPU的一些方案,以及你的库存,它的老概念配出的东西。 - -**[00:28:25] 发言人 4**:报了价没货反而麻烦更大。 - -**[00:28:27] 发言人 4**:就是我就是表扬这批。 - -**[00:28:29] 发言人 5**:所以说刚通我。 - -**[00:28:30] 发言人 4**:说到底是用用什么能把我们库存给连起来,把现有方案都堆到一起,我再配置,我才敢去找总代做配。 - -**[00:28:39] 发言人 2**:你要有一个,比如每个月,你为啥不能说高频交易高是每天每天有撤,甚至每每高频交易是每分钟也撤。 - -**[00:28:47] 发言人 2**:因为他们每分钟我现在卖,下次买我几个账户倒就把你套进去了,就每分钟都要测略。 - -**[00:28:54] 发言人 2**:那你现在你说我拿不出来,因为我们的很频繁,所以只能回来问我拿不出来,对于这个销售的策略我拿不出来。 - -**[00:29:02] 发言人 4**:对于这个现在的策略,我觉得本身就是一个错误。 - -**[00:29:05] 发言人 4**:那我就要么我直能就不到的去,所有事就都都丢到售钱,那售钱得找俊杰确认。 - -**[00:29:10] 发言人 4**:所以说他们忙来忙去,其实不是位置,是沟通有没有库存,能不能发货,能什么久多久发货,什么时候付款的问题。 - -**[00:29:18] 发言人 4**:其实不是。 - -**[00:29:19] 发言人 2**:我很多年前在新加坡看到一个啤酒馆,我就很深刻感受他那个啤酒杆里面卖的啤酒很神奇,他就是一个数字的东西,你只要人点的多了,它就往上涨,它价格会往上涨,因为他库存有限,那就每他他他他他就在那个啤酒馆里放放放了放了这么多。 - -**[00:29:36] 发言人 2**:如果你不点着他那个价格,因为他要卖掉,你那个往下降,我操,我觉得很神奇。 - -**[00:29:41] 发言人 2**:那就是一杯一杯来决策,然后他就会推动,他就会趋势驱动你那些东西就是我觉得要有我,我就要有一些极制。 - -**[00:29:49] 发言人 2**:刘季,你们商量,你们带着你们的人,带着你们,我这儿有好几个做做做做这个需求开发的,我要把它改过来,好吧? - -**[00:30:00] 发言人 2**:各位领导,因为这都是渠道上的事儿,我补充两句。 - -**[00:30:05] 发言人 2**:第一个就是杨刚说这个配单的问题,之前我跟俊杰总和生高总也沟通过。 - -**[00:30:10] 发言人 2**:俊杰总说后面会做一个面向于渠道的,就是把我们所有的产品清单,产品的型号都都公布出来。 - -**[00:30:18] 发言人 2**:然后现在的话我的做法是每周会更新一版纸质版,就excel表格的那个产品,所有的咱现在所有产品的库存清单,还有价格会稍微上浮一点,然后给到销售,销售可以向外去发,这个是目前的一个做法,就是这块会后面会一定会后面慢慢好起来。 - -**[00:30:36] 发言人 2**:然后对于省代的这个工作上的事是这样的,因为现在现有的省代基本上都是从原来华三的老省代继承过来的。 - -**[00:30:44] 发言人 2**:他们愿不愿意跟我们合作,或者合作的意愿怎么样,其实是有一个问号。 - -**[00:30:49] 发言人 2**:因此的话其实也是希望大家今年能够把金牌的事做的更好一些,就是多发展一些金牌。 - -**[00:30:55] 发言人 2**:我们可以从这些金牌里头去找出来后备的省代或者预备的省代。 - -**[00:31:00] 发言人 2**:因为百姓那些预跟我们配合不好的生态,其实后面如果有备选,就可以把它慢慢的就剔除掉。 - -**[00:31:07] 发言人 2**:目前还维持现状的原因是我们在各个一些省份里头是没有这种后备力量的。 - -**[00:31:13] 发言人 2**:因此的话想法就是把今年金牌多发展一些。 - -**[00:31:16] 发言人 2**:后面如果觉得哪一家省代不行的话,我们沟通一下就可以把它替换掉。 - -**[00:31:22] 发言人 2**:这个是这块如果补充的两个点,各位领导继续我我我补我补充一句,我觉得省贷其实渠道是讲感情的。 - -**[00:31:31] 发言人 2**:如果你经常去看他,然后聊的过程中你帮我解决了一些事,他肯定会觉得因为你帮了我,我下一次我也会帮你我觉得这是百分之百的。 - -**[00:31:42] 发言人 2**:是的,省贷是讲感情的。 - -**[00:31:44] 发言人 2**:所以说我们的销售,我们的售前本身就是要有温度是吧? - -**[00:31:48] 发言人 2**:你售前如果解决了什么问题,你找销售,销售售前可能有时候事的多以后,他不是很注意这方面的这个温度的个问题。 - -**[00:31:57] 发言人 2**:对他可能有时候他觉得他一下就过了,我说错了话,我忘了我过了或了,因为我今天事忙,但是我们的销售一定要有这个温度,就销售在这个方面一定要敏感。 - -**[00:32:08] 发言人 2**:人家是什么事给你造成了那么多的事儿? - -**[00:32:12] 发言人 2**:你这个我去解释一下,我去谈谈。 - -**[00:32:15] 发言人 2**:我觉得对于这个省代的这个事儿,我们下一代学习,我觉我们还要组织一些回访,就是组织一些包括人的回访,不是积极回访,不是10086。 - -**[00:32:25] 发言人 2**:好,我他妈特别反感10086是吧? - -**[00:32:28] 发言人 2**:这个真的你你你他妈移动中移动你真的要回访你他妈你你你要用那种什么高级的。 - -**[00:32:33] 发言人 2**:我那是中移动的市场部总经理,那我谁谁谁在回访你高I。 - -**[00:32:37] 发言人 4**:有温度的对,要有立马就麻都一堆。 - -**[00:32:39] 发言人 2**:要有温度的,你打个电话,或者有时候发个微信,加个微信以后我问一问。 - -**[00:32:44] 发言人 2**:雪球你比如说你把所有的省内的微信都加了? - -**[00:32:48] 发言人 2**:在省内的那些那那些负责人微信加了,你问问他。 - -**[00:32:51] 发言人 2**:你把最近怎么样或者这个怎么样,然后你把微信也推给我,我也加了,我就问问他。 - -**[00:32:57] 发言人 2**:我觉得要有温度,你只有要个温度,双方我们要建立一个诚实诚信的。 - -**[00:33:02] 发言人 2**:你比如说咱们你说那卖矿泉水的那矿泉水那几毛钱,那卖矿泉水的那些那那那个那个我相信不管是中新后保,还是后面那个农夫山田那个谁,我觉得在这方面都是大事情。 - -**[00:33:16] 发言人 2**:所以还是要去跟要对这个省代相互,是吧? - -**[00:33:20] 发言人 2**:他都是有原因的,做生意毕定谁谁爱不爱谁,我觉得还是有有一个有一个前世今生的。 - -**[00:33:27] 发言人 2**:好吧,就先说这么多好,继续。 - -**[00:33:31] 发言人 1**:好,我们下面就是授权代表第二位魏光耀。 - -**[00:33:40] 发言人 2**:这个杨昭你总有什么想法,你等会可以插进来继续说,反正这个我觉得都可以。 - -**[00:33:48] 发言人 0**:好的,那不我先补充两句。 - -**[00:33:50] 发言人 2**:你说看。 - -**[00:33:51] 发言人 0**:博现在其实也点了很多问题,我确实是这样的,其实我我这边对沈代这边,我觉得他们还是挺愿意积极帮我们去处理一些需求对接的。 - -**[00:34:03] 发言人 0**:但我本意其实也不是说把这些项目直接甩给省代,就不管,就本地还是因为我们现在不是有汇智的销售,我觉得汇智的销售在审批之间更多可能可以做一个联合计的。 - -**[00:34:18] 发言人 0**:一因为包括把我们跟省代,跟华山双方联合在一起,然后聚力去去突破项目。 - -**[00:34:25] 发言人 0**:我觉得如果能达到这一点就挺好的。 - -**[00:34:29] 发言人 2**:好的,这个汇智省汇智的销售有一个很重要一点就是情绪价值? - -**[00:34:36] 发言人 2**:你都不配单了,那就就是情绪价值。 - -**[00:34:39] 发言人 2**:一定要把情绪价值做好,情实情绪价值也情绪价值也是人生存的本质。 - -**[00:34:46] 发言人 4**:只要你要搞到18,具体就把这个的配置城市把弄出来。 - -**[00:34:51] 发言人 4**:其实销售配套也没有很了不起事情。 - -**[00:34:54] 发言人 4**:没问题。 - -**[00:34:54] 发言人 4**:销售我觉得你弄好了培训他他初步配单,到时候交给收亲戚财务认为是有问题的。 - -**[00:35:00] 发言人 4**:最后看库存怎么样的流程出来。 - -**[00:35:03] 发言人 2**:如果真的这个销售他一点都不用配单,但是他能把很多新能做的很好。 - -**[00:35:08] 发言人 4**:我觉得绝对是个好。 - -**[00:35:10] 发言人 4**:而且我们现在遇到的重点二级渠道重的是10万到20万的项目。 - -**[00:35:15] 发言人 4**:这种项目配单其实应该没什不难,只现在都没把指导给弄清楚,以前销售配单不太正常的一些事,谁说一定要S一配给大我。 - -**[00:35:28] 发言人 2**:不是那好。 - -**[00:35:31] 发言人 2**:杨思梅,你现在。 - -**[00:35:33] 发言人 4**:会配单吗? - -**[00:35:35] 发言人 4**:没没学过。 - -**[00:35:37] 发言人 2**:你会配单吗? - -**[00:35:39] 发言人 6**:什么很完美。 - -**[00:35:40] 发言人 2**:没没听清就配单。 - -**[00:35:43] 发言人 2**:我现在有一些简单的,大家都因为陈江之前教了我。 - -**[00:35:50] 发言人 2**:对的,你看看好好学习。 - -**[00:35:52] 发言人 2**:除了人家教你,你自己反了,要多学学,多问我我我觉得肯定会的。 - -**[00:35:57] 发言人 2**:如果你需要,比如需要一个,你说我需要还是要讲一讲。 - -**[00:36:01] 发言人 2**:别人教的,别人老是这个说的太碎劲了,系统性讲一讲,那我们就安排人来系统给你。 - -**[00:36:08] 发言人 6**:讲一讲好吧。 - -**[00:36:09] 发言人 6**:对,服务器他因为华那边要我们配。 - -**[00:36:12] 发言人 2**:这块创,然后就。 - -**[00:36:17] 发言人 6**:这些其。 - -**[00:36:18] 发言人 2**:他的简好,继续。 - -**[00:36:25] 发言人 7**:各位领导,各位同事,下面由我做一下工作的汇报总结。 - -**[00:36:30] 发言人 7**:我觉得最大的问题就是目前遇到几个分类。 - -**[00:36:35] 发言人 7**:第一个就是产品的兼容性问题,这里主要搞表现,第一个就是我们对特定软件的兼容性。 - -**[00:36:42] 发言人 7**:这个我这边举了个例子,就是客户临沂职业技术学这个项目是对于咱们来说是交付了,但是对于这个最终客户来说还没有验收,他们就遇到了这种专业的实训仿真这块,受限于咱space这个终端版本比较低,它是不支持相对于鼠标模式的。 - -**[00:37:04] 发言人 7**:所以说在这个实训场景里边有一些3D软件,3D实训的这个就是实用不了。 - -**[00:37:11] 发言人 7**:然后这个问题当时也提过定制,就是第一个工作量比较大,第二个是还要受限于排期。 - -**[00:37:20] 发言人 7**:其实这个就是相互这两个问题相互交织,导致本来项目预算比较低,他就没有相关的定制适配费用。 - -**[00:37:31] 发言人 7**:所以说如果说这种情况比较通用的问题,如果说归类我们把它归到这个去都去定制去解决,其实上是我们产品的一个弱项,这是说特定软件的。 - -**[00:37:47] 发言人 7**:第二个是说这个操系统,目前因为他说这个龙虾也好,或者说这个大模型小模型也好。 - -**[00:37:55] 发言人 7**:实际上无论是教育还是办公,很多客户都在考虑去利用云桌面里边对应的算力,去上相应的咱说的大小模型。 - -**[00:38:06] 发言人 7**:你像中国传媒大学,这是咱一个比较好的局点,而且今年还要破900点。 - -**[00:38:13] 发言人 7**:他们客户提出来要求咱去做最新版的无班图适配。 - -**[00:38:18] 发言人 7**:当时learning space work space做完了,learning space还没做,这个也是有工作量,然后还有排期的问题,这我认为是有共性的,在很多项目都有共性,这是产品的问题。 - -**[00:38:32] 发言人 7**:第二个就是产品,还有一个就是外设上,你像这个都盛华,这是院磊其实就一直在做项,这是他非常优质的客户,这个客户对咱的产品非常认可。 - -**[00:38:45] 发言人 7**:这里边有一个很明显的问题,就是目前的熟写板用不了的。 - -**[00:38:51] 发言人 7**:也是当时也是报了这个研发了,也是需要提特配的,就需要做深度定制。 - -**[00:38:57] 发言人 7**:如同此类的,比如说金融行业的这个优盾,就咱们现在测过的比较多的项目。 - -**[00:39:05] 发言人 7**:无论是央国旗下边财务公司,还是这个企业里边的财务职能部门,其实都是及到优盾的问题。 - -**[00:39:13] 发言人 7**:当然来说了,友商他能支持能兼容,那肯定是因为人们人家前边遇到过这种项目。 - -**[00:39:20] 发言人 7**:那么对于咱来说,如果这种情况提特配那么需要走研发的话,其实也是个弱项。 - -**[00:39:28] 发言人 7**:而很头疼现在这修息测试很怕遇到这些比较常见的这种财务外设、U盾什么加密U盘。 - -**[00:39:37] 发言人 7**:其实现在很害怕,这个遇到了就不好解决,特别是这阶段你是还是很难解决的。 - -**[00:39:45] 发言人 7**:第三个就是咱说的整体的客户需求,有一些特需的定制,比如说中海油这个它涉及到它安全了,那么邮政袋里边客户通过排查发现了用了一些开源软件,就是咱也咱这个产品里边用了一些开源软件。 - -**[00:40:04] 发言人 7**:它实际上是涉及到一些,比如说以色列的一些美国的一些带后门的。 - -**[00:40:10] 发言人 7**:根据客户要求是必须做这个国产化的自主替代的。 - -**[00:40:15] 发言人 7**:当然客户提实有要求,他是付了钱的,而且签完合同就付了一半。 - -**[00:40:20] 发言人 7**:但实际上这个交付的时候,我们比预期比客户的最后的验收节点还晚了半个月左右。 - -**[00:40:28] 发言人 7**:这个项目目前就没验收。 - -**[00:40:30] 发言人 7**:然后客户现在对咱来说,第一个就是项目进度他有拖延。 - -**[00:40:35] 发言人 7**:第二来说他们现在对咱有有信任危机,就觉得你看我们配合的都还很好,你让我们去交钱,我们也交了。 - -**[00:40:44] 发言人 7**:那为啥这个还会有拖延呢? - -**[00:40:47] 发言人 7**:是什么情况呢? - -**[00:40:48] 发言人 7**:是这个特别是还受到受受到咱现在品牌切换的一个影响。 - -**[00:40:54] 发言人 2**:这细节你就不应该。 - -**[00:40:56] 发言人 1**:继续说。 - -**[00:40:57] 发言人 1**:好,比如是这个问题。 - -**[00:40:58] 发言人 7**:就是咱现在很多事儿其实都受限于研发的人力不足和研发的大排期的这个影响是有冲突的。 - -**[00:41:07] 发言人 7**:再一个就是杨章提的,我这边也有这个省态信息不同步的问题,包括咱信息传递的一个断层,就不就是其他也说了。 - -**[00:41:17] 发言人 7**:还有一个就是他对于整个处理的流程,特别是。 - -**[00:41:23] 发言人 1**:售后的过程。 - -**[00:41:31] 发言人 7**:全程的参与。 - -**[00:41:32] 发言人 7**:另外他们对于这个顾股问题的排账,其实可以看到,有些售后他其实对于一个标准化的排查流程,去查手册,去应用知识库去解决。 - -**[00:41:45] 发言人 7**:没有,都是在群里问如果打群里问,咱的售后同事忙了,没有及时解答,就咔就电话就打过来了。 - -**[00:41:54] 发言人 7**:这个事是存在的,而且比较频繁,其实每天都有。 - -**[00:41:59] 发言人 7**:再一个就是说白了还有一些历史遗留问题,其山东这边还有系统部那边比较突出,这有很多项目,这个咱说了华三的归华三,咱的归咱。 - -**[00:42:11] 发言人 7**:但是这个新项目有了扩容的机会,或者是终端增补的机会,那么客户就会拿这个来要挟咱。 - -**[00:42:19] 发言人 7**:那么你要把前期的问题去给我处理好,解决好。 - -**[00:42:23] 发言人 7**:但是现在华山就说,我们售后解决不了这个怎么怎么地,这个问题也不难说,你看你们去去协调售后去处理这个事,其实我贾成明遇到很多了,很多事都是我们先去投入,咱的售后先去参与做一些,就没有资金,没有人力方面的投入,那主要但就耽误时间,先把这个事去做了,做完了之后才去做项目。 - -**[00:42:49] 发言人 7**:这个碰到的比较多,甚至说有些项目做完了,客户也不提啥时候扩容了,销售这华山销售就往后夺了,就说等等。 - -**[00:42:59] 发言人 7**:今年没钱,可能到下半年或者说八月份,明天到9月份就这样。 - -**[00:43:05] 发言人 7**:这种状态是有的,而且是一个比较常态化的东西,剩下就是我想说说就是我工作里边的一些体会。 - -**[00:43:14] 发言人 7**:第一个就是咱说的这个售前工作的下沉。 - -**[00:43:19] 发言人 7**:其实现在售前是当办个销售用,当这个产品经理用,当这个售后用,还是要深入到客户的现场,要去仔细的洞察客户的真实需求,包括去做好这个产品架构和产品选型的引导,以及去识别里边这些的风险,这个还是要做到。 - -**[00:43:41] 发言人 7**:再一个还是要做好这个资源的利用,包括要会这个就咱说了,省代也是要处好关系的,不能单纯说人家给咱去解决问题的,也是要同步给他一些项目的机会,让他主动去找华三跟踪。 - -**[00:44:01] 发言人 7**:这儿也要们也借力打力,这个也会让他去帮咱处理一些售后的问题,帮咱去处理一些测试的问题,帮咱去处理一些问题。 - -**[00:44:12] 发言人 7**:这还是要学会盘活资源的。 - -**[00:44:14] 发言人 7**:另外就是这个沟通层面,我认为还是要做好和上级的领导的信息同步,包括这个项目核实开标,核实申请商务这个项目的领导价格审批对他采购的影响。 - -**[00:44:31] 发言人 7**:另外要及时把这些进度和结果要对齐,要做好这个信息的闭环。 - -**[00:44:38] 发言人 7**:最后就是我认为还是要作为售前,从技术角度来讲,还是要做好一个技术的底线工作。 - -**[00:44:47] 发言人 7**:对于一些明显有风险的问题,对于一些无法兑现或者不好实现了,这个到了咱们就要兜底了。 - -**[00:44:56] 发言人 7**:不要做这个无法兑现的承诺,还是要维护好和客户和华泰销售,和咱这个省代相互建立好的信任关系。 - -**[00:45:07] 发言人 7**:彭总、盛刚总、徐秋总,我认为主要就是这么几块。 - -**[00:45:14] 发言人 2**:你讲完了。 - -**[00:45:15] 发言人 7**:对。 - -**[00:45:16] 发言人 2**:那你后面的七八是你是你。 - -**[00:45:19] 发言人 5**:把P P. - -**[00:45:21] 发言人 7**:做了分险,实际上我都一样做了总结。 - -**[00:45:24] 发言人 7**:那那我跟你讲。 - -**[00:45:25] 发言人 2**:我从倒数最后一页跟你说,你既然这几个东西你都都很清楚了,那为什么前面那些问题你往上咱们倒着说,从第六页往第五页,第四页说,你就你第五页你这个你占用资源,那你这俩事你是解决不了的。 - -**[00:45:43] 发言人 2**:第五页对解对。 - -**[00:45:45] 发言人 7**:有些是解决不了的那。 - -**[00:45:47] 发言人 2**:你解决不了怎么办呢? - -**[00:45:50] 发言人 7**:解决不了应该就是你们先放。 - -**[00:45:52] 发言人 7**:那是我认为是历史遗留问题。 - -**[00:45:54] 发言人 7**:这个我跟法销售说了,我说你这个你要提及,你不能让我老是给你站前台,你这个事你作为销售你是第一责任人。 - -**[00:46:03] 发言人 7**:那无论这是你前期遗留的项目,还是上一个销售给你的项目,你首先你得我。 - -**[00:46:09] 发言人 2**:我你你既然善用资源,我觉得这个事就是你你觉得你有些解决不了,但是又你有点无法说的。 - -**[00:46:17] 发言人 2**:我觉得你可以通过雪秋,通过我去找他们找这个谁了,找他那个叫什么? - -**[00:46:23] 发言人 2**:是找雷明阳。 - -**[00:46:24] 发言人 2**:就说这个事儿从从你比如说你比如华能,从长期来看,我们应该怎么解决,提些建议,然后让雷明阳他们,他们华三再给一些资源就来整合这事儿。 - -**[00:46:39] 发言人 7**:是朋友,您说的对,这个也是资源置换的方式,对吧? - -**[00:46:46] 发言人 2**:我觉得这是一个。 - -**[00:46:48] 发言人 2**:第二,因为我有些东西你说的太细了,你说前期部署的113一直存在部署,在新的上目中一个问题被反复提及,那这个事怎么办? - -**[00:47:00] 发言人 2**:那C113也你说说不。 - -**[00:47:04] 发言人 5**:关他是啥问题。 - -**[00:47:06] 发言人 1**:我没听你反馈过。 - -**[00:47:08] 发言人 7**:是华东招标中心最早19年采购的终端,有问题,这个终端他是每次重启卖地址都会被自己变。 - -**[00:47:21] 发言人 5**:那个地址变化影响了什么? - -**[00:47:23] 发言人 7**:每次都不一样。 - -**[00:47:25] 发言人 7**:然后他招周为招标中心,他终端的ma克是和虚拟的麦克都是要被他招投标系统抓取到的,所以说就影响他现在招投标这个事儿。 - -**[00:47:38] 发言人 5**:他有多少台? - -**[00:47:40] 发言人 7**:29台,但是分。 - -**[00:47:44] 发言人 5**:散在四个地方。 - -**[00:47:48] 发言人 7**:在都不。 - -**[00:47:49] 发言人 2**:在北京。 - -**[00:47:51] 发言人 5**:在都是啊。 - -**[00:47:54] 发言人 4**:是的,这个问题我说一下,因为我们接下来马上要没有2202307,就包含梦洁拿回来的历史签单客户这种项目肯这种事情绝非一次会,每个省份都有。 - -**[00:48:10] 发言人 4**:第一他买的很早,二过了维保和质保,3111。 - -**[00:48:16] 发言人 4**:对他就会提出他就会提出你这有问题,然后这你解决还是不解决? - -**[00:48:21] 发言人 4**:给你再画个饼,你解决我就再给你在你这个项目。 - -**[00:48:25] 发言人 4**:但是一般你解决了,你就不能觉得远达环保,重庆的理工大学都没有工资。 - -**[00:48:30] 发言人 2**:个不是你我是你们,我就个你善用资源,下一条才行了。 - -**[00:48:35] 发言人 2**:善有资源,我觉得这个事咱们聊聊,这个事儿如果给你代表出一点,你代表出也不想做这客户,你比诉两个方向,第一就是我不想做这客户,无情所谓。 - -**[00:48:47] 发言人 2**:第二,我做着客户,但是云桌面给我无就所谓。 - -**[00:48:50] 发言人 2**:你们针对这个,你们去自己去思考一下这个2两个2个方式。 - -**[00:48:54] 发言人 2**:第一,如果你想做的客户你有所所谓,那咱们俩商量各出一半。 - -**[00:48:58] 发言人 2**:我觉得你下一页写的很好,但是我正儿八经觉得你在善用资源方面,就跟老陈比差远了。 - -**[00:49:05] 发言人 2**:老陈当时做一个特别小的销售的时候,我就特别善于处理这种复杂问题。 - -**[00:49:10] 发言人 2**:我甚至可以直接拿客户的章,写一首给中信通讯侯维威的信八盖上章拿回去找那边要东西,资源过来,要完资源过来,我顺带我自己还另外额外再卖掉一笔其他东西的钱。 - -**[00:49:24] 发言人 2**:我们两个事情一起进。 - -**[00:49:25] 发言人 2**:所以说我觉得这些事拿水消,你们自己去动动脑筋,不是解决不了。 - -**[00:49:31] 发言人 2**:你说实话,二十多台我送的就可以。 - -**[00:49:33] 发言人 2**:你拿库存有没有有没有这个老机器? - -**[00:49:37] 发言人 2**:没有老机器是吧? - -**[00:49:38] 发言人 2**:那不可吗? - -**[00:49:38] 发言人 2**:20块也没多少钱。 - -**[00:49:40] 发言人 2**:你如果说你下来,你下来就遇到这个问题了,还是这句话,你未来有没有库窿好,我们俩什么关系好? - -**[00:49:46] 发言人 2**:你没娱乐面的库窿,但是你有那个什么的库窿,你有华三销售,你有华三的产品库窿,这也是我的把柄。 - -**[00:49:54] 发言人 2**:要不然我说你们用面为我让他去球滚蛋,完了我就我不但把它做坏,你把它做的更坏,那你华三说无所谓,那咱们都无所谓是不是? - -**[00:50:02] 发言人 2**:因为我一个我一个你不影响我,但是反之如果我把他做的更坏,他113不是现在偶尔出事吗? - -**[00:50:09] 发言人 2**:我让他天天出事,我让他天天出事,我就每天给他躲的后台给他捣坏了。 - -**[00:50:13] 发言人 2**:你划算积不积极,你比证经理没兴趣,那咱就ok了。 - -**[00:50:16] 发言人 2**:咱各方都有你代表这问题,如果有兴趣,咱俩一起来解决,对不对? - -**[00:50:20] 发言人 2**:你一万我一万,这对二十多台对于代表说对了,杨来说就是洗个澡的事,就洗个脚的事,还是你们没有找到这个事情怎么去? - -**[00:50:29] 发言人 2**:我说的一个个体的事儿,就是我稍微把他拉开点。 - -**[00:50:33] 发言人 2**:对,人家教你唱歌的事儿,你把它当成大事。 - -**[00:50:37] 发言人 2**:如果哪天的心情好,一杯酒下去,雪就过去。 - -**[00:50:40] 发言人 2**:那总你把你那个华丽医院你要不要? - -**[00:50:43] 发言人 2**:你不要我也不要了,我们俩不都扯淡了。 - -**[00:50:46] 发言人 2**:那一杯酒下去,你们想说弄,我操,那就是两瓶茅台,咱俩一起行就完了吗? - -**[00:50:52] 发言人 2**:听懂没有? - -**[00:50:53] 发言人 2**:朋友们友听懂了,我觉得不是不能解决,而是你就是你你上一页写的。 - -**[00:51:04] 发言人 7**:你所以说庞总这个事,其实我也在我也在研究,这也在琢磨。 - -**[00:51:11] 发言人 7**:就是我要看你销售的对这个项目的紧张程度,你觉得这个客户给你提出来问题,你愿意去使劲,那那才有价值。 - -**[00:51:23] 发言人 7**:假如说他92虎官不管了,我踢给你,你看着办,那那我怎么看着办? - -**[00:51:29] 发言人 2**:你觉得他要有扩容,你就主动。 - -**[00:51:32] 发言人 2**:谁这个事情叫谁眨眼,谁输了,他有没有扩容,他有扩容你赶快主动,我觉得就是这样的。 - -**[00:51:40] 发言人 7**:对他现在很多时候就碰到了这种问题。 - -**[00:51:44] 发言人 7**:他他又说销售说这个要扩容了完了这有问题你得给他解决。 - -**[00:51:49] 发言人 7**:我说那你很简单,我说你实在不行,你下个维保呗,你现在连400都没有我怎么认为你对这。 - -**[00:51:57] 发言人 2**:个事重视这个法律,其实这个事也可以理论,就因为客户一般,其实这客户心里也很急,很清楚。 - -**[00:52:04] 发言人 2**:我没事,我也没扩容,我找你我拿捏不住你是吧? - -**[00:52:08] 发言人 2**:我又不是老板,对我就是一个下面踢那个工程师,我怎能拿捏你我只能在扩容的时候拿捏你是吧? - -**[00:52:15] 发言人 2**:这个互相拿捏的。 - -**[00:52:16] 发言人 2**:搞不好你那俩事,他妈的都是把他拉出来,就差洗来差请他洗个脚,一洗完脚,那都是小事。 - -**[00:52:22] 发言人 2**:明天我把它全部淘汰了,后天我再买。 - -**[00:52:24] 发言人 2**:19年的都五年了,他妈的早都资产折旧折完了,后天我再来,对不对? - -**[00:52:29] 发言人 2**:我再给你再新买点,要买这就差洗个脚,是不是? - -**[00:52:33] 发言人 2**:这你你你你你不跟人家洗澡,就就把就把这个谁提出来这个问题,把他拉出来洗个脚,我操。 - -**[00:52:39] 发言人 2**:就这么爱提供的那个是吧? - -**[00:52:41] 发言人 2**:他觉得什么的,他他有这个有有这个想法。 - -**[00:52:44] 发言人 2**:所以我觉得下来,每一个我觉得包括我们的售前销售之间的还是要互相交流,就是要善于什么呢? - -**[00:52:52] 发言人 2**:刚才我跟雪哥说,我说售前和销售如果不搭班子就是互相有一个差异化,我觉得是对那个叫一种比较comp有一种比较。 - -**[00:53:02] 发言人 2**:如果他俩真正搭班子也有好处,那就是一个狂哏,一个逗人是吧? - -**[00:53:07] 发言人 2**:他妈的一个说一个弄,他也很也也是他妈的你说也很容易,他妈的说那个不行,这个给给我给我拧俩螺丝,就可以去谈谈一个这个是吧? - -**[00:53:19] 发言人 2**:这也是一个好办法。 - -**[00:53:20] 发言人 2**:所以我觉得售前和销售之间还是要有默契的。 - -**[00:53:26] 发言人 2**:还是有默契是能做到一些事情是吧? - -**[00:53:29] 发言人 1**:你会说很难。 - -**[00:53:31] 发言人 4**:很多也会说。 - -**[00:53:37] 发言人 2**:好,你你这个你这个继续说,你这个小细节的事儿,你们如果你会善用资源,就不在这谈这个特别小细节的事儿了,是吧? - -**[00:53:47] 发言人 2**:再往下好朋友。 - -**[00:53:50] 发言人 7**:其实也是就省内信息不同步的问题。 - -**[00:53:55] 发言人 7**:怎么说呢? - -**[00:53:56] 发言人 7**:因为很多省代,因为怎么说呢? - -**[00:53:59] 发言人 7**:我觉得一个典型的例子就是省内他本身在省内特别是渠道圈,他其实已经建立了口碑。 - -**[00:54:07] 发言人 7**:因为前期他带过很多项目,就和这个杨昭说的一样,其实很多小项目都是先从省代汇过去,省代很多是他们自己就能承接到,他解决不了他才找咱。 - -**[00:54:20] 发言人 7**:而现在的问题,是他们现在手里啥也没有。 - -**[00:54:24] 发言人 7**:你看新的胶片怎么去汇报,包括怎么去报价选型这个产品配置都没有。 - -**[00:54:32] 发言人 2**:我想又又加一句,我一直觉得我觉个it部能做些事儿。 - -**[00:54:41] 发言人 2**:这个小红书为什么能成为他妈的很多信息交流的特点呢? - -**[00:54:47] 发言人 2**:对不对? - -**[00:54:47] 发言人 2**:那你如果你能在省代里面搞一个小红书是吧? - -**[00:54:51] 发言人 2**:一个是你这个选股二里面他一查,他们一看这个东西,一看几个案例怎么弄的。 - -**[00:54:56] 发言人 2**:我操,我就我觉得其实这个事儿就如何连接省代,这个事我觉得it里面在我们里面原来可能达不成。 - -**[00:55:05] 发言人 2**:因为原来你原来你觉得我觉得原来可能就是主要原因就是的那个成本太高了。 - -**[00:55:11] 发言人 2**:我现在觉得拥为有了龙虾以后,有了这个什么以后,就知识库。 - -**[00:55:17] 发言人 2**:然后由知识库形成了一些程序性的东西,然后如何推送,如何让用户有感知,有很多种方式是吧? - -**[00:55:27] 发言人 2**:那那那那很多你看我觉得有时候我买个东西看人家,人家有些博主就是开箱,我把每个产品拿来吹个牛逼,你说他有没有趋向性? - -**[00:55:36] 发言人 2**:他当然有了,谁给他钱他可以优先进,但是你看不出来,我操这个速度快,个什么快,巴拉巴拉给你开八个箱,我操我觉得这很有意思,你小红书里有很多这种,对不对? - -**[00:55:48] 发言人 2**:那为什么人家就认为小红书上看那个东西就觉得就觉得我就觉得能接受他那个博主是吧? - -**[00:55:55] 发言人 2**:我接着所以我觉得我们我们内部一个是一个是我觉得我们要在我们人里面培养一个,尤其是我们这个售前里面找一个,当然是有可能是魏光耀,有可能不是魏光耀。 - -**[00:56:09] 发言人 2**:我就是我们要找一个就一个从人的角度,他善于去帮人家把这个事弄了,然后再把他的这个能力通过这个AI放大五倍,我如果善于给别人讲这个东西,我就扶持他,我操,就搞一个基于神在的,他每天不要干其他事了。 - -**[00:56:27] 发言人 2**:主要是停车了以后,他说了以后,你给省代你看看个,你看看这个,我觉得就很很,因为现在你们面对面把那沟通跟这个。 - -**[00:56:38] 发言人 2**:光是一个音talk音的东西,如果重复太多AI就可以回答? - -**[00:56:42] 发言人 2**:反之重复太多的事情,我们做些东西让别人吸收,我觉得要多动动脑筋都动了,我觉得省代其业没,你说有多少人呢? - -**[00:56:53] 发言人 2**:是吧? - -**[00:56:54] 发言人 2**:十个左右有多少人呢? - -**[00:56:56] 发言人 2**:我觉得我们得想些办法下来,我们针对这个,我建议孟洁,梦洁,你也孟洁也在,我建议我们梦洁你兼天你专门,因为你是负责这个渠道的,我觉得我们专门研业。 - -**[00:57:09] 发言人 2**:你们这怎么给省代提供一些更多的信息化的一些东西,或者说我们主动的,如果能知道他的那个get的那个点,你用一些用一些图文并茂的东西是吧? - -**[00:57:20] 发言人 2**:然后让让他易于接受的,然后带着自己自家一些宣传特点的就往外送了。 - -**[00:57:26] 发言人 2**:你越这么说,我越觉得我操,我真的应该搞一个,我专门搞一个这个叫什么团队,或者叫数字人,或者叫一个内部的一个叫叫内部自媒体。 - -**[00:57:37] 发言人 2**:我专门组织个搞个小组织,两三个人我操都是喜欢这个宣传的,喜欢那个,喜欢喜欢宣传,我把它整合在一起。 - -**[00:57:50] 发言人 2**:那很神奇。 - -**[00:57:51] 发言人 7**:还有一个问题碰了是啥呢? - -**[00:57:54] 发言人 7**:就是你说咱也可以去搭建业的工具,其实咱包括我现在,其实我很有去帮学带他们的意愿。 - -**[00:58:03] 发言人 7**:而现在省在的人员也是一个问题,第一个是他们的精力,其实现在这个放在云面上没有那么多。 - -**[00:58:13] 发言人 7**:第二个是他。 - -**[00:58:14] 发言人 2**:有一个我觉得他如果没有专职,有一个兼职都可以。 - -**[00:58:19] 发言人 2**:有兼职我觉得这还是灌输,每天你每天给他发微信,每天给他狂轰滥炸。 - -**[00:58:24] 发言人 2**:然后他时间长了在里面他就他要更有感知的。 - -**[00:58:28] 发言人 2**:他说他可能我跟你讲有一种感知是什么? - -**[00:58:31] 发言人 2**:这个公司的产品很烂,但是这公司的人很勤奋,也很有温度。 - -**[00:58:35] 发言人 2**:我觉得他们未来会做好,我一定会帮助他把它做好。 - -**[00:58:38] 发言人 2**:我告诉你,我最早20年前,他妈中兴工寓他妈的面对的包括华为,面对的他妈的爱立、诺基亚、阿尔卡特朗讯、摩托。 - -**[00:58:46] 发言人 2**:面对一大堆这些上海贝尔,一大堆这种国外公司的时候,那种产品很烂的时候,所有看到的这个销售,就中国的销售,包括中兴、华为的,都是觉得他们太勤奋了。 - -**[00:58:57] 发言人 2**:虽然他们产品很烂,我觉得他们以后会做好的,就这么。 - -**[00:59:02] 发言人 1**:一点一点进去的。 - -**[00:59:05] 发言人 7**:明白,彭彭总。 - -**[00:59:06] 发言人 2**:我觉得是有机会的,就是你怎么把它,我一直觉得为啥高频交易来自于杨第来自于高频交易,高频交易来自于就很简单,因为现在高频的因为那个东西他还有钱,那人家根本不玩你这个。 - -**[00:59:22] 发言人 2**:换句话说,你让梁文出来玩,你这个分分钟就跟你玩了,是吧? - -**[00:59:27] 发言人 2**:一套的组织,我操天天给你宣传,就属于他妈的水一般的泼下去。 - -**[00:59:33] 发言人 2**:就我们这一块信息的沟通、信息的传导、信息的传递,整个这一块我觉得我们有巨大的提升空间,尤其是在现代社会情况下的这种新形势下,我觉得我们应该能有巨大的行动空间。 - -**[00:59:49] 发言人 2**:但是首先我们自己就总部,你包括李俊杰是吧? - -**[00:59:53] 发言人 2**:要起行要起行去去去解决这个信息差的问题。 - -**[00:59:58] 发言人 2**:你这个世界还不是信息差的,知识差都没了。 - -**[01:00:03] 发言人 2**:你问豆包啥都问得出来,还有信息差吗? - -**[01:00:06] 发言人 2**:你问豆包,你你问豆包已经知识差都没了你问豆包他妈的火箭为什么上太空? - -**[01:00:12] 发言人 2**:那流击研究的问题,那那有问题吗? - -**[01:00:15] 发言人 2**:他肯定会一点一点给你拨开告诉你。 - -**[01:00:17] 发言人 2**:还比如说信息差了,我觉得如果我们和省代之间还存在着那么多信息差,就是问题我们自己都在反省,那问题不在神代。 - -**[01:00:30] 发言人 2**:我们联合起来,你俊杰你要分享产品经理,产品经理你推广自己的产品,你很重要一点就是让沈代知道你在干嘛。 - -**[01:00:38] 发言人 2**:你你你不是你做配饰,你不是说你在那整了半天,我也不知道你在整啥,我操什么叫产品经理? - -**[01:00:45] 发言人 2**:这个农夫在干嘛呢? - -**[01:00:47] 发言人 2**:农夫每天都要到菜市场去问问我的菜。 - -**[01:00:49] 发言人 2**:如果菜市场的每个人都是省代的话,你到菜市场的每一个问问我的菜好卖不? - -**[01:00:55] 发言人 2**:这才是他妈的产品经理,这才是far门. - -**[01:01:03] 发言人 2**:啊继续。 - -**[01:01:05] 发言人 1**:你往。 - -**[01:01:06] 发言人 2**:上往上。 - -**[01:01:13] 发言人 2**:你那外设的事儿,我觉得我们我们是不是我们招那个人要不要上课,要说还是要招招就有作用。 - -**[01:01:24] 发言人 5**:有。 - -**[01:01:25] 发言人 4**:他不有用。 - -**[01:01:26] 发言人 5**:包括一些外设的配,我们可以逐渐的稍微多接一些。 - -**[01:01:33] 发言人 5**:就是我用一个最低的要求。 - -**[01:01:35] 发言人 2**:这个人有用的核心就是他去了以后,他他付出的钱我能养,我能通过这个东西养回来。 - -**[01:01:44] 发言人 5**:这就是争取拿一些外设把他养回来。 - -**[01:01:49] 发言人 4**:开我觉。 - -**[01:01:51] 发言人 2**:你们有的。 - -**[01:01:55] 发言人 4**:话,对,你们。 - -**[01:01:59] 发言人 2**:有的话是还个不管他们做们的核迅速。 - -**[01:02:15] 发言人 2**:我觉得这个职业库本身这个东西其实省态也需要我我我就希望下来我们研究一下,就是我们解决两个问题。 - -**[01:02:27] 发言人 2**:一个是我们如何把我们的知识,需要省代知道的信息铺天盖地的传导给他。 - -**[01:02:34] 发言人 1**:这是第一第二。 - -**[01:02:36] 发言人 2**:他的想法能够迅速的和我们有对接,能够迅速对接行不行? - -**[01:02:43] 发言人 2**:我们能够快速的跟他对接。 - -**[01:02:50] 发言人 7**:彭总其实有一个问题就是咱能传导,但是传导了之后他能承接和吸收,这是个其实很大的事。 - -**[01:03:01] 发言人 2**:这个事还是那句话,你这个就跟那个运动一样,你有很多个节点,对不对? - -**[01:03:08] 发言人 2**:跟你打篮球踢足球一样,你个小腿得摆,大腿得摆,臀部得摆,哪儿都得摆。 - -**[01:03:14] 发言人 2**:就是我们的销售要上去要做有温度的事情,要大家他有愿意,他如果没有愿意,我就再怎么都没有用,对不对? - -**[01:03:23] 发言人 2**:他水泥地你让他吸啥呢? - -**[01:03:26] 发言人 2**:是啊,他如果他在草地里,他觉得他只有成长,只有吸收才能成长,那当然它会吸收。 - -**[01:03:32] 发言人 2**:他在水泥地里他都没兴趣,你搁那吸啥了,那你把它换了,那你把它换了。 - -**[01:03:39] 发言人 1**:如果整个省代里。 - -**[01:03:40] 发言人 2**:面没有一个人关注,甚至没有一个眼光,甚至没有一个余光,没有一个膀胱来关注你的v di的话,我觉得这个省代就不要跟他合作了。 - -**[01:03:52] 发言人 2**:他如果要有余光对不对? - -**[01:03:54] 发言人 2**:他如果在人群里看了你一眼,我们那些销售就应该上去把那一眼抓住,就要就可以建立一个传奇。 - -**[01:04:03] 发言人 2**:他如果连余光都没有,那你还跟他聊个屁,聊个毛。 - -**[01:04:14] 发言人 2**:继续,再往上。 - -**[01:04:19] 发言人 7**:就是产品的比较核心的部分,其实我觉得像。 - -**[01:04:26] 发言人 2**:俊杰你要回答一下不? - -**[01:04:33] 发言人 5**:这个只是一些老生常谈中的事,只能提到需求在这反正就基本上看到都是些思路问题,都是适配问题。 - -**[01:04:42] 发言人 5**:所以这点能力只能按照最高需求去适配。 - -**[01:04:47] 发言人 7**:2424042404已经适配了,我知道是。 - -**[01:04:55] 发言人 2**:件咱配work配。 - -**[01:04:57] 发言人 7**:好像是教学那块要用下来沟通。 - -**[01:05:01] 发言人 5**:和这个和宇航沟通,这种细。 - -**[01:05:04] 发言人 3**:节就不关于研发这块的事。 - -**[01:05:07] 发言人 3**:我说一下就是现在是我们给研发的的需求其实是不多的,所以说我今年我们其实还是给了研发那么多用过去我们这边产品团这边一要把更多的需求要传递给研发。 - -**[01:05:27] 发言人 3**:我前天在跟智波在智波张志波在聊天,他们其实他们的团队已经在全面运用AI进行开发了,对他们的研发效率也在大幅提升。 - -**[01:05:42] 发言人 3**:他们目前用的是body body. - -**[01:05:47] 发言人 2**:它是海外版吗? - -**[01:05:49] 发言人 2**:还是国内的,它本地部。 - -**[01:05:52] 发言人 3**:署的? - -**[01:06:25] 发言人 3**:那应该就是后面的,腾讯后面。 - -**[01:06:38] 发言人 2**:的应该是哪个我不清楚,这个没细,但他们了解壳。 - -**[01:06:59] 发言人 3**:莫跟我讲钱。 - -**[01:07:00] 发言人 3**:大概3 4月份他们的那个费用大概还在,就几千块钱。 - -**[01:07:05] 发言人 3**:但是上个月他们的就他们部门的在这个上面的支出已经有四五万块钱。 - -**[01:07:13] 发言人 2**:就一个月是吧。 - -**[01:07:15] 发言人 3**:就是张波他这个研发团队在这个AI上面的的消费。 - -**[01:07:23] 发言人 2**:我是说是一个月。 - -**[01:07:25] 发言人 3**:还是一个月,他们按结的这个是,然后他们的的确他说他们的个代码的产出量有了大幅的一个提升。 - -**[01:07:36] 发言人 3**:我说这个意思就是说是其实他们的研发效率在大幅的提高,我们可以更多的需求传递给他们的研发。 - -**[01:07:44] 发言人 3**:他们原来说的15人天,现在可能就十三四人天就能解决的事情。 - -**[01:07:50] 发言人 3**:所以我们不要怕把我们大量的需求去年他们做不过来。 - -**[01:07:56] 发言人 4**:我我我就我晚计划这个事情,下周一例会所,今天宋刚讲到这儿,我就多插一点,就是你看售前也在诟病销售也在诟病产品问题的时候,就是华我我通过前天跟芝房企舰张志波他们认为我云云中面研发全面都听了指挥,做的产品没问题。 - -**[01:08:18] 发言人 4**:我们反而我我我插这句话,意思就是我们自己公司展绘智的产品这块要强势一点,研发是不独资的。 - -**[01:08:25] 发言人 4**:但我产品就站在这个竞标的角度上多提要求,多提问题,强势一点要求他们干这个。 - -**[01:08:32] 发言人 2**:去年我感觉这个整个应该强势,你整个产品经营团队一直没有想过产品运该干嘛,这个云飞到底好不好,跟你身心不差的。 - -**[01:08:42] 发言人 2**:我我再说一遍,我我再说遍这个问题,我我我再说一遍,你得每天都得去农场里看一看到菜市场里看一看,你这才叫farmer。 - -**[01:08:51] 发言人 2**:要不然你这个产品经理团队,或者你的产品经理就是失职的。 - -**[01:08:56] 发言人 2**:虽然你说你每天在忙,我操你是你你你但是你可能不是farmer,你可能是另外一个角色,我得另外给你再给你再给你换一个角色。 - -**[01:09:06] 发言人 2**:你比如说你是个什么呢? - -**[01:09:07] 发言人 2**:是一个是一个市场的管理局里的那个带红袖套的,叫什么清工督导,还是个什么? - -**[01:09:14] 发言人 2**:你就不是farmer,你知道吧? - -**[01:09:16] 发言人 2**:所以你一定要想明白我说的话,要发自内心的。 - -**[01:09:19] 发言人 2**:我今年有没有去农场? - -**[01:09:21] 发言人 2**:有没有去菜市场? - -**[01:09:22] 发言人 2**:如果今天没去看农场,没看菜市场,我就不是farmer。 - -**[01:09:25] 发言人 2**:要记着这个的话,不是farmer就不是产品经理,我可以另外给你找个定位,我们另外找个定位,对吧? - -**[01:09:32] 发言人 2**:不需要找这个定位,换一个定位好吧。 - -**[01:09:36] 发言人 4**:这这这这这是。 - -**[01:09:39] 发言人 3**:这是我们谈判有弱势点要就宇豪这边他们如果评估一个来一下,我们不要工作们的。 - -**[01:10:02] 发言人 2**:评估。 - -**[01:10:03] 发言人 4**:的估。 - -**[01:10:05] 发言人 3**:加上现在的这个AI的结合,他们的这个效率肯定大降低这个人天数了已经,但是他报我们的人天数可能还是用原来的这个系统在报。 - -**[01:10:16] 发言人 3**:所以说我们这个可以。 - -**[01:10:18] 发言人 3**:其实我们既然我们付了那么多钱给研发,就要把研发的重新压榨到底。 - -**[01:10:24] 发言人 3**:就是说我们该做的就让他们做,哪怕我们这边像收不到钱,有些东西也得做。 - -**[01:10:30] 发言人 3**:当然我们收钱是还是要,但是不要想着上百人天,我们这个项目就做不下来了。 - -**[01:10:38] 发言人 3**:很多很多的研发的需求,其实你传递过去,他们照样是能够做出来的。 - -**[01:10:44] 发言人 3**:我们还是要把这个压力要传递过去,要不然你看你可以统计下我们今年给他们的定制研发需求是多少? - -**[01:10:53] 发言人 3**:不多了。 - -**[01:10:53] 发言人 3**:到现在为止他们的研发人力据我了解已经在用我们的I的人员在他的产品的一些职。 - -**[01:11:02] 发言人 3**:所以说这个事情我们还是一定要产品团队在跟研发对接的时候,一定要有有有有这个概念在心里面。 - -**[01:11:11] 发言人 3**:好吧? - -**[01:11:12] 发言人 3**:给我提一点,很多这些顶多这些项目是可以去去帮他们的这四倍去完成的对吧? - -**[01:11:19] 发言人 2**:实老这里补充几句,第一个我们产品这边排需求,就是还有一个版本需求,他并不是以单个项目流程。 - -**[01:11:27] 发言人 2**:就举个例子,比如这个项目他排了100个人天,我最后的核算这个项目能不能做,并不是以这个单位项目为准。 - -**[01:11:35] 发言人 2**:我们是会拉通我们的需求来源几部分。 - -**[01:11:38] 发言人 2**:第一个产品自规化,第二个项目定制需求。 - -**[01:11:40] 发言人 2**:第三个从各个售前口我们每个季度都会去做收集和整理。 - -**[01:11:44] 发言人 2**:然后我们每个季度比如提给研发的,我们一共就会起决个30到40项需求。 - -**[01:11:50] 发言人 2**:就比如这一个价格方面的需求,我们提了30到40个,然后根据研发的工作量进行排期。 - -**[01:11:56] 发言人 2**:就是我们其实压给他们的都是超级饱和的。 - -**[01:11:59] 发言人 2**:然后他们再根据实际工作量,就比如说他那边用的那个work 8或者八用了过后,他现在给我的反馈工作量就是我只能做20个,然后我再跟他压,比如说加到30个。 - -**[01:12:11] 发言人 2**:通过这样的方式,我们去最后采用一个版本的需求。 - -**[01:12:15] 发言人 2**:所以他不是一个单个的一个项目,而是说我们总共是以超预期超过的工分利压给达工后。 - -**[01:12:22] 发言人 3**:再跟他们讨价还价,去跟这样去排。 - -**[01:12:25] 发言人 3**:一般没确的这第一个是我们以后可以多接一些定制开发类的项目,因为这可基本上可以收到钱的这这这个东西每多接一单,我们就多多收一份收益,这个不要过多的给拒绝掉了,压压过去,他们是应该能完成的,知道吧? - -**[01:12:42] 发言人 2**:好的,沈刚总到时候我们尽量勾接一起。 - -**[01:12:48] 发言人 2**:还有一个还是总那个我刚才说一点,就是我从来没有听到过,比如说咱们产品经理压研发压不住,这个事也很从市场的角度,这事也很重要。 - -**[01:13:01] 发言人 2**:到我这儿让我去找新实的,比如说到我这儿说,彭总你再去找要去压这个生情。 - -**[01:13:08] 发言人 2**:不错,我从来没有听说过。 - -**[01:13:09] 发言人 2**:我再给你们讲讲,我他妈原来的工作历史,我们经常都是他妈的一条腿。 - -**[01:13:14] 发言人 2**:那产品经理他妈的我的办公室门都进不了。 - -**[01:13:17] 发言人 2**:如果他给我不给我配合,我不不给我做好的话,我他妈肯定要去告他,到最大的领导人面前去告他。 - -**[01:13:24] 发言人 2**:理解我意思吗? - -**[01:13:25] 发言人 1**:你们这个资源。 - -**[01:13:27] 发言人 2**:刚才那个你翻到最后一页,个那个写的很好,魏光耀,但是有没有去做是一回事,我觉得你这个是基本的光耀,你翻到最后一页,这个洞察需求,善用资源,主动沟通。 - -**[01:13:43] 发言人 2**:这三个我觉得都是叫什么呢? - -**[01:13:46] 发言人 2**:叫从上这个学东西,就工作里面上这个学都得知道洞察资源,善用资源,主动沟通。 - -**[01:13:55] 发言人 2**:但是有些人就是30分,有些人50分,有些人是100分。 - -**[01:14:02] 发言人 2**:我当了17年的代表周经理,我觉得我最自豪的就是非常洞察需求,非常善用资源,非常主动沟通。 - -**[01:14:11] 发言人 2**:这是老陈可以引以为傲的事情。 - -**[01:14:14] 发言人 2**:我也希望你们这几点都是他妈的老同志给你们的,雪娇给你们的给你们的忠报。 - -**[01:14:23] 发言人 2**:什么叫非常善用资源? - -**[01:14:25] 发言人 2**:什么叫非常洞察需求? - -**[01:14:27] 发言人 2**:就是你要你一旦发现这事你想做你就上升,你做不了上升。 - -**[01:14:32] 发言人 2**:我从来没听过我那么长时间,我听到咱们研发很少,而且研发给我说的工作,我基本上没盛刚给我说的工作,我都很积极主动的,我极主动的去完成是吧? - -**[01:14:45] 发言人 2**:他不管再难我都要跑去,我就跑去找人我要积极主动完成。 - -**[01:14:50] 发言人 2**:但是我觉得给我的太少,这是一个。 - -**[01:14:54] 发言人 2**:我觉得你们产品经理团队产品经理产品经理团队要认真反省,不怪你们,我就告诉你们一点,不怪你们,只是因为你们以前没有做过,就这一点没有做过就要补课,不代表以后不强。 - -**[01:15:07] 发言人 2**:但是因为没有做过,脑子里很多固有思维。 - -**[01:15:12] 发言人 2**:没有见过是吧? - -**[01:15:13] 发言人 2**:杀猪的见少了,你当然你就自己成,拿自己的刀就会杀猪,那刨你解牛可不是一般的杀猪的。 - -**[01:15:20] 发言人 2**:所以说我觉得要没有做过没关系,要谦虚,要保持非常谦虚,非常欧文的心态去学习。 - -**[01:15:27] 发言人 2**:而不是说我一两天我就觉得自己是大拿高手。 - -**[01:15:31] 发言人 2**:我反正你看这边那边我都整不行,这是一个还有一个研发,刚才说到的那个cobody,我对你留进你们那个团队,我非常有意解。 - -**[01:15:42] 发言人 2**:我觉得游击队就是游击队,你不要以为戴上帽子就是这个正规军,就陈佩斯那个呃陈佩斯那个小品里面,你以为你戴上帽子了,你以为你装上皮带了,你还是游击队,要从骨子里解决游击队的问题,所有的思想要正规,要要要向要向先进学习,而且要快速的去学习,是吧? - -**[01:16:04] 发言人 2**:我说了好几次了,你们那个co点的问题,我要觉得我们A你看人家那么大项目都在转移,都在转弯。 - -**[01:16:11] 发言人 2**:你下来马上把air coding,把这个coding body那个事给我搞清楚,我不需要再看到我的烟,我的那些销售们今天就蹭的我我的那个我研发人员今天就蹭两个人家免费代码,明天蹭两个免费代码,搞得像叫花子一样是吧? - -**[01:16:26] 发言人 2**:搞得铁道游击队一样,我们都没把自己当成潜道游队,你们把自己当成潜道鱼队。 - -**[01:16:31] 发言人 2**:今天他妈的过了个货抢一点,明天抢一点,还太阳什妈快要下山了,我操,都他妈吹牛逼的。 - -**[01:16:38] 发言人 2**:你要做要正规,我们到底应该学习,我们怎么样才能把我recording定给了你,给了你一些板子,给了你H 20,怎么把我们的算力规范化的,不要一块占一块那一块占一块那一块的。 - -**[01:16:50] 发言人 2**:这个给谁一看的牛逼的做法。 - -**[01:16:55] 发言人 2**:好吧,要想明白到底华智用的什么,那模型大部应用的什么? - -**[01:17:03] 发言人 2**:我们怎么样把我们怎么武装我们的兄弟们,而且标准化武装,不要人家像逃脱走娃娃一样。 - -**[01:17:09] 发言人 2**:研发一个个的,我用了个代码,我用个代码,我从那抄点,从那找点。 - -**[01:17:18] 发言人 2**:这些事儿按理说都不应该我提,都应该你们提出来找我。 - -**[01:17:24] 发言人 2**:如果具体你们那个也是,我觉这两个问题好,继续。 - -**[01:17:29] 发言人 7**:王哥,我这就这些情况。 - -**[01:17:34] 发言人 2**:你你这个你这个我说一下关友,我本来是希望你,因为你在接触一线有很多的,我觉得基于什么呢? - -**[01:17:45] 发言人 2**:基于我们对我们这个产品的更高一点的想法,对于行业,对于这个对于云乐面的发展,对于我们我们在这个过程中间,就是对于这个行业需求的那种新的领域里的需求,有更多的一些想法。 - -**[01:18:03] 发言人 2**:我看你虽然你最后四个写了什么洞察需求,写了那么多,但是我觉得你那些问题没说你问题不对。 - -**[01:18:12] 发言人 2**:你的问题其实可以跟可以在随时在微信里面你都可以发给我,或者拉个群发了。 - -**[01:18:17] 发言人 2**:这才表示你主动沟通,而不是在一定让你写个东西的时候,你现在写了个东西,你说那那那那几个问题,我认为你那些问题当然不能叫鸡毛蒜皮的问题,都有共性。 - -**[01:18:29] 发言人 2**:我们可以把它拉高了看啊,每个问题都代表着上面都有个下面都有个冰山,我也同意,但是我觉得你就这些怎么说呢? - -**[01:18:38] 发言人 2**:就这小颗粒的问题,然后还说你主动沟通,你这个善于主动沟通,我觉得好像有点矛盾。 - -**[01:18:46] 发言人 2**:而且你把这个原则写的那么高,但是我没有看到你你你对这个整个云乐面这个产品的更高的认知,包括对客户需求的更高的认知。 - -**[01:18:58] 发言人 2**:你觉得呢? - -**[01:18:59] 发言人 2**:是彭总您说的对。 - -**[01:19:01] 发言人 7**:这个问题还需要再总结,我还需要再拔刀。 - -**[01:19:05] 发言人 7**:这个包括对人论面的认识,对这个客户需求认识。 - -**[01:19:09] 发言人 7**:对你你下来你下来重新写一写。 - -**[01:19:12] 发言人 2**:你下来重新写,你单独写,我写写给我一个好吧。 - -**[01:19:16] 发言人 2**:你你我感觉你写了个东西,就有点像找了个猴子,然后太阳天你跑去在那抓狮子,这抓一点,那抓一点是吧? - -**[01:19:26] 发言人 2**:这抓一点那抓一点,然后说你看这都有你你站远一点,你回去你站远一点,你站高一点,你爬到你家2楼凉台5楼去,你再看看这个问题,你想想有哪些事情? - -**[01:19:40] 发言人 2**:有哪些需求? - -**[01:19:40] 发言人 2**:云桌面到底应该怎么做,走到哪儿去? - -**[01:19:43] 发言人 2**:你也做过系统提成,你也做过那么多产品,我觉得你也是比较爱学习的,你也我觉得你的工作也是比较认真的。 - -**[01:19:52] 发言人 2**:但是这个跟你说的洞察需求,主动沟通善用资源还是很有差距的。 - -**[01:19:59] 发言人 1**:你再聚焦。 - -**[01:20:01] 发言人 2**:点小了。 - -**[01:20:02] 发言人 7**:聚焦成单个项目,这个应该再扒一下。 - -**[01:20:07] 发言人 2**:你就是抓狮子,你下来,你把你的那些想法我们下来,你再给我发一个微信。 - -**[01:20:14] 发言人 2**:你怎么看这个行业的? - -**[01:20:16] 发言人 2**:你觉得正教医起应该叫起教医政,现在叫企教医政。 - -**[01:20:20] 发言人 2**:你觉得企教医政怎么样加能源,加这个行业里面到底你做了那么多项目,到底是你觉得哪些东西是可以推广的,哪些东西是我们觉得应该要那个什么的,应该要避免的。 - -**[01:20:35] 发言人 2**:我觉得包括next x这些问题。 - -**[01:20:37] 发言人 2**:到底这个能卖吗? - -**[01:20:39] 发言人 2**:我问你那个是能卖吗? - -**[01:20:41] 发言人 7**:我现在问你。 - -**[01:20:43] 发言人 2**:能卖,你那你什么时候能做个样板出来呢? - -**[01:20:48] 发言人 7**:我们现在来找个这个怎么说呢? - -**[01:20:52] 发言人 7**:其实我们我和院磊,我们俩其实定好聚焦点,就是找个山东省的本就地级的国企去去推,不会找省级的,我们就想做个亮点,甚至说前期可能会找不光是这个商务方面知识,可能也会需要这个研发侧的支持。 - -**[01:21:17] 发言人 7**:但是现在这个还没沟通的那么好。 - -**[01:21:21] 发言人 7**:应该我觉得7 8月份的时候会有个给咱一。 - -**[01:21:26] 发言人 2**:个测试的机会。 - -**[01:21:28] 发言人 2**:但是我有个不同的想法,我觉得用那X就本身他就没太多钱,然后可能这个产品的规模也不大。 - -**[01:21:37] 发言人 2**:我觉得相比v di来说,它是不是颗粒度小了,估计我挣不了什么钱? - -**[01:21:41] 发言人 2**:竞争一激烈,我挣不了几毛钱你说出来。 - -**[01:21:45] 发言人 7**:这个也不好说。 - -**[01:21:47] 发言人 2**:因为他毕竟销。 - -**[01:21:48] 发言人 7**:售的产品比咱原来想象的要高一个层级,也我觉得可以和捆绑一些东西去卖。 - -**[01:21:56] 发言人 7**:因为像世俗国企,你和我和我和院里我了我们了解的情况就他没有那么多框架。 - -**[01:22:04] 发言人 7**:比如说其实更像我怎么说呢? - -**[01:22:07] 发言人 7**:就是他更像个集成。 - -**[01:22:09] 发言人 7**:除了我们提供终端,可能也需要我们提供个西方的服务器,可能我们还需要提供个信创的操作系统,还需要提供个信创的这个办公软件。 - -**[01:22:22] 发言人 7**:它其实如果把它当成集成去看的话,可能综合收益还是可以的。 - -**[01:22:30] 发言人 2**:你又是想去卖个信有集成是吧? - -**[01:22:33] 发言人 2**:对。 - -**[01:22:33] 发言人 7**:因为他这种市一级的国企,他可能你第一步信创他试水他不买pc那他他他其实他这个价格预算就不。 - -**[01:22:42] 发言人 2**:那我的产品能卖多少钱呢? - -**[01:22:45] 发言人 2**:我的X在里面能卖几毛钱呢? - -**[01:22:50] 发言人 7**:我感觉就按一个点5 6000去合,就算挺高的了,就加上咱的服务,还得说考虑到服务。 - -**[01:23:00] 发言人 2**:我觉得我们三个三个这个三个这个叫什么? - -**[01:23:05] 发言人 2**:这个三个组,每个人都给我写一个东西,就next x nex这个怎么卖? - -**[01:23:10] 发言人 2**:Next x怎么卖? - -**[01:23:11] 发言人 2**:市场机会在哪里? - -**[01:23:13] 发言人 2**:这是第一个问题。 - -**[01:23:14] 发言人 2**:为什发现我还在问你? - -**[01:23:16] 发言人 2**:第二个问题,这个V D I这个v di下一代v di是什么呢? - -**[01:23:30] 发言人 2**:再往前走,随着这个AI时代到来以后,随着龙虾,你们研究过龙虾没? - -**[01:23:40] 发言人 2**:吴国洋,你碰到的客户研。 - -**[01:23:44] 发言人 7**:究过这个事。 - -**[01:23:46] 发言人 2**:没有我自己没有。 - -**[01:23:47] 发言人 2**:那行了,那不跟你聊这问题了,你就把这个你就把next这。 - -**[01:23:55] 发言人 7**:个事想明白。 - -**[01:23:56] 发言人 2**:好吧,好好好继续。 - -**[01:23:59] 发言人 7**:我整体就是这个情况,那我下去我再完善。 - -**[01:24:03] 发言人 2**:一下这个内容,你重新想想,发自内心别太阳下抓狮子,你那抓几个狮子出来没。 - -**[01:24:10] 发言人 2**:你想想。 - -**[01:24:17] 发言人 2**:什么叫主动沟通? - -**[01:24:19] 发言人 2**:你遇到那些问题不是在这个会上沟通,什么时都把他沟通了,那才叫主动沟通。 - -**[01:24:24] 发言人 2**:你这个会是被动开的,你叫被动沟通,你对不对? - -**[01:24:28] 发言人 2**:你那个词肯定要被动沟通,你是因为开了这个会议,让你写个报告,你就写了一堆。 - -**[01:24:34] 发言人 2**:你写完了,然后你现在你给我写个主动沟通。 - -**[01:24:37] 发言人 2**:关阳,我说的对不对? - -**[01:24:39] 发言人 2**:兄弟。 - -**[01:24:41] 发言人 7**:你批评了。 - -**[01:24:42] 发言人 7**:对,这个确实存在。 - -**[01:24:44] 发言人 2**:这个问题。 - -**[01:24:45] 发言人 2**:对你你你写的那西写的非常好,咱我不是骂你,我是说我都我操,我觉得他妈的这个反了。 - -**[01:24:52] 发言人 2**:我操你们发现你妈的逼着人家你写了你发言的时候你写了一堆东西,然后你说你很主动沟通,你平时你怎么把这事跟每天每天你把它写出来,然后放到难道你发微信给我发微信给拉或者拉个群你都能做得到的。 - -**[01:25:07] 发言人 2**:但是你觉得没必要,你你你这个但是现在你又觉得他很有必要这个逻辑,我觉得这个会议逻辑是有点问题的。 - -**[01:25:21] 发言人 2**:好,继续。 - -**[01:25:22] 发言人 2**:我是杨坤荣。 - -**[01:25:23] 发言人 8**:这边能听到我声音吗? - -**[01:25:25] 发言人 8**:彭总听得吗? - -**[01:25:27] 发言人 8**:就是我这。 - -**[01:25:27] 发言人 2**:接他们见山。 - -**[01:25:29] 发言人 8**:就是我这边感觉遇到了一看法问题,第一个问题就是我们整体的预案方案有点割裂,就是我们目前配套云装面有一些现在情况下会出现这样情况。 - -**[01:25:44] 发言人 8**:华三福以华三软件加汇智单汇智建,现在华南服利价格贵。 - -**[01:25:49] 发言人 8**:我们又引入第三方服务器,但是我并没有做O M那么就会出现第三方的服务器就是宝德长城。 - -**[01:25:56] 发言人 8**:然后再加上华南软件,加上汇智专家,汇智显示器,再加宏基的件数。 - -**[01:26:01] 发言人 8**:我们其实在外对外限证的话,我们现在宇宙面其实要死盘云宙面。 - -**[01:26:06] 发言人 8**:但是对于一些渠道也些客户来讲,我们的产品给人感觉就是一种拼凑而成么的。 - -**[01:26:12] 发言人 8**:很多的渠道,很多的客户来讲,就是他们想要到直接的这种报价,就我们现在还需要并还需要去服务器这一块,还需要去找华单报价。 - -**[01:26:22] 发言人 8**:并且的话在华单服务器整体量上涨的情况下,其实包括华单自己也省待于自己。 - -**[01:26:29] 发言人 8**:他们彼时并不想要华单服务器。 - -**[01:26:31] 发言人 8**:他们对于我们目前来看,他们对于我们这个说法,我们是紫光热面,这个看法是很多人是愿意接受的。 - -**[01:26:39] 发言人 8**:但是我们产品整体方案上并没有呈现出来这个东西。 - -**[01:26:44] 发言人 2**:这个我觉得很有价值,就是全方位的做一套纸盘,这个之前其实我们开会研讨过。 - -**[01:26:50] 发言人 5**:就是。 - -**[01:26:52] 发言人 2**:说。 - -**[01:26:53] 发言人 5**:解。 - -**[01:26:54] 发言人 8**:决这。 - -**[01:26:56] 发言人 2**:你如果你如果对一,你如果你比如说用华智服务器也可以,你如果做不到一套的话,那你就是说你品牌不统一。 - -**[01:27:05] 发言人 2**:你品牌不统一,你可能就是一个方案,你就不是相当于是给人家这个你就引导他只能引导不统一招标,不统一品牌。 - -**[01:27:16] 发言人 8**:就是我们现在做了汇制显示器,这个又我就感觉就非常好,它能够确实能带来一种一些收入了。 - -**[01:27:26] 发言人 2**:我机接属的话其实还好,如果能做。 - -**[01:27:30] 发言人 5**:能够延如绘制欧难量大,起量一般是4000套. - -**[01:27:36] 发言人 4**:去年多少钱? - -**[01:27:37] 发言人 2**:去年我们。 - -**[01:27:39] 发言人 4**:都40块多少钱? - -**[01:27:41] 发言人 4**:十万十几万块钱,放了十几万块钱。 - -**[01:27:48] 发言人 4**:四到底在哪? - -**[01:27:48] 发言人 4**:但是你建术方面还有这个责任是吧? - -**[01:27:51] 发言人 4**:对。 - -**[01:27:52] 发言人 2**:你如果觉得这个建筑它在未来发展为带着升级换代? - -**[01:27:56] 发言人 2**:如果觉得这个可以,我觉得一部分拿过来就弄一点,库存也不是太大问题。 - -**[01:28:01] 发言人 2**:我觉得这个要研究一下,是你觉得呢? - -**[01:28:08] 发言人 2**:市场目前我觉得。 - -**[01:28:11] 发言人 3**:需求量还不足以支撑那个有。 - -**[01:28:16] 发言人 5**:到现在就卖了一两次一次。 - -**[01:28:19] 发言人 3**:金属金鼠其实是很通用的一个东西,但价格又便宜。 - -**[01:28:25] 发言人 2**:我觉得我们还是强调如果这么说的话,其实还是强调什么呢? - -**[01:28:30] 发言人 2**:就是两个品牌,华三软件加华三东关是吧? - -**[01:28:34] 发言人 2**:这就强调这个方案的完整性,然后就是绘制软件加绘制终端,这个就音面的本质,其他你可以。 - -**[01:28:43] 发言人 5**:服务器都不用去拉统一品牌,这个服务器拉统一品牌。 - -**[01:28:47] 发言人 8**:我要问你,其实技术还好,最重要是。 - -**[01:28:51] 发言人 5**:服务器拉不了统一品。 - -**[01:28:54] 发言人 3**:国庆你现在要欧欧一款,你回这的方。 - -**[01:28:58] 发言人 2**:式太复杂了。 - -**[01:28:59] 发言人 2**:你看这超。 - -**[01:29:00] 发言人 5**:大一个体系。 - -**[01:29:01] 发言人 2**:服务器应急体认证,各方面如果你用华三的服务器,就是你觉得现在华三服务器已经没有竞争力了是吧? - -**[01:29:10] 发言人 8**:不对,对于一些渠道来讲,就是有些项目不经过。 - -**[01:29:14] 发言人 8**:如果是中间一个项目,如果有华三的人在那儿,那么你出华三服务器是没有问题的。 - -**[01:29:20] 发言人 8**:但是我们现在是为了发展渠道,那些渠道有可能是不跟着华三玩。 - -**[01:29:25] 发言人 8**:你对于华三来讲,华三服务器成本低太高了。 - -**[01:29:30] 发言人 2**:那他妈的我卖汇智服务器和我卖这三服务器有啥差别? - -**[01:29:34] 发言人 2**:那汇智服务器也是才出现的,这张服务器可能比汇智服务器品牌要高一点。 - -**[01:29:40] 发言人 8**:但是他们其实有有一些项目来讲,如果我们是投紫光了,其实我们代表汇智服务器其实代表着紫光集团。 - -**[01:29:49] 发言人 2**:我们如果。 - -**[01:29:50] 发言人 4**:紫光系的那华智紫光系价格高你能接受吗? - -**[01:29:53] 发言人 2**:我把它压下来了,华智服务器,华智服务器比华夏要高。 - -**[01:29:58] 发言人 4**:他肯定是比华一名宝德的,他肯定是想要宝德的价格。 - -**[01:30:02] 发言人 3**:汇紫光品牌对你不能低。 - -**[01:30:04] 发言人 4**:对你肯定是双向都要。 - -**[01:30:06] 发言人 4**:华智要比宝德高一些。 - -**[01:30:08] 发言人 2**:他也接受不了。 - -**[01:30:09] 发言人 3**:那这个不行,有些服务器比华山的还贵。 - -**[01:30:13] 发言人 2**:对,有些他这个想法确实有点太什么了。 - -**[01:30:17] 发言人 2**:你最多就是第一,我们确实这个服务器欧不了,就欧的成本太高了。 - -**[01:30:23] 发言人 2**:第二倒是可以说,比如双方搞一个什么授权,你或者说是华紫光华智唯一或者怎么授权,你单独搞一个,看搞搞这些两个品。 - -**[01:30:35] 发言人 5**:牌没有联个品牌说法,他就是品牌。 - -**[01:30:42] 发言人 2**:好,继续。 - -**[01:30:42] 发言人 2**:好,第二个方案。 - -**[01:30:44] 发言人 8**:就是往下走,我们推出了有自己net的我们oem云机的,然后也自推出自己的微胖。 - -**[01:30:50] 发言人 8**:但是也是由为由于服务器原因,我现在net云桌面一些pu场景,那些云桌面我还是没办法推。 - -**[01:30:58] 发言人 8**:因为服务器这块我用哪个服务器,华三服务器跟M D不兼容。 - -**[01:31:04] 发言人 8**:然后显卡有没有一个合适价格? - -**[01:31:07] 发言人 8**:对于一切都是对于渠道来讲,对于我来都一不确定性。 - -**[01:31:11] 发言人 8**:第二就是那么一些场景它可能有瘦有胖,但现在next x的瘦就是跟nex的胖,这两个现在并没有整合到一块。 - -**[01:31:22] 发言人 8**:相当于我们现在方案就是有华丹的胖跟瘦,有net的瘦,还有net x的胖。 - -**[01:31:28] 发言人 8**:现在三个方案是整体。 - -**[01:31:31] 发言人 2**:的独立的,这个我觉得不影响。 - -**[01:31:33] 发言人 2**:你本来这仨方案你你都你都这别你你你自己把自己说的很像回事,别人其实他妈的都不太了解,别人拿到是什么就做什么就完了。 - -**[01:31:43] 发言人 8**:是有些场景我也看到了。 - -**[01:31:46] 发言人 5**:如果他有打断的,有人瑞瑞觉得胖是不是两套平台? - -**[01:31:50] 发言人 8**:他们不是两套品。 - -**[01:31:52] 发言人 5**:一套品的那个三云桌面不是两套吗? - -**[01:31:56] 发言人 8**:我的三秦云桌面,他只是说教育跟办公室目前没有到一个平台里,但是售都是在一块,有教育的胖瘦跟办公的胖瘦,这两个是。 - -**[01:32:09] 发言人 2**:在同一个平台里。 - -**[01:32:14] 发言人 5**:这个后面考虑一下,但是他那个整合力度也不会太大。 - -**[01:32:23] 发言人 5**:你那个GPU的问题,next的没I next的没I要买GPU不能买划算服务器我们给到时候有项目提供第三方服务器。 - -**[01:32:33] 发言人 5**:现在的话。 - -**[01:32:34] 发言人 8**:因为如果是第三方询的话,他们现在整相当于服务器这块很缺失,知道该怎么去搞这个东西。 - -**[01:32:42] 发言人 8**:其整体的话,所以说而且目前来看到的话,华三对于英伟达其实也并不是说特别想用。 - -**[01:32:53] 发言人 8**:目前看到就是因为达太贵,他们也没必要说因为达他们的需求就是有一个集优环境就行。 - -**[01:33:00] 发言人 8**:这也是我们现在卖一些级U场景,卖的不是特别好,就因为单纯因为成本太高,他们也想用amd但是因为amd现在整体的服务器加amd的这个东西,现在好像因为我也问过兼容性跟产品那边对过会出问题。 - -**[01:33:19] 发言人 8**:他们并没有华服,那并没有对地做出一个配。 - -**[01:33:23] 发言人 5**:说了不用华服务器好吧,你要卖地就不要用华服务器,我们给你提供报价好吧。 - -**[01:33:32] 发言人 2**:如果如果他没那么多钱是吧? - -**[01:33:35] 发言人 2**:那个要求那肯定都要低一点了。 - -**[01:33:38] 发言人 2**:就像就算你的电脑城我要买个统一品牌,但是我没那么多钱,我也想买个。 - -**[01:33:44] 发言人 4**:什么传呼务器,他自己去炒。 - -**[01:33:47] 发言人 2**:我卖服妻的就是我什么不是他要统一品牌,他又没那么多钱,又要统一品牌。 - -**[01:33:55] 发言人 5**:个确实要这个要求是吧? - -**[01:33:57] 发言人 5**:没办法,明确告诉我没办法。 - -**[01:33:59] 发言人 5**:我说一下那个D的,他虽然没收授费用,但是它的性能和兼容性确实也没有英为达的好。 - -**[01:34:07] 发言人 5**:所你一分还是一分钱一分货的问题,然后有些场景确实可以用M D GPU的。 - -**[01:34:13] 发言人 5**:现在也没有,因为这个方案已经发布给你们很多次了也没有谁找到我们说我要卖这个方案,我要卖方案,你要卖的时候,服务器我们去帮你解决好吧。 - -**[01:34:25] 发言人 5**:但是不能是卖新华三的服务器,新华三的服务器插不了M D的卡,这个是之前说了的,好吧。 - -**[01:34:34] 发言人 8**:第三点,其实我也是从这两个方案里延伸,就是我们现在还的的耐子中心。 - -**[01:34:40] 发言人 8**:其实我从个人角度来讲,其实我是特别不喜欢还贷那个平台的。 - -**[01:34:45] 发言人 8**:而且也是从销售以及我合作过之前卖过云肉面上都吐槽华三这个平台的臃肿性。 - -**[01:34:52] 发言人 8**:那么既然我们已经推出了耐子微胖,那么后期我也问过是可以后期慢慢做,把胖跟瘦再融合到一块儿。 - -**[01:35:00] 发言人 8**:在这个场景下,我们对于华三和勒宁的一些重心牵引点我未来的牵引点。 - -**[01:35:07] 发言人 8**:现在我就想就是我个人觉得是不是该是把耐子云桌面的这个平台,以后会普遍的演化成我们紫光的云桌面这个平台。 - -**[01:35:18] 发言人 5**:是可以。 - -**[01:35:19] 发言人 5**:但是我想问一下,你们现在混合部署的项目多吗? - -**[01:35:25] 发言人 5**:混合部署的项目多吗? - -**[01:35:27] 发言人 5**:又有回挖又回跌。 - -**[01:35:28] 发言人 8**:有还不少。 - -**[01:35:29] 发言人 8**:因为确实会有这种情况。 - -**[01:35:32] 发言人 5**:确实会有,但是从我审的单子里面我没。 - -**[01:35:36] 发言人 8**:看到过的。 - -**[01:35:37] 发言人 8**:对对对,会少一些。 - -**[01:35:38] 发言人 8**:但是一旦出现了,就这一种无法解决的问题,就是这个可以先不做,但是我未来的话是要。 - -**[01:35:49] 发言人 2**:考虑一下两个。 - -**[01:35:51] 发言人 5**:那个是两个方案。 - -**[01:35:53] 发言人 5**:有些医院是我知道会用到的,但是除了医院其他。 - -**[01:35:58] 发言人 8**:项目很少。 - -**[01:35:59] 发言人 5**:学校也会有一些是有一些我我还我还看过你们的单子很少。 - -**[01:36:05] 发言人 2**:我觉得他他我的判断也许因为他这一线他也许。 - -**[01:36:12] 发言人 3**:他能看到我。 - -**[01:36:13] 发言人 3**:趋势它适。 - -**[01:36:14] 发言人 5**:合它不是趋势它它就是实量是有这个需求。 - -**[01:36:18] 发言人 5**:但是如果我们要求整合的话,工作量反正就是往后排的,这个就就有工作量还要拉种。 - -**[01:36:27] 发言人 4**:他要完全是一套,我们还可以还是我们理解的可以采取去一个。 - -**[01:36:32] 发言人 5**:镜片管理就好,一个镜片管理行不行? - -**[01:36:36] 发言人 5**:一个一一个镜片管理也不是那么简单的事儿。 - -**[01:36:40] 发言人 5**:新区我们的新创通和我们搞了三个多月了,三四个月了。 - -**[01:36:46] 发言人 5**:说些简单,你们还打通的东西不少。 - -**[01:36:49] 发言人 2**:你两个都没卖过吗? - -**[01:36:51] 发言人 2**:你卖过吗? - -**[01:36:51] 发言人 2**:这个是。 - -**[01:36:53] 发言人 5**:那是现在在道要处试用。 - -**[01:36:57] 发言人 2**:尴。 - -**[01:37:00] 发言人 5**:尬di。 - -**[01:37:09] 发言人 5**:有些项目我们应不了的,用alx发现它的功力很满。 - -**[01:37:16] 发言人 2**:这个问题提的太高级了,还真华桑和耐斯中你还真没法回答。 - -**[01:37:21] 发言人 2**:因为那个你是想做,但是能做起来,做不起来就看量了,亮起来,自然后面趋势出来了是吧? - -**[01:37:28] 发言人 2**:但是现在你没这个趋势。 - -**[01:37:31] 发言人 5**:当然你还是以华商为主。 - -**[01:37:33] 发言人 5**:我建议这个东西还是这样,大家用心的去卖一些纯的项目,把V I lex V I又是自研的,纯自研的,大家赶紧卖起来上量。 - -**[01:37:43] 发言人 5**:这个东西如果慢慢上量了,那个vdn那边我们再再再去再再去。 - -**[01:37:47] 发言人 2**:做总上量一个对吧? - -**[01:37:49] 发言人 2**:然后上量以还有个我也想知道vi到底这个毛利高不高,然后只是这个收入上量了以后,发现他妈的这个估西不太一样。 - -**[01:38:00] 发言人 2**:因为他们那华山那个他毕竟同种的研花,这个就那么点研花,但从那个性价比,从各个方面要搞清楚高低,是吧? - -**[01:38:10] 发言人 2**:你别卖了他妈。 - -**[01:38:11] 发言人 5**:的100套,我操,挣了他个20万,我们还是打了两个很很很很明显的差异化的,所以来在。 - -**[01:38:19] 发言人 3**:很多场景还是很虚的。 - -**[01:38:21] 发言人 3**:的毛利肯定会比人天一两是不用问的。 - -**[01:38:24] 发言人 2**:这个对,你你你一第然后场景有限,你是造了一把那个枪,但是这把枪一共一年打不了几发子弹,我操。 - -**[01:38:32] 发言人 2**:最后效益不够,那那也是麻烦,我现在还就是有点担心,你们反正接在来在测试自己判断。 - -**[01:38:39] 发言人 2**:因为主力不对,我的主力资源应该投在哪? - -**[01:38:42] 发言人 2**:别投反了是吧,你主力资源别投到铁道游击队上去了,我操,铁道一队队永远就是游击队。 - -**[01:38:51] 发言人 2**:就跟我看这个一。 - -**[01:38:53] 发言人 3**:的投入,我们肯定还是根据项目来源来投。 - -**[01:38:59] 发言人 3**:不可能工投那那肯定会大的偏差的对。 - -**[01:39:03] 发言人 2**:我就我要想好,要一定要很多东西要想明白。 - -**[01:39:11] 发言人 2**:继续。 - -**[01:39:12] 发言人 8**:第二点的话就是这第点,目前来看我们现在也很多区域现在有销售了,然后呢,然后有销售了,目前来看合作还是很顺利,还沟通之间还是很好的。 - -**[01:39:28] 发言人 8**:但是由于我们之前就是没有销售之前,我们就像之前说的,我们我们这个工作职责基本上你售后商务也会抓一部分,技术也会抓一部分。 - -**[01:39:41] 发言人 8**:相当于一个人其实承担一些销售售后,以售前职责都混为一谈。 - -**[01:39:46] 发言人 8**:现在来了销售之后,彼此搭配我觉得应该会有个工作职责划分,就是比较有出一比较有一个详细的工作值得划分。 - -**[01:39:57] 发言人 8**:因为我之前也跟销售搭档过,有些搭档的好,有些搭档不好。 - -**[01:40:02] 发言人 8**:讲实话就是搭档好了跟销售搭档好的话,彼此认同自己彼此的话,那么就会像一个战友一样。 - -**[01:40:09] 发言人 8**:如果搭档不好,那真的是两眼生厌那种。 - -**[01:40:13] 发言人 8**:我们为了并不是为了避免这种情况,会有一些工作职上冲突,一些职责上清晰。 - -**[01:40:20] 发言人 8**:为了就是我建议可以把收闲工作的这些工职的稍微细化一点,但这样出问题的话,就是为了以后不再跟销售之间关系出现矛盾,提前的就把一些工作职责进行划分,然后能够减少这样未来会出现冲突的一种概率。 - -**[01:40:42] 发言人 2**:我跟你讲,这有两个,第一这个职责清晰界面也也是模糊的,职责清晰界面也是模糊的。 - -**[01:40:51] 发言人 2**:第二,如果销售真有能力,他见到客户他在卖东西,你跟他之间产生矛盾是没有价值是吧? - -**[01:40:59] 发言人 2**:除非你自己去卖东西,他就是这个情况。 - -**[01:41:08] 发言人 2**:下来我觉得你们可以销售员拉在一起,大家座谈,多聊一下,增加,对,好吧。 - -**[01:41:21] 发言人 8**:再往下,其实我想到的其实就是。 - -**[01:41:25] 发言人 2**:四个谁带来的客户,谁是老大,这个世界就是这样的,好吧? - -**[01:41:32] 发言人 8**:可以。 - -**[01:41:35] 发言人 8**:然后再往下,其实也是我上周也是跟一些渠道去跟去去新乡出差过,见了金牌见当地省代。 - -**[01:41:44] 发言人 8**:我上一年也跟东北那边的省代也跟金牌聊过。 - -**[01:41:48] 发言人 8**:其实跟渠道的交流方式有几个确实交流非常好的,渠道也给我带来了非常多的业务机会,后续的合作项目也会目前看来也会非常多。 - -**[01:42:01] 发言人 8**:然后也坐下来吃饭一块聊聊天,其实感受到了其实就是能够我也总结了我自己跟他们交流方式也总结了三点。 - -**[01:42:09] 发言人 8**:其实第一点就是我们这个角色对于售钱这个角色不是一个单纯售钱。 - -**[01:42:15] 发言人 8**:在跟渠道交流的时候,我觉得不能让渠道单纯的你是一个售前技术,就是我们各个区域的技术负责人,就是不能让他觉得你就是一个售前。 - -**[01:42:25] 发言人 8**:因为你本质上你也不是一个售前。 - -**[01:42:27] 发言人 8**:如果他把你当成一个售前的话,你跟他对话的其实就不是一种平等对话。 - -**[01:42:32] 发言人 8**:他会把你当成一个某个领导下边的技术,你是为他服务的那这样的话你跟他平等谈商务,谈合作,他其实是谈不下去的这第一点。 - -**[01:42:41] 发言人 8**:第二点就是我们这种销售模式跟其他厂家销售模式有一点很大。 - -**[01:42:46] 发言人 8**:其实就是我们中间没有中间商赚差价,基本上跟这些竞卖渠道合作,其实他们相当于直接从工厂商打价,中间没有任何人插这个贵手。 - -**[01:42:56] 发言人 8**:要让他明白这一点,就是扮演一个无害的渠道,你只会为他带来收益。 - -**[01:43:01] 发言人 8**:而不是说你中间还要通过这个项目,你还是中间捞点钱。 - -**[01:43:05] 发言人 8**:他们也问过一个问题,很直接的问题就问我,包括有两家两个人都两家渠道就问过一块各家吃饭你聊过,你卖一台知道你能赚多少钱。 - -**[01:43:15] 发言人 8**:我说我上年卖你一台终单,我能赚十块钱提成,我今年没有了。 - -**[01:43:20] 发言人 8**:所以说对您来讲,我一台终端我卖贵50块钱,卖低50块钱,对我来讲没有意义。 - -**[01:43:26] 发言人 8**:这个钱到不了五代,但是我少卖你50块钱,你能把这个项目吃下来,下次再找我合作,弄得我业绩上增加。 - -**[01:43:34] 发言人 8**:旅游更容易义就扮演一个武汉的角色,这点一定要让渠道知道。 - -**[01:43:39] 发言人 8**:第三点就是说彭总之前说了要有温度一点,也是他们现在就是之前卖云桌面。 - -**[01:43:45] 发言人 8**:因为我现在接手的金牌都是之前卖过云桌面的,他们最大的问题就是找到主心。 - -**[01:43:51] 发言人 8**:现在就是我来他们反映就是我来之后什么时间都能找到我,我也可以为他们提供建议,他们就是愿意去干这个事情。 - -**[01:44:00] 发言人 8**:这是我总结的三点。 - -**[01:44:04] 发言人 2**:你这个让我有点有有有,我知道你有点什么意思了,你上一条。 - -**[01:44:09] 发言人 2**:首先我觉得你做这个渠道,其实做的还是可以的,挺好的。 - -**[01:44:14] 发言人 2**:因为俊年他们也说,包括新疆,有些地方我觉得还是有很多是因为跟渠道的沟通,面都没见,跟渠道的沟通很好,也跟渠道也做了很多的想法,我觉得这个挺好的。 - -**[01:44:27] 发言人 2**:我觉得我们所有的像扬州,还有这个微国,都都这方面我觉得都应该要向你学习了。 - -**[01:44:36] 发言人 2**:因为做了一些事情,面也没见你把东西卖了,而一个渠道的沟通也满足了渠道的需求,我觉得事挺好的。 - -**[01:44:44] 发言人 2**:然后你你这你说这个我可能理解到了,你上一点为什么要说销售和渠道的沟通呢? - -**[01:44:50] 发言人 2**:我就下来我们再聊,这事下来再沟通,我大概知道你想说啥意思。 - -**[01:44:56] 发言人 2**:生刚生刚你生刚你说说。 - -**[01:45:03] 发言人 3**:昆融一个很很强大的一个优点,就是他跟他接触的渠道之间的沟通非常顺畅,然后对渠道的服务也非常到位。 - -**[01:45:15] 发言人 3**:所以说跟他接触过渠道以后,就愿意不停的跟他打交道,所以说能够带来第二次的销售,第三次的销售,这个渠道一个个积累。 - -**[01:45:27] 发言人 3**:所以说从目前为止,从那个滨江到东北,吉林和辽宁,他这下来我看下来就是说这个不较都愿意跟他来接触,然后跟他来沟通进一步的沟通项目的这个情况,然后也是愿意再一步的合作。 - -**[01:45:48] 发言人 3**:所以在这点方面,他比我们其他两个团队的这块的工作上面的可能工作方式上面,他是有一些有些他自己的一些方法来处理的,有一些优势。 - -**[01:46:00] 发言人 3**:这个我就直想让天融公司给我们整个团队来分享一下他的这些渠道工作的一种思路或者一种方法。 - -**[01:46:10] 发言人 3**:这个下来,不然我到时候再跟你聊一下,看看怎么通过一种方式来分享一下。 - -**[01:46:17] 发言人 3**:我觉得这个是值得我们目前团队去学习,只有这样才能把我们的渠道工作更进一步的推进起来。 - -**[01:46:26] 发言人 3**:我是比较赞赏温如这点工作的对。 - -**[01:46:30] 发言人 2**:要不然要不要让昆仑来运营我们我说了一个大的一个概念,没完全说清楚。 - -**[01:46:36] 发言人 2**:但是我觉得肯定是一个机会,就运营我们这个叫什么紫光汇智娱乐面的这个小红书,运营一个这个运营一个这个东西,这可能是个小红书或者可或者是一个这种或者是一个叫什么来着。 - -**[01:46:50] 发言人 2**:就是一个平台。 - -**[01:46:58] 发言人 3**:那我下接下来我们预聊一下,我们一个词就策划一下昆。 - -**[01:47:05] 发言人 2**:仑我发现了我说的可能不一定完全对。 - -**[01:47:09] 发言人 2**:你们反正咱们研讨,就昆仑的上一个题目,让我觉得还是有一些往上翻哈他上一最后那一点就是说渠道和销售之间的职责。 - -**[01:47:20] 发言人 2**:其实我觉得你不是问我,你是在问自己。 - -**[01:47:23] 发言人 2**:因为你你你既然你能你又能做,因为销售和渠道,销售和售前,因为销售和售前本质上在我们的心中,就像华三一样,一个销售带俩售前,一个销售在前面走的扬眉吐气,拿一个售前帮他提包,他一个售钱帮他拿拐棍。 - -**[01:47:42] 发言人 2**:然后呢这然后这个需要出需要妈在方案的时候售前上,需要吃喝的时候销售上,需要搞个勾具的时候售销售上,需要他妈的做方案的时候售前上。 - -**[01:47:55] 发言人 2**:但是昆仑,你看你后面说的这一点,你说你也没有提成,也没有给人家有任何的吃喝。 - -**[01:48:01] 发言人 2**:但是你又把渠道的一些东西给卖掉了,而且还天远地远的。 - -**[01:48:06] 发言人 2**:我觉得你还是可以就下来思考一下是么? - -**[01:48:09] 发言人 2**:你可以做一个紫光汇智云桌面的小红书,我们单独把你拉出来一块,你又当销售,又当售钱,又当运营,就把你当成个口,我瞎说,我觉得这可能。 - -**[01:48:24] 发言人 5**:是一种新的方式,也没有没有错。 - -**[01:48:27] 发言人 5**:其实昆龙这边他它和渠道之间,包括以前我在做授寻的时候,他我就感觉到和昆融共鸣是什么呢? - -**[01:48:36] 发言人 5**:就我们的授权一定要去多站在客户的角度思考,不要客户只问了一个配置,一个需求。 - -**[01:48:44] 发言人 5**:好问了你答复有或者没有这个事情就戛然而止了,这是挖掘不了更多的机会的。 - -**[01:48:52] 发言人 5**:其实客户问了你,你要深层的去看透这个本质的这个项目的本质需求是什么。 - -**[01:48:59] 发言人 5**:我这个需求不满足,我会跟你说,我这里边还有一套东西,你要不要看一看这套东西比你提的需求可能更好,价格更便宜。 - -**[01:49:09] 发言人 5**:我只举个例子,比如说多要去和渠道来多个来多几个来回,然后把我们更多的东西给取了。 - -**[01:49:17] 发言人 2**:说对这个所以说为什么专家销售。 - -**[01:49:20] 发言人 4**:你说孟洁这周跟我们一我一起就聊到新疆农村角色的时候,就会就聊到了宽容和孟洁一起在支持新疆渠道。 - -**[01:49:31] 发言人 4**:他们也是近期才去了一趟,去之前全是昆容远程去支持的这几家渠道网全是网友,五家渠道就是电话沟通远程沟,在这聊的过程中,就是昆融自己写的为渠道多想一些,然后同时有温度的服务也是一个角色。 - -**[01:49:51] 发言人 4**:然后聊完之后,其实反过来就是我跟孟洁总结出来,困手这块我首先第一次个做的好,但同时我们也总结了一个对我们云智销售的人也是一样。 - -**[01:50:02] 发言人 4**:为什么刚刚第一个讲的时候,一个杨昭讲的时候,就是说除了引导需求学技术之外,同时如果是说能把我们的产品可以去都学一学,我们的销售也应该奔着这么一个画像去走。 - -**[01:50:16] 发言人 4**:而且都应该刚刚司凡也说要分享那个渠道销售的一些经验,让让观众分享。 - -**[01:50:24] 发言人 4**:如果云智销售首先第一技术产品各个维度都懂了,然后之后建渠道或者是每次沟通渠道的时候,会达成更多像目种在新疆那种成功案例。 - -**[01:50:35] 发言人 4**:否则的话你只报个价,报告之后,公司不催你不回你也不动不主动去聊,也不主动微信沟通,也人家渠道也不会把你当个角色来看。 - -**[01:50:46] 发言人 4**:所以这个确实是我们一个典型的案例。 - -**[01:50:50] 发言人 4**:在昆容在把这个特别是新疆突破这几个点。 - -**[01:50:56] 发言人 2**:你看我们这个云桌面本身,其实还不完全是个产品,它其实是个方案,而且我们其实公司未来还有好些东西也有方案。 - -**[01:51:05] 发言人 2**:就我因为我们你你光做产品的话,其实面对很多大厂我们是有压力的。 - -**[01:51:10] 发言人 2**:我们公司小,所以我们更希望以方案或者以能力取胜。 - -**[01:51:14] 发言人 2**:但是你一旦说到方案能力,我打个比方就是那个医院里的那个医生,有些医生你20块钱门诊费,他这个门可罗雀。 - -**[01:51:22] 发言人 2**:有些医生专家医生他就是三四百块钱的门诊费,他这个可能他只要一出来号就挂完了,就没他的号了,是吧? - -**[01:51:31] 发言人 2**:就是口碑吧? - -**[01:51:33] 发言人 2**:这个口碑来自于可能他在这个业内长期形成的。 - -**[01:51:38] 发言人 2**:你看知道这个医生很厉害,都来找这个医生是吧? - -**[01:51:43] 发言人 2**:人传出来的。 - -**[01:51:44] 发言人 2**:还有一种现在比较慢慢,我觉得越来越开始盛行的,就是这个自媒体的很多东西。 - -**[01:51:51] 发言人 2**:他慢慢的觉得这个就是好啊,是不远千里来解决问题。 - -**[01:51:56] 发言人 2**:所以我觉得下来为什么紫光汇智要有个要有这个要有这个叫什么这个自媒体的要去推广这个事情呢? - -**[01:52:05] 发言人 2**:就是你真正遇到问题的时候,你真最真真实的需求? - -**[01:52:09] 发言人 2**:他们他能唾手可及,眼睛一看就看到了,手一抓就抓到了,那自然他就好。 - -**[01:52:15] 发言人 2**:未来是扁平化的,他一定不是说不是说这个层级越多的,越往后走越扁平化,这个销售越扁平化。 - -**[01:52:24] 发言人 2**:你说的很对,越往后走销售售前的技术可能会慢慢会趋同,会把这几个岗位,有些销售的岗位,尤其是卖有些尤其是某些产品,你不是说那种卖给国企,就是每个人都要在里面吃一道,到最后这个叫什么? - -**[01:52:40] 发言人 2**:就每个人主要是靠这个中间的中间搞关系才能够叫到项目是吧? - -**[01:52:47] 发言人 2**:很多项目小项目他可能就是销售和售钱要去的。 - -**[01:52:51] 发言人 2**:因越是小项目,人家在乎的就是简单的就是你这个产品的能用性的时候。 - -**[01:52:57] 发言人 2**:中间没那么多的这些什么从一级一级领导往们下,什么都想吃点,对,想占点的是吧? - -**[01:53:05] 发言人 2**:不是那种国企项目是吧? - -**[01:53:06] 发言人 2**:不是那种特别他么复杂的国企项目,反而我觉得这种小点的项目,你现在就是销售售钱要这种整合在一起了。 - -**[01:53:16] 发言人 2**:我们原来我多说一两句好了。 - -**[01:53:19] 发言人 2**:当时在做通信的时候,最早外企爱立信、诺基亚、阿尔塔特少、海贝尔全都是销售兼收钱。 - -**[01:53:27] 发言人 2**:就是售销售要写方案兼售钱,所有监管,为什么到了中国他就水土不服呢? - -**[01:53:34] 发言人 2**:他就慢慢的销售和收钱分开了呢? - -**[01:53:37] 发言人 2**:因为中国喜欢搞关系,销售主要的工作都是搞关系了。 - -**[01:53:41] 发言人 2**:原来的销售收钱都是985,尤其是销售收钱都是那都是都是通信毕业。 - -**[01:53:50] 发言人 2**:我操花了很多年学了那么多知识,最后就分道扬镳了。 - -**[01:53:54] 发言人 2**:销售主要是管吃喝、洗澡、唱歌,售前主要是管写写代码是吧? - -**[01:53:59] 发言人 2**:为什么会出现这个情况呢? - -**[01:54:01] 发言人 2**:为什么会出现情况? - -**[01:54:03] 发言人 2**:就是因为他这个工作量太大了,你让一个又写代码,又又又又不又又写这个方案,然后又要去做宣讲,最后还得赔客户的,他没那么他工作量太大。 - -**[01:54:15] 发言人 2**:还有一个销售中间的成本太高,就是这个交易成本太高是吧? - -**[01:54:20] 发言人 2**:你在国外不可能的,你在美国你送人家100美金他妈都要把你踢出去的。 - -**[01:54:26] 发言人 2**:他交易成本低了,国外他当然他主要的工作就是售前和这个技术支持,反之我们现在卖的渠道产品尤其能够越往下走越卖的稍微便宜点产品我觉得更是要高度重视销售授权的统一性。 - -**[01:54:44] 发言人 2**:如果销售授权越统一,越简单,你可能就越好。 - -**[01:54:49] 发言人 2**:你如果就是为了搞搞关系,你中间你把这个关系一搞就没多少利润了。 - -**[01:54:56] 发言人 2**:你只一写没多少利润了,你最后是不是你这个我们现在产品是这样的,你要卖几千万的服务器,那就是关系。 - -**[01:55:04] 发言人 2**:你说主要搞关系,就去吃喝,但是搞关系十个中一个是吧? - -**[01:55:09] 发言人 2**:我们也有搞关系的销售是吧,你关系不够,你喝大半年的酒,你也就中一标。 - -**[01:55:14] 发言人 2**:你可能在华山那个体系里可能好一点,你喝一年也就这么回事,你万现你搞的你华山体系里很多销售做了一年下来,回想一下,我所有的新式的大哥喝了新的酒居都白喝了。 - -**[01:55:27] 发言人 2**:我原来那扩容的反而给我带来些东西,我操。 - -**[01:55:30] 发言人 2**:还是前一任种的树,我这一任乘凉,我自己认的几个大哥他妈喝了些酒,他妈的我操,还不知道什么时候他妈的。 - -**[01:55:38] 发言人 2**:结果这就是销售,这是传统销售,我多说了两句,这跟我说给我们销售听的是我觉得反而需要现在需要很诚信的,就是对技术了解的,然后能够双方一针见血看到问题解决问题的。 - -**[01:55:52] 发言人 2**:我觉得这样子尤其是跟渠道也能够达成建建立很好关系的。 - -**[01:55:57] 发言人 2**:因为别人也要去卖钱,别人要挣钱,我觉得这样的话可能是我们未来的主要的这种方式。 - -**[01:56:05] 发言人 2**:见面也是这样,不见面也是这样。 - -**[01:56:14] 发言人 2**:好,继续吧。 - -**[01:56:28] 发言人 8**:那那我这边基本上白眼问毕了。 - -**[01:56:31] 发言人 2**:对我愿意坚持,有些东西我就下来。 - -**[01:56:34] 发言人 2**:盛哥也说了,这个叫什么呢? - -**[01:56:38] 发言人 2**:你这个有有多大的能力,有多大的想法,那么就会有多大的资源。 - -**[01:56:46] 发言人 2**:我觉得你从重庆又到杭州去,我觉得也是很好的。 - -**[01:56:51] 发言人 2**:我们就共同努力,这个公司把一些未来看看,把一些更好的一些东西交到你这里来是吧? - -**[01:56:59] 发言人 2**:我们把它做的更大一点。 - -**[01:57:02] 发言人 2**:好的,这边。 - -**[01:57:04] 发言人 8**:会更努。 - -**[01:57:06] 发言人 2**:好,继续。 - -**[01:57:08] 发言人 8**:我这边结束共享。 - -**[01:57:13] 发言人 1**:下面是,售后代表来发言。 - -**[01:57:18] 发言人 1**:贾成明。 - -**[01:57:27] 发言人 2**:我们玩了大概到几点,我估计上午可能还得下午,当时算的时间假。 - -**[01:57:34] 发言人 5**:村民估说还有两个销售是吧,对,就还有三个人。 - -**[01:57:40] 发言人 4**:杰哥。 - -**[01:57:41] 发言人 9**:各位领导,我漏洞我在贾哥讲之前,我能讲点我这边最近遇到的一些事吗? - -**[01:57:50] 发言人 9**:可以,能不能给我几分钟时间? - -**[01:57:54] 发言人 2**:可以说。 - -**[01:57:55] 发言人 2**:各位领导是这个样子。 - -**[01:57:57] 发言人 9**:我最近在西安、山西、河南等地,然后有一些跟我们合作比较多的,包括是之前华三做的重点项目,包括西安财经学院以及红汇医院,包括一些包括西藏民族大学。 - -**[01:58:13] 发言人 9**:在交流的时候,因为近几年的财政,不管是教育医疗还是政府单位,它的财政其实是有限的。 - -**[01:58:22] 发言人 9**:它除非是原有的,在云桌面里边它坏了,或者是它现有的系统跟老系统存在兼容性问题,它才会进行一定的财政支出去解决更换的这个事情。 - -**[01:58:34] 发言人 9**:那另外一个,就是但是学校或者说这些企业,这些甲方客户,他每年都有预算。 - -**[01:58:40] 发言人 9**:很多部门其实也想花这个预算,但是他们总归要找一个由头去把这个预算花掉,也要跟上边领导去汇报。 - -**[01:58:49] 发言人 9**:我最近遇到的比较多的就是我们有没有什么新的东西。 - -**[01:58:53] 发言人 9**:昨天我跟在西安财经大学交流的时候,其实跟洪强还有一民也还有包括俊杰总也聊过这个话。 - -**[01:59:02] 发言人 9**:包括我们的艾米,包括龙虾,包括华三的Q这种东西我都可以结合去跟客户说。 - -**[01:59:08] 发言人 9**:但是客户反过就是客户也比较认可这种东西,他觉得这个东西也比较新。 - -**[01:59:14] 发言人 9**:但是到最终说第一个测试或者说方案落地我就懵了。 - -**[01:59:18] 发言人 9**:因为我在跟客户交流的时候,很多东西其实是夸大其词的,甚至于就是这个落地是百分之百,我可能吹牛的时候有40%的可落地性,60%都是我吹出来的。 - -**[01:59:32] 发言人 9**:你等到落地的时候,其实我就懵了。 - -**[01:59:35] 发言人 9**:包括写方案的时候,客户说你这个方案不够,我到时候落地的时候,其实就很难去做这个事情。 - -**[01:59:42] 发言人 9**:就我提出这个问题就是过去解总包括我们产品团队,包括我们这边对于云桌面有没有新的东西,你包括我们推,除非客户现在的一个行情是客户有这个需求,或者说客户要更换了,我才能够匹配这个就是项目来找我们我们去找项目的时候,对于一些核心客户,你包括西安财经大学,他一共现在有17家,四就是21间教室,统一都用的是我们云端的产品。 - -**[02:00:10] 发言人 9**:这种属于核心客户,客户也愿意跟我们聊,但是往往我们没有新的,包括跟A相结合的东西。 - -**[02:00:17] 发言人 9**:跟结合的包括冯总刚才也讲,刘总也讲了,我们龙虾,我们华山的cu华山的大模型,包括我们的I meeting。 - -**[02:00:25] 发言人 9**:但是这种东西我在跟客户讲的时候,客户说你出个方案有没有测试场景,有没有在其他一些局点落地过。 - -**[02:00:35] 发言人 9**:这个时候我就有点怵。 - -**[02:00:39] 发言人 9**:因为我不知道按照我当时跟客户交流的那个逻辑,去把这个方案写出来之后,后续我们到底能不能把这个东西做出来,这个是我现在最近遇到的问题。 - -**[02:00:50] 发言人 9**:因为云端现在面临的就我这边面临的问题就是一个推动的问题,就是我现在如何去跟客户一块去传这个项目,那传这个项目就涉及到一个新的东西出来,我们现在新的东西就是一个以及后续的一些计算。 - -**[02:01:06] 发言人 9**:包括我还跟一些渠道,包括华山也在聊,包括数据的整备,数据的治理。 - -**[02:01:14] 发言人 9**:但是这些都是第三方的,因为云桌面归根结底在现在很多人使用的话,还是以一个可管理或者说安全性较高的一个传统P C来用。 - -**[02:01:25] 发言人 9**:个。 - -**[02:01:25] 发言人 9**:然后另外一个,就是刚才提出来的nice的这个东西,我这个区域可能普教场景会比较多一点,也就是一两间教室大概的规模也就是40到810点的一个区间。 - -**[02:01:37] 发言人 9**:我也在跟一些省代去有一些小的局点,我可以我去推这个东西。 - -**[02:01:42] 发言人 9**:目前我知道nex的一个优点在于,就是他可以在以前华三软件上边种出来的情况下,去减少他的服务器端资源,包括他管理机的一个资源。 - -**[02:01:52] 发言人 9**:其次的话就是我们这块的一个可以开机开箱即用的这个东西。 - -**[02:01:59] 发言人 9**:一个是对于客户来说,他可以用比原来预算少的钱去搭建整体的一个环境。 - -**[02:02:06] 发言人 9**:另外一个就是对于省代或者部署人员来说,他简单易部署。 - -**[02:02:11] 发言人 9**:另外一个就是有没有我们可以加一些新的逻辑进去,这个是我我所要表达我的一些东西。 - -**[02:02:24] 发言人 9**:黄总,我这边没别的了。 - -**[02:02:26] 发言人 2**:我这个我说一下,我觉得第一个就是我觉得卖新东西这个非常好。 - -**[02:02:32] 发言人 2**:我们也希望未来有很多个就很多个方向,实话实说,我们每周就是我至少我是这最近这几周一直在思考? - -**[02:02:42] 发言人 2**:包括大是从年初就开始在想我们能做什么。 - -**[02:02:47] 发言人 2**:包括你说这个艾米,我们现在改名字叫智听云,就智听智听云我们其实内部开过无数次的研讨会,包括我们关于几个产品的构架,几个产品的面向客户是什么样子的,我们内部也研讨过无数次。 - -**[02:03:07] 发言人 2**:我就提两个,第一你说你跟客户说,你40%是说了60%吹牛40%真的我就建议不要吹牛。 - -**[02:03:15] 发言人 2**:真的我我特别在这强调,我我我希望我们所有的销售和和这个售前不要吹牛,少吹牛,或者说你10%,你就说那么一点点,别张口就吹牛,这个非常不好。 - -**[02:03:29] 发言人 2**:因为你吹多了以后,你自己吹的牛,你你你就是你自己的信任。 - -**[02:03:34] 发言人 2**:因为你落肚,你说一次,我下次人家不信任你了。 - -**[02:03:37] 发言人 2**:第三次以后咱们来了,人家谁还跟你,人家都知道你你你看人家知道你是吧,你那话一半是假的那一旦人家形成你这个对你有这种感觉,我觉得你就麻烦了是吧? - -**[02:03:49] 发言人 2**:我首先说,我而且反之,如果别人在我这儿说说两句话,有一句话是假的。 - -**[02:03:55] 发言人 2**:你不要说两句话了,你说五句话有句话是假的。 - -**[02:03:58] 发言人 2**:被我发现了那两次以后,我认为你用20%不靠谱,我自然就会从各个角度来来重新审视你,所以我觉得这个能少吹牛,能不吹牛不吹牛,这是一点,我觉得这是一种风格,就卖东西还是要相对诚信的。 - -**[02:04:14] 发言人 2**:我这第一第二的话,你如果你在比如说你刚才说的这个学校,就叫什么学校来着? - -**[02:04:24] 发言人 2**:西安财经大学现在如果是关系也很好,华南关系也很好,我觉得我们可以去结合预算我们去搞创新。 - -**[02:04:31] 发言人 2**:我觉得可以我们安排人过去,或者说你把那边了解的东西跟我们内部总部,你把它记下来开个会,开个会以后,我们总部一起来研究研讨怎么来落地,通过哪些方式来落地。 - -**[02:04:46] 发言人 2**:就是我我特别结合这个,我特别想说,就这个M或者你们叫M,我就叫志听云,我觉得特别重要的一点,我昨天前天还在跟就在说,我说其实我是希望我们的人,尤其是这种交流的时候,我是希望你落洞。 - -**[02:05:01] 发言人 2**:你是带着这个就是要语把这个记录下来。 - -**[02:05:06] 发言人 2**:我们未来还想做一些小的形式,如果现在没有我在手机上做一段也可以。 - -**[02:05:11] 发言人 2**:你把它记录下来,你把你们的交流对话记录下来,然后记录下来。 - -**[02:05:17] 发言人 2**:后哎先就是第一个有原声以后,我们可以总结。 - -**[02:05:21] 发言人 2**:拿回来以后,我们大家一起,一方面你很简单,因为你说你担心说两次你记不住重点人肯定是这样的,你让他把原来的话再复述一次。 - -**[02:05:32] 发言人 2**:难死是吧? - -**[02:05:32] 发言人 2**:你这个老师去去背诵,你又不是不是不是以背诵为见长的,是吧? - -**[02:05:37] 发言人 2**:人本来就是记主要东西的,你可以把那个拿拉发到群里。 - -**[02:05:41] 发言人 2**:你说我今天跟那个学校才跟大家聊了,有这么多的内容是吧? - -**[02:05:46] 发言人 2**:好,你第二次你又见了,你说又聊了,这次内容上的内容有什么区别? - -**[02:05:50] 发言人 2**:我跟你讲,昨天我们让让这个悟空,就是阿里巴巴阿里的有一个小姑娘来悟空? - -**[02:05:57] 发言人 2**:到我们这来跟我们讲他这个悟空的部署,他就拿了个手机就把我们所有的讲话都记录下来。 - -**[02:06:04] 发言人 2**:但是我跟他说,我说你这个,我说因为我们人多,有些刚才聊到了我们公司的一些经理,我建议你把他删了。 - -**[02:06:11] 发言人 2**:他后来也同意了他,但是他不行,他说他要问他领导,并云他领导他跟他领导打通一个视频会议,视频让然后问他领导说他领导说给他说了,我们在现场说这边不同意,他领导说好不好,把他就删了。 - -**[02:06:25] 发言人 2**:那人家说明什么? - -**[02:06:26] 发言人 2**:人家是一个强行要求,就是人家要求是阿里的所有的无空的人员出去跟客户做这种交流,必须录音强行要求。 - -**[02:06:35] 发言人 2**:如果你们可以,如果你觉得不礼貌,你们想删了就删了。 - -**[02:06:39] 发言人 2**:但是我觉得如果有很多客户,我是希望他,如果我跟他沟通一个东西,我担心他跟我说不清,我是希望他录音的。 - -**[02:06:48] 发言人 2**:我觉得没关系,你录下来你说不清,你回去找总部再听一遍,再总结,我们再来一次是吧? - -**[02:06:55] 发言人 2**:我觉得这个没有问题。 - -**[02:06:57] 发言人 2**:所我是希望我们自己的人,你们如果有这个诉求,你们把这个东西把它录下来。 - -**[02:07:03] 发言人 2**:这也是我觉得置听了,你要安你,我觉得这个也置听,未来我们要因为第一,你你你在你在外面,你如果用这个录音的,你要不你就是按分钟按按分钟收费,这肯定是这样的是吧,大部分是按分钟收费的,而且你录到别人那儿,你别人把信息拿走了。 - -**[02:07:22] 发言人 2**:所以我是觉得作为企业来说,我给企业做一个就是叫什么声音数据不出门的是吧,录了还在本地。 - -**[02:07:30] 发言人 2**:而且还有一个信息安全有保障。 - -**[02:07:34] 发言人 2**:第二我觉得我们内部可以把这个就智听云这个产品,就是一旦形成一个知识库,跟知识库结合起来,就每次沟通交流都会有一些新的东西是吧? - -**[02:07:46] 发言人 2**:上次跟他怎么讲的,上次怎么讲的,我觉得如果有一个按时间的有一个关联,包括你们在跟别人在讲东西的时候,你每次讲完以后,别人反馈的东西你慢慢记录下来以后,我觉得这种比较性非常好。 - -**[02:08:01] 发言人 2**:这种比较性可以看出来一个做事情的延续性,也可以在里面发现客户的很多东西,我对这个就是记录这个事语音留下来,慢慢的记录下来很有兴趣。 - -**[02:08:13] 发言人 2**:我后续有以后要求我们的售前都要去做这个事,而且我们会也出一些强行的要求,我觉得这是好事儿。 - -**[02:08:21] 发言人 2**:因为录下来以后,对我对后续总部来分析这些很多事儿,光你嘴要说我们新在客户怎么说的,我还是想听一听,我觉得是有好处的。 - -**[02:08:31] 发言人 2**:回到你刚才说的这个,关于这个新产品,我觉得第一还是需要大量的和总部的交流沟通,把你带来的信息拿到跟总部交流沟通完了以后,总部我相信我们就包括我也是积极参与这个新项目的测试和试点的。 - -**[02:08:47] 发言人 2**:但是越是新项目的测试试点的,我觉得越是会消耗资源。 - -**[02:08:51] 发言人 2**:那么消耗资源的话,我肯定是有的放矢。 - -**[02:08:54] 发言人 2**:我们希望是跟我们这个关系好一些,这个项目能变现的哈他也就刚才你说了,他有预算,他也希望能把它花掉。 - -**[02:09:02] 发言人 2**:那我们也希望通过他的预算能帮他做出一些亮点,我们觉得是一定双方要达成一致的。 - -**[02:09:09] 发言人 2**:最怕就是什么呢? - -**[02:09:10] 发言人 2**:拿来测测,这个用,完了以后他就没给你下文了。 - -**[02:09:14] 发言人 2**:那对不起,我也没这个能力。 - -**[02:09:16] 发言人 2**:现在什么涨价了也不行了,我们的投入就会白投入,而且这种可能性非常大,我们好不容易准备了很多,而且更可怕的是他说的需求是伪需求。 - -**[02:09:28] 发言人 2**:因为他就是站在他自己角度说了两嘴,根本那个就不是一个真的,你结果你就给他,你当真了,你就给他俩噼里啪啦整整了半天。 - -**[02:09:39] 发言人 2**:最后你发现他们领导根本就不开口这个事儿换句话说,人家就是嘴上就是你来了,人家就是想起来了我I have a dream有个idea跟你说说说完了以后,你最后你根本就无法落实,他也无法落实了,没法给你钱。 - -**[02:09:54] 发言人 2**:甚至话甚至说完以后他他心中的那个梦想,基本上你现在成功产品都不行,你就是花大量的时间给他定制化了,你有可能验收的验收不够。 - -**[02:10:04] 发言人 2**:所以我觉得这是多方面综合考虑,但是我觉得就是云桌面下一代的云桌面跟AI的结合,就是把龙虾这个东西放在这个本地。 - -**[02:10:14] 发言人 2**:放在结合那些有服务器的企业,结合那些对安全有管控的企业,对智能化有管控的企业。 - -**[02:10:23] 发言人 2**:我觉得A一定有大量的企会,而且一定会不是我们在革命,而且这个革命一定会席卷到云桌面的,而且一定会重构云桌面的。 - -**[02:10:33] 发言人 2**:就这么说,只是现在我们现在还在看怎么来我们怎么来进入这个革命,要不然我们肯定会被他淘汰掉。 - -**[02:10:43] 发言人 2**:就这个意思,我就下来,你们也要多。 - -**[02:10:46] 发言人 2**:你如果有这种信息,你就赶快组织语言。 - -**[02:10:49] 发言人 2**:你你你如果你不录,我建议你是录。 - -**[02:10:51] 发言人 2**:你如果你录不了,你今天比如下午见完这个领导,你出来你一里哇啦嘴上你赶快说今天见他12345678,然后说完以后让他转换成文字,然后发给我们。 - -**[02:11:04] 发言人 2**:我经常都是这样做的。 - -**[02:11:06] 发言人 2**:我原来我在跑销售的时候,我如果遇到重要的事,我见我的领导或者跟我的领导要资源,我第一时间我出出了他大门,马上给我领导打电话。 - -**[02:11:15] 发言人 2**:我说刚才我们的所有东西是这么聊的。 - -**[02:11:18] 发言人 2**:我觉得这个有两个好处。 - -**[02:11:20] 发言人 2**:第一我不会忘掉,我不会选择性的记忆。 - -**[02:11:23] 发言人 2**:第二我觉得也把一个事情一个迅速的事情把它做到最快? - -**[02:11:27] 发言人 2**:反馈最快,往往这样子才会有成效。 - -**[02:11:30] 发言人 2**:我最不喜欢的原来我最不喜欢我的手下了,我最不喜欢我的销售,干嘛呢? - -**[02:11:34] 发言人 2**:就第二天。 - -**[02:11:35] 发言人 2**:彭总,我昨天见了个谁谁,我跟你说说,我说你昨天为啥不跟我说? - -**[02:11:40] 发言人 2**:昨天事儿多,我说那你算了,你今天其实也不用着急,明天说也来得及。 - -**[02:11:45] 发言人 2**:那那那这个已经过了一天了,我现在想说了,那我告诉你,你现在想说的一半是你自己脑子里主观的。 - -**[02:11:52] 发言人 2**:哼你忘了,你肯定忘掉一半了,你就挑几个,你想的来说就这意思。 - -**[02:11:57] 发言人 2**:我大概就认为这个销售目标,所以基本上销售在我面前,如果第二天再跟我讲他看到了什么,听到了什么,首先我就认为这事不重要。 - -**[02:12:09] 发言人 2**:第二我就认为这个销售水平很差,他的水平不足以应付我看到的市场的商机和应付那种困难。 - -**[02:12:18] 发言人 2**:因为我本身我就不会像他这么做,我一般见到客户,我一般见到重要的人,这个我都会第一时间把信息反馈出来。 - -**[02:12:31] 发言人 2**:好吧,我针对你这个东西,我说我的感想,我也说给很多销售听。 - -**[02:12:38] 发言人 9**:好的,我知道了。 - -**[02:12:39] 发言人 9**:冯总后续的话,我这边看看怎么结合我们的船,就是100%能落地的东西,我再想想看看有没有什么新的东西。 - -**[02:12:49] 发言人 2**:因为你拿到信息以后,你尽快第一时间回来发给总部。 - -**[02:12:54] 发言人 2**:你不知道总部现在着急的很,总部现在因为没有第一手资料,经常在想客户是怎么想的。 - -**[02:13:02] 发言人 2**:我操这个东西想的这个东西,我操你一大半都是错的。 - -**[02:13:07] 发言人 5**:骆洞就是这样的。 - -**[02:13:09] 发言人 5**:今天今我们现在肯定是会去孵化云桌面到AI升级成AI云桌面这条产品去整合,大致就是把办公或者教学,甚至医疗常用的一些AI整合成一个叫做AI云桌面的东西。 - -**[02:13:28] 发言人 5**:然后现在在进行初步的一些架构的一些,包括需求的一些收集。 - -**[02:13:34] 发言人 5**:我们可能在家里想,更多的希望你能听到,你不用去给客户讲我们有了这个产品,你可以去包括我们所有的销售和售险的同事,可以去跟客户聊他们有些什么A需求。 - -**[02:13:49] 发言人 5**:我们现在很希望听到一线的声音。 - -**[02:13:52] 发言人 5**:好吧,洪总的意思就是说我们接下来这个知听云,我们可能会给他们一个软客户端,或者现在没有客户端的情况下,你们可以用手机的录音软件把那个音先录了。 - -**[02:14:06] 发言人 5**:录了过后我们给那个网页回来,他可以生成一个谈话纪要,好吧? - -**[02:14:13] 发言人 5**:我们希望听到需求,我们会去做这个东西。 - -**[02:14:17] 发言人 5**:也就是说,简单说就是云桌面在以往的计算存储、内存资源的管控安全上,我们要加入AI的资源管控安全和一些AI的应用,升级成AI云桌面。 - -**[02:14:29] 发言人 5**:好吧好的,我明我我明白了。 - -**[02:14:33] 发言人 2**:其实我觉得我刚才想,就是我们做一个软的客户端。 - -**[02:14:37] 发言人 2**:然后后面的一些存储,就我们的销售,我们的这个把它作为自己的一个云笔记,就是他录进去的东西,我们就给他总结了,总结以后放到他自己的那个库里,他自己就可以随时的。 - -**[02:14:50] 发言人 2**:我今天我见了人,我现在我有时候我我我每天我因为我不是那个龙虾,我经常我就会对着他说,我说我今天我做了哪几个事,然后有些收获也有些什么问题,我就放这。 - -**[02:15:02] 发言人 2**:我因为我一段我不想写,一旦放进去他自己变成了事情。 - -**[02:15:06] 发言人 2**:然后过了一个星期我就会说这个星期你帮我看看我这一星期我做了哪些事,哪些事我说了,就是想法哪些没有落实,我觉得这个慢慢你又会形成一个自己的一个知识,你会形成自己的一个叫什么? - -**[02:15:23] 发言人 2**:如果你比要像,尤其是像那个洛东他们,或者像这个谁他们他们售前的这这几个杨辉荣他们,他他可能是有用的,他留了很多的知识就放在那儿,他后续很快就能查到。 - -**[02:15:38] 发言人 2**:我哪一天跟你也聊了个这个,我聊完这个以后,人家给我回复了个这个,我觉得挺有意思的,给我们自己留一个语音的一个叫语音笔记,我们可以做一个这个东西,包括些语音参加总结的一个笔记。 - -**[02:15:52] 发言人 2**:你这个其实消耗的564药算力也不会太大,就放到我们自己的消算力上面来。 - -**[02:16:02] 发言人 2**:How . - -**[02:16:03] 发言人 1**:zero? - -**[02:16:09] 发言人 1**:贾世斌销售放。 - -**[02:16:12] 发言人 2**:在下午好吧,售后有几个售后讲完销售方的项。 - -**[02:16:23] 发言人 6**:各位领导,各同事,大家中午好。 - -**[02:16:27] 发言人 6**:这边我是贾明,然后给大家汇报一下26年的一个售工作方面的进展。 - -**[02:16:36] 发言人 6**:好,本次主要分为五个点,主要说明一下最近期的一些重点工作内容,然后当前售后的工作痛点,以及我们售后团队这边的一些对于售后方面的优化思路与建议,还有一些工作心得和下半年的一些售后规划。 - -**[02:16:56] 发言人 6**:然后上半年售后团队这边的一个工作重点主要在三方面。 - -**[02:17:02] 发言人 6**:一是在能力建设方面。 - -**[02:17:05] 发言人 6**:然后我们在三月份举办了今年第一次的汇智省代认证培训。 - -**[02:17:13] 发言人 6**:后总共有37家省代48人参加,然后47人通过了这次的培训认证,以及我们对我们持续的进行我们这个Q的案例库的一个维护工作。 - -**[02:17:29] 发言人 6**:以及还有和我们产品团队,还有研发团队开展针对于我们自有人员的这个呃技能针对性的技能培训。 - -**[02:17:40] 发言人 6**:然后建立起一个一套全面的一个故障处理的工作流。 - -**[02:17:45] 发言人 6**:并且通过我们各个公网的特殊环境,以及我们各个各个分公司的一个现场的服务器的测试环境,来进行这个新人的一个实战的一个能力的培训。 - -**[02:18:02] 发言人 6**:然后对于对于重点项目交付这方面,后今年的重今年上半年重点项目的处理有这些有华能蓝江、一汽工厂、团能存储、化工科技重研院这些重点项目。 - -**[02:18:19] 发言人 6**:然后持续对这个项目落地之后出现的一些售后技术问题进行闭环跟踪。 - -**[02:18:27] 发言人 6**:然后对于实际我们交付方面的话,是完成了重庆航航天火箭中美云的一个部署,以及风远赛迪这边的一个桌面的一个重点项目的部署实施。 - -**[02:18:44] 发言人 6**:然后保障项目的一个安交互以及客房的力度。 - -**[02:18:49] 发言人 6**:然后在我们售后系统方面,售后这边做了一些系统性的一些优化。 - -**[02:18:56] 发言人 6**:就是我们搭建我们测试并且搭建完成了一个基于三星X这个电话软件的一个森林的售后电话系统。 - -**[02:19:05] 发言人 6**:然后现在已经测试完成并且正式投入使用了。 - -**[02:19:10] 发言人 6**:现在通过客户可以通过拨打400热线,能够转接到我们这套系统里面。 - -**[02:19:17] 发言人 6**:然后我们会按照售后排班的一个情况,后进行一个转接。 - -**[02:19:23] 发言人 6**:而且我们电话系统也能进行内部的人员的直接转接,就是跟跟华340的那套系统的功能能实现基本一致。 - -**[02:19:35] 发言人 6**:然后这边的话我们还利。 - -**[02:19:38] 发言人 7**:用。 - -**[02:19:38] 发言人 6**:了腾讯的这个A软件A这套这个软件搭建了一个我们售后的技术知识库。 - -**[02:19:48] 发言人 6**:并且给省代的个工程师们做了一些推广。 - -**[02:19:53] 发言人 6**:以及我们在测试环境里面去搭了一下这个open小龙虾的一个平台,后现在开始在尝试训练,对就是对于工作流的这些技能一些相关训练,看看能不能做一些简化我们售后日常工作的一些工作。 - -**[02:20:18] 发言人 6**:然后当前工作的一些痛点的话,主要还是在一些省代的技术工程师,或者一些渠道的技术工司,他们的能力参差不齐。 - -**[02:20:30] 发言人 6**:然后会出现一种情况,就是在他们售后问题处理中,然后省代的那些工程师他们就出现问题,就只是把问题现象做了一个收集,然后没有做一些相关的后续推演。 - -**[02:20:48] 发言人 6**:然后就只是相当于是在问题处理过程中做了一个潜水,然后导致客户这边会形成一个依赖,直接联系到我们的一个售后团队,然后导致我们从技术支持变为一个项目运维,售后就是运维的一个全权负责人。 - -**[02:21:07] 发言人 6**:然后会这种情况下的话,会挤占一些我们售后服务的一些内部资源,导致不能满足不能更好的去服务一些我们自有的重点项目的一些相关售后服务。 - -**[02:21:24] 发言人 6**:而且也会出现一些情况,就是客户这边形成了一些依赖之后,导致他们不会去找这个渠道,或会绕过渠道这些直接联系原厂,或者通过华三的销售向我们售后做一个施压处理这种情况。 - -**[02:21:45] 发言人 6**:然后还有一个情况对于奈资这边,目前来说的话,我们只是对vdi产耐克v di的,实际接触的话暂时还比较少。 - -**[02:21:58] 发言人 6**:然后vy这边的话,因为我们之前做过一些功能性测试,然后对V Y产品的实际的功能什么都比较熟悉。 - -**[02:22:09] 发言人 6**:这边对于现在目前发现的一些问题有一些优化和思路。 - -**[02:22:14] 发言人 6**:首先是之前讲的对于省代这边技术服务能力方面,然后我们首先是想的是对于省代公司,我们是要做一些相关的技术考核打核,技术考核打分,然后再进并且进入到我们这个省代的评分体系里面。 - -**[02:22:34] 发言人 6**:这部分和之前和梦洁那边已经讨论确认过了,然后是从流程上已经开始进行一个落地了。 - -**[02:22:43] 发言人 6**:然后后续要看一下后续对这个打分的体例,对于后续的一个效果,然后我们再做一些针对性的优化。 - -**[02:22:53] 发言人 6**:其次的话是对于上半年发现的一些薄弱的技能点,然后就省贷那边薄弱技能点计划在今年的下半年再做一次二次培训,然后做针对性的一些培训。 - -**[02:23:09] 发言人 6**:还有就是那X产品这边的话是看能否做申请一些我们测试的终端或者是测试平台,能让我们售后团队这边自己搭建来使用熟悉一下。 - -**[02:23:24] 发言人 6**:然后对于AI脑这边,是这边也跟AI AI产品创新经理那边去做过沟通。 - -**[02:23:32] 发言人 6**:然后计划着是想后续将AI助手这边嵌合进space的桌面这边。 - -**[02:23:38] 发言人 6**:然后利用我们目前已经积累的这些问题的处理流程,还有一些方指导方案指导手册来训练一下个AI的一些技能,来实现一些管理平台的像类似运维报告的统计,然后日常巡检报告这些生成,还有这些一些常见的策略,并下发常见问题及自助处理这些功能,看看能不能做一些实时分后方面的一些实际落地。 - -**[02:24:10] 发言人 6**:而且看能不能在不增加部署难度的情况下,来进一步的降低一线这边运维的压力。 - -**[02:24:18] 发言人 6**:然后管理机制这边的话是想是我们这边想说是看看能不能建立一套比较完善的一个项目分级制度。 - -**[02:24:27] 发言人 6**:然后确保是有哪明确一下哪些项目到什么什么级别,哪些项目是重点项目,哪些项目是非重点项目。 - -**[02:24:36] 发言人 6**:好,就是确保重点项目的这个服务满意度。 - -**[02:24:39] 发言人 6**:然后就是在涉及重点项目这边的时候,售前或者销售的同事要跟我们售后这边要同步一下这个项目的一个背景电景信息,客户信息,以及这些我们的服务边界和关键联系人信息这些情况。 - -**[02:24:59] 发言人 6**:方便后续这些重点项目的问题的处理效率做一个进一步提高。 - -**[02:25:05] 发言人 6**:以及因为以及有一些非在保项目的时候,需要我们做支撑的话,最好是在做支撑之前,我们和售前或者销售同事和我们售后做先进一步的一个沟通。 - -**[02:25:20] 发言人 6**:就打电话也好,或者说是启微发消息也好,来确认好我们需要我们售后服务这边是做到哪一个方面,是把问题全部解决,还是说是看出来这个问题的根因,避免出现人力和无质量协调不协调的一个情况。 - -**[02:25:43] 发言人 6**:然最后这个就是对于非重点项目的话,也是说是想希望这边在方案落地之前要跟客户这边明确一下,客户要需要有一个专人做一个系统的运维的一个专人。 - -**[02:25:58] 发言人 6**:因为会出现就像之前说的,会出现一些情况是什么呢? - -**[02:26:02] 发言人 6**:就是客户那边没有专人,他们都是使用者,他们只是使用方。 - -**[02:26:08] 发言人 6**:然后当他们出现一些日常性的问题,比方说是什么软件安装什么的一些问题的话,他们那边没有专人处理,只能找到我们售后来做一些实施。 - -**[02:26:21] 发言人 6**:然后这边然这些内容实际上只是客户日常的一些软件的使用方向的问题。 - -**[02:26:28] 发言人 6**:然后其实不包含咱们云桌面的这个服务范围内,然后会导致会占立我们一些人力的,会占用我们大。 - -**[02:26:39] 发言人 1**:部分人力。 - -**[02:26:40] 发言人 6**:这是这方面。 - -**[02:26:42] 发言人 6**:然后目前对这个工作心得这方面的话,是要分为三点。 - -**[02:26:47] 发言人 6**:一个是在我们售后问题处理过程中需要多留痕,要保存好完整的这些邮件工单,还有会议纪料这些相关记录。 - -**[02:26:58] 发言人 6**:然后也处理过程中会处理过程中的一些问题截图,还有问题的那个配置的截图。 - -**[02:27:07] 发言人 6**:然后方便在我们后续进行案例整理以及问题知助的时候找到这些开会开。 - -**[02:27:15] 发言人 6**:然后第二个就是在场,就是我们出差到服场做一些我每要看的的候看到的明,看的终,实际用。 - -**[02:27:33] 发言人 2**:户要行的。 - -**[02:27:35] 发言人 5**:昨天给。 - -**[02:27:37] 发言人 6**:昨天给那个。 - -**[02:27:41] 发言人 2**:没事。 - -**[02:27:41] 发言人 6**:你继续。 - -**[02:27:44] 发言人 6**:出现紧或者是受权,或者是客户的这个运维人员做一个中转。 - -**[02:27:54] 发言人 2**:的信息,是出现中出现这那一个授那个日报的一个一个一个而且每。 - -**[02:28:10] 发言人 6**:天都要开,每就个每第的。 - -**[02:28:38] 发言人 2**:话。 - -**[02:28:50] 发言人 6**:满。 - -**[02:28:53] 发言人 5**:足。 - -**[02:28:57] 发言人 2**:客户的。 - -**[02:29:08] 发言人 6**:里面求半的是去。 - -**[02:29:27] 发言人 6**:然后到7月底开始后,他还进行一些独立的项目,然后到现场去做一些独立的项目,处理一些这些项目。 - -**[02:29:38] 发言人 6**:然后第二点,这边也是热,后续这个们重服务你们的模这话术交环做沟通,有哪些资料做一些传递等。 - -**[02:30:41] 发言人 6**:然后其次的话是在计划是在下半年,对于省内的这个培训,我们计划是针对于像以及产品部署的一些运维问题这方面做一些讲,这是这两方面。 - -**[02:31:03] 发言人 6**:然后还有就是我收工我也读过几年来直播售后的这方面。 - -**[02:31:10] 发言人 6**:后我们是跟计划就是在在近期利用多利用我们这个A工具,然后辅助问题处理来尝试一下。 - -**[02:31:21] 发言人 6**:把我们那些上面讲的一些想法,统计报告、巡检报告,还有策略发下发这些能力进行一些落地。 - -**[02:31:33] 发言人 6**:然后实现我们降低运维压力,降低客户现场的运维实施难度这方面。 - -**[02:31:42] 发言人 6**:然后我这边的售后这边基本上就到这儿了。 - -**[02:31:49] 发言人 2**:钟康你说一下钟康在吗? - -**[02:31:54] 发言人 2**:在我就谈一下我自己的体会。 - -**[02:31:58] 发言人 2**:其实大部分做获的内容都已经提到了,如果讲一些文件面应该找相关的算法。 - -**[02:32:10] 发言人 5**:看到看总你离麦克风近一点。 - -**[02:32:13] 发言人 4**:他假设试音器太远。 - -**[02:32:19] 发言人 2**:声音有点小,好好,现在能听在行不行,现在可以。 - -**[02:32:26] 发言人 2**:我是彭总也说过,我们公司目前看还是有能力利用AI在我们的产品方案运维各个角度都更进一步的。 - -**[02:32:37] 发言人 2**:我自己觉得A跟云桌面确实不是简单的这个功能叠加,是我们整个V D I或者V I终端工作方式的重。 - -**[02:32:50] 发言人 2**:最近我的感触是AI是让云桌面从工具升级为咱们智能生产力的一个平台。 - -**[02:32:58] 发言人 7**:前面俊姐也提过。 - -**[02:32:59] 发言人 2**:有可能因为咱们是有服务器端。 - -**[02:33:03] 发言人 2**:那服务器端是不是可以作为专利的动态调度的这个思路。 - -**[02:33:09] 发言人 2**:我觉得这个思路还是在我们后续的产品方案里面是个比较好的想法,是让我们客户的成本和性能得到一个比较好的平衡。 - -**[02:33:22] 发言人 2**:另外一个就是。 - -**[02:33:24] 发言人 3**:我们如果各种AI. - -**[02:33:26] 发言人 2**:助理如果推出的话,是怎么样让我们客户切实的感受到这种已经变通灵的云桌面。 - -**[02:33:34] 发言人 2**:我个人觉得应该不管从售后或者从其他角度来考虑,应该重点关注场景化的落地。 - -**[02:33:43] 发言人 2**:是先从小范围的高价值客户试点开始,先要跑数据,跑流程,然后再巩步推广。 - -**[02:33:50] 发言人 2**:另外一个就是今天也就相当于一个各方面的咱们云桌面的头脑风暴。 - -**[02:33:59] 发言人 2**:你感觉传统的bdi后面肯定要被重新定义的,相当于这是一次云桌面的数字化转型的路径的梳理。 - -**[02:34:11] 发言人 2**:所以这块后续可能会应该会成为我们公司重点的发展对象。 - -**[02:34:19] 发言人 2**:我就谈自己一点想。 - -**[02:34:22] 发言人 1**:法和体会。 - -**[02:34:32] 发言人 2**:售后这一块,我觉得因为你提的也比较全面了。 - -**[02:34:40] 发言人 2**:我看你们写的那个东西是假成你写的,还是你写的,还是你们商量写的。 - -**[02:34:48] 发言人 6**:这方面是我跟康总一块弄的,然后ppt是我这边写出来的。 - -**[02:34:57] 发言人 2**:我觉得你们写的也很详细了。 - -**[02:35:00] 发言人 2**:我没什么特别要说的,我是觉得也要形成这个一个是AI参与A参与故障,因为中方在行,这个说的也非常高度也很高了,这这是这个A是生产力的一个体现是吧? - -**[02:35:14] 发言人 2**:我觉得后续这个售后每天应该有一个总结会,然后把售后的这个日报,我觉得总结会也要用我们那个知听云。 - -**[02:35:24] 发言人 2**:然后这个售后应该有个日报,有个总结会。 - -**[02:35:27] 发言人 2**:这个日报你们怎么看,怎么去弄,就是要把这个数据都记录下来。 - -**[02:35:32] 发言人 2**:然后这个重要的一些你们认为或者需要的话,需要比如说售前觉得哪个项目很重要什么的。 - -**[02:35:40] 发言人 2**:我觉得你看看怎么跟那个学校他们包括跟他们商量怎么来把中间的这个交互弄好,就重要的事儿就是怎么把它当成大项目。 - -**[02:35:51] 发言人 2**:大项目的话怎么能够更积极主动的给授权进行反馈,包括问题的反馈,情况的反馈。 - -**[02:35:59] 发言人 2**:好的,另外就是我们接下来下午开,上午我还是要总结一下,我觉得刚才朱哥说的最后那句话,我觉得很有道理。 - -**[02:36:07] 发言人 2**:就是这个AI首先可能在改变云桌面,这是必须的这一定会的。 - -**[02:36:12] 发言人 2**:因为云桌面本来也是一个工作流,就是为置要安全,要可控。 - -**[02:36:17] 发言人 2**:对工作这生产工作里面的工作流里面嵌入的一个东西。 - -**[02:36:21] 发言人 2**:其实AI除了去改变云之外的产品形态以外,我觉得AI也会改变我们自己的整个工作形态。 - -**[02:36:30] 发言人 2**:就可以告诉大家,你们喜欢玩游戏的,你那个显卡,你们最大的你们这些玩游戏的所有人里面,你们最大的显卡是多少? - -**[02:36:43] 发言人 2**:这个我不问了,我只想告诉你,我们属于我们这公司属于小公司,是吧? - -**[02:36:50] 发言人 2**:人家大公司有大公司的玩法,我们做不到。 - -**[02:36:54] 发言人 2**:但是一个H 20是多少? - -**[02:36:57] 发言人 2**:刘静显存多少? - -**[02:36:59] 发言人 2**:960 96是吧? - -**[02:37:01] 发言人 2**:一个H 20的显存是96。 - -**[02:37:05] 发言人 2**:我们就是我们现在自己公司有400G的,有400G的显存,400G的显卡。 - -**[02:37:14] 发言人 2**:我操你让你们自己家里可能有一个8G的是吧? - -**[02:37:20] 发言人 2**:牛逼了是吧? - -**[02:37:21] 发言人 2**:12G16G的牛逼了,我们这有400G,所以我是觉得我一直在跟刘记在说,我们的400G如何。 - -**[02:37:32] 发言人 2**:首先第一个保证的就是如何在我们自己的整个公司的内部流程中,把这个AI,包括本地部署的A,因为有些A你用出去你还得花钱的。 - -**[02:37:44] 发言人 2**:你买你买钉钉的,你买这个腾讯的,买这个谁的,你买这个叫什么? - -**[02:37:52] 发言人 2**:买这个悟空的,你都得花钱,你你你积分是吧? - -**[02:37:59] 发言人 2**:这个都得花钱。 - -**[02:38:00] 发言人 2**:那我们自己可以做到私有部署免费的,你要自己部署一个是吧,我那江你跟我再商量部署那个叫,部署那个小的,叫这个9B的,我操,那到时网上翻翻着墙去布的,但是我们有一个400G的,我跟刘季也在说,我说最好不要1块1块的把400G拆是吧? - -**[02:38:25] 发言人 2**:你拆了之前还是合在一起之,肯定合一起之。 - -**[02:38:29] 发言人 2**:因为你越合在一起,上一个档,上一个等级,你越值钱。 - -**[02:38:33] 发言人 2**:人家能买得起一块,人家有96级,但是人家没有100G因为人家没有100,人家有100G人家没有400级。 - -**[02:38:41] 发言人 2**:你每增加一个数量级,你的值钱概率就比别人高很多很多。 - -**[02:38:45] 发言人 2**:所以你怎么用好,你不是搁那拆开用,你说每人分9G我操那傻逼,每个人能买得起。 - -**[02:38:52] 发言人 2**:一直虽然要把这药都用在一起,所以我就下来,包括我们中康,你们那个团队。 - -**[02:38:59] 发言人 2**:盛钢,我今天说这个我们希望把这个AI你刚才说A赋能,我们希望把这个知识库,把公司的知识库,公司的这种智能化,我们要把它用到极致,在用的过程间我们认为也会产品化,也会产品化一些东西,你把这些把一些。 - -**[02:39:19] 发言人 2**:但是首先我们把内部交流,刚才说了,这个A是娱乐面的生产力。 - -**[02:39:25] 发言人 2**:我觉得A首先是娱乐面,我们整个售前售产品研发,售前售后整体的生产力,从这块上我们相信总部一定能把这事做好。 - -**[02:39:35] 发言人 2**:所以下来我觉得还会说,我们说售前以后,每天三个组,三个组每天不叫晨会,这个晚上叫什么会? - -**[02:39:44] 发言人 2**:每天会每天下班都得开一个会,我给你一个记录工具,你们把那个AI的把知听云上记录下来,记录下来以后,一个作为咱们自己会议的一个记录。 - -**[02:39:55] 发言人 2**:21个给总部,也会来慢慢的延展性的。 - -**[02:39:59] 发言人 2**:就是看到问题解决问题。 - -**[02:40:01] 发言人 2**:因为你每一次提,你可能现在你提了,你刚才就像那个谁说的这个欧光耀说的,主动沟通。 - -**[02:40:09] 发言人 2**:我觉得主动沟通是个很难的事儿,人被动的,因为我说过一次话,我不想再说了。 - -**[02:40:15] 发言人 2**:所以说你你这个你这个魏光耀逼着今天要讲了,他给我马上就是那个猴子阳光下摘虱子一样。 - -**[02:40:22] 发言人 2**:朋友你看这几个的虱子一个一个的给我掰出来看,你看都是问题,你看这都是问题。 - -**[02:40:29] 发言人 2**:掰了一个柿子,其实你不用你现在给我掰,你平时你可以掰,所以我觉得你平时你每天的会不用你再说一遍,你会议说完你你会议说完记录下来就到总部来了。 - -**[02:40:40] 发言人 2**:我总部我肯定会去看的,我把而且我不是一次会,我把几次会议我慢慢就总结出来。 - -**[02:40:45] 发言人 2**:我们这个会议里面有些什么样的问题,或者有可能会出现什么问题,或者你们也可以把会议里面的问题你单独摘出,怎么样发给我们。 - -**[02:40:55] 发言人 2**:我觉得这样我们形成一个叫叫A进的一个共同体。 - -**[02:40:58] 发言人 2**:我们有一个我们在云桌面上,我们售前售后销售有一个统一的大脑。 - -**[02:41:05] 发言人 2**:我觉得这个对每个人在来干事来说,一定会事半功倍的,所以我觉得把这个事把它落实来,也下来作为我们留记,我们埃踢的一个重要要解决的问题。 - -**[02:41:20] 发言人 2**:你不能老说你创新盛钢,你看中方每每一句字字不离A I结果最后妈的没效率,没产生效率,这不行吃。 - -**[02:41:39] 发言人 3**:对对对。 - -**[02:41:40] 发言人 2**:你还有什么说的? - -**[02:41:41] 发言人 2**:没啥了。 - -**[02:41:41] 发言人 3**:下午再开会。 - -**[02:41:42] 发言人 3**:那这样下午开始销售讲。 - -**[02:41:44] 发言人 2**:我希望销售都讲讲。 - -**[02:41:46] 发言人 2**:然后上午如果我们售前还有很多,有中间想起来什么问题的就及时来提。 - -**[02:41:52] 发言人 2**:下午销售都讲讲,然后售前的我觉得还是要听。 - -**[02:41:56] 发言人 2**:因为这中间这个还是很重要。 - -**[02:41:59] 发言人 2**:我们有搞一次这个会的话,还是希望大家多分享。 - -**[02:42:04] 发言人 2**:因为这个信息平时分享的都是片段的,我们结合这个整体做一个分享,我觉得也是个很好的事情,对大家也是好,下来我还是下来,我还要抽的,我最后结束了,我要抽抽,我要抽抽,问问你今天听到一些东西你是怎么想法? - -**[02:42:21] 发言人 2**:我要抽一下这个,我们抽查一下我们这些销售参加的这些兄弟们。 - -**[02:42:27] 发言人 3**:好吧。 - -**[02:42:27] 发言人 2**:下午几点开始? - -**[02:42:28] 发言人 2**:下午两点。 - -**[02:42:29] 发言人 1**:会议链接还是这个链接,大家下午两点前入会就可以了。 - diff --git a/agent_memory/uploads/chat_2b0479c17171/1782267550230_1_transcript_704.md b/agent_memory/uploads/chat_cb1881c79c14/1782288931955_1_transcript_704.md similarity index 100% rename from agent_memory/uploads/chat_2b0479c17171/1782267550230_1_transcript_704.md rename to agent_memory/uploads/chat_cb1881c79c14/1782288931955_1_transcript_704.md diff --git a/agent_memory/uploads/kb_3cc4030350de/1782281782706_1_transcript_711.md b/agent_memory/uploads/kb_3cc4030350de/1782281782706_1_transcript_711.md deleted file mode 100644 index b62c0ac..0000000 --- a/agent_memory/uploads/kb_3cc4030350de/1782281782706_1_transcript_711.md +++ /dev/null @@ -1,2254 +0,0 @@ -# 会议711 - -**会议时间**:00:00:12 - 02:09:29 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8, 发言人 9 - -## 会议记录 - -**[00:00:12] 发言人 0**:来。 - -**[00:00:14] 发言人 1**:吧。 - -**[00:00:39] 发言人 2**:一会儿了解下你的起位啊。 - -**[00:00:55] 发言人 0**:开始吧。 - -**[00:00:56] 发言人 1**:啊销售第。 - -**[00:00:58] 发言人 2**:一个汇报是院子。 - -**[00:01:10] 发言人 2**:定一个会告诉张飞,张飞被杀,张飞在。 - -**[00:01:25] 发言人 3**:喂喂喂,你是不是哪个看? - -**[00:01:28] 发言人 2**:可以了可以了,可以了,张贝贝。 - -**[00:01:33] 发言人 4**:好的,共享一下。 - -**[00:01:38] 发言人 4**:黄总,请总盛管总各位领导以及同事下午好,我是云智销售部的张蓓,负责河南省份。 - -**[00:01:47] 发言人 4**:我主要围绕三个维四个维度然后汇报一下,包括沟通一下我的工作内容以及下半年的规划,包括我这边产生的一些问题,包括难点,还有一些资源需求。 - -**[00:02:01] 发言人 4**:第一部分就是我上半年的一些工作内容,我在时间上采用了大概就是42的1个工作模式,40%的时间和新华三的销售达成一定的沟通,了解项目节点并同步跟进配合。 - -**[00:02:17] 发言人 4**:百分之另外40%的时间持续覆盖集成商、代理商以及友商的代理商,建立合作基础并互动配合。 - -**[00:02:27] 发言人 4**:另外20%时间的话增多一些客户了解项目的需求商机,协调时间,进一步的拜访汇报,了解项目节点这20%其中包括了我们汇智集成部分的一些拓展工作。 - -**[00:02:44] 发言人 4**:这边的话是我上半年的一些项目案例,还有一部分的机会点现在也在跟进,这边就不做介绍沟通了。 - -**[00:02:54] 发言人 4**:然后第二部分是下半年的一个。 - -**[00:02:58] 发言人 5**:工作计划。 - -**[00:02:59] 发言人 4**:汇报的背景主要是覆盖外围,就是地势里边一些空白区域。 - -**[00:03:06] 发言人 4**:第一部分就是挖掘友商的代理商,通过利益关系还有服务来进行一个引导,从备胎到承担的一个计划。 - -**[00:03:18] 发言人 4**:第二渠道拓展覆盖,配合华森的分销地市销售,参加地市渠道会议等,然后了解地市的情况,挖掘有实力的经营商培养为我司金牌携手共进。 - -**[00:03:32] 发言人 4**:然后辐射周边区县市场,积极的对接本地优质经营商,搭建合作网络,快速切入未覆盖的空白业务区域。 - -**[00:03:42] 发言人 4**:核心聚焦这部分的话,就是自身的一定的拓展。 - -**[00:03:46] 发言人 4**:深入了解河南省份以往已完成的订单项目,了解客户的信息,拓展扩容的一个项目机会。 - -**[00:03:55] 发言人 4**:第二部分就是拜访拓展高校医疗企业客户,挖掘项目的商机机会,全力以赴达成下半年的销售业绩目标,同时在项目实战中完成个人的一些话术或者一些专。 - -**[00:04:11] 发言人 1**:业的提升。 - -**[00:04:13] 发言人 4**:第三部分是我在河南近半年上大半年时间,然后有一些问题和难点。 - -**[00:04:20] 发言人 4**:在传统服务商与大厂的渠道商这种相互竞争的压力下,这个价格竞争特别激烈。 - -**[00:04:28] 发言人 4**:客户决策的高度倾向于比价,以及相适应于比方说学校或者医疗他们场景的方案。 - -**[00:04:36] 发言人 4**:我觉得如果我是能拿出来就是符合教育或者医疗或者企业某一个定点的优势项,然后去作为控标引导客户会更有把握。 - -**[00:04:48] 发言人 4**:目前我觉得是基本上中面云基本上都是普通的功能,就是通用的功能。 - -**[00:04:55] 发言人 4**:如果有咱也有授权同志在,到时候如果有一些新的话,到时候我可以可以可以定点的沟通一下,我学习一下。 - -**[00:05:05] 发言人 4**:然后还有纯国产化针对性的方案,包括案例较为较少。 - -**[00:05:10] 发言人 4**:像我这边央国企的这种企业也是有的。 - -**[00:05:13] 发言人 4**:但是我们像微机方案国产化的,还有一些别的方案的案例确实比较少,乃至全国应该也没有几个。 - -**[00:05:23] 发言人 4**:还有一些资源的需求,资料的响应更新。 - -**[00:05:27] 发言人 4**:我希望就是产品部门输出我们的标准化解决方案,以及我们的产品控标招标参数、控标点这个资料的更新方便我们销售应对。 - -**[00:05:38] 发言人 4**:紧急的打比方就是客户想明天去客户那汇报渠道,想明天去客户那汇报。 - -**[00:05:44] 发言人 4**:然后有可能晚上我这边也可以紧急的给他出一版,方便我们销售在对最紧急的中小型项目需求避免错过超过期。 - -**[00:05:55] 发言人 4**:第二个的话就是培训这一部分赋能体系。 - -**[00:05:59] 发言人 4**:我希望公司可以定期开展产品的一些赋能国产化政策的一些情况解读,招投标实战的一些技巧,包括销售技巧以及行业的通用话术等专项培训,系统化提升我们团队的专业素养。 - -**[00:06:18] 发言人 4**:还有就是测试机这个申请的流程,包括我们测试机的数量,这个周期有点太长了,客户就是感官不太好。 - -**[00:06:27] 发言人 4**:有可能我们在申请的流程中或者或或者在等待的流程中过程中,然后也有有其他友商已就已经进来了。 - -**[00:06:37] 发言人 4**:当然这个包括省代其实是有一部分测试机这个资源的。 - -**[00:06:42] 发言人 4**:但是有一个问题就是他们的测试机是之前已经停产的设备,而且性能已经跟不上了。 - -**[00:06:49] 发言人 4**:在他们现在的情况中,是不太愿意就再去搞一些测试机放到他们库里边,然后有有机会再去测的。 - -**[00:06:57] 发言人 4**:当然我也在引导再给我做沟通,比方说后边有一些项目的话,可以让他多多下两台放到库里边,这个有需要一定时间。 - -**[00:07:06] 发言人 4**:还有就是研发资源,我们在做平台优化,就在实施的时候,平台优化包括bug的修复,我们这个流程时间是稍微有些长的,这个对客户的体验感会有一定的很大的影响。 - -**[00:07:22] 发言人 4**:当然我在这里感谢一下陈明,在钢铁那个项目确实帮了我很大忙,有时候傍晚都在沟通。 - -**[00:07:32] 发言人 4**:最后一个的话就是我们nice的我个人的一些想法和建议,我觉得在我推动的过程中,在高调的一些场景里边,包括医院医疗的场景里边,我觉得这个推动起来还力度会稍微大一些。 - -**[00:07:48] 发言人 4**:就像我们郑州科技学院当时拉着漏洞过来,洛洞也积极的去给客户讲了我们耐斯塔的一些专业技术。 - -**[00:07:57] 发言人 4**:然后客户其实也挺感兴趣,但是最终我们跟欧意在pk,最终引导是公参。 - -**[00:08:03] 发言人 4**:我觉得后边的话我可以在覆盖地市的时候,可以在医疗就县级医疗里边多跑动,我们可以推一推我们的产品,大概就是这个样子。 - -**[00:08:14] 发言人 1**:领导,你。 - -**[00:08:15] 发言人 0**:翻到一页我看看,你翻到第一页,这个就是现在我。 - -**[00:08:21] 发言人 1**:们的渠道怎么样? - -**[00:08:23] 发言人 0**:在那里的? - -**[00:08:24] 发言人 0**:在在河南的渠道还是那个什么吗? - -**[00:08:27] 发言人 0**:还是叫什么? - -**[00:08:29] 发言人 0**:你那个渠道商省代。 - -**[00:08:31] 发言人 4**:的话是有两个,一个是光神电子,一个是新正飞,新德飞也在做是吧? - -**[00:08:38] 发言人 4**:对,今年是新中飞也有个项目,就是鞍钢这个项目。 - -**[00:08:44] 发言人 4**:然后最近就是在实施。 - -**[00:08:47] 发言人 0**:你和省代的沟通还有落洞,你们一起跟省内的沟通,有什么困难吗? - -**[00:08:54] 发言人 4**:目前看来没有。 - -**[00:08:56] 发言人 0**:省代有人,他们有人在做,有人跟我们比如说做一些支撑那个配置、服务,有的现在包。 - -**[00:09:03] 发言人 4**:括有一些之前的遗留项。 - -**[00:09:05] 发言人 4**:就是比方说客户一些用户又问到淮南销售了,想让他解决鱼肉面的一些问题。 - -**[00:09:11] 发言人 4**:但是不是省代处的,现在我也拉动省代在做服务。 - -**[00:09:15] 发言人 0**:那这也没办法。 - -**[00:09:17] 发言人 0**:你今年大概能做多少? - -**[00:09:19] 发言人 0**:你感觉。 - -**[00:09:22] 发言人 4**:任务是250万,说实话还是有点压力的。 - -**[00:09:26] 发言人 4**:但是努力完成公司的任务,大概在200万到左右,200万左右不能。 - -**[00:09:37] 发言人 4**:冲资250万。 - -**[00:09:45] 发言人 0**:成绩250万。 - -**[00:09:47] 发言人 0**:第四个渠道怎么样? - -**[00:09:49] 发言人 0**:第四个渠道去去去沟通的话,这个有什么问题没有? - -**[00:09:54] 发言人 0**:比如说现在在要拓展竞牌渠道,地市的渠道。 - -**[00:09:58] 发言人 4**:我现在覆盖了两个地市,第一个是焦作市,然后还有一个三门峡市。 - -**[00:10:05] 发言人 4**:我主要是通过配合华三这个分销销售,还有地市的销售组织会议,通过会议的方式更快速的了解哪个经销商更有实力,或者通过他们介绍。 - -**[00:10:22] 发言人 1**:这样来。 - -**[00:10:23] 发言人 4**:我觉得还是可以的。 - -**[00:10:24] 发言人 0**:有一个金牌渠道的策略,你去能做吗? - -**[00:10:29] 发言人 4**:第十,而且有一家已经在谈了,我跟孟洁也沟通了,下一步的话就是现在沟通协议,包括付款这个流程中。 - -**[00:10:38] 发言人 0**:现在这个内存涨价这个事影响多大? - -**[00:10:45] 发言人 4**:影响是蛮大的。 - -**[00:10:47] 发言人 4**:有些项目停了,然后有些项目切换,我们就是在推胖胖模式,影响是还是蛮大的。 - -**[00:10:54] 发言人 4**:但是你推胖终端对于华三销售他们就没意义了。 - -**[00:10:58] 发言人 4**:第一是没有什么毛利,第二的话,没有服务器就没有他们的业绩输出,这个是一个很严重的一个事情。 - -**[00:11:10] 发言人 0**:那得自己去弄,是吧? - -**[00:11:12] 发言人 0**:你所以说你卖那你那克斯你觉得好卖吗? - -**[00:11:15] 发言人 0**:Ni克斯。 - -**[00:11:16] 发言人 4**:我觉得推的话也是有很大机会的这不对于在客户侧去沟通,我觉得优势还是有的。 - -**[00:11:30] 发言人 4**:毕竟这个现在没卖过,也不敢跟您夸大其词。 - -**[00:11:34] 发言人 4**:后边的话推推看商机怎么样。 - -**[00:11:37] 发言人 0**:看怎么能尽快找个试点。 - -**[00:11:40] 发言人 0**:你翻第二页,下一页。 - -**[00:11:57] 发言人 0**:河南这个地方的话,如果是让他加一个省。 - -**[00:12:01] 发言人 6**:往哪加呢? - -**[00:12:02] 发言人 6**:还没定到。 - -**[00:12:03] 发言人 0**:定定了吗? - -**[00:12:04] 发言人 6**:往安徽2个小时,一个半小时找个小时。 - -**[00:12:07] 发言人 0**:河南加安徽,河南加安徽,你觉得安徽可以跑吗? - -**[00:12:11] 发言人 0**:我还没通知我还没通知是吧? - -**[00:12:14] 发言人 0**:我说一个司。 - -**[00:12:18] 发言人 0**:加大些跑动,再跑一个代表处,多找机会。 - -**[00:12:25] 发言人 0**:王东。 - -**[00:12:26] 发言人 4**:我说你再再跑。 - -**[00:12:28] 发言人 0**:一个代表数,把这个面再覆盖宽一些。 - -**[00:12:36] 发言人 0**:还没跟你们说是吧? - -**[00:12:38] 发言人 4**:还没我还不知道。 - -**[00:12:41] 发言人 0**:就一个主辈,再跑一跑。 - -**[00:12:45] 发言人 4**:跟领导安排。 - -**[00:12:47] 发言人 0**:到跑一跑,我觉得会多一些机会,销售多一些机会。 - -**[00:12:55] 发言人 5**:好。 - -**[00:13:01] 发言人 0**:再往再往。 - -**[00:13:03] 发言人 1**:下一页呢。 - -**[00:13:07] 发言人 0**:你说的那个说的那个解决方案,教育医疗场景优势解决方案。 - -**[00:13:13] 发言人 0**:俊体你们说说来我咱们就提的这个解决方案方案样板。 - -**[00:13:19] 发言人 0**:因为你们给我看了,你们每次开会跟我说那个方向盘,但是你们说的方向板,我觉得是你们就是成一些成功的案例。 - -**[00:13:29] 发言人 0**:但是好像你不能作弊,不能变成样板,那个样板是要可复制的或者说能卖好多个出去。 - -**[00:13:41] 发言人 0**:这个东。 - -**[00:13:42] 发言人 3**:西之前就行业反正一直缠写过,案例也讲过,然后技术特性也讲过。 - -**[00:13:52] 发言人 3**:云中电云中电无非就是该传达的那些技术要点,或者该个项目怎么拿下的一些商务的要点都都传达过。 - -**[00:14:02] 发言人 3**:所以说所以非要加东西,还是要等后面A里面是基于他现有的一种桌面的这这些东西反正都传达过。 - -**[00:14:14] 发言人 3**:目前医疗之前想了一下,无非就是因为医疗,我们发的那个播客前几期都是医疗。 - -**[00:14:22] 发言人 3**:其实这个。 - -**[00:14:23] 发言人 0**:教育你也分了高校,中职,也分12,这个也会分的很细的。 - -**[00:14:29] 发言人 3**:是吧? - -**[00:14:30] 发言人 3**:到时教育教教教育它没有对云装面来说没有区别,反正就是一个教室,教育的云桌面主要是用胖的胖子,他主要是解决一个课程镜像下发。 - -**[00:14:44] 发言人 0**:那我们有机。 - -**[00:14:46] 发言人 3**:那个是这样的,那个是教育软件,电子教育软件我没做,因为那个东西确实不擅长。 - -**[00:14:53] 发言人 3**:华山是把这块集成了做了,我们是采用自己的胖的方案加上紫光计算机。 - -**[00:15:00] 发言人 3**:它们不是一个叫紫域电子教师或者吉域电子教师,这个是市场上都比较多的,都可以在上面跑,是这样的解决的。 - -**[00:15:10] 发言人 3**:而医疗医疗主要是针对各个窗口,我们推的就是胖瘦结合的方案。 - -**[00:15:15] 发言人 3**:比如说普通办公他可以预瘦的,然后有的医生像之前那个华西住院最用我们一接,因为他的对终端要求过复杂,但是他有的医生他就有那种我要自己用一个动态桌面,然后我出去过后,我还有我自己的一些资料,我可以使用方化医院的一些系统,它的普通办公就可以用那个vdi然后一些窗口因为外资比较多,所以用的v所. - -**[00:15:44] 发言人 3**:以说在一个胖素结合的方案,其实有伤还是比较难受的,特别是生音符很难受。 - -**[00:15:51] 发言人 3**:所以说之前说医疗我们是采取这种的方式,这两个行业其实现在主要还是找着需求去去卖。 - -**[00:16:00] 发言人 3**:因为确实两个行业现在运作下来,相对来说问题是比较少的,相对其他行业是少少很多的,基本上交付上我们都没有什么问题。 - -**[00:16:26] 发言人 0**:这个场景化样板点我要能查到的话,我在哪能我在哪个地方能找到? - -**[00:16:37] 发言人 0**:就是我要现在看我教育医疗的教育企业的场景化,我想看看。 - -**[00:16:44] 发言人 3**:我们这有个新华三维护的一个知识库,是可以开给你。 - -**[00:16:50] 发言人 6**:就是我哆嗦一嘴,也不是给咱去举例教育,咱教育和医疗是那跟宗教育一起里边两个特殊行业。 - -**[00:17:00] 发言人 6**:因为你企业肯定定出化很多,政府肯定是国产信号。 - -**[00:17:06] 发言人 6**:现在现阶段那你教育你就说你刚刚说的原话就是没有什么特殊化。 - -**[00:17:13] 发言人 6**:其实我们反而更希要教育和医疗,搞不出我们绘制的特殊化,那就是在后边实训室是怎么样,然后智慧教室就是怎么样。 - -**[00:17:22] 发言人 6**:除了这两个教育云桌面就没有其他地方用了吗? - -**[00:17:26] 发言人 6**:在教育里面,我听广西的王辉给我说的,人家在那个高校里面,人家用的这些东西也是用的新华三的,只是没人给他总结。 - -**[00:17:36] 发言人 6**:我们仍然希望在更强的领域,教育和医疗里面把你的方案搞一些细分。 - -**[00:17:42] 发言人 6**:虽然在你的技术领域有可能是雷同的,但是你看我记得华智咱们搞这个交通,那今天去给我摸一个就是现在高速公路速改,速改里面华智的齐云能放到哪? - -**[00:17:56] 发言人 6**:智慧服务区数字改造其实实际实现的功能也是给于这块攒一堆东西。 - -**[00:18:02] 发言人 6**:但人家就是在全场全国的市场会的时候,他们安排个人一讲,所有销售他就把你们省份关系好的渠道的服务区交通服务关系好的渠道给我拉过来,让他去推推这个智慧服务区的应用。 - -**[00:18:19] 发言人 6**:我的意思是反过来,我们云中面能不能就在这个产品,就是我们市场角度,能不能把教育局再搞的细分呢? - -**[00:18:27] 发言人 6**:因为你不可能让他们跑到学校的信息中心。 - -**[00:18:30] 发言人 6**:我就有云桌面销售,他根据我们那个P P T我就云桌面,但各都有什么都可以卖,那你的特色在哪呢? - -**[00:18:38] 发言人 3**:我没有特色,说是这个就是和上面应用本区别的地方。 - -**[00:18:42] 发言人 3**:云桌面它毕竟还是一个技术环境。 - -**[00:18:45] 发言人 3**:如果我们在后面的AI当中,可以考虑加一些AI应用上去,用AI应用来拉动云桌面的一个切口。 - -**[00:18:52] 发言人 3**:但是你现在上面所有的功能都是个技术环境,它怎么去切切这个东西? - -**[00:18:57] 发言人 3**:你你你不可能在你不可以像瑞杰一样去做电子教室的。 - -**[00:19:03] 发言人 0**:这个不是这个意思,这个就是肯定是要写标,就是同质化强是怎么? - -**[00:19:08] 发言人 0**:就是我觉得里面几个,一个就是同质化强,就是怎么在标书里面写死。 - -**[00:19:13] 发言人 3**:是吧? - -**[00:19:14] 发言人 3**:只要让我们写的,肯定是写的死的,他不是写词的问题。 - -**[00:19:20] 发言人 0**:你能让你说说你说说张飞,冯总你说说具体也在彭总平时,你们聊的也少,你说说。 - -**[00:19:33] 发言人 4**:其实刚才许欧总说的意思就是我我想表达的意思就是比方说在教育场景里边,我们经常碰到欧翼,欧翼他们的有一些功能项,那确实是人家在老师作为运维或者作为教师教学教师,人家在使用过程中,人家需要这个功能更更便捷。 - -**[00:19:51] 发言人 4**:但是咱们没有,就类类似类似的咱们也没有。 - -**[00:19:56] 发言人 0**:军杰认为你标空不住,你只要是标空的之他来写,他一样能写死,主要还是关系没到。 - -**[00:20:04] 发言人 4**:但是如果说功能上的话,老师就去去推咱们的东西,也更有说服力。 - -**[00:20:12] 发言人 4**:你比方说我接触个客户,然后万一做的特别好,人家想推我的产品,然后就说我这个功能我需要。 - -**[00:20:20] 发言人 4**:但如果说说瑞欧义人家做进去,人家就说这个功能我是一定需要的,方便我使用。 - -**[00:20:27] 发言人 0**:教学包括需可能就比我们做的好一些。 - -**[00:20:30] 发言人 3**:那这样就很配了。 - -**[00:20:31] 发言人 3**:那个商城那个电子教的软件编化东稍微做的好一些。 - -**[00:20:35] 发言人 0**:那你说我强在哪儿呢? - -**[00:20:37] 发言人 0**:我从得有一点义务,就是他是有好的。 - -**[00:20:41] 发言人 3**:那我也有我好的,就是我正他空标点都有。 - -**[00:20:44] 发言人 6**:只不过他可能合同标的就是刚刚洪总说的关系,那意思我们认,如果销售我们关系不行,就没有写必较多的机会。 - -**[00:20:53] 发言人 6**:好,同样的关系,咱俩同时卖。 - -**[00:20:55] 发言人 6**:江总姜,你上午我是希华三,江总你总要给我个弹药,告诉江总你为什么? - -**[00:21:00] 发言人 6**:我拿什么说服姜总在咱俩同样关系的时候就这么说。 - -**[00:21:04] 发言人 0**:我觉得这个东西肯定你没错。 - -**[00:21:06] 发言人 0**:比如说在教育行业,我和奥一起打的时候我出什么招? - -**[00:21:10] 发言人 0**:比如说在这个企业我身兴奋打的时候我出什么招? - -**[00:21:14] 发言人 0**:我遇到瑞杰我出什么招? - -**[00:21:16] 发言人 3**:你有这个没有你肯定没有那个。 - -**[00:21:18] 发言人 0**:大家都对比过的,你拿我看分析师有你马上你马点答分析师有你打一个叫hv咱那你就把奥义。 - -**[00:21:27] 发言人 3**:的打上来。 - -**[00:21:28] 发言人 3**:那。 - -**[00:21:29] 发言人 0**:你贴出来看,那是一个很就是抛出。 - -**[00:21:41] 发言人 3**:一明你手上有吗? - -**[00:21:44] 发言人 3**:我就一次找着一边。 - -**[00:21:49] 发言人 1**:有的。 - -**[00:21:50] 发言人 7**:你发给贝贝。 - -**[00:21:52] 发言人 3**:你发给贝贝一下。 - -**[00:21:56] 发言人 4**:我投一下吗? - -**[00:21:58] 发言人 3**:你发给张张妹妹,她投,我怕这边有些人意思不是。 - -**[00:22:04] 发言人 3**:对。 - -**[00:22:06] 发言人 7**:假如我没听。 - -**[00:22:07] 发言人 4**:清发给谁。 - -**[00:22:08] 发言人 3**:张贝贝,放在你头,你投。 - -**[00:22:10] 发言人 3**:他对,就是。 - -**[00:22:12] 发言人 7**:Oh。 - -**[00:22:27] 发言人 7**:这个有更新过一份。 - -**[00:22:30] 发言人 0**:就是跟阿姨的竞争分析。 - -**[00:22:37] 发言人 0**:张伟。 - -**[00:22:37] 发言人 7**:你看过没个? - -**[00:22:39] 发言人 4**:我看过,然后还有申意福的,然后还有应该。 - -**[00:22:44] 发言人 0**:还有瑞杰的,那你说说他在哪儿? - -**[00:22:52] 发言人 0**:因缺少你这样的,我觉得有两个,一个功能性我实现不了那很正常。 - -**[00:22:57] 发言人 0**:因为每个人都有他自己的功能性,别人实现不了的地方,或者也有个也有在一些行业里面的都胖瘦各有所爱,萝卜白菜各有所爱,是吧? - -**[00:23:10] 发言人 0**:就是从你说同质化的东西太那个同质化就争什么太少,那怎么弄呢? - -**[00:23:18] 发言人 0**:你希望公司哪些方面还有改变呢? - -**[00:23:28] 发言人 4**:你比如你看到你看一下咱们的功能相对比是欧翼的优势或者咱们的优势。 - -**[00:23:45] 发言人 0**:对去。 - -**[00:24:02] 发言人 0**:要看哪一个张备。 - -**[00:24:07] 发言人 3**:这些都是。 - -**[00:24:11] 发言人 4**:我黄总,我是这样觉得的。 - -**[00:24:13] 发言人 4**:我就是说去客户那儿,首先我得说服我自己,我靠跟客户去沟通,说我们的云桌面哪个功能能打动他。 - -**[00:24:22] 发言人 4**:如果是拼客勤的话,那这个就不说。 - -**[00:24:25] 发言人 4**:但是如果说在同等情况下,我就跟他pk的话,我首先我得知道咱的优势在哪儿。 - -**[00:24:30] 发言人 0**:就是你你想说的这不是那优势,这不写的有吗? - -**[00:24:34] 发言人 0**:你想说的是就是可能在奥义和我们在做项目的时候,这个奥义的优势好像更大一些是吧? - -**[00:24:41] 发言人 0**:然后奥义拿出来几个东西没有后然后人家就需要他们是吧? - -**[00:24:47] 发言人 0**:我是这样。 - -**[00:24:47] 发言人 4**:我是觉得欧翼他们的功能有些是确确实实是切切近于教学办公需要的这肯定然后咱。 - -**[00:24:55] 发言人 0**:们这有一些好比生意服也肯定是他强的功能。 - -**[00:24:59] 发言人 0**:我觉得这个一个一方面,我是觉得如果说是咱们,比如说教育是核心,教育是咱们的一个重点的话,我觉得去年你们上研发要去跟进,研发跟上,发有可能跟上吗? - -**[00:25:12] 发言人 0**:如果发可能跟上,那你只能在这个比如奥里面,你比针对这种项目了,那我们拿出个具体的策降价,我们认知的什么是吧? - -**[00:25:22] 发言人 3**:那如果根据你的策略,或者就是你能反馈奥夜哪项功能让你特别难受。 - -**[00:25:29] 发言人 0**:去哺育部,我觉得你们要去你们要到各个地方去各个地方。 - -**[00:25:33] 发言人 0**:你们从下一周开始,一鸣你们的我觉得就去去就就去跑起来,出去跑一圈,去先去跑一跑,找几个重点的地方去去聊一聊,跟一些项目就把一些东核心力搞定。 - -**[00:25:45] 发言人 0**:目的是带着我们到底哪些产品的功能性,我们的这个竞争性应该怎么在完善。 - -**[00:25:51] 发言人 0**:然后我们的功能性到底缺了以后要不要补,要把这事情搞清楚。 - -**[00:25:56] 发言人 0**:还没的话,你的发面你得去菜。 - -**[00:25:59] 发言人 1**:市场转转去。 - -**[00:26:02] 发言人 0**:个。 - -**[00:26:04] 发言人 3**:是从教学这类电子教室类的软件,实际上我们去年初步做定的策略是暂时去做公务性的更新,华三也有12 1点没没更新。 - -**[00:26:24] 发言人 3**:我知道你可。 - -**[00:26:25] 发言人 0**:以说同更新的没关系,就不更新,或者这个市场我们卖不卖。 - -**[00:26:28] 发言人 0**:如果这市场我们不卖了,那我们就不更新了。 - -**[00:26:31] 发言人 0**:反正你们有,我们就拼评价格。 - -**[00:26:33] 发言人 0**:如果要卖,那我们也没有不更新的情况下,我们怎么样? - -**[00:26:37] 发言人 0**:我们就是我们比如说这一两年,你举个例子,你张贝你说很麻烦,但是我就张贝我告诉你,我在全国就这种学校,我已经今年我卖了七八个了,去年卖了几十个了。 - -**[00:26:47] 发言人 0**:那我告诉你我为什么,那别人为什么卖力去了,那总总总得总得说一个说总得去匹配一下,形成一些我觉得形成一些叫什么? - -**[00:26:57] 发言人 0**:就互相形成一些这个内部要形成一些拉力,或者形成一些互相的力量。 - -**[00:27:07] 发言人 3**:你最后才能够pk你这个才有结果。 - -**[00:27:10] 发言人 3**:贝贝,如果你对教育这个东西很有感很有想清晰一些时间去做,你可跟一鸣跟我都可以积极沟通一下。 - -**[00:27:18] 发言人 3**:因为对一个行业,目前出了行业一直缠,也把我们理解的优势下该怎么去克户引导,这些方式方法都有讲,这个是针对奥义单独的一个竞争分析,这相关的材料其实都有。 - -**[00:27:32] 发言人 3**:如果你觉得哪项功能不够,或者你在拓展项目当中碰到一些什么困难,你可以提需求。 - -**[00:27:39] 发言人 3**:然后我们来评估这个东西到底是不是普适的,到底要不要做。 - -**[00:27:44] 发言人 3**:我们来收集你们的需求才能做产品的那个呃。 - -**[00:27:49] 发言人 4**:好的,俊叶总,黄总,到时候我再研究,然后找出一些真对象。 - -**[00:27:54] 发言人 4**:我跟俊野总沟通。 - -**[00:27:58] 发言人 0**:你再退回到你的胶片答辩。 - -**[00:28:05] 发言人 0**:就是我就想说结合这个我就想说,因为我们现在对我们的产品经理,说实话这个也会采出这个高标准,也要求。 - -**[00:28:14] 发言人 0**:因为现在今年这个本身竞争激烈是吧,你就是这个激烈是必然的。 - -**[00:28:19] 发言人 0**:你这个能不能有好的产品,或者能不能有好的卖的方法,我计早也说了,我说就是那个农夫,farmer就是一天去菜市场,一天去农场,一天去菜市场。 - -**[00:28:30] 发言人 0**:我首先我觉得我们我们的产那个那个咱们产品经营团队,你们几个人要跑动起来,要多到各个地方跑,多去跑,尤其在这跑跑到项目里去,跑到客户里去。 - -**[00:28:42] 发言人 0**:应该这么说,说的更具体点,不是说你空跑,是吧? - -**[00:28:45] 发言人 0**:你空跑我今天那跑了我这个飞机坐了多少公里,我火车开了多少,像像原来那个谁一样,叫王宇峰,是吧? - -**[00:28:57] 发言人 0**:你不能空跑,你这个对你你不能这么跑,我觉得这就是要不你跑到客户里,要跑到项目里就摸清楚。 - -**[00:29:05] 发言人 0**:就是我这些叫就一起,应该叫起正应该叫起教医政应该倒来了是吧? - -**[00:29:11] 发言人 0**:政府现在少一些企业,最多把企教一政里面一层一层的拨开,一层一层的给大家拿东西? - -**[00:29:19] 发言人 0**:第二个我觉得我们的销售,你遇到问题不能泛化。 - -**[00:29:23] 发言人 0**:因为这个东西其实这个市场我们都做了销售那么多年了,你要说别人的优点,你这市场就没法打了,是吧? - -**[00:29:32] 发言人 0**:我就这么说,如果如果我都是优点,人见人爱,花见花开,我就不需要你装备了。 - -**[00:29:38] 发言人 0**:我开个4S店. - -**[00:29:39] 发言人 6**:卖苹果对不对? - -**[00:29:40] 发言人 6**:我不需要你装备了。 - -**[00:29:41] 发言人 0**:因为长得好看,我长得那么乖,我需要你推销,我从哪去亮亮个相就行了,我亮个相,你家下面还说再转一圈是吧? - -**[00:29:50] 发言人 0**:我不需要你了。 - -**[00:29:51] 发言人 0**:所以说我为什么需要你? - -**[00:29:52] 发言人 0**:就是因为这个竞争激烈,就各有各的特色。 - -**[00:29:56] 发言人 0**:我觉大厂有大厂的特色,小厂有小厂的特色,奥义有奥义的特点。 - -**[00:30:01] 发言人 0**:新华三还有新华三的品牌优势,新华三有新华三的特点。 - -**[00:30:05] 发言人 0**:所以说我还是觉得你们要一定要去把这个事情具体到每个项目里去,具泛化的。 - -**[00:30:12] 发言人 0**:咱们可以这么说,但最终是要落实到项目的,我就要具体到每个项目里去是吧? - -**[00:30:19] 发言人 0**:你包国产化针对的方案上,我觉得也是就是针对你销售来说,我觉得很重要一点。 - -**[00:30:26] 发言人 0**:你先抛开总结,你单个销售你不能老是总结化,你你你老话我说可以,你不能说你就说我们现在碰到一个项目那好了,那你没有国产化案例是什么项目? - -**[00:30:38] 发言人 0**:别人有你给我落到点上去,张备好,你得落到点上去,因为你都总结了,那你要你要我干嘛? - -**[00:30:46] 发言人 0**:你要豆包干嘛? - -**[00:30:47] 发言人 0**:那豆包干的事,你干的事就是你要这个事儿,你给他说清楚。 - -**[00:30:51] 发言人 0**:这个1234,我们一听活那个鲜活的是吧? - -**[00:30:55] 发言人 0**:具体的案例。 - -**[00:30:56] 发言人 0**:然后针对鲜活具体的案例,我们大家来得出这个结论,然后再针对这个结论进行改进。 - -**[00:31:03] 发言人 6**:他那句话国产化的也是今天感的。 - -**[00:31:07] 发言人 6**:昨天晚上他那个项目跟俊杰也沟通了,然后89.9点钟点最后达成共识,就是他那个平高电器要用,就中午说要用国产化的GPU和国产的的cpu完了之后用云动面的方式,关键是用户那反过来要用这个云桌面做渲染重载的一个设计工作。 - -**[00:31:28] 发言人 6**:所以说国产我们做不了,不是我们做的是行业,而不国显卡国产显卡中行。 - -**[00:31:34] 发言人 6**:同时什么中国还说的,你渲染设计软件,它天生就跟英伟达已经裹在一起了。 - -**[00:31:42] 发言人 6**:你中过我尊重你的事儿,那就是你就即使国产化性能哪一天达到了,那这个国产芯片它跟渲染那一软件,它俩的适配度又是一个天大的开发量的一个事。 - -**[00:31:54] 发言人 6**:所以它最后指的是个呢那个我们只有一个用微金U去做视频解码的一个功能,没有其他案例。 - -**[00:32:02] 发言人 0**:这里面其实你说的很对,这个里面英伟达的那个壁垒还不止扩大。 - -**[00:32:08] 发言人 0**:英伟达花了大量的帮一些游戏帮间渲染来进行适配。 - -**[00:32:13] 发言人 0**:对它这种适配原来看是来领,但是现在看。 - -**[00:32:17] 发言人 3**:长期下它的优势就是它的那个英伟达,这是它的远件英伟达在通用级P就是消费级C P U在游戏场景和多媒体场景,它还有它的很大的壁垒。 - -**[00:32:29] 发言人 3**:国产显卡其实国产显卡的进度是远落后于,比如说国产的cpu,内存,是远落后于这两天这些芯片。 - -**[00:32:39] 发言人 2**:厂商每年要花很大的价格,很大的代价给这些工作室厂。 - -**[00:32:44] 发言人 6**:有点像,还有麒麟,不是鸿蒙,现在干。 - -**[00:32:51] 发言人 0**:这个事儿,塞前,我给你投两个人,我帮你完成适配吗? - -**[00:33:00] 发言人 0**:我昨天我有拿我个电脑用了两天,我升级优化了,太优化了,他就这么说,我操。 - -**[00:33:11] 发言人 6**:对,是这样。 - -**[00:33:12] 发言人 6**:因华为那个鸿蒙现在让我们弄两个人适配,不也是同样的一个逻辑,鸿蒙那个那个生态。 - -**[00:33:18] 发言人 6**:对对对,就是这个确实他举这个案子说去吧们聊了,那最后那其实我还问了张志国,他们可能确实。 - -**[00:33:26] 发言人 0**:所以说这个我觉得倒过来,就是这个英伟达里面的那么大的公司,几万亿美金的公司还在不停的更新,敏锐的更新,我觉得我们我们更才说的是么资料培训,我觉得我们更是应该要频繁的去做这些事。 - -**[00:33:41] 发言人 6**:如果教育是我们重要行业,我们就不可能不开发。 - -**[00:33:46] 发言人 0**:不是,你教育如果说你教育你拿策略的话,你现在尤其是那个I不行的情况下,你也得起起政教一起,你这几个起正义教你把这几个东西我觉得还是要改一下。 - -**[00:34:03] 发言人 6**:二过者企业企教一政。 - -**[00:34:05] 发言人 0**:一该教育放在第二个。 - -**[00:34:07] 发言人 6**:而且企业本身觉得投质化就少,它也有很多。 - -**[00:34:10] 发言人 6**:避免不了的一些小定知识。 - -**[00:34:12] 发言人 6**:有的你教育如。 - -**[00:34:13] 发言人 0**:果是说表明我们加强下来了,跟研发你那研发一起开个会,就针对vdi这个情况,面对现在的情况,面对我们市场的情况,包括今年上半年下来,我们企业第一教育第二,医疗第三政府第四企教医政整个整个逻辑。 - -**[00:34:30] 发言人 0**:有些东西我们怎么能跟进呢? - -**[00:34:32] 发言人 0**:怎么能拿出一些我们的一些亮点呢? - -**[00:34:35] 发言人 0**:或者我们收敛以后主动的推广一两个亮点的,策略性的去攻打这个市场,我觉得还是要去弄。 - -**[00:34:44] 发言人 6**:他们说的应该是送钱和餐品的事情,就是通过。 - -**[00:34:50] 发言人 3**:没有教是我们分析数据,你在同步的研发教教育教育那套软件是独一。 - -**[00:34:56] 发言人 3**:你看我们卖的莱德史斯莱史为什么叫莱史维斯? - -**[00:35:02] 发言人 3**:就是他在传统的的上面上面的一个电子软件。 - -**[00:35:08] 发言人 3**:张贝所反映的所有的东西都是奥的电子软件的便利性和功性。 - -**[00:35:16] 发言人 3**:对,但是这一块说实话每个厂家有不同的策略,比如说政府他压根就不做,他跟我们现在我们的ui采用的策略是一致的。 - -**[00:35:29] 发言人 3**:电子教授软件5603方的,我们不做这个东西,因为这个东西太专业了,然后业界基本上像我们这样做的就是奥运合作网站那。 - -**[00:35:40] 发言人 6**:类次就是教育又是我们第大第二大,我们教育又是我们这么半年统计的第二大额度的行业,我是不是要继续跑教育。 - -**[00:35:50] 发言人 6**:遇到下面的竞争对手。 - -**[00:35:52] 发言人 0**:这个下边可以要你要平难一点,我际你就是以后学校,你周一每周会里面单独一个长景化专场。 - -**[00:36:00] 发言人 0**:他分他讲这周讲教育,下面讲企业,下面就不是,这叫循环,单独一个场景化增长。 - -**[00:36:06] 发言人 0**:好好吧,就放在里面去讲,我。 - -**[00:36:15] 发言人 2**:环就深入证身份榜。 - -**[00:36:29] 发言人 3**:比如说但是电子教室最好的就是几具了,都用几句了,好吧。 - -**[00:36:33] 发言人 3**:知道,所以就是你要选一个,但是这个就是你要去那吸盘,让他也去愿意在你的平台得做一些特色、差异或者是份没。 - -**[00:36:44] 发言人 6**:你说是产品反说你什么意思,跟别人绑的。 - -**[00:36:48] 发言人 3**:不是说不光是绑的问题,其实我们这一样,对新华他自己的这个也一样。 - -**[00:36:54] 发言人 3**:因为你桌面的开发工作牵头关系特别多,你的资源倾向给谁。 - -**[00:36:59] 发言人 0**:倾向到哪块,都要整体的看,就是每周每周的例会里念,或者是教育上,或者是展览循环好吧,你们自己做一个规,每周他们人要上专场,专场给他们时间让专场来来发问好吧,专场来解答。 - -**[00:37:16] 发言人 0**:记下会议纪要,还要记下这个,也上音频记会议纪要。 - -**[00:37:21] 发言人 0**:然后资资这两个事情。 - -**[00:37:25] 发言人 0**:资料响应更新和培训赋能体系,俊姐你说说。 - -**[00:37:31] 发言人 3**:资料倒是输出的很频繁的。 - -**[00:37:34] 发言人 3**:我现在最怕一个什么呢? - -**[00:37:36] 发言人 3**:因为以万贷的公司都是这样一个情况,就咱们的销售在前面叫没资料,但是实际上后端的资料更新了一大堆,一看也不看。 - -**[00:37:46] 发言人 0**:对,那怎么弄呢? - -**[00:37:48] 发言人 0**:这个事怎么办呢? - -**[00:37:49] 发言人 3**:那我们更新的资料一一也在群里吼了,二微盘里面也放了微盘。 - -**[00:37:55] 发言人 0**:还给大家建了。 - -**[00:37:56] 发言人 0**:我就说一个,你看我觉得这都有办法。 - -**[00:38:01] 发言人 0**:你看我们那个数字人是数字人那个日志里面有几个你看完了那个你点了,你把它弄了,你发过来是停留了多少秒? - -**[00:38:11] 发言人 0**:如果他都没看,他还敢说你更不更新。 - -**[00:38:14] 发言人 6**:不但是他这里面还有一层意思,你看人家政策解读我们没人做过。 - -**[00:38:20] 发言人 0**:我一个一个来先把这个事第一个测料是你,既然是你说了,你就更新了,他们说你更新慢了。 - -**[00:38:28] 发言人 0**:好,你这样反正我有A这个东西,我总结一个很快,你就弄出去,谁看了这样这很容易一放谁看了? - -**[00:38:36] 发言人 0**:看了几秒浏览一下,最后作弊都得把它放到旁边,先放那个那个那个那那个十分钟。 - -**[00:38:43] 发言人 0**:完了以后你如果觉得有必要,那我们开会我们抽查。 - -**[00:38:48] 发言人 0**:我我我觉得这是来自两面性的,我觉得这个有这个要求特别好,就是资料更新响应更新慢说明什么呢? - -**[00:38:58] 发言人 0**:说明我们前方的动作快快过我们产品经理的动作。 - -**[00:39:02] 发言人 0**:但如果说我们产品经的动作快过前方动作,那就不麻烦。 - -**[00:39:06] 发言人 0**:那那你就那那那那你就咱们咱们就咱们就这个什么意见了,拉扯一下。 - -**[00:39:13] 发言人 3**:去年年底的时候,一比他做过这个资料更新,因为主要公司在一民那儿,他他输出比较多一点,他可能一个人占了一半的资料输出以上,总共去年大的资料都更新了,差不多接将近100份。 - -**[00:39:28] 发言人 3**:然后零零零碎碎的资料也好几十份,可这个量已经非常大了。 - -**[00:39:33] 发言人 3**:说实话就这些能力资料更新确实是跟上了的。 - -**[00:39:37] 发言人 0**:希望产品的输出标准化解决方案,我操这边要差异化,这边差异化少了,就是标准化觉得都有高化,觉得这个事是这样,我觉得其实更重要的是,我也觉得咱们产品库肯定资料分析的也很快。 - -**[00:39:55] 发言人 0**:但是就像刚才移民发的这个东西,我觉得可能99%的销售并不会把它读完,也不会去认真的就通到事来了。 - -**[00:40:06] 发言人 0**:真正的有用的是,这个事已经来了,别人电话已经打过来了。 - -**[00:40:11] 发言人 0**:我拿着AI对着你这份资。 - -**[00:40:13] 发言人 6**:料下资料跟说我今天。 - -**[00:40:15] 发言人 0**:下午要去和那个谁投标了,你给我赶快总结个12345。 - -**[00:40:19] 发言人 0**:这个我觉得可能才是销售想要就使用场品。 - -**[00:40:23] 发言人 0**:对,就是最快速度的获取。 - -**[00:40:25] 发言人 0**:我们这个里头把它拿取支识,我觉得就是海底知识库这个事,把它怎么来,就是拿能达到他妈的我们一销售出去说下午我就见谁,你把我们的资料整合一下,然后给我说个1231个1页纸,马上给你扔个一页纸出来。 - -**[00:40:43] 发言人 0**:你觉得不满意,再把公对你说不满意,你说那销售说你说的这几点,因为我再给你讲这个客户的背景,这五条不行,他们基本上都没问题,你再在乎别五条。 - -**[00:40:57] 发言人 2**:之前不是那个东西装好,你把这接着是就完了。 - -**[00:41:02] 发言人 2**:对我觉得你们先不用。 - -**[00:41:04] 发言人 0**:搭那么复杂,因为现在有算力,先咱们手动挡的跑起来试试,好了以后我们再说怎么来妈的怎么来把它组装成自动挡。 - -**[00:41:17] 发言人 3**:但是还是平时要看你,你不能去了马上输出。 - -**[00:41:22] 发言人 3**:平时一是输出的东西,输出东西不是那么清楚的。 - -**[00:41:26] 发言人 3**:二就是即使输出来了,你平时一点点看你根本就讲不清楚,还是讲不。 - -**[00:41:32] 发言人 6**:清楚平时看和讲的问题。 - -**[00:41:34] 发言人 6**:其实你经在会上随时举出要哪个人讲一遍什么东西来这些东西我们来抽查的方式。 - -**[00:41:42] 发言人 6**:这个也一样的,不用你姜总说的话,我很早之前就说过,你发资料,他就即使他下载下来了,你没有项目需求,他不会看的。 - -**[00:41:53] 发言人 6**:他不是这样吗? - -**[00:41:54] 发言人 6**:他宁可去喝个茶聊不题,他总会在那坐着跟他还没有项目空间的项目上去看这资料。 - -**[00:42:00] 发言人 6**:但是江总如我要说,你如果把知识库建起来,快速问答,让一二三组去应对经营项目,建着那个客户的竞争对手商议,那他就有兴趣了。 - -**[00:42:14] 发言人 6**:顺便不行,像aop那样,你把原档链接再给他们链。 - -**[00:42:18] 发言人 0**:接后所这个培训的培训赋能,又说培训能。 - -**[00:42:31] 发言人 3**:但是作为常态化。 - -**[00:42:33] 发言人 0**:讲常态化一个第一是常态化,每周政标一起是吧? - -**[00:42:37] 发言人 0**:常态化这是一个。 - -**[00:42:39] 发言人 0**:第二就是这个呃招投标实战技巧及专业化术不作。 - -**[00:42:44] 发言人 0**:我上次给你提了一个要求。 - -**[00:42:47] 发言人 6**:我们把那个专区数据批了四个四是一个是话术,一个是阿法,一个是页,一个是每个人个性化的ppt我们ppt和一页新哥盛刚和陈一明以及王梦杰都改完了,都已经发进去了。 - -**[00:43:01] 发言人 6**:然后话术也做了一张图,然后三份文件已经共享到里边。 - -**[00:43:06] 发言人 6**:还有最后一。 - -**[00:43:07] 发言人 0**:个就是共享给大家,有没有。 - -**[00:43:09] 发言人 6**:在我们的群里面都我直接共享到群里了。 - -**[00:43:13] 发言人 0**:你下来好,我看看有没有让大家叫什么说着你下来发给我好吧,你们几个发过。 - -**[00:43:20] 发言人 6**:我再看一下,我们四个人过了,我俊杰也看了。 - -**[00:43:25] 发言人 3**:资料群。 - -**[00:43:25] 发言人 3**:对,觉得是那三聊面,我让时改了一下。 - -**[00:43:29] 发言人 6**:口照改。 - -**[00:43:30] 发言人 0**:最后改完了,我营业执话术是吧? - -**[00:43:33] 发言人 0**:还有宣讲ppt个性。 - -**[00:43:35] 发言人 6**:化的去宣讲ppt就是每个人要有自己的一。 - -**[00:43:41] 发言人 3**:因为这个文档确。 - -**[00:43:43] 发言人 0**:实咱们整理的一个文档。 - -**[00:43:44] 发言人 3**:我觉销售他你们的文档。 - -**[00:43:46] 发言人 0**:你在我文档不是看到到。 - -**[00:43:50] 发言人 0**:就是这样的,张妹美我觉得你你你说这个肯定是有比较,你要不要都是AI给你写的? - -**[00:43:57] 发言人 0**:如果不是给A给你写的,你自己写的肯定有比较。 - -**[00:44:01] 发言人 0**:你要有比较的话,那你比较是跟谁比较,你觉得少了点多了点呢? - -**[00:44:06] 发言人 0**:这是一个是吧? - -**[00:44:07] 发言人 0**:第二个就是我觉得还是要针对具体的某一个事,你想了解的某个事儿,我就说具体一点,你这个太泛了以后,很难的去去我们去去做一些这个动作。 - -**[00:44:21] 发言人 0**:王总真的你要说。 - -**[00:44:23] 发言人 4**:具体的东西。 - -**[00:44:24] 发言人 0**:你说我有些东西我就是不太懂,但是我也找不到学习的办法? - -**[00:44:29] 发言人 0**:我能不能提出要求? - -**[00:44:32] 发言人 0**:我你比要培训,我现在可以马上安排我们所有人给你做个点到点的培训。 - -**[00:44:38] 发言人 0**:你有时间没有,给你做点到点的一个一个给你培训。 - -**[00:44:45] 发言人 4**:其实我们这个是有的,一鸣我们之前开会的时候,一鸣经常给我们做一定的培训。 - -**[00:44:51] 发言人 4**:我是想着比方说产品的一些功能培训一次有可能自学或者怎么样,后边容易遗忘。 - -**[00:44:59] 发言人 4**:然后包括国产化,比方说现在有什么政策,我们也第一时间也能了解一些。 - -**[00:45:06] 发言人 0**:不,这是两个东西。 - -**[00:45:07] 发言人 0**:如果产品功能其实给你培训完了,然后给你个资料,你能索取能得到就完了。 - -**[00:45:13] 发言人 0**:如果国产化政策的有可能实有实时有实事的东西是吧? - -**[00:45:17] 发言人 0**:它有时候实时性比较强,突然冒出个什么东西来,我觉得我觉得这个哈刘记俊姐,你们可能也注意,这个就跟生命防火一样。 - -**[00:45:28] 发言人 0**:你看紫薇总他们说,今年有这里有钱,教育有个什么东西,医疗有个什么东西。 - -**[00:45:33] 发言人 0**:我觉得包括跟我们销售一起沟通,能拿到这个信息是吧? - -**[00:45:38] 发言人 0**:或者说是大家觉得这下一步应该走什么? - -**[00:45:42] 发言人 0**:我觉得这块儿上,我们包括企业分那么多,哪个企业叫能源的那么多,哪个能源是现在的重点。 - -**[00:45:48] 发言人 0**:我觉得你们得有些那个得。 - -**[00:45:50] 发言人 6**:有些正确性,应该是从总部角度看全行业些什么时间来了,什么一个新的商机,拿医院的两个超长期贷款,低息贷款这种出来了。 - -**[00:46:01] 发言人 0**:那就可以解决我你这就是这就是所以说这就是我业提的要求,一天农场一天菜市场,就只能天天看才能知道。 - -**[00:46:11] 发言人 0**:而且你们可以做一个AI给你扒互网,你说AI让云桌面这个AI云桌面的所有信息,你每周给我汇一次,总哪些人中标了,有些什么信息,有些什么新闻,我觉得可以扒我下来。 - -**[00:46:25] 发言人 0**:我操,我把这事也交交到我交到我那个什A信要跟他说一下,叫他8。 - -**[00:46:45] 发言人 0**:只要你记下来招投标实战技巧及行业沟通话术,我觉得还是你说有没有提高,还是那杨坤荣为什么那么远就能弄到,让杨坤荣讲一讲。 - -**[00:46:56] 发言人 0**:还有参加招投标的,你就说你们整个谁在参加招投标比较多的,咱们整合整培养培训一下再讲一讲。 - -**[00:47:09] 发言人 0**:还我我觉得最核心的还是要高频是吧? - -**[00:47:14] 发言人 0**:如果想把这是杠好,就是所有的动作都要稍微快一点,这种高频那自然它就会反复反复就会好是吧? - -**[00:47:25] 发言人 0**:如果太少肯定不行,还是强化每周的那个每周的你们的会。 - -**[00:47:30] 发言人 0**:而且每周的会我觉得有必要的话,你们其实可以拉长一点,放在这个更长一点。 - -**[00:47:37] 发言人 6**:这2个小时到两个半。 - -**[00:47:39] 发言人 0**:拉长。 - -**[00:47:40] 发言人 1**:一点。 - -**[00:47:50] 发言人 0**:好吧,我只能说那么多,因为每周也在开会,你们最好是说具体的。 - -**[00:47:55] 发言人 0**:因为你你写的这个东西,我怎么说呢? - -**[00:47:58] 发言人 0**:我觉得就基本上就你这一页纸,你抛掉云桌面,你抛掉云桌面三个字,你拿到新华三的会上,我跟你说一模一样,对不对? - -**[00:48:07] 发言人 0**:你本身这里面也没有云桌面三个字,你到新华三的服务器上你就这么说,你看看那新华三肯定也是这样的,你拿到是音服,你拿到华为,你拿到华为可能也是这样。 - -**[00:48:20] 发言人 0**:张妹,你这一页纸是普世的,你知道吧,你连一那仨字都没有。 - -**[00:48:29] 发言人 0**:这叫什么样。 - -**[00:48:32] 发言人 1**:的证确。 - -**[00:48:35] 发言人 0**:正确而又空洞。 - -**[00:48:40] 发言人 0**:张,你听懂没有? - -**[00:48:41] 发言人 0**:听懂了,听懂,我觉得以后一定刚才就跟那个谁一样,你以后一定要落到点上去,你要落到点上去,你问那就那个事,那那这个项目那个项目你说说以项目为案例。 - -**[00:48:54] 发言人 4**:好吧? - -**[00:48:55] 发言人 4**:好的。 - -**[00:48:55] 发言人 0**:要不你这个就是伪光正,你这些胶片真的伪光正,每次都可以把这些胶片放上去,而且可以放在任何一个公司。 - -**[00:49:06] 发言人 0**:你刚好你的上面舆乐面杀没有存在,我剪下来没有云动面杀。 - -**[00:49:09] 发言人 0**:你看放在华三的生意,华三代表处里面,我那一签够不够也可以。 - -**[00:49:19] 发言人 0**:是不是,你说是超融和你说是华三超融和会上的一页胶片,一点都不违和。 - -**[00:49:32] 发言人 0**:是不是张贝妹,是不是张贝? - -**[00:49:35] 发言人 0**:是彭总,那你这写的你还挺可爱。 - -**[00:49:38] 发言人 0**:我说我认真看了看,确实舆论面没有舆论面的仨字。 - -**[00:49:44] 发言人 0**:不是豆包给你写的。 - -**[00:49:46] 发言人 4**:这都是我自己写的。 - -**[00:49:48] 发言人 4**:你看这个国产化,昨天刚跟徐勇总汇报过,然后你还没说到,这都是我实际情况。 - -**[00:49:57] 发言人 0**:以后在在交流的时候要具体案例,咱们说具体案例好吧? - -**[00:50:02] 发言人 0**:好,但肯定有这毛病。 - -**[00:50:04] 发言人 0**:你一说其实我说实话真的你一说我心里都紧张。 - -**[00:50:07] 发言人 0**:我就想起中医,你你你比方说你这个打喷嚏了,中医说你头疼不? - -**[00:50:12] 发言人 0**:腰疼不? - -**[00:50:13] 发言人 0**:颈椎疼不? - -**[00:50:14] 发言人 0**:我就是颈椎点疼,我坐多了,那头疼不? - -**[00:50:17] 发言人 0**:你看我一说你仨病,你看都有你跟你说的一样,我操你放在哪儿? - -**[00:50:23] 发言人 0**:普氏都有这病,对吧? - -**[00:50:24] 发言人 0**:所以所有公司的所有产品都有同质竞争激烈。 - -**[00:50:28] 发言人 0**:除了马斯克,space x我操那一般的产品都有,除了苹果,一般产品都有次要响应,都有培训,能好吧? - -**[00:50:37] 发言人 0**:好好。 - -**[00:50:38] 发言人 4**:好。 - -**[00:50:39] 发言人 0**:下一个。 - -**[00:50:44] 发言人 0**:像一个。 - -**[00:50:45] 发言人 2**:院内。 - -**[00:50:48] 发言人 0**:那中医就是中医一般猜你有没有什么毛病,一生我困我睡不醒,中医随便给你说三你你怎么说那么准,就跟他一样,你培训不到位,你同志话精神太多,你这个什么一样。 - -**[00:51:02] 发言人 0**:这来。 - -**[00:51:04] 发言人 1**:彭总、陈总。 - -**[00:51:06] 发言人 7**:各位领导和同事,大家下午我是山东院磊,我这也刚才也了好的种,要从面个我在的工作问题的个梳理存在问题。 - -**[00:51:30] 发言人 7**:另一段我想去求的一些职位,再加上我下半年的一些工作的重点。 - -**[00:51:37] 发言人 7**:首先汇报一下。 - -**[00:51:38] 发言人 0**:一定要说具体的,因为刚才还说了这事了,一定要说具体的案例。 - -**[00:51:44] 发言人 0**:你这。 - -**[00:51:46] 发言人 7**:明白,因为我看了,我这听了这么长时间,我这P T一直在删,一直在删,好多还没删完。 - -**[00:51:54] 发言人 7**:因为刚才好多同事都讲过了一些东西。 - -**[00:51:59] 发言人 7**:我这一个还是第一个就是我的对于渠道和商机的拓展的精度还是不够强,针对性不强,也找不到核心的渠道。 - -**[00:52:13] 发言人 7**:你比方说你像深圳服务,他们会有自己在当地的一些核心的渠道来共同去推他们的东西。 - -**[00:52:21] 发言人 7**:不然后华三或者说我们在跟华三体系一块合作,就是我也一直找不到这么一个核心的渠道。 - -**[00:52:30] 发言人 7**:也可能是之前有可能就是第二个问题了,之前遗留的那个口碑问题。 - -**[00:52:37] 发言人 7**:因为新华三的售后想要在现场解决问题或者什么的,反正山东代表说是非常难的。 - -**[00:52:46] 发言人 7**:再。 - -**[00:52:50] 发言人 0**:喂你往上翻,我想想,我上一页上,上一页,下一个就。 - -**[00:52:56] 发言人 7**:是我上一页。 - -**[00:52:57] 发言人 0**:我看看上一页是你,你说我上上一页我没看清楚,我再看看。 - -**[00:53:11] 发言人 0**:这个分享你没有会都能分享,这个项目影响怎么去解决? - -**[00:53:18] 发言人 0**:这个针对性不强这个事儿,我们现在就是在要拓展就是要解决这个问题。 - -**[00:53:26] 发言人 0**:其实我们找这个包括你过来,我们也希望利用你原来的经验,大家共同来找到这个。 - -**[00:53:35] 发言人 0**:就怎么怎么能找到我们的渠道,找到合渠道,能让他挣到钱,然后咱们一起把我们的能力也赋予给他。 - -**[00:53:45] 发言人 0**:怎么能找到可以渠道。 - -**[00:53:50] 发言人 0**:我觉得其实说到底还是这个叫什么,还是一个东西。 - -**[00:53:54] 发言人 0**:你的东西好卖或者相对好卖,这是第一个。 - -**[00:53:58] 发言人 0**:但是好卖不见得就是你那个是就是什么呢? - -**[00:54:02] 发言人 0**:是这个叫叫什么呢? - -**[00:54:03] 发言人 0**:你性价比可以,或者说你那个中间价差也有一个相对好卖。 - -**[00:54:08] 发言人 0**:二一个就是跟你沟通的诚信是吧,你这个跟你沟通就是比较顺畅。 - -**[00:54:14] 发言人 0**:那原来的海康的大华互相的渠道挑的也挺多的,其实也有这个问题,就是大家走着走着,他妈的两个单子坐下来,不信任了,不信任了,海康去大华了,大华就海坑了是吧? - -**[00:54:28] 发言人 0**:包括华为当时去的时候,也有一帮海康的,企业板正都去了华为了,做了个好望,结果做了最后又不信任了,又回来了。 - -**[00:54:37] 发言人 0**:我觉得这个渠道其实就是这个叫慢慢的能能杨坤荣做的那个事儿,我觉得还是很有价值的,是吧? - -**[00:54:46] 发言人 0**:人家都没去,你在空中,我都跟跟人家跟人家新疆天远地远的,是吧? - -**[00:54:53] 发言人 0**:你也把生意做成了,而且做成了那边是真有信趣,有了这类似项目来找他是吧? - -**[00:54:59] 发言人 0**:我觉得这种的话,其实就是我们和渠道之间的一种,就是我们帮着渠道想解决了两个问题,共同的在这个事上,就渠道觉得你的就不只是你的产品能力强,关键是你的销售,你的整个服务能力强是吧? - -**[00:55:19] 发言人 0**:你现在很多产品,他可能说这个产品这个产品一般,但是服务能力超强是吧? - -**[00:55:25] 发言人 0**:但是产品的硬件,那跟我说的硬件硬堆出来的,你说性能,也挺好啊。 - -**[00:55:30] 发言人 0**:那天刘迪跟我说,硬件堆出来能力强,但是服务能力不行,堆的能力强,但是服务能力不行。 - -**[00:55:37] 发言人 0**:所以我觉得其实这个服务能力,就整体的售前服务能力,还是需要我们去一点一点的去去形成自己。 - -**[00:55:44] 发言人 0**:你包括你院里,你在山东,你得形成品牌价值,那形成自己的一定的品牌价值。 - -**[00:55:50] 发言人 7**:这样的领导我觉得反而输钱这方面问题并没有什么问题。 - -**[00:55:56] 发言人 7**:主要是我们的售后解决问题的能力,当然不是说我们因为我我以前这个本来了也就刚一个月多一点,然后也有三年没有没没有进这个行业了,但一直做成。 - -**[00:56:13] 发言人 7**:虽然说你像我这个周一周二是在青岛有两个非常强的,其实做项目做面项目的渠道,但是说之前就是被销售新上新在哪? - -**[00:56:26] 发言人 7**:第一你跟新华三合作,你是不可能你作为新华三的渠道,而且体系内部渠道你不可能挣着便。 - -**[00:56:33] 发言人 7**:第二点就是服务的问题,以后你自己想办法解决,现在就是有一些就解决不了,最近就是比较典型的案例就是,环翠法院和这个市光法院,原来一直没解决,没解决,现在,就是人家换了一套自己的环安系统,换了一套系统,把什么操作系统也换了,然后问题自然而然能解决了。 - -**[00:56:56] 发言人 7**:现在说可验收了,验收了让我帮忙准备了资料。 - -**[00:57:00] 发言人 7**:那这个项目四年了,就是说他们的金牌还没有验收。 - -**[00:57:04] 发言人 7**:也就说。 - -**[00:57:05] 发言人 0**:你说的这个是不是说要像我说的那个事。 - -**[00:57:11] 发言人 7**:不是他说的那个临沂城市职业学院那一个。 - -**[00:57:15] 发言人 7**:他问题尤为明显的是什么呢? - -**[00:57:17] 发言人 7**:就是咱们华山,咱们已经把客户给强奸了,就是说你问题不解决,你也得用我的。 - -**[00:57:25] 发言人 7**:他后边还有酒店要匙六百多个店,他还只能用三的在下边,其实我我我就不按照照面讲了,在下边我分享了一个还有青岛海洋电子,原来是云哥的省脉,他们库存了有现在原来是普通五百多点,现在还有三百多点。 - -**[00:57:44] 发言人 7**:他们就做了一个婺源半导体的一个项目。 - -**[00:57:47] 发言人 7**:因为光耀也是刚刚下单,又出了100个终端。 - -**[00:57:51] 发言人 7**:那他的软件没有走,咱技术知识服务也没有买。 - -**[00:57:54] 发言人 7**:现在项目实施就有点一地鸡毛的感觉。 - -**[00:57:58] 发言人 7**:那客户逮着华山的销售就一顿骂骂完了以后,华山销售就把我当一个封面情垃圾桶在倾蟹给我。 - -**[00:58:07] 发言人 7**:当然我也不会生气,那个生请没有用,解决不了问题。 - -**[00:58:11] 发言人 7**:我跟海洋电子沟通的结果就是我说你买上1年到3年的技术支持服务,我说我看看我们能不能给你解决。 - -**[00:58:20] 发言人 7**:那海洋电子也接受这个方案,但具体的就是还有的情况就是海洋电子能接受,其他人能不能接受这个方案,让他们花个2万、3万、5万,我们来给你解决问题。 - -**[00:58:34] 发言人 7**:有一些这种事其实是比较难解决的。 - -**[00:58:38] 发言人 0**:你具体的事升级,我们单独聊。 - -**[00:58:41] 发言人 0**:你如果觉得这个有问题,你叫去就叫我们单独聊。 - -**[00:58:46] 发言人 7**:行,然后再就是好多同事说了,这个公司级这个知识库或者中家实践库等等。 - -**[00:58:52] 发言人 7**:我看了这个企业微信上的这个微盘,我也经常在用,就是说走起来的话还是比较的费劲,找起来还是比较的费劲。 - -**[00:59:02] 发言人 0**:这个可能跟不太解决好吧。 - -**[00:59:04] 发言人 0**:你说的这个问题,我们把大模型我们模型引进来,我们把就把解决。 - -**[00:59:10] 发言人 7**:对对对,另外一个还是要适当的投入。 - -**[00:59:13] 发言人 7**:你像那个我前一段时间其实个早会的时候说过,小刚总也做了回复。 - -**[00:59:19] 发言人 7**:就是说现在你像这个,其实我们主要的竞争对手并不是奥义,天荣信这些品牌,我们在大面上的竞争对手其实还是瑞杰和申运福。 - -**[00:59:31] 发言人 7**:他们写一个就是内核,七麟内核一向就把我们给屏蔽掉。 - -**[00:59:36] 发言人 7**:因为怎么说呢? - -**[00:59:37] 发言人 7**:确实是也是咱这个俊杰总他们也说,我们的克勤国安详不强,客联关系不强是多方面造成的。 - -**[00:59:47] 发言人 7**:第一个就是新华三已经把这事儿扔下两三年了,特别是新华三的销售,山东这边尤为突出,就是你医疗行业整个整治医疗连一个商机也没有。 - -**[01:00:01] 发言人 7**:但是说你只要分天糊和瑞杰,把这四个字一写进去,我们就不用投标了,当然了,你要在中职高职遇到这个奥义,如果说是大家做的这个客情关系差不多也就不用竞争了。 - -**[01:00:17] 发言人 7**:其实我们跟他的竞争不是技术参数的竞争和应用的竞争,是商务成本的竞争。 - -**[01:00:24] 发言人 7**:刚才我说这个物元半导体我也汇报过了。 - -**[01:00:30] 发言人 7**:其实这个包括昨天在潍坊沟通那个那个终端定制终端的事儿的时候,然后华山的销售说了一个问题,就是了我们潍坊新校这个事儿,那个啥盛老总应该有印象,就是那个华山的销售还投诉过我,所以说不给他解决问题。 - -**[01:00:50] 发言人 7**:那确实航外的技术就是解决不了,但是我们要做的这个山东华云,他们的技术给他解决了这个有可能就是人家确实有一些新的东西。 - -**[01:01:01] 发言人 7**:为什么我这两天积极的推进跟华云的合作呢? - -**[01:01:05] 发言人 7**:就是说我们是不是可以让他的技术也给我们来对接,对接的他们是到底是怎么解决的,而且是他们能力也非常强。 - -**[01:01:15] 发言人 7**:破解了一套云桌面,破解了一套超融盒,拿着免费的东西挣钱。 - -**[01:01:23] 发言人 7**:然后向我汇报一下我那个整整体的这个区域的一个情况。 - -**[01:01:28] 发言人 8**:我想问一下,你说的他们破解了一套云桌。 - -**[01:01:31] 发言人 7**:面是个什么概念? - -**[01:01:32] 发言人 7**:他们就是现在有自己的云桌面软件,我问他们是怎么弄,他们说破解了。 - -**[01:01:38] 发言人 1**:不知道是破解了谁家了。 - -**[01:01:42] 发言人 7**:华。 - -**[01:01:58] 发言人 8**:智。 - -**[01:02:13] 发言人 5**:技术开发能力很强。 - -**[01:02:15] 发言人 0**:全站开发都有什么叫破套还是软件。 - -**[01:02:19] 发言人 7**:他们很厉害。 - -**[01:02:20] 发言人 7**:我就包括我们以前卖给他的华智的东西,他们也是自己能修。 - -**[01:02:26] 发言人 6**:我就开不知道爬去。 - -**[01:02:27] 发言人 6**:原代。 - -**[01:02:28] 发言人 0**:他可以说服务器和那个解耦。 - -**[01:02:31] 发言人 6**:他结耦一些东西,他现在就是卖终端技术。 - -**[01:02:36] 发言人 7**:对他这次我。 - -**[01:02:41] 发言人 0**:们的求和是。 - -**[01:02:47] 发言人 6**:的软件。 - -**[01:02:50] 发言人 0**:商户外科通什么什么,他这种破解我觉得只有可。 - -**[01:02:55] 发言人 2**:能就是拿别人的那个整个拿别人的。 - -**[01:03:10] 发言人 2**:他他破解。 - -**[01:03:11] 发言人 0**:自己用自卖能卖他们这个源。 - -**[01:03:16] 发言人 3**:半导体就是他他做的项目是吧? - -**[01:03:22] 发言人 7**:他卖半。 - -**[01:03:23] 发言人 3**:导体就是这个华做的。 - -**[01:03:28] 发言人 7**:项。 - -**[01:03:29] 发言人 3**:目吗? - -**[01:03:30] 发言人 3**:对,那那那我们那我们。 - -**[01:03:34] 发言人 7**:卖终端要给他解。 - -**[01:03:38] 发言人 0**:决什么问题,他就软件一目来研究了,再分析。 - -**[01:03:50] 发言人 7**:行,因为他终端也会打他自己的logo,开机也是要求咱们直接开机,就是山东黄云也不。 - -**[01:03:59] 发言人 8**:能是咱们那个。 - -**[01:04:00] 发言人 8**:他这个项目跟其实跟我们就没关系了。 - -**[01:04:04] 发言人 3**:我们只是纯卖终端硬件,但但是但是要得你在群里问我,人家要我们的原厂型号,我很担心他跳舞,我们直接去找供商去。 - -**[01:04:19] 发言人 0**:他也不买你的是吧? - -**[01:04:20] 发言人 6**:对,担心不买我们这。 - -**[01:04:22] 发言人 0**:个他我因。 - -**[01:04:23] 发言人 3**:为他说他要去派森,派森他问我们现在有商供应商型号是什么? - -**[01:04:27] 发言人 3**:我很担心,他就搜一些信息。 - -**[01:04:29] 发言人 0**:没有派找到。 - -**[01:04:30] 发言人 0**:关键是他软件,他怎么他就自己用软件的,他用的是我们的软件。 - -**[01:04:35] 发言人 8**:是不是我们的软件,他就是从别的哪儿破解了一套软件,然后他就能够代码级的进行修改了。 - -**[01:04:45] 发言人 6**:然后就可以去卖别的。 - -**[01:04:47] 发言人 6**:你去看一。 - -**[01:04:49] 发言人 3**:对的,你你你能找到什么软件,像他这样干的,他的代码过去就。 - -**[01:04:57] 发言人 0**:不是那个软件拿过来,你光把软件读完,你不道图多少钱况。 - -**[01:05:05] 发言人 0**:来给你涂是吧。 - -**[01:05:07] 发言人 3**:你自己涂起来你多难。 - -**[01:05:09] 发言人 3**:他不会解释他这里运整云桌面是一个大体系,它不是说哪一小块是吧? - -**[01:05:18] 发言人 3**:对的,那刚刚院磊说把什么开始因store. - -**[01:05:23] 发言人 0**:全破解了,这。 - -**[01:05:25] 发言人 7**:他不所说,就是超融合的一套系统,不一定是破解了咱华三的。 - -**[01:05:30] 发言人 7**:他不会,他不告诉我们破解。 - -**[01:05:33] 发言人 0**:超融合他他他找谁要了一套超融合系统,自己在外面买了一套超融合系统。 - -**[01:05:39] 发言人 7**:以前肯定是买过,但这个具体的我觉得我和光耀,下次你要了解光耀。 - -**[01:05:45] 发言人 0**:你光耀这样针对这个事,你跟光耀到时候再看一看。 - -**[01:05:49] 发言人 3**:单独给我们个东西好吧? - -**[01:05:52] 发言人 3**:如果能到现场能能拍点照片。 - -**[01:05:54] 发言人 0**:最好我们要学习一下,好吧? - -**[01:05:58] 发言人 7**:明白,然后我这边现在进行了一个梳理。 - -**[01:06:05] 发言人 7**:这商机确实有的时候这个新华三报上来的也不少,但是说现在靠谱的也就是有九个左右,那个服装机暂时还没有靠谱的,也是主要在第四的企业和医疗渠道在做一定的宣传。 - -**[01:06:23] 发言人 7**:区域的规划就是山东这边我最近想了几个事,在跟省去提提要求。 - -**[01:06:30] 发言人 7**:第不能只做这个测试和测试的支持,因为现在这个省代的测试机已经就是我在的时候,因为三年了,我我我不负责这个事,在横迈三年了。 - -**[01:06:43] 发言人 7**:然后是我那时候的5台测试机,现在是因为内存涨价的时候,他们把配件都卖了。 - -**[01:06:50] 发言人 7**:然后现在我们有几个项目在测试,就是全是华算的销售在刷脸,找各个爱奇艺的金牌去接,然后天津市场会好一点。 - -**[01:07:00] 发言人 7**:因为天津市场有个他就是以省内身份去的,而且是他也接不了其他行业的货单。 - -**[01:07:07] 发言人 7**:所以说旅行州那边就主要就是长融和和云端面的一个过单和配合。 - -**[01:07:13] 发言人 7**:所以说电钉市场应该是省内的配合会比较紧密。 - -**[01:07:19] 发言人 7**:包括这个显卡我本来想让博麦帮我买一条,结果李行说他已经买了一个了L 20。 - -**[01:07:26] 发言人 1**:工作的重心还。 - -**[01:07:28] 发言人 7**:是根据孟洁发了一块,历史中标驱动渠道,再去跑一跑,看看谁还有激情。 - -**[01:07:36] 发言人 7**:然后再就是历史的重标客户,区域区县主要就是青岛、烟台和天津。 - -**[01:07:43] 发言人 7**:因为经济发展,它的地区它有钱人家有思路。 - -**[01:07:48] 发言人 7**:然后下半年重点的行业其实就是企业和教育。 - -**[01:07:52] 发言人 7**:在企业其实经营的好的企业就是在这个研发和设计上还是刚需。 - -**[01:07:59] 发言人 7**:他们不会考虑成本的问题,首先不会考虑要做这个低成本的工作,站2万块钱以内我要搞定他们,还是对于这个安全的要求还是比较高。 - -**[01:08:13] 发言人 7**:上个月我跟光耀一块去交流一个项目,现在面临马上测试。 - -**[01:08:18] 发言人 7**:还有一个就是网上销售,找的都是这个生产制造型的企业,然后高校这边主要还是我这边锚定的,其实是这个私立的大专,就是信息化做的不到位的大专,而且是有钱的,他们会签很多的校企合作的项目。 - -**[01:08:38] 发言人 7**:那郭像上午介绍的这个山东省案,他其实买那一套,第一期买了600个点的,是他们学校自主的,剩下的这些基本上都给了校企合作项目,因为校企合作项目他能去找企业要钱。 - -**[01:08:56] 发言人 1**:我汇报。 - -**[01:08:58] 发言人 7**:完毕,领导。 - -**[01:09:02] 发言人 0**:来了多久了? - -**[01:09:04] 发言人 0**:老三研究玩一个月。 - -**[01:09:13] 发言人 0**:这个涨内存条涨价跟对咱们这个。 - -**[01:09:17] 发言人 7**:影响大吗? - -**[01:09:18] 发言人 7**:非常大。 - -**[01:09:19] 发言人 7**:我在一直跟进的那个68个点,就是上了项目,基本上也要改成工作站。 - -**[01:09:28] 发言人 0**:那这个如为我们如果持续的这样下去,我们应该有什么对策呢? - -**[01:09:34] 发言人 7**:其实没有很好的对手领导,而且是特别刚才咱一直在讲这个v di v包括X那个vdi其实v说白了不是真正意义上的云桌面,你想上云桌面,其实大部分客户还是冲着vdi这个场景去上的,只能是让客户去接受这个价格,那实在是预算包不住了,他们也会想别的办法。 - -**[01:10:01] 发言人 7**:你比方说这个啥这边他刚才跟我昨天交流的思路是,他们会买这个普通的工作站,最普通的那种叫叫英特尔这个I 7的这种dpu的工作站,会加一套向日葵的管理系统。 - -**[01:10:20] 发言人 7**:它就没有他这一套系统,也能做到这个软件等等的批量下发修改等等的。 - -**[01:10:27] 发言人 0**:他就没有必要再去搞搞云桌面。 - -**[01:10:30] 发言人 0**:那你这是v吗. - -**[01:10:32] 发言人 7**:你这是吗? - -**[01:10:33] 发言人 7**:你刚。 - -**[01:10:37] 发言人 0**:才有话般理解。 - -**[01:10:51] 发言人 6**:很。 - -**[01:10:54] 发言人 3**:理解,我作那个加个像果口不是不热。 - -**[01:11:05] 发言人 0**:你不是这样。 - -**[01:11:06] 发言人 0**:我觉得最像的,如果真的要涨机的话,我觉得最像的有两种,一种就是这个还是买D I但是当那个就像之前说的,这个当当先当在用终端上装呗,那电脑上装呗,还是买个V D I或者是有没有服务器更便宜的,或者就或者可能没电的。 - -**[01:11:24] 发言人 0**:这个他是蓝牙,有没有微电,他就必须要买服务器。 - -**[01:11:57] 发言人 7**:我们大家不知道理解不了解不了解上海贝瑞这个公司,他们就是做这一些管理软件的,他就管理pc这些。 - -**[01:12:11] 发言人 7**:向日葵在那。 - -**[01:12:12] 发言人 7**:对对对,一年的费用就3000块钱。 - -**[01:12:18] 发言人 0**:那它这种方式就是一个很低的一个软件方式。 - -**[01:12:22] 发言人 6**:软件有一个小盾插到这个电脑上远程连接的。 - -**[01:12:26] 发言人 3**:这个方式。 - -**[01:12:27] 发言人 3**:但是小但但那是插的东西不用插东西,像目可直接。 - -**[01:12:31] 发言人 6**:我们不就是在拿公安这个项目,可插了个盾上,就被公安。 - -**[01:12:36] 发言人 3**:部就那个后那个那个我说他他后来做了小硬件的东西,他不会上小硬件。 - -**[01:12:42] 发言人 6**:也他也有存染,存转的。 - -**[01:12:44] 发言人 0**:你要在这个服务器上,就有没有现在在服务器测的这个过渡方案比就是让他还是还是要觉得威是的,未来要走的路。 - -**[01:12:55] 发言人 0**:但是现在他先因为服务器不够,姐。 - -**[01:12:59] 发言人 3**:平在小型的代替不了你现在不够。 - -**[01:13:05] 发言人 6**:对工作站之类的东西代理服务器不行。 - -**[01:13:08] 发言人 3**:现在不够,那个工作站不就是低配的工作站。 - -**[01:13:13] 发言人 2**:有,可是你坐船一台工作站,你服务一桌面了。 - -**[01:13:17] 发言人 2**:对。 - -**[01:13:22] 发言人 2**:他不就做那么复杂? - -**[01:13:24] 发言人 0**:我觉得华南为什么不做V我? - -**[01:13:26] 发言人 0**:华南就是觉得也不挣钱,也不是做的,而且太竞争也一般,而且竞竞争竞争。 - -**[01:13:32] 发言人 2**:太多了也没什就大厂,你看那个也。 - -**[01:13:36] 发言人 0**:去做飞天是吧? - -**[01:13:37] 发言人 0**:我觉得做。 - -**[01:13:38] 发言人 2**:的核心是肯定都。 - -**[01:13:41] 发言人 3**:像什么锐捷,但是服器这把就把每个人的这个单点成本d拉的特别高。 - -**[01:13:49] 发言人 0**:就现在服务器涨就让vd就很难。 - -**[01:13:52] 发言人 3**:对,能不能把。 - -**[01:13:54] 发言人 0**:服务器再改造一下呢? - -**[01:13:56] 发言人 0**:有没个都能用什么方式能够pc机方式能够在高端pc装这个东西呢? - -**[01:14:04] 发言人 8**:这肯定做不到的。 - -**[01:14:06] 发言人 8**:你这个本地的小终端的没有这个处理能力,必须是所有处理的能力都在服务器上,你服务器的小型化了以后根本就处理不了的。 - -**[01:14:18] 发言人 0**:他们者低端服务器,有是有没有什么办法有没有什么办法解决? - -**[01:14:23] 发言人 0**:这没那你这个现在推起。 - -**[01:14:26] 发言人 1**:来就是挺难的。 - -**[01:14:32] 发言人 7**:还有一个就是关于X云装,咱们不是能虚这个十台的工作站吗? - -**[01:14:38] 发言人 7**:那个还是这个的那里我跟光耀还有咱这个产品的同事,但是这个身上比较重的,最后我们配起来那个工作站价格比服务器还要高。 - -**[01:14:56] 发言人 0**:所以说但有的。 - -**[01:14:58] 发言人 3**:时候这个方案在普适性上那确实是很难的。 - -**[01:15:06] 发言人 0**:作云。 - -**[01:15:07] 发言人 7**:云的。 - -**[01:15:08] 发言人 6**:服面有个码。 - -**[01:15:10] 发言人 3**:卡显卡。 - -**[01:15:12] 发言人 2**:人家买的工作站。 - -**[01:15:16] 发言人 0**:是因为。 - -**[01:15:17] 发言人 3**:买了一个很端的显卡。 - -**[01:15:22] 发言人 2**:他其实他。 - -**[01:15:25] 发言人 3**:做的是种。 - -**[01:15:27] 发言人 0**:管理。 - -**[01:15:28] 发言人 3**:工作上是这他他支。 - -**[01:15:33] 发言人 0**:持。 - -**[01:15:34] 发言人 3**:这要做消费U作站上做做那个是计的比排做五那边的人。 - -**[01:15:49] 发言人 0**:其实不止一个文店行。 - -**[01:15:52] 发言人 2**:而有很多种方式。 - -**[01:15:54] 发言人 2**:对。 - -**[01:15:55] 发言人 3**:那他为什么不用远程桌面呢? - -**[01:15:59] 发言人 3**:那就这不说了吗? - -**[01:16:01] 发言人 3**:他说刚刚那个项目别的就不用。 - -**[01:16:05] 发言人 0**:这个了,就用远程桌面去了,一件3000块钱,那卖333。 - -**[01:16:12] 发言人 0**:我觉可能你们这个法有问题。 - -**[01:16:17] 发言人 3**:孙服的pc发的那个方案,我们云也做了,但是我感觉很难。 - -**[01:16:23] 发言人 6**:的间变成两台pc的。 - -**[01:16:30] 发言人 0**:价格,他也会掂量我。 - -**[01:16:40] 发言人 6**:钱要这那就。 - -**[01:16:45] 发言人 0**:不。 - -**[01:16:45] 发言人 6**:卖,那就独是可以连到公司。 - -**[01:16:51] 发言人 0**:就是那种比方像什么企业这种,它确实像随机服,包括像长江存储他就觉得我这些东西。 - -**[01:17:00] 发言人 3**:都不能够,他他那个太机密了,说他必须要,他那个是纯钢,还有就是像么那车企,那个马那种马马车企阿赛马就是聚合的。 - -**[01:17:11] 发言人 0**:去忽悠那些客户的信息都不能留。 - -**[01:17:15] 发言人 0**:对,尤一次你必须要那种还是一个是存钢圈。 - -**[01:17:20] 发言人 7**:一个是有钱。 - -**[01:17:21] 发言人 3**:他都有这个刚需了,他一般都有钱这种,但是有像汇智这种。 - -**[01:17:26] 发言人 0**:你的一般正常情况下,你是每月我已经有了个电脑。 - -**[01:17:30] 发言人 0**:对,有了个电脑这种情况不。 - -**[01:17:32] 发言人 3**:你就是没电脑。 - -**[01:17:34] 发言人 3**:你现在我们这批人招进来十个人,那你那评估他们的电脑使用方案的时,你也是这样,一个11000个4000. - -**[01:17:43] 发言人 0**:怎么办? - -**[01:17:44] 发言人 0**:我再问一下院理你。 - -**[01:17:45] 发言人 0**:对我们个下一代云桌面或者AI这一块,我们现在也在花大力气在做跟AI结合的A静态,跟就是AI下的计算,AI下的数据管理,跟这个方面在结合。 - -**[01:18:00] 发言人 0**:你有什么建议没有? - -**[01:18:03] 发言人 7**:我这一步没啥好的建议,你比方现在你像紫光云不是也在做AI的这个平台吗? - -**[01:18:12] 发言人 7**:我看了一下咱德总发给我的咱们AI驱动的新一代系统集成服务商,这个咱们也有。 - -**[01:18:21] 发言人 7**:我想主要就是做一个什么呢? - -**[01:18:24] 发言人 7**:先集成一些小的那种应用,就是客户能用得到的内容应用先试试。 - -**[01:18:32] 发言人 7**:因为你说这个AI跟云桌面结合。 - -**[01:18:36] 发言人 7**:其实用云桌面,特别是在设计和研发场景,你结合和不结合对他们来说用不大。 - -**[01:18:51] 发言人 0**:你什么意思? - -**[01:18:53] 发言人 0**:就是云桌面就是云桌面A就是A I. - -**[01:18:57] 发言人 7**:也不是就是说找一些简单的功能去集成上去,那成本不高的那做做这首先其实是做一个什么就是一个亮点,引导客户的一个亮点,咱就是一个目标价。 - -**[01:19:11] 发言人 0**:所以我觉得马家来临时代,在如何管理个人电脑方面,你要还是要管他不能全松,但是怎么管是吧? - -**[01:19:20] 发言人 0**:你用那个胖那也可以管了以后能管住龙虾,能管住什么东西。 - -**[01:19:26] 发言人 3**:就能让隔壁都用起来。 - -**[01:19:29] 发言人 3**:简单点说就是通过vi的改造,能实现近似vi的数据落地的。 - -**[01:19:35] 发言人 0**:一同时把这个龙虾把未来这个龙虾的管理,就是管理出的算力,管理出的管理的数据。 - -**[01:19:42] 发言人 3**:所以说那个批次代表的行为监控是有必要整合的,因为没数据不落地。 - -**[01:19:49] 发言人 3**:那现在其实你如果最差的还有普通C那我也有办法管你的数据流程,能尽量做的。 - -**[01:19:59] 发言人 2**:数据不落定。 - -**[01:20:01] 发言人 3**:数据不外泄。 - -**[01:20:03] 发言人 0**:好好,那下来说继续看还有什么。 - -**[01:20:08] 发言人 7**:我说没有了,对吧? - -**[01:20:10] 发言人 0**:那你反正就是过程中,过程中有些什么想法,尤其是一在一线听到一些什么样的声音,什么想法。 - -**[01:20:19] 发言人 7**:及时跟我们沟通。 - -**[01:20:21] 发言人 7**:明白。 - -**[01:20:23] 发言人 0**:这都没没这都没法回答,反正得得做,得做。 - -**[01:20:29] 发言人 0**:好,继续。 - -**[01:20:33] 发言人 0**:了主石刚,你看你有什么要说的,是刚。 - -**[01:20:40] 发言人 8**:我下午听了贝贝和院磊的,所以我没听到。 - -**[01:20:48] 发言人 8**:我想想听的,我想听到他们这对他们这个市场总体的感觉,或者是对比如说是河南省和山东省,整体从去年到今年,整个云桌面的这个格局性的,或者是大家对云桌面的这个市场的真正认知有没有发生改变。 - -**[01:21:16] 发言人 8**:这个我我我想听的时没没听没听到,后面再接下来继续交流。 - -**[01:21:24] 发言人 8**:然后第二个要讲的是,我刚才是在思考,就是说是对于教育和医疗这两个行业是我们比较大的市场。 - -**[01:21:38] 发言人 8**:但是目前而且教育和医疗的应用的云桌面的应用也是比较应该说是比较统一的,比较标准化的一个应用。 - -**[01:21:49] 发言人 8**:所以每对于医院来说该怎么用,对于学校来说这个云桌面怎么用,都是一个比较单一标准的一个应用。 - -**[01:22:00] 发言人 8**:所有的是所有的客户,对这个宇宙面的认知也基本上是相同的。 - -**[01:22:07] 发言人 8**:在这个基础上,我觉得我们在这两个行业上面可能最近还得要研讨一下。 - -**[01:22:15] 发言人 8**:就是看看教育云桌面和医疗云桌面到底可以搭载什么A应用上去。 - -**[01:22:22] 发言人 8**:可能我们有这么多的教育的客户和医疗的客户,有那么多的现成的案例在里面。 - -**[01:22:30] 发言人 8**:而且后面都是有扩容需求的这么一个前提。 - -**[01:22:35] 发言人 8**:下面搭载应用上面,我们可能能够迅速的增强我们这这两这两个行业云桌面的这个竞争力。 - -**[01:22:45] 发言人 8**:我觉得下来可能得尽快思考,什么样的应用,这个是值得教育上面去叠加的和医疗上面去叠加的。 - -**[01:22:56] 发言人 8**:其他没啥了。 - -**[01:22:57] 发言人 1**:彭总,学校我这没啥。 - -**[01:23:00] 发言人 6**:每周给他录实时分再走过去。 - -**[01:23:06] 发言人 6**:传达。 - -**[01:23:07] 发言人 1**:交给公。 - -**[01:23:09] 发言人 0**:司俊杰。 - -**[01:23:12] 发言人 3**:我认真思考一下,孙老总刚刚说有的东西,其实就是接下来公司再规划原来的东西。 - -**[01:23:20] 发言人 3**:我还是强调我们希望听到需求,今天听下来我还是有一点感触的。 - -**[01:23:27] 发言人 3**:我们可能不会去构建一个庞大的一个体系,但是我们一定要在云桌面上去构建一个场景化简单的,然后一定特色亮点的东西。 - -**[01:23:40] 发言人 3**:而且好卖不贵,一不熟,然后把这个东西引导客户去用。 - -**[01:23:47] 发言人 3**:其实我有点感触了,其实这两天包括公司的内部需求,包括我们之前做的自体运营字体语音,包括我们平常办公的一些文案类的、语音类的。 - -**[01:24:02] 发言人 3**:最终它可能要转换成文字类的,然后存在我们的库里。 - -**[01:24:08] 发言人 3**:可能这个东西对医疗,对教育,因为教育有老师讲课,医疗有医生的问诊,可能是一个通用的需求。 - -**[01:24:17] 发言人 3**:接下来我们看把这道路线打通,其实就是沉淀行业当中,各自行业工作当中的一个记录。 - -**[01:24:28] 发言人 3**:从记录当中去发掘各自行业企业,有医院教育办公的企业内的资数字资产沉淀。 - -**[01:24:39] 发言人 3**:我们往这个方向去思考一下,争取在今年下半年我们快速的去推出一个边云这边的1.0版本。 - -**[01:24:50] 发言人 3**:另外就是刚刚讨论到的那个vdi目前因为服务器的价格单点位已经相对于去年8月份过后涨价前应该是2到2.5倍的这样一个单点位成本的上涨。 - -**[01:25:06] 发言人 3**:实际造成了我们v di v di这目前除了刚才我们讨论的这种纯刚需行业,在一些中间态的一些本来能争取到vdi的一些行业可能出现了问题。 - -**[01:25:19] 发言人 3**:所以接下来我们下来产品这边讨论一下,怎么升级一下V O I,至少能实现数据外泄的一些管控,来部分达到客户对数据安全的一个要求。 - -**[01:25:33] 发言人 3**:这样引导他们至少不是不会从vdi的方案去投奔到pc方案去,至少还能落一点到我们的v方案上来。 - -**[01:25:44] 发言人 3**:好,这是我们要争取的。 - -**[01:25:46] 发言人 3**:我大致就说了两点,一就是我们往方向想一想,二就是往安全管控的vi方面再想一想。 - -**[01:25:56] 发言人 0**:好吧,交易不没见。 - -**[01:26:01] 发言人 0**:现在听。 - -**[01:26:02] 发言人 2**:完了以后,我觉是这样的,其实我们在这个产品和销售这一块儿,现在说现在反馈的这些问题,现在其实也是我们最近公司内部在激烈的讨论。 - -**[01:26:20] 发言人 2**:这里面我觉得分两个部分。 - -**[01:26:23] 发言人 2**:第一个部分就是我们整个以后云桌面这个产品往哪里走。 - -**[01:26:28] 发言人 2**:Next只是我们现在往前走的一小步。 - -**[01:26:31] 发言人 2**:其实这一小步当时我们选那个Y这个方向,也是基于我们第一个没有积累。 - -**[01:26:40] 发言人 2**:第二个就是飞O I相对于vdi它的开发工作量和难度要小很多。 - -**[01:26:46] 发言人 2**:然后呢我们当时选最终选择了这个走内Y威di这块,其实公司就自己要不要重新重做一个全新的V D I其实内一直有讨论这块,以前有一些技术障碍。 - -**[01:27:02] 发言人 2**:其实大家可以想到各个大的云厂商都在这个视频上面做了无数次的验证,也不是只有我们在做,就是包括采用全那种云的民间方案。 - -**[01:27:15] 发言人 2**:但是确实随着悲哀的全面来临,其实很多以前在技术上被否认掉的一些路线,现在有可能都带新的一些可能性。 - -**[01:27:30] 发言人 2**:所以说V包括v di这块,我们也会在这几个月会快速的决策,要不要重新去投入。 - -**[01:27:39] 发言人 2**:但是硅洲Y这块就是我们的微胖这块,其实我希望我们销售端还有我们的这个授权端,能够和我们产品这块紧密的配合。 - -**[01:27:52] 发言人 2**:我们既然是公司自己自研的产品,那么我们都用心的去推。 - -**[01:27:57] 发言人 2**:我们产品这边的话用心的来支撑。 - -**[01:28:00] 发言人 2**:希望在这一块的话能够弥补今年整体市场变化,给公司整体销售业绩带来的一个压力,这是我想说的第一个部分。 - -**[01:28:12] 发言人 2**:第二个部分就是彭总最近一直在密集的和我们一起调研,就是如何把A的能力赋能给我们的授权和我们的销售。 - -**[01:28:25] 发言人 2**:我们前面做的第一个有点零散。 - -**[01:28:29] 发言人 2**:我们这个会议完了以后,从下周开始,就1块1块儿的来和我们的售前和我们的销售,我们产品这边人,到时候安排专人,我们的it专人来跟大家做对接。 - -**[01:28:45] 发言人 2**:然后一个小块有一小块的解决大家的问题。 - -**[01:28:50] 发言人 2**:希望能够每一个小块能够帮助大家,把这个赋能的事情能够落实到具体的一个上面。 - -**[01:29:00] 发言人 2**:然后的话打通公司本部和咱们全国的这个队伍之间的信息互通,打通你们和这个渠道,你们和这个客户之间的这种大概。 - -**[01:29:15] 发言人 1**:就说这来。 - -**[01:29:21] 发言人 0**:好,那我总结一下,我觉得后续等到6月份结束,我们六月份完了以后,我觉还再开一次,争取一个月开一次,花一个时间大家交流。 - -**[01:29:41] 发言人 0**:我想的话我们现在还有很多没有发言的。 - -**[01:29:47] 发言人 0**:我先抽查两位,刚才说过抽查的事儿,我先抽查两位问一问情况,浩伟在吗? - -**[01:30:06] 发言人 0**:我带了,你说说你今天停了以后,你有什么想法? - -**[01:30:12] 发言人 0**:因为你你来了多久了,还没入职。 - -**[01:30:16] 发言人 7**:对。 - -**[01:30:17] 发言人 9**:还没走完流程。 - -**[01:30:19] 发言人 0**:你是新华三页干了很久了,你应该说在至少在在华3 it踢这个战场上,你都是老兵了。 - -**[01:30:27] 发言人 0**:你说说你有什么,你今天听了多少,你有什么想法? - -**[01:30:31] 发言人 9**:我我我从你上午就开始经知道,你说说你有什么想法。 - -**[01:30:35] 发言人 9**:对,其实是这样,怎么说,就是因为我22年来华山,然后就负责就云智这块。 - -**[01:30:42] 发言人 9**:当时这个还云中边这个产品还在云之产,还在华云智产线这块。 - -**[01:30:48] 发言人 9**:当时这部分是算业绩的,所以华算这个销售的这个呃主观能动性和积极性是比较强的。 - -**[01:30:56] 发言人 9**:然后贴到汇智之后,再加上因为大家都知道这个云桌面这个产品本身也比较复杂,有的时候跟这个交付比平,还有这个售后会有很大关系。 - -**[01:31:09] 发言人 9**:就是刚刚同之前同事们提到有很多项目可能就是烂尾,或者是出现这个问题,然后导致客户对这个华三,对咱们产品的或者解决方案,或者产品整体能力不不不就是不是很认可。 - -**[01:31:26] 发言人 9**:这方面我觉得可能后续还是需要怎么说呢? - -**[01:31:31] 发言人 9**:如果说咱们还要在这个云桌面上继续发力,可能之前一些这种就有原有的这种项目,就是该该去扫尾的,或者该去解决这之前出现问题的,可能还是需要去解决一下。 - -**[01:31:44] 发言人 9**:然后至于其他的,比如说是我我我马上最近投标这个项目,遇到咱们这个终端在检证明,这个证书节能检测报告,这块的话可能还需要总部再去加紧催一下这个就是这方面硬性方面这些工作。 - -**[01:32:02] 发言人 9**:然后我们作为一线,然后有的时候像一些这种我们能解释的,或者能做通过客性关系能做商务能能去处理的,肯定我们尽量去处理。 - -**[01:32:13] 发言人 9**:然后有一些这种比如说硬性这种,比如检测报告,或者一些这种硬性指标,这个方面可能还是需要总部再去加加催一下这个进程。 - -**[01:32:25] 发言人 9**:然后把一些这种至少是咱们这个节能检测报告啥的,他不能是过期,或者这个暂停状态。 - -**[01:32:36] 发言人 0**:好,你还没入职,还要,就基本上在办这个,什么时候办进来? - -**[01:32:43] 发言人 9**:六月底,领导预计六月底之前。 - -**[01:32:46] 发言人 0**:是这一两天。 - -**[01:32:47] 发言人 0**:好,冯世雄,你说两句,冯世雄。 - -**[01:32:53] 发言人 0**:冯立雄听。 - -**[01:32:54] 发言人 5**:得到吗? - -**[01:32:55] 发言人 5**:到方伟。 - -**[01:32:56] 发言人 0**:能听得到。 - -**[01:32:58] 发言人 0**:怎么样? - -**[01:32:59] 发言人 5**:说说说说我这边的情况,最近可能是我的这个云们多半都是一直以来也一直在做这方面工作。 - -**[01:33:10] 发言人 5**:但是来咱们这头,前面几个同事说的这个情况,我都有遇到。 - -**[01:33:18] 发言人 5**:现在目前的话咱们这个vdi这块肯定是全不好亏的。 - -**[01:33:24] 发言人 5**:不好亏的话,我认为他在一些什么情况下可以亏损去。 - -**[01:33:32] 发言人 5**:对,在华盛有一些大的项目里面,如果说携带我们一些没桌面,先做进去,后续再去做一些蓄材。 - -**[01:33:44] 发言人 5**:像我前两天就是有这么一个,我让杨州给落了一下。 - -**[01:33:50] 发言人 5**:可以,就是他先做五个点,这五个点先配一台服务器,那么先我们先把多边签做进去,它整体的项目是很大的。 - -**[01:34:00] 发言人 5**:如果是我们可能是几万块钱,就能把这个云桌面先做进去。 - -**[01:34:06] 发言人 5**:后续他会以这种续材的方式,扩容的方式再去做,那这样的话可能会好做一些。 - -**[01:34:13] 发言人 5**:如果你单纯的一个云桌面项目,现在单独去查,这样的话这个价格还是不太好去做,而且也不好往里做。 - -**[01:34:22] 发言人 5**:那我们肯定是现在有一些医院,教育方面我们可能在也在推一些这个办公端,然后我最近这几天的这个测试也还是比较多。 - -**[01:34:34] 发言人 5**:有一天可能杨州联线的这个测试的这周法师也一谈,有一台的话,我过来也会先测试。 - -**[01:34:43] 发言人 5**:你想这是我测试这个东西,政府是有的,如果说没有的话,那客户这边着急测试,我们如果没有这个测试样机的话,可能就会拷贝的。 - -**[01:34:56] 发言人 5**:之前我在天猫现打的时候,就是厂商拍的也是比较小众的一个厂商。 - -**[01:35:04] 发言人 5**:但他他是在办事处有很多这样测试的影子,那就是一直在这个库存里面去放着。 - -**[01:35:13] 发言人 5**:这个大家去测,因为这个桌面的东西和其他的设备都一样,他必须得是让客户看到他东西是好用还是不好用,而且客户不放心买回来这个东西是到底是怎么样的。 - -**[01:35:27] 发言人 5**:所以我们这个测试还是挺重要的,后续还是希望领导能给我们一些更大的一些支持。 - -**[01:35:36] 发言人 5**:然后目前我还有一个测试,只有这个第一院的护士,第一院的是不是也是胖龙端,但是我看这个就是我现在马上也经跟他联系到,因为这个省贷是有的库存的,所以我马上就跟他联麻去测试。 - -**[01:35:53] 发言人 5**:因为生意服务测完之后说不行,然后那个客户那说什么赶紧放一可,然后我就马上跟他联系了,就撤了。 - -**[01:36:03] 发言人 5**:所以第一时间去给他做个测试的话,他就像朋总说我们很很真诚的,就是很及时或者是很反而顾户去联系他的这种人,就是会让他感觉到我们是真的是在做什,他也会选择我,即使你的东西说有一点不好用,那么他也会觉得我想我相信你能把这东西给我搞好。 - -**[01:36:30] 发言人 5**:就是我们在我们很及时给他提供这些样机,及时跟他沟通。 - -**[01:36:35] 发言人 5**:他现在说是也是给集成商解决一些问题,或是还是有这么个事儿,赶紧帮我处理一下。 - -**[01:36:43] 发言人 5**:我马上要给亚子要测试,我们很快要让他解决。 - -**[01:36:47] 发言人 5**:这样帮助了对方,然后我们也会极大的促成我们这个单,也让这个经销商客户心里面觉得我们是印响应很快,事儿办年也很好。 - -**[01:37:01] 发言人 5**:从这一方面,然后其他一方面,今朝现在就像叶磊说的,就是现在我拜访的也很多经融上来,但是基本上90%是没有做过鱼桌面,或者是对鱼桌面没有什么兴趣。 - -**[01:37:20] 发言人 5**:这个我们要筛选出来一些筛选的这个对吧? - -**[01:37:26] 发言人 5**:而且一段时间去做做这个工作,这个我也拿到了,最近也拿到了这个内容这块的这个区域的这些渠道我筛选了一下。 - -**[01:37:38] 发言人 5**:但是还是要一些选一些清华三的,之前是做佛山,特别好像我现在不是签了一家清海,他他觉得这个只要是跟华南单边的东西我都干,这个碳根体华三的这些设备他都卖普多西。 - -**[01:37:56] 发言人 5**:所以这些可能会对我们会有一些倾向性,他会觉得我们是华商体系里面的东西他会去做。 - -**[01:38:06] 发言人 5**:所以说这个渠道这一块还是我觉因为这个我们过来之后,给我们定的任务是渠道比较多,然后华商的销售这个任务还是比较少的。 - -**[01:38:19] 发言人 5**:但是我现在慢慢的发现,华山的销售的重要性还是强比去航的要强。 - -**[01:38:26] 发言人 0**:没有跟你说华的销售少,就华山销售也是一个很重要的一务。 - -**[01:38:31] 发言人 5**:要你去追。 - -**[01:38:32] 发言人 5**:那我们的考核是华山销售十个打卡比如说这个渠道是30个,这个其实华销售他的是。 - -**[01:38:40] 发言人 0**:觉得的重心的话,应该有是40%放在华腾销售4% 10万的渠道。 - -**[01:38:50] 发言人 5**:对,这个职位对于我们来说都一样,而且我认为华为山销售还是很重要。 - -**[01:38:58] 发言人 5**:对,然后渠道这一块真的就是我拜访了这么多渠道,有很多人很多渠道都不粘这个边,他都觉得这个杭州园不敢粘下去,粘上就跑不了,粘上就这个东西。 - -**[01:39:13] 发言人 5**:这后续的服务,各种问题,什么款了。 - -**[01:39:17] 发言人 5**:对他他不干你干这个事儿。 - -**[01:39:21] 发言人 5**:但是我们这个零桌面的这是一个大问题,当然每个设备都会有这种问题,这是我们可能是需要想些办法。 - -**[01:39:32] 发言人 5**:现在的话其实说让我们去想,我们所有的销售或者是领导们去想,其实想不出来。 - -**[01:39:39] 发言人 5**:因为现在那个情况就这么贵,我们可能也有听说这个价格会下调,我们我们可能会扛过这一波涨价的趋势,我们后续会有一些好的价格,而且客户也会接受长期的这个价格贵,慢慢他就形成习惯了。 - -**[01:40:03] 发言人 5**:那么从以前的便宜到固然涨价,他们现在接受的这个程度还不够。 - -**[01:40:10] 发言人 5**:我们如果说全部市场整体现在就这么贵,那么经过一段时间之后,大家就都有一个共同的认识,把这个玩意就是贵,这个是也会不打理。 - -**[01:40:24] 发言人 5**:是说事就说这个柜式就不谈了,就看谁家的好或者是怎么着,谁家服务好了,把价格就放一边,因为大家都很贵。 - -**[01:40:35] 发言人 5**:所以说我们我们还是多去跟客户沟通,然后多推一推我们的朋友关先做一个过渡。 - -**[01:40:44] 发言人 5**:现在我觉得是这怎么回事? - -**[01:40:48] 发言人 5**:我就发表这么多,没导。 - -**[01:40:52] 发言人 0**:好这个时间原因,我就做个总结。 - -**[01:40:54] 发言人 0**:本来还想抽查,因为等会还有点事。 - -**[01:40:57] 发言人 0**:我就说四点,我觉得我们还是非常重视的。 - -**[01:41:01] 发言人 0**:因为咱们云桌面的这个队伍越来越大是吧? - -**[01:41:05] 发言人 0**:然后咱们各方面的指标,各方面的K加I指标,经营方面各个方面面对的这个问题,这个其实也是很具体的。 - -**[01:41:17] 发言人 0**:好不容易传出来这么大个队伍,我们希望我们未来这个市场会越走越好是吧? - -**[01:41:24] 发言人 0**:我说四个方面,第一就是我要强调,就我的感知,我也说我的感知第一我觉得就像中康今天说的那句话一样,这个A要全方面的进入到我们的产品和进入到我们这个产品的生产力里面去。 - -**[01:41:44] 发言人 0**:所以我觉得一方面就是在我们整个从研发到销售到售前到服务的方方面面,我们要坚定不移的从流程上,从工作的种这种这种整个工作流方面要融入也融入这个大模型,融入智能化。 - -**[01:42:03] 发言人 0**:我觉得我们也是有硬件条件的,下来以后我们要尽快的把这个事落实? - -**[01:42:09] 发言人 0**:你不管是知识库还是什么方面。 - -**[01:42:13] 发言人 0**:第二我觉得就是要融入融入这个产品,要我们一定要打造跟这个A有关系的产品,这是我们转型的方向,这第一第二我说从对内来说,就是我的感知,就是我还是希望我们有一个怎么来比方。 - -**[01:42:31] 发言人 0**:刚才我又在想,原来我们每一年就是现在没有通信展。 - -**[01:42:36] 发言人 0**:最早通讯展我是参加过香港通讯展,参加过几次巴塞罗那通讯展了,也参加过中国的通讯展。 - -**[01:42:44] 发言人 0**:参加现在的通讯展没有以前那么大,以前都西展人山人海,现在可能是AI的展,就是我觉得就当你把客户带到你的展厅的时候,就是我觉得我们虽然那个展厅不不展厅要不相费一段时间,但是为了布这个展厅,要花大量的时间去写一个交,然后去把它放在这里。 - -**[01:43:07] 发言人 0**:今年腾讯展明年腾讯展,就要要挖空心思,我们前台要招一个华为的人是吧? - -**[01:43:12] 发言人 0**:做通讯展要挖空心思,把我通讯展里面一些好的东西新出来,是什么东西把它展出来? - -**[01:43:19] 发言人 0**:你看那个时候是按年计算,到现在其实通讯展一个是没那么多了。 - -**[01:43:24] 发言人 0**:嘿第二是不按年计算? - -**[01:43:26] 发言人 0**:都都有一原来要聚在一起人统一去看,然后有一个固定的物理的场景,然后你得统一去看,统一讲,我觉得现在慢慢的就更重视这个,就是在一年的过程中间的一些,包括个我看华山华三农艺展,我觉得也没有什么特别的多西东西。 - -**[01:43:43] 发言人 0**:所以我觉得更重视这个过程中的,所以我就觉得我们过程中我们应该能搭一个像通讯展搭一个展厅一样的云那个展厅一样这么一个东西。 - -**[01:43:53] 发言人 0**:就我们的销售能够带客户进来,逻不是物理上的,我们销售能够带客户来,就是把自己的那个什么东西说的123说的很清楚,一带就没人说,我觉得是在网上,是在线上的是吧? - -**[01:44:08] 发言人 0**:这个我觉得当然我们销售要获取很多东西,也能够很快速的,然后这个展厅里面的内容也是高速变化的,也是经常变化的这就是一个形象。 - -**[01:44:20] 发言人 0**:包括我们的视频,我们的数字人,我们的这些所有东西,其实都是为了我们。 - -**[01:44:26] 发言人 0**:原来是要做一次一个月1次,不是一年一次是吧? - -**[01:44:30] 发言人 0**:巴塞罗那展全球的,香港展这个是管全球的,然后这个中国展都是这样去为了展现在一次。 - -**[01:44:38] 发言人 0**:我们希望我们的信息要不是物理在的某一刻,要随时准备着能够引展拥为有A时代,我们要随时准备着,我们定期的在进行这个改变在进行在这个改变同时我们会主动的通过数字人的,通过很多年来发声。 - -**[01:44:55] 发言人 0**:就是我觉得我们如果对外就整个宣传,我就想我们的这个产品经营团队,就是要有这种要这种这种这种通过A的帮助,有一个线上的,我刚今天说小红书我说的还不是很准确。 - -**[01:45:09] 发言人 0**:我觉得就是一像一个展一样的,我随时都能够拉出来看我随时都能够讲,我可以区分行业,我可以针对针对针对的针对的这个客户,我可以针对性的给你拉一个,然后我自己的宣传。 - -**[01:45:22] 发言人 0**:但这里面刚才说到的这个,你说你们做那个知识库,我在想我觉得在图讯展里面有一个很重要的一点,就是现在越来越多华为的业,原来的很多的业就他两层,他一层就对普通用户的,还有一层他来不及拉到那个小区域里去。 - -**[01:45:38] 发言人 0**:你还得vip,你vip的客户还得不让别人看到,不让别人听到不让别人看到,不让别人听到,我们都还有自己的一些更高级的武器,招投标的时候在用,现在也不能跟你说太多。 - -**[01:45:51] 发言人 0**:有些东西我们是对外的,你们都可以来看的,就这样。 - -**[01:45:54] 发言人 0**:有些东西我如果涉及到我和对手之间要在重点项目pk的,那我们可能还有一些东西,还有些针对只给我们销售讲的,只给我们一些重点人讲的。 - -**[01:46:05] 发言人 0**:我觉得有一定的区分,就是一定区分有一大家都知道的,有些是我们区分,所以我在想这个事儿,就是花很多的精力做一个一个的展报。 - -**[01:46:15] 发言人 0**:我让大家看看完以后台词一拆没了,但是这个思想要花很长时间,但现在我觉得时间会短的非常多是吧? - -**[01:46:22] 发言人 0**:每个月我们都会有些更新,我们都能够有一个这种有一个在线上的知识库,跟你之间的这种怎么样能够展示一个是网站吗? - -**[01:46:32] 发言人 0**:是一个这种是吧? - -**[01:46:34] 发言人 0**:是一个优频道吗? - -**[01:46:35] 发言人 0**:是一个什么? - -**[01:46:36] 发言人 0**:是个小红书吗? - -**[01:46:37] 发言人 0**:那小红书里面我打开,如果我光看一个产品,我也能看到很多。 - -**[01:46:41] 发言人 0**:是一个什么东西? - -**[01:46:43] 发言人 0**:我就琢磨琢磨,我就我希望我们的宣传有立体化,后尤其是给我们销售和外面的人,这是一个就是我觉得总体来说就围绕着我们自身需要有一个智能体,就围绕着一个我们自己的知识库去搭建我们外面的一些东西,让我们内部的这个流程更高效。 - -**[01:47:01] 发言人 0**:这是关于就是我想到是想到哪说哪,这是关于我觉得对内的对我们的这个生产力的,然后对产品来说,我我我我说说我的感知力,我觉得就是。 - -**[01:47:13] 发言人 3**:v di这个事儿。 - -**[01:47:14] 发言人 0**:他确实刚需。 - -**[01:47:15] 发言人 0**:Vdi是有钱人的生益,有钱人他要有vdi那是挡不住的,即便他今天挡住了。 - -**[01:47:20] 发言人 0**:就像你说买房子,现在我不买,我是刚需。 - -**[01:47:23] 发言人 0**:但是我我那你你说我给你我我给你住的不是房子,给你住的是那个什么是吧? - -**[01:47:29] 发言人 0**:你可能还是不买了是吧,我就不买了,你这不是小区,你这是是商品房是吧,或者你这是用电也不一样,你这个什么也不一样。 - -**[01:47:38] 发言人 0**:你这个是什么这个不说公寓了,你你你就给你给了我个宾馆,住两天我也不住了,这房间不一样。 - -**[01:47:48] 发言人 0**:所以我觉得威尼埃这个事他可能就是云桌面的核心。 - -**[01:47:53] 发言人 0**:然后这个v di里面要解决的,我们如果vdi跟AI结合的话,还是要解决整个A在服务器上的布局。 - -**[01:48:02] 发言人 0**:就真正做vdi的,我觉得还是包括我们有那么多客户已经买了vdi的。 - -**[01:48:08] 发言人 0**:如果还有二次销售的机会,我觉得也是我们去琢磨V D I基于在vdi管理下的龙虾,基于在vdi管理下的智能应用,就看看有没有这种机会,当然你说龙虾一点机会没有我想想可能也是。 - -**[01:48:25] 发言人 0**:妈的,我我我娱乐面打开,我其他不要了,我其他不要了,我其他不需要了,我反正里面乐面你经给我了,里面的内容,我想不到它做啥是吧? - -**[01:48:38] 发言人 0**:好,另外一个我觉得在这个就是不一定叫云桌面,或者就是在场景还是细分场景的进入行业的,就是往行业下面再细分的。 - -**[01:48:49] 发言人 0**:刚才盛刚也提到了,俊杰也提到了,我觉得就是在行业场景化的这么一个解决方案,加安全、加控制、加智能。 - -**[01:49:01] 发言人 0**:就这个你说是云桌面那那也可以,你说他不是云桌面也可以。 - -**[01:49:06] 发言人 0**:但是他可能一开始他提出来我们想管控,想纳管? - -**[01:49:11] 发言人 0**:从纳管的角度,场景化的角度,就细分场景的角度,高校里面的细分场景,企业里在细分场景从细分场景的角度我们找到,你不是要管理吗? - -**[01:49:23] 发言人 0**:你要安全吗? - -**[01:49:24] 发言人 0**:你要管理,你要纳管,是吧? - -**[01:49:26] 发言人 0**:所以说我们前两天我们自己在提我们在提这个叫叫这个叫终端纳管,行为纳管,这个龙虾纳管,然后这个算力纳管,加这个数据纳管,其实这些东西可能都是包括学校,可能都会有这种类似的需求,就是这一块我们也希望我们成为我们下一个就在这个vdi抛开vdi,在专在那个专有云的专有的云桌面的情况下。 - -**[01:49:52] 发言人 0**:就跟那云论跟V Y,跟云端边有点像的。 - -**[01:49:55] 发言人 0**:原来其实V Y也不能叫云桌面对吧? - -**[01:49:57] 发言人 0**:你如果光说咱们说单纯的云端面,其实就是v di就是跟那人家都能挂上V I,你也可以挂上V I,你挂上智能I,我觉得什么I怎么着就是要让这个就是安全纳管和智能能能进入新闻行业这块。 - -**[01:50:15] 发言人 0**:今天提出来,也是希望我们的销售,我们的售前后续你们遇到类似的机会,你们在交流中间,你们在项目中,你们在这个交流中,你们如果遇到这个就是我们这个客户到底想的是什么? - -**[01:50:31] 发言人 0**:我客户想的这你比如如果你说我就是想把那个电脑里面不用不要用电脑,所有数据不能外传,我就想用个vdi那我无话可说是吧。 - -**[01:50:41] 发言人 0**:你那就是那就服务器刚才说了我就想用vdi我那后面就是服务器,那这个咱无话可说是吧,咱就但是你包括很多医院,很多学校,它不是A D I,他其实第一个想法,你跟他说没di他也可以,但是你要便宜,你跟他说,他说反正我就是想电脑便用于户别出问题,电脑是用的所有东西我都看到是吧? - -**[01:51:05] 发言人 0**:我觉得在这个基础上,那他既然那个既然他的终端要纳个行为,要纳个他的,那我觉得他的数据也可以纳个他的这个算力。 - -**[01:51:15] 发言人 0**:就未来下一代,我觉得算力里我们我们很多人今天我问,有很多人有些人知道,有很多人不知道。 - -**[01:51:23] 发言人 0**:那我可以很明确的告诉大家,AI确实是离我们已经卧操太近了,近到今天中午我跟江怡在聊那一个质谱一个一个大模型的公司,你们原来可能没在听过8000个亿了,8000个亿什么概念呢? - -**[01:51:39] 发言人 0**:相当于那么相当于八个新华三,他在做了一点产品,就卖了几个小卖了几个做了几个模型8000个亿了,那dc个上来有一万多亿了,那做了做什么说这个而且模型和模型的应用,你们看到现在股票那么牛逼? - -**[01:51:55] 发言人 0**:你那个存储为什么涨那么厉害了? - -**[01:51:58] 发言人 0**:你存储的目的是啥? - -**[01:51:59] 发言人 0**:说白了存储的目的就是为了解决这个人工智能里的上下文,为了解决人工智能里的context。 - -**[01:52:06] 发言人 0**:因为你人工智能必须要长的上下文,他才你说这个模型行不行? - -**[01:52:11] 发言人 0**:这模型为什么那么高的参数? - -**[01:52:14] 发言人 0**:实际上模型行不行,我觉得跟上下文有很大关系。 - -**[01:52:17] 发言人 0**:我问他很长一段话,那他这个上下文一多,他怎么能处理? - -**[01:52:22] 发言人 0**:他参数够不够? - -**[01:52:23] 发言人 0**:所以我觉得他如果要解决上下文,那就要存储。 - -**[01:52:26] 发言人 0**:我有时候跟我们兄弟在聊,我说为啥不让存储长那么快呢? - -**[01:52:30] 发言人 0**:就是那个机器现在原来的机器是有算力。 - -**[01:52:33] 发言人 0**:脑子里就是健忘,今天说一句,明天就忘了你现在问问豆包,你昨前天说的话,豆包今天还记得。 - -**[01:52:39] 发言人 0**:那为啥它后面是什么吗? - -**[01:52:41] 发言人 0**:它就是存储就是存储,就是他没掉电的存储,是不是它随时调用了? - -**[01:52:46] 发言人 0**:所以这个存储涨那么快,跟这个智能有很大关系。 - -**[01:52:50] 发言人 0**:所以这个AI离我们刚才我举个例子,就AI离我们已经非常近了,就是我们不改,那我们肯定落后。 - -**[01:52:57] 发言人 0**:在这一波里面,我们希望我们能成为一个AI的公司? - -**[01:53:02] 发言人 0**:我们既然是能纳管终端,能纳管行为,那我们也可以纳管龙虾,也可以纳管算力,也可以纳管数据? - -**[01:53:10] 发言人 0**:龙虾这个词出的特别好? - -**[01:53:12] 发言人 0**:那龙虾就是没脑子的,没脑子身子大钳子厉害。 - -**[01:53:15] 发言人 0**:所以本来龙虾为什么要取名叫龙虾呢? - -**[01:53:18] 发言人 0**:就是你虽然没脑子,身子大钳子厉害,但是我能管得住你我能我能把你管住了是吧? - -**[01:53:25] 发言人 0**:我出的这个东西是我能管住的,然后我再给你装个脑子? - -**[01:53:29] 发言人 0**:装个大脑子,公有云的脑子,那就是公有云的龙虾,装个私有云的脑子就是私有云的龙虾。 - -**[01:53:36] 发言人 0**:所以龙虾这个东西未来就怎么管控它,就是A这A进的跟他管,就是A他跟他管。 - -**[01:53:45] 发言人 0**:所以我觉得我们觉得在不久,可能现在不到,但是未来的几年以后,每个人都有一个agent。 - -**[01:53:53] 发言人 0**:你冯文超你就有一个人,你刘凯你就有一个,就平时不用你挤,你张备,你如果想你说下午我要,明天我要去跟领导写个汇报材料,你哔哩吧啦跟他说两句,他比你记的还多。 - -**[01:54:09] 发言人 0**:他说你这样,这是我这两天的建议,还有之前我的建议,他马上给你写个P P D,绝对比张妹写的那个好。 - -**[01:54:16] 发言人 0**:你张妹你那个是普世的,就往那一放,需要资料,需要宣传,差异化太少。 - -**[01:54:22] 发言人 0**:你那个东西我相信龙虾写的比你好,真的,你你让你你让那你让那个A姐娜,你说你说我这段时间面对了很多的业务,碰到很多困难? - -**[01:54:32] 发言人 0**:有些数据放在你那你帮我倒腾一下,他写的比你好,他思想比你多,而且还有你的记忆。 - -**[01:54:39] 发言人 0**:所以我觉得这个龙虾未来在这个电脑里面它必然存在,一定会存在,用token一定会像用电一样,这是百分之百的,很快,所以我们现在做的这个叫终端纳管,这个龙虾纳管,这个数据纳管,这个算力纳管是很有价值的。 - -**[01:54:59] 发言人 0**:如果我们的这些兄弟们,在你们遇到深入行业的时候,碰到用户这种需求,就是说他说说是云桌面也可以,你说是我是我是一个一个大管,我我我是想想对我的安全大管,那我觉得可以给他提一提我们的一些概念。 - -**[01:55:16] 发言人 0**:虽然不能像洛东说的40%真,4%假,但是提一提我们现在我们想做的一些事情,包括我们的能力。 - -**[01:55:26] 发言人 0**:他说要拿来测试,要拿来怎么着,我觉得可以,不是说拿来测。 - -**[01:55:31] 发言人 0**:首先我们多沟通两次,我们两边多交流两次。 - -**[01:55:34] 发言人 0**:我们希望在有一些好的一些比如我们好的客户,我们会给他一起交流沟通。 - -**[01:55:40] 发言人 0**:按照他的这个要求,我们慢慢的把我们一些理念,基于龙虾的管理,基于智能体的管理,基于算力的调度的管理,我们能把它做出来。 - -**[01:55:49] 发言人 0**:当然我们其实现在也在做我们的知听云也在做,未来我们会做一个软件版给你们都用上是吧。 - -**[01:55:56] 发言人 0**:然后你那些那些你都不用什么去买那个分钟数了,你到街道去买那个分钟数吧,就用我们自己的,也在做。 - -**[01:56:04] 发言人 0**:我们未来会转变成一个AI的公司,这是我们的,这不叫梦想,这必须的。 - -**[01:56:11] 发言人 0**:如果不走这一步的话,你就会out的。 - -**[01:56:14] 发言人 0**:他会把你A会进入每一个行业,然后会把你改变,这是刚才我说的关于AI的产品化和AI的在生产力的事情。 - -**[01:56:25] 发言人 0**:最后一个就是我想说一下,今天看到的几个要求。 - -**[01:56:32] 发言人 0**:我觉得一个就是我们售前还是要对项目要负责。 - -**[01:56:36] 发言人 0**:这种负责不只是说是你你把这个项目成了或者不成了,就这个项目里面客户提到的很多需求,你能够感知到。 - -**[01:56:47] 发言人 0**:当然你能满足他,你有可能不能满足,你不满足了你给我们带回来是吧? - -**[01:56:52] 发言人 0**:而且你能延展他的需求吧? - -**[01:56:55] 发言人 0**:能跟他交朋友。 - -**[01:56:56] 发言人 0**:我就我觉得跟那个项目的关系,我觉得这个今天早上也说到了,不管是杨昭还是个谁也说到了,我觉得我们在我们对我们售前的要求,还是希望能够像杨坤龙他们,就是能够很远的地方,虽虽在虽远,但是也能把事干成。 - -**[01:57:17] 发言人 0**:咱不叫虽远必诛,就虽远也能把事干成,也能真通过项目来来把来跟他们达成很好的一种这种认知,大家要把钱挣了是吧? - -**[01:57:27] 发言人 0**:这是关于售前,所以后续我们售前会有要求,包括售前每天要开的,售前要把很多对于你们每天用户给你个交流,尤其是细分场景下的一些这种行业里面的一些场景化的一些交流,我们希望能听到你们的声音。 - -**[01:57:47] 发言人 0**:如果听多听这个声音,对我们后续公司的这个转型改变是有很大的帮助的。 - -**[01:57:54] 发言人 0**:所以这是关于售前这一块,这关于销售这一块,关于产品经理我已经说过了。 - -**[01:58:01] 发言人 0**:我刚才再补充一句,我就还是那个形象比我就产品经理就是要今天左边看自己家的农场,右边看自己家的菜地,看自己家的市场。 - -**[01:58:12] 发言人 0**:菜市场在市场上还得看看别人在卖什么,还得看看别人在卖什么,我在卖什么,就要成为一个farmer,咱们这个整个叫产品经营团队,叶宇豪是吧? - -**[01:58:25] 发言人 0**:还有这个谁来着? - -**[01:58:27] 发言人 0**:陈一鸣刘强,我觉得你们一定要把自己变成一个farmer,跟研发,跟我们的市场菜市场,然后还要看看对手真的要把自己变成farmer。 - -**[01:58:37] 发言人 0**:你把哪天你说我就是以farmer这种感觉来做我们的产品,我觉得你可能就有机会,要不然你其他的方向都是错的。 - -**[01:58:47] 发言人 0**:这是关于我们的这个就产品经营团队,然后关于我们的销售,就是现在刚才盛刚说的,我觉得也非常赞同,就是现在因为刚刚开始,销售更多的就是说我遇到一个项目需要什么支持,我觉得其实我们还是希望我们的销售未来我们会划大区的,南区、北区、东区、西区。 - -**[01:59:09] 发言人 0**:我们何况大区的这第一第二我们的这个所以说我觉得人有多大能力,有多大责任,就管多大的区域。 - -**[01:59:21] 发言人 0**:第二我觉得这个销售一定要对自己的整个市场,整体的区域市场有整体的感知力,你那个市场大概有多大,蛋糕有多大,谁在切蛋糕,谁在分蛋糕,谁在吃蛋糕? - -**[01:59:37] 发言人 0**:我那两个对手怎么样? - -**[01:59:39] 发言人 0**:他们做了些什么? - -**[01:59:40] 发言人 0**:我在跟我对手比起来,我的机会在哪里? - -**[01:59:44] 发言人 0**:你肯定的,你如果说我这个东西那么好卖,还是那句话,对吧? - -**[01:59:49] 发言人 0**:我那么好卖我就不需要了。 - -**[01:59:51] 发言人 0**:我我我如果长得那么好看,我直接这个叫叫什么笑一个不就完了,我走到哪儿去,我只要长那么好看,我走到哪儿去,我就这个给他笑一个,给爷笑一个,生意就拿来了是吧? - -**[02:00:06] 发言人 0**:那事实不是这样的,也没有这样的是吧? - -**[02:00:10] 发言人 0**:所以我觉得就是销售要去一定要去看竞争,你销售一个很重要的就是竞争,就你要看看这个我到底那那那申意辉也在,瑞杰也在,奥也在,那我为什么在,我觉得我为什么在,然后我为什么能拿到项目? - -**[02:00:30] 发言人 0**:那肯定有拿到的吗? - -**[02:00:31] 发言人 0**:你说你一文不值,你不可能你都拿到了,还有拿到很多的我们医院的学校那么多。 - -**[02:00:38] 发言人 0**:那既然拿到了,那原因是什么? - -**[02:00:41] 发言人 0**:我怎么去思考我在这个行业里面,我在这个区域里面的地位行业地位。 - -**[02:00:47] 发言人 0**:你看新华三那么牛逼是吧? - -**[02:00:50] 发言人 0**:但是你看到没有,新华三它代表各个代表数之间也不是按g地器来的,它其实还是有好的代表数,不好的代表数。 - -**[02:00:59] 发言人 0**:然后各个代表处下面的地势有他们传统优势地势,也有传统不优势地势。 - -**[02:01:06] 发言人 0**:云桌面有做的好的,也有做的不好的,这说明什么? - -**[02:01:10] 发言人 0**:我是我就是觉得他们所有产品线,包括希华3,他一定是人为的。 - -**[02:01:16] 发言人 0**:是有些人我刚好碰到这个人特别牛逼,把超融和把云桌面做好,或者把他的那个ct也做好了,或者代表人经理很牛逼,刚好也遇到这个代表人经理表面上很牛逼,实际上傻逼。 - -**[02:01:30] 发言人 0**:他一走在时候好像觉得很牛逼的样子,造了一堆数据一走全他妈是假的,再往这一接,花三年时间去搞? - -**[02:01:40] 发言人 0**:然后这个代表处这不行那不行是吧,这个肯定有的,我觉得事在人为。 - -**[02:01:46] 发言人 0**:所以说我觉得对于我们销售,尤其是我觉得有些我们都做过很多年了,而且在这个行业里面也有些认知。 - -**[02:01:56] 发言人 0**:我觉得你们要去对对这个市场要整体的感知,要有整体的感知,要对我们的一些行业,我们的对手,我们的渠道,要有整体感知。 - -**[02:02:08] 发言人 0**:要要把要把我们的这个就是要把一些尤其在地市里面,要不但要原来的渠道怎么把它弄好,要在要把地市里面还要维系出更多的渠道,有朋友多多的,敌人少少的,维系出更多的东西? - -**[02:02:23] 发言人 0**:有更多的根据地,这个跟打仗就是很像,有些地方在根据地就出来了。 - -**[02:02:29] 发言人 0**:那为什么是老毛? - -**[02:02:30] 发言人 0**:为什么是井冈山呢? - -**[02:02:31] 发言人 0**:对不对? - -**[02:02:34] 发言人 0**:为什么不是他妈的山东,为什么不在山东? - -**[02:02:38] 发言人 0**:为什么不在他妈的广东,为什么不在四川呢? - -**[02:02:42] 发言人 0**:为什么在井冈山呢? - -**[02:02:44] 发言人 0**:为什么在江西? - -**[02:02:45] 发言人 0**:为什么我觉得他都是因为这个人? - -**[02:02:47] 发言人 0**:他他就划分了这块地方就干起来了。 - -**[02:02:50] 发言人 0**:你当时全国革命那个样子,也没人觉得他妈的,觉得他妈的你老毛就行了,是不是,那那那云桌面那么难卖,那我相信在我们在座的里面一定会有几个井冈山,一定会有几个根据地,这是肯定的。 - -**[02:03:05] 发言人 0**:所以说我觉得我们的这个销售,一定要从整体意识看啊,你的那个区域,你现在可能是在打猎是吧? - -**[02:03:14] 发言人 0**:我是觉得未来一定会走向种地的,这个打猎是干嘛呢? - -**[02:03:18] 发言人 0**:就是。 - -**[02:03:19] 发言人 0**:哎,今天冲到这个森林里,听说他妈的有动物冲去了,守了一天没守到。 - -**[02:03:24] 发言人 0**:明天又到那片森林里,他们说的那儿有动物,又冲去了是吧? - -**[02:03:29] 发言人 0**:有可能就打到了。 - -**[02:03:31] 发言人 0**:我觉得但是你打猎你也得看看听听江湖上传说。 - -**[02:03:35] 发言人 0**:雪球以前老跟我说,江湖上说这个片里有个大象目,你就去冲上去,我们到江湖里去看看呗,我觉得要打猎,但是打猎也得分清楚,你知道哪? - -**[02:03:47] 发言人 0**:你知道江湖是什么,你往哪跑? - -**[02:03:50] 发言人 0**:但是后面我觉得慢慢的我们的伙伴越来越多,我觉要走向种地。 - -**[02:03:55] 发言人 0**:我们的这个慢慢的跟渠道商越来越多是吧? - -**[02:03:59] 发言人 0**:你耕耘出来的,你觉得它能长出来,反正今年有明年有,我慢慢的知道了。 - -**[02:04:04] 发言人 0**:反正今年这有点扩容,明年那可能有点新建,然后我这些客户,教育里面的就是这些人,医疗里面就是这些人,他每年的刚才刚才我张斌说的,找我要全国市场政策。 - -**[02:04:18] 发言人 0**:我觉得你问我要市场政策原来可能很难,你现在你天天问豆包,豆包也能给你说出一二三来。 - -**[02:04:25] 发言人 0**:就是你慢慢你对你那个行业的政策,区域的政策,你当然我们也会,我们的产品线里也会增强这个能力。 - -**[02:04:32] 发言人 0**:但是你个人你在茶馆里你也能听到这个能力,是吧? - -**[02:04:35] 发言人 0**:今天说我操山东好几个学校都在开始他么的有投资了是吧? - -**[02:04:40] 发言人 0**:明天说应急管理局他妈的有二期,全国有个二期的火灾,要去要去把它给要去把它给这个项目就来了吗? - -**[02:04:49] 发言人 0**:我觉得你们的行业里面,你们天生的就应该能拿到,能了解到会有哪些方面的一些机会,这还你就是你在这个你你在这个区域里对待你在这个江湖上你应该做的事情是吧? - -**[02:05:02] 发言人 0**:所以就是我觉得我们这个销售要有区域感,要有你对行业,对你产品的态势感知能力,去去感知感知这个行业感知态势。 - -**[02:05:18] 发言人 0**:而且我觉得要有非常强的耕耘能力,就是慢慢的找到我们的合作伙伴。 - -**[02:05:25] 发言人 0**:我觉得只要能做成生意就一定能挣到钱,多多少少挣一点,然后慢慢来。 - -**[02:05:33] 发言人 0**:我觉得慢慢的把我们在一个地方的这个口碑给弄出来。 - -**[02:05:38] 发言人 0**:另外我们除了这个云桌面以外,其实我们确实也有系统集成,也有定制化软件开发是吧? - -**[02:05:45] 发言人 0**:我相信我们的定制化软件开发,我今天就跟聊,我觉得我们的定制化软件开发,如果现在的定制化是一块钱能做,人天,那我觉得我们的定制化软件开发要做到两毛钱,做到两毛钱人天是吧? - -**[02:06:03] 发言人 0**:挣出来的那个八毛钱,咱们一家一半,你不行,我跟销售一家一半,你拿40%种,你拿收入的40%,你拿收入的40%,你只要把定制开发拿过来。 - -**[02:06:17] 发言人 0**:我们把项目拿下就给你收入的40%你拿走,或者给你的那些给他们客户或者给谁拿走,我觉得我们现在对我们自己的定制开发的要求也是这样的,我们每年还要接2000万的定制开发。 - -**[02:06:33] 发言人 0**:我们也有a coding的能力,在A情况下整体的定开的能力。 - -**[02:06:39] 发言人 0**:也希望咱们的咱们的销售行也看到定开能力、系统集成能力、解决方案能力。 - -**[02:06:48] 发言人 0**:你们也看到这个表了所有这些能力面,我们其实现我们个人公司最看重的还是基于云桌面,或者说咱们不说基于vdi,基于vi下面的安全纳管安全纳管和智能。 - -**[02:07:02] 发言人 0**:如果在安全纳管和智能里面你们能找到一些项目,咱们把它项目化运作,然后在运作过程间我们也全力支持。 - -**[02:07:11] 发言人 0**:在这个更细分的场景里,我们再孵化一些产品出来,我觉得能够在区域里面能够可复制,能够在全国可复制。 - -**[02:07:20] 发言人 0**:我操,那我觉得肯定要中奖了,我肯定要大奖了,我肯定觉得我操你你这个认知你们的高度很高,是吧? - -**[02:07:28] 发言人 0**:能够想到这个,或者说能跟客户一起。 - -**[02:07:30] 发言人 0**:但是可能不是你想的,可能客户想的或者说环境所致。 - -**[02:07:34] 发言人 0**:不管怎么样,我觉得这个一定你想不出来,别人也能想得出来,所以我觉得一定是我们一个销售要工作要思考的一个地方。 - -**[02:07:44] 发言人 0**:所以还那句话,虽然我们现在这个紫光绘制还少哈那紫光绘制在七八年前一两个人几个人的时候,谁能想到会有今天呢? - -**[02:07:55] 发言人 0**:是吧那那我觉得那再过几年不是啊我们的云桌面文的那个我们的AI出来,我们能分好几类人。 - -**[02:08:04] 发言人 0**:不是不可能,所以我觉得希望在座的第一有信心,第二就是我们内部加强沟通,然后把这个当前的问题,通过AI的生产力,把它内部流转的更高速更高效。 - -**[02:08:21] 发言人 0**:同时我们把这个产品的AI化,云桌面的A化,我们要把它这个要把它一定要把它做下去,而且我们这是我们这个公司这次转型的一个非常重要的话。 - -**[02:08:37] 发言人 0**:而且我觉得每个人都应该给公司有共一样的共识有一样的共识。 - -**[02:08:44] 发言人 0**:下来你们如果有什么样的更多的想法,这个企业微信,我觉得你随时可以给我发,随时可以给我发。 - -**[02:08:56] 发言人 0**:你说我觉得这里面我们有点机会,个会叫的孩子有奶吃是吧? - -**[02:09:03] 发言人 0**:一定要去去去呼吁,内部要呼吁,我们共同把这个把这个咱们把整个组织,把经营娱乐面的一个组织的经营把它做好好吧。 - -**[02:09:20] 发言人 0**:我就说这么多。 - -**[02:09:25] 发言人 0**:好,汇。 - -**[02:09:26] 发言人 1**:议结束。 - diff --git a/agent_memory/uploads/kb_3cc4030350de/1782281997007_1_transcript_712.md b/agent_memory/uploads/kb_3cc4030350de/1782281997007_1_transcript_712.md deleted file mode 100644 index d1c8ddf..0000000 --- a/agent_memory/uploads/kb_3cc4030350de/1782281997007_1_transcript_712.md +++ /dev/null @@ -1,2918 +0,0 @@ -# 会议712 - -**会议时间**:00:00:01 - 02:01:54 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8 - -## 会议记录 - -**[00:00:01] 发言人 0**:你的数里面主要是升高那个数,跟你对过没有? - -**[00:00:06] 发言人 0**:就是最。 - -**[00:00:07] 发言人 1**:终的结果。 - -**[00:00:09] 发言人 1**:我根据财务的收款。 - -**[00:00:10] 发言人 0**:你不能只跟据财务收款,你要跟盛刚再对一对,你要跟他通电话对一对。 - -**[00:00:16] 发言人 1**:数据都是从他们系统里面取出来的。 - -**[00:00:20] 发言人 0**:他现在预测的到6月底是多少? - -**[00:00:24] 发言人 1**:现目前的话总的预计数是因为。 - -**[00:00:26] 发言人 0**:数据值得取得。 - -**[00:00:27] 发言人 0**:但是最后预测的话,他他负责人他要有预测的能力,他自己要预测能力,要把预测放进去了。 - -**[00:00:35] 发言人 0**:你不能单独只看这个,这个就是他们取的数据。 - -**[00:00:47] 发言人 0**:然后预500万是吧? - -**[00:00:49] 发言人 1**:对,然后我们这边低一低工程的高,他们这边预计数据是不可报的,低高风险是短。 - -**[00:01:00] 发言人 1**:然后我们这边会根据实际的一个收款发货,然后一些备后情况来做一个评况。 - -**[00:01:08] 发言人 1**:对于他们的项目空间做一个。 - -**[00:01:15] 发言人 0**:我不看收入,你不用老是看那个了,我就看主要看那个那个毛利。 - -**[00:01:20] 发言人 1**:那一栏毛利是按照35%的毛利率。 - -**[00:01:32] 发言人 1**:按照他们之前接收,这个月软件比较多。 - -**[00:01:41] 发言人 0**:定开有146万。 - -**[00:01:44] 发言人 1**:在目前的部。 - -**[00:01:51] 发言人 0**:那净利润怎么才121万? - -**[00:01:54] 发言人 2**:哪儿有问题呢? - -**[00:01:56] 发言人 1**:没有,对,因为每个月差不多在250万的费有。 - -**[00:02:05] 发言人 1**:然后上个月是亏损。 - -**[00:02:07] 发言人 0**:了一少万。 - -**[00:02:08] 发言人 1**:累计对,累计。 - -**[00:02:20] 发言人 0**:总部是记了哪些? - -**[00:02:22] 发言人 1**:然后就是答案都一个就是把它运为,然后一个就是国默博用。 - -**[00:02:37] 发言人 1**:然后还有一些小金头的,很少很小的。 - -**[00:02:44] 发言人 0**:好啊。 - -**[00:02:48] 发言人 1**:然后现在实际的话,劳力已经完成了307万,剩余的主要是微电。 - -**[00:02:59] 发言人 1**:实际上在这两个门基本上是完成了。 - -**[00:03:04] 发言人 0**:那你下来你追着他,一个省长给他跟他就是要他严肃,他这个就是要求留机,你们这个需求定开。 - -**[00:03:21] 发言人 2**:这个其跟我这儿其实也不一样。 - -**[00:03:24] 发言人 1**:我这是不含税的。 - -**[00:03:33] 发言人 0**:好吧,好。 - -**[00:03:34] 发言人 4**:我这边其他。 - -**[00:03:36] 发言人 1**:没有然后。 - -**[00:03:43] 发言人 0**:对,还有马上是吧? - -**[00:03:45] 发言人 0**:马上到月底了,你一个雪秋,这里你们定开一个是这个雪球流进,定开升高那里好不好? - -**[00:03:55] 发言人 0**:好,继续。 - -**[00:04:03] 发言人 3**:刚说入台我们已经画了整个我们绿色部分,我们测试器我的时。 - -**[00:04:11] 发言人 3**:一起绿色的就是去上刺,有的已经完成了,我完成了自。 - -**[00:04:20] 发言人 3**:即使我们的足球业的我们平台的走织链运营。 - -**[00:04:24] 发言人 3**:然后这是几个,一个就是那个重点工作,就是上周完成了合北智算的个签约,合北智算那个融合交换机,7680多万,然后切除就完成了。 - -**[00:04:38] 发言人 3**:然后那个风险也跟那个。 - -**[00:04:43] 发言人 0**:青岛两个点上。 - -**[00:04:44] 发言人 3**:两个点,因为即使青到先客胡松,我们1.2个繁体算是我他拿太多也你必要,你什么都不让谈心海欠货,那你搞那么多,我这边人家压力也大。 - -**[00:04:56] 发言人 0**:就是说把这1.2不用聊。 - -**[00:04:58] 发言人 3**:我们他就可以拿走是吧,对不对? - -**[00:05:00] 发言人 3**:他他他这个我跟刘凯也让他去问问下面的那个那个谁之金,以及包含何小强他们,胡松经理就是问他。 - -**[00:05:13] 发言人 4**:很。 - -**[00:05:17] 发言人 3**:样。 - -**[00:05:20] 发言人 0**:到好吧。 - -**[00:05:24] 发言人 3**:继续。 - -**[00:05:25] 发言人 3**:然后收款就是这个我。 - -**[00:05:27] 发言人 0**:觉得这个东西今年有,明年就没了。 - -**[00:05:31] 发言人 3**:是妈的,所以说用户有操作了,是这个理解,有一年吃一年,这个东期,然后收款的话就是国务用了23万,我曾前我叫。 - -**[00:05:47] 发言人 2**:什么什七回重,而回重。 - -**[00:05:51] 发言人 3**:不是个集单收款那家,然后我用那个收款那家,最后尾款23万. - -**[00:06:02] 发言人 6**:打过来了,是伟吗? - -**[00:06:05] 发言人 6**:两种打过来,他那个早过只是对,就是现金。 - -**[00:06:11] 发言人 3**:然后丁开的是双四收入五元。 - -**[00:06:16] 发言人 3**:是不定池是背靠背没多大意义,这几个做法。 - -**[00:06:21] 发言人 3**:然第二个事情就是辽宁东北大学周五我去找高研的时候,他也去找教授,赵教授已经找到合个往前一个打进去了,就是400万这个事儿,那个教授自己找人了,就不需要了,就不需要自经找人了。 - -**[00:06:37] 发言人 3**:高演说只能在等们下次再合作。 - -**[00:06:40] 发言人 0**:这个太难了,这个中间链条太长了。 - -**[00:06:43] 发言人 3**:我在是成都子公司会议,等他开完上时电话开完会就给你报。 - -**[00:06:49] 发言人 3**:然后约定的是明天给出经营费用,然后收入带时间以及空间,就是项目空间储备,待时间落地了,然后这三张表拿给股。 - -**[00:07:00] 发言人 3**:另外就跟徐凯也商量了,说发含担心营销国他不会给那个封封口直达,所以封评不会给那个封封评,所以说他说还不如去约封评。 - -**[00:07:10] 发言人 3**:徐凯也没有逼我老。 - -**[00:07:11] 发言人 0**:觉得是这个势,就小果他一点都不决策,就给他一个正式的东西都要不拿着重东西,他也不敢在手上留。 - -**[00:07:19] 发言人 0**:是不是他决得不了你你得发他决策,就给他一个正式的东西,就我们给他一个正式的函,给他我们要搜的那个东西。 - -**[00:07:29] 发言人 0**:对他的要不要不拿到函的,你那到时候拿到你手上发烫了,他发烫了他怎么办? - -**[00:07:36] 发言人 0**:他肯定得这东西还要处理不了。 - -**[00:07:38] 发言人 0**:你现在是没有一个没有一个触发,没有触发的一个没有一个出发点,是就现在要走出发点,那找个出发灯心一个。 - -**[00:07:47] 发言人 0**:对对对,我觉得你还触发他就给他是吧。 - -**[00:07:50] 发言人 0**:这个函你不交,我也可以交给你上级,你许敢跟外面给一开,我也给交给上级是吧? - -**[00:07:55] 发言人 0**:触发他,那我先把函子说,对,然后跟徐磊说两边一起走是吧? - -**[00:08:01] 发言人 0**:就出发的,你要出发的他也会去教的,他不教拿这个手头烫的,对不对? - -**[00:08:05] 发言人 0**:我给你比如我举个例子,我给你个紫光,给我汇智商报你不上报你的某公司,你自己也不决策,那就就就就就就麻烦了好是吧? - -**[00:08:15] 发言人 0**:因为你首先你触发了你,你要去决策,现在就是要触发他决策。 - -**[00:08:21] 发言人 3**:然后上次2. - -**[00:08:22] 发言人 0**:比如说我撤单,总人我他妈告我,我几个名,我马上告他,我说你我我这个他就感觉我。 - -**[00:08:29] 发言人 3**:感到有压力的触发他。 - -**[00:08:31] 发言人 3**:行。 - -**[00:08:31] 发言人 0**:这个我会过来。 - -**[00:08:32] 发言人 0**:咱因为咱这中西中间不管是那个女的还是那个谁,都要给我们任何都没有感情。 - -**[00:08:38] 发言人 0**:我们抛开感情全靠法律。 - -**[00:08:40] 发言人 0**:好,所以我们就靠这个,这就就这这这这个那这个下午就出了,必该说的说完了。 - -**[00:08:46] 发言人 0**:现在你现在就是往我之前说的那个,本来说这个给了面时间,本来就让拧这个螺丝是吧,给了时间,他这个最后的结果还是跟他的两个月之前拧。 - -**[00:09:00] 发言人 3**:难的很。 - -**[00:09:01] 发言人 3**:我就我我要开个会,全是这么一堆垃圾话,一点用都没有,都可以给你开。 - -**[00:09:09] 发言人 3**:算了,会后的给你看,就不浪费他家家时间。 - -**[00:09:13] 发言人 3**:然第四个就是那个那个藏品二期,上周二跟华商客服首仓安全开完会。 - -**[00:09:19] 发言人 3**:然后开完会你们你就是跟我说,让跟让我联系,他们跟他确认,一直到中午他才给我回电话,我会后就给他打电话了,说两中午跟他说两个点的事儿,我说中午陈峰总该怎么说,我说陈峰总这走一走,已经说陈峰总已提到走一走的消息了,就是说跟毕总一谈好了,就两个点。 - -**[00:09:38] 发言人 3**:但是冯长安说毕总找他了,没说两个零事不能亏损,说以说想做到6到7个点,然后我我这面我这边说我接受了通知是两个点。 - -**[00:09:46] 发言人 3**:但是我说我第一第一,我说这是内部项目,我们不会赚钱。 - -**[00:09:50] 发言人 3**:我说第二,今天我本身就要提交华山客户的一些资料,提交的时候我们会不会问紫光新云谷光,我们用华山客,你是不是可以给我们保增加点利润和预算。 - -**[00:10:02] 发言人 3**:然后今天会后,我这边中午郝龙去提交资料的时候,我跟郝龙的商量就是一我把现实情况告诉他是哪一项目。 - -**[00:10:10] 发言人 3**:二招标的是紫光星为还卡我们的卡,我的价格。 - -**[00:10:13] 发言人 3**:你想要六个心理预算可以,但是招标的时候还肯定会卡卡的时候我也会给你试服入我们预算利润也不高。 - -**[00:10:21] 发言人 3**:所以说冯长安过表达的,他那边跟B总不亏损,6到7个点才行,希望我们给他争取不亏损。 - -**[00:10:28] 发言人 0**:争取6到7个点。 - -**[00:10:29] 发言人 0**:没有我现在就是两个点,因为我们都没有多少钱。 - -**[00:10:33] 发言人 0**:这个东西你就是借你个壳,你还讲什么,你要你那没人,你没有这生意赚一点,没这生意两个点多少钱? - -**[00:10:40] 发言人 3**:10万2000万,40万。 - -**[00:10:42] 发言人 3**:对。 - -**[00:10:43] 发言人 0**:有这生意,你有40万就赚一点,你没40万我不找你了是吧,你你你这个就是这意思。 - -**[00:10:49] 发言人 3**:然后他那边说逼须文给他说的是做到不亏损,然后他就开始各种磨。 - -**[00:10:55] 发言人 0**:说是又要对,做的不亏。 - -**[00:10:57] 发言人 0**:你两个点不用派人的,他要派人吗? - -**[00:11:00] 发言人 3**:要派项目,他要派至少名誉项目挂。 - -**[00:11:03] 发言人 3**:因为他是中标公司的一进的项目经理。 - -**[00:11:07] 发言人 0**:那成本算百两个点。 - -**[00:11:08] 发言人 0**:那是成本,那可以。 - -**[00:11:10] 发言人 0**:你那你如果是在挂项品的另外成本上面。 - -**[00:11:13] 发言人 3**:你不到现场,要是去一趟,要是去一趟,就像我们那成本上面那个点,好吧。 - -**[00:11:18] 发言人 0**:那个算成本,那我下我因为你这个事,你还得跟紫薇交代,你因为你最后把紫总我谈的两个点,你们他妈整这个七个点,你们就这水平我们没答应。 - -**[00:11:29] 发言人 3**:对不对? - -**[00:11:30] 发言人 3**:所以我专门汇到个。 - -**[00:11:32] 发言人 0**:而且按说那原则就不亏损,能赚多赚,第一不亏损我们给你保障,第二能赚多赚,我们也没赚到钱,就不是说大家说意这你这个逻辑我不是很赞同。 - -**[00:11:43] 发言人 0**:你说我们等到去跟他谈集团,如果说我们自己家集团会不会涨一点,这个逻辑不不不成不成立的。 - -**[00:11:50] 发言人 0**:你不管是谁的家,因为你你招不招投标,我在我那边就一定是什价格降的最低。 - -**[00:11:56] 发言人 0**:比如我是甲方,你们谁来,我也不想得这个。 - -**[00:11:59] 发言人 0**:我难道说你们因为是集团利部的。 - -**[00:12:01] 发言人 3**:我都给你讲这话,不能这么说,我算我表达是这意思。 - -**[00:12:05] 发言人 3**:我们上一次就是因为内部标,第一次我们中标准都中标了1 1100 1100万,集团反过来压我们降了100,接近100万。 - -**[00:12:14] 发言人 3**:他说正我说的意思,正因为是内部公司,反而让我们把利润空间给压缩了。 - -**[00:12:19] 发言人 0**:对,他要压。 - -**[00:12:21] 发言人 3**:对,就是你即使中标了股东股份,还会开会让我们二次降价。 - -**[00:12:25] 发言人 3**:我们本身一期就是二次降价接近100万,而就降了150万,是降了多少? - -**[00:12:31] 发言人 0**:就是要跟他说,我们没挣到钱,因为这里面还有垫资,我们算下来就是四个点给你一半。 - -**[00:12:37] 发言人 0**:我我们我卖电动多资,你把它设计成这个样子,对不对? - -**[00:12:41] 发言人 0**:我们就四五个点,或者说我五个点,或者我十个点以内,我就八个点。 - -**[00:12:47] 发言人 0**:那紫薇都会编这个话,紫薇编的话编的圆的很,我一共就八个点是吧? - -**[00:12:52] 发言人 0**:紫薇说紫薇圆的,她紫薇跟那个都没听跟我们沟通,紫薇直接跟人家说,那绘制不挣钱,没几个点,就个位数的点。 - -**[00:12:59] 发言人 0**:你要只要说的我是个位数,那你说你要多少,你们要觉得对不对? - -**[00:13:03] 发言人 0**:你说我哥哥说,而且我垫子这风险,我怎么风险我收不回来钱? - -**[00:13:07] 发言人 0**:你看着账面利润收不还收不回来钱,那么麻烦对不对? - -**[00:13:11] 发言人 0**:就是因为你我我我现在我们就是蓝领就这水平对不对? - -**[00:13:14] 发言人 0**:你要你如果一定要要,那我们就只找其他外面去找,是吧? - -**[00:13:17] 发言人 0**:你跟能说清楚就是大家关系,你不挣钱,你不可能,你比我挣的还多,那我挣他妈那干嘛? - -**[00:13:23] 发言人 0**:还有我风险比你大,对不对? - -**[00:13:24] 发言人 0**:我都是个位数,你就不少。 - -**[00:13:26] 发言人 0**:你们这么觉给他说,你把成本压了,你把成本做起来,做到。 - -**[00:13:30] 发言人 0**:因为只有我们知道成本,对不对? - -**[00:13:33] 发言人 0**:你做起来以后,你就他就看着你就是不到10个点,你要几个点,对不对? - -**[00:13:38] 发言人 0**:我还不出资,我还出什么东西,对不对? - -**[00:13:41] 发言人 0**:而且因为这是集团的,是外面的,我们也可以说他妈的我挣了20块钱给你,他妈的300。 - -**[00:13:48] 发言人 0**:那现在集团的很透明,集团就是要压死你,对不对? - -**[00:13:53] 发言人 0**:集团那软件还不愿意做,就是因为不挣钱。 - -**[00:13:57] 发言人 3**:我讲故事好吧。 - -**[00:13:58] 发言人 3**:所五个g pu国产U的项目,以跟俊杰装备已经弄清楚了,就是我3GPU算力太强,算力性能不够,以及那个软件不适备,就没法去搞重度渲染测计的工作,所以这个事情已经上做不了。 - -**[00:14:20] 发言人 3**:对上好多。 - -**[00:14:20] 发言人 3**:第六个是中法云作面,一共是这的还是哪里做法云作面四川的,为什么写在这? - -**[00:14:28] 发言人 3**:担心就是招今天早上可中了吗? - -**[00:14:30] 发言人 3**:这已经中了,但是是年前的预算,之前报价150万,现在已经涨到了197万了。 - -**[00:14:38] 发言人 3**:我们在报价正常不利的情况下,我现在渠道找了张威,张薇,就是很冒火。 - -**[00:14:43] 发言人 3**:周末给张涛发了个微信,让张涛来处理这到底怎么回事? - -**[00:14:49] 发言人 3**:因为渠道给张威那个表达的,说实慢慢的涨了,涨了一千多块钱,实际上我们就是涨了四十多万,是因为内存和租是涨价的。 - -**[00:14:59] 发言人 0**:对。 - -**[00:14:59] 发言人 3**:正常今天早上徐凯跟张涛一起去找张威,然后就我们差不多就是现在的报价197万。 - -**[00:15:07] 发言人 3**:如我们的我担心,如果张威在他们汇报完了给你打电话,其实我们就是象征性的的197万件摩个礼物也差不多了。 - -**[00:15:17] 发言人 3**:但是我刚刚也问了宋刚,反正是你利润肯定是按照正常毛利报的。 - -**[00:15:23] 发言人 3**:如果是张威愿意,他什么时候种的,是华山的销售去种的是吧,华山销售和渠道和去年种的。 - -**[00:15:29] 发言人 7**:什么时候种的? - -**[00:15:31] 发言人 7**:去年涨价钱重的,涨价钱重的,现在要进货。 - -**[00:15:34] 发言人 7**:对,涨价钱重的现在才开始要货。 - -**[00:15:36] 发言人 7**:然后去年报给他们终端报了很低的价格,是150万,150万那个终端只留了不到50块钱一台的利润。 - -**[00:15:45] 发言人 0**:后来他自己他当时没提,他没提过,他为什么不提呢? - -**[00:15:49] 发言人 7**:他他他没定下来。 - -**[00:15:50] 发言人 0**:他不没实施,他提了。 - -**[00:15:52] 发言人 0**:所以中标那个价也也是是什么价格。 - -**[00:15:55] 发言人 7**:去年是900块钱台,现在要1300多。 - -**[00:15:58] 发言人 0**:我知道,但那那他等于说他只能出那么多钱。 - -**[00:16:02] 发言人 7**:我没理解这个逻辑,那他手上还是有一点钱,那他想尽量压低一点。 - -**[00:16:07] 发言人 0**:我他我中了标了,像这种,因为涨价中了标,你如果不你就废标就完了。 - -**[00:16:12] 发言人 7**:我我我不做就完了。 - -**[00:16:14] 发言人 7**:这个投标跟我们没关系不。 - -**[00:16:16] 发言人 0**:我知道。 - -**[00:16:17] 发言人 7**:他我说说完他是总级去做标。 - -**[00:16:20] 发言人 0**:我知道再找我们要货,我知道,就集销商如果最终的结果是因为那个甲方是不会给多的钱。 - -**[00:16:27] 发言人 2**:应该是甲方会给多少钱。 - -**[00:16:29] 发言人 0**:那基本上最多我做不了整个费,要不然我就只有减少不计,要不然我减少自己的利润,对不对? - -**[00:16:36] 发言人 0**:大时叫服务器,对不对? - -**[00:16:38] 发言人 0**:那他最后中不了。 - -**[00:16:39] 发言人 7**:那他服务器他踩没踩,这他这190万好像是含服务器的。 - -**[00:16:44] 发言人 0**:那这是集商自己的原因,可能我们不管好吧,我觉得这集。 - -**[00:16:49] 发言人 3**:销商自己的原因。 - -**[00:16:51] 发言人 0**:我担心稍微会给你打电话。 - -**[00:16:53] 发言人 0**:他妈一百多万,我觉得他一百多万,他说打不打电话。 - -**[00:16:57] 发言人 3**:他就是跟他一起跟那个销售就完了。 - -**[00:17:00] 发言人 3**:他找我。 - -**[00:17:00] 发言人 0**:我也会跟他说,我说你那么大领导一百多。 - -**[00:17:04] 发言人 0**:在乎这个给你报一下。 - -**[00:17:05] 发言人 3**:就担心你什么都不知道。 - -**[00:17:07] 发言人 3**:他张着一打电话,你说怎么要再把我们是弄的就尴尬了,给你报备一次了。 - -**[00:17:12] 发言人 0**:对我我我我个人认为他可能不会。 - -**[00:17:14] 发言人 3**:因为你们一百多万。 - -**[00:17:16] 发言人 7**:我不知道他招微信,那其实就是我们主管找是吧? - -**[00:17:32] 发言人 3**:然后招人,云南的人今天入职,你就答应好了。 - -**[00:17:35] 发言人 3**:我跟商务的云南商务管管商业张强也说了完说会后我拉着他们一起开工会。 - -**[00:17:42] 发言人 0**:上次他们是余江山,是谁给我打的电话,有一单是他跟我说,你们在哪出差? - -**[00:17:47] 发言人 0**:What you . - -**[00:17:50] 发言人 4**:can . - -**[00:17:51] 发言人 0**:do . - -**[00:17:52] 发言人 3**:with that? - -**[00:17:55] 发言人 0**:那。 - -**[00:17:57] 发言人 3**:是也是因为涨价的策本。 - -**[00:18:01] 发言人 3**:对,我去。 - -**[00:18:02] 发言人 0**:找我磨了,我我说我就跟他说,我说可以,我说这次我就给你我就你打电话来是吧,我就给2万块钱,他最后说感谢,我说你们大领导你把我给我,我说但是不是他没抹,我说你既然你找了,我肯定给你降一些,对不对? - -**[00:18:20] 发言人 0**:我说你都来找我了,我说但是实话实说,我说我也不挣钱是吧? - -**[00:18:25] 发言人 0**:我说咱们这兄弟们兄弟妈的是吧。 - -**[00:18:27] 发言人 3**:我说我就给个面子,我这给你报的想声,如果没招,你把这个7万块了就完了。 - -**[00:18:32] 发言人 0**:我还是有35%,我万还对于我对他来说73000毛毛. - -**[00:18:37] 发言人 3**:对于我来说70001个给你报一下。 - -**[00:18:40] 发言人 3**:他担心他。 - -**[00:18:41] 发言人 0**:走对于我来说期望还是挺高的。 - -**[00:18:43] 发言人 0**:上面哪个经理,我后来给他说了,他自己都不好意思。 - -**[00:18:48] 发言人 0**:对了,那就少一点,少感谢下次我说真的,我说咱们兄弟,我说这个是吧,我说我你打电话我,但是实他妈的是就是这个样子。 - -**[00:18:58] 发言人 3**:云南的人气电路十报说了,跟云南商业主管赵强也沟通了让他先带一带。 - -**[00:19:04] 发言人 3**:然后省代和下面的销售都认识之后,就开始他自己跑开了。 - -**[00:19:10] 发言人 3**:因为他本身就是招了按招了进天入职,然后那个本身就是私心服的,他也他他本你下来,他们就是谁跑哪儿。 - -**[00:19:18] 发言人 0**:谁跑哪儿了,你到时候就跟我说一下。 - -**[00:19:21] 发言人 0**:好,那咱们我们那个会后我们再商量好好。 - -**[00:19:25] 发言人 3**:然后云视的项目空间是还是1100 1.08个亿。 - -**[00:19:30] 发言人 0**:但协同营销实际上是没有什么作用的。 - -**[00:19:33] 发言人 3**:现在目前来看,协同营销。 - -**[00:19:35] 发言人 3**:那四个人工学跑的可以,河北就是交给刘凯和陈志华。 - -**[00:19:39] 发言人 0**:他两个跑,我开始没半年,他没有那个没贡献也不大。 - -**[00:19:45] 发言人 3**:你是指中景数据? - -**[00:19:47] 发言人 0**:对呀对。 - -**[00:19:48] 发言人 3**:他们还在充,一个是冯文超签了一个2 100 300多万,是几百多万的利润进来,里面有二十多万的利润。 - -**[00:19:58] 发言人 3**:然后刘用凯每次在在河北就周你那还没表现还挺集中,都签单了,还没集中。 - -**[00:20:05] 发言人 3**:六月份要寄,六月份寄不了钱,今年要记。 - -**[00:20:09] 发言人 3**:冯超不是刚3 4月份还是五月份把那个迁进来的吗? - -**[00:20:15] 发言人 3**:然后刘凯,那刘凯那个数还没算是吧? - -**[00:20:18] 发言人 3**:对,还没算。 - -**[00:20:19] 发言人 3**:然后徐凯这个就是重心全在于位上,完了之后再就加上跟也是商业主管和政府主管的郭达安、张威安排你,他也在陆续弄,上次是南充智慧城事务部,也是他在跟。 - -**[00:20:37] 发言人 3**:这四个是我感觉现在节奏跨你觉得还可以? - -**[00:20:42] 发言人 3**:这四个每周开会,我们郝龙郝郝龙跟王斌两个完全飘在外面,还挺锻炼,也不跑没跑运做面,然就是等好容就是等大项目。 - -**[00:20:52] 发言人 3**:王斌最近好像连系同项目都少,中医物联我不知道怎么弄。 - -**[00:20:58] 发言人 2**:现在甚至。 - -**[00:20:59] 发言人 3**:所以不前我十的过程中,好论就是吃算那几个钉钉子那几个吃算。 - -**[00:21:08] 发言人 0**:好,反正半年就是个坎儿。 - -**[00:21:09] 发言人 0**:你跟他们通知一下,半年他妈的你这个你半年业绩就是个坎儿,包括这个谁,湖南那个叫什么这个过对。 - -**[00:21:19] 发言人 3**:到时候我还专门问了他一下数据,他数据一直。 - -**[00:21:22] 发言人 0**:你给他们发个文,你半年是个坎儿,都要交作业的。 - -**[00:21:26] 发言人 0**:你说我们还要给集团交作业,各级个交作业,你的作业不行,最后半年下去可能都会有处置的。 - -**[00:21:32] 发言人 0**:好,反正就要注意了。 - -**[00:21:33] 发言人 0**:那我就这种半年这个坎,那半年不行,今天把那个明弄好。 - -**[00:21:37] 发言人 0**:对,就跟他讲你半年这个坎,你半年你必须要打证,你这必须要打证,不打证这个不可能的。 - -**[00:21:44] 发言人 0**:他们几个人这样的半年是个坎,好吧,你打不正,我们这半年公司都会做,公司会开会的,对于每个人的情况。 - -**[00:21:53] 发言人 3**:然后再一个就是俊杰,你那两个优优系列的检测报告,现在进度如何? - -**[00:22:00] 发言人 3**:能不能凑下来? - -**[00:22:01] 发言人 3**:欧阳报告上次提交了。 - -**[00:22:03] 发言人 7**:今天早上又来说我们上周注册证还是老公司的名字,去年他这个方式是认了的。 - -**[00:22:11] 发言人 7**:去年的两州市场,我开开了一个新紫光集团的公司,跟名申请,他就认了,今年的首册也不认。 - -**[00:22:20] 发言人 7**:然后欧阳现在马上找集团去要新的公司的上注册证。 - -**[00:22:25] 发言人 3**:到家又号了就了。 - -**[00:22:27] 发言人 3**:然后打需要去了,为什么来不及了? - -**[00:22:30] 发言人 7**:那欧阳上周上周一上周一提他,因为他有过程,上周一提交给C这边机构,然后今天早上反馈说我们那个公司名称。 - -**[00:22:41] 发言人 0**:他有一个星期是吧? - -**[00:22:43] 发言人 0**:你如果你再弄,不是我们内部的,不,如果集团问题我可。 - -**[00:22:50] 发言人 7**:以去协调,你不是内部问题。 - -**[00:22:53] 发言人 2**:集团还应什么意思? - -**[00:22:58] 发言人 3**:今天拿新的就进早就就。 - -**[00:23:01] 发言人 0**:是什。 - -**[00:23:01] 发言人 7**:么个就招不了这标了,投不了标了是吧? - -**[00:23:07] 发言人 7**:没有这报告就投不这标了。 - -**[00:23:10] 发言人 7**:明多说说所谓政治已经结束,现在政在发生过程。 - -**[00:23:14] 发言人 3**:但你把这个协给我们,你协助我们,我这个就有点爆告,就是你什么都没有,他不打票,还有的豆假这个东西。 - -**[00:23:21] 发言人 7**:其他只票都是这样。 - -**[00:23:23] 发言人 0**:你们就找一个方式,因为这个东西我觉得可能还是会有办法。 - -**[00:23:28] 发言人 7**:因为毕竟不是我们一家这样很多家西。 - -**[00:23:31] 发言人 0**:因为毕竟你是紫光集团,你的事情是真实的,是吧,你只能可能少了个手续。 - -**[00:23:36] 发言人 3**:给个解释完的时候这么。 - -**[00:23:38] 发言人 3**:隔壁图说发,下面几个要签单或投标的项目,一个就是北京那个谁谁那包包浩伟,包括那个的标城伟是冲标。 - -**[00:23:55] 发言人 0**:估计是冲标。 - -**[00:23:57] 发言人 7**:没没把我挺的。 - -**[00:24:02] 发言人 3**:那挺要的的这道这那助就一直引导这。 - -**[00:24:08] 发言人 7**:找沟通。 - -**[00:24:09] 发言人 2**:事然那个京我。 - -**[00:24:11] 发言人 3**:觉得有关系。 - -**[00:24:12] 发言人 0**:提早都会想种办法。 - -**[00:24:15] 发言人 0**:他们做。 - -**[00:24:17] 发言人 3**:后手批,我没答应,我说等等一等,我就实在不能批,为啥我就不说了? - -**[00:24:24] 发言人 3**:实在因为学校是他们肯定有一样的问题,我种方式我们就不在上说这个事,那下面是几个项目情况,然后那个我就不懂了,本身每周例会我都跟他们过。 - -**[00:24:37] 发言人 0**:我多其实总理这种开会,所以说会议纪要也麻烦。 - -**[00:24:41] 发言人 0**:刚才有时候那话没理对。 - -**[00:24:43] 发言人 2**:所以我压根都没提你们。 - -**[00:24:45] 发言人 0**:那你为啥要提? - -**[00:24:46] 发言人 0**:你提我加一个,然后放在里面这会议,所以他怎么能把这句话删了? - -**[00:24:52] 发言人 0**:也有些会议这句话不叫记录我,所以从这些看得出来,这个就是会议纪要本身还是有些问题。 - -**[00:24:58] 发言人 0**:就这个会议纪要这种模式,你记到自己手机上就很简单。 - -**[00:25:02] 发言人 0**:换句话说,你就是你你记到公司的那些名件,我觉得都是有点问题。 - -**[00:25:07] 发言人 7**:所以说要拿走了,要修改。 - -**[00:25:09] 发言人 7**:最后一下昨天。 - -**[00:25:11] 发言人 2**:的反而哪种是好的? - -**[00:25:13] 发言人 3**:那天像那个。 - -**[00:25:14] 发言人 0**:悟空他们这种方式,就大家开这个研讨会,他们主动记了,我去他们去研究,我觉得这个反而这种方式是可能最好的方式。 - -**[00:25:23] 发言人 0**:因为客户第一需求就俊且你下来以后还是用他们所有人要用上这个东西才行。 - -**[00:25:31] 发言人 0**:让他写日报,写到最后写的他写的他这个日报怎么写呢? - -**[00:25:35] 发言人 0**:他就写不写不好,只能靠这个把每天的这个记录下来才能写的好啊。 - -**[00:25:40] 发言人 0**:那你这个去弄内驱力就没有了你没有这个内驱力,你也不要日报,你也不要东西,他就没有这个要写,也没有要记的方式,对不对? - -**[00:25:50] 发言人 0**:我们就做个考核,是这的。 - -**[00:25:58] 发言人 7**:他。 - -**[00:25:59] 发言人 0**:们要做个日报核细。 - -**[00:26:11] 发言人 7**:节,你。 - -**[00:26:16] 发言人 0**:想怎么,我们财政部后来研究分析,因为你脱离群众时间长了有问题。 - -**[00:26:24] 发言人 0**:包括你们我上次说的,你们这个要出去跑,你们要出去跑,这种你们要你们自己定下,你们你们现你你们就你们你们你们自己到那个渠道商到那个一线去,你们有一做一个调研报告,好吧? - -**[00:26:39] 发言人 0**:这必须进渠道,不用进华,要华山价值要进华商,全是给你们报围,你渠道建渠道。 - -**[00:26:49] 发言人 3**:你渠道然后见那。 - -**[00:26:51] 发言人 0**:个客户去跑,你自己自己给。 - -**[00:26:54] 发言人 3**:我自己给我定个划华后三简单下咱弄,你等会儿说。 - -**[00:27:00] 发言人 0**:那个东西我觉得也不是那么的,我不是给你发了个视频吗? - -**[00:27:06] 发言人 0**:800万. - -**[00:27:06] 发言人 8**:900万,那玩意儿他。 - -**[00:27:08] 发言人 0**:妈的900差不多,跟我都想得出来那个逻辑。 - -**[00:27:12] 发言人 0**:那那东西就是他妈的就是个赌场,差不多就是好打信息仓。 - -**[00:27:22] 发言人 0**:这就是郝荣最喜欢干的事,就这种玩意,两边就是赌场。 - -**[00:27:30] 发言人 5**:这边的话其升这边上周是有一个视频互联网行业立体数联网场景。 - -**[00:27:36] 发言人 5**:然D的这个然后就相当于是你去鼓励去报了这个名额。 - -**[00:27:43] 发言人 2**:因为是技术里面。 - -**[00:27:45] 发言人 5**:现在我们对,也是王斌,也就实我们去年的商课的。 - -**[00:27:51] 发言人 2**:也是提示以后。 - -**[00:27:53] 发言人 5**:第二个是建设银行的山西省分务行的动力团动画的力监持监测。 - -**[00:28:02] 发言人 5**:有13家去投入这个业,上周也报告了这个事,现在的话应。 - -**[00:28:08] 发言人 0**:该这谁能想到很多。 - -**[00:28:12] 发言人 0**:陈志华的。 - -**[00:28:14] 发言人 3**:项目就。 - -**[00:28:16] 发言人 2**:是自。 - -**[00:28:17] 发言人 3**:己的项目,然后山西那个。 - -**[00:28:22] 发言人 0**:是的。 - -**[00:28:24] 发言人 3**:那个。 - -**[00:28:25] 发言人 5**:是我们的名排那排第样项百。 - -**[00:28:31] 发言人 0**:多。 - -**[00:28:32] 发言人 2**:四百多百多。 - -**[00:28:34] 发言人 2**:蔡总几个点。 - -**[00:28:36] 发言人 3**:现在他是4.5. - -**[00:28:38] 发言人 5**:是4.5. - -**[00:28:39] 发言人 0**:还是四五行,那就不管他,烂么值钱的。 - -**[00:28:44] 发言人 0**:好。 - -**[00:28:44] 发言人 5**:继续。 - -**[00:28:45] 发言人 5**:好,第三个就是那个下那。 - -**[00:28:51] 发言人 2**:主要就是软件的一些功能的一些沟通。 - -**[00:28:54] 发言人 5**:包括它的开发边界。 - -**[00:28:56] 发言人 5**:这个上周已经确认了,然后们现在在做相应开发,这些我们主要是跟他。 - -**[00:29:05] 发言人 0**:就之前一直说有些东西他们如果做不了,你把它拿下来。 - -**[00:29:12] 发言人 6**:能不能拿下来。 - -**[00:29:14] 发言人 0**:我们来开发了。 - -**[00:29:16] 发言人 6**:做不了是吧? - -**[00:29:18] 发言人 6**:现在他们坏,他们没发自都,但是那个。 - -**[00:29:23] 发言人 0**:那个东西就是他那。 - -**[00:29:25] 发言人 3**:个那个枪手自己找一个小包知。 - -**[00:29:28] 发言人 0**:但数字人的交付其实很难的,如果说关系不到就数字人交付。 - -**[00:29:34] 发言人 0**:其实我我估计这个刘静你们因为我们有个好处,我们这的这个叫大模型,现在够大。 - -**[00:29:40] 发言人 2**:你一般小公司拿不成。 - -**[00:29:43] 发言人 5**:200万. - -**[00:29:45] 发言人 6**:那有。 - -**[00:29:45] 发言人 8**:不是五。 - -**[00:29:48] 发言人 2**:罩子。 - -**[00:29:48] 发言人 8**:罩子。 - -**[00:29:49] 发言人 2**:看你看看。 - -**[00:29:51] 发言人 8**:之前看过他三个。 - -**[00:29:55] 发言人 6**:他三个软件我感觉是商业。 - -**[00:29:59] 发言人 6**:对,说白了做。 - -**[00:30:00] 发言人 5**:的是一些他的描述是很简单的。 - -**[00:30:04] 发言人 5**:但是现在就是使用部门现在觉得这个东西太简单了,就是连一个人都没有一个对话框的一种问询方式。 - -**[00:30:15] 发言人 5**:他们现在不认这个事,现在东司这边准备说,要不我们就已经外采一个,他们自己什办法? - -**[00:30:23] 发言人 0**:那你外采你看看他如果外采成本,它的要求,是吧? - -**[00:30:27] 发言人 0**:我觉得可以因为这东西参与,我把你的好你猜一下好不好? - -**[00:30:32] 发言人 0**:你说就是你说因为我们参与很简单,是什么逻辑? - -**[00:30:36] 发言人 0**:你反正给我钱,我给你做,我不参与你那风险,我也参与不参与你那其他风险这。 - -**[00:30:42] 发言人 2**:两个层面的事情。 - -**[00:30:45] 发言人 2**:对对。 - -**[00:30:45] 发言人 0**:就是你给钱给你做,就不参与你们内部的那些东西,我不给你背靠。 - -**[00:30:51] 发言人 2**:背是吧? - -**[00:30:52] 发言人 4**:你可以让。 - -**[00:30:53] 发言人 0**:李静他么去弄试试。 - -**[00:30:57] 发言人 6**:不过我觉得如果要我们真想做的话。 - -**[00:31:00] 发言人 2**:我就寄给我们的这个人评表。 - -**[00:31:02] 发言人 2**:我有。 - -**[00:31:03] 发言人 6**:因为这个是定制化,我们他们一直是想让我们去,是吧? - -**[00:31:07] 发言人 6**:不,我们还没去一次,我觉得去的话就。 - -**[00:31:10] 发言人 0**:我们这样做可以,我先可以。 - -**[00:31:12] 发言人 6**:你先底下先看看,我们先看的时候你先加,因为那个复。 - -**[00:31:17] 发言人 7**:杂度我觉得没问。 - -**[00:31:18] 发言人 7**:那个要。 - -**[00:31:20] 发言人 2**:他。 - -**[00:31:51] 发言人 3**:验收完全就是说我说的跟商户费用挂钩的,你说纯靠写出来我们去验收,我知道。 - -**[00:31:57] 发言人 0**:所以说就不所以说你不能参与。 - -**[00:31:59] 发言人 0**:我们要别人招标的时候,别人招标他要个什么东西,看我们行不行,对不对? - -**[00:32:03] 发言人 0**:我就是就好比什么停车,对不对? - -**[00:32:07] 发言人 0**:停车我们这不是还给了你钱吗? - -**[00:32:10] 发言人 0**:我们把那个做到是吧,我不管你也不验收,不管那个,反正你我给你的支持,你有钱管了,这个可以做,其他如果不行,你不做。 - -**[00:32:18] 发言人 3**:反正你要记得两家可。 - -**[00:32:21] 发言人 0**:视化业。 - -**[00:32:22] 发言人 0**:但我觉得就是我觉得我建议比如宋总你们还是去一趟。 - -**[00:32:29] 发言人 0**:我觉得因为毕竟你中了一个理工,因为这个标不小,对吧? - -**[00:32:36] 发言人 0**:那你如果他以后还有些其他什么技术客户搞1搞,那你说他如果持续的以后有些什么合作,这个项目里面的一些应该他有没有扩容,我就各级这项目里面的每个层面有没有扩容做。 - -**[00:32:50] 发言人 0**:其实都是可以的。 - -**[00:32:55] 发言人 0**:就有点远,太远了。 - -**[00:32:57] 发言人 3**:天远地多远? - -**[00:32:58] 发言人 3**:去宁夏才2个小时才重新出发,飞机才2个小时,早上一班,我们都可以赶快吃到宁夏吃早餐。 - -**[00:33:07] 发言人 2**:上。 - -**[00:33:22] 发言人 3**:八验收的可能性,你分开了有点难度。 - -**[00:33:40] 发言人 2**:你公司不开公司你不能分开。 - -**[00:33:42] 发言人 3**:你分开了,我们承诺产品。 - -**[00:33:44] 发言人 0**:会比你人工。 - -**[00:33:45] 发言人 6**:生意强很多,我们同时反馈还是很强。 - -**[00:33:48] 发言人 3**:只有把这块拿到我们手里,我们来做这个。 - -**[00:33:51] 发言人 3**:你说是人的小基层太远了。 - -**[00:33:53] 发言人 0**:他除非把他当时如果把云桌面给我,我还有点当时云桌面都拿不到。 - -**[00:33:58] 发言人 0**:因为他们现在为什么当时为什。 - -**[00:34:02] 发言人 2**:么那边的价格。 - -**[00:34:03] 发言人 5**:原是没有,他是在原来的。 - -**[00:34:06] 发言人 2**:学校来。 - -**[00:34:07] 发言人 0**:是原来下来的也有多少,当时飞这就是未台。 - -**[00:34:13] 发言人 5**:不是他他服务器都已经用。 - -**[00:34:16] 发言人 2**:到现场了,当时买有卫。 - -**[00:34:19] 发言人 2**:对。 - -**[00:34:20] 发言人 5**:就是难做对。 - -**[00:34:22] 发言人 6**:回去都做好了。 - -**[00:34:25] 发言人 0**:你们琢磨,看有什么机会好吧。 - -**[00:34:27] 发言人 0**:因为这个因为你现在中国大项目不容易,就把它叫什么呢? - -**[00:34:30] 发言人 0**:价值最大化,利益最大化是吧? - -**[00:34:32] 发言人 0**:然后那个就是延展,看怎么延展。 - -**[00:34:34] 发言人 0**:我觉得如果有可能我们的人能上一点,咱就做一点好吧,你就算清账呗,反正自己能算得清账,对吧? - -**[00:34:45] 发言人 0**:别亏,是吧? - -**[00:34:48] 发言人 5**:然后上周的话是更新了四个博客,然这周的话因为已经那个数,我们现在也有自己的办法,我们这周开始我。 - -**[00:34:59] 发言人 0**:们就这个数字,我觉得就是我有自己有算力对吧? - -**[00:35:04] 发言人 0**:你用的是开源的是吧? - -**[00:35:06] 发言人 0**:吴信。 - -**[00:35:07] 发言人 8**:不是,就是我们自己做哒搭的编排器。 - -**[00:35:09] 发言人 0**:我知道那模型应该是哪模型。 - -**[00:35:12] 发言人 8**:就是用的那个本地的本地模型。 - -**[00:35:14] 发言人 0**:就开本地模型,没有用那个,那你开源的模型你都可以多做,我觉得这个可以。 - -**[00:35:21] 发言人 0**:我觉得你们想一想,数字人道确实是一个产品,我觉这是百分之百的。 - -**[00:35:26] 发言人 0**:你给每个代表数做,每个代表给你1万块钱,他是会给你的你的代表书仅仅说给你个2万块钱,只要你给我宣传出去,比如说两万的代表出去得给你10万块钱,他都愿意。 - -**[00:35:37] 发言人 8**:我们再做几期把效果做出来。 - -**[00:35:39] 发言人 0**:我觉得可以取证。 - -**[00:35:41] 发言人 0**:因为华山不会给代表师经理做实践,华三他自己就是外包的对你如果做的好这个事儿,我觉得就这个产品,盛刚那天说的,坐在我旁边,坐在这个位置,盛刚说的话我是赞同的。 - -**[00:35:55] 发言人 0**:你家江浙人是有有有脑子的。 - -**[00:35:59] 发言人 0**:所这个数字能做好的话,我们给省代做,跟代表这经理做,给代表处做,那是有机会的。 - -**[00:36:06] 发言人 0**:你你小爽我说你看到我的数字人我只要按照我我我我我给你个就是我有个团队? - -**[00:36:12] 发言人 0**:我给你按照你的要求给你说多少期,对吧? - -**[00:36:15] 发言人 0**:一年包年他可能愿意的,因为他我操他这数字能做的,你给他看看你做的多好啊。 - -**[00:36:22] 发言人 0**:他说我看到我操做那么好,说白了只要于老板给我多点两个赞,当然以后就只要老板给我多点两个赞,我操我就值,对不对? - -**[00:36:32] 发言人 0**:对他就是形象,我者数字人是有价值的。 - -**[00:36:37] 发言人 0**:包括那省代,你看那省代怎么做的,都都都都很都都很一般,除非你找个小漂亮小妹妹,一般也不是不那么好找。 - -**[00:36:45] 发言人 0**:所以我觉得数字人这里面是有机会的。 - -**[00:36:48] 发言人 0**:我们的人一方面我们自己,一方面我们是找一些什么,就是去上课也罢,或者跟跟一些同僚去合作。 - -**[00:36:57] 发言人 0**:因为做数字人公司很多并不是我们会比别人做的好,只是我们可能关系会好一些。 - -**[00:37:03] 发言人 0**:因为毕竟是集团自己内部的关系公司。 - -**[00:37:06] 发言人 0**:之前给别人赚还不如给我做,对不对? - -**[00:37:09] 发言人 0**:那有可能代表着经理说他说得要做,或者给他亲戚,他旁边没那么多人,或者就是给下面一个让一个销售办,那销售再就中间赚个钱,在一层一层赚个钱,最后拿出那给代表经理的时候,他妈的那个12 15万是吧? - -**[00:37:24] 发言人 0**:可能最后成本是5万,我操他妈的每个人在里面倒个鸡毛。 - -**[00:37:28] 发言人 3**:所以还有一种方式,杨好,如果喜欢的是会一个月安排一个主管过来找你签服务费,给续点费,给我续点费。 - -**[00:37:37] 发言人 3**:对,你杨好也可以,今天让我甘西续点费,明天让那个谁吕小龙续点费。 - -**[00:37:44] 发言人 0**:而且还算的业绩,我这个可可写经。 - -**[00:37:46] 发言人 0**:所以我觉得数字人包括就么我就可以做,而且数字人就是今天早上我觉什么都发生变化。 - -**[00:37:54] 发言人 0**:你看高频交易量化高频交易我们都知道会很牛逼是吧? - -**[00:37:59] 发言人 0**:它高频对,就越是高频的越有就越趋势是高频的就会就会越牛逼。 - -**[00:38:05] 发言人 0**:你说原来发新闻可能一个月发一条是吧? - -**[00:38:08] 发言人 0**:新闻联播非要到晚上七点,那你现在可能每个小时都会有,对不对? - -**[00:38:13] 发言人 0**:因为参与了原来成本高,原来你新闻联播要减一天减几天,他要这样排排排一天一天排下去是吧? - -**[00:38:22] 发言人 0**:他只能一天播一次,你让新闻联播搞成12.1个,晚上一个,他不好搞,他有时候他只能搞一个,对吧? - -**[00:38:29] 发言人 0**:所以现在你让他每1个小时搞一个都可以。 - -**[00:38:33] 发言人 0**:所以我觉得这种趋势,就这股票交易也是你趋定于他妈的秒级交易的。 - -**[00:38:39] 发言人 0**:又厉害了,就趋近于晚上。 - -**[00:38:41] 发言人 0**:刘静我们下了班,你晚上这些他妈的还在那耗电,那就厉害了。 - -**[00:38:47] 发言人 0**:所以我觉得那个是方向,就是原来不是高频的,以后可能会走向高行。 - -**[00:38:53] 发言人 0**:因为有AI存在,所以像这种数字人这种东西,我还是你句话,我觉得一个月100条根本就不算了,那就升到那来给我整100条多了,能不能20到30条? - -**[00:39:05] 发言人 0**:你看,你随着你AI出来,你你你就从早到晚开始造,我操你总有人看到的。 - -**[00:39:11] 发言人 3**:你看到以后,你从你看总那两条是吧? - -**[00:39:14] 发言人 3**:点个赞。 - -**[00:39:16] 发言人 0**:他。 - -**[00:39:17] 发言人 3**:有。 - -**[00:39:19] 发言人 0**:奇一点,他的个就跟什么,原来我们销单是不是? - -**[00:39:46] 发言人 0**:他就是那个A时代,就是现在的A时代的一个高频,对不对? - -**[00:39:50] 发言人 0**:因为别人不知道高频,别人说我要做的东西要复杂,他我我要简单高频好吧。 - -**[00:39:56] 发言人 0**:刘姐,我这数字人,这个事你们下来交你,你也多参与。 - -**[00:40:01] 发言人 0**:我们有个理念,就要把事情做简单。 - -**[00:40:03] 发言人 0**:昨天中午我给你开个会,还是我告诉你个小秘密,你还没给我,我告诉你一个小秘密,后面三句话,三句半不说了,就简单。 - -**[00:40:13] 发言人 0**:你每天就这么烧,不用那么复杂。 - -**[00:40:15] 发言人 0**:告诉你一个小秘密,开什要告诉你个小秘密,那小姑娘对不对? - -**[00:40:20] 发言人 0**:你还没给我,就是简单高,简单高。 - -**[00:40:32] 发言人 0**:你看那版广告,最近的世界杯的广告,还有把罗纳尔都贴出来那么恶心的广告。 - -**[00:40:38] 发言人 0**:A参与什么喝水就喝外星人,我操那他妈的啥广告,但是照料他就反正就是他妈的就这个广告。 - -**[00:40:45] 发言人 0**:因为人家一眼都记住罗纳尔都是外星人,然后这两个一结合,管你啥东西,反正他就记住。 - -**[00:40:54] 发言人 5**:我试了一下,就是我看一下。 - -**[00:40:56] 发言人 3**:发了这么多评论的好少。 - -**[00:40:59] 发言人 3**:那谁那你还得用评论。 - -**[00:41:00] 发言人 0**:你先去这那底。 - -**[00:41:02] 发言人 3**:但无所谓,不可能也不行。 - -**[00:41:04] 发言人 0**:你一会评论,有些人我可能会去评论这东西是没人评论,评论。 - -**[00:41:09] 发言人 5**:就我昨天这个我见朋友说的这儿,就是我昨天做那个就是我给我们家小朋友做了一个像皮克斯的那个数字动画,一分半钟,全自动的。 - -**[00:41:24] 发言人 5**:我从最开始写我们到最后整个做出来大概就花了一个半小时。 - -**[00:41:29] 发言人 5**:然后我看了一下在C档市场所烧的个api的价格的话,大概是花了20。 - -**[00:41:36] 发言人 5**:他因为他那个很准,大概花了25、26块钱,他就可以把一个一分半钟的,大概接近两分钟这样的一个做法全自动。 - -**[00:41:47] 发言人 5**:就说明的话就是说你说的这个就是这个视频的高频的话,现在已经已经已经完。 - -**[00:41:54] 发言人 0**:全可以做得到,最好是本地部署模型,因为实际档次还是贵的。 - -**[00:41:59] 发言人 5**:对对对对。 - -**[00:42:00] 发言人 0**:但是本地的,就是你你看现在很多人都在,我也同时他退休了没事干,每天发,但是他都是钱。 - -**[00:42:07] 发言人 0**:对,因为个人操作是钱。 - -**[00:42:09] 发言人 0**:但是我们如果有一个模型,我们毕竟这还有什么几百批的算力的的,但是几百G的算我也有。 - -**[00:42:16] 发言人 5**:就是他可能做了一种,就做数字可能没有问题,但是做那种可能就类似于像。 - -**[00:42:23] 发言人 0**:电影这个。 - -**[00:42:24] 发言人 0**:我知道那那那个那个那个不是我们的,想反正那个做不到太难,因为短那个那个太难了。 - -**[00:42:33] 发言人 3**:新华三说他们有生态,专门是运作运营给彭古、澎古等地。 - -**[00:42:42] 发言人 5**:上海上午的的那就。 - -**[00:42:43] 发言人 0**:是运营那些短期的团队。 - -**[00:42:46] 发言人 0**:他们就是我觉得像那种,你比如说C档这种这么高级的视频,我觉得未来会产生于哪里呢? - -**[00:42:54] 发言人 0**:你比如如果企要有他专业是做那个短距的,那边角料帮你做点,因为他这个脱贫也多,边角料帮你做点那种他就流出来了,他是吧? - -**[00:43:04] 发言人 0**:他就这么流出来了,但是让我们去做这个就是他的算力空的时,让我们去做点长视频,我觉得我们还是挺难的。 - -**[00:43:12] 发言人 0**:因为你做长视频如果用C档,我觉得就不是我们的方向。 - -**[00:43:16] 发言人 0**:因为这个事情我觉得我们的方向就是数字,还是面向于企业简单的数字。 - -**[00:43:23] 发言人 0**:自己不算利,然后这个简单一些,然后就比别人讲们,因为这个东西可能名字要比别人好看一点就行了。 - -**[00:43:33] 发言人 3**:好像是想用住这个生态,卖他的那个土文小镇,意思是说各按渠道南区委感兴趣就是把算力给建起来,他把这个团队拿过来,他这个算力专门做这个短短句的生态。 - -**[00:43:47] 发言人 0**:这是短的,要你那算,你相当于我给你找个下家了,我叫完以后给你找个下家来买,但光是短。 - -**[00:43:55] 发言人 3**:他不找一个,他找多少个,反正是他说他他他完说跟南安区类似。 - -**[00:44:02] 发言人 0**:你畅你你你比如像那种哪种的可以,完了你说他那个如果像这种他他那个那那种小程区太小了,你比如我找这隔壁电影制片厂,隔壁电影制造厂和我同力小队一起联合在你这儿。 - -**[00:44:14] 发言人 0**:那那那你愿意,你说我找了,你说我找了个游击队,我操那人家觉得你那游击队一个你你你我建起来花了十个亿。 - -**[00:44:21] 发言人 3**:他妈的给运营只花了只给赚了1000万。 - -**[00:44:24] 发言人 0**:你找了个游击队来,你那个游击队才多少人? - -**[00:44:27] 发言人 0**:我觉得他那个铜力小镇在旁边的生态,那必须是一个必须得一个团。 - -**[00:44:32] 发言人 3**:队来协做数据中心的。 - -**[00:44:34] 发言人 2**:阿里阿公就这么说。 - -**[00:44:35] 发言人 0**:就跟那万达商场一样。 - -**[00:44:37] 发言人 0**:万达商场为什么能跟万达商场我了我建好商场以后,老太太睡觉什么那玩。 - -**[00:44:44] 发言人 2**:尔法知道什么都进来了。 - -**[00:44:46] 发言人 0**:我我我有一套名单,我一见他们都过来,然后我带着他们的联盟,我带着我们的合作的五个案例,他们都过来。 - -**[00:44:53] 发言人 0**:那这样是可以的是吧? - -**[00:44:54] 发言人 0**:那万达的你你你你你你你有本事,你你从经有一个你的算下面也有老太太水饺,你有什么什么儿童童车,你有什么电影院,你有一大堆东西,你有这个吗? - -**[00:45:06] 发言人 0**:你没有,你就是找了一个是不够的。 - -**[00:45:08] 发言人 0**:有,但是未来确实是你要真的这个我说的我打这个比方,我觉得非常好。 - -**[00:45:13] 发言人 0**:就是你如果你能把算理解好,就跟万达商场一样,万达商场的模式你学不学会? - -**[00:45:18] 发言人 0**:你要学的会,你那个土利小镇你就可以,你学不会还是样板。 - -**[00:45:24] 发言人 0**:我觉得样板的意思,5万达第一个我为什么我为啥我念林你牛逼,那么多人做商业,为啥他做桥就是样板的意义。 - -**[00:45:33] 发言人 0**:这王健林是属于东北人里面比较牛逼的。 - -**[00:45:36] 发言人 6**:但是四川人我认识四他比较牛逼。 - -**[00:45:38] 发言人 0**:因为我觉得工业的人的他比较牛逼。 - -**[00:45:41] 发言人 0**:他确实因为。 - -**[00:45:42] 发言人 3**:他他整个商业模式。 - -**[00:45:44] 发言人 0**:可能华那个生态弱,他那个商业是早,他自己不是说华能想到这个办法能做起来的。 - -**[00:45:50] 发言人 0**:我觉得王里确实高手中的高手,真的那肯也绝对厉害。 - -**[00:45:54] 发言人 0**:那不是一般人去的。 - -**[00:45:58] 发言人 5**:然后那个无人机项目的话,就是南的一网土飞这个项目。 - -**[00:46:03] 发言人 5**:他们下等上目之后去见过南这个一把手,去见那个他们也明确说了,就是难以动力,明确的预算为下达推向上涨。 - -**[00:46:16] 发言人 5**:就是现在核心还是这个钱从哪出。 - -**[00:46:22] 发言人 0**:南就是去。 - -**[00:46:24] 发言人 5**:那个。 - -**[00:46:25] 发言人 2**:最的。 - -**[00:46:27] 发言人 2**:徐。 - -**[00:46:28] 发言人 0**:们,我操,我觉得升官发财他妈的不是大家都他这个动力应该是吧? - -**[00:46:49] 发言人 0**:应该大家都这是一个动力,这应该是所有人都趋势趋向于赶快换新书记,谁在阻拦? - -**[00:46:57] 发言人 0**:现在就是。 - -**[00:46:58] 发言人 2**:四等没,现在就重新你委会了的,市委会不了的,他们换一把手。 - -**[00:47:09] 发言人 2**:公安不是市长,我是说书记,书记不是应该袁家军他们那个市。 - -**[00:47:16] 发言人 8**:市长市常委,市长常委常委同意的。 - -**[00:47:19] 发言人 0**:好像常委就开不了了,常委现在找了三常委,副书记现在是找三个仓品,少三个仓品,还有几个场品,七个仓位剩4,那四个排,那不能干事了,我操。 - -**[00:47:32] 发言人 0**:因为这些事情其实肯定是。 - -**[00:47:34] 发言人 7**:请的连连正常的晋升都行。 - -**[00:47:37] 发言人 3**:不是,不仅仅是这书记,我朋友在那,我怀疑妈的,我朋友在说家政可能压力在公安。 - -**[00:47:44] 发言人 3**:张明江从跳舞之前,那些调令都已经送到市区了,现在都现在全部暂停。 - -**[00:47:51] 发言人 3**:我觉得那那那那个书记,他就从一个区县调到主城,全部暂停这个事儿。 - -**[00:47:56] 发言人 0**:就说明这种工作效率不,你是说这种工作效率其实很麻烦,非常就说程很大的。 - -**[00:48:06] 发言人 5**:他也为有可能是他甚至所有人他就不符合组织的。 - -**[00:48:13] 发言人 3**:个四个人。 - -**[00:48:14] 发言人 2**:或者说投国。 - -**[00:48:15] 发言人 3**:家要求,两个反两个国家要求。 - -**[00:48:19] 发言人 3**:对,不满上周不举优优优活动必出走转转。 - -**[00:48:24] 发言人 3**:上东一中在搞优湖活动,就像是食茶之类的对,喝喝水湖湖水湖那,他们内部叫优湖行动,其实就是每袁书记带着剩五。 - -**[00:48:37] 发言人 0**:余的班子。 - -**[00:48:38] 发言人 3**:每个地方去叫油湖。 - -**[00:48:40] 发言人 3**:这个就我煤房里边镇治煤房里边有抛,但是说事现在我压力挺大的,我就一直盯着。 - -**[00:48:50] 发言人 6**:离子,所有的应该从。 - -**[00:48:52] 发言人 3**:那个谁,两江新区的公安局局长也没认命。 - -**[00:48:57] 发言人 0**:前面也对,因为这个叫什么呢? - -**[00:49:01] 发言人 0**:这个就是就定的越少,政府的那个叫抓手就越小,市场的经济就越强,是吧? - -**[00:49:07] 发言人 0**:就是越是人家市场经济,西方市场经济越小,政府那现在咱们也走向小政府是吧,抓了享受活子,也对他妈的多多一个人上来,他又要贪,他妈的又要造项目,那项目不造,我们也少花点钱。 - -**[00:49:23] 发言人 0**:家印象我们这几看我少一个人,那少花点钱又少花点钱。 - -**[00:49:29] 发言人 0**:一个初户至少得一个亿,自己得挣一个亿,一个挣厅他妈至少得5000万。 - -**[00:49:37] 发言人 2**:我少发了。 - -**[00:49:38] 发言人 0**:这么一个正厅,我们就少他妈的我认为少信车文哥至少就少他至少少拿他。 - -**[00:49:47] 发言人 2**:少拿5000万. - -**[00:49:48] 发言人 0**:对不对? - -**[00:49:49] 发言人 0**:我心里也开心,这也对我这对百可能心里就少几个。 - -**[00:49:55] 发言人 2**:那少就少万。 - -**[00:49:57] 发言人 0**:就跟那个谁。 - -**[00:49:58] 发言人 2**:一手。 - -**[00:49:59] 发言人 3**:抓不就完了吗? - -**[00:50:00] 发言人 0**:就跟那个就跟原来拍的那个电影一样,那个谁拍的那个拍的。 - -**[00:50:06] 发言人 3**:那个什么城,我们鹅城是吧? - -**[00:50:09] 发言人 0**:鹅城又换领导,子弹百个导就拿一个一走,你说咋整? - -**[00:50:14] 发言人 0**:你说你说这个你说这个还不如,因为他钱部的标配就是一个亿的话,标配5000万,那就就正常。 - -**[00:50:23] 发言人 0**:就是你如果说是查,平均下来肯定有,那就查不查你的问题,我想。 - -**[00:50:28] 发言人 6**:一个。 - -**[00:50:30] 发言人 0**:项目对我操狠了,我那天我跟我。 - -**[00:50:44] 发言人 8**:说一。 - -**[00:50:46] 发言人 6**:问。 - -**[00:50:47] 发言人 0**:那荣他可能觉得他他都到政府了,他会我拿两个亿。 - -**[00:50:53] 发言人 0**:他妈的他他不能跟父部同为伍的。 - -**[00:50:57] 发言人 6**:他不能低不。 - -**[00:51:22] 发言人 0**:平均下来腹部一个亿挣取5000万,我觉得差不多差不多就认不了。 - -**[00:51:27] 发言人 2**:那三亿。 - -**[00:51:29] 发言人 0**:就这么赚的,我操。 - -**[00:51:30] 发言人 0**:所以说少认命一个,你老百姓的话还是幸福一点。 - -**[00:51:34] 发言人 3**:我操。 - -**[00:51:34] 发言人 3**:那上次说豆花说的是假的那个彭彭彭彭丽彭彭建彭那个女的那个那个那个律师,他说那个胡和罗丽的是跟那个钱包一点关系没有,是另外的事,说是豆瓣送的是假的是吧? - -**[00:51:52] 发言人 3**:零说。 - -**[00:51:54] 发言人 0**:的,但是。 - -**[00:51:57] 发言人 3**:我觉得三。 - -**[00:52:01] 发言人 0**:元。 - -**[00:52:02] 发言人 6**:光电这。 - -**[00:52:05] 发言人 0**:个。 - -**[00:52:06] 发言人 2**:事应该。 - -**[00:52:08] 发言人 0**:是三安光。 - -**[00:52:12] 发言人 3**:电的假包假的。 - -**[00:52:16] 发言人 0**:但是我觉得U有可能是真的,因为这个东西新型犯罪这个东西百分之百有的。 - -**[00:52:22] 发言人 3**:那怕是个彭劲手里有可能有,但是那个东西是跟他哥有关,跟他哥哥说,他哥哥是个怎么说的,反正跟华他跟松华斯那华三董事长,这个跟他哥有,肯定是跟他哥有。 - -**[00:52:37] 发言人 3**:和你说一个亿的。 - -**[00:52:46] 发言人 0**:项目,不是我们认为在里面有水,他们自己都认为他妈的有人在里面赚了钱。 - -**[00:52:54] 发言人 0**:你说这都已经变成了他妈的谁也敢造项目,谁也敢做,是吧? - -**[00:53:01] 发言人 5**:继续我们这个M进的话也是上那叫自停云的。 - -**[00:53:05] 发言人 5**:现在自听云的话,上周也是讨论了这个化开始在在你这个。 - -**[00:53:10] 发言人 0**:知云就是这个这个这个主要是云动面子,就这个终端这个事儿,我觉得还是,你这个还是要把它简单化化,而且我们自己得用起来,如果自己用不起来了,拿着去得它挺软的操。 - -**[00:53:24] 发言人 0**:那上周他们那你买的那个你准备吗? - -**[00:53:29] 发言人 0**:买的那些的那。 - -**[00:53:32] 发言人 7**:个那个东西了吗? - -**[00:53:34] 发言人 7**:吗? - -**[00:53:34] 发言人 7**:摆摆那摆我的吗? - -**[00:53:37] 发言人 7**:还是和对,上周不是投了公包了几次,其实我觉得包括教育和医疗。 - -**[00:53:50] 发言人 7**:我这边就个简单说一下,我说找到一点感觉,就是好像我们在这几个场景都会用过这识的,也都会用到多元的数据采集。 - -**[00:54:01] 发言人 7**:其中一个原因就是公频,因为教育里面有课堂,医疗里面有听问诊,然后办公里面有会议,然后再加上知识库太大了。 - -**[00:54:12] 发言人 0**:知识库不容易形的产品知。 - -**[00:54:16] 发言人 7**:不是,它是一个基本环境,我们要把它和几个数据源结合起来,音频的,普通文件的,还有系统mp的,尽量做的标志化一点,三个行业都能用。 - -**[00:54:30] 发言人 7**:我觉得这条路应该是。 - -**[00:54:32] 发言人 0**:走得通的,我觉得我们要去推这个。 - -**[00:54:35] 发言人 0**:因为上位的悟空也看了一遍,就是word body。 - -**[00:54:38] 发言人 0**:你们下来也可以再找找,把word body叫过来看看。 - -**[00:54:42] 发言人 0**:我觉得我们要去做这条路。 - -**[00:54:45] 发言人 7**:其实挺难。 - -**[00:54:46] 发言人 7**:我们我们不做我们也不做悟空,我们还是做聚焦于聚焦一个AI实际场景落地的一个东西。 - -**[00:54:53] 发言人 0**:对你要做小,不是做大。 - -**[00:54:55] 发言人 7**:是做小,就是利用多元的数据汇聚,然后通过知识库呈现一个场景能力出来。 - -**[00:55:01] 发言人 7**:你们部署一个那个库。 - -**[00:55:03] 发言人 0**:咱叫知识库也可以叫什么也可以你们部署一个这个东西,是吧? - -**[00:55:08] 发言人 0**:这个东西整个部署是简单的,然后底下这个对。 - -**[00:55:12] 发言人 7**:那个费对,差不多就是这样。 - -**[00:55:14] 发言人 7**:我就我我突然觉得昨天那那天星期五会议开,我觉得到会议结束的时候,我再收集个会纪。 - -**[00:55:23] 发言人 7**:我在战助上来说,我说基本上把这个东西想通了,我就把这个东西画了。 - -**[00:55:28] 发言人 7**:画没画完,我觉得感觉是做得通的,这个东西对我们来说是比较合适的。 - -**[00:55:34] 发言人 7**:在三个行业,不是三个行业,普通办公不止一个行业用,就是办公、医疗、教育我觉得都能做出成熟的。 - -**[00:55:42] 发言人 0**:我觉得终端我觉得还是这样的,比如像这个就够,就这个也行。 - -**[00:55:47] 发言人 0**:要么然弄个二维码拍一下,一个灯将你去深圳里面看一下,拍一下亮就拍就完了。 - -**[00:55:54] 发言人 0**:不要屏幕你拍一下,就是一个二维码,你拍一下就停。 - -**[00:55:58] 发言人 0**:比如我们过来就跟那个儿童玩儿童玩的那个租的就是叫什么共享单车一样。 - -**[00:56:05] 发言人 0**:儿童玩的东西过来扫个码,用完自己把领走,甚至这个领走都不能。 - -**[00:56:10] 发言人 0**:如果是服务器上不存,更他妈牛逼,我操。 - -**[00:56:14] 发言人 3**:就他直接。 - -**[00:56:14] 发言人 3**:如果你是说。 - -**[00:56:23] 发言人 8**:来做,因为我们去年买的有,然后他本身带一个很小的屏,那个屏就拿它显示二维码就行。 - -**[00:56:30] 发言人 8**:还有就是那个录音时候的一个状态。 - -**[00:56:33] 发言人 3**:你干嘛要用个平静的下维码。 - -**[00:56:37] 发言人 0**:我都。 - -**[00:56:42] 发言人 2**:这32带吗? - -**[00:56:50] 发言人 7**:他带。 - -**[00:56:53] 发言人 0**:不带,他。 - -**[00:56:57] 发言人 8**:可自配成。 - -**[00:57:03] 发言人 0**:你拿来给我看看,你们研究员给我看好吧。 - -**[00:57:06] 发言人 5**:现在还有这个事情,上周我不是说拿了移动,就王春他们下面有一他给我打了好长时间电话,他就说因为他们现在在用那个试用。 - -**[00:57:17] 发言人 5**:他就跟我们说,他就跟我提了两点,他说第一个是他们如果出去找的话,一定要有一个硬,他如果不用硬件的话,他们转不了服。 - -**[00:57:26] 发言人 5**:他说我们对他说硬转服务这个事情对我来说是至关重要的。 - -**[00:57:31] 发言人 0**:所也就是说你我我理解的意思就是说如果这个硬件越大,他不转服钱越多。 - -**[00:57:38] 发言人 0**:不不不。 - -**[00:57:39] 发言人 5**:他是这么跟我说的,他说你们不要去做那种,我也跟我们现在这个硬件有什么什么功,他就会给我们的一个建议。 - -**[00:57:48] 发言人 5**:他说你们可以去做那种,就是因为会议室,他说政企一般都比较多,他说你可以去多一些点,但是成本比较低。 - -**[00:57:56] 发言人 5**:比如说一个会议室我给放三个点、四个点、五个点,他说你你你他说这个对客户来说是正常的。 - -**[00:58:04] 发言人 5**:他说他们现在任何一个会议室,他们只要去做会议电视,他说跟人家配终端都配一大堆。 - -**[00:58:12] 发言人 5**:他说你看那种政府开会或者什么一个两个,他说两个人正对面。 - -**[00:58:18] 发言人 0**:他放两个带着话。 - -**[00:58:20] 发言人 0**:这个东西能做那个吗? - -**[00:58:22] 发言人 0**:就说可以放做那个那个呃,叫什么跳线来着,叫叫什么技术外卖。 - -**[00:58:28] 发言人 0**:麦能通过麦连上以后串,取那个最好声音吗? - -**[00:58:35] 发言人 7**:麦克风一般最多的就。 - -**[00:58:40] 发言人 0**:3到4个,可以做外多了不? - -**[00:58:46] 发言人 0**:你3到4. - -**[00:58:48] 发言人 3**:个够了,我操。 - -**[00:58:51] 发言人 0**:你的桌子。 - -**[00:58:53] 发言人 7**:我的意思什。 - -**[00:58:56] 发言人 0**:么呢? - -**[00:58:57] 发言人 0**:你把。 - -**[00:58:58] 发言人 5**:这个你麦一个。 - -**[00:59:01] 发言人 0**:两个、三个加,就是你这个其实还是不行的,为啥? - -**[00:59:07] 发言人 0**:你主要其实最重要的是收音,你不是看你把你把它做反了,你做成一个他妈的你去看它干嘛,就是你做成这个或者比这小哒哒哒哒哒放四五个,就一个二维码,然后用完扫走,平时丢那你想用就扫。 - -**[00:59:23] 发言人 0**:而且这个东西我觉得还有一个确实是你你比如说那个比这个再小一点,我觉得这个就很好。 - -**[00:59:31] 发言人 0**:你你你你那个你比如说他们腾讯那个开会,那个那个开会他这个放那他们录音录到自己,因为他那个腾讯他为什么? - -**[00:59:39] 发言人 0**:因为云是阿里钉钉是录到他自己家里的去,对不对? - -**[00:59:43] 发言人 0**:那一般企业是没有家里云的,他们录到他自己这个公司里面录个是吧,那里面去我我觉得我觉得。 - -**[00:59:50] 发言人 5**:这种大小的就对,就是给他搞一堆,然后一个会议室里头放放。 - -**[00:59:55] 发言人 5**:因为他们现在那种,他只知道他们现在,他们现在政企去给人家布的那种和一个会议室里的那种死用设备。 - -**[01:00:02] 发言人 7**:要放很多个,但是有限的。 - -**[01:00:04] 发言人 7**:对,他们做一个无私先做死,这是你就是实际他。 - -**[01:00:08] 发言人 2**:们难道不是实消备那些钱不需要我们做,那是有些人不需要我们做。 - -**[01:00:13] 发言人 7**:他直接一点插到我们上面就完了。 - -**[01:00:15] 发言人 7**:你们研究就教你研究。 - -**[01:00:17] 发言人 0**:就话你们下来,你们反正你们每个人都可以研究,我就教你。 - -**[01:00:21] 发言人 0**:那你牵个头,你管这个就是叫什么? - -**[01:00:23] 发言人 0**:这个就是这个盒子,这种盒子如果带外形的,最好的就是这个无线,不要有线。 - -**[01:00:29] 发言人 0**:我觉得这个不行,这个他妈的,但是也没关系,因为我们有一版是吧? - -**[01:00:36] 发言人 0**:以后一定要去做这个高级的再手呗,如还如果到画面上。 - -**[01:00:40] 发言人 7**:好的,那我现在就是一拖三,那一个主的拖三个负的。 - -**[01:00:45] 发言人 7**:这个就是纯石英的,这纯石英的对,但是你要做的话,如果我们去把改了这个我觉得你的成本兜不住。 - -**[01:00:55] 发言人 7**:你无非就是把这个怎么把最终那个音频输入插到我们的终端上。 - -**[01:01:02] 发言人 5**:能结合。 - -**[01:01:02] 发言人 5**:对,对。 - -**[01:01:03] 发言人 7**:就是这啥意思? - -**[01:01:04] 发言人 7**:它有个接收器,接收器插插这插在我们的,比如说这个你看它最终是通过一个有线插在我们的一个终端上。 - -**[01:01:13] 发言人 7**:这个终端指是和笔记本,它它都相当于把音麦克风进行扩展,这个也一样,它有后你看有线的东西,这个U盘的。 - -**[01:01:21] 发言人 0**:东西相当于它带不带充电,它自己不带电。 - -**[01:01:25] 发言人 3**:肯定要带电电它怎么适应? - -**[01:01:27] 发言人 3**:里面肯定要带电,充电不这个就不带充电,它是有心的。 - -**[01:01:32] 发言人 3**:我就说我就说,我就是我看。 - -**[01:01:35] 发言人 8**:应该是要插一个供电的,我之前我跟重庆他们那边专门做这种会议实验的那个团队他们沟通过。 - -**[01:01:43] 发言人 8**:其实他们以前做企业,你知王帅他们以前做企业,一个比较好的这种一个会议这样的一个石音平,石音加设备加部署调试二十多瓦。 - -**[01:01:54] 发言人 8**:其实他们的意思就是说你就不用再做这一块了。 - -**[01:01:58] 发言人 8**:你后面你加个算力,把它的改造成智能化,是吧? - -**[01:02:03] 发言人 8**:就相当于把它升级了。 - -**[01:02:04] 发言人 8**:然后这个时候你里面你加个10万块钱,因为他以前可能已经花了。 - -**[01:02:09] 发言人 0**:现该有了你。 - -**[01:02:10] 发言人 0**:但是你如果做改造,你觉得这个里面有两个问题,就原来有的你要把它搞掉,为啥呢? - -**[01:02:17] 发言人 0**:原来有的它会带线那种,对不对? - -**[01:02:19] 发言人 0**:你现在肯定无限制趋势,你原来做了几年了是吧? - -**[01:02:23] 发言人 0**:我觉得要还是你你你不卖他妈的,那就你挣不了钱了,你给人家做个装修对吧,全力救了我操,那你挣啥钱? - -**[01:02:33] 发言人 8**:那一般来说那种企业他那种会议系统的话,它基本上还是是每个座位前面会有一个麦克发言的时候就是切到对。 - -**[01:02:44] 发言人 3**:切到他那种麦克。 - -**[01:02:47] 发言人 0**:不需要你改造你就改到主机上,那就这接上去接音频这个就果你前面有个叫什么面,有个就的个文字转语音的。 - -**[01:03:02] 发言人 0**:你这里面有点算力,那你就不一样,对是吧? - -**[01:03:06] 发言人 0**:对你盒子里面有点算力你就不一样。 - -**[01:03:09] 发言人 0**:你如果说你盒子里有点算力,然后带无线你就好很多。 - -**[01:03:14] 发言人 0**:你可能你就你你就你机会有打击,你就充电宝在这,你就机会也大。 - -**[01:03:19] 发言人 0**:你现在就把充电宝放进去是吧,你放个充电宝吧,然后那个可以录几个小时,然后带点小算粒,然后888钱充。 - -**[01:03:34] 发言人 0**:好,继续。 - -**[01:03:35] 发言人 0**:你东西弄完,每次在想这事的时候,他妈的。 - -**[01:03:39] 发言人 5**:然后最后一个就是那个数字助理和云桌面。 - -**[01:03:43] 发言人 5**:这个的话上周的话已经初步完成了这个财务的助理开发,本周的话我就和我们就开始在这个就是找一些试点,我来你们抓紧试点。 - -**[01:03:54] 发言人 0**:过你还有那们几个抓紧时间跑几次跑。 - -**[01:03:57] 发言人 5**:然后跑通了一个。 - -**[01:03:59] 发言人 5**:下周7月1号开始的话,我们就无纸化财务运作。 - -**[01:04:04] 发言人 5**:但这个我觉得到时候因为这里头有两点,第一个就是那个和模型。 - -**[01:04:11] 发言人 5**:因为上周纪哥说那个模型可能还就是上周我们讨论的是要和我们自己那个H 20那个模型算力结合,我们还是尽量的结合上去,以后我们报账的话,我们就用H 20就把这些东西,这是第一点。 - -**[01:04:31] 发言人 5**:然后第二点的话就是怎么和云桌面到底他们财务的那些员工,他们要不要把那个叫财务数字助理这个东西放到云桌面上面去,要不要先给他们看云桌面,这个好像我还没有完全调整进去。 - -**[01:04:50] 发言人 5**:全就最后一点,就比方说外面李小涵他们要不要放到。 - -**[01:04:58] 发言人 7**:路面上面去。 - -**[01:05:00] 发言人 0**:知道吗? - -**[01:05:01] 发言人 7**:把那那个你不是。 - -**[01:05:04] 发言人 0**:那天不是说了吗? - -**[01:05:06] 发言人 0**:那天把知库拿起来,不是你你那个笔记本的不笔记电脑。 - -**[01:05:13] 发言人 7**:那个端加控制方。 - -**[01:05:16] 发言人 7**:现在所有的人力还在做自体。 - -**[01:05:19] 发言人 5**:那就是那就是我们先不管云桌面,我们因为他不用云桌面,他就先把这个不管云桌面。 - -**[01:05:25] 发言人 0**:对他那电脑是没法用语桌面,那电脑它笔记本电脑就是做一个那个叫什么? - -**[01:05:31] 发言人 0**:我们可以做一个云桌面纳宝,我们叫我们可以叫你就你那个那个那个是吧? - -**[01:05:36] 发言人 0**:叫这种方式,如果能做好这个纳管就控制行为,能把这个做好,那我们就可以去做一个华智的财务了,就可以全部更换。 - -**[01:05:44] 发言人 0**:对我更希望你们做一款这个,因为笔记本电脑还是一个从来的小开的,要开的还是做那个。 - -**[01:05:52] 发言人 5**:也有几种方式,这个你不在,那个不在,就是你也可以装一个云乐片的客户端。 - -**[01:06:00] 发言人 5**:就是我平时我做这些事情的时候,我在我的电脑上,我要审核报销的时候,我就先登录到。 - -**[01:06:09] 发言人 0**:现在有服务器。 - -**[01:06:12] 发言人 7**:对对对,没资给他还是做拉管,那做拉。 - -**[01:06:18] 发言人 0**:管就简。 - -**[01:06:19] 发言人 7**:单一些。 - -**[01:06:20] 发言人 7**:但是华也会有资源,华智哪这么多资源的。 - -**[01:06:25] 发言人 5**:他这他400工让这两事就两个个接近事。 - -**[01:06:31] 发言人 5**:们把我的数字助理这件做起来了,这个我觉得是没有什么问题。 - -**[01:06:37] 发言人 5**:第二个是如果我们云桌面要和数字助理结合,那就我这个就相当于我必须要跑到这个场景里头去。 - -**[01:06:45] 发言人 0**:就是我我云端面的数字助理结合云我现在慢慢理解,那天说我用云动就是个工具,有它没它是吧? - -**[01:06:55] 发言人 0**:就是都可以,这是第一第二,如果我们要做叫中端大馆、数据大馆、农家大馆和这个蒜泥大馆的话,我觉得就是现在当前的我们这个包括文们和这个和这个华智这种,就笔记本电脑是常态是吧? - -**[01:07:13] 发言人 0**:大央企业他可能有一的变化,或者你学校的些特别要求。 - -**[01:07:17] 发言人 0**:这种常态情况下,你让他改造,你比如说他那财务让他改造,这个还是挺难的,就做胖终端,胖终端里面就是做这种取个娱乐面的名字。 - -**[01:07:27] 发言人 0**:但实际上是对电脑进行这个就纳我就纳我电脑,然后把电脑的所有行为给他管起来。 - -**[01:07:33] 发言人 0**:那在这种情况下,他电脑放了龙虾,那有数是吧? - -**[01:07:37] 发言人 0**:心里有数,我就得我就走是吧? - -**[01:07:39] 发言人 0**:只能走这个里。 - -**[01:07:41] 发言人 2**:那天聊了吗? - -**[01:07:42] 发言人 2**:好。 - -**[01:07:43] 发言人 0**:也可以,我们都因为你如果不专,也你如果不拿过中专的话,你怎么在中专上放不下? - -**[01:07:52] 发言人 7**:很很简单一个逻辑,因为现在存的么间已经一万多块钱一个点了,你再去推广未来到27年也有可能知。 - -**[01:08:03] 发言人 0**:道今年这个但纯的v di就是未来扩容,其实你你你找他过这个农家,我找他不一定跟你玩。 - -**[01:08:11] 发言人 0**:因为你就是一个你在纯的维碟上,你比如我去做龙虾。 - -**[01:08:16] 发言人 7**:做就可以可以做,只要它成本它受得了,他对你安全有极高的要求,那你在维di上做,我们内在架构,我如果按照内在架格来玩,无论V Y V di还是P C都可以玩。 - -**[01:08:30] 发言人 7**:我就是在pc要做拉广过后,把pc的那个。 - -**[01:08:33] 发言人 0**:我的意思就原来我没有那么多纯的老的微店用户,你们要做龙虾的话,我们有什么优势呢? - -**[01:08:41] 发言人 7**:就因为是有我的vi所以我去做龙虾就比较其实就是落地,你要把整套用起来,你看那个周,我在看那个移动的,你要把它用起来。 - -**[01:08:51] 发言人 7**:你后台得又算你,你得把这识户给布了,是吧? - -**[01:08:55] 发言人 7**:这些东西对一般的企来说不会去弄这个他不会弄的。 - -**[01:09:00] 发言人 7**:现在你只要把这个时间差。 - -**[01:09:02] 发言人 3**:我就把这个东西给我们。 - -**[01:09:04] 发言人 3**:在的是三四十万的正在用的客。 - -**[01:09:06] 发言人 0**:就是我这边走只能用去的龙虾交就可以了。 - -**[01:09:10] 发言人 0**:话大概就有这个逻辑。 - -**[01:09:15] 发言人 0**:如果老的那个如果老的微店用户如果要做龙虾,因为我是他的d的供应商,只有我是最方便的,或者说只有我如果要别人要龙虾,还得跟我再来谈。 - -**[01:09:30] 发言人 0**:那我的优势。 - -**[01:09:32] 发言人 7**:就是我们我们在做那套什么龙虾的时候,你本来就要涉及权限的一致性。 - -**[01:09:41] 发言人 7**:你权限的一致性你肯定要给我们的vdi的那个账号体系打通的。 - -**[01:09:46] 发言人 0**:这些本来就是门槛,就如果这个是在门槛哈那我们以后把这个vdi的这个叫vdi版的这个龙虾做了服器,龙虾做了服务器,沙盒龙虾做。 - -**[01:09:57] 发言人 7**:我觉是这个应该是机会。 - -**[01:09:59] 发言人 7**:其实我的想法是什么? - -**[01:10:01] 发言人 7**:因为还新华三在那天我们那个大架购,我仔细想一下,其实这个东西由我们来主导了,华那边就拿把那个全国对一对是吧? - -**[01:10:10] 发言人 7**:我把它当做一个我的模块了,我就这样玩了。 - -**[01:10:14] 发言人 7**:对,然后如果这样。 - -**[01:10:15] 发言人 3**:这也是对,那是不是我理解的,就我在现在30万新I的那个用户里面,我就去推GPU服。 - -**[01:10:24] 发言人 7**:务器加龙虾应用。 - -**[01:10:26] 发言人 3**:对,卖卖应用和服务器话,假如说是华三农村算命,华三农村。 - -**[01:10:32] 发言人 0**:那华三配合我们我们卖对,卖软,华三卖只我动力就能做。 - -**[01:10:39] 发言人 0**:如果不是我的V I。 - -**[01:10:41] 发言人 0**:我估计是应付也会被他控死,就不是我的名单。 - -**[01:10:44] 发言人 0**:那好了,你在上面做着做,我这就要给你做定制化,就改的很麻烦。 - -**[01:10:49] 发言人 0**:你最后我V d也用不了了,我他妈的人用不了了,对吧? - -**[01:10:53] 发言人 0**:所以这个事情如果在一起,我们天生的这个就好比什么什妈的就是内存条,那就是上天来的富贵。 - -**[01:11:01] 发言人 0**:你做一个你就把未来的智能化把它的起了。 - -**[01:11:06] 发言人 7**:而且我考虑由于这个vi的价格高昂,说实话我们尽早转型,尽早获利。 - -**[01:11:13] 发言人 7**:是真的,我不相信这个vdi这么高昂的价格,明年他们还能卖得上去。 - -**[01:11:19] 发言人 0**:除非真的v di是有v di场景。 - -**[01:11:22] 发言人 0**:对。 - -**[01:11:22] 发言人 7**:我知道我知道,我的意思说vdi释放出来的那是另外一个。 - -**[01:11:28] 发言人 0**:就是v di v di如果用户控住。 - -**[01:11:31] 发言人 0**:D这种这种形式,你其他的都不叫,我们可以这么说,其他都不能叫,只有d才是,所以你d这个场景,它天生的它就会有那个场景,就是那个场景他最多就变成什么呢? - -**[01:11:48] 发言人 0**:我就不要V D I. - -**[01:11:49] 发言人 7**:我就是争取那批左右摇摆。 - -**[01:11:52] 发言人 0**:你把那个纯镇化的那个场景门槛升高了,然后左右摇摆可能多一些是吧? - -**[01:11:58] 发言人 0**:但是左右摇摆的说实话左右摇摆的就刚才说的,如果我们在微店上做龙虾,那微店原来的老用户是5000人,我们可以慢慢去折磨他,你就慢慢的加加东西,也会他也会他也会扩容,对不对? - -**[01:12:15] 发言人 0**:你只要做成一个我们我们的销售马上就得了去你看你加西就不百百。 - -**[01:12:21] 发言人 0**:那另外你的用户了,你说你那就不是赚的,就是靠的你的家的能力,你家能力强,然后你再反过你的是能力,你再插一个那个,你再做一个那个桌,因为不是以为主。 - -**[01:12:36] 发言人 7**:而且除了它要扩容一个算力池以外,由于那个龙虾在那个如果它还是可厉害,龙虾在那个桌面上其实还是很好资源的。 - -**[01:12:47] 发言人 7**:你看我我我移动耗气虾,那那虾装了个程序过耗桌面资源。 - -**[01:13:00] 发言人 0**:耗终的资源。 - -**[01:13:03] 发言人 7**:还为什么呢? - -**[01:13:06] 发言人 7**:你耗他还是。 - -**[01:13:09] 发言人 0**:会耗一。 - -**[01:13:10] 发言人 7**:点的。 - -**[01:13:13] 发言人 0**:我看。 - -**[01:13:14] 发言人 7**:了一下内存。 - -**[01:13:17] 发言人 0**:至少桌桌。 - -**[01:13:20] 发言人 7**:你这么说,你一个微店I桌面一个用户,你给他分了,比如说四核8G内存给他,以前他都拿来办公用了,现在你他要在他那个桌面上去养殖龙虾,他会把八个G多在一个多G去。 - -**[01:13:34] 发言人 7**:那个资源还不小,一人一只龙虾就1 400个员工。 - -**[01:13:38] 发言人 0**:要多多耗500多G的行动。 - -**[01:13:40] 发言人 0**:我没听懂,你不是飞I就是你所有的程序都。 - -**[01:13:43] 发言人 7**:跑到服务器上面,那资源是分配给桌面的。 - -**[01:13:47] 发言人 0**:内存资源我知道还是有上的,在服务器的虚。 - -**[01:13:51] 发言人 7**:拟化这样就会。 - -**[01:13:52] 发言人 0**:消耗虚拟化资源。 - -**[01:13:54] 发言人 0**:对耗对,消耗服妻资源。 - -**[01:13:56] 发言人 7**:我觉那就消耗他说的是消。 - -**[01:13:58] 发言人 2**:耗终端资源。 - -**[01:13:59] 发言人 7**:桌面服球桌面个只。 - -**[01:14:01] 发言人 2**:是。 - -**[01:14:01] 发言人 7**:说那个桌面的虚拟化存。 - -**[01:14:04] 发言人 0**:所以才是消灭服务器上资源。 - -**[01:14:06] 发言人 0**:你服务器的桌面是吧? - -**[01:14:08] 发言人 0**:对。 - -**[01:14:08] 发言人 6**:就是你原来就是原来。 - -**[01:14:10] 发言人 3**:一台服务器有可能只是支持这个50个个. - -**[01:14:14] 发言人 7**:原来支持400个,现在就跑了龙虾后,400不够了,你要做无期之源,这样的话就可以。 - -**[01:14:20] 发言人 3**:多卖服务器。 - -**[01:14:21] 发言人 3**:我觉得我你我刚刚第一印象理解的是你装了无虾应用之后,你终端要重启。 - -**[01:14:26] 发言人 3**:终端现在配的太有的那个差太低了,没天补,你终端不会是。 - -**[01:14:31] 发言人 2**:不是没天补的? - -**[01:14:32] 发言人 2**:是啊。 - -**[01:14:32] 发言人 3**:那你就不会受影响了。 - -**[01:14:34] 发言人 3**:那你你你用这个能带来服务器的销售,华山供销更高兴,就是这个意思。 - -**[01:14:40] 发言人 2**:就是这个意思。 - -**[01:14:41] 发言人 2**:你要在今天除了刷机以外。 - -**[01:14:43] 发言人 7**:你的那个常规集群,你要控制。 - -**[01:14:45] 发言人 3**:你这样是加分线。 - -**[01:14:47] 发言人 3**:对你耗这些方。 - -**[01:14:48] 发言人 0**:式是加分量。 - -**[01:14:49] 发言人 0**:因为如果未来的融虾,但也有可能它不在,不是它的未来,可能它不在每一台。 - -**[01:14:54] 发言人 0**:如果是在这个什么上,他不会给每个用户用。 - -**[01:14:57] 发言人 2**:他就400个不会给每个人用。 - -**[01:14:59] 发言人 0**:如果400他不可能每一个用。 - -**[01:15:01] 发言人 7**:不会每个人都用。 - -**[01:15:03] 发言人 0**:他能个统一的在一起。 - -**[01:15:04] 发言人 0**:然后另外就笔记本为什么是一个人每个人一个呢? - -**[01:15:08] 发言人 0**:因为笔记本你闲散的,你这个资源的,你本闲置的,咱对不对? - -**[01:15:13] 发言人 0**:你在那个服务器上,你不可能是一个人的。 - -**[01:15:16] 发言人 0**:因为笔记本你本来你每天放这就闲散,你晚上你丢在那儿,你不用就不用了。 - -**[01:15:22] 发言人 0**:所以农家跑在你这闲天的,因为你晚上我本来插上泡点试电也没关系,反正这个东西,能不用就不那但是你那个就不一样了,你那个服务器上,你就你你如果服务器扩多了,我这个服务器的龙虾到底能不能做? - -**[01:15:38] 发言人 0**:我那休的,我觉还。 - -**[01:15:40] 发言人 5**:要研究好,那这个的话我们就先按胖端的模式。 - -**[01:15:45] 发言人 0**:我先把做起来。 - -**[01:15:47] 发言人 2**:就是这个好,行。 - -**[01:15:48] 发言人 5**:我这没有其他的。 - -**[01:15:51] 发言人 0**:就是我觉得一个是财务,二一是统一纳管的,法务人事我就可以并行的做。 - -**[01:15:57] 发言人 0**:然后就是把这些统一的把这些电脑就因为这些电脑我们是没有任何管理的。 - -**[01:16:04] 发言人 0**:那天说华智有没有管理,尤记去年你管你管过吗? - -**[01:16:08] 发言人 0**:就华智像他们财务电脑没管都没管理。 - -**[01:16:11] 发言人 7**:就那个产品和研发管的的对吧? - -**[01:16:13] 发言人 0**:你其实这些说实话都是巨大的问题,都很大。 - -**[01:16:18] 发言人 0**:你一个小公司说实话那个财务电脑如果如果跟人家说,你买个300块钱的东西,500块钱或1000块人民币。 - -**[01:16:26] 发言人 3**:财务管理太规范了。 - -**[01:16:28] 发言人 3**:那华智的vn好像在网vpn难道。 - -**[01:16:30] 发言人 7**:不一些管理? - -**[01:16:32] 发言人 7**:我说的是电脑。 - -**[01:16:33] 发言人 0**:他N管他那个电脑。 - -**[01:16:35] 发言人 7**:他随时拿走电脑,他笔以拿回家。 - -**[01:16:40] 发言人 7**:他只管接入。 - -**[01:16:41] 发言人 7**:对他只管接入,只管系统接入,他还走了一篇内网,但是他笔记本本身他没管,但是研发和产品的笔记本是管着的,研发和产品如果你电脑往U盘拷一个东西,没有走那个申报流程。 - -**[01:16:56] 发言人 0**:他就会罚卡。 - -**[01:16:58] 发言人 0**:所以我建直接的,我们如果要搞那个产品管理,是把笔记本电脑关起来是吧? - -**[01:17:04] 发言人 0**:那些说应该纳起来,你做一个胖的那作做一个我们研究院的一种方式。 - -**[01:17:10] 发言人 7**:上周的话,宇豪这边他和和金分那边国会师团队,反正一直在沟通和集院的对接里的。 - -**[01:17:20] 发言人 7**:宇豪今天周一到周三,他就脱展去进行无人机培训了。 - -**[01:17:25] 发言人 0**:我想代理商拿能拿到我们这边。 - -**[01:17:28] 发言人 5**:目前看起来他今天既然那天那个人跟我说,他说既然让我们培,他刚让我们培训的话,用还是比较大的。 - -**[01:17:37] 发言人 0**:好,这是一个。 - -**[01:17:39] 发言人 0**:另外我再问一个,就是吴天华说的那个那个公司叫啥来着? - -**[01:17:45] 发言人 0**:一般是吧? - -**[01:17:46] 发言人 0**:那个一般是么? - -**[01:17:48] 发言人 5**:一般我去的他们说就我问的那个就是才他说他们他说至少到现在为止,他们出货说的。 - -**[01:17:57] 发言人 2**:非常中线材。 - -**[01:17:58] 发言人 6**:就看他们出货就是大概三个地方,但是一个是那个总龙坡有三台,这个怎么看的的? - -**[01:18:06] 发言人 6**:然后他说他们说3338,他那种哪个区有相对没看新单。 - -**[01:18:10] 发言人 0**:但他那个有一个逻辑,我觉得我也是赞同的。 - -**[01:18:15] 发言人 0**:如果他就看那个违停,看完以后分成。 - -**[01:18:44] 发言人 6**:生产。 - -**[01:18:46] 发言人 0**:最关。 - -**[01:18:47] 发言人 6**:用是用。 - -**[01:18:50] 发言人 0**:然后你每年给是吧? - -**[01:18:57] 发言人 0**:每年给不你记这个好事,觉的他的。 - -**[01:19:08] 发言人 3**:母亲话说的好像也不是用的。 - -**[01:19:11] 发言人 3**:他是说一台机器他分成一天给他跑300张照片,是600张照片。 - -**[01:19:16] 发言人 3**:你就抓微停,你抓完之后就相当于他罚梦款的,问罚款的他也他就可以。 - -**[01:19:22] 发言人 0**:来这个。 - -**[01:19:22] 发言人 3**:他也不是申请罚梦款的,他应该也是买服务相于是你买我买我抓拍的服务。 - -**[01:19:29] 发言人 0**:他他我业的服务他指抓多少,他说的这个有一个这么个意思,就是大家这这是表达方式,就是买了我的东西,比如每天抓800个是吧? - -**[01:19:40] 发言人 0**:你反正你有这个钱的,你有这个钱你就可以买这个东西。 - -**[01:19:44] 发言人 3**:然后他有个前置条件是旺三的这个抓拍的这个东及要拿到无锡所区测试才能所成交警的证据。 - -**[01:19:52] 发言人 3**:你们在无锡所检测出来的照片做不了交警取证证据我不知道,等他说的是这两。 - -**[01:19:58] 发言人 6**:我等会汇报,可能是等会问上次交警跟他们那个公安交警。 - -**[01:20:03] 发言人 6**:其实我们我们无人机他们能定义的采集,我们不管是违停采集或者是执法采集都不是,那这个就程他们看来他大概没什么问题了,加上但是现在需要我们落实两个事,他一个事我们要怎么去跟对接,必须要是主对法治科学把政策,他们现在根据不知道怎么操作事。 - -**[01:20:23] 发言人 6**:因为我们现在是那种采集完到了我们执发库里面,把数据推到执发库就完了。 - -**[01:20:29] 发言人 0**:其实我们采钱全都采集。 - -**[01:20:31] 发言人 2**:他概分离不样子分不出现。 - -**[01:20:33] 发言人 2**:是。 - -**[01:20:33] 发言人 0**:那分。 - -**[01:20:35] 发言人 2**:局赶快去问他。 - -**[01:20:40] 发言人 0**:就是跟。 - -**[01:20:43] 发言人 6**:视频。 - -**[01:20:45] 发言人 0**:那。 - -**[01:20:45] 发言人 6**:我们就问他,我那分局他现在的传。 - -**[01:21:14] 发言人 0**:就是但凡脑子上过读过书的,如果他罚没,如果他多拍两张,他就多收不了钱。 - -**[01:21:20] 发言人 0**:那都这个东西还要去这人传人,这病毒。 - -**[01:21:24] 发言人 0**:如果这个事儿是可行的,早每个人都装作。 - -**[01:21:27] 发言人 3**:就是原来什么在九龙不到光山科技部背后的那个代言人,就是那个在九龙坡里联合三家运营商跟我们一起做实验室的人。 - -**[01:21:38] 发言人 3**:你确就是我现在九龙坡的时候,这个运营商不搞了个实验室吗? - -**[01:21:43] 发言人 3**:那背后那个牵头人就是万三科技的。 - -**[01:21:46] 发言人 0**:那说明那说明这个事并不是病毒,不是是吧? - -**[01:21:50] 发言人 6**:但事际里被就分成的事情肯定是。 - -**[01:21:53] 发言人 0**:表面是不分成,不分层他能不能就那病毒就是一旦碰到复制了。 - -**[01:22:00] 发言人 0**:它不能复制,它还是有问题。 - -**[01:22:06] 发言人 0**:行。 - -**[01:22:06] 发言人 4**:继我们能能把那个飞,能把那个无人机拿下来。 - -**[01:22:11] 发言人 0**:就是进步。 - -**[01:22:12] 发言人 0**:我觉得反正这个事是一步一来的,每一步都是他妈的,不管一小步一大步,我操都得往前走。 - -**[01:22:20] 发言人 7**:是那个时候终端这里都有个事儿,就是对我们是在对华润和云南的两个测试项目。 - -**[01:22:30] 发言人 7**:然后实际上就是发现一个问题,就终端这个飞机在这插拔的时候会黑屏。 - -**[01:22:38] 发言人 7**:以前之前我们以为是硬件的问题,结果复现了一下,发现是华山的那个终端一里面一个小模块的。 - -**[01:22:47] 发言人 2**:软件问题。 - -**[01:22:47] 发言人 0**:它那个软。 - -**[01:22:48] 发言人 2**:件叫space os。 - -**[01:22:49] 发言人 7**:对,然后我们那X本身也用了它里面的一个小组件,所以说造成了个通病。 - -**[01:22:55] 发言人 7**:然后说驻厂那个人不来了,他收到了西安荣耀的offer,给了他35K他不。 - -**[01:23:03] 发言人 0**:太慢了。 - -**[01:23:04] 发言人 3**:就是饿操了。 - -**[01:23:06] 发言人 4**:张卓和。 - -**[01:23:07] 发言人 3**:戴世界还等着他。 - -**[01:23:10] 发言人 0**:你太慢了。 - -**[01:23:10] 发言人 7**:就是他不来。 - -**[01:23:12] 发言人 7**:然后这个事情只能我们这尽量去沟通了,要把这里面其其实其实看来你。 - -**[01:23:20] 发言人 0**:们这事儿太慢了,你们的你们如果他确定了,说实话我都可以打电话,我跟他打他妈跟他聊他妈聊聊个一小时的。 - -**[01:23:29] 发言人 7**:我觉得不可以打动他。 - -**[01:23:31] 发言人 0**:我们是闲聊了,我们但是聊你们聊完了。 - -**[01:23:34] 发言人 3**:你们不老是没没确定下来。 - -**[01:23:37] 发言人 3**:昨天上周五云南那个人也接到了两个offer. - -**[01:23:42] 发言人 2**:我害怕他跳了。 - -**[01:23:43] 发言人 3**:周五周下午紧急跟他聊了一个周一他一大早还没我容开开到345,你看张志波和戴世。 - -**[01:23:53] 发言人 0**:平一直还在保他有其你还有关系,你去了干他去了干一段时。 - -**[01:23:59] 发言人 3**:间干不走了是一样的,而且张志波就说。 - -**[01:24:03] 发言人 3**:那这个进来之后,功能再分配。 - -**[01:24:06] 发言人 0**:能个反上人。 - -**[01:24:07] 发言人 7**:跟刚达的荣耀的就华为华为就是就华为荣耀手机。 - -**[01:24:15] 发言人 2**:然后。 - -**[01:24:17] 发言人 5**:本。 - -**[01:24:18] 发言人 0**:他都。 - -**[01:24:20] 发言人 7**:已接们荣耀那给打话,那三五K他法拒35K终他八。 - -**[01:24:43] 发言人 0**:他。 - -**[01:24:44] 发言人 0**:那我们再找,你们再找,再跟他们说好吧。 - -**[01:24:48] 发言人 7**:这样那个谁主这。 - -**[01:24:49] 发言人 0**:个就是相当。 - -**[01:24:50] 发言人 7**:于我们可能要这要改,要他其实基础系统就是5820,有点太老了,这个5820可能是一切问题的根源,要把它更新到24去。 - -**[01:25:01] 发言人 7**:对,然后这个只能我们提给新华三。 - -**[01:25:04] 发言人 0**:我们一起来,你抓紧去找那个院找一个研发。 - -**[01:25:08] 发言人 0**:我过段时间我可能我过段。 - -**[01:25:10] 发言人 7**:时间七初我还是想他就今年年底之前必须把这个系统。 - -**[01:25:14] 发言人 0**:说去吧。 - -**[01:25:16] 发言人 0**:到我找点再我。 - -**[01:25:18] 发言人 3**:才知道我们那东还底层上面没。 - -**[01:25:23] 发言人 8**:有全智眼,我怎么关联倒是非常他是用的那个操作系统,当时用的那个,因为华山它里面还那个终端上的。 - -**[01:25:37] 发言人 0**:那个终端必须要做这个。 - -**[01:25:40] 发言人 0**:对,也不一定。 - -**[01:25:41] 发言人 7**:只会用它这个比较简单一点。 - -**[01:25:43] 发言人 7**:总种再去开发的话,其实做了二次工作,所以说干脆这次重构的时候。 - -**[01:25:49] 发言人 2**:核新华三一起。 - -**[01:25:50] 发言人 7**:对,什么叫核心? - -**[01:25:51] 发言人 7**:没必要去两次发明轮子。 - -**[01:25:54] 发言人 7**:就是这么说,就是终端上有个小的操作系统,华山也在做,然后我们再去做。 - -**[01:25:59] 发言人 0**:一遍意义不大。 - -**[01:26:01] 发言人 3**:可不可以不要去操作系统,不是有定吗? - -**[01:26:04] 发言人 3**:读一遍、抄遍、写遍。 - -**[01:26:05] 发言人 0**:不要是操作系统你独立出来的,你自己做一个操作系统。 - -**[01:26:10] 发言人 0**:对。 - -**[01:26:11] 发言人 8**:图不是这样的主他上面我们当时其实评估过这个事儿,我们如果拿无邦图其实也能做。 - -**[01:26:18] 发言人 8**:但是它整个的那个系统的大小裁剪,就是这方面它有很多细节工作。 - -**[01:26:26] 发言人 8**:还有它里面当时那个华山坞小潘,他们当时拿A全部读过一遍,他们里面当时改了很多包,我们当时就这些包到底干什么的,其实当时其里也不清楚。 - -**[01:26:39] 发言人 8**:所以说从这个比较安全的角度来想,我们当时就没有自己去重新开一个光伏。 - -**[01:26:46] 发言人 8**:而且如果我们吴邦图来做的话,还也还存在一个以后也存在一个,这个叫什么来着? - -**[01:26:54] 发言人 8**:这个不服。 - -**[01:26:55] 发言人 0**:那就是我们以后要做,比如做龙虾,做这个中。 - -**[01:27:01] 发言人 8**:间大碗还得用它的。 - -**[01:27:03] 发言人 0**:来跟没有。 - -**[01:27:05] 发言人 8**:那没有关系,你这不就是用它,只是在启动的阶。 - -**[01:27:10] 发言人 0**:段动阶段启。 - -**[01:27:12] 发言人 8**:动阶段动阶段用,启动阶段在用。 - -**[01:27:16] 发言人 3**:假如以后跟华商不合作的原因。 - -**[01:27:19] 发言人 7**:那就自接重构过,就是工作量的问题。 - -**[01:27:21] 发言人 7**:我们其实还能用。 - -**[01:27:23] 发言人 3**:这个水频时是就不能用了,可以。 - -**[01:27:26] 发言人 8**:是这样的,徐校这个东西它就只是一个华山它深度定制的一个,它跟后台没关。 - -**[01:27:33] 发言人 0**:就独立的一个东西。 - -**[01:27:36] 发言人 0**:你们如果说把它用来打通了,如果他license就后他还个免费件。 - -**[01:27:41] 发言人 8**:你们再拿走他这个他这个也没有license。 - -**[01:27:44] 发言人 8**:他其实就是他们。 - -**[01:27:45] 发言人 7**:在当时在湖的基础上做了些改制裁剪裁剪了裁的就是尽量不消耗资源。 - -**[01:27:52] 发言人 0**:他也没有用,不用。 - -**[01:27:53] 发言人 0**:然后你如果让华为给他改完以后,你拿走我们拿走我们也可以用是吧? - -**[01:27:59] 发言人 7**:对,可以永用下去,简单是成为一个安装包式。 - -**[01:28:02] 发言人 7**:这就是现但是现在我们不并不知道是改了些什么。 - -**[01:28:06] 发言人 7**:如果我们要去改,就要不断的是去去碰着。 - -**[01:28:10] 发言人 7**:因为它毕竟是设备了很多硬件的。 - -**[01:28:13] 发言人 7**:如果我们要去改,首先你得。 - -**[01:28:16] 发言人 2**:一个去录。 - -**[01:28:18] 发言人 7**:现,这就是当时说的云桌面中间的个适配问题。 - -**[01:28:22] 发言人 7**:你光是一个终端,这个适配工作量就极大,你不是A把它洗完就完了,这天一配个装上。 - -**[01:28:30] 发言人 8**:就适配件主要他当时跟华以前那些硬件都是全部绑死。 - -**[01:28:36] 发言人 8**:Ok测试的我们其实。 - -**[01:28:41] 发言人 7**:都在上面已经改过了。 - -**[01:28:46] 发言人 7**:他不是,但是我。 - -**[01:28:50] 发言人 8**:笔记本电脑。 - -**[01:28:53] 发言人 7**:能启动。 - -**[01:28:55] 发言人 7**:如果笔记本电脑过们们当提出的驱华包包包包包们没东西的,紫光计算机,但是你要启动这个东西也有办法启动困难。 - -**[01:29:15] 发言人 0**:现在有很多,这个就是插一个U盘启动,你其实你那个套路那的能不能改成插入盘,不能也变成朋友版。 - -**[01:29:24] 发言人 0**:我说笔记本。 - -**[01:29:29] 发言人 0**:插的U盘就。 - -**[01:29:31] 发言人 5**:是你相当于是把那个操作系统到这个里。 - -**[01:29:37] 发言人 0**:就是的。 - -**[01:29:38] 发言人 7**:胖胖猪胖猪有这个系统并不是为了启动,这个可能理解错了。 - -**[01:29:45] 发言人 7**:胖猪有这个系统是为了他终端建立和管理平台之间的联系。 - -**[01:29:51] 发言人 7**:对,管理平台去给他下发镜像。 - -**[01:29:54] 发言人 7**:对,但是那笔记本的行候,如果笔记本你插这个。 - -**[01:29:59] 发言人 0**:插个U盘也是建立和管理平台联系。 - -**[01:30:02] 发言人 8**:其实也可以。 - -**[01:30:04] 发言人 7**:不是也可以他这个人意。 - -**[01:30:08] 发言人 3**:思联网上就是自然而然。 - -**[01:30:10] 发言人 0**:是把这镜像弄。 - -**[01:30:12] 发言人 0**:我的意思是你你以后你要做,你要跟笔记本做东。 - -**[01:30:16] 发言人 0**:因为现在华智我特别那华智用,但你又说华的服务器多华上,那如果用华笔记本用上,那我就怎么才能华智能,你比我笔记插一个引导拍卖启动,在这个过程中间建立了跟这个后台的联系。 - -**[01:30:33] 发言人 0**:然后我再在这个叫什么? - -**[01:30:35] 发言人 0**:我相当于用我的胖子,他他就变成了我的胖子官。 - -**[01:30:39] 发言人 0**:那我不就我后面用一台高端用一台服务器或者用台高端的。 - -**[01:30:43] 发言人 0**:比如说一一台一台工作量或者一台高端C我就能管理这些电脑,不是这。 - -**[01:30:49] 发言人 2**:个意思。 - -**[01:30:53] 发言人 7**:这个一下午要想一想你的技术是能实现,但是这样有没有什么? - -**[01:30:57] 发言人 0**:因为你笔记本电脑你可以老说你不是云,那你笔记本电脑跟我的云动面啥关系呢? - -**[01:31:04] 发言人 0**:笔记本电脑就是说我做的纳管是,但是如果我用一个U盘启动,那就更高级。 - -**[01:31:13] 发言人 2**:每个人发个K. - -**[01:31:15] 发言人 0**:扩展那K就牛逼了。 - -**[01:31:18] 发言人 0**:我我软件我。 - -**[01:31:20] 发言人 3**:软件化发个K然后我K就可以关起来。 - -**[01:31:26] 发言人 0**:然后以把整个龙虾来,那多好点,就公安那网钥人只插上了统,因为我这我我跟公安的财务一样,行驶电脑都不是你的,是我买的,你都不能用,除了工作以外啥都都不能用,你开进去都得把这个插上才能开,要不然我给你买电脑干嘛? - -**[01:31:47] 发言人 0**:你的财务我给你买个电脑干嘛? - -**[01:31:49] 发言人 0**:插上了是我的,把我拔掉就是你的不行,给公安不一样,不行。 - -**[01:31:53] 发言人 0**:对,拔掉。 - -**[01:31:53] 发言人 0**:你自己家里有电脑,我用我的拔掉,插上去才能用。 - -**[01:31:57] 发言人 0**:拔掉用不了,因为我人家还有龙虾,还有所有数据,知道吧? - -**[01:32:02] 发言人 0**:那电脑是我买的,对不对? - -**[01:32:05] 发言人 0**:那不是你你你你这好,你要你说领导我想用公司给他电脑做自己家的事。 - -**[01:32:15] 发言人 7**:你觉得逻辑图吗? - -**[01:32:17] 发言人 0**:不同,你说我不同,你就解决了。 - -**[01:32:21] 发言人 0**:我桌面我觉得你们着个准好吧,因为你这个放上去,你才有可能在后面再做个小机。 - -**[01:32:28] 发言人 0**:又跟next x也通了,跟nex通了,跟敌人也通了完了以后你包括龙虾管理,你都可以通过它。 - -**[01:32:36] 发言人 0**:因为这个外的一个U盘,一个U盘带个引导盘,带个操系,现在U盘大的,你弄个T的操没问题,弄个你弄个这个这个你弄个什么Fla弄, 弄个什么32G66G的,8G的你插上,那这个就有意思了。 - -**[01:32:52] 发言人 0**:这个我如果如果配合,但是我你们可以连我这交易,你现在可以研究,你比联想大量的出工作。 - -**[01:32:58] 发言人 0**:笔记本老板有没有这个要求,说我必须得插到U盘,我才能够这个笔记本他才能用,然后插这个U盘,那我都在我介绍下不插U盘都用不了,有没有这个要求? - -**[01:33:09] 发言人 0**:如果有这个要求,我觉得这事可能是可以的。 - -**[01:33:12] 发言人 5**:有机会的那有讲的就是本来他是这个云盘用来监管,然后再把我们的云桌面和相关的项。 - -**[01:33:18] 发言人 5**:因为我们那。 - -**[01:33:19] 发言人 0**:时候玩P都知道,你插个U盘做引导是吧,你因为你电脑坏了,你可以用它引导引导。 - -**[01:33:25] 发言人 0**:其实镜像在U盘上,你直接插U盘就重新恢复,对不对? - -**[01:33:29] 发言人 0**:你这肯定是可以的,对不对? - -**[01:33:32] 发言人 0**:我我现在我我我想对苹果电脑也是可以,苹果电脑也是可以直接一个U盘直接往拿走,那你这个是可以的,好吧,我觉得你们琢磨一下刘静,好,继续好。 - -**[01:33:49] 发言人 7**:那个终端自体云其实我想的是这样,智体云我们以后就作为A云桌面的一个数据来源。 - -**[01:33:58] 发言人 7**:等这周,不是这周,今天我把一些架构完善了,我们再沟通,结果越思路上慢慢开始清晰,到是候我们一起就上桌,把这个云桌面。 - -**[01:34:12] 发言人 0**:盒子东。 - -**[01:34:46] 发言人 0**:我操,那变成胖路段了,你以后就不用去改那些胖路段了,因为我差我还。 - -**[01:34:53] 发言人 3**:要去十倍那么多胖。 - -**[01:34:55] 发言人 0**:那干嘛不要了? - -**[01:34:57] 发言人 5**:我用它启动了,到这里。 - -**[01:34:59] 发言人 7**:插一插子,不。 - -**[01:35:01] 发言人 0**:你插我就卖。 - -**[01:35:03] 发言人 7**:这个东西。 - -**[01:35:04] 发言人 7**:那个个那个就要和本U盘里是,但是你就要和这配了。 - -**[01:35:11] 发言人 7**:对一个道理。 - -**[01:35:12] 发言人 3**:你存在U盘不。 - -**[01:35:14] 发言人 7**:是存在是一样的。 - -**[01:35:16] 发言人 7**:因为你以前就个软件。 - -**[01:35:20] 发言人 0**:还这可能。 - -**[01:35:21] 发言人 7**:好一一样样一样的一样的。 - -**[01:35:23] 发言人 7**:你想一下,你现在无非是把那个软件装在pc的硬盘上,以后你是装在U盘上,实际上是一样的,就是启动下从本地这个硬盘改成了U盘,其他都不变。 - -**[01:35:35] 发言人 7**:我就不赚那个钱了。 - -**[01:35:37] 发言人 0**:说实话你要我要连着这一坨一坨的它去卖,我库存也大我这个十倍了以后我的库存越小,我就不赚那个钱了。 - -**[01:35:46] 发言人 3**:也就是说笔记本不是我们的。 - -**[01:35:48] 发言人 0**:跟库存没,也就是说他跟胖端用胖子端最好的办法。 - -**[01:35:52] 发言人 0**:因为端我在里面做了改造以后,胖端我就封死了。 - -**[01:35:56] 发言人 7**:就跟那个C不一样,我就额外只不过我们的角个形了,就以跟基本我们那体系里面我没对,就意思这意思就是为了解决我们今天做财务。 - -**[01:36:08] 发言人 0**:这样我我我你讲我就是解决华智的问题。 - -**[01:36:11] 发言人 0**:如果我不能华智钱,我操他妈你华智这么大那么好的公司,你都了,你钱你出,你挣不了,你挣不了人家钱,你说这话你只能挣点些央企那买个的都是好都都是好大户。 - -**[01:36:24] 发言人 0**:我现在慢慢知道了,买v di都是好好户,都是他妈的央企。 - -**[01:36:28] 发言人 5**:家。 - -**[01:36:30] 发言人 0**:家当很田,一般的学也不买校。 - -**[01:36:45] 发言人 7**:是主要是运维。 - -**[01:36:48] 发言人 2**:对,买都是豪。 - -**[01:36:50] 发言人 0**:横的,就是买那个的,实际上挂了个娱。 - -**[01:36:56] 发言人 7**:乐面的名字。 - -**[01:36:58] 发言人 5**:就是那管。 - -**[01:37:00] 发言人 5**:对。 - -**[01:37:00] 发言人 0**:像我们这种是大笔记,你插可解,如果就了这么大,里面就有cpu pu了。 - -**[01:37:10] 发言人 2**:你自插上去也可以。 - -**[01:37:12] 发言人 0**:这个是我意思不是太。 - -**[01:37:14] 发言人 7**:那个是插的显示器上,你插在手机都可着。 - -**[01:37:18] 发言人 2**:你这个这么大有可能都可以。 - -**[01:37:21] 发言人 3**:直接做I的终端。 - -**[01:37:22] 发言人 0**:不是我是是我的意思是那越越好,我龙虾有的理面。 - -**[01:37:27] 发言人 5**:我只是想就像亚马逊的那个。 - -**[01:37:33] 发言人 0**:可以。 - -**[01:37:33] 发言人 2**:他插到碟上还觉得。 - -**[01:37:36] 发言人 7**:那个电视,那个小孩的学习电脑就是这么大一。 - -**[01:37:41] 发言人 0**:个插在那个电视机hd麦上,所以就是这个意思。 - -**[01:37:47] 发言人 0**:对,所以这个意思我们换解决笔本,因为他没屏,他只解决那个问题。 - -**[01:37:53] 发言人 0**:他实际上他为什么要电脑? - -**[01:37:55] 发言人 0**:他为你说的很对他不管做的再大,他解决了一个问题就是。 - -**[01:38:00] 发言人 5**:对,然后我们以后还可以把如果把员工的助理也。 - -**[01:38:06] 发言人 0**:扔到这里。 - -**[01:38:07] 发言人 0**:对,可以,插上就了插所我觉得真是一个形态,我觉得我们可以想一想,好吧,既然可以管控插上安装你电脑,插电脑说这实不行,脑全插。 - -**[01:38:22] 发言人 7**:那想看就那就是这就是这个云那面纸巾架构,我也把这点想想加进去想一想,好吧。 - -**[01:38:29] 发言人 7**:我们初步的想法就是上次开完会,这个办公、教育、医疗,其实我们有一点共同性,就是后端知识库加上我们的这个数据源,比如语音文件和mp这套架构。 - -**[01:38:42] 发言人 7**:我觉得在这三个场景当中都能满足一些需求来构建我们这个A云桌面。 - -**[01:38:49] 发言人 7**:所以今天把这个架构完善了,我们到时候再讨论一下。 - -**[01:38:53] 发言人 7**:我觉得我们可以往这个方向去走,这样的话解决了我们教育和医疗的常化问题。 - -**[01:39:00] 发言人 7**:而觉确实好像还真能用这个东西。 - -**[01:39:04] 发言人 7**:好吧,然后那个终端这里有点事儿,就是上周我说了一下3300,我们不是找申腾在低价的时候备了2000台,500台。 - -**[01:39:16] 发言人 7**:如果以低于成本价共合新华三,这样会使我们的我们采新华3 tb价,稍微有有一点优势一点。 - -**[01:39:27] 发言人 7**:但是他就必须要求我们同时走1500台的汇智牌的合同,然后和法务和刘晓琴,把采购管理办法,沟通了一下。 - -**[01:39:39] 发言人 7**:然后今天下午两建华给他们开个会,最终沟通一下,可能要和在公司过会,采购管理办法修改了,我就让申腾去填短名单的入会材料,然后我们才能和生腾走这1500台的这个具。 - -**[01:39:54] 发言人 0**:体你跟申哥聊完,你们聊完了以后,可以我就走了。 - -**[01:39:57] 发言人 0**:好的,可就不能有库存。 - -**[01:40:00] 发言人 7**:这个还好,因为那个价格确实。 - -**[01:40:02] 发言人 0**:给的比较低,当时都有库存的,有了库存他妈的就压力就大,就有2000台华三两,最后整一堆库存的。 - -**[01:40:09] 发言人 7**:有2000台500台去. - -**[01:40:10] 发言人 5**:其实最后就是被扣库。 - -**[01:40:12] 发言人 3**:那个1100最后怎么处理。 - -**[01:40:14] 发言人 7**:就不要了,110是真没办法用了,必须。 - -**[01:40:17] 发言人 2**:涛。 - -**[01:40:21] 发言人 0**:涛涛。 - -**[01:40:29] 发言人 7**:果可00库说是,1700的卖出去,我知道,但是1700卖出去的个量很少,我一起步要做1000台,1000台02年是1000台起步,1000台我拿进来,如果1300拿进来卖不掉,那就砸手里了。 - -**[01:41:05] 发言人 7**:因为我实际上不挂新华三的成本是非常低的,600不到我去拿新华三品牌标7300,这个太吓人了。 - -**[01:41:16] 发言人 2**:那新华三必他。 - -**[01:41:18] 发言人 3**:必须1100. - -**[01:41:19] 发言人 7**:价格太高了。 - -**[01:41:21] 发言人 0**:那个C110. - -**[01:41:23] 发言人 3**:卖完了,但是我。 - -**[01:41:25] 发言人 7**:新采C110,他们咨询过来的物料成本到我们这就接近三台。 - -**[01:41:33] 发言人 7**:但是如果不把新华三,我们自同汇智牌不到600。 - -**[01:41:40] 发言人 7**:对,这差距太大,差距太大,我就不敢下单了。 - -**[01:41:43] 发言人 0**:所以这个事能不能一起解决了,我就找那个。 - -**[01:41:46] 发言人 0**:因为我跟张涛说,既然我们如果能欧进来,那我们就马上把1100就也一起改了。 - -**[01:41:52] 发言人 7**:那就马上那那那就马上解决了。 - -**[01:41:54] 发言人 7**:这样的话其实我给他呗。 - -**[01:41:57] 发言人 0**:那这个事这样我下午见。 - -**[01:41:58] 发言人 0**:因为这个事,其实就是他们担心的质量问题和利润问题,对不对? - -**[01:42:03] 发言人 0**:对,现在的C1100,我说我用同样的东西,但是只要不通过智慧走,对我就可以便宜一半给你。 - -**[01:42:10] 发言人 0**:对,然后我然后你该挣你的钱你挣你的钱,但是对我们整个市场都有好处? - -**[01:42:15] 发言人 0**:被人家卡脖子了,被志伟卡脖子了。 - -**[01:42:18] 发言人 0**:我那我那那这样我跟张导武说一下,我下午刚好,因为于总上周五已经回复了咱们邮件给张导。 - -**[01:42:25] 发言人 7**:快速解决。 - -**[01:42:26] 发言人 7**:他有个很现实的问题,我们是最多一家在用那种内存的厂家,你申请福利的早就用了,你不用。 - -**[01:42:34] 发言人 0**:那你根本就不用。 - -**[01:42:36] 发言人 7**:什么内存,就是那个那个黑片内存。 - -**[01:42:41] 发言人 5**:相现在那就。 - -**[01:42:42] 发言人 0**:我们不用。 - -**[01:42:43] 发言人 2**:对。 - -**[01:42:44] 发言人 0**:我们只要不用智的,我们就能便宜,就这个意思,我们自己来找华三,他不敢用,但是但是不但是有个问题,那将还那存同。 - -**[01:42:59] 发言人 7**:样他他如果。 - -**[01:43:01] 发言人 0**:他说找的那行,那他打部点。 - -**[01:43:05] 发言人 7**:他会问这个泵子的编码,但是他应该追溯不到这个料是怎么样。 - -**[01:43:13] 发言人 0**:行,好好,我跟他看怎么走最简单。 - -**[01:43:16] 发言人 7**:但是我就最简单,他可以测一轮,但是你不要问我要怎么了。 - -**[01:43:20] 发言人 2**:就是我找张涛,我下午的话出。 - -**[01:43:23] 发言人 7**:但是存储他们还是用的新的存储,他们不敢用,究的我也不敢用。 - -**[01:43:28] 发言人 0**:对存客更所谓,我现跟那个存储人。 - -**[01:43:31] 发言人 5**:我现在家里的电脑对手我都用。 - -**[01:43:33] 发言人 7**:对,对,内存这么受命,测的过就。 - -**[01:43:37] 发言人 5**:测的内存寿命很长。 - -**[01:43:40] 发言人 7**:其他就是刚刚本来想说的那个认认增收问题,刚刚已经发过了,已经发给供应商,已经发过了,刚刚正正开会的时候,已经集团发过了,已经发给那个认证证书,那个认证机构。 - -**[01:43:57] 发言人 7**:其他没什么,其他就是上周我们要实现什么实现你说的那个授的一些上报,包括一些提取。 - -**[01:44:08] 发言人 7**:外面这有点点小改,到时我商量。 - -**[01:44:11] 发言人 0**:可要力快点弄,快点弄好下。 - -**[01:44:14] 发言人 0**:我们个AI相应的AI提高。 - -**[01:44:17] 发言人 0**:上周开五开会的时候,就是AI提高生产力,AI提高我们自己的生产。 - -**[01:44:27] 发言人 6**:那不管上的什么情况,证店张德根他们跟法院联系,他是就在签一文书判决书。 - -**[01:44:38] 发言人 6**:邯郸那个判决书就是律师还会联上法院法官,他他打分那个时间。 - -**[01:44:46] 发言人 6**:上周中局就提出了解决方案,就制作解决方案,律师也在整个材料。 - -**[01:44:51] 发言人 6**:然后我们过了之这个根据答复。 - -**[01:44:54] 发言人 5**:现在根据。 - -**[01:44:55] 发言人 6**:那个公安是就是四。 - -**[01:44:58] 发言人 2**:346个7认同式的。 - -**[01:45:01] 发言人 6**:这个上原来不是每个第一年101000个月。 - -**[01:45:06] 发言人 0**:在你说律师一份调解材。 - -**[01:45:08] 发言人 6**:料什么意思,就是让律师那个个答复材料,然后我们这个觉方可以,再个证据说噻,我们去做答复,然后我们就让他们做的。 - -**[01:45:21] 发言人 3**:现在是第一年30万,第二年40万,第每个月每个月对,每月。 - -**[01:45:27] 发言人 3**:对。 - -**[01:45:28] 发言人 0**:一年300万,第二年三百。 - -**[01:45:30] 发言人 0**:但是他没他如果他一个月不付,就有问题了,马上就报了。 - -**[01:45:37] 发言人 0**:对。 - -**[01:45:38] 发言人 6**:我。 - -**[01:45:41] 发言人 0**:觉得你这。 - -**[01:45:56] 发言人 2**:不,他不要财富了。 - -**[01:45:57] 发言人 3**:他活亏都走不通。 - -**[01:45:59] 发言人 3**:他如果是不他如果是这样。 - -**[01:46:01] 发言人 0**:应该是只有进入他的。 - -**[01:46:03] 发言人 3**:那第一他第一年第二年是几兑的? - -**[01:46:06] 发言人 6**:国安预算问你每个月付款拿。 - -**[01:46:08] 发言人 3**:但是他第一年30万那种往外挤,肯定是挤他自己内部预算。 - -**[01:46:14] 发言人 0**:不是350低,不是30万,那一年十二个月是吧,360万,360万。 - -**[01:46:20] 发言人 0**:那怎么。 - -**[01:46:21] 发言人 3**:一个月付5,那就把什么买食堂的菜,买什么那个。 - -**[01:46:27] 发言人 0**:你的意思是每。 - -**[01:46:29] 发言人 2**:个月就是那个预算,每个月证明。 - -**[01:46:32] 发言人 0**:财政开给他,然后他每个月给他得每个月给两。 - -**[01:46:36] 发言人 2**:之后老大走球了。 - -**[01:46:38] 发言人 3**:他就不认了,这也对。 - -**[01:46:40] 发言人 0**:因为啥呢? - -**[01:46:41] 发言人 0**:他每个月起,他不起都会有人利用。 - -**[01:46:44] 发言人 0**:对他进入他那个什么,反正就是。 - -**[01:46:48] 发言人 6**:每个月支付。 - -**[01:46:49] 发言人 3**:他们都都每个限每个月支付是不限制。 - -**[01:46:52] 发言人 3**:但是他是肯定起自己的预算往外付钱,就没有财政部把他们的项目。 - -**[01:46:58] 发言人 6**:他这边预算怎么来,现在我们也跑虑研究它。 - -**[01:47:02] 发言人 0**:你的那都财政就时处理条,我们看吧。 - -**[01:47:05] 发言人 3**:这是。 - -**[01:47:06] 发言人 6**:邯郸什么邯郸? - -**[01:47:08] 发言人 3**:不是。 - -**[01:47:08] 发言人 2**:这是邯郸。 - -**[01:47:10] 发言人 6**:九龙坡。 - -**[01:47:11] 发言人 6**:这个就是锦宝,也是今年也是分期把我钱200万的. - -**[01:47:18] 发言人 0**:他一次一次文化。 - -**[01:47:21] 发言人 6**:明白。 - -**[01:47:21] 发言人 0**:然后就明再说。 - -**[01:47:24] 发言人 6**:烟台是缺乏化,然后一般在的合同就是陈建,他签合同部门还没确定,因为一直跟上次打复。 - -**[01:47:33] 发言人 0**:我是本着的确定,他们就不。 - -**[01:47:36] 发言人 6**:盾建那个事,盾剑他诉了股东已经七二三开庭。 - -**[01:47:41] 发言人 0**:房,然后盾建下午是。 - -**[01:47:43] 发言人 6**:也是这个是已判了,不是已经。 - -**[01:47:46] 发言人 2**:二次开庭了,就等的是七月底。 - -**[01:47:49] 发言人 2**:好。 - -**[01:47:50] 发言人 6**:然后五年那上常务会的事情,上次出了问题,就是因财政批复这个预算未明确,非分用的非收益资金和财政拨款金的比例没说清楚,然后被政府把那个生活材料打了。 - -**[01:48:08] 发言人 6**:然后现在是非税金额,这个是2800万,是两部组成,一部分是分局拿他们的非税收入来给我们支付一部分财政拨款。 - -**[01:48:19] 发言人 6**:但是当时财政只批复了一句,这个财政由财政公安,非税收入和财政拨款。 - -**[01:48:26] 发言人 6**:那个不是听。 - -**[01:48:27] 发言人 3**:说2800万,还有分局搞非税收入。 - -**[01:48:30] 发言人 6**:我上次不是说过,3500说的这个分局说过的意思就是一半财政拨款一半非税,非税也处理,3500当时总计预算是一年3500. - -**[01:48:41] 发言人 3**:上哪个非税收入发布款。 - -**[01:48:43] 发言人 6**:发布款分局就发,不。 - -**[01:48:45] 发言人 3**:他们可以不进来。 - -**[01:48:46] 发言人 6**:才这是他接受下来。 - -**[01:48:48] 发言人 6**:那不交了,那财政协不叫财政,交了,这部分钱应该是。 - -**[01:48:53] 发言人 2**:非税收入,是直接进财政委。 - -**[01:48:56] 发言人 3**:又不进公安。 - -**[01:48:57] 发言人 6**:这个得打包拨款过来了。 - -**[01:48:59] 发言人 0**:现在进来财政拿出来。 - -**[01:49:01] 发言人 6**:这你们他打包的每年都非收入,他那财政公安有拿要有要的那个审批权利。 - -**[01:49:11] 发言人 6**:所以这个特质他。 - -**[01:49:12] 发言人 3**:们那你局去找另外一个杜局。 - -**[01:49:14] 发言人 2**:对,他们你去到。 - -**[01:49:16] 发言人 3**:李局还是你去找杜局,防导。 - -**[01:49:31] 发言人 6**:们果。 - -**[01:49:40] 发言人 0**:烦。 - -**[01:49:45] 发言人 6**:那无人机刚才说了,就是让我们那总。 - -**[01:49:48] 发言人 0**:反正我有一个底,但如果别人如果弄不下来,我这卖30,我不认可,我就是卖没钱,确实没钱,公公也知道你律师可。 - -**[01:49:59] 发言人 6**:无论建就是我们现在就是我就要想办法去找组织什么政策,相关政策落实好。 - -**[01:50:04] 发言人 0**:你找,去抓紧找你跟吴建。 - -**[01:50:08] 发言人 6**:华一起去找。 - -**[01:50:10] 发言人 6**:然后滞纳金他都已经撤诉了,上个大发,其他两个项目都还是有定照照按部就班。 - -**[01:50:21] 发言人 6**:这在目前的情况下没大的问。 - -**[01:50:24] 发言人 2**:你们看这。 - -**[01:50:25] 发言人 0**:你们还是在我加强投入。 - -**[01:50:29] 发言人 8**:我觉得可以零。 - -**[01:50:31] 发言人 8**:我看他们里面包含。 - -**[01:50:35] 发言人 3**:了3所人可视化还那些都拿不到。 - -**[01:50:39] 发言人 6**:那些不要去做了,那我们就可视。 - -**[01:50:42] 发言人 3**:化可去。 - -**[01:50:43] 发言人 7**:做那个那个做意数字人跟我。 - -**[01:50:45] 发言人 0**:们的主页如果有点一致性,我们可以试试,做完了以后自己存存点能力,就这个意思。 - -**[01:50:52] 发言人 6**:那个地方那个人的青年头重。 - -**[01:50:54] 发言人 0**:说白了说服我不挣钱的时候就是省点人力。 - -**[01:50:57] 发言人 3**:去太太大位,说我现在不要着急走急,我很有不想,不知道里面什么。 - -**[01:51:03] 发言人 3**:我们我们不承担他七千多万的业收,我们不承担他一个出资人,他妈也不过不可能的,我们七。 - -**[01:51:17] 发言人 0**:千多万的项目靠。 - -**[01:51:20] 发言人 2**:一个200万的交。 - -**[01:51:23] 发言人 3**:付收不这个问根本是个问集项目收这个我们的。 - -**[01:51:30] 发言人 5**:再别给我钱了,就相当于现在我们的现金流是正的。 - -**[01:51:35] 发言人 2**:挣的一直挣的。 - -**[01:51:36] 发言人 8**:我把研发这边情况汇报一下,第一个是云桌面这边,云桌面云南那边测试两个问题,一个是ip显示问题,这个已经解决了。 - -**[01:51:47] 发言人 8**:然后未接那个问题就是刚才说的那个识那个底库,因为他他太老了,它和现在这些新的这些外设兼容上有问题,这个我们要抓紧解决。 - -**[01:52:00] 发言人 8**:第二个就华润这边,华润这边是这样,华润徐凯昨天给我打了个电话,华润他们深圳这个项目的领导,这段时间在正好在成都。 - -**[01:52:15] 发言人 8**:他们可能想在周三让我们去一趟,去一趟就是在招标前整个跟他们整体做一次技术汇报和打印。 - -**[01:52:26] 发言人 2**:大概是这么一个情况。 - -**[01:52:28] 发言人 3**:他想深圳也问我说。 - -**[01:52:29] 发言人 8**:其实他整个这个项目最后的数据中心建设是在深圳。 - -**[01:52:34] 发言人 8**:你现在。 - -**[01:52:35] 发言人 0**:这个危机这个项目要多长时间能解决? - -**[01:52:39] 发言人 0**:因为你华润肯定也。 - -**[01:52:40] 发言人 3**:会出现这个问题是吧? - -**[01:52:42] 发言人 8**:华润是七月份要招标,华润是七月份要招标。 - -**[01:52:45] 发言人 0**:对,原旦那个V机的项目没接。 - -**[01:52:48] 发言人 8**:这个是在带店热巴查的时候会出现。 - -**[01:52:51] 发言人 0**:昨刚才说了个。 - -**[01:52:53] 发言人 0**:行,那现在下。 - -**[01:52:54] 发言人 3**:次解决了。 - -**[01:52:56] 发言人 8**:对,我们如果不去,如果华山那边不配合,我们就只有自己先在现在这个操作系统上面,先把显卡那部分的看一些重新打了,你为抓紧录,下周能解决,我写着下周解决,下周应该可以解决。 - -**[01:53:13] 发言人 8**:你说是这周解决还是下周解决,就是这周解决。 - -**[01:53:17] 发言人 3**:反正七月份要招标了。 - -**[01:53:19] 发言人 3**:华是对。 - -**[01:53:20] 发言人 8**:所以周三可能他们要求我们可能研发去研发和产品一起可能。 - -**[01:53:27] 发言人 3**:到现场要去建文,要求。 - -**[01:53:30] 发言人 8**:是团入的健玩和建文和华润现在成都那边的个经理配合,让我们一起跟他们深圳的领导见一面。 - -**[01:53:40] 发言人 8**:好,知听云这边是这样的,知听云这边那个终端其实都已经开发完了,上周他们都已经做了大部分测试了。 - -**[01:53:50] 发言人 8**:我们这周开始主要是做软客户端,然后再规划一下那个es p 32的那个那个终端,es 32那个终端它就是一个是板卡很小,第二个成本低。 - -**[01:54:01] 发言人 8**:然后外形的话,其实我觉得。 - -**[01:54:04] 发言人 0**:我们可以就是把那个语音转文字的话。 - -**[01:54:08] 发言人 8**:就在终端上转。 - -**[01:54:09] 发言人 8**:对,这个这里做的个十四六,耶稣山二只能做十四六。 - -**[01:54:14] 发言人 8**:因为椰稣山它存储很小。 - -**[01:54:17] 发言人 0**:然后语音转文字是在后台。 - -**[01:54:21] 发言人 8**:服务器转全是后台转。 - -**[01:54:23] 发言人 8**:但是是实时流,它是用后台的算力。 - -**[01:54:27] 发言人 8**:前面主要就是做。 - -**[01:54:30] 发言人 2**:那个做做那个采集。 - -**[01:54:32] 发言人 5**:实时流就了流就本基本完了。 - -**[01:54:35] 发言人 8**:不那样转。 - -**[01:54:37] 发言人 8**:无人机这边是这样的。 - -**[01:54:41] 发言人 0**:互联网的那个。 - -**[01:54:43] 发言人 8**:环境我们就大了。 - -**[01:54:46] 发言人 8**:二可以做实时,如果一般的就。 - -**[01:54:51] 发言人 0**:也能做。 - -**[01:54:52] 发言人 8**:但是是主导只能做做那个核心拿来做终备,拿来做联网采联网的这种测设备所的存储都比低成成非低比好,它可以做成各式各样的各各样的形态,平乐无故就是。 - -**[01:55:14] 发言人 5**:无故就可以做。 - -**[01:55:15] 发言人 0**:成他的算他。 - -**[01:55:16] 发言人 8**:会带进去这两年122的发展。 - -**[01:55:19] 发言人 0**:他算利做什么呢? - -**[01:55:21] 发言人 8**:如果你想在端测上面,包括端侧做那个检测,就他们做那个人脸检测,然后做那个语音唤醒,这些都会需要一点点小算力。 - -**[01:55:30] 发言人 8**:就他的端测因虽还有一好处就是他那个他低功耗,因为他以前是拿来做物联网,然后智控这边是这样的,那个互联网的环境已搭完了,然后设备就香槟山的它的设备已经上报上来了,但下上周上周一直在下雨,就没有人完成测试。 - -**[01:55:50] 发言人 8**:这周我们就抓紧把那个测试开始。 - -**[01:55:53] 发言人 6**:还是请他负责人说说不要提我络了,以及从我的角出。 - -**[01:56:01] 发言人 8**:机器上那个网。 - -**[01:56:02] 发言人 8**:对对对,我知道知道那个卡那样拿回来就把那个卡就取了。 - -**[01:56:08] 发言人 8**:然后我们无人机这边紧急上去上了四个软柱拿四个。 - -**[01:56:17] 发言人 8**:我们今天还是讲人那边再看能不能弄一那边大家说。 - -**[01:56:25] 发言人 6**:走上去。 - -**[01:56:26] 发言人 6**:不是。 - -**[01:56:26] 发言人 3**:所以说你自己这个都怕,别怕你自己去,你那卡拿到你手里,另外一根跟你们去做一个保护,给他弄啥研发这种小心渣渣的,你怪不怪? - -**[01:56:39] 发言人 6**:研发的什么意思? - -**[01:56:41] 发言人 6**:就是机场那有叫现互联网研发公司。 - -**[01:56:46] 发言人 8**:我就你就自己去把它隔离,跟我们隔离搭好了以后,到时候在公司就可以看到那个。 - -**[01:56:52] 发言人 3**:飞机的飞压。 - -**[01:56:53] 发言人 3**:那些就是上周两张卡,把卡一个把视频网卡拿到你公安放着,另外一个把机场的那个视频网线,你去做个东西封装,等他们测完了你再去给打开。 - -**[01:57:05] 发言人 3**:什么意思? - -**[01:57:06] 发言人 3**:就是用视频用互联网的,你不要用视频网。 - -**[01:57:09] 发言人 2**:对,分开是吧? - -**[01:57:10] 发言人 2**:可以把那个同学帮一下。 - -**[01:57:12] 发言人 3**:你自己安排个人去给他弄了。 - -**[01:57:14] 发言人 3**:你别等着研发,他真不小心砸错了,那你还要他妈擦一堆屁股,这你几个事情干嘛要让让他注业? - -**[01:57:24] 发言人 3**:你我们这。 - -**[01:57:25] 发言人 5**:处就出了时候就提醒大家,这个我觉得很好。 - -**[01:57:30] 发言人 3**:很就是这个东完了以后。 - -**[01:57:33] 发言人 5**:我们在在。 - -**[01:57:34] 发言人 3**:这儿也能看到了,就开会的时候直接上互联网的就非常了,这个就非常。 - -**[01:57:42] 发言人 3**:他们要用的是程,老提拉拉箱不着。 - -**[01:57:47] 发言人 3**:对,你把随便怎么弄,你都不他妈砸俩,弄个塑料袋给他封死。 - -**[01:57:53] 发言人 8**:研发也不至于给你打开。 - -**[01:57:56] 发言人 8**:然后上周因为下雨,我们就把机拿回来,遥控器云基调多,就这样的话,后面我们机上遥控器。 - -**[01:58:07] 发言人 8**:然后项目上就是中医物联网立体四联网的那个行业招标之重强,刚才其他部门都已经说,我们中物联的立体是什么? - -**[01:58:22] 发言人 3**:就是中物联他。 - -**[01:58:23] 发言人 8**:们现在视频网现在要找一家给他们提供无人机方案的。 - -**[01:58:29] 发言人 8**:我们上上周上周已经去交流了,他们对我们的技术方案应该说基本上那天是比较认同的。 - -**[01:58:38] 发言人 8**:让我们就加紧这个dp他大概是1000万把我们招进去,如果他们进入有项目。 - -**[01:58:46] 发言人 0**:他们就会通过这个ct来我们我们现在唯一的优势也不较唯一的优势就是我们跟那个因为我们跟中联。 - -**[01:58:57] 发言人 8**:那么近是吧,你找其他厂家不在重庆他的吧,那么近。 - -**[01:59:03] 发言人 8**:最好的合作,然后的话增加九个整体90 08,我们六底,我们Q定的是目标是200 280 280万。 - -**[01:59:13] 发言人 0**:抓紧吧。 - -**[01:59:14] 发言人 8**:然后其他的话一个人员变动,我们的ui U E新换了一个人员,今天已经入职了。 - -**[01:59:20] 发言人 8**:第二个财务助理这边开发本周部署测试。 - -**[01:59:24] 发言人 8**:然后crm的话,我们会在我们会在crm系统里面给我们的授权人员把他们授前人员的日报工作台给加上去。 - -**[01:59:33] 发言人 8**:这样的话以后crm就不光包含我们的销售人员,也包含我们的授权人员,他们的工作日报都放在那面。 - -**[01:59:42] 发言人 8**:好,数字人这边我们自己的这个口播数字环境已经搭出来了。 - -**[01:59:49] 发言人 8**:搭出来的话现在就是可以常规帮着出出视频,大概半个小时可以出一个视频。 - -**[01:59:58] 发言人 0**:你们再往前延展一下,这个口播先做吧,先告诉你个小秘密。 - -**[02:00:04] 发言人 8**:先把这个系列做出,先把它做了。 - -**[02:00:06] 发言人 8**:对,我们会把它我们会把这个也做成一个做成一个普通用户都可以用的一个平台。 - -**[02:00:15] 发言人 8**:软著这边你刚才说了,我们自飞平台一。 - -**[02:00:20] 发言人 0**:共报了两。 - -**[02:00:21] 发言人 8**:个算法,一个前面的几个内容报了一个算法,自飞一共四个。 - -**[02:00:28] 发言人 8**:然后这周我们还要完成一个事情,就是我们通过那个沙漠向我们的研发。 - -**[02:00:36] 发言人 0**:人开会,就是提。 - -**[02:00:37] 发言人 7**:供阿里云的科的。 - -**[02:00:39] 发言人 2**:模型服务。 - -**[02:00:40] 发言人 7**:这块完是一个统一的计口。 - -**[02:00:44] 发言人 8**:我这就这么去。 - -**[02:00:44] 发言人 0**:对对对,不要游击队,我操这个他妈的你要随时想着我们是正规军,要以铁道游击队的方式要求自己,最后就变成铁道队。 - -**[02:00:52] 发言人 8**:但是这样的崔不总上回我们也开过会,就说我们是这样的,这边我们提供的基础服务,其实他们有些同事他们用量非常高,他们也会做,自己会买一些补充,但是我们会统一要求,这样的话至少来说我们可以保证一个基础的培训。 - -**[02:01:09] 发言人 0**:好吧? - -**[02:01:10] 发言人 0**:好,你那然后你那卡是。 - -**[02:01:13] 发言人 3**:你最后那。 - -**[02:01:14] 发言人 8**:几个卡,你是四张卡。 - -**[02:01:17] 发言人 8**:是现在拿了两张卡来统一布一个推理,就是我们所有的全部还。 - -**[02:01:29] 发言人 5**:有一张卡在留给那字午。 - -**[02:01:34] 发言人 0**:不务后所都要的对。 - -**[02:01:36] 发言人 7**:就是我们所有的的那个推理。 - -**[02:01:39] 发言人 8**:我估计他现在。 - -**[02:01:41] 发言人 5**:主要审那个单子,就最大的就是审。 - -**[02:01:49] 发言人 2**:好。 - -**[02:01:50] 发言人 4**:其他的没有。 - -**[02:01:52] 发言人 0**:好,那就这样。 - diff --git a/agent_memory/uploads/kb_3cc4030350de/1782283123758_1_transcript_712.md b/agent_memory/uploads/kb_3cc4030350de/1782283123758_1_transcript_712.md deleted file mode 100644 index d1c8ddf..0000000 --- a/agent_memory/uploads/kb_3cc4030350de/1782283123758_1_transcript_712.md +++ /dev/null @@ -1,2918 +0,0 @@ -# 会议712 - -**会议时间**:00:00:01 - 02:01:54 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8 - -## 会议记录 - -**[00:00:01] 发言人 0**:你的数里面主要是升高那个数,跟你对过没有? - -**[00:00:06] 发言人 0**:就是最。 - -**[00:00:07] 发言人 1**:终的结果。 - -**[00:00:09] 发言人 1**:我根据财务的收款。 - -**[00:00:10] 发言人 0**:你不能只跟据财务收款,你要跟盛刚再对一对,你要跟他通电话对一对。 - -**[00:00:16] 发言人 1**:数据都是从他们系统里面取出来的。 - -**[00:00:20] 发言人 0**:他现在预测的到6月底是多少? - -**[00:00:24] 发言人 1**:现目前的话总的预计数是因为。 - -**[00:00:26] 发言人 0**:数据值得取得。 - -**[00:00:27] 发言人 0**:但是最后预测的话,他他负责人他要有预测的能力,他自己要预测能力,要把预测放进去了。 - -**[00:00:35] 发言人 0**:你不能单独只看这个,这个就是他们取的数据。 - -**[00:00:47] 发言人 0**:然后预500万是吧? - -**[00:00:49] 发言人 1**:对,然后我们这边低一低工程的高,他们这边预计数据是不可报的,低高风险是短。 - -**[00:01:00] 发言人 1**:然后我们这边会根据实际的一个收款发货,然后一些备后情况来做一个评况。 - -**[00:01:08] 发言人 1**:对于他们的项目空间做一个。 - -**[00:01:15] 发言人 0**:我不看收入,你不用老是看那个了,我就看主要看那个那个毛利。 - -**[00:01:20] 发言人 1**:那一栏毛利是按照35%的毛利率。 - -**[00:01:32] 发言人 1**:按照他们之前接收,这个月软件比较多。 - -**[00:01:41] 发言人 0**:定开有146万。 - -**[00:01:44] 发言人 1**:在目前的部。 - -**[00:01:51] 发言人 0**:那净利润怎么才121万? - -**[00:01:54] 发言人 2**:哪儿有问题呢? - -**[00:01:56] 发言人 1**:没有,对,因为每个月差不多在250万的费有。 - -**[00:02:05] 发言人 1**:然后上个月是亏损。 - -**[00:02:07] 发言人 0**:了一少万。 - -**[00:02:08] 发言人 1**:累计对,累计。 - -**[00:02:20] 发言人 0**:总部是记了哪些? - -**[00:02:22] 发言人 1**:然后就是答案都一个就是把它运为,然后一个就是国默博用。 - -**[00:02:37] 发言人 1**:然后还有一些小金头的,很少很小的。 - -**[00:02:44] 发言人 0**:好啊。 - -**[00:02:48] 发言人 1**:然后现在实际的话,劳力已经完成了307万,剩余的主要是微电。 - -**[00:02:59] 发言人 1**:实际上在这两个门基本上是完成了。 - -**[00:03:04] 发言人 0**:那你下来你追着他,一个省长给他跟他就是要他严肃,他这个就是要求留机,你们这个需求定开。 - -**[00:03:21] 发言人 2**:这个其跟我这儿其实也不一样。 - -**[00:03:24] 发言人 1**:我这是不含税的。 - -**[00:03:33] 发言人 0**:好吧,好。 - -**[00:03:34] 发言人 4**:我这边其他。 - -**[00:03:36] 发言人 1**:没有然后。 - -**[00:03:43] 发言人 0**:对,还有马上是吧? - -**[00:03:45] 发言人 0**:马上到月底了,你一个雪秋,这里你们定开一个是这个雪球流进,定开升高那里好不好? - -**[00:03:55] 发言人 0**:好,继续。 - -**[00:04:03] 发言人 3**:刚说入台我们已经画了整个我们绿色部分,我们测试器我的时。 - -**[00:04:11] 发言人 3**:一起绿色的就是去上刺,有的已经完成了,我完成了自。 - -**[00:04:20] 发言人 3**:即使我们的足球业的我们平台的走织链运营。 - -**[00:04:24] 发言人 3**:然后这是几个,一个就是那个重点工作,就是上周完成了合北智算的个签约,合北智算那个融合交换机,7680多万,然后切除就完成了。 - -**[00:04:38] 发言人 3**:然后那个风险也跟那个。 - -**[00:04:43] 发言人 0**:青岛两个点上。 - -**[00:04:44] 发言人 3**:两个点,因为即使青到先客胡松,我们1.2个繁体算是我他拿太多也你必要,你什么都不让谈心海欠货,那你搞那么多,我这边人家压力也大。 - -**[00:04:56] 发言人 0**:就是说把这1.2不用聊。 - -**[00:04:58] 发言人 3**:我们他就可以拿走是吧,对不对? - -**[00:05:00] 发言人 3**:他他他这个我跟刘凯也让他去问问下面的那个那个谁之金,以及包含何小强他们,胡松经理就是问他。 - -**[00:05:13] 发言人 4**:很。 - -**[00:05:17] 发言人 3**:样。 - -**[00:05:20] 发言人 0**:到好吧。 - -**[00:05:24] 发言人 3**:继续。 - -**[00:05:25] 发言人 3**:然后收款就是这个我。 - -**[00:05:27] 发言人 0**:觉得这个东西今年有,明年就没了。 - -**[00:05:31] 发言人 3**:是妈的,所以说用户有操作了,是这个理解,有一年吃一年,这个东期,然后收款的话就是国务用了23万,我曾前我叫。 - -**[00:05:47] 发言人 2**:什么什七回重,而回重。 - -**[00:05:51] 发言人 3**:不是个集单收款那家,然后我用那个收款那家,最后尾款23万. - -**[00:06:02] 发言人 6**:打过来了,是伟吗? - -**[00:06:05] 发言人 6**:两种打过来,他那个早过只是对,就是现金。 - -**[00:06:11] 发言人 3**:然后丁开的是双四收入五元。 - -**[00:06:16] 发言人 3**:是不定池是背靠背没多大意义,这几个做法。 - -**[00:06:21] 发言人 3**:然第二个事情就是辽宁东北大学周五我去找高研的时候,他也去找教授,赵教授已经找到合个往前一个打进去了,就是400万这个事儿,那个教授自己找人了,就不需要了,就不需要自经找人了。 - -**[00:06:37] 发言人 3**:高演说只能在等们下次再合作。 - -**[00:06:40] 发言人 0**:这个太难了,这个中间链条太长了。 - -**[00:06:43] 发言人 3**:我在是成都子公司会议,等他开完上时电话开完会就给你报。 - -**[00:06:49] 发言人 3**:然后约定的是明天给出经营费用,然后收入带时间以及空间,就是项目空间储备,待时间落地了,然后这三张表拿给股。 - -**[00:07:00] 发言人 3**:另外就跟徐凯也商量了,说发含担心营销国他不会给那个封封口直达,所以封评不会给那个封封评,所以说他说还不如去约封评。 - -**[00:07:10] 发言人 3**:徐凯也没有逼我老。 - -**[00:07:11] 发言人 0**:觉得是这个势,就小果他一点都不决策,就给他一个正式的东西都要不拿着重东西,他也不敢在手上留。 - -**[00:07:19] 发言人 0**:是不是他决得不了你你得发他决策,就给他一个正式的东西,就我们给他一个正式的函,给他我们要搜的那个东西。 - -**[00:07:29] 发言人 0**:对他的要不要不拿到函的,你那到时候拿到你手上发烫了,他发烫了他怎么办? - -**[00:07:36] 发言人 0**:他肯定得这东西还要处理不了。 - -**[00:07:38] 发言人 0**:你现在是没有一个没有一个触发,没有触发的一个没有一个出发点,是就现在要走出发点,那找个出发灯心一个。 - -**[00:07:47] 发言人 0**:对对对,我觉得你还触发他就给他是吧。 - -**[00:07:50] 发言人 0**:这个函你不交,我也可以交给你上级,你许敢跟外面给一开,我也给交给上级是吧? - -**[00:07:55] 发言人 0**:触发他,那我先把函子说,对,然后跟徐磊说两边一起走是吧? - -**[00:08:01] 发言人 0**:就出发的,你要出发的他也会去教的,他不教拿这个手头烫的,对不对? - -**[00:08:05] 发言人 0**:我给你比如我举个例子,我给你个紫光,给我汇智商报你不上报你的某公司,你自己也不决策,那就就就就就就麻烦了好是吧? - -**[00:08:15] 发言人 0**:因为你首先你触发了你,你要去决策,现在就是要触发他决策。 - -**[00:08:21] 发言人 3**:然后上次2. - -**[00:08:22] 发言人 0**:比如说我撤单,总人我他妈告我,我几个名,我马上告他,我说你我我这个他就感觉我。 - -**[00:08:29] 发言人 3**:感到有压力的触发他。 - -**[00:08:31] 发言人 3**:行。 - -**[00:08:31] 发言人 0**:这个我会过来。 - -**[00:08:32] 发言人 0**:咱因为咱这中西中间不管是那个女的还是那个谁,都要给我们任何都没有感情。 - -**[00:08:38] 发言人 0**:我们抛开感情全靠法律。 - -**[00:08:40] 发言人 0**:好,所以我们就靠这个,这就就这这这这个那这个下午就出了,必该说的说完了。 - -**[00:08:46] 发言人 0**:现在你现在就是往我之前说的那个,本来说这个给了面时间,本来就让拧这个螺丝是吧,给了时间,他这个最后的结果还是跟他的两个月之前拧。 - -**[00:09:00] 发言人 3**:难的很。 - -**[00:09:01] 发言人 3**:我就我我要开个会,全是这么一堆垃圾话,一点用都没有,都可以给你开。 - -**[00:09:09] 发言人 3**:算了,会后的给你看,就不浪费他家家时间。 - -**[00:09:13] 发言人 3**:然第四个就是那个那个藏品二期,上周二跟华商客服首仓安全开完会。 - -**[00:09:19] 发言人 3**:然后开完会你们你就是跟我说,让跟让我联系,他们跟他确认,一直到中午他才给我回电话,我会后就给他打电话了,说两中午跟他说两个点的事儿,我说中午陈峰总该怎么说,我说陈峰总这走一走,已经说陈峰总已提到走一走的消息了,就是说跟毕总一谈好了,就两个点。 - -**[00:09:38] 发言人 3**:但是冯长安说毕总找他了,没说两个零事不能亏损,说以说想做到6到7个点,然后我我这面我这边说我接受了通知是两个点。 - -**[00:09:46] 发言人 3**:但是我说我第一第一,我说这是内部项目,我们不会赚钱。 - -**[00:09:50] 发言人 3**:我说第二,今天我本身就要提交华山客户的一些资料,提交的时候我们会不会问紫光新云谷光,我们用华山客,你是不是可以给我们保增加点利润和预算。 - -**[00:10:02] 发言人 3**:然后今天会后,我这边中午郝龙去提交资料的时候,我跟郝龙的商量就是一我把现实情况告诉他是哪一项目。 - -**[00:10:10] 发言人 3**:二招标的是紫光星为还卡我们的卡,我的价格。 - -**[00:10:13] 发言人 3**:你想要六个心理预算可以,但是招标的时候还肯定会卡卡的时候我也会给你试服入我们预算利润也不高。 - -**[00:10:21] 发言人 3**:所以说冯长安过表达的,他那边跟B总不亏损,6到7个点才行,希望我们给他争取不亏损。 - -**[00:10:28] 发言人 0**:争取6到7个点。 - -**[00:10:29] 发言人 0**:没有我现在就是两个点,因为我们都没有多少钱。 - -**[00:10:33] 发言人 0**:这个东西你就是借你个壳,你还讲什么,你要你那没人,你没有这生意赚一点,没这生意两个点多少钱? - -**[00:10:40] 发言人 3**:10万2000万,40万。 - -**[00:10:42] 发言人 3**:对。 - -**[00:10:43] 发言人 0**:有这生意,你有40万就赚一点,你没40万我不找你了是吧,你你你这个就是这意思。 - -**[00:10:49] 发言人 3**:然后他那边说逼须文给他说的是做到不亏损,然后他就开始各种磨。 - -**[00:10:55] 发言人 0**:说是又要对,做的不亏。 - -**[00:10:57] 发言人 0**:你两个点不用派人的,他要派人吗? - -**[00:11:00] 发言人 3**:要派项目,他要派至少名誉项目挂。 - -**[00:11:03] 发言人 3**:因为他是中标公司的一进的项目经理。 - -**[00:11:07] 发言人 0**:那成本算百两个点。 - -**[00:11:08] 发言人 0**:那是成本,那可以。 - -**[00:11:10] 发言人 0**:你那你如果是在挂项品的另外成本上面。 - -**[00:11:13] 发言人 3**:你不到现场,要是去一趟,要是去一趟,就像我们那成本上面那个点,好吧。 - -**[00:11:18] 发言人 0**:那个算成本,那我下我因为你这个事,你还得跟紫薇交代,你因为你最后把紫总我谈的两个点,你们他妈整这个七个点,你们就这水平我们没答应。 - -**[00:11:29] 发言人 3**:对不对? - -**[00:11:30] 发言人 3**:所以我专门汇到个。 - -**[00:11:32] 发言人 0**:而且按说那原则就不亏损,能赚多赚,第一不亏损我们给你保障,第二能赚多赚,我们也没赚到钱,就不是说大家说意这你这个逻辑我不是很赞同。 - -**[00:11:43] 发言人 0**:你说我们等到去跟他谈集团,如果说我们自己家集团会不会涨一点,这个逻辑不不不成不成立的。 - -**[00:11:50] 发言人 0**:你不管是谁的家,因为你你招不招投标,我在我那边就一定是什价格降的最低。 - -**[00:11:56] 发言人 0**:比如我是甲方,你们谁来,我也不想得这个。 - -**[00:11:59] 发言人 0**:我难道说你们因为是集团利部的。 - -**[00:12:01] 发言人 3**:我都给你讲这话,不能这么说,我算我表达是这意思。 - -**[00:12:05] 发言人 3**:我们上一次就是因为内部标,第一次我们中标准都中标了1 1100 1100万,集团反过来压我们降了100,接近100万。 - -**[00:12:14] 发言人 3**:他说正我说的意思,正因为是内部公司,反而让我们把利润空间给压缩了。 - -**[00:12:19] 发言人 0**:对,他要压。 - -**[00:12:21] 发言人 3**:对,就是你即使中标了股东股份,还会开会让我们二次降价。 - -**[00:12:25] 发言人 3**:我们本身一期就是二次降价接近100万,而就降了150万,是降了多少? - -**[00:12:31] 发言人 0**:就是要跟他说,我们没挣到钱,因为这里面还有垫资,我们算下来就是四个点给你一半。 - -**[00:12:37] 发言人 0**:我我们我卖电动多资,你把它设计成这个样子,对不对? - -**[00:12:41] 发言人 0**:我们就四五个点,或者说我五个点,或者我十个点以内,我就八个点。 - -**[00:12:47] 发言人 0**:那紫薇都会编这个话,紫薇编的话编的圆的很,我一共就八个点是吧? - -**[00:12:52] 发言人 0**:紫薇说紫薇圆的,她紫薇跟那个都没听跟我们沟通,紫薇直接跟人家说,那绘制不挣钱,没几个点,就个位数的点。 - -**[00:12:59] 发言人 0**:你要只要说的我是个位数,那你说你要多少,你们要觉得对不对? - -**[00:13:03] 发言人 0**:你说我哥哥说,而且我垫子这风险,我怎么风险我收不回来钱? - -**[00:13:07] 发言人 0**:你看着账面利润收不还收不回来钱,那么麻烦对不对? - -**[00:13:11] 发言人 0**:就是因为你我我我现在我们就是蓝领就这水平对不对? - -**[00:13:14] 发言人 0**:你要你如果一定要要,那我们就只找其他外面去找,是吧? - -**[00:13:17] 发言人 0**:你跟能说清楚就是大家关系,你不挣钱,你不可能,你比我挣的还多,那我挣他妈那干嘛? - -**[00:13:23] 发言人 0**:还有我风险比你大,对不对? - -**[00:13:24] 发言人 0**:我都是个位数,你就不少。 - -**[00:13:26] 发言人 0**:你们这么觉给他说,你把成本压了,你把成本做起来,做到。 - -**[00:13:30] 发言人 0**:因为只有我们知道成本,对不对? - -**[00:13:33] 发言人 0**:你做起来以后,你就他就看着你就是不到10个点,你要几个点,对不对? - -**[00:13:38] 发言人 0**:我还不出资,我还出什么东西,对不对? - -**[00:13:41] 发言人 0**:而且因为这是集团的,是外面的,我们也可以说他妈的我挣了20块钱给你,他妈的300。 - -**[00:13:48] 发言人 0**:那现在集团的很透明,集团就是要压死你,对不对? - -**[00:13:53] 发言人 0**:集团那软件还不愿意做,就是因为不挣钱。 - -**[00:13:57] 发言人 3**:我讲故事好吧。 - -**[00:13:58] 发言人 3**:所五个g pu国产U的项目,以跟俊杰装备已经弄清楚了,就是我3GPU算力太强,算力性能不够,以及那个软件不适备,就没法去搞重度渲染测计的工作,所以这个事情已经上做不了。 - -**[00:14:20] 发言人 3**:对上好多。 - -**[00:14:20] 发言人 3**:第六个是中法云作面,一共是这的还是哪里做法云作面四川的,为什么写在这? - -**[00:14:28] 发言人 3**:担心就是招今天早上可中了吗? - -**[00:14:30] 发言人 3**:这已经中了,但是是年前的预算,之前报价150万,现在已经涨到了197万了。 - -**[00:14:38] 发言人 3**:我们在报价正常不利的情况下,我现在渠道找了张威,张薇,就是很冒火。 - -**[00:14:43] 发言人 3**:周末给张涛发了个微信,让张涛来处理这到底怎么回事? - -**[00:14:49] 发言人 3**:因为渠道给张威那个表达的,说实慢慢的涨了,涨了一千多块钱,实际上我们就是涨了四十多万,是因为内存和租是涨价的。 - -**[00:14:59] 发言人 0**:对。 - -**[00:14:59] 发言人 3**:正常今天早上徐凯跟张涛一起去找张威,然后就我们差不多就是现在的报价197万。 - -**[00:15:07] 发言人 3**:如我们的我担心,如果张威在他们汇报完了给你打电话,其实我们就是象征性的的197万件摩个礼物也差不多了。 - -**[00:15:17] 发言人 3**:但是我刚刚也问了宋刚,反正是你利润肯定是按照正常毛利报的。 - -**[00:15:23] 发言人 3**:如果是张威愿意,他什么时候种的,是华山的销售去种的是吧,华山销售和渠道和去年种的。 - -**[00:15:29] 发言人 7**:什么时候种的? - -**[00:15:31] 发言人 7**:去年涨价钱重的,涨价钱重的,现在要进货。 - -**[00:15:34] 发言人 7**:对,涨价钱重的现在才开始要货。 - -**[00:15:36] 发言人 7**:然后去年报给他们终端报了很低的价格,是150万,150万那个终端只留了不到50块钱一台的利润。 - -**[00:15:45] 发言人 0**:后来他自己他当时没提,他没提过,他为什么不提呢? - -**[00:15:49] 发言人 7**:他他他没定下来。 - -**[00:15:50] 发言人 0**:他不没实施,他提了。 - -**[00:15:52] 发言人 0**:所以中标那个价也也是是什么价格。 - -**[00:15:55] 发言人 7**:去年是900块钱台,现在要1300多。 - -**[00:15:58] 发言人 0**:我知道,但那那他等于说他只能出那么多钱。 - -**[00:16:02] 发言人 7**:我没理解这个逻辑,那他手上还是有一点钱,那他想尽量压低一点。 - -**[00:16:07] 发言人 0**:我他我中了标了,像这种,因为涨价中了标,你如果不你就废标就完了。 - -**[00:16:12] 发言人 7**:我我我不做就完了。 - -**[00:16:14] 发言人 7**:这个投标跟我们没关系不。 - -**[00:16:16] 发言人 0**:我知道。 - -**[00:16:17] 发言人 7**:他我说说完他是总级去做标。 - -**[00:16:20] 发言人 0**:我知道再找我们要货,我知道,就集销商如果最终的结果是因为那个甲方是不会给多的钱。 - -**[00:16:27] 发言人 2**:应该是甲方会给多少钱。 - -**[00:16:29] 发言人 0**:那基本上最多我做不了整个费,要不然我就只有减少不计,要不然我减少自己的利润,对不对? - -**[00:16:36] 发言人 0**:大时叫服务器,对不对? - -**[00:16:38] 发言人 0**:那他最后中不了。 - -**[00:16:39] 发言人 7**:那他服务器他踩没踩,这他这190万好像是含服务器的。 - -**[00:16:44] 发言人 0**:那这是集商自己的原因,可能我们不管好吧,我觉得这集。 - -**[00:16:49] 发言人 3**:销商自己的原因。 - -**[00:16:51] 发言人 0**:我担心稍微会给你打电话。 - -**[00:16:53] 发言人 0**:他妈一百多万,我觉得他一百多万,他说打不打电话。 - -**[00:16:57] 发言人 3**:他就是跟他一起跟那个销售就完了。 - -**[00:17:00] 发言人 3**:他找我。 - -**[00:17:00] 发言人 0**:我也会跟他说,我说你那么大领导一百多。 - -**[00:17:04] 发言人 0**:在乎这个给你报一下。 - -**[00:17:05] 发言人 3**:就担心你什么都不知道。 - -**[00:17:07] 发言人 3**:他张着一打电话,你说怎么要再把我们是弄的就尴尬了,给你报备一次了。 - -**[00:17:12] 发言人 0**:对我我我我个人认为他可能不会。 - -**[00:17:14] 发言人 3**:因为你们一百多万。 - -**[00:17:16] 发言人 7**:我不知道他招微信,那其实就是我们主管找是吧? - -**[00:17:32] 发言人 3**:然后招人,云南的人今天入职,你就答应好了。 - -**[00:17:35] 发言人 3**:我跟商务的云南商务管管商业张强也说了完说会后我拉着他们一起开工会。 - -**[00:17:42] 发言人 0**:上次他们是余江山,是谁给我打的电话,有一单是他跟我说,你们在哪出差? - -**[00:17:47] 发言人 0**:What you . - -**[00:17:50] 发言人 4**:can . - -**[00:17:51] 发言人 0**:do . - -**[00:17:52] 发言人 3**:with that? - -**[00:17:55] 发言人 0**:那。 - -**[00:17:57] 发言人 3**:是也是因为涨价的策本。 - -**[00:18:01] 发言人 3**:对,我去。 - -**[00:18:02] 发言人 0**:找我磨了,我我说我就跟他说,我说可以,我说这次我就给你我就你打电话来是吧,我就给2万块钱,他最后说感谢,我说你们大领导你把我给我,我说但是不是他没抹,我说你既然你找了,我肯定给你降一些,对不对? - -**[00:18:20] 发言人 0**:我说你都来找我了,我说但是实话实说,我说我也不挣钱是吧? - -**[00:18:25] 发言人 0**:我说咱们这兄弟们兄弟妈的是吧。 - -**[00:18:27] 发言人 3**:我说我就给个面子,我这给你报的想声,如果没招,你把这个7万块了就完了。 - -**[00:18:32] 发言人 0**:我还是有35%,我万还对于我对他来说73000毛毛. - -**[00:18:37] 发言人 3**:对于我来说70001个给你报一下。 - -**[00:18:40] 发言人 3**:他担心他。 - -**[00:18:41] 发言人 0**:走对于我来说期望还是挺高的。 - -**[00:18:43] 发言人 0**:上面哪个经理,我后来给他说了,他自己都不好意思。 - -**[00:18:48] 发言人 0**:对了,那就少一点,少感谢下次我说真的,我说咱们兄弟,我说这个是吧,我说我你打电话我,但是实他妈的是就是这个样子。 - -**[00:18:58] 发言人 3**:云南的人气电路十报说了,跟云南商业主管赵强也沟通了让他先带一带。 - -**[00:19:04] 发言人 3**:然后省代和下面的销售都认识之后,就开始他自己跑开了。 - -**[00:19:10] 发言人 3**:因为他本身就是招了按招了进天入职,然后那个本身就是私心服的,他也他他本你下来,他们就是谁跑哪儿。 - -**[00:19:18] 发言人 0**:谁跑哪儿了,你到时候就跟我说一下。 - -**[00:19:21] 发言人 0**:好,那咱们我们那个会后我们再商量好好。 - -**[00:19:25] 发言人 3**:然后云视的项目空间是还是1100 1.08个亿。 - -**[00:19:30] 发言人 0**:但协同营销实际上是没有什么作用的。 - -**[00:19:33] 发言人 3**:现在目前来看,协同营销。 - -**[00:19:35] 发言人 3**:那四个人工学跑的可以,河北就是交给刘凯和陈志华。 - -**[00:19:39] 发言人 0**:他两个跑,我开始没半年,他没有那个没贡献也不大。 - -**[00:19:45] 发言人 3**:你是指中景数据? - -**[00:19:47] 发言人 0**:对呀对。 - -**[00:19:48] 发言人 3**:他们还在充,一个是冯文超签了一个2 100 300多万,是几百多万的利润进来,里面有二十多万的利润。 - -**[00:19:58] 发言人 3**:然后刘用凯每次在在河北就周你那还没表现还挺集中,都签单了,还没集中。 - -**[00:20:05] 发言人 3**:六月份要寄,六月份寄不了钱,今年要记。 - -**[00:20:09] 发言人 3**:冯超不是刚3 4月份还是五月份把那个迁进来的吗? - -**[00:20:15] 发言人 3**:然后刘凯,那刘凯那个数还没算是吧? - -**[00:20:18] 发言人 3**:对,还没算。 - -**[00:20:19] 发言人 3**:然后徐凯这个就是重心全在于位上,完了之后再就加上跟也是商业主管和政府主管的郭达安、张威安排你,他也在陆续弄,上次是南充智慧城事务部,也是他在跟。 - -**[00:20:37] 发言人 3**:这四个是我感觉现在节奏跨你觉得还可以? - -**[00:20:42] 发言人 3**:这四个每周开会,我们郝龙郝郝龙跟王斌两个完全飘在外面,还挺锻炼,也不跑没跑运做面,然就是等好容就是等大项目。 - -**[00:20:52] 发言人 3**:王斌最近好像连系同项目都少,中医物联我不知道怎么弄。 - -**[00:20:58] 发言人 2**:现在甚至。 - -**[00:20:59] 发言人 3**:所以不前我十的过程中,好论就是吃算那几个钉钉子那几个吃算。 - -**[00:21:08] 发言人 0**:好,反正半年就是个坎儿。 - -**[00:21:09] 发言人 0**:你跟他们通知一下,半年他妈的你这个你半年业绩就是个坎儿,包括这个谁,湖南那个叫什么这个过对。 - -**[00:21:19] 发言人 3**:到时候我还专门问了他一下数据,他数据一直。 - -**[00:21:22] 发言人 0**:你给他们发个文,你半年是个坎儿,都要交作业的。 - -**[00:21:26] 发言人 0**:你说我们还要给集团交作业,各级个交作业,你的作业不行,最后半年下去可能都会有处置的。 - -**[00:21:32] 发言人 0**:好,反正就要注意了。 - -**[00:21:33] 发言人 0**:那我就这种半年这个坎,那半年不行,今天把那个明弄好。 - -**[00:21:37] 发言人 0**:对,就跟他讲你半年这个坎,你半年你必须要打证,你这必须要打证,不打证这个不可能的。 - -**[00:21:44] 发言人 0**:他们几个人这样的半年是个坎,好吧,你打不正,我们这半年公司都会做,公司会开会的,对于每个人的情况。 - -**[00:21:53] 发言人 3**:然后再一个就是俊杰,你那两个优优系列的检测报告,现在进度如何? - -**[00:22:00] 发言人 3**:能不能凑下来? - -**[00:22:01] 发言人 3**:欧阳报告上次提交了。 - -**[00:22:03] 发言人 7**:今天早上又来说我们上周注册证还是老公司的名字,去年他这个方式是认了的。 - -**[00:22:11] 发言人 7**:去年的两州市场,我开开了一个新紫光集团的公司,跟名申请,他就认了,今年的首册也不认。 - -**[00:22:20] 发言人 7**:然后欧阳现在马上找集团去要新的公司的上注册证。 - -**[00:22:25] 发言人 3**:到家又号了就了。 - -**[00:22:27] 发言人 3**:然后打需要去了,为什么来不及了? - -**[00:22:30] 发言人 7**:那欧阳上周上周一上周一提他,因为他有过程,上周一提交给C这边机构,然后今天早上反馈说我们那个公司名称。 - -**[00:22:41] 发言人 0**:他有一个星期是吧? - -**[00:22:43] 发言人 0**:你如果你再弄,不是我们内部的,不,如果集团问题我可。 - -**[00:22:50] 发言人 7**:以去协调,你不是内部问题。 - -**[00:22:53] 发言人 2**:集团还应什么意思? - -**[00:22:58] 发言人 3**:今天拿新的就进早就就。 - -**[00:23:01] 发言人 0**:是什。 - -**[00:23:01] 发言人 7**:么个就招不了这标了,投不了标了是吧? - -**[00:23:07] 发言人 7**:没有这报告就投不这标了。 - -**[00:23:10] 发言人 7**:明多说说所谓政治已经结束,现在政在发生过程。 - -**[00:23:14] 发言人 3**:但你把这个协给我们,你协助我们,我这个就有点爆告,就是你什么都没有,他不打票,还有的豆假这个东西。 - -**[00:23:21] 发言人 7**:其他只票都是这样。 - -**[00:23:23] 发言人 0**:你们就找一个方式,因为这个东西我觉得可能还是会有办法。 - -**[00:23:28] 发言人 7**:因为毕竟不是我们一家这样很多家西。 - -**[00:23:31] 发言人 0**:因为毕竟你是紫光集团,你的事情是真实的,是吧,你只能可能少了个手续。 - -**[00:23:36] 发言人 3**:给个解释完的时候这么。 - -**[00:23:38] 发言人 3**:隔壁图说发,下面几个要签单或投标的项目,一个就是北京那个谁谁那包包浩伟,包括那个的标城伟是冲标。 - -**[00:23:55] 发言人 0**:估计是冲标。 - -**[00:23:57] 发言人 7**:没没把我挺的。 - -**[00:24:02] 发言人 3**:那挺要的的这道这那助就一直引导这。 - -**[00:24:08] 发言人 7**:找沟通。 - -**[00:24:09] 发言人 2**:事然那个京我。 - -**[00:24:11] 发言人 3**:觉得有关系。 - -**[00:24:12] 发言人 0**:提早都会想种办法。 - -**[00:24:15] 发言人 0**:他们做。 - -**[00:24:17] 发言人 3**:后手批,我没答应,我说等等一等,我就实在不能批,为啥我就不说了? - -**[00:24:24] 发言人 3**:实在因为学校是他们肯定有一样的问题,我种方式我们就不在上说这个事,那下面是几个项目情况,然后那个我就不懂了,本身每周例会我都跟他们过。 - -**[00:24:37] 发言人 0**:我多其实总理这种开会,所以说会议纪要也麻烦。 - -**[00:24:41] 发言人 0**:刚才有时候那话没理对。 - -**[00:24:43] 发言人 2**:所以我压根都没提你们。 - -**[00:24:45] 发言人 0**:那你为啥要提? - -**[00:24:46] 发言人 0**:你提我加一个,然后放在里面这会议,所以他怎么能把这句话删了? - -**[00:24:52] 发言人 0**:也有些会议这句话不叫记录我,所以从这些看得出来,这个就是会议纪要本身还是有些问题。 - -**[00:24:58] 发言人 0**:就这个会议纪要这种模式,你记到自己手机上就很简单。 - -**[00:25:02] 发言人 0**:换句话说,你就是你你记到公司的那些名件,我觉得都是有点问题。 - -**[00:25:07] 发言人 7**:所以说要拿走了,要修改。 - -**[00:25:09] 发言人 7**:最后一下昨天。 - -**[00:25:11] 发言人 2**:的反而哪种是好的? - -**[00:25:13] 发言人 3**:那天像那个。 - -**[00:25:14] 发言人 0**:悟空他们这种方式,就大家开这个研讨会,他们主动记了,我去他们去研究,我觉得这个反而这种方式是可能最好的方式。 - -**[00:25:23] 发言人 0**:因为客户第一需求就俊且你下来以后还是用他们所有人要用上这个东西才行。 - -**[00:25:31] 发言人 0**:让他写日报,写到最后写的他写的他这个日报怎么写呢? - -**[00:25:35] 发言人 0**:他就写不写不好,只能靠这个把每天的这个记录下来才能写的好啊。 - -**[00:25:40] 发言人 0**:那你这个去弄内驱力就没有了你没有这个内驱力,你也不要日报,你也不要东西,他就没有这个要写,也没有要记的方式,对不对? - -**[00:25:50] 发言人 0**:我们就做个考核,是这的。 - -**[00:25:58] 发言人 7**:他。 - -**[00:25:59] 发言人 0**:们要做个日报核细。 - -**[00:26:11] 发言人 7**:节,你。 - -**[00:26:16] 发言人 0**:想怎么,我们财政部后来研究分析,因为你脱离群众时间长了有问题。 - -**[00:26:24] 发言人 0**:包括你们我上次说的,你们这个要出去跑,你们要出去跑,这种你们要你们自己定下,你们你们现你你们就你们你们你们自己到那个渠道商到那个一线去,你们有一做一个调研报告,好吧? - -**[00:26:39] 发言人 0**:这必须进渠道,不用进华,要华山价值要进华商,全是给你们报围,你渠道建渠道。 - -**[00:26:49] 发言人 3**:你渠道然后见那。 - -**[00:26:51] 发言人 0**:个客户去跑,你自己自己给。 - -**[00:26:54] 发言人 3**:我自己给我定个划华后三简单下咱弄,你等会儿说。 - -**[00:27:00] 发言人 0**:那个东西我觉得也不是那么的,我不是给你发了个视频吗? - -**[00:27:06] 发言人 0**:800万. - -**[00:27:06] 发言人 8**:900万,那玩意儿他。 - -**[00:27:08] 发言人 0**:妈的900差不多,跟我都想得出来那个逻辑。 - -**[00:27:12] 发言人 0**:那那东西就是他妈的就是个赌场,差不多就是好打信息仓。 - -**[00:27:22] 发言人 0**:这就是郝荣最喜欢干的事,就这种玩意,两边就是赌场。 - -**[00:27:30] 发言人 5**:这边的话其升这边上周是有一个视频互联网行业立体数联网场景。 - -**[00:27:36] 发言人 5**:然D的这个然后就相当于是你去鼓励去报了这个名额。 - -**[00:27:43] 发言人 2**:因为是技术里面。 - -**[00:27:45] 发言人 5**:现在我们对,也是王斌,也就实我们去年的商课的。 - -**[00:27:51] 发言人 2**:也是提示以后。 - -**[00:27:53] 发言人 5**:第二个是建设银行的山西省分务行的动力团动画的力监持监测。 - -**[00:28:02] 发言人 5**:有13家去投入这个业,上周也报告了这个事,现在的话应。 - -**[00:28:08] 发言人 0**:该这谁能想到很多。 - -**[00:28:12] 发言人 0**:陈志华的。 - -**[00:28:14] 发言人 3**:项目就。 - -**[00:28:16] 发言人 2**:是自。 - -**[00:28:17] 发言人 3**:己的项目,然后山西那个。 - -**[00:28:22] 发言人 0**:是的。 - -**[00:28:24] 发言人 3**:那个。 - -**[00:28:25] 发言人 5**:是我们的名排那排第样项百。 - -**[00:28:31] 发言人 0**:多。 - -**[00:28:32] 发言人 2**:四百多百多。 - -**[00:28:34] 发言人 2**:蔡总几个点。 - -**[00:28:36] 发言人 3**:现在他是4.5. - -**[00:28:38] 发言人 5**:是4.5. - -**[00:28:39] 发言人 0**:还是四五行,那就不管他,烂么值钱的。 - -**[00:28:44] 发言人 0**:好。 - -**[00:28:44] 发言人 5**:继续。 - -**[00:28:45] 发言人 5**:好,第三个就是那个下那。 - -**[00:28:51] 发言人 2**:主要就是软件的一些功能的一些沟通。 - -**[00:28:54] 发言人 5**:包括它的开发边界。 - -**[00:28:56] 发言人 5**:这个上周已经确认了,然后们现在在做相应开发,这些我们主要是跟他。 - -**[00:29:05] 发言人 0**:就之前一直说有些东西他们如果做不了,你把它拿下来。 - -**[00:29:12] 发言人 6**:能不能拿下来。 - -**[00:29:14] 发言人 0**:我们来开发了。 - -**[00:29:16] 发言人 6**:做不了是吧? - -**[00:29:18] 发言人 6**:现在他们坏,他们没发自都,但是那个。 - -**[00:29:23] 发言人 0**:那个东西就是他那。 - -**[00:29:25] 发言人 3**:个那个枪手自己找一个小包知。 - -**[00:29:28] 发言人 0**:但数字人的交付其实很难的,如果说关系不到就数字人交付。 - -**[00:29:34] 发言人 0**:其实我我估计这个刘静你们因为我们有个好处,我们这的这个叫大模型,现在够大。 - -**[00:29:40] 发言人 2**:你一般小公司拿不成。 - -**[00:29:43] 发言人 5**:200万. - -**[00:29:45] 发言人 6**:那有。 - -**[00:29:45] 发言人 8**:不是五。 - -**[00:29:48] 发言人 2**:罩子。 - -**[00:29:48] 发言人 8**:罩子。 - -**[00:29:49] 发言人 2**:看你看看。 - -**[00:29:51] 发言人 8**:之前看过他三个。 - -**[00:29:55] 发言人 6**:他三个软件我感觉是商业。 - -**[00:29:59] 发言人 6**:对,说白了做。 - -**[00:30:00] 发言人 5**:的是一些他的描述是很简单的。 - -**[00:30:04] 发言人 5**:但是现在就是使用部门现在觉得这个东西太简单了,就是连一个人都没有一个对话框的一种问询方式。 - -**[00:30:15] 发言人 5**:他们现在不认这个事,现在东司这边准备说,要不我们就已经外采一个,他们自己什办法? - -**[00:30:23] 发言人 0**:那你外采你看看他如果外采成本,它的要求,是吧? - -**[00:30:27] 发言人 0**:我觉得可以因为这东西参与,我把你的好你猜一下好不好? - -**[00:30:32] 发言人 0**:你说就是你说因为我们参与很简单,是什么逻辑? - -**[00:30:36] 发言人 0**:你反正给我钱,我给你做,我不参与你那风险,我也参与不参与你那其他风险这。 - -**[00:30:42] 发言人 2**:两个层面的事情。 - -**[00:30:45] 发言人 2**:对对。 - -**[00:30:45] 发言人 0**:就是你给钱给你做,就不参与你们内部的那些东西,我不给你背靠。 - -**[00:30:51] 发言人 2**:背是吧? - -**[00:30:52] 发言人 4**:你可以让。 - -**[00:30:53] 发言人 0**:李静他么去弄试试。 - -**[00:30:57] 发言人 6**:不过我觉得如果要我们真想做的话。 - -**[00:31:00] 发言人 2**:我就寄给我们的这个人评表。 - -**[00:31:02] 发言人 2**:我有。 - -**[00:31:03] 发言人 6**:因为这个是定制化,我们他们一直是想让我们去,是吧? - -**[00:31:07] 发言人 6**:不,我们还没去一次,我觉得去的话就。 - -**[00:31:10] 发言人 0**:我们这样做可以,我先可以。 - -**[00:31:12] 发言人 6**:你先底下先看看,我们先看的时候你先加,因为那个复。 - -**[00:31:17] 发言人 7**:杂度我觉得没问。 - -**[00:31:18] 发言人 7**:那个要。 - -**[00:31:20] 发言人 2**:他。 - -**[00:31:51] 发言人 3**:验收完全就是说我说的跟商户费用挂钩的,你说纯靠写出来我们去验收,我知道。 - -**[00:31:57] 发言人 0**:所以说就不所以说你不能参与。 - -**[00:31:59] 发言人 0**:我们要别人招标的时候,别人招标他要个什么东西,看我们行不行,对不对? - -**[00:32:03] 发言人 0**:我就是就好比什么停车,对不对? - -**[00:32:07] 发言人 0**:停车我们这不是还给了你钱吗? - -**[00:32:10] 发言人 0**:我们把那个做到是吧,我不管你也不验收,不管那个,反正你我给你的支持,你有钱管了,这个可以做,其他如果不行,你不做。 - -**[00:32:18] 发言人 3**:反正你要记得两家可。 - -**[00:32:21] 发言人 0**:视化业。 - -**[00:32:22] 发言人 0**:但我觉得就是我觉得我建议比如宋总你们还是去一趟。 - -**[00:32:29] 发言人 0**:我觉得因为毕竟你中了一个理工,因为这个标不小,对吧? - -**[00:32:36] 发言人 0**:那你如果他以后还有些其他什么技术客户搞1搞,那你说他如果持续的以后有些什么合作,这个项目里面的一些应该他有没有扩容,我就各级这项目里面的每个层面有没有扩容做。 - -**[00:32:50] 发言人 0**:其实都是可以的。 - -**[00:32:55] 发言人 0**:就有点远,太远了。 - -**[00:32:57] 发言人 3**:天远地多远? - -**[00:32:58] 发言人 3**:去宁夏才2个小时才重新出发,飞机才2个小时,早上一班,我们都可以赶快吃到宁夏吃早餐。 - -**[00:33:07] 发言人 2**:上。 - -**[00:33:22] 发言人 3**:八验收的可能性,你分开了有点难度。 - -**[00:33:40] 发言人 2**:你公司不开公司你不能分开。 - -**[00:33:42] 发言人 3**:你分开了,我们承诺产品。 - -**[00:33:44] 发言人 0**:会比你人工。 - -**[00:33:45] 发言人 6**:生意强很多,我们同时反馈还是很强。 - -**[00:33:48] 发言人 3**:只有把这块拿到我们手里,我们来做这个。 - -**[00:33:51] 发言人 3**:你说是人的小基层太远了。 - -**[00:33:53] 发言人 0**:他除非把他当时如果把云桌面给我,我还有点当时云桌面都拿不到。 - -**[00:33:58] 发言人 0**:因为他们现在为什么当时为什。 - -**[00:34:02] 发言人 2**:么那边的价格。 - -**[00:34:03] 发言人 5**:原是没有,他是在原来的。 - -**[00:34:06] 发言人 2**:学校来。 - -**[00:34:07] 发言人 0**:是原来下来的也有多少,当时飞这就是未台。 - -**[00:34:13] 发言人 5**:不是他他服务器都已经用。 - -**[00:34:16] 发言人 2**:到现场了,当时买有卫。 - -**[00:34:19] 发言人 2**:对。 - -**[00:34:20] 发言人 5**:就是难做对。 - -**[00:34:22] 发言人 6**:回去都做好了。 - -**[00:34:25] 发言人 0**:你们琢磨,看有什么机会好吧。 - -**[00:34:27] 发言人 0**:因为这个因为你现在中国大项目不容易,就把它叫什么呢? - -**[00:34:30] 发言人 0**:价值最大化,利益最大化是吧? - -**[00:34:32] 发言人 0**:然后那个就是延展,看怎么延展。 - -**[00:34:34] 发言人 0**:我觉得如果有可能我们的人能上一点,咱就做一点好吧,你就算清账呗,反正自己能算得清账,对吧? - -**[00:34:45] 发言人 0**:别亏,是吧? - -**[00:34:48] 发言人 5**:然后上周的话是更新了四个博客,然这周的话因为已经那个数,我们现在也有自己的办法,我们这周开始我。 - -**[00:34:59] 发言人 0**:们就这个数字,我觉得就是我有自己有算力对吧? - -**[00:35:04] 发言人 0**:你用的是开源的是吧? - -**[00:35:06] 发言人 0**:吴信。 - -**[00:35:07] 发言人 8**:不是,就是我们自己做哒搭的编排器。 - -**[00:35:09] 发言人 0**:我知道那模型应该是哪模型。 - -**[00:35:12] 发言人 8**:就是用的那个本地的本地模型。 - -**[00:35:14] 发言人 0**:就开本地模型,没有用那个,那你开源的模型你都可以多做,我觉得这个可以。 - -**[00:35:21] 发言人 0**:我觉得你们想一想,数字人道确实是一个产品,我觉这是百分之百的。 - -**[00:35:26] 发言人 0**:你给每个代表数做,每个代表给你1万块钱,他是会给你的你的代表书仅仅说给你个2万块钱,只要你给我宣传出去,比如说两万的代表出去得给你10万块钱,他都愿意。 - -**[00:35:37] 发言人 8**:我们再做几期把效果做出来。 - -**[00:35:39] 发言人 0**:我觉得可以取证。 - -**[00:35:41] 发言人 0**:因为华山不会给代表师经理做实践,华三他自己就是外包的对你如果做的好这个事儿,我觉得就这个产品,盛刚那天说的,坐在我旁边,坐在这个位置,盛刚说的话我是赞同的。 - -**[00:35:55] 发言人 0**:你家江浙人是有有有脑子的。 - -**[00:35:59] 发言人 0**:所这个数字能做好的话,我们给省代做,跟代表这经理做,给代表处做,那是有机会的。 - -**[00:36:06] 发言人 0**:你你小爽我说你看到我的数字人我只要按照我我我我我给你个就是我有个团队? - -**[00:36:12] 发言人 0**:我给你按照你的要求给你说多少期,对吧? - -**[00:36:15] 发言人 0**:一年包年他可能愿意的,因为他我操他这数字能做的,你给他看看你做的多好啊。 - -**[00:36:22] 发言人 0**:他说我看到我操做那么好,说白了只要于老板给我多点两个赞,当然以后就只要老板给我多点两个赞,我操我就值,对不对? - -**[00:36:32] 发言人 0**:对他就是形象,我者数字人是有价值的。 - -**[00:36:37] 发言人 0**:包括那省代,你看那省代怎么做的,都都都都很都都很一般,除非你找个小漂亮小妹妹,一般也不是不那么好找。 - -**[00:36:45] 发言人 0**:所以我觉得数字人这里面是有机会的。 - -**[00:36:48] 发言人 0**:我们的人一方面我们自己,一方面我们是找一些什么,就是去上课也罢,或者跟跟一些同僚去合作。 - -**[00:36:57] 发言人 0**:因为做数字人公司很多并不是我们会比别人做的好,只是我们可能关系会好一些。 - -**[00:37:03] 发言人 0**:因为毕竟是集团自己内部的关系公司。 - -**[00:37:06] 发言人 0**:之前给别人赚还不如给我做,对不对? - -**[00:37:09] 发言人 0**:那有可能代表着经理说他说得要做,或者给他亲戚,他旁边没那么多人,或者就是给下面一个让一个销售办,那销售再就中间赚个钱,在一层一层赚个钱,最后拿出那给代表经理的时候,他妈的那个12 15万是吧? - -**[00:37:24] 发言人 0**:可能最后成本是5万,我操他妈的每个人在里面倒个鸡毛。 - -**[00:37:28] 发言人 3**:所以还有一种方式,杨好,如果喜欢的是会一个月安排一个主管过来找你签服务费,给续点费,给我续点费。 - -**[00:37:37] 发言人 3**:对,你杨好也可以,今天让我甘西续点费,明天让那个谁吕小龙续点费。 - -**[00:37:44] 发言人 0**:而且还算的业绩,我这个可可写经。 - -**[00:37:46] 发言人 0**:所以我觉得数字人包括就么我就可以做,而且数字人就是今天早上我觉什么都发生变化。 - -**[00:37:54] 发言人 0**:你看高频交易量化高频交易我们都知道会很牛逼是吧? - -**[00:37:59] 发言人 0**:它高频对,就越是高频的越有就越趋势是高频的就会就会越牛逼。 - -**[00:38:05] 发言人 0**:你说原来发新闻可能一个月发一条是吧? - -**[00:38:08] 发言人 0**:新闻联播非要到晚上七点,那你现在可能每个小时都会有,对不对? - -**[00:38:13] 发言人 0**:因为参与了原来成本高,原来你新闻联播要减一天减几天,他要这样排排排一天一天排下去是吧? - -**[00:38:22] 发言人 0**:他只能一天播一次,你让新闻联播搞成12.1个,晚上一个,他不好搞,他有时候他只能搞一个,对吧? - -**[00:38:29] 发言人 0**:所以现在你让他每1个小时搞一个都可以。 - -**[00:38:33] 发言人 0**:所以我觉得这种趋势,就这股票交易也是你趋定于他妈的秒级交易的。 - -**[00:38:39] 发言人 0**:又厉害了,就趋近于晚上。 - -**[00:38:41] 发言人 0**:刘静我们下了班,你晚上这些他妈的还在那耗电,那就厉害了。 - -**[00:38:47] 发言人 0**:所以我觉得那个是方向,就是原来不是高频的,以后可能会走向高行。 - -**[00:38:53] 发言人 0**:因为有AI存在,所以像这种数字人这种东西,我还是你句话,我觉得一个月100条根本就不算了,那就升到那来给我整100条多了,能不能20到30条? - -**[00:39:05] 发言人 0**:你看,你随着你AI出来,你你你就从早到晚开始造,我操你总有人看到的。 - -**[00:39:11] 发言人 3**:你看到以后,你从你看总那两条是吧? - -**[00:39:14] 发言人 3**:点个赞。 - -**[00:39:16] 发言人 0**:他。 - -**[00:39:17] 发言人 3**:有。 - -**[00:39:19] 发言人 0**:奇一点,他的个就跟什么,原来我们销单是不是? - -**[00:39:46] 发言人 0**:他就是那个A时代,就是现在的A时代的一个高频,对不对? - -**[00:39:50] 发言人 0**:因为别人不知道高频,别人说我要做的东西要复杂,他我我要简单高频好吧。 - -**[00:39:56] 发言人 0**:刘姐,我这数字人,这个事你们下来交你,你也多参与。 - -**[00:40:01] 发言人 0**:我们有个理念,就要把事情做简单。 - -**[00:40:03] 发言人 0**:昨天中午我给你开个会,还是我告诉你个小秘密,你还没给我,我告诉你一个小秘密,后面三句话,三句半不说了,就简单。 - -**[00:40:13] 发言人 0**:你每天就这么烧,不用那么复杂。 - -**[00:40:15] 发言人 0**:告诉你一个小秘密,开什要告诉你个小秘密,那小姑娘对不对? - -**[00:40:20] 发言人 0**:你还没给我,就是简单高,简单高。 - -**[00:40:32] 发言人 0**:你看那版广告,最近的世界杯的广告,还有把罗纳尔都贴出来那么恶心的广告。 - -**[00:40:38] 发言人 0**:A参与什么喝水就喝外星人,我操那他妈的啥广告,但是照料他就反正就是他妈的就这个广告。 - -**[00:40:45] 发言人 0**:因为人家一眼都记住罗纳尔都是外星人,然后这两个一结合,管你啥东西,反正他就记住。 - -**[00:40:54] 发言人 5**:我试了一下,就是我看一下。 - -**[00:40:56] 发言人 3**:发了这么多评论的好少。 - -**[00:40:59] 发言人 3**:那谁那你还得用评论。 - -**[00:41:00] 发言人 0**:你先去这那底。 - -**[00:41:02] 发言人 3**:但无所谓,不可能也不行。 - -**[00:41:04] 发言人 0**:你一会评论,有些人我可能会去评论这东西是没人评论,评论。 - -**[00:41:09] 发言人 5**:就我昨天这个我见朋友说的这儿,就是我昨天做那个就是我给我们家小朋友做了一个像皮克斯的那个数字动画,一分半钟,全自动的。 - -**[00:41:24] 发言人 5**:我从最开始写我们到最后整个做出来大概就花了一个半小时。 - -**[00:41:29] 发言人 5**:然后我看了一下在C档市场所烧的个api的价格的话,大概是花了20。 - -**[00:41:36] 发言人 5**:他因为他那个很准,大概花了25、26块钱,他就可以把一个一分半钟的,大概接近两分钟这样的一个做法全自动。 - -**[00:41:47] 发言人 5**:就说明的话就是说你说的这个就是这个视频的高频的话,现在已经已经已经完。 - -**[00:41:54] 发言人 0**:全可以做得到,最好是本地部署模型,因为实际档次还是贵的。 - -**[00:41:59] 发言人 5**:对对对对。 - -**[00:42:00] 发言人 0**:但是本地的,就是你你看现在很多人都在,我也同时他退休了没事干,每天发,但是他都是钱。 - -**[00:42:07] 发言人 0**:对,因为个人操作是钱。 - -**[00:42:09] 发言人 0**:但是我们如果有一个模型,我们毕竟这还有什么几百批的算力的的,但是几百G的算我也有。 - -**[00:42:16] 发言人 5**:就是他可能做了一种,就做数字可能没有问题,但是做那种可能就类似于像。 - -**[00:42:23] 发言人 0**:电影这个。 - -**[00:42:24] 发言人 0**:我知道那那那个那个那个不是我们的,想反正那个做不到太难,因为短那个那个太难了。 - -**[00:42:33] 发言人 3**:新华三说他们有生态,专门是运作运营给彭古、澎古等地。 - -**[00:42:42] 发言人 5**:上海上午的的那就。 - -**[00:42:43] 发言人 0**:是运营那些短期的团队。 - -**[00:42:46] 发言人 0**:他们就是我觉得像那种,你比如说C档这种这么高级的视频,我觉得未来会产生于哪里呢? - -**[00:42:54] 发言人 0**:你比如如果企要有他专业是做那个短距的,那边角料帮你做点,因为他这个脱贫也多,边角料帮你做点那种他就流出来了,他是吧? - -**[00:43:04] 发言人 0**:他就这么流出来了,但是让我们去做这个就是他的算力空的时,让我们去做点长视频,我觉得我们还是挺难的。 - -**[00:43:12] 发言人 0**:因为你做长视频如果用C档,我觉得就不是我们的方向。 - -**[00:43:16] 发言人 0**:因为这个事情我觉得我们的方向就是数字,还是面向于企业简单的数字。 - -**[00:43:23] 发言人 0**:自己不算利,然后这个简单一些,然后就比别人讲们,因为这个东西可能名字要比别人好看一点就行了。 - -**[00:43:33] 发言人 3**:好像是想用住这个生态,卖他的那个土文小镇,意思是说各按渠道南区委感兴趣就是把算力给建起来,他把这个团队拿过来,他这个算力专门做这个短短句的生态。 - -**[00:43:47] 发言人 0**:这是短的,要你那算,你相当于我给你找个下家了,我叫完以后给你找个下家来买,但光是短。 - -**[00:43:55] 发言人 3**:他不找一个,他找多少个,反正是他说他他他完说跟南安区类似。 - -**[00:44:02] 发言人 0**:你畅你你你比如像那种哪种的可以,完了你说他那个如果像这种他他那个那那种小程区太小了,你比如我找这隔壁电影制片厂,隔壁电影制造厂和我同力小队一起联合在你这儿。 - -**[00:44:14] 发言人 0**:那那那你愿意,你说我找了,你说我找了个游击队,我操那人家觉得你那游击队一个你你你我建起来花了十个亿。 - -**[00:44:21] 发言人 3**:他妈的给运营只花了只给赚了1000万。 - -**[00:44:24] 发言人 0**:你找了个游击队来,你那个游击队才多少人? - -**[00:44:27] 发言人 0**:我觉得他那个铜力小镇在旁边的生态,那必须是一个必须得一个团。 - -**[00:44:32] 发言人 3**:队来协做数据中心的。 - -**[00:44:34] 发言人 2**:阿里阿公就这么说。 - -**[00:44:35] 发言人 0**:就跟那万达商场一样。 - -**[00:44:37] 发言人 0**:万达商场为什么能跟万达商场我了我建好商场以后,老太太睡觉什么那玩。 - -**[00:44:44] 发言人 2**:尔法知道什么都进来了。 - -**[00:44:46] 发言人 0**:我我我有一套名单,我一见他们都过来,然后我带着他们的联盟,我带着我们的合作的五个案例,他们都过来。 - -**[00:44:53] 发言人 0**:那这样是可以的是吧? - -**[00:44:54] 发言人 0**:那万达的你你你你你你你有本事,你你从经有一个你的算下面也有老太太水饺,你有什么什么儿童童车,你有什么电影院,你有一大堆东西,你有这个吗? - -**[00:45:06] 发言人 0**:你没有,你就是找了一个是不够的。 - -**[00:45:08] 发言人 0**:有,但是未来确实是你要真的这个我说的我打这个比方,我觉得非常好。 - -**[00:45:13] 发言人 0**:就是你如果你能把算理解好,就跟万达商场一样,万达商场的模式你学不学会? - -**[00:45:18] 发言人 0**:你要学的会,你那个土利小镇你就可以,你学不会还是样板。 - -**[00:45:24] 发言人 0**:我觉得样板的意思,5万达第一个我为什么我为啥我念林你牛逼,那么多人做商业,为啥他做桥就是样板的意义。 - -**[00:45:33] 发言人 0**:这王健林是属于东北人里面比较牛逼的。 - -**[00:45:36] 发言人 6**:但是四川人我认识四他比较牛逼。 - -**[00:45:38] 发言人 0**:因为我觉得工业的人的他比较牛逼。 - -**[00:45:41] 发言人 0**:他确实因为。 - -**[00:45:42] 发言人 3**:他他整个商业模式。 - -**[00:45:44] 发言人 0**:可能华那个生态弱,他那个商业是早,他自己不是说华能想到这个办法能做起来的。 - -**[00:45:50] 发言人 0**:我觉得王里确实高手中的高手,真的那肯也绝对厉害。 - -**[00:45:54] 发言人 0**:那不是一般人去的。 - -**[00:45:58] 发言人 5**:然后那个无人机项目的话,就是南的一网土飞这个项目。 - -**[00:46:03] 发言人 5**:他们下等上目之后去见过南这个一把手,去见那个他们也明确说了,就是难以动力,明确的预算为下达推向上涨。 - -**[00:46:16] 发言人 5**:就是现在核心还是这个钱从哪出。 - -**[00:46:22] 发言人 0**:南就是去。 - -**[00:46:24] 发言人 5**:那个。 - -**[00:46:25] 发言人 2**:最的。 - -**[00:46:27] 发言人 2**:徐。 - -**[00:46:28] 发言人 0**:们,我操,我觉得升官发财他妈的不是大家都他这个动力应该是吧? - -**[00:46:49] 发言人 0**:应该大家都这是一个动力,这应该是所有人都趋势趋向于赶快换新书记,谁在阻拦? - -**[00:46:57] 发言人 0**:现在就是。 - -**[00:46:58] 发言人 2**:四等没,现在就重新你委会了的,市委会不了的,他们换一把手。 - -**[00:47:09] 发言人 2**:公安不是市长,我是说书记,书记不是应该袁家军他们那个市。 - -**[00:47:16] 发言人 8**:市长市常委,市长常委常委同意的。 - -**[00:47:19] 发言人 0**:好像常委就开不了了,常委现在找了三常委,副书记现在是找三个仓品,少三个仓品,还有几个场品,七个仓位剩4,那四个排,那不能干事了,我操。 - -**[00:47:32] 发言人 0**:因为这些事情其实肯定是。 - -**[00:47:34] 发言人 7**:请的连连正常的晋升都行。 - -**[00:47:37] 发言人 3**:不是,不仅仅是这书记,我朋友在那,我怀疑妈的,我朋友在说家政可能压力在公安。 - -**[00:47:44] 发言人 3**:张明江从跳舞之前,那些调令都已经送到市区了,现在都现在全部暂停。 - -**[00:47:51] 发言人 3**:我觉得那那那那个书记,他就从一个区县调到主城,全部暂停这个事儿。 - -**[00:47:56] 发言人 0**:就说明这种工作效率不,你是说这种工作效率其实很麻烦,非常就说程很大的。 - -**[00:48:06] 发言人 5**:他也为有可能是他甚至所有人他就不符合组织的。 - -**[00:48:13] 发言人 3**:个四个人。 - -**[00:48:14] 发言人 2**:或者说投国。 - -**[00:48:15] 发言人 3**:家要求,两个反两个国家要求。 - -**[00:48:19] 发言人 3**:对,不满上周不举优优优活动必出走转转。 - -**[00:48:24] 发言人 3**:上东一中在搞优湖活动,就像是食茶之类的对,喝喝水湖湖水湖那,他们内部叫优湖行动,其实就是每袁书记带着剩五。 - -**[00:48:37] 发言人 0**:余的班子。 - -**[00:48:38] 发言人 3**:每个地方去叫油湖。 - -**[00:48:40] 发言人 3**:这个就我煤房里边镇治煤房里边有抛,但是说事现在我压力挺大的,我就一直盯着。 - -**[00:48:50] 发言人 6**:离子,所有的应该从。 - -**[00:48:52] 发言人 3**:那个谁,两江新区的公安局局长也没认命。 - -**[00:48:57] 发言人 0**:前面也对,因为这个叫什么呢? - -**[00:49:01] 发言人 0**:这个就是就定的越少,政府的那个叫抓手就越小,市场的经济就越强,是吧? - -**[00:49:07] 发言人 0**:就是越是人家市场经济,西方市场经济越小,政府那现在咱们也走向小政府是吧,抓了享受活子,也对他妈的多多一个人上来,他又要贪,他妈的又要造项目,那项目不造,我们也少花点钱。 - -**[00:49:23] 发言人 0**:家印象我们这几看我少一个人,那少花点钱又少花点钱。 - -**[00:49:29] 发言人 0**:一个初户至少得一个亿,自己得挣一个亿,一个挣厅他妈至少得5000万。 - -**[00:49:37] 发言人 2**:我少发了。 - -**[00:49:38] 发言人 0**:这么一个正厅,我们就少他妈的我认为少信车文哥至少就少他至少少拿他。 - -**[00:49:47] 发言人 2**:少拿5000万. - -**[00:49:48] 发言人 0**:对不对? - -**[00:49:49] 发言人 0**:我心里也开心,这也对我这对百可能心里就少几个。 - -**[00:49:55] 发言人 2**:那少就少万。 - -**[00:49:57] 发言人 0**:就跟那个谁。 - -**[00:49:58] 发言人 2**:一手。 - -**[00:49:59] 发言人 3**:抓不就完了吗? - -**[00:50:00] 发言人 0**:就跟那个就跟原来拍的那个电影一样,那个谁拍的那个拍的。 - -**[00:50:06] 发言人 3**:那个什么城,我们鹅城是吧? - -**[00:50:09] 发言人 0**:鹅城又换领导,子弹百个导就拿一个一走,你说咋整? - -**[00:50:14] 发言人 0**:你说你说这个你说这个还不如,因为他钱部的标配就是一个亿的话,标配5000万,那就就正常。 - -**[00:50:23] 发言人 0**:就是你如果说是查,平均下来肯定有,那就查不查你的问题,我想。 - -**[00:50:28] 发言人 6**:一个。 - -**[00:50:30] 发言人 0**:项目对我操狠了,我那天我跟我。 - -**[00:50:44] 发言人 8**:说一。 - -**[00:50:46] 发言人 6**:问。 - -**[00:50:47] 发言人 0**:那荣他可能觉得他他都到政府了,他会我拿两个亿。 - -**[00:50:53] 发言人 0**:他妈的他他不能跟父部同为伍的。 - -**[00:50:57] 发言人 6**:他不能低不。 - -**[00:51:22] 发言人 0**:平均下来腹部一个亿挣取5000万,我觉得差不多差不多就认不了。 - -**[00:51:27] 发言人 2**:那三亿。 - -**[00:51:29] 发言人 0**:就这么赚的,我操。 - -**[00:51:30] 发言人 0**:所以说少认命一个,你老百姓的话还是幸福一点。 - -**[00:51:34] 发言人 3**:我操。 - -**[00:51:34] 发言人 3**:那上次说豆花说的是假的那个彭彭彭彭丽彭彭建彭那个女的那个那个那个律师,他说那个胡和罗丽的是跟那个钱包一点关系没有,是另外的事,说是豆瓣送的是假的是吧? - -**[00:51:52] 发言人 3**:零说。 - -**[00:51:54] 发言人 0**:的,但是。 - -**[00:51:57] 发言人 3**:我觉得三。 - -**[00:52:01] 发言人 0**:元。 - -**[00:52:02] 发言人 6**:光电这。 - -**[00:52:05] 发言人 0**:个。 - -**[00:52:06] 发言人 2**:事应该。 - -**[00:52:08] 发言人 0**:是三安光。 - -**[00:52:12] 发言人 3**:电的假包假的。 - -**[00:52:16] 发言人 0**:但是我觉得U有可能是真的,因为这个东西新型犯罪这个东西百分之百有的。 - -**[00:52:22] 发言人 3**:那怕是个彭劲手里有可能有,但是那个东西是跟他哥有关,跟他哥哥说,他哥哥是个怎么说的,反正跟华他跟松华斯那华三董事长,这个跟他哥有,肯定是跟他哥有。 - -**[00:52:37] 发言人 3**:和你说一个亿的。 - -**[00:52:46] 发言人 0**:项目,不是我们认为在里面有水,他们自己都认为他妈的有人在里面赚了钱。 - -**[00:52:54] 发言人 0**:你说这都已经变成了他妈的谁也敢造项目,谁也敢做,是吧? - -**[00:53:01] 发言人 5**:继续我们这个M进的话也是上那叫自停云的。 - -**[00:53:05] 发言人 5**:现在自听云的话,上周也是讨论了这个化开始在在你这个。 - -**[00:53:10] 发言人 0**:知云就是这个这个这个主要是云动面子,就这个终端这个事儿,我觉得还是,你这个还是要把它简单化化,而且我们自己得用起来,如果自己用不起来了,拿着去得它挺软的操。 - -**[00:53:24] 发言人 0**:那上周他们那你买的那个你准备吗? - -**[00:53:29] 发言人 0**:买的那些的那。 - -**[00:53:32] 发言人 7**:个那个东西了吗? - -**[00:53:34] 发言人 7**:吗? - -**[00:53:34] 发言人 7**:摆摆那摆我的吗? - -**[00:53:37] 发言人 7**:还是和对,上周不是投了公包了几次,其实我觉得包括教育和医疗。 - -**[00:53:50] 发言人 7**:我这边就个简单说一下,我说找到一点感觉,就是好像我们在这几个场景都会用过这识的,也都会用到多元的数据采集。 - -**[00:54:01] 发言人 7**:其中一个原因就是公频,因为教育里面有课堂,医疗里面有听问诊,然后办公里面有会议,然后再加上知识库太大了。 - -**[00:54:12] 发言人 0**:知识库不容易形的产品知。 - -**[00:54:16] 发言人 7**:不是,它是一个基本环境,我们要把它和几个数据源结合起来,音频的,普通文件的,还有系统mp的,尽量做的标志化一点,三个行业都能用。 - -**[00:54:30] 发言人 7**:我觉得这条路应该是。 - -**[00:54:32] 发言人 0**:走得通的,我觉得我们要去推这个。 - -**[00:54:35] 发言人 0**:因为上位的悟空也看了一遍,就是word body。 - -**[00:54:38] 发言人 0**:你们下来也可以再找找,把word body叫过来看看。 - -**[00:54:42] 发言人 0**:我觉得我们要去做这条路。 - -**[00:54:45] 发言人 7**:其实挺难。 - -**[00:54:46] 发言人 7**:我们我们不做我们也不做悟空,我们还是做聚焦于聚焦一个AI实际场景落地的一个东西。 - -**[00:54:53] 发言人 0**:对你要做小,不是做大。 - -**[00:54:55] 发言人 7**:是做小,就是利用多元的数据汇聚,然后通过知识库呈现一个场景能力出来。 - -**[00:55:01] 发言人 7**:你们部署一个那个库。 - -**[00:55:03] 发言人 0**:咱叫知识库也可以叫什么也可以你们部署一个这个东西,是吧? - -**[00:55:08] 发言人 0**:这个东西整个部署是简单的,然后底下这个对。 - -**[00:55:12] 发言人 7**:那个费对,差不多就是这样。 - -**[00:55:14] 发言人 7**:我就我我突然觉得昨天那那天星期五会议开,我觉得到会议结束的时候,我再收集个会纪。 - -**[00:55:23] 发言人 7**:我在战助上来说,我说基本上把这个东西想通了,我就把这个东西画了。 - -**[00:55:28] 发言人 7**:画没画完,我觉得感觉是做得通的,这个东西对我们来说是比较合适的。 - -**[00:55:34] 发言人 7**:在三个行业,不是三个行业,普通办公不止一个行业用,就是办公、医疗、教育我觉得都能做出成熟的。 - -**[00:55:42] 发言人 0**:我觉得终端我觉得还是这样的,比如像这个就够,就这个也行。 - -**[00:55:47] 发言人 0**:要么然弄个二维码拍一下,一个灯将你去深圳里面看一下,拍一下亮就拍就完了。 - -**[00:55:54] 发言人 0**:不要屏幕你拍一下,就是一个二维码,你拍一下就停。 - -**[00:55:58] 发言人 0**:比如我们过来就跟那个儿童玩儿童玩的那个租的就是叫什么共享单车一样。 - -**[00:56:05] 发言人 0**:儿童玩的东西过来扫个码,用完自己把领走,甚至这个领走都不能。 - -**[00:56:10] 发言人 0**:如果是服务器上不存,更他妈牛逼,我操。 - -**[00:56:14] 发言人 3**:就他直接。 - -**[00:56:14] 发言人 3**:如果你是说。 - -**[00:56:23] 发言人 8**:来做,因为我们去年买的有,然后他本身带一个很小的屏,那个屏就拿它显示二维码就行。 - -**[00:56:30] 发言人 8**:还有就是那个录音时候的一个状态。 - -**[00:56:33] 发言人 3**:你干嘛要用个平静的下维码。 - -**[00:56:37] 发言人 0**:我都。 - -**[00:56:42] 发言人 2**:这32带吗? - -**[00:56:50] 发言人 7**:他带。 - -**[00:56:53] 发言人 0**:不带,他。 - -**[00:56:57] 发言人 8**:可自配成。 - -**[00:57:03] 发言人 0**:你拿来给我看看,你们研究员给我看好吧。 - -**[00:57:06] 发言人 5**:现在还有这个事情,上周我不是说拿了移动,就王春他们下面有一他给我打了好长时间电话,他就说因为他们现在在用那个试用。 - -**[00:57:17] 发言人 5**:他就跟我们说,他就跟我提了两点,他说第一个是他们如果出去找的话,一定要有一个硬,他如果不用硬件的话,他们转不了服。 - -**[00:57:26] 发言人 5**:他说我们对他说硬转服务这个事情对我来说是至关重要的。 - -**[00:57:31] 发言人 0**:所也就是说你我我理解的意思就是说如果这个硬件越大,他不转服钱越多。 - -**[00:57:38] 发言人 0**:不不不。 - -**[00:57:39] 发言人 5**:他是这么跟我说的,他说你们不要去做那种,我也跟我们现在这个硬件有什么什么功,他就会给我们的一个建议。 - -**[00:57:48] 发言人 5**:他说你们可以去做那种,就是因为会议室,他说政企一般都比较多,他说你可以去多一些点,但是成本比较低。 - -**[00:57:56] 发言人 5**:比如说一个会议室我给放三个点、四个点、五个点,他说你你你他说这个对客户来说是正常的。 - -**[00:58:04] 发言人 5**:他说他们现在任何一个会议室,他们只要去做会议电视,他说跟人家配终端都配一大堆。 - -**[00:58:12] 发言人 5**:他说你看那种政府开会或者什么一个两个,他说两个人正对面。 - -**[00:58:18] 发言人 0**:他放两个带着话。 - -**[00:58:20] 发言人 0**:这个东西能做那个吗? - -**[00:58:22] 发言人 0**:就说可以放做那个那个呃,叫什么跳线来着,叫叫什么技术外卖。 - -**[00:58:28] 发言人 0**:麦能通过麦连上以后串,取那个最好声音吗? - -**[00:58:35] 发言人 7**:麦克风一般最多的就。 - -**[00:58:40] 发言人 0**:3到4个,可以做外多了不? - -**[00:58:46] 发言人 0**:你3到4. - -**[00:58:48] 发言人 3**:个够了,我操。 - -**[00:58:51] 发言人 0**:你的桌子。 - -**[00:58:53] 发言人 7**:我的意思什。 - -**[00:58:56] 发言人 0**:么呢? - -**[00:58:57] 发言人 0**:你把。 - -**[00:58:58] 发言人 5**:这个你麦一个。 - -**[00:59:01] 发言人 0**:两个、三个加,就是你这个其实还是不行的,为啥? - -**[00:59:07] 发言人 0**:你主要其实最重要的是收音,你不是看你把你把它做反了,你做成一个他妈的你去看它干嘛,就是你做成这个或者比这小哒哒哒哒哒放四五个,就一个二维码,然后用完扫走,平时丢那你想用就扫。 - -**[00:59:23] 发言人 0**:而且这个东西我觉得还有一个确实是你你比如说那个比这个再小一点,我觉得这个就很好。 - -**[00:59:31] 发言人 0**:你你你你那个你比如说他们腾讯那个开会,那个那个开会他这个放那他们录音录到自己,因为他那个腾讯他为什么? - -**[00:59:39] 发言人 0**:因为云是阿里钉钉是录到他自己家里的去,对不对? - -**[00:59:43] 发言人 0**:那一般企业是没有家里云的,他们录到他自己这个公司里面录个是吧,那里面去我我觉得我觉得。 - -**[00:59:50] 发言人 5**:这种大小的就对,就是给他搞一堆,然后一个会议室里头放放。 - -**[00:59:55] 发言人 5**:因为他们现在那种,他只知道他们现在,他们现在政企去给人家布的那种和一个会议室里的那种死用设备。 - -**[01:00:02] 发言人 7**:要放很多个,但是有限的。 - -**[01:00:04] 发言人 7**:对,他们做一个无私先做死,这是你就是实际他。 - -**[01:00:08] 发言人 2**:们难道不是实消备那些钱不需要我们做,那是有些人不需要我们做。 - -**[01:00:13] 发言人 7**:他直接一点插到我们上面就完了。 - -**[01:00:15] 发言人 7**:你们研究就教你研究。 - -**[01:00:17] 发言人 0**:就话你们下来,你们反正你们每个人都可以研究,我就教你。 - -**[01:00:21] 发言人 0**:那你牵个头,你管这个就是叫什么? - -**[01:00:23] 发言人 0**:这个就是这个盒子,这种盒子如果带外形的,最好的就是这个无线,不要有线。 - -**[01:00:29] 发言人 0**:我觉得这个不行,这个他妈的,但是也没关系,因为我们有一版是吧? - -**[01:00:36] 发言人 0**:以后一定要去做这个高级的再手呗,如还如果到画面上。 - -**[01:00:40] 发言人 7**:好的,那我现在就是一拖三,那一个主的拖三个负的。 - -**[01:00:45] 发言人 7**:这个就是纯石英的,这纯石英的对,但是你要做的话,如果我们去把改了这个我觉得你的成本兜不住。 - -**[01:00:55] 发言人 7**:你无非就是把这个怎么把最终那个音频输入插到我们的终端上。 - -**[01:01:02] 发言人 5**:能结合。 - -**[01:01:02] 发言人 5**:对,对。 - -**[01:01:03] 发言人 7**:就是这啥意思? - -**[01:01:04] 发言人 7**:它有个接收器,接收器插插这插在我们的,比如说这个你看它最终是通过一个有线插在我们的一个终端上。 - -**[01:01:13] 发言人 7**:这个终端指是和笔记本,它它都相当于把音麦克风进行扩展,这个也一样,它有后你看有线的东西,这个U盘的。 - -**[01:01:21] 发言人 0**:东西相当于它带不带充电,它自己不带电。 - -**[01:01:25] 发言人 3**:肯定要带电电它怎么适应? - -**[01:01:27] 发言人 3**:里面肯定要带电,充电不这个就不带充电,它是有心的。 - -**[01:01:32] 发言人 3**:我就说我就说,我就是我看。 - -**[01:01:35] 发言人 8**:应该是要插一个供电的,我之前我跟重庆他们那边专门做这种会议实验的那个团队他们沟通过。 - -**[01:01:43] 发言人 8**:其实他们以前做企业,你知王帅他们以前做企业,一个比较好的这种一个会议这样的一个石音平,石音加设备加部署调试二十多瓦。 - -**[01:01:54] 发言人 8**:其实他们的意思就是说你就不用再做这一块了。 - -**[01:01:58] 发言人 8**:你后面你加个算力,把它的改造成智能化,是吧? - -**[01:02:03] 发言人 8**:就相当于把它升级了。 - -**[01:02:04] 发言人 8**:然后这个时候你里面你加个10万块钱,因为他以前可能已经花了。 - -**[01:02:09] 发言人 0**:现该有了你。 - -**[01:02:10] 发言人 0**:但是你如果做改造,你觉得这个里面有两个问题,就原来有的你要把它搞掉,为啥呢? - -**[01:02:17] 发言人 0**:原来有的它会带线那种,对不对? - -**[01:02:19] 发言人 0**:你现在肯定无限制趋势,你原来做了几年了是吧? - -**[01:02:23] 发言人 0**:我觉得要还是你你你不卖他妈的,那就你挣不了钱了,你给人家做个装修对吧,全力救了我操,那你挣啥钱? - -**[01:02:33] 发言人 8**:那一般来说那种企业他那种会议系统的话,它基本上还是是每个座位前面会有一个麦克发言的时候就是切到对。 - -**[01:02:44] 发言人 3**:切到他那种麦克。 - -**[01:02:47] 发言人 0**:不需要你改造你就改到主机上,那就这接上去接音频这个就果你前面有个叫什么面,有个就的个文字转语音的。 - -**[01:03:02] 发言人 0**:你这里面有点算力,那你就不一样,对是吧? - -**[01:03:06] 发言人 0**:对你盒子里面有点算力你就不一样。 - -**[01:03:09] 发言人 0**:你如果说你盒子里有点算力,然后带无线你就好很多。 - -**[01:03:14] 发言人 0**:你可能你就你你就你机会有打击,你就充电宝在这,你就机会也大。 - -**[01:03:19] 发言人 0**:你现在就把充电宝放进去是吧,你放个充电宝吧,然后那个可以录几个小时,然后带点小算粒,然后888钱充。 - -**[01:03:34] 发言人 0**:好,继续。 - -**[01:03:35] 发言人 0**:你东西弄完,每次在想这事的时候,他妈的。 - -**[01:03:39] 发言人 5**:然后最后一个就是那个数字助理和云桌面。 - -**[01:03:43] 发言人 5**:这个的话上周的话已经初步完成了这个财务的助理开发,本周的话我就和我们就开始在这个就是找一些试点,我来你们抓紧试点。 - -**[01:03:54] 发言人 0**:过你还有那们几个抓紧时间跑几次跑。 - -**[01:03:57] 发言人 5**:然后跑通了一个。 - -**[01:03:59] 发言人 5**:下周7月1号开始的话,我们就无纸化财务运作。 - -**[01:04:04] 发言人 5**:但这个我觉得到时候因为这里头有两点,第一个就是那个和模型。 - -**[01:04:11] 发言人 5**:因为上周纪哥说那个模型可能还就是上周我们讨论的是要和我们自己那个H 20那个模型算力结合,我们还是尽量的结合上去,以后我们报账的话,我们就用H 20就把这些东西,这是第一点。 - -**[01:04:31] 发言人 5**:然后第二点的话就是怎么和云桌面到底他们财务的那些员工,他们要不要把那个叫财务数字助理这个东西放到云桌面上面去,要不要先给他们看云桌面,这个好像我还没有完全调整进去。 - -**[01:04:50] 发言人 5**:全就最后一点,就比方说外面李小涵他们要不要放到。 - -**[01:04:58] 发言人 7**:路面上面去。 - -**[01:05:00] 发言人 0**:知道吗? - -**[01:05:01] 发言人 7**:把那那个你不是。 - -**[01:05:04] 发言人 0**:那天不是说了吗? - -**[01:05:06] 发言人 0**:那天把知库拿起来,不是你你那个笔记本的不笔记电脑。 - -**[01:05:13] 发言人 7**:那个端加控制方。 - -**[01:05:16] 发言人 7**:现在所有的人力还在做自体。 - -**[01:05:19] 发言人 5**:那就是那就是我们先不管云桌面,我们因为他不用云桌面,他就先把这个不管云桌面。 - -**[01:05:25] 发言人 0**:对他那电脑是没法用语桌面,那电脑它笔记本电脑就是做一个那个叫什么? - -**[01:05:31] 发言人 0**:我们可以做一个云桌面纳宝,我们叫我们可以叫你就你那个那个那个是吧? - -**[01:05:36] 发言人 0**:叫这种方式,如果能做好这个纳管就控制行为,能把这个做好,那我们就可以去做一个华智的财务了,就可以全部更换。 - -**[01:05:44] 发言人 0**:对我更希望你们做一款这个,因为笔记本电脑还是一个从来的小开的,要开的还是做那个。 - -**[01:05:52] 发言人 5**:也有几种方式,这个你不在,那个不在,就是你也可以装一个云乐片的客户端。 - -**[01:06:00] 发言人 5**:就是我平时我做这些事情的时候,我在我的电脑上,我要审核报销的时候,我就先登录到。 - -**[01:06:09] 发言人 0**:现在有服务器。 - -**[01:06:12] 发言人 7**:对对对,没资给他还是做拉管,那做拉。 - -**[01:06:18] 发言人 0**:管就简。 - -**[01:06:19] 发言人 7**:单一些。 - -**[01:06:20] 发言人 7**:但是华也会有资源,华智哪这么多资源的。 - -**[01:06:25] 发言人 5**:他这他400工让这两事就两个个接近事。 - -**[01:06:31] 发言人 5**:们把我的数字助理这件做起来了,这个我觉得是没有什么问题。 - -**[01:06:37] 发言人 5**:第二个是如果我们云桌面要和数字助理结合,那就我这个就相当于我必须要跑到这个场景里头去。 - -**[01:06:45] 发言人 0**:就是我我云端面的数字助理结合云我现在慢慢理解,那天说我用云动就是个工具,有它没它是吧? - -**[01:06:55] 发言人 0**:就是都可以,这是第一第二,如果我们要做叫中端大馆、数据大馆、农家大馆和这个蒜泥大馆的话,我觉得就是现在当前的我们这个包括文们和这个和这个华智这种,就笔记本电脑是常态是吧? - -**[01:07:13] 发言人 0**:大央企业他可能有一的变化,或者你学校的些特别要求。 - -**[01:07:17] 发言人 0**:这种常态情况下,你让他改造,你比如说他那财务让他改造,这个还是挺难的,就做胖终端,胖终端里面就是做这种取个娱乐面的名字。 - -**[01:07:27] 发言人 0**:但实际上是对电脑进行这个就纳我就纳我电脑,然后把电脑的所有行为给他管起来。 - -**[01:07:33] 发言人 0**:那在这种情况下,他电脑放了龙虾,那有数是吧? - -**[01:07:37] 发言人 0**:心里有数,我就得我就走是吧? - -**[01:07:39] 发言人 0**:只能走这个里。 - -**[01:07:41] 发言人 2**:那天聊了吗? - -**[01:07:42] 发言人 2**:好。 - -**[01:07:43] 发言人 0**:也可以,我们都因为你如果不专,也你如果不拿过中专的话,你怎么在中专上放不下? - -**[01:07:52] 发言人 7**:很很简单一个逻辑,因为现在存的么间已经一万多块钱一个点了,你再去推广未来到27年也有可能知。 - -**[01:08:03] 发言人 0**:道今年这个但纯的v di就是未来扩容,其实你你你找他过这个农家,我找他不一定跟你玩。 - -**[01:08:11] 发言人 0**:因为你就是一个你在纯的维碟上,你比如我去做龙虾。 - -**[01:08:16] 发言人 7**:做就可以可以做,只要它成本它受得了,他对你安全有极高的要求,那你在维di上做,我们内在架构,我如果按照内在架格来玩,无论V Y V di还是P C都可以玩。 - -**[01:08:30] 发言人 7**:我就是在pc要做拉广过后,把pc的那个。 - -**[01:08:33] 发言人 0**:我的意思就原来我没有那么多纯的老的微店用户,你们要做龙虾的话,我们有什么优势呢? - -**[01:08:41] 发言人 7**:就因为是有我的vi所以我去做龙虾就比较其实就是落地,你要把整套用起来,你看那个周,我在看那个移动的,你要把它用起来。 - -**[01:08:51] 发言人 7**:你后台得又算你,你得把这识户给布了,是吧? - -**[01:08:55] 发言人 7**:这些东西对一般的企来说不会去弄这个他不会弄的。 - -**[01:09:00] 发言人 7**:现在你只要把这个时间差。 - -**[01:09:02] 发言人 3**:我就把这个东西给我们。 - -**[01:09:04] 发言人 3**:在的是三四十万的正在用的客。 - -**[01:09:06] 发言人 0**:就是我这边走只能用去的龙虾交就可以了。 - -**[01:09:10] 发言人 0**:话大概就有这个逻辑。 - -**[01:09:15] 发言人 0**:如果老的那个如果老的微店用户如果要做龙虾,因为我是他的d的供应商,只有我是最方便的,或者说只有我如果要别人要龙虾,还得跟我再来谈。 - -**[01:09:30] 发言人 0**:那我的优势。 - -**[01:09:32] 发言人 7**:就是我们我们在做那套什么龙虾的时候,你本来就要涉及权限的一致性。 - -**[01:09:41] 发言人 7**:你权限的一致性你肯定要给我们的vdi的那个账号体系打通的。 - -**[01:09:46] 发言人 0**:这些本来就是门槛,就如果这个是在门槛哈那我们以后把这个vdi的这个叫vdi版的这个龙虾做了服器,龙虾做了服务器,沙盒龙虾做。 - -**[01:09:57] 发言人 7**:我觉是这个应该是机会。 - -**[01:09:59] 发言人 7**:其实我的想法是什么? - -**[01:10:01] 发言人 7**:因为还新华三在那天我们那个大架购,我仔细想一下,其实这个东西由我们来主导了,华那边就拿把那个全国对一对是吧? - -**[01:10:10] 发言人 7**:我把它当做一个我的模块了,我就这样玩了。 - -**[01:10:14] 发言人 7**:对,然后如果这样。 - -**[01:10:15] 发言人 3**:这也是对,那是不是我理解的,就我在现在30万新I的那个用户里面,我就去推GPU服。 - -**[01:10:24] 发言人 7**:务器加龙虾应用。 - -**[01:10:26] 发言人 3**:对,卖卖应用和服务器话,假如说是华三农村算命,华三农村。 - -**[01:10:32] 发言人 0**:那华三配合我们我们卖对,卖软,华三卖只我动力就能做。 - -**[01:10:39] 发言人 0**:如果不是我的V I。 - -**[01:10:41] 发言人 0**:我估计是应付也会被他控死,就不是我的名单。 - -**[01:10:44] 发言人 0**:那好了,你在上面做着做,我这就要给你做定制化,就改的很麻烦。 - -**[01:10:49] 发言人 0**:你最后我V d也用不了了,我他妈的人用不了了,对吧? - -**[01:10:53] 发言人 0**:所以这个事情如果在一起,我们天生的这个就好比什么什妈的就是内存条,那就是上天来的富贵。 - -**[01:11:01] 发言人 0**:你做一个你就把未来的智能化把它的起了。 - -**[01:11:06] 发言人 7**:而且我考虑由于这个vi的价格高昂,说实话我们尽早转型,尽早获利。 - -**[01:11:13] 发言人 7**:是真的,我不相信这个vdi这么高昂的价格,明年他们还能卖得上去。 - -**[01:11:19] 发言人 0**:除非真的v di是有v di场景。 - -**[01:11:22] 发言人 0**:对。 - -**[01:11:22] 发言人 7**:我知道我知道,我的意思说vdi释放出来的那是另外一个。 - -**[01:11:28] 发言人 0**:就是v di v di如果用户控住。 - -**[01:11:31] 发言人 0**:D这种这种形式,你其他的都不叫,我们可以这么说,其他都不能叫,只有d才是,所以你d这个场景,它天生的它就会有那个场景,就是那个场景他最多就变成什么呢? - -**[01:11:48] 发言人 0**:我就不要V D I. - -**[01:11:49] 发言人 7**:我就是争取那批左右摇摆。 - -**[01:11:52] 发言人 0**:你把那个纯镇化的那个场景门槛升高了,然后左右摇摆可能多一些是吧? - -**[01:11:58] 发言人 0**:但是左右摇摆的说实话左右摇摆的就刚才说的,如果我们在微店上做龙虾,那微店原来的老用户是5000人,我们可以慢慢去折磨他,你就慢慢的加加东西,也会他也会他也会扩容,对不对? - -**[01:12:15] 发言人 0**:你只要做成一个我们我们的销售马上就得了去你看你加西就不百百。 - -**[01:12:21] 发言人 0**:那另外你的用户了,你说你那就不是赚的,就是靠的你的家的能力,你家能力强,然后你再反过你的是能力,你再插一个那个,你再做一个那个桌,因为不是以为主。 - -**[01:12:36] 发言人 7**:而且除了它要扩容一个算力池以外,由于那个龙虾在那个如果它还是可厉害,龙虾在那个桌面上其实还是很好资源的。 - -**[01:12:47] 发言人 7**:你看我我我移动耗气虾,那那虾装了个程序过耗桌面资源。 - -**[01:13:00] 发言人 0**:耗终的资源。 - -**[01:13:03] 发言人 7**:还为什么呢? - -**[01:13:06] 发言人 7**:你耗他还是。 - -**[01:13:09] 发言人 0**:会耗一。 - -**[01:13:10] 发言人 7**:点的。 - -**[01:13:13] 发言人 0**:我看。 - -**[01:13:14] 发言人 7**:了一下内存。 - -**[01:13:17] 发言人 0**:至少桌桌。 - -**[01:13:20] 发言人 7**:你这么说,你一个微店I桌面一个用户,你给他分了,比如说四核8G内存给他,以前他都拿来办公用了,现在你他要在他那个桌面上去养殖龙虾,他会把八个G多在一个多G去。 - -**[01:13:34] 发言人 7**:那个资源还不小,一人一只龙虾就1 400个员工。 - -**[01:13:38] 发言人 0**:要多多耗500多G的行动。 - -**[01:13:40] 发言人 0**:我没听懂,你不是飞I就是你所有的程序都。 - -**[01:13:43] 发言人 7**:跑到服务器上面,那资源是分配给桌面的。 - -**[01:13:47] 发言人 0**:内存资源我知道还是有上的,在服务器的虚。 - -**[01:13:51] 发言人 7**:拟化这样就会。 - -**[01:13:52] 发言人 0**:消耗虚拟化资源。 - -**[01:13:54] 发言人 0**:对耗对,消耗服妻资源。 - -**[01:13:56] 发言人 7**:我觉那就消耗他说的是消。 - -**[01:13:58] 发言人 2**:耗终端资源。 - -**[01:13:59] 发言人 7**:桌面服球桌面个只。 - -**[01:14:01] 发言人 2**:是。 - -**[01:14:01] 发言人 7**:说那个桌面的虚拟化存。 - -**[01:14:04] 发言人 0**:所以才是消灭服务器上资源。 - -**[01:14:06] 发言人 0**:你服务器的桌面是吧? - -**[01:14:08] 发言人 0**:对。 - -**[01:14:08] 发言人 6**:就是你原来就是原来。 - -**[01:14:10] 发言人 3**:一台服务器有可能只是支持这个50个个. - -**[01:14:14] 发言人 7**:原来支持400个,现在就跑了龙虾后,400不够了,你要做无期之源,这样的话就可以。 - -**[01:14:20] 发言人 3**:多卖服务器。 - -**[01:14:21] 发言人 3**:我觉得我你我刚刚第一印象理解的是你装了无虾应用之后,你终端要重启。 - -**[01:14:26] 发言人 3**:终端现在配的太有的那个差太低了,没天补,你终端不会是。 - -**[01:14:31] 发言人 2**:不是没天补的? - -**[01:14:32] 发言人 2**:是啊。 - -**[01:14:32] 发言人 3**:那你就不会受影响了。 - -**[01:14:34] 发言人 3**:那你你你用这个能带来服务器的销售,华山供销更高兴,就是这个意思。 - -**[01:14:40] 发言人 2**:就是这个意思。 - -**[01:14:41] 发言人 2**:你要在今天除了刷机以外。 - -**[01:14:43] 发言人 7**:你的那个常规集群,你要控制。 - -**[01:14:45] 发言人 3**:你这样是加分线。 - -**[01:14:47] 发言人 3**:对你耗这些方。 - -**[01:14:48] 发言人 0**:式是加分量。 - -**[01:14:49] 发言人 0**:因为如果未来的融虾,但也有可能它不在,不是它的未来,可能它不在每一台。 - -**[01:14:54] 发言人 0**:如果是在这个什么上,他不会给每个用户用。 - -**[01:14:57] 发言人 2**:他就400个不会给每个人用。 - -**[01:14:59] 发言人 0**:如果400他不可能每一个用。 - -**[01:15:01] 发言人 7**:不会每个人都用。 - -**[01:15:03] 发言人 0**:他能个统一的在一起。 - -**[01:15:04] 发言人 0**:然后另外就笔记本为什么是一个人每个人一个呢? - -**[01:15:08] 发言人 0**:因为笔记本你闲散的,你这个资源的,你本闲置的,咱对不对? - -**[01:15:13] 发言人 0**:你在那个服务器上,你不可能是一个人的。 - -**[01:15:16] 发言人 0**:因为笔记本你本来你每天放这就闲散,你晚上你丢在那儿,你不用就不用了。 - -**[01:15:22] 发言人 0**:所以农家跑在你这闲天的,因为你晚上我本来插上泡点试电也没关系,反正这个东西,能不用就不那但是你那个就不一样了,你那个服务器上,你就你你如果服务器扩多了,我这个服务器的龙虾到底能不能做? - -**[01:15:38] 发言人 0**:我那休的,我觉还。 - -**[01:15:40] 发言人 5**:要研究好,那这个的话我们就先按胖端的模式。 - -**[01:15:45] 发言人 0**:我先把做起来。 - -**[01:15:47] 发言人 2**:就是这个好,行。 - -**[01:15:48] 发言人 5**:我这没有其他的。 - -**[01:15:51] 发言人 0**:就是我觉得一个是财务,二一是统一纳管的,法务人事我就可以并行的做。 - -**[01:15:57] 发言人 0**:然后就是把这些统一的把这些电脑就因为这些电脑我们是没有任何管理的。 - -**[01:16:04] 发言人 0**:那天说华智有没有管理,尤记去年你管你管过吗? - -**[01:16:08] 发言人 0**:就华智像他们财务电脑没管都没管理。 - -**[01:16:11] 发言人 7**:就那个产品和研发管的的对吧? - -**[01:16:13] 发言人 0**:你其实这些说实话都是巨大的问题,都很大。 - -**[01:16:18] 发言人 0**:你一个小公司说实话那个财务电脑如果如果跟人家说,你买个300块钱的东西,500块钱或1000块人民币。 - -**[01:16:26] 发言人 3**:财务管理太规范了。 - -**[01:16:28] 发言人 3**:那华智的vn好像在网vpn难道。 - -**[01:16:30] 发言人 7**:不一些管理? - -**[01:16:32] 发言人 7**:我说的是电脑。 - -**[01:16:33] 发言人 0**:他N管他那个电脑。 - -**[01:16:35] 发言人 7**:他随时拿走电脑,他笔以拿回家。 - -**[01:16:40] 发言人 7**:他只管接入。 - -**[01:16:41] 发言人 7**:对他只管接入,只管系统接入,他还走了一篇内网,但是他笔记本本身他没管,但是研发和产品的笔记本是管着的,研发和产品如果你电脑往U盘拷一个东西,没有走那个申报流程。 - -**[01:16:56] 发言人 0**:他就会罚卡。 - -**[01:16:58] 发言人 0**:所以我建直接的,我们如果要搞那个产品管理,是把笔记本电脑关起来是吧? - -**[01:17:04] 发言人 0**:那些说应该纳起来,你做一个胖的那作做一个我们研究院的一种方式。 - -**[01:17:10] 发言人 7**:上周的话,宇豪这边他和和金分那边国会师团队,反正一直在沟通和集院的对接里的。 - -**[01:17:20] 发言人 7**:宇豪今天周一到周三,他就脱展去进行无人机培训了。 - -**[01:17:25] 发言人 0**:我想代理商拿能拿到我们这边。 - -**[01:17:28] 发言人 5**:目前看起来他今天既然那天那个人跟我说,他说既然让我们培,他刚让我们培训的话,用还是比较大的。 - -**[01:17:37] 发言人 0**:好,这是一个。 - -**[01:17:39] 发言人 0**:另外我再问一个,就是吴天华说的那个那个公司叫啥来着? - -**[01:17:45] 发言人 0**:一般是吧? - -**[01:17:46] 发言人 0**:那个一般是么? - -**[01:17:48] 发言人 5**:一般我去的他们说就我问的那个就是才他说他们他说至少到现在为止,他们出货说的。 - -**[01:17:57] 发言人 2**:非常中线材。 - -**[01:17:58] 发言人 6**:就看他们出货就是大概三个地方,但是一个是那个总龙坡有三台,这个怎么看的的? - -**[01:18:06] 发言人 6**:然后他说他们说3338,他那种哪个区有相对没看新单。 - -**[01:18:10] 发言人 0**:但他那个有一个逻辑,我觉得我也是赞同的。 - -**[01:18:15] 发言人 0**:如果他就看那个违停,看完以后分成。 - -**[01:18:44] 发言人 6**:生产。 - -**[01:18:46] 发言人 0**:最关。 - -**[01:18:47] 发言人 6**:用是用。 - -**[01:18:50] 发言人 0**:然后你每年给是吧? - -**[01:18:57] 发言人 0**:每年给不你记这个好事,觉的他的。 - -**[01:19:08] 发言人 3**:母亲话说的好像也不是用的。 - -**[01:19:11] 发言人 3**:他是说一台机器他分成一天给他跑300张照片,是600张照片。 - -**[01:19:16] 发言人 3**:你就抓微停,你抓完之后就相当于他罚梦款的,问罚款的他也他就可以。 - -**[01:19:22] 发言人 0**:来这个。 - -**[01:19:22] 发言人 3**:他也不是申请罚梦款的,他应该也是买服务相于是你买我买我抓拍的服务。 - -**[01:19:29] 发言人 0**:他他我业的服务他指抓多少,他说的这个有一个这么个意思,就是大家这这是表达方式,就是买了我的东西,比如每天抓800个是吧? - -**[01:19:40] 发言人 0**:你反正你有这个钱的,你有这个钱你就可以买这个东西。 - -**[01:19:44] 发言人 3**:然后他有个前置条件是旺三的这个抓拍的这个东及要拿到无锡所区测试才能所成交警的证据。 - -**[01:19:52] 发言人 3**:你们在无锡所检测出来的照片做不了交警取证证据我不知道,等他说的是这两。 - -**[01:19:58] 发言人 6**:我等会汇报,可能是等会问上次交警跟他们那个公安交警。 - -**[01:20:03] 发言人 6**:其实我们我们无人机他们能定义的采集,我们不管是违停采集或者是执法采集都不是,那这个就程他们看来他大概没什么问题了,加上但是现在需要我们落实两个事,他一个事我们要怎么去跟对接,必须要是主对法治科学把政策,他们现在根据不知道怎么操作事。 - -**[01:20:23] 发言人 6**:因为我们现在是那种采集完到了我们执发库里面,把数据推到执发库就完了。 - -**[01:20:29] 发言人 0**:其实我们采钱全都采集。 - -**[01:20:31] 发言人 2**:他概分离不样子分不出现。 - -**[01:20:33] 发言人 2**:是。 - -**[01:20:33] 发言人 0**:那分。 - -**[01:20:35] 发言人 2**:局赶快去问他。 - -**[01:20:40] 发言人 0**:就是跟。 - -**[01:20:43] 发言人 6**:视频。 - -**[01:20:45] 发言人 0**:那。 - -**[01:20:45] 发言人 6**:我们就问他,我那分局他现在的传。 - -**[01:21:14] 发言人 0**:就是但凡脑子上过读过书的,如果他罚没,如果他多拍两张,他就多收不了钱。 - -**[01:21:20] 发言人 0**:那都这个东西还要去这人传人,这病毒。 - -**[01:21:24] 发言人 0**:如果这个事儿是可行的,早每个人都装作。 - -**[01:21:27] 发言人 3**:就是原来什么在九龙不到光山科技部背后的那个代言人,就是那个在九龙坡里联合三家运营商跟我们一起做实验室的人。 - -**[01:21:38] 发言人 3**:你确就是我现在九龙坡的时候,这个运营商不搞了个实验室吗? - -**[01:21:43] 发言人 3**:那背后那个牵头人就是万三科技的。 - -**[01:21:46] 发言人 0**:那说明那说明这个事并不是病毒,不是是吧? - -**[01:21:50] 发言人 6**:但事际里被就分成的事情肯定是。 - -**[01:21:53] 发言人 0**:表面是不分成,不分层他能不能就那病毒就是一旦碰到复制了。 - -**[01:22:00] 发言人 0**:它不能复制,它还是有问题。 - -**[01:22:06] 发言人 0**:行。 - -**[01:22:06] 发言人 4**:继我们能能把那个飞,能把那个无人机拿下来。 - -**[01:22:11] 发言人 0**:就是进步。 - -**[01:22:12] 发言人 0**:我觉得反正这个事是一步一来的,每一步都是他妈的,不管一小步一大步,我操都得往前走。 - -**[01:22:20] 发言人 7**:是那个时候终端这里都有个事儿,就是对我们是在对华润和云南的两个测试项目。 - -**[01:22:30] 发言人 7**:然后实际上就是发现一个问题,就终端这个飞机在这插拔的时候会黑屏。 - -**[01:22:38] 发言人 7**:以前之前我们以为是硬件的问题,结果复现了一下,发现是华山的那个终端一里面一个小模块的。 - -**[01:22:47] 发言人 2**:软件问题。 - -**[01:22:47] 发言人 0**:它那个软。 - -**[01:22:48] 发言人 2**:件叫space os。 - -**[01:22:49] 发言人 7**:对,然后我们那X本身也用了它里面的一个小组件,所以说造成了个通病。 - -**[01:22:55] 发言人 7**:然后说驻厂那个人不来了,他收到了西安荣耀的offer,给了他35K他不。 - -**[01:23:03] 发言人 0**:太慢了。 - -**[01:23:04] 发言人 3**:就是饿操了。 - -**[01:23:06] 发言人 4**:张卓和。 - -**[01:23:07] 发言人 3**:戴世界还等着他。 - -**[01:23:10] 发言人 0**:你太慢了。 - -**[01:23:10] 发言人 7**:就是他不来。 - -**[01:23:12] 发言人 7**:然后这个事情只能我们这尽量去沟通了,要把这里面其其实其实看来你。 - -**[01:23:20] 发言人 0**:们这事儿太慢了,你们的你们如果他确定了,说实话我都可以打电话,我跟他打他妈跟他聊他妈聊聊个一小时的。 - -**[01:23:29] 发言人 7**:我觉得不可以打动他。 - -**[01:23:31] 发言人 0**:我们是闲聊了,我们但是聊你们聊完了。 - -**[01:23:34] 发言人 3**:你们不老是没没确定下来。 - -**[01:23:37] 发言人 3**:昨天上周五云南那个人也接到了两个offer. - -**[01:23:42] 发言人 2**:我害怕他跳了。 - -**[01:23:43] 发言人 3**:周五周下午紧急跟他聊了一个周一他一大早还没我容开开到345,你看张志波和戴世。 - -**[01:23:53] 发言人 0**:平一直还在保他有其你还有关系,你去了干他去了干一段时。 - -**[01:23:59] 发言人 3**:间干不走了是一样的,而且张志波就说。 - -**[01:24:03] 发言人 3**:那这个进来之后,功能再分配。 - -**[01:24:06] 发言人 0**:能个反上人。 - -**[01:24:07] 发言人 7**:跟刚达的荣耀的就华为华为就是就华为荣耀手机。 - -**[01:24:15] 发言人 2**:然后。 - -**[01:24:17] 发言人 5**:本。 - -**[01:24:18] 发言人 0**:他都。 - -**[01:24:20] 发言人 7**:已接们荣耀那给打话,那三五K他法拒35K终他八。 - -**[01:24:43] 发言人 0**:他。 - -**[01:24:44] 发言人 0**:那我们再找,你们再找,再跟他们说好吧。 - -**[01:24:48] 发言人 7**:这样那个谁主这。 - -**[01:24:49] 发言人 0**:个就是相当。 - -**[01:24:50] 发言人 7**:于我们可能要这要改,要他其实基础系统就是5820,有点太老了,这个5820可能是一切问题的根源,要把它更新到24去。 - -**[01:25:01] 发言人 7**:对,然后这个只能我们提给新华三。 - -**[01:25:04] 发言人 0**:我们一起来,你抓紧去找那个院找一个研发。 - -**[01:25:08] 发言人 0**:我过段时间我可能我过段。 - -**[01:25:10] 发言人 7**:时间七初我还是想他就今年年底之前必须把这个系统。 - -**[01:25:14] 发言人 0**:说去吧。 - -**[01:25:16] 发言人 0**:到我找点再我。 - -**[01:25:18] 发言人 3**:才知道我们那东还底层上面没。 - -**[01:25:23] 发言人 8**:有全智眼,我怎么关联倒是非常他是用的那个操作系统,当时用的那个,因为华山它里面还那个终端上的。 - -**[01:25:37] 发言人 0**:那个终端必须要做这个。 - -**[01:25:40] 发言人 0**:对,也不一定。 - -**[01:25:41] 发言人 7**:只会用它这个比较简单一点。 - -**[01:25:43] 发言人 7**:总种再去开发的话,其实做了二次工作,所以说干脆这次重构的时候。 - -**[01:25:49] 发言人 2**:核新华三一起。 - -**[01:25:50] 发言人 7**:对,什么叫核心? - -**[01:25:51] 发言人 7**:没必要去两次发明轮子。 - -**[01:25:54] 发言人 7**:就是这么说,就是终端上有个小的操作系统,华山也在做,然后我们再去做。 - -**[01:25:59] 发言人 0**:一遍意义不大。 - -**[01:26:01] 发言人 3**:可不可以不要去操作系统,不是有定吗? - -**[01:26:04] 发言人 3**:读一遍、抄遍、写遍。 - -**[01:26:05] 发言人 0**:不要是操作系统你独立出来的,你自己做一个操作系统。 - -**[01:26:10] 发言人 0**:对。 - -**[01:26:11] 发言人 8**:图不是这样的主他上面我们当时其实评估过这个事儿,我们如果拿无邦图其实也能做。 - -**[01:26:18] 发言人 8**:但是它整个的那个系统的大小裁剪,就是这方面它有很多细节工作。 - -**[01:26:26] 发言人 8**:还有它里面当时那个华山坞小潘,他们当时拿A全部读过一遍,他们里面当时改了很多包,我们当时就这些包到底干什么的,其实当时其里也不清楚。 - -**[01:26:39] 发言人 8**:所以说从这个比较安全的角度来想,我们当时就没有自己去重新开一个光伏。 - -**[01:26:46] 发言人 8**:而且如果我们吴邦图来做的话,还也还存在一个以后也存在一个,这个叫什么来着? - -**[01:26:54] 发言人 8**:这个不服。 - -**[01:26:55] 发言人 0**:那就是我们以后要做,比如做龙虾,做这个中。 - -**[01:27:01] 发言人 8**:间大碗还得用它的。 - -**[01:27:03] 发言人 0**:来跟没有。 - -**[01:27:05] 发言人 8**:那没有关系,你这不就是用它,只是在启动的阶。 - -**[01:27:10] 发言人 0**:段动阶段启。 - -**[01:27:12] 发言人 8**:动阶段动阶段用,启动阶段在用。 - -**[01:27:16] 发言人 3**:假如以后跟华商不合作的原因。 - -**[01:27:19] 发言人 7**:那就自接重构过,就是工作量的问题。 - -**[01:27:21] 发言人 7**:我们其实还能用。 - -**[01:27:23] 发言人 3**:这个水频时是就不能用了,可以。 - -**[01:27:26] 发言人 8**:是这样的,徐校这个东西它就只是一个华山它深度定制的一个,它跟后台没关。 - -**[01:27:33] 发言人 0**:就独立的一个东西。 - -**[01:27:36] 发言人 0**:你们如果说把它用来打通了,如果他license就后他还个免费件。 - -**[01:27:41] 发言人 8**:你们再拿走他这个他这个也没有license。 - -**[01:27:44] 发言人 8**:他其实就是他们。 - -**[01:27:45] 发言人 7**:在当时在湖的基础上做了些改制裁剪裁剪了裁的就是尽量不消耗资源。 - -**[01:27:52] 发言人 0**:他也没有用,不用。 - -**[01:27:53] 发言人 0**:然后你如果让华为给他改完以后,你拿走我们拿走我们也可以用是吧? - -**[01:27:59] 发言人 7**:对,可以永用下去,简单是成为一个安装包式。 - -**[01:28:02] 发言人 7**:这就是现但是现在我们不并不知道是改了些什么。 - -**[01:28:06] 发言人 7**:如果我们要去改,就要不断的是去去碰着。 - -**[01:28:10] 发言人 7**:因为它毕竟是设备了很多硬件的。 - -**[01:28:13] 发言人 7**:如果我们要去改,首先你得。 - -**[01:28:16] 发言人 2**:一个去录。 - -**[01:28:18] 发言人 7**:现,这就是当时说的云桌面中间的个适配问题。 - -**[01:28:22] 发言人 7**:你光是一个终端,这个适配工作量就极大,你不是A把它洗完就完了,这天一配个装上。 - -**[01:28:30] 发言人 8**:就适配件主要他当时跟华以前那些硬件都是全部绑死。 - -**[01:28:36] 发言人 8**:Ok测试的我们其实。 - -**[01:28:41] 发言人 7**:都在上面已经改过了。 - -**[01:28:46] 发言人 7**:他不是,但是我。 - -**[01:28:50] 发言人 8**:笔记本电脑。 - -**[01:28:53] 发言人 7**:能启动。 - -**[01:28:55] 发言人 7**:如果笔记本电脑过们们当提出的驱华包包包包包们没东西的,紫光计算机,但是你要启动这个东西也有办法启动困难。 - -**[01:29:15] 发言人 0**:现在有很多,这个就是插一个U盘启动,你其实你那个套路那的能不能改成插入盘,不能也变成朋友版。 - -**[01:29:24] 发言人 0**:我说笔记本。 - -**[01:29:29] 发言人 0**:插的U盘就。 - -**[01:29:31] 发言人 5**:是你相当于是把那个操作系统到这个里。 - -**[01:29:37] 发言人 0**:就是的。 - -**[01:29:38] 发言人 7**:胖胖猪胖猪有这个系统并不是为了启动,这个可能理解错了。 - -**[01:29:45] 发言人 7**:胖猪有这个系统是为了他终端建立和管理平台之间的联系。 - -**[01:29:51] 发言人 7**:对,管理平台去给他下发镜像。 - -**[01:29:54] 发言人 7**:对,但是那笔记本的行候,如果笔记本你插这个。 - -**[01:29:59] 发言人 0**:插个U盘也是建立和管理平台联系。 - -**[01:30:02] 发言人 8**:其实也可以。 - -**[01:30:04] 发言人 7**:不是也可以他这个人意。 - -**[01:30:08] 发言人 3**:思联网上就是自然而然。 - -**[01:30:10] 发言人 0**:是把这镜像弄。 - -**[01:30:12] 发言人 0**:我的意思是你你以后你要做,你要跟笔记本做东。 - -**[01:30:16] 发言人 0**:因为现在华智我特别那华智用,但你又说华的服务器多华上,那如果用华笔记本用上,那我就怎么才能华智能,你比我笔记插一个引导拍卖启动,在这个过程中间建立了跟这个后台的联系。 - -**[01:30:33] 发言人 0**:然后我再在这个叫什么? - -**[01:30:35] 发言人 0**:我相当于用我的胖子,他他就变成了我的胖子官。 - -**[01:30:39] 发言人 0**:那我不就我后面用一台高端用一台服务器或者用台高端的。 - -**[01:30:43] 发言人 0**:比如说一一台一台工作量或者一台高端C我就能管理这些电脑,不是这。 - -**[01:30:49] 发言人 2**:个意思。 - -**[01:30:53] 发言人 7**:这个一下午要想一想你的技术是能实现,但是这样有没有什么? - -**[01:30:57] 发言人 0**:因为你笔记本电脑你可以老说你不是云,那你笔记本电脑跟我的云动面啥关系呢? - -**[01:31:04] 发言人 0**:笔记本电脑就是说我做的纳管是,但是如果我用一个U盘启动,那就更高级。 - -**[01:31:13] 发言人 2**:每个人发个K. - -**[01:31:15] 发言人 0**:扩展那K就牛逼了。 - -**[01:31:18] 发言人 0**:我我软件我。 - -**[01:31:20] 发言人 3**:软件化发个K然后我K就可以关起来。 - -**[01:31:26] 发言人 0**:然后以把整个龙虾来,那多好点,就公安那网钥人只插上了统,因为我这我我跟公安的财务一样,行驶电脑都不是你的,是我买的,你都不能用,除了工作以外啥都都不能用,你开进去都得把这个插上才能开,要不然我给你买电脑干嘛? - -**[01:31:47] 发言人 0**:你的财务我给你买个电脑干嘛? - -**[01:31:49] 发言人 0**:插上了是我的,把我拔掉就是你的不行,给公安不一样,不行。 - -**[01:31:53] 发言人 0**:对,拔掉。 - -**[01:31:53] 发言人 0**:你自己家里有电脑,我用我的拔掉,插上去才能用。 - -**[01:31:57] 发言人 0**:拔掉用不了,因为我人家还有龙虾,还有所有数据,知道吧? - -**[01:32:02] 发言人 0**:那电脑是我买的,对不对? - -**[01:32:05] 发言人 0**:那不是你你你你这好,你要你说领导我想用公司给他电脑做自己家的事。 - -**[01:32:15] 发言人 7**:你觉得逻辑图吗? - -**[01:32:17] 发言人 0**:不同,你说我不同,你就解决了。 - -**[01:32:21] 发言人 0**:我桌面我觉得你们着个准好吧,因为你这个放上去,你才有可能在后面再做个小机。 - -**[01:32:28] 发言人 0**:又跟next x也通了,跟nex通了,跟敌人也通了完了以后你包括龙虾管理,你都可以通过它。 - -**[01:32:36] 发言人 0**:因为这个外的一个U盘,一个U盘带个引导盘,带个操系,现在U盘大的,你弄个T的操没问题,弄个你弄个这个这个你弄个什么Fla弄, 弄个什么32G66G的,8G的你插上,那这个就有意思了。 - -**[01:32:52] 发言人 0**:这个我如果如果配合,但是我你们可以连我这交易,你现在可以研究,你比联想大量的出工作。 - -**[01:32:58] 发言人 0**:笔记本老板有没有这个要求,说我必须得插到U盘,我才能够这个笔记本他才能用,然后插这个U盘,那我都在我介绍下不插U盘都用不了,有没有这个要求? - -**[01:33:09] 发言人 0**:如果有这个要求,我觉得这事可能是可以的。 - -**[01:33:12] 发言人 5**:有机会的那有讲的就是本来他是这个云盘用来监管,然后再把我们的云桌面和相关的项。 - -**[01:33:18] 发言人 5**:因为我们那。 - -**[01:33:19] 发言人 0**:时候玩P都知道,你插个U盘做引导是吧,你因为你电脑坏了,你可以用它引导引导。 - -**[01:33:25] 发言人 0**:其实镜像在U盘上,你直接插U盘就重新恢复,对不对? - -**[01:33:29] 发言人 0**:你这肯定是可以的,对不对? - -**[01:33:32] 发言人 0**:我我现在我我我想对苹果电脑也是可以,苹果电脑也是可以直接一个U盘直接往拿走,那你这个是可以的,好吧,我觉得你们琢磨一下刘静,好,继续好。 - -**[01:33:49] 发言人 7**:那个终端自体云其实我想的是这样,智体云我们以后就作为A云桌面的一个数据来源。 - -**[01:33:58] 发言人 7**:等这周,不是这周,今天我把一些架构完善了,我们再沟通,结果越思路上慢慢开始清晰,到是候我们一起就上桌,把这个云桌面。 - -**[01:34:12] 发言人 0**:盒子东。 - -**[01:34:46] 发言人 0**:我操,那变成胖路段了,你以后就不用去改那些胖路段了,因为我差我还。 - -**[01:34:53] 发言人 3**:要去十倍那么多胖。 - -**[01:34:55] 发言人 0**:那干嘛不要了? - -**[01:34:57] 发言人 5**:我用它启动了,到这里。 - -**[01:34:59] 发言人 7**:插一插子,不。 - -**[01:35:01] 发言人 0**:你插我就卖。 - -**[01:35:03] 发言人 7**:这个东西。 - -**[01:35:04] 发言人 7**:那个个那个就要和本U盘里是,但是你就要和这配了。 - -**[01:35:11] 发言人 7**:对一个道理。 - -**[01:35:12] 发言人 3**:你存在U盘不。 - -**[01:35:14] 发言人 7**:是存在是一样的。 - -**[01:35:16] 发言人 7**:因为你以前就个软件。 - -**[01:35:20] 发言人 0**:还这可能。 - -**[01:35:21] 发言人 7**:好一一样样一样的一样的。 - -**[01:35:23] 发言人 7**:你想一下,你现在无非是把那个软件装在pc的硬盘上,以后你是装在U盘上,实际上是一样的,就是启动下从本地这个硬盘改成了U盘,其他都不变。 - -**[01:35:35] 发言人 7**:我就不赚那个钱了。 - -**[01:35:37] 发言人 0**:说实话你要我要连着这一坨一坨的它去卖,我库存也大我这个十倍了以后我的库存越小,我就不赚那个钱了。 - -**[01:35:46] 发言人 3**:也就是说笔记本不是我们的。 - -**[01:35:48] 发言人 0**:跟库存没,也就是说他跟胖端用胖子端最好的办法。 - -**[01:35:52] 发言人 0**:因为端我在里面做了改造以后,胖端我就封死了。 - -**[01:35:56] 发言人 7**:就跟那个C不一样,我就额外只不过我们的角个形了,就以跟基本我们那体系里面我没对,就意思这意思就是为了解决我们今天做财务。 - -**[01:36:08] 发言人 0**:这样我我我你讲我就是解决华智的问题。 - -**[01:36:11] 发言人 0**:如果我不能华智钱,我操他妈你华智这么大那么好的公司,你都了,你钱你出,你挣不了,你挣不了人家钱,你说这话你只能挣点些央企那买个的都是好都都是好大户。 - -**[01:36:24] 发言人 0**:我现在慢慢知道了,买v di都是好好户,都是他妈的央企。 - -**[01:36:28] 发言人 5**:家。 - -**[01:36:30] 发言人 0**:家当很田,一般的学也不买校。 - -**[01:36:45] 发言人 7**:是主要是运维。 - -**[01:36:48] 发言人 2**:对,买都是豪。 - -**[01:36:50] 发言人 0**:横的,就是买那个的,实际上挂了个娱。 - -**[01:36:56] 发言人 7**:乐面的名字。 - -**[01:36:58] 发言人 5**:就是那管。 - -**[01:37:00] 发言人 5**:对。 - -**[01:37:00] 发言人 0**:像我们这种是大笔记,你插可解,如果就了这么大,里面就有cpu pu了。 - -**[01:37:10] 发言人 2**:你自插上去也可以。 - -**[01:37:12] 发言人 0**:这个是我意思不是太。 - -**[01:37:14] 发言人 7**:那个是插的显示器上,你插在手机都可着。 - -**[01:37:18] 发言人 2**:你这个这么大有可能都可以。 - -**[01:37:21] 发言人 3**:直接做I的终端。 - -**[01:37:22] 发言人 0**:不是我是是我的意思是那越越好,我龙虾有的理面。 - -**[01:37:27] 发言人 5**:我只是想就像亚马逊的那个。 - -**[01:37:33] 发言人 0**:可以。 - -**[01:37:33] 发言人 2**:他插到碟上还觉得。 - -**[01:37:36] 发言人 7**:那个电视,那个小孩的学习电脑就是这么大一。 - -**[01:37:41] 发言人 0**:个插在那个电视机hd麦上,所以就是这个意思。 - -**[01:37:47] 发言人 0**:对,所以这个意思我们换解决笔本,因为他没屏,他只解决那个问题。 - -**[01:37:53] 发言人 0**:他实际上他为什么要电脑? - -**[01:37:55] 发言人 0**:他为你说的很对他不管做的再大,他解决了一个问题就是。 - -**[01:38:00] 发言人 5**:对,然后我们以后还可以把如果把员工的助理也。 - -**[01:38:06] 发言人 0**:扔到这里。 - -**[01:38:07] 发言人 0**:对,可以,插上就了插所我觉得真是一个形态,我觉得我们可以想一想,好吧,既然可以管控插上安装你电脑,插电脑说这实不行,脑全插。 - -**[01:38:22] 发言人 7**:那想看就那就是这就是这个云那面纸巾架构,我也把这点想想加进去想一想,好吧。 - -**[01:38:29] 发言人 7**:我们初步的想法就是上次开完会,这个办公、教育、医疗,其实我们有一点共同性,就是后端知识库加上我们的这个数据源,比如语音文件和mp这套架构。 - -**[01:38:42] 发言人 7**:我觉得在这三个场景当中都能满足一些需求来构建我们这个A云桌面。 - -**[01:38:49] 发言人 7**:所以今天把这个架构完善了,我们到时候再讨论一下。 - -**[01:38:53] 发言人 7**:我觉得我们可以往这个方向去走,这样的话解决了我们教育和医疗的常化问题。 - -**[01:39:00] 发言人 7**:而觉确实好像还真能用这个东西。 - -**[01:39:04] 发言人 7**:好吧,然后那个终端这里有点事儿,就是上周我说了一下3300,我们不是找申腾在低价的时候备了2000台,500台。 - -**[01:39:16] 发言人 7**:如果以低于成本价共合新华三,这样会使我们的我们采新华3 tb价,稍微有有一点优势一点。 - -**[01:39:27] 发言人 7**:但是他就必须要求我们同时走1500台的汇智牌的合同,然后和法务和刘晓琴,把采购管理办法,沟通了一下。 - -**[01:39:39] 发言人 7**:然后今天下午两建华给他们开个会,最终沟通一下,可能要和在公司过会,采购管理办法修改了,我就让申腾去填短名单的入会材料,然后我们才能和生腾走这1500台的这个具。 - -**[01:39:54] 发言人 0**:体你跟申哥聊完,你们聊完了以后,可以我就走了。 - -**[01:39:57] 发言人 0**:好的,可就不能有库存。 - -**[01:40:00] 发言人 7**:这个还好,因为那个价格确实。 - -**[01:40:02] 发言人 0**:给的比较低,当时都有库存的,有了库存他妈的就压力就大,就有2000台华三两,最后整一堆库存的。 - -**[01:40:09] 发言人 7**:有2000台500台去. - -**[01:40:10] 发言人 5**:其实最后就是被扣库。 - -**[01:40:12] 发言人 3**:那个1100最后怎么处理。 - -**[01:40:14] 发言人 7**:就不要了,110是真没办法用了,必须。 - -**[01:40:17] 发言人 2**:涛。 - -**[01:40:21] 发言人 0**:涛涛。 - -**[01:40:29] 发言人 7**:果可00库说是,1700的卖出去,我知道,但是1700卖出去的个量很少,我一起步要做1000台,1000台02年是1000台起步,1000台我拿进来,如果1300拿进来卖不掉,那就砸手里了。 - -**[01:41:05] 发言人 7**:因为我实际上不挂新华三的成本是非常低的,600不到我去拿新华三品牌标7300,这个太吓人了。 - -**[01:41:16] 发言人 2**:那新华三必他。 - -**[01:41:18] 发言人 3**:必须1100. - -**[01:41:19] 发言人 7**:价格太高了。 - -**[01:41:21] 发言人 0**:那个C110. - -**[01:41:23] 发言人 3**:卖完了,但是我。 - -**[01:41:25] 发言人 7**:新采C110,他们咨询过来的物料成本到我们这就接近三台。 - -**[01:41:33] 发言人 7**:但是如果不把新华三,我们自同汇智牌不到600。 - -**[01:41:40] 发言人 7**:对,这差距太大,差距太大,我就不敢下单了。 - -**[01:41:43] 发言人 0**:所以这个事能不能一起解决了,我就找那个。 - -**[01:41:46] 发言人 0**:因为我跟张涛说,既然我们如果能欧进来,那我们就马上把1100就也一起改了。 - -**[01:41:52] 发言人 7**:那就马上那那那就马上解决了。 - -**[01:41:54] 发言人 7**:这样的话其实我给他呗。 - -**[01:41:57] 发言人 0**:那这个事这样我下午见。 - -**[01:41:58] 发言人 0**:因为这个事,其实就是他们担心的质量问题和利润问题,对不对? - -**[01:42:03] 发言人 0**:对,现在的C1100,我说我用同样的东西,但是只要不通过智慧走,对我就可以便宜一半给你。 - -**[01:42:10] 发言人 0**:对,然后我然后你该挣你的钱你挣你的钱,但是对我们整个市场都有好处? - -**[01:42:15] 发言人 0**:被人家卡脖子了,被志伟卡脖子了。 - -**[01:42:18] 发言人 0**:我那我那那这样我跟张导武说一下,我下午刚好,因为于总上周五已经回复了咱们邮件给张导。 - -**[01:42:25] 发言人 7**:快速解决。 - -**[01:42:26] 发言人 7**:他有个很现实的问题,我们是最多一家在用那种内存的厂家,你申请福利的早就用了,你不用。 - -**[01:42:34] 发言人 0**:那你根本就不用。 - -**[01:42:36] 发言人 7**:什么内存,就是那个那个黑片内存。 - -**[01:42:41] 发言人 5**:相现在那就。 - -**[01:42:42] 发言人 0**:我们不用。 - -**[01:42:43] 发言人 2**:对。 - -**[01:42:44] 发言人 0**:我们只要不用智的,我们就能便宜,就这个意思,我们自己来找华三,他不敢用,但是但是不但是有个问题,那将还那存同。 - -**[01:42:59] 发言人 7**:样他他如果。 - -**[01:43:01] 发言人 0**:他说找的那行,那他打部点。 - -**[01:43:05] 发言人 7**:他会问这个泵子的编码,但是他应该追溯不到这个料是怎么样。 - -**[01:43:13] 发言人 0**:行,好好,我跟他看怎么走最简单。 - -**[01:43:16] 发言人 7**:但是我就最简单,他可以测一轮,但是你不要问我要怎么了。 - -**[01:43:20] 发言人 2**:就是我找张涛,我下午的话出。 - -**[01:43:23] 发言人 7**:但是存储他们还是用的新的存储,他们不敢用,究的我也不敢用。 - -**[01:43:28] 发言人 0**:对存客更所谓,我现跟那个存储人。 - -**[01:43:31] 发言人 5**:我现在家里的电脑对手我都用。 - -**[01:43:33] 发言人 7**:对,对,内存这么受命,测的过就。 - -**[01:43:37] 发言人 5**:测的内存寿命很长。 - -**[01:43:40] 发言人 7**:其他就是刚刚本来想说的那个认认增收问题,刚刚已经发过了,已经发给供应商,已经发过了,刚刚正正开会的时候,已经集团发过了,已经发给那个认证证书,那个认证机构。 - -**[01:43:57] 发言人 7**:其他没什么,其他就是上周我们要实现什么实现你说的那个授的一些上报,包括一些提取。 - -**[01:44:08] 发言人 7**:外面这有点点小改,到时我商量。 - -**[01:44:11] 发言人 0**:可要力快点弄,快点弄好下。 - -**[01:44:14] 发言人 0**:我们个AI相应的AI提高。 - -**[01:44:17] 发言人 0**:上周开五开会的时候,就是AI提高生产力,AI提高我们自己的生产。 - -**[01:44:27] 发言人 6**:那不管上的什么情况,证店张德根他们跟法院联系,他是就在签一文书判决书。 - -**[01:44:38] 发言人 6**:邯郸那个判决书就是律师还会联上法院法官,他他打分那个时间。 - -**[01:44:46] 发言人 6**:上周中局就提出了解决方案,就制作解决方案,律师也在整个材料。 - -**[01:44:51] 发言人 6**:然后我们过了之这个根据答复。 - -**[01:44:54] 发言人 5**:现在根据。 - -**[01:44:55] 发言人 6**:那个公安是就是四。 - -**[01:44:58] 发言人 2**:346个7认同式的。 - -**[01:45:01] 发言人 6**:这个上原来不是每个第一年101000个月。 - -**[01:45:06] 发言人 0**:在你说律师一份调解材。 - -**[01:45:08] 发言人 6**:料什么意思,就是让律师那个个答复材料,然后我们这个觉方可以,再个证据说噻,我们去做答复,然后我们就让他们做的。 - -**[01:45:21] 发言人 3**:现在是第一年30万,第二年40万,第每个月每个月对,每月。 - -**[01:45:27] 发言人 3**:对。 - -**[01:45:28] 发言人 0**:一年300万,第二年三百。 - -**[01:45:30] 发言人 0**:但是他没他如果他一个月不付,就有问题了,马上就报了。 - -**[01:45:37] 发言人 0**:对。 - -**[01:45:38] 发言人 6**:我。 - -**[01:45:41] 发言人 0**:觉得你这。 - -**[01:45:56] 发言人 2**:不,他不要财富了。 - -**[01:45:57] 发言人 3**:他活亏都走不通。 - -**[01:45:59] 发言人 3**:他如果是不他如果是这样。 - -**[01:46:01] 发言人 0**:应该是只有进入他的。 - -**[01:46:03] 发言人 3**:那第一他第一年第二年是几兑的? - -**[01:46:06] 发言人 6**:国安预算问你每个月付款拿。 - -**[01:46:08] 发言人 3**:但是他第一年30万那种往外挤,肯定是挤他自己内部预算。 - -**[01:46:14] 发言人 0**:不是350低,不是30万,那一年十二个月是吧,360万,360万。 - -**[01:46:20] 发言人 0**:那怎么。 - -**[01:46:21] 发言人 3**:一个月付5,那就把什么买食堂的菜,买什么那个。 - -**[01:46:27] 发言人 0**:你的意思是每。 - -**[01:46:29] 发言人 2**:个月就是那个预算,每个月证明。 - -**[01:46:32] 发言人 0**:财政开给他,然后他每个月给他得每个月给两。 - -**[01:46:36] 发言人 2**:之后老大走球了。 - -**[01:46:38] 发言人 3**:他就不认了,这也对。 - -**[01:46:40] 发言人 0**:因为啥呢? - -**[01:46:41] 发言人 0**:他每个月起,他不起都会有人利用。 - -**[01:46:44] 发言人 0**:对他进入他那个什么,反正就是。 - -**[01:46:48] 发言人 6**:每个月支付。 - -**[01:46:49] 发言人 3**:他们都都每个限每个月支付是不限制。 - -**[01:46:52] 发言人 3**:但是他是肯定起自己的预算往外付钱,就没有财政部把他们的项目。 - -**[01:46:58] 发言人 6**:他这边预算怎么来,现在我们也跑虑研究它。 - -**[01:47:02] 发言人 0**:你的那都财政就时处理条,我们看吧。 - -**[01:47:05] 发言人 3**:这是。 - -**[01:47:06] 发言人 6**:邯郸什么邯郸? - -**[01:47:08] 发言人 3**:不是。 - -**[01:47:08] 发言人 2**:这是邯郸。 - -**[01:47:10] 发言人 6**:九龙坡。 - -**[01:47:11] 发言人 6**:这个就是锦宝,也是今年也是分期把我钱200万的. - -**[01:47:18] 发言人 0**:他一次一次文化。 - -**[01:47:21] 发言人 6**:明白。 - -**[01:47:21] 发言人 0**:然后就明再说。 - -**[01:47:24] 发言人 6**:烟台是缺乏化,然后一般在的合同就是陈建,他签合同部门还没确定,因为一直跟上次打复。 - -**[01:47:33] 发言人 0**:我是本着的确定,他们就不。 - -**[01:47:36] 发言人 6**:盾建那个事,盾剑他诉了股东已经七二三开庭。 - -**[01:47:41] 发言人 0**:房,然后盾建下午是。 - -**[01:47:43] 发言人 6**:也是这个是已判了,不是已经。 - -**[01:47:46] 发言人 2**:二次开庭了,就等的是七月底。 - -**[01:47:49] 发言人 2**:好。 - -**[01:47:50] 发言人 6**:然后五年那上常务会的事情,上次出了问题,就是因财政批复这个预算未明确,非分用的非收益资金和财政拨款金的比例没说清楚,然后被政府把那个生活材料打了。 - -**[01:48:08] 发言人 6**:然后现在是非税金额,这个是2800万,是两部组成,一部分是分局拿他们的非税收入来给我们支付一部分财政拨款。 - -**[01:48:19] 发言人 6**:但是当时财政只批复了一句,这个财政由财政公安,非税收入和财政拨款。 - -**[01:48:26] 发言人 6**:那个不是听。 - -**[01:48:27] 发言人 3**:说2800万,还有分局搞非税收入。 - -**[01:48:30] 发言人 6**:我上次不是说过,3500说的这个分局说过的意思就是一半财政拨款一半非税,非税也处理,3500当时总计预算是一年3500. - -**[01:48:41] 发言人 3**:上哪个非税收入发布款。 - -**[01:48:43] 发言人 6**:发布款分局就发,不。 - -**[01:48:45] 发言人 3**:他们可以不进来。 - -**[01:48:46] 发言人 6**:才这是他接受下来。 - -**[01:48:48] 发言人 6**:那不交了,那财政协不叫财政,交了,这部分钱应该是。 - -**[01:48:53] 发言人 2**:非税收入,是直接进财政委。 - -**[01:48:56] 发言人 3**:又不进公安。 - -**[01:48:57] 发言人 6**:这个得打包拨款过来了。 - -**[01:48:59] 发言人 0**:现在进来财政拿出来。 - -**[01:49:01] 发言人 6**:这你们他打包的每年都非收入,他那财政公安有拿要有要的那个审批权利。 - -**[01:49:11] 发言人 6**:所以这个特质他。 - -**[01:49:12] 发言人 3**:们那你局去找另外一个杜局。 - -**[01:49:14] 发言人 2**:对,他们你去到。 - -**[01:49:16] 发言人 3**:李局还是你去找杜局,防导。 - -**[01:49:31] 发言人 6**:们果。 - -**[01:49:40] 发言人 0**:烦。 - -**[01:49:45] 发言人 6**:那无人机刚才说了,就是让我们那总。 - -**[01:49:48] 发言人 0**:反正我有一个底,但如果别人如果弄不下来,我这卖30,我不认可,我就是卖没钱,确实没钱,公公也知道你律师可。 - -**[01:49:59] 发言人 6**:无论建就是我们现在就是我就要想办法去找组织什么政策,相关政策落实好。 - -**[01:50:04] 发言人 0**:你找,去抓紧找你跟吴建。 - -**[01:50:08] 发言人 6**:华一起去找。 - -**[01:50:10] 发言人 6**:然后滞纳金他都已经撤诉了,上个大发,其他两个项目都还是有定照照按部就班。 - -**[01:50:21] 发言人 6**:这在目前的情况下没大的问。 - -**[01:50:24] 发言人 2**:你们看这。 - -**[01:50:25] 发言人 0**:你们还是在我加强投入。 - -**[01:50:29] 发言人 8**:我觉得可以零。 - -**[01:50:31] 发言人 8**:我看他们里面包含。 - -**[01:50:35] 发言人 3**:了3所人可视化还那些都拿不到。 - -**[01:50:39] 发言人 6**:那些不要去做了,那我们就可视。 - -**[01:50:42] 发言人 3**:化可去。 - -**[01:50:43] 发言人 7**:做那个那个做意数字人跟我。 - -**[01:50:45] 发言人 0**:们的主页如果有点一致性,我们可以试试,做完了以后自己存存点能力,就这个意思。 - -**[01:50:52] 发言人 6**:那个地方那个人的青年头重。 - -**[01:50:54] 发言人 0**:说白了说服我不挣钱的时候就是省点人力。 - -**[01:50:57] 发言人 3**:去太太大位,说我现在不要着急走急,我很有不想,不知道里面什么。 - -**[01:51:03] 发言人 3**:我们我们不承担他七千多万的业收,我们不承担他一个出资人,他妈也不过不可能的,我们七。 - -**[01:51:17] 发言人 0**:千多万的项目靠。 - -**[01:51:20] 发言人 2**:一个200万的交。 - -**[01:51:23] 发言人 3**:付收不这个问根本是个问集项目收这个我们的。 - -**[01:51:30] 发言人 5**:再别给我钱了,就相当于现在我们的现金流是正的。 - -**[01:51:35] 发言人 2**:挣的一直挣的。 - -**[01:51:36] 发言人 8**:我把研发这边情况汇报一下,第一个是云桌面这边,云桌面云南那边测试两个问题,一个是ip显示问题,这个已经解决了。 - -**[01:51:47] 发言人 8**:然后未接那个问题就是刚才说的那个识那个底库,因为他他太老了,它和现在这些新的这些外设兼容上有问题,这个我们要抓紧解决。 - -**[01:52:00] 发言人 8**:第二个就华润这边,华润这边是这样,华润徐凯昨天给我打了个电话,华润他们深圳这个项目的领导,这段时间在正好在成都。 - -**[01:52:15] 发言人 8**:他们可能想在周三让我们去一趟,去一趟就是在招标前整个跟他们整体做一次技术汇报和打印。 - -**[01:52:26] 发言人 2**:大概是这么一个情况。 - -**[01:52:28] 发言人 3**:他想深圳也问我说。 - -**[01:52:29] 发言人 8**:其实他整个这个项目最后的数据中心建设是在深圳。 - -**[01:52:34] 发言人 8**:你现在。 - -**[01:52:35] 发言人 0**:这个危机这个项目要多长时间能解决? - -**[01:52:39] 发言人 0**:因为你华润肯定也。 - -**[01:52:40] 发言人 3**:会出现这个问题是吧? - -**[01:52:42] 发言人 8**:华润是七月份要招标,华润是七月份要招标。 - -**[01:52:45] 发言人 0**:对,原旦那个V机的项目没接。 - -**[01:52:48] 发言人 8**:这个是在带店热巴查的时候会出现。 - -**[01:52:51] 发言人 0**:昨刚才说了个。 - -**[01:52:53] 发言人 0**:行,那现在下。 - -**[01:52:54] 发言人 3**:次解决了。 - -**[01:52:56] 发言人 8**:对,我们如果不去,如果华山那边不配合,我们就只有自己先在现在这个操作系统上面,先把显卡那部分的看一些重新打了,你为抓紧录,下周能解决,我写着下周解决,下周应该可以解决。 - -**[01:53:13] 发言人 8**:你说是这周解决还是下周解决,就是这周解决。 - -**[01:53:17] 发言人 3**:反正七月份要招标了。 - -**[01:53:19] 发言人 3**:华是对。 - -**[01:53:20] 发言人 8**:所以周三可能他们要求我们可能研发去研发和产品一起可能。 - -**[01:53:27] 发言人 3**:到现场要去建文,要求。 - -**[01:53:30] 发言人 8**:是团入的健玩和建文和华润现在成都那边的个经理配合,让我们一起跟他们深圳的领导见一面。 - -**[01:53:40] 发言人 8**:好,知听云这边是这样的,知听云这边那个终端其实都已经开发完了,上周他们都已经做了大部分测试了。 - -**[01:53:50] 发言人 8**:我们这周开始主要是做软客户端,然后再规划一下那个es p 32的那个那个终端,es 32那个终端它就是一个是板卡很小,第二个成本低。 - -**[01:54:01] 发言人 8**:然后外形的话,其实我觉得。 - -**[01:54:04] 发言人 0**:我们可以就是把那个语音转文字的话。 - -**[01:54:08] 发言人 8**:就在终端上转。 - -**[01:54:09] 发言人 8**:对,这个这里做的个十四六,耶稣山二只能做十四六。 - -**[01:54:14] 发言人 8**:因为椰稣山它存储很小。 - -**[01:54:17] 发言人 0**:然后语音转文字是在后台。 - -**[01:54:21] 发言人 8**:服务器转全是后台转。 - -**[01:54:23] 发言人 8**:但是是实时流,它是用后台的算力。 - -**[01:54:27] 发言人 8**:前面主要就是做。 - -**[01:54:30] 发言人 2**:那个做做那个采集。 - -**[01:54:32] 发言人 5**:实时流就了流就本基本完了。 - -**[01:54:35] 发言人 8**:不那样转。 - -**[01:54:37] 发言人 8**:无人机这边是这样的。 - -**[01:54:41] 发言人 0**:互联网的那个。 - -**[01:54:43] 发言人 8**:环境我们就大了。 - -**[01:54:46] 发言人 8**:二可以做实时,如果一般的就。 - -**[01:54:51] 发言人 0**:也能做。 - -**[01:54:52] 发言人 8**:但是是主导只能做做那个核心拿来做终备,拿来做联网采联网的这种测设备所的存储都比低成成非低比好,它可以做成各式各样的各各样的形态,平乐无故就是。 - -**[01:55:14] 发言人 5**:无故就可以做。 - -**[01:55:15] 发言人 0**:成他的算他。 - -**[01:55:16] 发言人 8**:会带进去这两年122的发展。 - -**[01:55:19] 发言人 0**:他算利做什么呢? - -**[01:55:21] 发言人 8**:如果你想在端测上面,包括端侧做那个检测,就他们做那个人脸检测,然后做那个语音唤醒,这些都会需要一点点小算力。 - -**[01:55:30] 发言人 8**:就他的端测因虽还有一好处就是他那个他低功耗,因为他以前是拿来做物联网,然后智控这边是这样的,那个互联网的环境已搭完了,然后设备就香槟山的它的设备已经上报上来了,但下上周上周一直在下雨,就没有人完成测试。 - -**[01:55:50] 发言人 8**:这周我们就抓紧把那个测试开始。 - -**[01:55:53] 发言人 6**:还是请他负责人说说不要提我络了,以及从我的角出。 - -**[01:56:01] 发言人 8**:机器上那个网。 - -**[01:56:02] 发言人 8**:对对对,我知道知道那个卡那样拿回来就把那个卡就取了。 - -**[01:56:08] 发言人 8**:然后我们无人机这边紧急上去上了四个软柱拿四个。 - -**[01:56:17] 发言人 8**:我们今天还是讲人那边再看能不能弄一那边大家说。 - -**[01:56:25] 发言人 6**:走上去。 - -**[01:56:26] 发言人 6**:不是。 - -**[01:56:26] 发言人 3**:所以说你自己这个都怕,别怕你自己去,你那卡拿到你手里,另外一根跟你们去做一个保护,给他弄啥研发这种小心渣渣的,你怪不怪? - -**[01:56:39] 发言人 6**:研发的什么意思? - -**[01:56:41] 发言人 6**:就是机场那有叫现互联网研发公司。 - -**[01:56:46] 发言人 8**:我就你就自己去把它隔离,跟我们隔离搭好了以后,到时候在公司就可以看到那个。 - -**[01:56:52] 发言人 3**:飞机的飞压。 - -**[01:56:53] 发言人 3**:那些就是上周两张卡,把卡一个把视频网卡拿到你公安放着,另外一个把机场的那个视频网线,你去做个东西封装,等他们测完了你再去给打开。 - -**[01:57:05] 发言人 3**:什么意思? - -**[01:57:06] 发言人 3**:就是用视频用互联网的,你不要用视频网。 - -**[01:57:09] 发言人 2**:对,分开是吧? - -**[01:57:10] 发言人 2**:可以把那个同学帮一下。 - -**[01:57:12] 发言人 3**:你自己安排个人去给他弄了。 - -**[01:57:14] 发言人 3**:你别等着研发,他真不小心砸错了,那你还要他妈擦一堆屁股,这你几个事情干嘛要让让他注业? - -**[01:57:24] 发言人 3**:你我们这。 - -**[01:57:25] 发言人 5**:处就出了时候就提醒大家,这个我觉得很好。 - -**[01:57:30] 发言人 3**:很就是这个东完了以后。 - -**[01:57:33] 发言人 5**:我们在在。 - -**[01:57:34] 发言人 3**:这儿也能看到了,就开会的时候直接上互联网的就非常了,这个就非常。 - -**[01:57:42] 发言人 3**:他们要用的是程,老提拉拉箱不着。 - -**[01:57:47] 发言人 3**:对,你把随便怎么弄,你都不他妈砸俩,弄个塑料袋给他封死。 - -**[01:57:53] 发言人 8**:研发也不至于给你打开。 - -**[01:57:56] 发言人 8**:然后上周因为下雨,我们就把机拿回来,遥控器云基调多,就这样的话,后面我们机上遥控器。 - -**[01:58:07] 发言人 8**:然后项目上就是中医物联网立体四联网的那个行业招标之重强,刚才其他部门都已经说,我们中物联的立体是什么? - -**[01:58:22] 发言人 3**:就是中物联他。 - -**[01:58:23] 发言人 8**:们现在视频网现在要找一家给他们提供无人机方案的。 - -**[01:58:29] 发言人 8**:我们上上周上周已经去交流了,他们对我们的技术方案应该说基本上那天是比较认同的。 - -**[01:58:38] 发言人 8**:让我们就加紧这个dp他大概是1000万把我们招进去,如果他们进入有项目。 - -**[01:58:46] 发言人 0**:他们就会通过这个ct来我们我们现在唯一的优势也不较唯一的优势就是我们跟那个因为我们跟中联。 - -**[01:58:57] 发言人 8**:那么近是吧,你找其他厂家不在重庆他的吧,那么近。 - -**[01:59:03] 发言人 8**:最好的合作,然后的话增加九个整体90 08,我们六底,我们Q定的是目标是200 280 280万。 - -**[01:59:13] 发言人 0**:抓紧吧。 - -**[01:59:14] 发言人 8**:然后其他的话一个人员变动,我们的ui U E新换了一个人员,今天已经入职了。 - -**[01:59:20] 发言人 8**:第二个财务助理这边开发本周部署测试。 - -**[01:59:24] 发言人 8**:然后crm的话,我们会在我们会在crm系统里面给我们的授权人员把他们授前人员的日报工作台给加上去。 - -**[01:59:33] 发言人 8**:这样的话以后crm就不光包含我们的销售人员,也包含我们的授权人员,他们的工作日报都放在那面。 - -**[01:59:42] 发言人 8**:好,数字人这边我们自己的这个口播数字环境已经搭出来了。 - -**[01:59:49] 发言人 8**:搭出来的话现在就是可以常规帮着出出视频,大概半个小时可以出一个视频。 - -**[01:59:58] 发言人 0**:你们再往前延展一下,这个口播先做吧,先告诉你个小秘密。 - -**[02:00:04] 发言人 8**:先把这个系列做出,先把它做了。 - -**[02:00:06] 发言人 8**:对,我们会把它我们会把这个也做成一个做成一个普通用户都可以用的一个平台。 - -**[02:00:15] 发言人 8**:软著这边你刚才说了,我们自飞平台一。 - -**[02:00:20] 发言人 0**:共报了两。 - -**[02:00:21] 发言人 8**:个算法,一个前面的几个内容报了一个算法,自飞一共四个。 - -**[02:00:28] 发言人 8**:然后这周我们还要完成一个事情,就是我们通过那个沙漠向我们的研发。 - -**[02:00:36] 发言人 0**:人开会,就是提。 - -**[02:00:37] 发言人 7**:供阿里云的科的。 - -**[02:00:39] 发言人 2**:模型服务。 - -**[02:00:40] 发言人 7**:这块完是一个统一的计口。 - -**[02:00:44] 发言人 8**:我这就这么去。 - -**[02:00:44] 发言人 0**:对对对,不要游击队,我操这个他妈的你要随时想着我们是正规军,要以铁道游击队的方式要求自己,最后就变成铁道队。 - -**[02:00:52] 发言人 8**:但是这样的崔不总上回我们也开过会,就说我们是这样的,这边我们提供的基础服务,其实他们有些同事他们用量非常高,他们也会做,自己会买一些补充,但是我们会统一要求,这样的话至少来说我们可以保证一个基础的培训。 - -**[02:01:09] 发言人 0**:好吧? - -**[02:01:10] 发言人 0**:好,你那然后你那卡是。 - -**[02:01:13] 发言人 3**:你最后那。 - -**[02:01:14] 发言人 8**:几个卡,你是四张卡。 - -**[02:01:17] 发言人 8**:是现在拿了两张卡来统一布一个推理,就是我们所有的全部还。 - -**[02:01:29] 发言人 5**:有一张卡在留给那字午。 - -**[02:01:34] 发言人 0**:不务后所都要的对。 - -**[02:01:36] 发言人 7**:就是我们所有的的那个推理。 - -**[02:01:39] 发言人 8**:我估计他现在。 - -**[02:01:41] 发言人 5**:主要审那个单子,就最大的就是审。 - -**[02:01:49] 发言人 2**:好。 - -**[02:01:50] 发言人 4**:其他的没有。 - -**[02:01:52] 发言人 0**:好,那就这样。 - diff --git a/agent_memory/uploads/kb_3cc4030350de/1782283873952_1_transcript_712.md b/agent_memory/uploads/kb_3cc4030350de/1782283873952_1_transcript_712.md deleted file mode 100644 index d1c8ddf..0000000 --- a/agent_memory/uploads/kb_3cc4030350de/1782283873952_1_transcript_712.md +++ /dev/null @@ -1,2918 +0,0 @@ -# 会议712 - -**会议时间**:00:00:01 - 02:01:54 - -**与会者**:发言人 0, 发言人 1, 发言人 2, 发言人 3, 发言人 4, 发言人 5, 发言人 6, 发言人 7, 发言人 8 - -## 会议记录 - -**[00:00:01] 发言人 0**:你的数里面主要是升高那个数,跟你对过没有? - -**[00:00:06] 发言人 0**:就是最。 - -**[00:00:07] 发言人 1**:终的结果。 - -**[00:00:09] 发言人 1**:我根据财务的收款。 - -**[00:00:10] 发言人 0**:你不能只跟据财务收款,你要跟盛刚再对一对,你要跟他通电话对一对。 - -**[00:00:16] 发言人 1**:数据都是从他们系统里面取出来的。 - -**[00:00:20] 发言人 0**:他现在预测的到6月底是多少? - -**[00:00:24] 发言人 1**:现目前的话总的预计数是因为。 - -**[00:00:26] 发言人 0**:数据值得取得。 - -**[00:00:27] 发言人 0**:但是最后预测的话,他他负责人他要有预测的能力,他自己要预测能力,要把预测放进去了。 - -**[00:00:35] 发言人 0**:你不能单独只看这个,这个就是他们取的数据。 - -**[00:00:47] 发言人 0**:然后预500万是吧? - -**[00:00:49] 发言人 1**:对,然后我们这边低一低工程的高,他们这边预计数据是不可报的,低高风险是短。 - -**[00:01:00] 发言人 1**:然后我们这边会根据实际的一个收款发货,然后一些备后情况来做一个评况。 - -**[00:01:08] 发言人 1**:对于他们的项目空间做一个。 - -**[00:01:15] 发言人 0**:我不看收入,你不用老是看那个了,我就看主要看那个那个毛利。 - -**[00:01:20] 发言人 1**:那一栏毛利是按照35%的毛利率。 - -**[00:01:32] 发言人 1**:按照他们之前接收,这个月软件比较多。 - -**[00:01:41] 发言人 0**:定开有146万。 - -**[00:01:44] 发言人 1**:在目前的部。 - -**[00:01:51] 发言人 0**:那净利润怎么才121万? - -**[00:01:54] 发言人 2**:哪儿有问题呢? - -**[00:01:56] 发言人 1**:没有,对,因为每个月差不多在250万的费有。 - -**[00:02:05] 发言人 1**:然后上个月是亏损。 - -**[00:02:07] 发言人 0**:了一少万。 - -**[00:02:08] 发言人 1**:累计对,累计。 - -**[00:02:20] 发言人 0**:总部是记了哪些? - -**[00:02:22] 发言人 1**:然后就是答案都一个就是把它运为,然后一个就是国默博用。 - -**[00:02:37] 发言人 1**:然后还有一些小金头的,很少很小的。 - -**[00:02:44] 发言人 0**:好啊。 - -**[00:02:48] 发言人 1**:然后现在实际的话,劳力已经完成了307万,剩余的主要是微电。 - -**[00:02:59] 发言人 1**:实际上在这两个门基本上是完成了。 - -**[00:03:04] 发言人 0**:那你下来你追着他,一个省长给他跟他就是要他严肃,他这个就是要求留机,你们这个需求定开。 - -**[00:03:21] 发言人 2**:这个其跟我这儿其实也不一样。 - -**[00:03:24] 发言人 1**:我这是不含税的。 - -**[00:03:33] 发言人 0**:好吧,好。 - -**[00:03:34] 发言人 4**:我这边其他。 - -**[00:03:36] 发言人 1**:没有然后。 - -**[00:03:43] 发言人 0**:对,还有马上是吧? - -**[00:03:45] 发言人 0**:马上到月底了,你一个雪秋,这里你们定开一个是这个雪球流进,定开升高那里好不好? - -**[00:03:55] 发言人 0**:好,继续。 - -**[00:04:03] 发言人 3**:刚说入台我们已经画了整个我们绿色部分,我们测试器我的时。 - -**[00:04:11] 发言人 3**:一起绿色的就是去上刺,有的已经完成了,我完成了自。 - -**[00:04:20] 发言人 3**:即使我们的足球业的我们平台的走织链运营。 - -**[00:04:24] 发言人 3**:然后这是几个,一个就是那个重点工作,就是上周完成了合北智算的个签约,合北智算那个融合交换机,7680多万,然后切除就完成了。 - -**[00:04:38] 发言人 3**:然后那个风险也跟那个。 - -**[00:04:43] 发言人 0**:青岛两个点上。 - -**[00:04:44] 发言人 3**:两个点,因为即使青到先客胡松,我们1.2个繁体算是我他拿太多也你必要,你什么都不让谈心海欠货,那你搞那么多,我这边人家压力也大。 - -**[00:04:56] 发言人 0**:就是说把这1.2不用聊。 - -**[00:04:58] 发言人 3**:我们他就可以拿走是吧,对不对? - -**[00:05:00] 发言人 3**:他他他这个我跟刘凯也让他去问问下面的那个那个谁之金,以及包含何小强他们,胡松经理就是问他。 - -**[00:05:13] 发言人 4**:很。 - -**[00:05:17] 发言人 3**:样。 - -**[00:05:20] 发言人 0**:到好吧。 - -**[00:05:24] 发言人 3**:继续。 - -**[00:05:25] 发言人 3**:然后收款就是这个我。 - -**[00:05:27] 发言人 0**:觉得这个东西今年有,明年就没了。 - -**[00:05:31] 发言人 3**:是妈的,所以说用户有操作了,是这个理解,有一年吃一年,这个东期,然后收款的话就是国务用了23万,我曾前我叫。 - -**[00:05:47] 发言人 2**:什么什七回重,而回重。 - -**[00:05:51] 发言人 3**:不是个集单收款那家,然后我用那个收款那家,最后尾款23万. - -**[00:06:02] 发言人 6**:打过来了,是伟吗? - -**[00:06:05] 发言人 6**:两种打过来,他那个早过只是对,就是现金。 - -**[00:06:11] 发言人 3**:然后丁开的是双四收入五元。 - -**[00:06:16] 发言人 3**:是不定池是背靠背没多大意义,这几个做法。 - -**[00:06:21] 发言人 3**:然第二个事情就是辽宁东北大学周五我去找高研的时候,他也去找教授,赵教授已经找到合个往前一个打进去了,就是400万这个事儿,那个教授自己找人了,就不需要了,就不需要自经找人了。 - -**[00:06:37] 发言人 3**:高演说只能在等们下次再合作。 - -**[00:06:40] 发言人 0**:这个太难了,这个中间链条太长了。 - -**[00:06:43] 发言人 3**:我在是成都子公司会议,等他开完上时电话开完会就给你报。 - -**[00:06:49] 发言人 3**:然后约定的是明天给出经营费用,然后收入带时间以及空间,就是项目空间储备,待时间落地了,然后这三张表拿给股。 - -**[00:07:00] 发言人 3**:另外就跟徐凯也商量了,说发含担心营销国他不会给那个封封口直达,所以封评不会给那个封封评,所以说他说还不如去约封评。 - -**[00:07:10] 发言人 3**:徐凯也没有逼我老。 - -**[00:07:11] 发言人 0**:觉得是这个势,就小果他一点都不决策,就给他一个正式的东西都要不拿着重东西,他也不敢在手上留。 - -**[00:07:19] 发言人 0**:是不是他决得不了你你得发他决策,就给他一个正式的东西,就我们给他一个正式的函,给他我们要搜的那个东西。 - -**[00:07:29] 发言人 0**:对他的要不要不拿到函的,你那到时候拿到你手上发烫了,他发烫了他怎么办? - -**[00:07:36] 发言人 0**:他肯定得这东西还要处理不了。 - -**[00:07:38] 发言人 0**:你现在是没有一个没有一个触发,没有触发的一个没有一个出发点,是就现在要走出发点,那找个出发灯心一个。 - -**[00:07:47] 发言人 0**:对对对,我觉得你还触发他就给他是吧。 - -**[00:07:50] 发言人 0**:这个函你不交,我也可以交给你上级,你许敢跟外面给一开,我也给交给上级是吧? - -**[00:07:55] 发言人 0**:触发他,那我先把函子说,对,然后跟徐磊说两边一起走是吧? - -**[00:08:01] 发言人 0**:就出发的,你要出发的他也会去教的,他不教拿这个手头烫的,对不对? - -**[00:08:05] 发言人 0**:我给你比如我举个例子,我给你个紫光,给我汇智商报你不上报你的某公司,你自己也不决策,那就就就就就就麻烦了好是吧? - -**[00:08:15] 发言人 0**:因为你首先你触发了你,你要去决策,现在就是要触发他决策。 - -**[00:08:21] 发言人 3**:然后上次2. - -**[00:08:22] 发言人 0**:比如说我撤单,总人我他妈告我,我几个名,我马上告他,我说你我我这个他就感觉我。 - -**[00:08:29] 发言人 3**:感到有压力的触发他。 - -**[00:08:31] 发言人 3**:行。 - -**[00:08:31] 发言人 0**:这个我会过来。 - -**[00:08:32] 发言人 0**:咱因为咱这中西中间不管是那个女的还是那个谁,都要给我们任何都没有感情。 - -**[00:08:38] 发言人 0**:我们抛开感情全靠法律。 - -**[00:08:40] 发言人 0**:好,所以我们就靠这个,这就就这这这这个那这个下午就出了,必该说的说完了。 - -**[00:08:46] 发言人 0**:现在你现在就是往我之前说的那个,本来说这个给了面时间,本来就让拧这个螺丝是吧,给了时间,他这个最后的结果还是跟他的两个月之前拧。 - -**[00:09:00] 发言人 3**:难的很。 - -**[00:09:01] 发言人 3**:我就我我要开个会,全是这么一堆垃圾话,一点用都没有,都可以给你开。 - -**[00:09:09] 发言人 3**:算了,会后的给你看,就不浪费他家家时间。 - -**[00:09:13] 发言人 3**:然第四个就是那个那个藏品二期,上周二跟华商客服首仓安全开完会。 - -**[00:09:19] 发言人 3**:然后开完会你们你就是跟我说,让跟让我联系,他们跟他确认,一直到中午他才给我回电话,我会后就给他打电话了,说两中午跟他说两个点的事儿,我说中午陈峰总该怎么说,我说陈峰总这走一走,已经说陈峰总已提到走一走的消息了,就是说跟毕总一谈好了,就两个点。 - -**[00:09:38] 发言人 3**:但是冯长安说毕总找他了,没说两个零事不能亏损,说以说想做到6到7个点,然后我我这面我这边说我接受了通知是两个点。 - -**[00:09:46] 发言人 3**:但是我说我第一第一,我说这是内部项目,我们不会赚钱。 - -**[00:09:50] 发言人 3**:我说第二,今天我本身就要提交华山客户的一些资料,提交的时候我们会不会问紫光新云谷光,我们用华山客,你是不是可以给我们保增加点利润和预算。 - -**[00:10:02] 发言人 3**:然后今天会后,我这边中午郝龙去提交资料的时候,我跟郝龙的商量就是一我把现实情况告诉他是哪一项目。 - -**[00:10:10] 发言人 3**:二招标的是紫光星为还卡我们的卡,我的价格。 - -**[00:10:13] 发言人 3**:你想要六个心理预算可以,但是招标的时候还肯定会卡卡的时候我也会给你试服入我们预算利润也不高。 - -**[00:10:21] 发言人 3**:所以说冯长安过表达的,他那边跟B总不亏损,6到7个点才行,希望我们给他争取不亏损。 - -**[00:10:28] 发言人 0**:争取6到7个点。 - -**[00:10:29] 发言人 0**:没有我现在就是两个点,因为我们都没有多少钱。 - -**[00:10:33] 发言人 0**:这个东西你就是借你个壳,你还讲什么,你要你那没人,你没有这生意赚一点,没这生意两个点多少钱? - -**[00:10:40] 发言人 3**:10万2000万,40万。 - -**[00:10:42] 发言人 3**:对。 - -**[00:10:43] 发言人 0**:有这生意,你有40万就赚一点,你没40万我不找你了是吧,你你你这个就是这意思。 - -**[00:10:49] 发言人 3**:然后他那边说逼须文给他说的是做到不亏损,然后他就开始各种磨。 - -**[00:10:55] 发言人 0**:说是又要对,做的不亏。 - -**[00:10:57] 发言人 0**:你两个点不用派人的,他要派人吗? - -**[00:11:00] 发言人 3**:要派项目,他要派至少名誉项目挂。 - -**[00:11:03] 发言人 3**:因为他是中标公司的一进的项目经理。 - -**[00:11:07] 发言人 0**:那成本算百两个点。 - -**[00:11:08] 发言人 0**:那是成本,那可以。 - -**[00:11:10] 发言人 0**:你那你如果是在挂项品的另外成本上面。 - -**[00:11:13] 发言人 3**:你不到现场,要是去一趟,要是去一趟,就像我们那成本上面那个点,好吧。 - -**[00:11:18] 发言人 0**:那个算成本,那我下我因为你这个事,你还得跟紫薇交代,你因为你最后把紫总我谈的两个点,你们他妈整这个七个点,你们就这水平我们没答应。 - -**[00:11:29] 发言人 3**:对不对? - -**[00:11:30] 发言人 3**:所以我专门汇到个。 - -**[00:11:32] 发言人 0**:而且按说那原则就不亏损,能赚多赚,第一不亏损我们给你保障,第二能赚多赚,我们也没赚到钱,就不是说大家说意这你这个逻辑我不是很赞同。 - -**[00:11:43] 发言人 0**:你说我们等到去跟他谈集团,如果说我们自己家集团会不会涨一点,这个逻辑不不不成不成立的。 - -**[00:11:50] 发言人 0**:你不管是谁的家,因为你你招不招投标,我在我那边就一定是什价格降的最低。 - -**[00:11:56] 发言人 0**:比如我是甲方,你们谁来,我也不想得这个。 - -**[00:11:59] 发言人 0**:我难道说你们因为是集团利部的。 - -**[00:12:01] 发言人 3**:我都给你讲这话,不能这么说,我算我表达是这意思。 - -**[00:12:05] 发言人 3**:我们上一次就是因为内部标,第一次我们中标准都中标了1 1100 1100万,集团反过来压我们降了100,接近100万。 - -**[00:12:14] 发言人 3**:他说正我说的意思,正因为是内部公司,反而让我们把利润空间给压缩了。 - -**[00:12:19] 发言人 0**:对,他要压。 - -**[00:12:21] 发言人 3**:对,就是你即使中标了股东股份,还会开会让我们二次降价。 - -**[00:12:25] 发言人 3**:我们本身一期就是二次降价接近100万,而就降了150万,是降了多少? - -**[00:12:31] 发言人 0**:就是要跟他说,我们没挣到钱,因为这里面还有垫资,我们算下来就是四个点给你一半。 - -**[00:12:37] 发言人 0**:我我们我卖电动多资,你把它设计成这个样子,对不对? - -**[00:12:41] 发言人 0**:我们就四五个点,或者说我五个点,或者我十个点以内,我就八个点。 - -**[00:12:47] 发言人 0**:那紫薇都会编这个话,紫薇编的话编的圆的很,我一共就八个点是吧? - -**[00:12:52] 发言人 0**:紫薇说紫薇圆的,她紫薇跟那个都没听跟我们沟通,紫薇直接跟人家说,那绘制不挣钱,没几个点,就个位数的点。 - -**[00:12:59] 发言人 0**:你要只要说的我是个位数,那你说你要多少,你们要觉得对不对? - -**[00:13:03] 发言人 0**:你说我哥哥说,而且我垫子这风险,我怎么风险我收不回来钱? - -**[00:13:07] 发言人 0**:你看着账面利润收不还收不回来钱,那么麻烦对不对? - -**[00:13:11] 发言人 0**:就是因为你我我我现在我们就是蓝领就这水平对不对? - -**[00:13:14] 发言人 0**:你要你如果一定要要,那我们就只找其他外面去找,是吧? - -**[00:13:17] 发言人 0**:你跟能说清楚就是大家关系,你不挣钱,你不可能,你比我挣的还多,那我挣他妈那干嘛? - -**[00:13:23] 发言人 0**:还有我风险比你大,对不对? - -**[00:13:24] 发言人 0**:我都是个位数,你就不少。 - -**[00:13:26] 发言人 0**:你们这么觉给他说,你把成本压了,你把成本做起来,做到。 - -**[00:13:30] 发言人 0**:因为只有我们知道成本,对不对? - -**[00:13:33] 发言人 0**:你做起来以后,你就他就看着你就是不到10个点,你要几个点,对不对? - -**[00:13:38] 发言人 0**:我还不出资,我还出什么东西,对不对? - -**[00:13:41] 发言人 0**:而且因为这是集团的,是外面的,我们也可以说他妈的我挣了20块钱给你,他妈的300。 - -**[00:13:48] 发言人 0**:那现在集团的很透明,集团就是要压死你,对不对? - -**[00:13:53] 发言人 0**:集团那软件还不愿意做,就是因为不挣钱。 - -**[00:13:57] 发言人 3**:我讲故事好吧。 - -**[00:13:58] 发言人 3**:所五个g pu国产U的项目,以跟俊杰装备已经弄清楚了,就是我3GPU算力太强,算力性能不够,以及那个软件不适备,就没法去搞重度渲染测计的工作,所以这个事情已经上做不了。 - -**[00:14:20] 发言人 3**:对上好多。 - -**[00:14:20] 发言人 3**:第六个是中法云作面,一共是这的还是哪里做法云作面四川的,为什么写在这? - -**[00:14:28] 发言人 3**:担心就是招今天早上可中了吗? - -**[00:14:30] 发言人 3**:这已经中了,但是是年前的预算,之前报价150万,现在已经涨到了197万了。 - -**[00:14:38] 发言人 3**:我们在报价正常不利的情况下,我现在渠道找了张威,张薇,就是很冒火。 - -**[00:14:43] 发言人 3**:周末给张涛发了个微信,让张涛来处理这到底怎么回事? - -**[00:14:49] 发言人 3**:因为渠道给张威那个表达的,说实慢慢的涨了,涨了一千多块钱,实际上我们就是涨了四十多万,是因为内存和租是涨价的。 - -**[00:14:59] 发言人 0**:对。 - -**[00:14:59] 发言人 3**:正常今天早上徐凯跟张涛一起去找张威,然后就我们差不多就是现在的报价197万。 - -**[00:15:07] 发言人 3**:如我们的我担心,如果张威在他们汇报完了给你打电话,其实我们就是象征性的的197万件摩个礼物也差不多了。 - -**[00:15:17] 发言人 3**:但是我刚刚也问了宋刚,反正是你利润肯定是按照正常毛利报的。 - -**[00:15:23] 发言人 3**:如果是张威愿意,他什么时候种的,是华山的销售去种的是吧,华山销售和渠道和去年种的。 - -**[00:15:29] 发言人 7**:什么时候种的? - -**[00:15:31] 发言人 7**:去年涨价钱重的,涨价钱重的,现在要进货。 - -**[00:15:34] 发言人 7**:对,涨价钱重的现在才开始要货。 - -**[00:15:36] 发言人 7**:然后去年报给他们终端报了很低的价格,是150万,150万那个终端只留了不到50块钱一台的利润。 - -**[00:15:45] 发言人 0**:后来他自己他当时没提,他没提过,他为什么不提呢? - -**[00:15:49] 发言人 7**:他他他没定下来。 - -**[00:15:50] 发言人 0**:他不没实施,他提了。 - -**[00:15:52] 发言人 0**:所以中标那个价也也是是什么价格。 - -**[00:15:55] 发言人 7**:去年是900块钱台,现在要1300多。 - -**[00:15:58] 发言人 0**:我知道,但那那他等于说他只能出那么多钱。 - -**[00:16:02] 发言人 7**:我没理解这个逻辑,那他手上还是有一点钱,那他想尽量压低一点。 - -**[00:16:07] 发言人 0**:我他我中了标了,像这种,因为涨价中了标,你如果不你就废标就完了。 - -**[00:16:12] 发言人 7**:我我我不做就完了。 - -**[00:16:14] 发言人 7**:这个投标跟我们没关系不。 - -**[00:16:16] 发言人 0**:我知道。 - -**[00:16:17] 发言人 7**:他我说说完他是总级去做标。 - -**[00:16:20] 发言人 0**:我知道再找我们要货,我知道,就集销商如果最终的结果是因为那个甲方是不会给多的钱。 - -**[00:16:27] 发言人 2**:应该是甲方会给多少钱。 - -**[00:16:29] 发言人 0**:那基本上最多我做不了整个费,要不然我就只有减少不计,要不然我减少自己的利润,对不对? - -**[00:16:36] 发言人 0**:大时叫服务器,对不对? - -**[00:16:38] 发言人 0**:那他最后中不了。 - -**[00:16:39] 发言人 7**:那他服务器他踩没踩,这他这190万好像是含服务器的。 - -**[00:16:44] 发言人 0**:那这是集商自己的原因,可能我们不管好吧,我觉得这集。 - -**[00:16:49] 发言人 3**:销商自己的原因。 - -**[00:16:51] 发言人 0**:我担心稍微会给你打电话。 - -**[00:16:53] 发言人 0**:他妈一百多万,我觉得他一百多万,他说打不打电话。 - -**[00:16:57] 发言人 3**:他就是跟他一起跟那个销售就完了。 - -**[00:17:00] 发言人 3**:他找我。 - -**[00:17:00] 发言人 0**:我也会跟他说,我说你那么大领导一百多。 - -**[00:17:04] 发言人 0**:在乎这个给你报一下。 - -**[00:17:05] 发言人 3**:就担心你什么都不知道。 - -**[00:17:07] 发言人 3**:他张着一打电话,你说怎么要再把我们是弄的就尴尬了,给你报备一次了。 - -**[00:17:12] 发言人 0**:对我我我我个人认为他可能不会。 - -**[00:17:14] 发言人 3**:因为你们一百多万。 - -**[00:17:16] 发言人 7**:我不知道他招微信,那其实就是我们主管找是吧? - -**[00:17:32] 发言人 3**:然后招人,云南的人今天入职,你就答应好了。 - -**[00:17:35] 发言人 3**:我跟商务的云南商务管管商业张强也说了完说会后我拉着他们一起开工会。 - -**[00:17:42] 发言人 0**:上次他们是余江山,是谁给我打的电话,有一单是他跟我说,你们在哪出差? - -**[00:17:47] 发言人 0**:What you . - -**[00:17:50] 发言人 4**:can . - -**[00:17:51] 发言人 0**:do . - -**[00:17:52] 发言人 3**:with that? - -**[00:17:55] 发言人 0**:那。 - -**[00:17:57] 发言人 3**:是也是因为涨价的策本。 - -**[00:18:01] 发言人 3**:对,我去。 - -**[00:18:02] 发言人 0**:找我磨了,我我说我就跟他说,我说可以,我说这次我就给你我就你打电话来是吧,我就给2万块钱,他最后说感谢,我说你们大领导你把我给我,我说但是不是他没抹,我说你既然你找了,我肯定给你降一些,对不对? - -**[00:18:20] 发言人 0**:我说你都来找我了,我说但是实话实说,我说我也不挣钱是吧? - -**[00:18:25] 发言人 0**:我说咱们这兄弟们兄弟妈的是吧。 - -**[00:18:27] 发言人 3**:我说我就给个面子,我这给你报的想声,如果没招,你把这个7万块了就完了。 - -**[00:18:32] 发言人 0**:我还是有35%,我万还对于我对他来说73000毛毛. - -**[00:18:37] 发言人 3**:对于我来说70001个给你报一下。 - -**[00:18:40] 发言人 3**:他担心他。 - -**[00:18:41] 发言人 0**:走对于我来说期望还是挺高的。 - -**[00:18:43] 发言人 0**:上面哪个经理,我后来给他说了,他自己都不好意思。 - -**[00:18:48] 发言人 0**:对了,那就少一点,少感谢下次我说真的,我说咱们兄弟,我说这个是吧,我说我你打电话我,但是实他妈的是就是这个样子。 - -**[00:18:58] 发言人 3**:云南的人气电路十报说了,跟云南商业主管赵强也沟通了让他先带一带。 - -**[00:19:04] 发言人 3**:然后省代和下面的销售都认识之后,就开始他自己跑开了。 - -**[00:19:10] 发言人 3**:因为他本身就是招了按招了进天入职,然后那个本身就是私心服的,他也他他本你下来,他们就是谁跑哪儿。 - -**[00:19:18] 发言人 0**:谁跑哪儿了,你到时候就跟我说一下。 - -**[00:19:21] 发言人 0**:好,那咱们我们那个会后我们再商量好好。 - -**[00:19:25] 发言人 3**:然后云视的项目空间是还是1100 1.08个亿。 - -**[00:19:30] 发言人 0**:但协同营销实际上是没有什么作用的。 - -**[00:19:33] 发言人 3**:现在目前来看,协同营销。 - -**[00:19:35] 发言人 3**:那四个人工学跑的可以,河北就是交给刘凯和陈志华。 - -**[00:19:39] 发言人 0**:他两个跑,我开始没半年,他没有那个没贡献也不大。 - -**[00:19:45] 发言人 3**:你是指中景数据? - -**[00:19:47] 发言人 0**:对呀对。 - -**[00:19:48] 发言人 3**:他们还在充,一个是冯文超签了一个2 100 300多万,是几百多万的利润进来,里面有二十多万的利润。 - -**[00:19:58] 发言人 3**:然后刘用凯每次在在河北就周你那还没表现还挺集中,都签单了,还没集中。 - -**[00:20:05] 发言人 3**:六月份要寄,六月份寄不了钱,今年要记。 - -**[00:20:09] 发言人 3**:冯超不是刚3 4月份还是五月份把那个迁进来的吗? - -**[00:20:15] 发言人 3**:然后刘凯,那刘凯那个数还没算是吧? - -**[00:20:18] 发言人 3**:对,还没算。 - -**[00:20:19] 发言人 3**:然后徐凯这个就是重心全在于位上,完了之后再就加上跟也是商业主管和政府主管的郭达安、张威安排你,他也在陆续弄,上次是南充智慧城事务部,也是他在跟。 - -**[00:20:37] 发言人 3**:这四个是我感觉现在节奏跨你觉得还可以? - -**[00:20:42] 发言人 3**:这四个每周开会,我们郝龙郝郝龙跟王斌两个完全飘在外面,还挺锻炼,也不跑没跑运做面,然就是等好容就是等大项目。 - -**[00:20:52] 发言人 3**:王斌最近好像连系同项目都少,中医物联我不知道怎么弄。 - -**[00:20:58] 发言人 2**:现在甚至。 - -**[00:20:59] 发言人 3**:所以不前我十的过程中,好论就是吃算那几个钉钉子那几个吃算。 - -**[00:21:08] 发言人 0**:好,反正半年就是个坎儿。 - -**[00:21:09] 发言人 0**:你跟他们通知一下,半年他妈的你这个你半年业绩就是个坎儿,包括这个谁,湖南那个叫什么这个过对。 - -**[00:21:19] 发言人 3**:到时候我还专门问了他一下数据,他数据一直。 - -**[00:21:22] 发言人 0**:你给他们发个文,你半年是个坎儿,都要交作业的。 - -**[00:21:26] 发言人 0**:你说我们还要给集团交作业,各级个交作业,你的作业不行,最后半年下去可能都会有处置的。 - -**[00:21:32] 发言人 0**:好,反正就要注意了。 - -**[00:21:33] 发言人 0**:那我就这种半年这个坎,那半年不行,今天把那个明弄好。 - -**[00:21:37] 发言人 0**:对,就跟他讲你半年这个坎,你半年你必须要打证,你这必须要打证,不打证这个不可能的。 - -**[00:21:44] 发言人 0**:他们几个人这样的半年是个坎,好吧,你打不正,我们这半年公司都会做,公司会开会的,对于每个人的情况。 - -**[00:21:53] 发言人 3**:然后再一个就是俊杰,你那两个优优系列的检测报告,现在进度如何? - -**[00:22:00] 发言人 3**:能不能凑下来? - -**[00:22:01] 发言人 3**:欧阳报告上次提交了。 - -**[00:22:03] 发言人 7**:今天早上又来说我们上周注册证还是老公司的名字,去年他这个方式是认了的。 - -**[00:22:11] 发言人 7**:去年的两州市场,我开开了一个新紫光集团的公司,跟名申请,他就认了,今年的首册也不认。 - -**[00:22:20] 发言人 7**:然后欧阳现在马上找集团去要新的公司的上注册证。 - -**[00:22:25] 发言人 3**:到家又号了就了。 - -**[00:22:27] 发言人 3**:然后打需要去了,为什么来不及了? - -**[00:22:30] 发言人 7**:那欧阳上周上周一上周一提他,因为他有过程,上周一提交给C这边机构,然后今天早上反馈说我们那个公司名称。 - -**[00:22:41] 发言人 0**:他有一个星期是吧? - -**[00:22:43] 发言人 0**:你如果你再弄,不是我们内部的,不,如果集团问题我可。 - -**[00:22:50] 发言人 7**:以去协调,你不是内部问题。 - -**[00:22:53] 发言人 2**:集团还应什么意思? - -**[00:22:58] 发言人 3**:今天拿新的就进早就就。 - -**[00:23:01] 发言人 0**:是什。 - -**[00:23:01] 发言人 7**:么个就招不了这标了,投不了标了是吧? - -**[00:23:07] 发言人 7**:没有这报告就投不这标了。 - -**[00:23:10] 发言人 7**:明多说说所谓政治已经结束,现在政在发生过程。 - -**[00:23:14] 发言人 3**:但你把这个协给我们,你协助我们,我这个就有点爆告,就是你什么都没有,他不打票,还有的豆假这个东西。 - -**[00:23:21] 发言人 7**:其他只票都是这样。 - -**[00:23:23] 发言人 0**:你们就找一个方式,因为这个东西我觉得可能还是会有办法。 - -**[00:23:28] 发言人 7**:因为毕竟不是我们一家这样很多家西。 - -**[00:23:31] 发言人 0**:因为毕竟你是紫光集团,你的事情是真实的,是吧,你只能可能少了个手续。 - -**[00:23:36] 发言人 3**:给个解释完的时候这么。 - -**[00:23:38] 发言人 3**:隔壁图说发,下面几个要签单或投标的项目,一个就是北京那个谁谁那包包浩伟,包括那个的标城伟是冲标。 - -**[00:23:55] 发言人 0**:估计是冲标。 - -**[00:23:57] 发言人 7**:没没把我挺的。 - -**[00:24:02] 发言人 3**:那挺要的的这道这那助就一直引导这。 - -**[00:24:08] 发言人 7**:找沟通。 - -**[00:24:09] 发言人 2**:事然那个京我。 - -**[00:24:11] 发言人 3**:觉得有关系。 - -**[00:24:12] 发言人 0**:提早都会想种办法。 - -**[00:24:15] 发言人 0**:他们做。 - -**[00:24:17] 发言人 3**:后手批,我没答应,我说等等一等,我就实在不能批,为啥我就不说了? - -**[00:24:24] 发言人 3**:实在因为学校是他们肯定有一样的问题,我种方式我们就不在上说这个事,那下面是几个项目情况,然后那个我就不懂了,本身每周例会我都跟他们过。 - -**[00:24:37] 发言人 0**:我多其实总理这种开会,所以说会议纪要也麻烦。 - -**[00:24:41] 发言人 0**:刚才有时候那话没理对。 - -**[00:24:43] 发言人 2**:所以我压根都没提你们。 - -**[00:24:45] 发言人 0**:那你为啥要提? - -**[00:24:46] 发言人 0**:你提我加一个,然后放在里面这会议,所以他怎么能把这句话删了? - -**[00:24:52] 发言人 0**:也有些会议这句话不叫记录我,所以从这些看得出来,这个就是会议纪要本身还是有些问题。 - -**[00:24:58] 发言人 0**:就这个会议纪要这种模式,你记到自己手机上就很简单。 - -**[00:25:02] 发言人 0**:换句话说,你就是你你记到公司的那些名件,我觉得都是有点问题。 - -**[00:25:07] 发言人 7**:所以说要拿走了,要修改。 - -**[00:25:09] 发言人 7**:最后一下昨天。 - -**[00:25:11] 发言人 2**:的反而哪种是好的? - -**[00:25:13] 发言人 3**:那天像那个。 - -**[00:25:14] 发言人 0**:悟空他们这种方式,就大家开这个研讨会,他们主动记了,我去他们去研究,我觉得这个反而这种方式是可能最好的方式。 - -**[00:25:23] 发言人 0**:因为客户第一需求就俊且你下来以后还是用他们所有人要用上这个东西才行。 - -**[00:25:31] 发言人 0**:让他写日报,写到最后写的他写的他这个日报怎么写呢? - -**[00:25:35] 发言人 0**:他就写不写不好,只能靠这个把每天的这个记录下来才能写的好啊。 - -**[00:25:40] 发言人 0**:那你这个去弄内驱力就没有了你没有这个内驱力,你也不要日报,你也不要东西,他就没有这个要写,也没有要记的方式,对不对? - -**[00:25:50] 发言人 0**:我们就做个考核,是这的。 - -**[00:25:58] 发言人 7**:他。 - -**[00:25:59] 发言人 0**:们要做个日报核细。 - -**[00:26:11] 发言人 7**:节,你。 - -**[00:26:16] 发言人 0**:想怎么,我们财政部后来研究分析,因为你脱离群众时间长了有问题。 - -**[00:26:24] 发言人 0**:包括你们我上次说的,你们这个要出去跑,你们要出去跑,这种你们要你们自己定下,你们你们现你你们就你们你们你们自己到那个渠道商到那个一线去,你们有一做一个调研报告,好吧? - -**[00:26:39] 发言人 0**:这必须进渠道,不用进华,要华山价值要进华商,全是给你们报围,你渠道建渠道。 - -**[00:26:49] 发言人 3**:你渠道然后见那。 - -**[00:26:51] 发言人 0**:个客户去跑,你自己自己给。 - -**[00:26:54] 发言人 3**:我自己给我定个划华后三简单下咱弄,你等会儿说。 - -**[00:27:00] 发言人 0**:那个东西我觉得也不是那么的,我不是给你发了个视频吗? - -**[00:27:06] 发言人 0**:800万. - -**[00:27:06] 发言人 8**:900万,那玩意儿他。 - -**[00:27:08] 发言人 0**:妈的900差不多,跟我都想得出来那个逻辑。 - -**[00:27:12] 发言人 0**:那那东西就是他妈的就是个赌场,差不多就是好打信息仓。 - -**[00:27:22] 发言人 0**:这就是郝荣最喜欢干的事,就这种玩意,两边就是赌场。 - -**[00:27:30] 发言人 5**:这边的话其升这边上周是有一个视频互联网行业立体数联网场景。 - -**[00:27:36] 发言人 5**:然D的这个然后就相当于是你去鼓励去报了这个名额。 - -**[00:27:43] 发言人 2**:因为是技术里面。 - -**[00:27:45] 发言人 5**:现在我们对,也是王斌,也就实我们去年的商课的。 - -**[00:27:51] 发言人 2**:也是提示以后。 - -**[00:27:53] 发言人 5**:第二个是建设银行的山西省分务行的动力团动画的力监持监测。 - -**[00:28:02] 发言人 5**:有13家去投入这个业,上周也报告了这个事,现在的话应。 - -**[00:28:08] 发言人 0**:该这谁能想到很多。 - -**[00:28:12] 发言人 0**:陈志华的。 - -**[00:28:14] 发言人 3**:项目就。 - -**[00:28:16] 发言人 2**:是自。 - -**[00:28:17] 发言人 3**:己的项目,然后山西那个。 - -**[00:28:22] 发言人 0**:是的。 - -**[00:28:24] 发言人 3**:那个。 - -**[00:28:25] 发言人 5**:是我们的名排那排第样项百。 - -**[00:28:31] 发言人 0**:多。 - -**[00:28:32] 发言人 2**:四百多百多。 - -**[00:28:34] 发言人 2**:蔡总几个点。 - -**[00:28:36] 发言人 3**:现在他是4.5. - -**[00:28:38] 发言人 5**:是4.5. - -**[00:28:39] 发言人 0**:还是四五行,那就不管他,烂么值钱的。 - -**[00:28:44] 发言人 0**:好。 - -**[00:28:44] 发言人 5**:继续。 - -**[00:28:45] 发言人 5**:好,第三个就是那个下那。 - -**[00:28:51] 发言人 2**:主要就是软件的一些功能的一些沟通。 - -**[00:28:54] 发言人 5**:包括它的开发边界。 - -**[00:28:56] 发言人 5**:这个上周已经确认了,然后们现在在做相应开发,这些我们主要是跟他。 - -**[00:29:05] 发言人 0**:就之前一直说有些东西他们如果做不了,你把它拿下来。 - -**[00:29:12] 发言人 6**:能不能拿下来。 - -**[00:29:14] 发言人 0**:我们来开发了。 - -**[00:29:16] 发言人 6**:做不了是吧? - -**[00:29:18] 发言人 6**:现在他们坏,他们没发自都,但是那个。 - -**[00:29:23] 发言人 0**:那个东西就是他那。 - -**[00:29:25] 发言人 3**:个那个枪手自己找一个小包知。 - -**[00:29:28] 发言人 0**:但数字人的交付其实很难的,如果说关系不到就数字人交付。 - -**[00:29:34] 发言人 0**:其实我我估计这个刘静你们因为我们有个好处,我们这的这个叫大模型,现在够大。 - -**[00:29:40] 发言人 2**:你一般小公司拿不成。 - -**[00:29:43] 发言人 5**:200万. - -**[00:29:45] 发言人 6**:那有。 - -**[00:29:45] 发言人 8**:不是五。 - -**[00:29:48] 发言人 2**:罩子。 - -**[00:29:48] 发言人 8**:罩子。 - -**[00:29:49] 发言人 2**:看你看看。 - -**[00:29:51] 发言人 8**:之前看过他三个。 - -**[00:29:55] 发言人 6**:他三个软件我感觉是商业。 - -**[00:29:59] 发言人 6**:对,说白了做。 - -**[00:30:00] 发言人 5**:的是一些他的描述是很简单的。 - -**[00:30:04] 发言人 5**:但是现在就是使用部门现在觉得这个东西太简单了,就是连一个人都没有一个对话框的一种问询方式。 - -**[00:30:15] 发言人 5**:他们现在不认这个事,现在东司这边准备说,要不我们就已经外采一个,他们自己什办法? - -**[00:30:23] 发言人 0**:那你外采你看看他如果外采成本,它的要求,是吧? - -**[00:30:27] 发言人 0**:我觉得可以因为这东西参与,我把你的好你猜一下好不好? - -**[00:30:32] 发言人 0**:你说就是你说因为我们参与很简单,是什么逻辑? - -**[00:30:36] 发言人 0**:你反正给我钱,我给你做,我不参与你那风险,我也参与不参与你那其他风险这。 - -**[00:30:42] 发言人 2**:两个层面的事情。 - -**[00:30:45] 发言人 2**:对对。 - -**[00:30:45] 发言人 0**:就是你给钱给你做,就不参与你们内部的那些东西,我不给你背靠。 - -**[00:30:51] 发言人 2**:背是吧? - -**[00:30:52] 发言人 4**:你可以让。 - -**[00:30:53] 发言人 0**:李静他么去弄试试。 - -**[00:30:57] 发言人 6**:不过我觉得如果要我们真想做的话。 - -**[00:31:00] 发言人 2**:我就寄给我们的这个人评表。 - -**[00:31:02] 发言人 2**:我有。 - -**[00:31:03] 发言人 6**:因为这个是定制化,我们他们一直是想让我们去,是吧? - -**[00:31:07] 发言人 6**:不,我们还没去一次,我觉得去的话就。 - -**[00:31:10] 发言人 0**:我们这样做可以,我先可以。 - -**[00:31:12] 发言人 6**:你先底下先看看,我们先看的时候你先加,因为那个复。 - -**[00:31:17] 发言人 7**:杂度我觉得没问。 - -**[00:31:18] 发言人 7**:那个要。 - -**[00:31:20] 发言人 2**:他。 - -**[00:31:51] 发言人 3**:验收完全就是说我说的跟商户费用挂钩的,你说纯靠写出来我们去验收,我知道。 - -**[00:31:57] 发言人 0**:所以说就不所以说你不能参与。 - -**[00:31:59] 发言人 0**:我们要别人招标的时候,别人招标他要个什么东西,看我们行不行,对不对? - -**[00:32:03] 发言人 0**:我就是就好比什么停车,对不对? - -**[00:32:07] 发言人 0**:停车我们这不是还给了你钱吗? - -**[00:32:10] 发言人 0**:我们把那个做到是吧,我不管你也不验收,不管那个,反正你我给你的支持,你有钱管了,这个可以做,其他如果不行,你不做。 - -**[00:32:18] 发言人 3**:反正你要记得两家可。 - -**[00:32:21] 发言人 0**:视化业。 - -**[00:32:22] 发言人 0**:但我觉得就是我觉得我建议比如宋总你们还是去一趟。 - -**[00:32:29] 发言人 0**:我觉得因为毕竟你中了一个理工,因为这个标不小,对吧? - -**[00:32:36] 发言人 0**:那你如果他以后还有些其他什么技术客户搞1搞,那你说他如果持续的以后有些什么合作,这个项目里面的一些应该他有没有扩容,我就各级这项目里面的每个层面有没有扩容做。 - -**[00:32:50] 发言人 0**:其实都是可以的。 - -**[00:32:55] 发言人 0**:就有点远,太远了。 - -**[00:32:57] 发言人 3**:天远地多远? - -**[00:32:58] 发言人 3**:去宁夏才2个小时才重新出发,飞机才2个小时,早上一班,我们都可以赶快吃到宁夏吃早餐。 - -**[00:33:07] 发言人 2**:上。 - -**[00:33:22] 发言人 3**:八验收的可能性,你分开了有点难度。 - -**[00:33:40] 发言人 2**:你公司不开公司你不能分开。 - -**[00:33:42] 发言人 3**:你分开了,我们承诺产品。 - -**[00:33:44] 发言人 0**:会比你人工。 - -**[00:33:45] 发言人 6**:生意强很多,我们同时反馈还是很强。 - -**[00:33:48] 发言人 3**:只有把这块拿到我们手里,我们来做这个。 - -**[00:33:51] 发言人 3**:你说是人的小基层太远了。 - -**[00:33:53] 发言人 0**:他除非把他当时如果把云桌面给我,我还有点当时云桌面都拿不到。 - -**[00:33:58] 发言人 0**:因为他们现在为什么当时为什。 - -**[00:34:02] 发言人 2**:么那边的价格。 - -**[00:34:03] 发言人 5**:原是没有,他是在原来的。 - -**[00:34:06] 发言人 2**:学校来。 - -**[00:34:07] 发言人 0**:是原来下来的也有多少,当时飞这就是未台。 - -**[00:34:13] 发言人 5**:不是他他服务器都已经用。 - -**[00:34:16] 发言人 2**:到现场了,当时买有卫。 - -**[00:34:19] 发言人 2**:对。 - -**[00:34:20] 发言人 5**:就是难做对。 - -**[00:34:22] 发言人 6**:回去都做好了。 - -**[00:34:25] 发言人 0**:你们琢磨,看有什么机会好吧。 - -**[00:34:27] 发言人 0**:因为这个因为你现在中国大项目不容易,就把它叫什么呢? - -**[00:34:30] 发言人 0**:价值最大化,利益最大化是吧? - -**[00:34:32] 发言人 0**:然后那个就是延展,看怎么延展。 - -**[00:34:34] 发言人 0**:我觉得如果有可能我们的人能上一点,咱就做一点好吧,你就算清账呗,反正自己能算得清账,对吧? - -**[00:34:45] 发言人 0**:别亏,是吧? - -**[00:34:48] 发言人 5**:然后上周的话是更新了四个博客,然这周的话因为已经那个数,我们现在也有自己的办法,我们这周开始我。 - -**[00:34:59] 发言人 0**:们就这个数字,我觉得就是我有自己有算力对吧? - -**[00:35:04] 发言人 0**:你用的是开源的是吧? - -**[00:35:06] 发言人 0**:吴信。 - -**[00:35:07] 发言人 8**:不是,就是我们自己做哒搭的编排器。 - -**[00:35:09] 发言人 0**:我知道那模型应该是哪模型。 - -**[00:35:12] 发言人 8**:就是用的那个本地的本地模型。 - -**[00:35:14] 发言人 0**:就开本地模型,没有用那个,那你开源的模型你都可以多做,我觉得这个可以。 - -**[00:35:21] 发言人 0**:我觉得你们想一想,数字人道确实是一个产品,我觉这是百分之百的。 - -**[00:35:26] 发言人 0**:你给每个代表数做,每个代表给你1万块钱,他是会给你的你的代表书仅仅说给你个2万块钱,只要你给我宣传出去,比如说两万的代表出去得给你10万块钱,他都愿意。 - -**[00:35:37] 发言人 8**:我们再做几期把效果做出来。 - -**[00:35:39] 发言人 0**:我觉得可以取证。 - -**[00:35:41] 发言人 0**:因为华山不会给代表师经理做实践,华三他自己就是外包的对你如果做的好这个事儿,我觉得就这个产品,盛刚那天说的,坐在我旁边,坐在这个位置,盛刚说的话我是赞同的。 - -**[00:35:55] 发言人 0**:你家江浙人是有有有脑子的。 - -**[00:35:59] 发言人 0**:所这个数字能做好的话,我们给省代做,跟代表这经理做,给代表处做,那是有机会的。 - -**[00:36:06] 发言人 0**:你你小爽我说你看到我的数字人我只要按照我我我我我给你个就是我有个团队? - -**[00:36:12] 发言人 0**:我给你按照你的要求给你说多少期,对吧? - -**[00:36:15] 发言人 0**:一年包年他可能愿意的,因为他我操他这数字能做的,你给他看看你做的多好啊。 - -**[00:36:22] 发言人 0**:他说我看到我操做那么好,说白了只要于老板给我多点两个赞,当然以后就只要老板给我多点两个赞,我操我就值,对不对? - -**[00:36:32] 发言人 0**:对他就是形象,我者数字人是有价值的。 - -**[00:36:37] 发言人 0**:包括那省代,你看那省代怎么做的,都都都都很都都很一般,除非你找个小漂亮小妹妹,一般也不是不那么好找。 - -**[00:36:45] 发言人 0**:所以我觉得数字人这里面是有机会的。 - -**[00:36:48] 发言人 0**:我们的人一方面我们自己,一方面我们是找一些什么,就是去上课也罢,或者跟跟一些同僚去合作。 - -**[00:36:57] 发言人 0**:因为做数字人公司很多并不是我们会比别人做的好,只是我们可能关系会好一些。 - -**[00:37:03] 发言人 0**:因为毕竟是集团自己内部的关系公司。 - -**[00:37:06] 发言人 0**:之前给别人赚还不如给我做,对不对? - -**[00:37:09] 发言人 0**:那有可能代表着经理说他说得要做,或者给他亲戚,他旁边没那么多人,或者就是给下面一个让一个销售办,那销售再就中间赚个钱,在一层一层赚个钱,最后拿出那给代表经理的时候,他妈的那个12 15万是吧? - -**[00:37:24] 发言人 0**:可能最后成本是5万,我操他妈的每个人在里面倒个鸡毛。 - -**[00:37:28] 发言人 3**:所以还有一种方式,杨好,如果喜欢的是会一个月安排一个主管过来找你签服务费,给续点费,给我续点费。 - -**[00:37:37] 发言人 3**:对,你杨好也可以,今天让我甘西续点费,明天让那个谁吕小龙续点费。 - -**[00:37:44] 发言人 0**:而且还算的业绩,我这个可可写经。 - -**[00:37:46] 发言人 0**:所以我觉得数字人包括就么我就可以做,而且数字人就是今天早上我觉什么都发生变化。 - -**[00:37:54] 发言人 0**:你看高频交易量化高频交易我们都知道会很牛逼是吧? - -**[00:37:59] 发言人 0**:它高频对,就越是高频的越有就越趋势是高频的就会就会越牛逼。 - -**[00:38:05] 发言人 0**:你说原来发新闻可能一个月发一条是吧? - -**[00:38:08] 发言人 0**:新闻联播非要到晚上七点,那你现在可能每个小时都会有,对不对? - -**[00:38:13] 发言人 0**:因为参与了原来成本高,原来你新闻联播要减一天减几天,他要这样排排排一天一天排下去是吧? - -**[00:38:22] 发言人 0**:他只能一天播一次,你让新闻联播搞成12.1个,晚上一个,他不好搞,他有时候他只能搞一个,对吧? - -**[00:38:29] 发言人 0**:所以现在你让他每1个小时搞一个都可以。 - -**[00:38:33] 发言人 0**:所以我觉得这种趋势,就这股票交易也是你趋定于他妈的秒级交易的。 - -**[00:38:39] 发言人 0**:又厉害了,就趋近于晚上。 - -**[00:38:41] 发言人 0**:刘静我们下了班,你晚上这些他妈的还在那耗电,那就厉害了。 - -**[00:38:47] 发言人 0**:所以我觉得那个是方向,就是原来不是高频的,以后可能会走向高行。 - -**[00:38:53] 发言人 0**:因为有AI存在,所以像这种数字人这种东西,我还是你句话,我觉得一个月100条根本就不算了,那就升到那来给我整100条多了,能不能20到30条? - -**[00:39:05] 发言人 0**:你看,你随着你AI出来,你你你就从早到晚开始造,我操你总有人看到的。 - -**[00:39:11] 发言人 3**:你看到以后,你从你看总那两条是吧? - -**[00:39:14] 发言人 3**:点个赞。 - -**[00:39:16] 发言人 0**:他。 - -**[00:39:17] 发言人 3**:有。 - -**[00:39:19] 发言人 0**:奇一点,他的个就跟什么,原来我们销单是不是? - -**[00:39:46] 发言人 0**:他就是那个A时代,就是现在的A时代的一个高频,对不对? - -**[00:39:50] 发言人 0**:因为别人不知道高频,别人说我要做的东西要复杂,他我我要简单高频好吧。 - -**[00:39:56] 发言人 0**:刘姐,我这数字人,这个事你们下来交你,你也多参与。 - -**[00:40:01] 发言人 0**:我们有个理念,就要把事情做简单。 - -**[00:40:03] 发言人 0**:昨天中午我给你开个会,还是我告诉你个小秘密,你还没给我,我告诉你一个小秘密,后面三句话,三句半不说了,就简单。 - -**[00:40:13] 发言人 0**:你每天就这么烧,不用那么复杂。 - -**[00:40:15] 发言人 0**:告诉你一个小秘密,开什要告诉你个小秘密,那小姑娘对不对? - -**[00:40:20] 发言人 0**:你还没给我,就是简单高,简单高。 - -**[00:40:32] 发言人 0**:你看那版广告,最近的世界杯的广告,还有把罗纳尔都贴出来那么恶心的广告。 - -**[00:40:38] 发言人 0**:A参与什么喝水就喝外星人,我操那他妈的啥广告,但是照料他就反正就是他妈的就这个广告。 - -**[00:40:45] 发言人 0**:因为人家一眼都记住罗纳尔都是外星人,然后这两个一结合,管你啥东西,反正他就记住。 - -**[00:40:54] 发言人 5**:我试了一下,就是我看一下。 - -**[00:40:56] 发言人 3**:发了这么多评论的好少。 - -**[00:40:59] 发言人 3**:那谁那你还得用评论。 - -**[00:41:00] 发言人 0**:你先去这那底。 - -**[00:41:02] 发言人 3**:但无所谓,不可能也不行。 - -**[00:41:04] 发言人 0**:你一会评论,有些人我可能会去评论这东西是没人评论,评论。 - -**[00:41:09] 发言人 5**:就我昨天这个我见朋友说的这儿,就是我昨天做那个就是我给我们家小朋友做了一个像皮克斯的那个数字动画,一分半钟,全自动的。 - -**[00:41:24] 发言人 5**:我从最开始写我们到最后整个做出来大概就花了一个半小时。 - -**[00:41:29] 发言人 5**:然后我看了一下在C档市场所烧的个api的价格的话,大概是花了20。 - -**[00:41:36] 发言人 5**:他因为他那个很准,大概花了25、26块钱,他就可以把一个一分半钟的,大概接近两分钟这样的一个做法全自动。 - -**[00:41:47] 发言人 5**:就说明的话就是说你说的这个就是这个视频的高频的话,现在已经已经已经完。 - -**[00:41:54] 发言人 0**:全可以做得到,最好是本地部署模型,因为实际档次还是贵的。 - -**[00:41:59] 发言人 5**:对对对对。 - -**[00:42:00] 发言人 0**:但是本地的,就是你你看现在很多人都在,我也同时他退休了没事干,每天发,但是他都是钱。 - -**[00:42:07] 发言人 0**:对,因为个人操作是钱。 - -**[00:42:09] 发言人 0**:但是我们如果有一个模型,我们毕竟这还有什么几百批的算力的的,但是几百G的算我也有。 - -**[00:42:16] 发言人 5**:就是他可能做了一种,就做数字可能没有问题,但是做那种可能就类似于像。 - -**[00:42:23] 发言人 0**:电影这个。 - -**[00:42:24] 发言人 0**:我知道那那那个那个那个不是我们的,想反正那个做不到太难,因为短那个那个太难了。 - -**[00:42:33] 发言人 3**:新华三说他们有生态,专门是运作运营给彭古、澎古等地。 - -**[00:42:42] 发言人 5**:上海上午的的那就。 - -**[00:42:43] 发言人 0**:是运营那些短期的团队。 - -**[00:42:46] 发言人 0**:他们就是我觉得像那种,你比如说C档这种这么高级的视频,我觉得未来会产生于哪里呢? - -**[00:42:54] 发言人 0**:你比如如果企要有他专业是做那个短距的,那边角料帮你做点,因为他这个脱贫也多,边角料帮你做点那种他就流出来了,他是吧? - -**[00:43:04] 发言人 0**:他就这么流出来了,但是让我们去做这个就是他的算力空的时,让我们去做点长视频,我觉得我们还是挺难的。 - -**[00:43:12] 发言人 0**:因为你做长视频如果用C档,我觉得就不是我们的方向。 - -**[00:43:16] 发言人 0**:因为这个事情我觉得我们的方向就是数字,还是面向于企业简单的数字。 - -**[00:43:23] 发言人 0**:自己不算利,然后这个简单一些,然后就比别人讲们,因为这个东西可能名字要比别人好看一点就行了。 - -**[00:43:33] 发言人 3**:好像是想用住这个生态,卖他的那个土文小镇,意思是说各按渠道南区委感兴趣就是把算力给建起来,他把这个团队拿过来,他这个算力专门做这个短短句的生态。 - -**[00:43:47] 发言人 0**:这是短的,要你那算,你相当于我给你找个下家了,我叫完以后给你找个下家来买,但光是短。 - -**[00:43:55] 发言人 3**:他不找一个,他找多少个,反正是他说他他他完说跟南安区类似。 - -**[00:44:02] 发言人 0**:你畅你你你比如像那种哪种的可以,完了你说他那个如果像这种他他那个那那种小程区太小了,你比如我找这隔壁电影制片厂,隔壁电影制造厂和我同力小队一起联合在你这儿。 - -**[00:44:14] 发言人 0**:那那那你愿意,你说我找了,你说我找了个游击队,我操那人家觉得你那游击队一个你你你我建起来花了十个亿。 - -**[00:44:21] 发言人 3**:他妈的给运营只花了只给赚了1000万。 - -**[00:44:24] 发言人 0**:你找了个游击队来,你那个游击队才多少人? - -**[00:44:27] 发言人 0**:我觉得他那个铜力小镇在旁边的生态,那必须是一个必须得一个团。 - -**[00:44:32] 发言人 3**:队来协做数据中心的。 - -**[00:44:34] 发言人 2**:阿里阿公就这么说。 - -**[00:44:35] 发言人 0**:就跟那万达商场一样。 - -**[00:44:37] 发言人 0**:万达商场为什么能跟万达商场我了我建好商场以后,老太太睡觉什么那玩。 - -**[00:44:44] 发言人 2**:尔法知道什么都进来了。 - -**[00:44:46] 发言人 0**:我我我有一套名单,我一见他们都过来,然后我带着他们的联盟,我带着我们的合作的五个案例,他们都过来。 - -**[00:44:53] 发言人 0**:那这样是可以的是吧? - -**[00:44:54] 发言人 0**:那万达的你你你你你你你有本事,你你从经有一个你的算下面也有老太太水饺,你有什么什么儿童童车,你有什么电影院,你有一大堆东西,你有这个吗? - -**[00:45:06] 发言人 0**:你没有,你就是找了一个是不够的。 - -**[00:45:08] 发言人 0**:有,但是未来确实是你要真的这个我说的我打这个比方,我觉得非常好。 - -**[00:45:13] 发言人 0**:就是你如果你能把算理解好,就跟万达商场一样,万达商场的模式你学不学会? - -**[00:45:18] 发言人 0**:你要学的会,你那个土利小镇你就可以,你学不会还是样板。 - -**[00:45:24] 发言人 0**:我觉得样板的意思,5万达第一个我为什么我为啥我念林你牛逼,那么多人做商业,为啥他做桥就是样板的意义。 - -**[00:45:33] 发言人 0**:这王健林是属于东北人里面比较牛逼的。 - -**[00:45:36] 发言人 6**:但是四川人我认识四他比较牛逼。 - -**[00:45:38] 发言人 0**:因为我觉得工业的人的他比较牛逼。 - -**[00:45:41] 发言人 0**:他确实因为。 - -**[00:45:42] 发言人 3**:他他整个商业模式。 - -**[00:45:44] 发言人 0**:可能华那个生态弱,他那个商业是早,他自己不是说华能想到这个办法能做起来的。 - -**[00:45:50] 发言人 0**:我觉得王里确实高手中的高手,真的那肯也绝对厉害。 - -**[00:45:54] 发言人 0**:那不是一般人去的。 - -**[00:45:58] 发言人 5**:然后那个无人机项目的话,就是南的一网土飞这个项目。 - -**[00:46:03] 发言人 5**:他们下等上目之后去见过南这个一把手,去见那个他们也明确说了,就是难以动力,明确的预算为下达推向上涨。 - -**[00:46:16] 发言人 5**:就是现在核心还是这个钱从哪出。 - -**[00:46:22] 发言人 0**:南就是去。 - -**[00:46:24] 发言人 5**:那个。 - -**[00:46:25] 发言人 2**:最的。 - -**[00:46:27] 发言人 2**:徐。 - -**[00:46:28] 发言人 0**:们,我操,我觉得升官发财他妈的不是大家都他这个动力应该是吧? - -**[00:46:49] 发言人 0**:应该大家都这是一个动力,这应该是所有人都趋势趋向于赶快换新书记,谁在阻拦? - -**[00:46:57] 发言人 0**:现在就是。 - -**[00:46:58] 发言人 2**:四等没,现在就重新你委会了的,市委会不了的,他们换一把手。 - -**[00:47:09] 发言人 2**:公安不是市长,我是说书记,书记不是应该袁家军他们那个市。 - -**[00:47:16] 发言人 8**:市长市常委,市长常委常委同意的。 - -**[00:47:19] 发言人 0**:好像常委就开不了了,常委现在找了三常委,副书记现在是找三个仓品,少三个仓品,还有几个场品,七个仓位剩4,那四个排,那不能干事了,我操。 - -**[00:47:32] 发言人 0**:因为这些事情其实肯定是。 - -**[00:47:34] 发言人 7**:请的连连正常的晋升都行。 - -**[00:47:37] 发言人 3**:不是,不仅仅是这书记,我朋友在那,我怀疑妈的,我朋友在说家政可能压力在公安。 - -**[00:47:44] 发言人 3**:张明江从跳舞之前,那些调令都已经送到市区了,现在都现在全部暂停。 - -**[00:47:51] 发言人 3**:我觉得那那那那个书记,他就从一个区县调到主城,全部暂停这个事儿。 - -**[00:47:56] 发言人 0**:就说明这种工作效率不,你是说这种工作效率其实很麻烦,非常就说程很大的。 - -**[00:48:06] 发言人 5**:他也为有可能是他甚至所有人他就不符合组织的。 - -**[00:48:13] 发言人 3**:个四个人。 - -**[00:48:14] 发言人 2**:或者说投国。 - -**[00:48:15] 发言人 3**:家要求,两个反两个国家要求。 - -**[00:48:19] 发言人 3**:对,不满上周不举优优优活动必出走转转。 - -**[00:48:24] 发言人 3**:上东一中在搞优湖活动,就像是食茶之类的对,喝喝水湖湖水湖那,他们内部叫优湖行动,其实就是每袁书记带着剩五。 - -**[00:48:37] 发言人 0**:余的班子。 - -**[00:48:38] 发言人 3**:每个地方去叫油湖。 - -**[00:48:40] 发言人 3**:这个就我煤房里边镇治煤房里边有抛,但是说事现在我压力挺大的,我就一直盯着。 - -**[00:48:50] 发言人 6**:离子,所有的应该从。 - -**[00:48:52] 发言人 3**:那个谁,两江新区的公安局局长也没认命。 - -**[00:48:57] 发言人 0**:前面也对,因为这个叫什么呢? - -**[00:49:01] 发言人 0**:这个就是就定的越少,政府的那个叫抓手就越小,市场的经济就越强,是吧? - -**[00:49:07] 发言人 0**:就是越是人家市场经济,西方市场经济越小,政府那现在咱们也走向小政府是吧,抓了享受活子,也对他妈的多多一个人上来,他又要贪,他妈的又要造项目,那项目不造,我们也少花点钱。 - -**[00:49:23] 发言人 0**:家印象我们这几看我少一个人,那少花点钱又少花点钱。 - -**[00:49:29] 发言人 0**:一个初户至少得一个亿,自己得挣一个亿,一个挣厅他妈至少得5000万。 - -**[00:49:37] 发言人 2**:我少发了。 - -**[00:49:38] 发言人 0**:这么一个正厅,我们就少他妈的我认为少信车文哥至少就少他至少少拿他。 - -**[00:49:47] 发言人 2**:少拿5000万. - -**[00:49:48] 发言人 0**:对不对? - -**[00:49:49] 发言人 0**:我心里也开心,这也对我这对百可能心里就少几个。 - -**[00:49:55] 发言人 2**:那少就少万。 - -**[00:49:57] 发言人 0**:就跟那个谁。 - -**[00:49:58] 发言人 2**:一手。 - -**[00:49:59] 发言人 3**:抓不就完了吗? - -**[00:50:00] 发言人 0**:就跟那个就跟原来拍的那个电影一样,那个谁拍的那个拍的。 - -**[00:50:06] 发言人 3**:那个什么城,我们鹅城是吧? - -**[00:50:09] 发言人 0**:鹅城又换领导,子弹百个导就拿一个一走,你说咋整? - -**[00:50:14] 发言人 0**:你说你说这个你说这个还不如,因为他钱部的标配就是一个亿的话,标配5000万,那就就正常。 - -**[00:50:23] 发言人 0**:就是你如果说是查,平均下来肯定有,那就查不查你的问题,我想。 - -**[00:50:28] 发言人 6**:一个。 - -**[00:50:30] 发言人 0**:项目对我操狠了,我那天我跟我。 - -**[00:50:44] 发言人 8**:说一。 - -**[00:50:46] 发言人 6**:问。 - -**[00:50:47] 发言人 0**:那荣他可能觉得他他都到政府了,他会我拿两个亿。 - -**[00:50:53] 发言人 0**:他妈的他他不能跟父部同为伍的。 - -**[00:50:57] 发言人 6**:他不能低不。 - -**[00:51:22] 发言人 0**:平均下来腹部一个亿挣取5000万,我觉得差不多差不多就认不了。 - -**[00:51:27] 发言人 2**:那三亿。 - -**[00:51:29] 发言人 0**:就这么赚的,我操。 - -**[00:51:30] 发言人 0**:所以说少认命一个,你老百姓的话还是幸福一点。 - -**[00:51:34] 发言人 3**:我操。 - -**[00:51:34] 发言人 3**:那上次说豆花说的是假的那个彭彭彭彭丽彭彭建彭那个女的那个那个那个律师,他说那个胡和罗丽的是跟那个钱包一点关系没有,是另外的事,说是豆瓣送的是假的是吧? - -**[00:51:52] 发言人 3**:零说。 - -**[00:51:54] 发言人 0**:的,但是。 - -**[00:51:57] 发言人 3**:我觉得三。 - -**[00:52:01] 发言人 0**:元。 - -**[00:52:02] 发言人 6**:光电这。 - -**[00:52:05] 发言人 0**:个。 - -**[00:52:06] 发言人 2**:事应该。 - -**[00:52:08] 发言人 0**:是三安光。 - -**[00:52:12] 发言人 3**:电的假包假的。 - -**[00:52:16] 发言人 0**:但是我觉得U有可能是真的,因为这个东西新型犯罪这个东西百分之百有的。 - -**[00:52:22] 发言人 3**:那怕是个彭劲手里有可能有,但是那个东西是跟他哥有关,跟他哥哥说,他哥哥是个怎么说的,反正跟华他跟松华斯那华三董事长,这个跟他哥有,肯定是跟他哥有。 - -**[00:52:37] 发言人 3**:和你说一个亿的。 - -**[00:52:46] 发言人 0**:项目,不是我们认为在里面有水,他们自己都认为他妈的有人在里面赚了钱。 - -**[00:52:54] 发言人 0**:你说这都已经变成了他妈的谁也敢造项目,谁也敢做,是吧? - -**[00:53:01] 发言人 5**:继续我们这个M进的话也是上那叫自停云的。 - -**[00:53:05] 发言人 5**:现在自听云的话,上周也是讨论了这个化开始在在你这个。 - -**[00:53:10] 发言人 0**:知云就是这个这个这个主要是云动面子,就这个终端这个事儿,我觉得还是,你这个还是要把它简单化化,而且我们自己得用起来,如果自己用不起来了,拿着去得它挺软的操。 - -**[00:53:24] 发言人 0**:那上周他们那你买的那个你准备吗? - -**[00:53:29] 发言人 0**:买的那些的那。 - -**[00:53:32] 发言人 7**:个那个东西了吗? - -**[00:53:34] 发言人 7**:吗? - -**[00:53:34] 发言人 7**:摆摆那摆我的吗? - -**[00:53:37] 发言人 7**:还是和对,上周不是投了公包了几次,其实我觉得包括教育和医疗。 - -**[00:53:50] 发言人 7**:我这边就个简单说一下,我说找到一点感觉,就是好像我们在这几个场景都会用过这识的,也都会用到多元的数据采集。 - -**[00:54:01] 发言人 7**:其中一个原因就是公频,因为教育里面有课堂,医疗里面有听问诊,然后办公里面有会议,然后再加上知识库太大了。 - -**[00:54:12] 发言人 0**:知识库不容易形的产品知。 - -**[00:54:16] 发言人 7**:不是,它是一个基本环境,我们要把它和几个数据源结合起来,音频的,普通文件的,还有系统mp的,尽量做的标志化一点,三个行业都能用。 - -**[00:54:30] 发言人 7**:我觉得这条路应该是。 - -**[00:54:32] 发言人 0**:走得通的,我觉得我们要去推这个。 - -**[00:54:35] 发言人 0**:因为上位的悟空也看了一遍,就是word body。 - -**[00:54:38] 发言人 0**:你们下来也可以再找找,把word body叫过来看看。 - -**[00:54:42] 发言人 0**:我觉得我们要去做这条路。 - -**[00:54:45] 发言人 7**:其实挺难。 - -**[00:54:46] 发言人 7**:我们我们不做我们也不做悟空,我们还是做聚焦于聚焦一个AI实际场景落地的一个东西。 - -**[00:54:53] 发言人 0**:对你要做小,不是做大。 - -**[00:54:55] 发言人 7**:是做小,就是利用多元的数据汇聚,然后通过知识库呈现一个场景能力出来。 - -**[00:55:01] 发言人 7**:你们部署一个那个库。 - -**[00:55:03] 发言人 0**:咱叫知识库也可以叫什么也可以你们部署一个这个东西,是吧? - -**[00:55:08] 发言人 0**:这个东西整个部署是简单的,然后底下这个对。 - -**[00:55:12] 发言人 7**:那个费对,差不多就是这样。 - -**[00:55:14] 发言人 7**:我就我我突然觉得昨天那那天星期五会议开,我觉得到会议结束的时候,我再收集个会纪。 - -**[00:55:23] 发言人 7**:我在战助上来说,我说基本上把这个东西想通了,我就把这个东西画了。 - -**[00:55:28] 发言人 7**:画没画完,我觉得感觉是做得通的,这个东西对我们来说是比较合适的。 - -**[00:55:34] 发言人 7**:在三个行业,不是三个行业,普通办公不止一个行业用,就是办公、医疗、教育我觉得都能做出成熟的。 - -**[00:55:42] 发言人 0**:我觉得终端我觉得还是这样的,比如像这个就够,就这个也行。 - -**[00:55:47] 发言人 0**:要么然弄个二维码拍一下,一个灯将你去深圳里面看一下,拍一下亮就拍就完了。 - -**[00:55:54] 发言人 0**:不要屏幕你拍一下,就是一个二维码,你拍一下就停。 - -**[00:55:58] 发言人 0**:比如我们过来就跟那个儿童玩儿童玩的那个租的就是叫什么共享单车一样。 - -**[00:56:05] 发言人 0**:儿童玩的东西过来扫个码,用完自己把领走,甚至这个领走都不能。 - -**[00:56:10] 发言人 0**:如果是服务器上不存,更他妈牛逼,我操。 - -**[00:56:14] 发言人 3**:就他直接。 - -**[00:56:14] 发言人 3**:如果你是说。 - -**[00:56:23] 发言人 8**:来做,因为我们去年买的有,然后他本身带一个很小的屏,那个屏就拿它显示二维码就行。 - -**[00:56:30] 发言人 8**:还有就是那个录音时候的一个状态。 - -**[00:56:33] 发言人 3**:你干嘛要用个平静的下维码。 - -**[00:56:37] 发言人 0**:我都。 - -**[00:56:42] 发言人 2**:这32带吗? - -**[00:56:50] 发言人 7**:他带。 - -**[00:56:53] 发言人 0**:不带,他。 - -**[00:56:57] 发言人 8**:可自配成。 - -**[00:57:03] 发言人 0**:你拿来给我看看,你们研究员给我看好吧。 - -**[00:57:06] 发言人 5**:现在还有这个事情,上周我不是说拿了移动,就王春他们下面有一他给我打了好长时间电话,他就说因为他们现在在用那个试用。 - -**[00:57:17] 发言人 5**:他就跟我们说,他就跟我提了两点,他说第一个是他们如果出去找的话,一定要有一个硬,他如果不用硬件的话,他们转不了服。 - -**[00:57:26] 发言人 5**:他说我们对他说硬转服务这个事情对我来说是至关重要的。 - -**[00:57:31] 发言人 0**:所也就是说你我我理解的意思就是说如果这个硬件越大,他不转服钱越多。 - -**[00:57:38] 发言人 0**:不不不。 - -**[00:57:39] 发言人 5**:他是这么跟我说的,他说你们不要去做那种,我也跟我们现在这个硬件有什么什么功,他就会给我们的一个建议。 - -**[00:57:48] 发言人 5**:他说你们可以去做那种,就是因为会议室,他说政企一般都比较多,他说你可以去多一些点,但是成本比较低。 - -**[00:57:56] 发言人 5**:比如说一个会议室我给放三个点、四个点、五个点,他说你你你他说这个对客户来说是正常的。 - -**[00:58:04] 发言人 5**:他说他们现在任何一个会议室,他们只要去做会议电视,他说跟人家配终端都配一大堆。 - -**[00:58:12] 发言人 5**:他说你看那种政府开会或者什么一个两个,他说两个人正对面。 - -**[00:58:18] 发言人 0**:他放两个带着话。 - -**[00:58:20] 发言人 0**:这个东西能做那个吗? - -**[00:58:22] 发言人 0**:就说可以放做那个那个呃,叫什么跳线来着,叫叫什么技术外卖。 - -**[00:58:28] 发言人 0**:麦能通过麦连上以后串,取那个最好声音吗? - -**[00:58:35] 发言人 7**:麦克风一般最多的就。 - -**[00:58:40] 发言人 0**:3到4个,可以做外多了不? - -**[00:58:46] 发言人 0**:你3到4. - -**[00:58:48] 发言人 3**:个够了,我操。 - -**[00:58:51] 发言人 0**:你的桌子。 - -**[00:58:53] 发言人 7**:我的意思什。 - -**[00:58:56] 发言人 0**:么呢? - -**[00:58:57] 发言人 0**:你把。 - -**[00:58:58] 发言人 5**:这个你麦一个。 - -**[00:59:01] 发言人 0**:两个、三个加,就是你这个其实还是不行的,为啥? - -**[00:59:07] 发言人 0**:你主要其实最重要的是收音,你不是看你把你把它做反了,你做成一个他妈的你去看它干嘛,就是你做成这个或者比这小哒哒哒哒哒放四五个,就一个二维码,然后用完扫走,平时丢那你想用就扫。 - -**[00:59:23] 发言人 0**:而且这个东西我觉得还有一个确实是你你比如说那个比这个再小一点,我觉得这个就很好。 - -**[00:59:31] 发言人 0**:你你你你那个你比如说他们腾讯那个开会,那个那个开会他这个放那他们录音录到自己,因为他那个腾讯他为什么? - -**[00:59:39] 发言人 0**:因为云是阿里钉钉是录到他自己家里的去,对不对? - -**[00:59:43] 发言人 0**:那一般企业是没有家里云的,他们录到他自己这个公司里面录个是吧,那里面去我我觉得我觉得。 - -**[00:59:50] 发言人 5**:这种大小的就对,就是给他搞一堆,然后一个会议室里头放放。 - -**[00:59:55] 发言人 5**:因为他们现在那种,他只知道他们现在,他们现在政企去给人家布的那种和一个会议室里的那种死用设备。 - -**[01:00:02] 发言人 7**:要放很多个,但是有限的。 - -**[01:00:04] 发言人 7**:对,他们做一个无私先做死,这是你就是实际他。 - -**[01:00:08] 发言人 2**:们难道不是实消备那些钱不需要我们做,那是有些人不需要我们做。 - -**[01:00:13] 发言人 7**:他直接一点插到我们上面就完了。 - -**[01:00:15] 发言人 7**:你们研究就教你研究。 - -**[01:00:17] 发言人 0**:就话你们下来,你们反正你们每个人都可以研究,我就教你。 - -**[01:00:21] 发言人 0**:那你牵个头,你管这个就是叫什么? - -**[01:00:23] 发言人 0**:这个就是这个盒子,这种盒子如果带外形的,最好的就是这个无线,不要有线。 - -**[01:00:29] 发言人 0**:我觉得这个不行,这个他妈的,但是也没关系,因为我们有一版是吧? - -**[01:00:36] 发言人 0**:以后一定要去做这个高级的再手呗,如还如果到画面上。 - -**[01:00:40] 发言人 7**:好的,那我现在就是一拖三,那一个主的拖三个负的。 - -**[01:00:45] 发言人 7**:这个就是纯石英的,这纯石英的对,但是你要做的话,如果我们去把改了这个我觉得你的成本兜不住。 - -**[01:00:55] 发言人 7**:你无非就是把这个怎么把最终那个音频输入插到我们的终端上。 - -**[01:01:02] 发言人 5**:能结合。 - -**[01:01:02] 发言人 5**:对,对。 - -**[01:01:03] 发言人 7**:就是这啥意思? - -**[01:01:04] 发言人 7**:它有个接收器,接收器插插这插在我们的,比如说这个你看它最终是通过一个有线插在我们的一个终端上。 - -**[01:01:13] 发言人 7**:这个终端指是和笔记本,它它都相当于把音麦克风进行扩展,这个也一样,它有后你看有线的东西,这个U盘的。 - -**[01:01:21] 发言人 0**:东西相当于它带不带充电,它自己不带电。 - -**[01:01:25] 发言人 3**:肯定要带电电它怎么适应? - -**[01:01:27] 发言人 3**:里面肯定要带电,充电不这个就不带充电,它是有心的。 - -**[01:01:32] 发言人 3**:我就说我就说,我就是我看。 - -**[01:01:35] 发言人 8**:应该是要插一个供电的,我之前我跟重庆他们那边专门做这种会议实验的那个团队他们沟通过。 - -**[01:01:43] 发言人 8**:其实他们以前做企业,你知王帅他们以前做企业,一个比较好的这种一个会议这样的一个石音平,石音加设备加部署调试二十多瓦。 - -**[01:01:54] 发言人 8**:其实他们的意思就是说你就不用再做这一块了。 - -**[01:01:58] 发言人 8**:你后面你加个算力,把它的改造成智能化,是吧? - -**[01:02:03] 发言人 8**:就相当于把它升级了。 - -**[01:02:04] 发言人 8**:然后这个时候你里面你加个10万块钱,因为他以前可能已经花了。 - -**[01:02:09] 发言人 0**:现该有了你。 - -**[01:02:10] 发言人 0**:但是你如果做改造,你觉得这个里面有两个问题,就原来有的你要把它搞掉,为啥呢? - -**[01:02:17] 发言人 0**:原来有的它会带线那种,对不对? - -**[01:02:19] 发言人 0**:你现在肯定无限制趋势,你原来做了几年了是吧? - -**[01:02:23] 发言人 0**:我觉得要还是你你你不卖他妈的,那就你挣不了钱了,你给人家做个装修对吧,全力救了我操,那你挣啥钱? - -**[01:02:33] 发言人 8**:那一般来说那种企业他那种会议系统的话,它基本上还是是每个座位前面会有一个麦克发言的时候就是切到对。 - -**[01:02:44] 发言人 3**:切到他那种麦克。 - -**[01:02:47] 发言人 0**:不需要你改造你就改到主机上,那就这接上去接音频这个就果你前面有个叫什么面,有个就的个文字转语音的。 - -**[01:03:02] 发言人 0**:你这里面有点算力,那你就不一样,对是吧? - -**[01:03:06] 发言人 0**:对你盒子里面有点算力你就不一样。 - -**[01:03:09] 发言人 0**:你如果说你盒子里有点算力,然后带无线你就好很多。 - -**[01:03:14] 发言人 0**:你可能你就你你就你机会有打击,你就充电宝在这,你就机会也大。 - -**[01:03:19] 发言人 0**:你现在就把充电宝放进去是吧,你放个充电宝吧,然后那个可以录几个小时,然后带点小算粒,然后888钱充。 - -**[01:03:34] 发言人 0**:好,继续。 - -**[01:03:35] 发言人 0**:你东西弄完,每次在想这事的时候,他妈的。 - -**[01:03:39] 发言人 5**:然后最后一个就是那个数字助理和云桌面。 - -**[01:03:43] 发言人 5**:这个的话上周的话已经初步完成了这个财务的助理开发,本周的话我就和我们就开始在这个就是找一些试点,我来你们抓紧试点。 - -**[01:03:54] 发言人 0**:过你还有那们几个抓紧时间跑几次跑。 - -**[01:03:57] 发言人 5**:然后跑通了一个。 - -**[01:03:59] 发言人 5**:下周7月1号开始的话,我们就无纸化财务运作。 - -**[01:04:04] 发言人 5**:但这个我觉得到时候因为这里头有两点,第一个就是那个和模型。 - -**[01:04:11] 发言人 5**:因为上周纪哥说那个模型可能还就是上周我们讨论的是要和我们自己那个H 20那个模型算力结合,我们还是尽量的结合上去,以后我们报账的话,我们就用H 20就把这些东西,这是第一点。 - -**[01:04:31] 发言人 5**:然后第二点的话就是怎么和云桌面到底他们财务的那些员工,他们要不要把那个叫财务数字助理这个东西放到云桌面上面去,要不要先给他们看云桌面,这个好像我还没有完全调整进去。 - -**[01:04:50] 发言人 5**:全就最后一点,就比方说外面李小涵他们要不要放到。 - -**[01:04:58] 发言人 7**:路面上面去。 - -**[01:05:00] 发言人 0**:知道吗? - -**[01:05:01] 发言人 7**:把那那个你不是。 - -**[01:05:04] 发言人 0**:那天不是说了吗? - -**[01:05:06] 发言人 0**:那天把知库拿起来,不是你你那个笔记本的不笔记电脑。 - -**[01:05:13] 发言人 7**:那个端加控制方。 - -**[01:05:16] 发言人 7**:现在所有的人力还在做自体。 - -**[01:05:19] 发言人 5**:那就是那就是我们先不管云桌面,我们因为他不用云桌面,他就先把这个不管云桌面。 - -**[01:05:25] 发言人 0**:对他那电脑是没法用语桌面,那电脑它笔记本电脑就是做一个那个叫什么? - -**[01:05:31] 发言人 0**:我们可以做一个云桌面纳宝,我们叫我们可以叫你就你那个那个那个是吧? - -**[01:05:36] 发言人 0**:叫这种方式,如果能做好这个纳管就控制行为,能把这个做好,那我们就可以去做一个华智的财务了,就可以全部更换。 - -**[01:05:44] 发言人 0**:对我更希望你们做一款这个,因为笔记本电脑还是一个从来的小开的,要开的还是做那个。 - -**[01:05:52] 发言人 5**:也有几种方式,这个你不在,那个不在,就是你也可以装一个云乐片的客户端。 - -**[01:06:00] 发言人 5**:就是我平时我做这些事情的时候,我在我的电脑上,我要审核报销的时候,我就先登录到。 - -**[01:06:09] 发言人 0**:现在有服务器。 - -**[01:06:12] 发言人 7**:对对对,没资给他还是做拉管,那做拉。 - -**[01:06:18] 发言人 0**:管就简。 - -**[01:06:19] 发言人 7**:单一些。 - -**[01:06:20] 发言人 7**:但是华也会有资源,华智哪这么多资源的。 - -**[01:06:25] 发言人 5**:他这他400工让这两事就两个个接近事。 - -**[01:06:31] 发言人 5**:们把我的数字助理这件做起来了,这个我觉得是没有什么问题。 - -**[01:06:37] 发言人 5**:第二个是如果我们云桌面要和数字助理结合,那就我这个就相当于我必须要跑到这个场景里头去。 - -**[01:06:45] 发言人 0**:就是我我云端面的数字助理结合云我现在慢慢理解,那天说我用云动就是个工具,有它没它是吧? - -**[01:06:55] 发言人 0**:就是都可以,这是第一第二,如果我们要做叫中端大馆、数据大馆、农家大馆和这个蒜泥大馆的话,我觉得就是现在当前的我们这个包括文们和这个和这个华智这种,就笔记本电脑是常态是吧? - -**[01:07:13] 发言人 0**:大央企业他可能有一的变化,或者你学校的些特别要求。 - -**[01:07:17] 发言人 0**:这种常态情况下,你让他改造,你比如说他那财务让他改造,这个还是挺难的,就做胖终端,胖终端里面就是做这种取个娱乐面的名字。 - -**[01:07:27] 发言人 0**:但实际上是对电脑进行这个就纳我就纳我电脑,然后把电脑的所有行为给他管起来。 - -**[01:07:33] 发言人 0**:那在这种情况下,他电脑放了龙虾,那有数是吧? - -**[01:07:37] 发言人 0**:心里有数,我就得我就走是吧? - -**[01:07:39] 发言人 0**:只能走这个里。 - -**[01:07:41] 发言人 2**:那天聊了吗? - -**[01:07:42] 发言人 2**:好。 - -**[01:07:43] 发言人 0**:也可以,我们都因为你如果不专,也你如果不拿过中专的话,你怎么在中专上放不下? - -**[01:07:52] 发言人 7**:很很简单一个逻辑,因为现在存的么间已经一万多块钱一个点了,你再去推广未来到27年也有可能知。 - -**[01:08:03] 发言人 0**:道今年这个但纯的v di就是未来扩容,其实你你你找他过这个农家,我找他不一定跟你玩。 - -**[01:08:11] 发言人 0**:因为你就是一个你在纯的维碟上,你比如我去做龙虾。 - -**[01:08:16] 发言人 7**:做就可以可以做,只要它成本它受得了,他对你安全有极高的要求,那你在维di上做,我们内在架构,我如果按照内在架格来玩,无论V Y V di还是P C都可以玩。 - -**[01:08:30] 发言人 7**:我就是在pc要做拉广过后,把pc的那个。 - -**[01:08:33] 发言人 0**:我的意思就原来我没有那么多纯的老的微店用户,你们要做龙虾的话,我们有什么优势呢? - -**[01:08:41] 发言人 7**:就因为是有我的vi所以我去做龙虾就比较其实就是落地,你要把整套用起来,你看那个周,我在看那个移动的,你要把它用起来。 - -**[01:08:51] 发言人 7**:你后台得又算你,你得把这识户给布了,是吧? - -**[01:08:55] 发言人 7**:这些东西对一般的企来说不会去弄这个他不会弄的。 - -**[01:09:00] 发言人 7**:现在你只要把这个时间差。 - -**[01:09:02] 发言人 3**:我就把这个东西给我们。 - -**[01:09:04] 发言人 3**:在的是三四十万的正在用的客。 - -**[01:09:06] 发言人 0**:就是我这边走只能用去的龙虾交就可以了。 - -**[01:09:10] 发言人 0**:话大概就有这个逻辑。 - -**[01:09:15] 发言人 0**:如果老的那个如果老的微店用户如果要做龙虾,因为我是他的d的供应商,只有我是最方便的,或者说只有我如果要别人要龙虾,还得跟我再来谈。 - -**[01:09:30] 发言人 0**:那我的优势。 - -**[01:09:32] 发言人 7**:就是我们我们在做那套什么龙虾的时候,你本来就要涉及权限的一致性。 - -**[01:09:41] 发言人 7**:你权限的一致性你肯定要给我们的vdi的那个账号体系打通的。 - -**[01:09:46] 发言人 0**:这些本来就是门槛,就如果这个是在门槛哈那我们以后把这个vdi的这个叫vdi版的这个龙虾做了服器,龙虾做了服务器,沙盒龙虾做。 - -**[01:09:57] 发言人 7**:我觉是这个应该是机会。 - -**[01:09:59] 发言人 7**:其实我的想法是什么? - -**[01:10:01] 发言人 7**:因为还新华三在那天我们那个大架购,我仔细想一下,其实这个东西由我们来主导了,华那边就拿把那个全国对一对是吧? - -**[01:10:10] 发言人 7**:我把它当做一个我的模块了,我就这样玩了。 - -**[01:10:14] 发言人 7**:对,然后如果这样。 - -**[01:10:15] 发言人 3**:这也是对,那是不是我理解的,就我在现在30万新I的那个用户里面,我就去推GPU服。 - -**[01:10:24] 发言人 7**:务器加龙虾应用。 - -**[01:10:26] 发言人 3**:对,卖卖应用和服务器话,假如说是华三农村算命,华三农村。 - -**[01:10:32] 发言人 0**:那华三配合我们我们卖对,卖软,华三卖只我动力就能做。 - -**[01:10:39] 发言人 0**:如果不是我的V I。 - -**[01:10:41] 发言人 0**:我估计是应付也会被他控死,就不是我的名单。 - -**[01:10:44] 发言人 0**:那好了,你在上面做着做,我这就要给你做定制化,就改的很麻烦。 - -**[01:10:49] 发言人 0**:你最后我V d也用不了了,我他妈的人用不了了,对吧? - -**[01:10:53] 发言人 0**:所以这个事情如果在一起,我们天生的这个就好比什么什妈的就是内存条,那就是上天来的富贵。 - -**[01:11:01] 发言人 0**:你做一个你就把未来的智能化把它的起了。 - -**[01:11:06] 发言人 7**:而且我考虑由于这个vi的价格高昂,说实话我们尽早转型,尽早获利。 - -**[01:11:13] 发言人 7**:是真的,我不相信这个vdi这么高昂的价格,明年他们还能卖得上去。 - -**[01:11:19] 发言人 0**:除非真的v di是有v di场景。 - -**[01:11:22] 发言人 0**:对。 - -**[01:11:22] 发言人 7**:我知道我知道,我的意思说vdi释放出来的那是另外一个。 - -**[01:11:28] 发言人 0**:就是v di v di如果用户控住。 - -**[01:11:31] 发言人 0**:D这种这种形式,你其他的都不叫,我们可以这么说,其他都不能叫,只有d才是,所以你d这个场景,它天生的它就会有那个场景,就是那个场景他最多就变成什么呢? - -**[01:11:48] 发言人 0**:我就不要V D I. - -**[01:11:49] 发言人 7**:我就是争取那批左右摇摆。 - -**[01:11:52] 发言人 0**:你把那个纯镇化的那个场景门槛升高了,然后左右摇摆可能多一些是吧? - -**[01:11:58] 发言人 0**:但是左右摇摆的说实话左右摇摆的就刚才说的,如果我们在微店上做龙虾,那微店原来的老用户是5000人,我们可以慢慢去折磨他,你就慢慢的加加东西,也会他也会他也会扩容,对不对? - -**[01:12:15] 发言人 0**:你只要做成一个我们我们的销售马上就得了去你看你加西就不百百。 - -**[01:12:21] 发言人 0**:那另外你的用户了,你说你那就不是赚的,就是靠的你的家的能力,你家能力强,然后你再反过你的是能力,你再插一个那个,你再做一个那个桌,因为不是以为主。 - -**[01:12:36] 发言人 7**:而且除了它要扩容一个算力池以外,由于那个龙虾在那个如果它还是可厉害,龙虾在那个桌面上其实还是很好资源的。 - -**[01:12:47] 发言人 7**:你看我我我移动耗气虾,那那虾装了个程序过耗桌面资源。 - -**[01:13:00] 发言人 0**:耗终的资源。 - -**[01:13:03] 发言人 7**:还为什么呢? - -**[01:13:06] 发言人 7**:你耗他还是。 - -**[01:13:09] 发言人 0**:会耗一。 - -**[01:13:10] 发言人 7**:点的。 - -**[01:13:13] 发言人 0**:我看。 - -**[01:13:14] 发言人 7**:了一下内存。 - -**[01:13:17] 发言人 0**:至少桌桌。 - -**[01:13:20] 发言人 7**:你这么说,你一个微店I桌面一个用户,你给他分了,比如说四核8G内存给他,以前他都拿来办公用了,现在你他要在他那个桌面上去养殖龙虾,他会把八个G多在一个多G去。 - -**[01:13:34] 发言人 7**:那个资源还不小,一人一只龙虾就1 400个员工。 - -**[01:13:38] 发言人 0**:要多多耗500多G的行动。 - -**[01:13:40] 发言人 0**:我没听懂,你不是飞I就是你所有的程序都。 - -**[01:13:43] 发言人 7**:跑到服务器上面,那资源是分配给桌面的。 - -**[01:13:47] 发言人 0**:内存资源我知道还是有上的,在服务器的虚。 - -**[01:13:51] 发言人 7**:拟化这样就会。 - -**[01:13:52] 发言人 0**:消耗虚拟化资源。 - -**[01:13:54] 发言人 0**:对耗对,消耗服妻资源。 - -**[01:13:56] 发言人 7**:我觉那就消耗他说的是消。 - -**[01:13:58] 发言人 2**:耗终端资源。 - -**[01:13:59] 发言人 7**:桌面服球桌面个只。 - -**[01:14:01] 发言人 2**:是。 - -**[01:14:01] 发言人 7**:说那个桌面的虚拟化存。 - -**[01:14:04] 发言人 0**:所以才是消灭服务器上资源。 - -**[01:14:06] 发言人 0**:你服务器的桌面是吧? - -**[01:14:08] 发言人 0**:对。 - -**[01:14:08] 发言人 6**:就是你原来就是原来。 - -**[01:14:10] 发言人 3**:一台服务器有可能只是支持这个50个个. - -**[01:14:14] 发言人 7**:原来支持400个,现在就跑了龙虾后,400不够了,你要做无期之源,这样的话就可以。 - -**[01:14:20] 发言人 3**:多卖服务器。 - -**[01:14:21] 发言人 3**:我觉得我你我刚刚第一印象理解的是你装了无虾应用之后,你终端要重启。 - -**[01:14:26] 发言人 3**:终端现在配的太有的那个差太低了,没天补,你终端不会是。 - -**[01:14:31] 发言人 2**:不是没天补的? - -**[01:14:32] 发言人 2**:是啊。 - -**[01:14:32] 发言人 3**:那你就不会受影响了。 - -**[01:14:34] 发言人 3**:那你你你用这个能带来服务器的销售,华山供销更高兴,就是这个意思。 - -**[01:14:40] 发言人 2**:就是这个意思。 - -**[01:14:41] 发言人 2**:你要在今天除了刷机以外。 - -**[01:14:43] 发言人 7**:你的那个常规集群,你要控制。 - -**[01:14:45] 发言人 3**:你这样是加分线。 - -**[01:14:47] 发言人 3**:对你耗这些方。 - -**[01:14:48] 发言人 0**:式是加分量。 - -**[01:14:49] 发言人 0**:因为如果未来的融虾,但也有可能它不在,不是它的未来,可能它不在每一台。 - -**[01:14:54] 发言人 0**:如果是在这个什么上,他不会给每个用户用。 - -**[01:14:57] 发言人 2**:他就400个不会给每个人用。 - -**[01:14:59] 发言人 0**:如果400他不可能每一个用。 - -**[01:15:01] 发言人 7**:不会每个人都用。 - -**[01:15:03] 发言人 0**:他能个统一的在一起。 - -**[01:15:04] 发言人 0**:然后另外就笔记本为什么是一个人每个人一个呢? - -**[01:15:08] 发言人 0**:因为笔记本你闲散的,你这个资源的,你本闲置的,咱对不对? - -**[01:15:13] 发言人 0**:你在那个服务器上,你不可能是一个人的。 - -**[01:15:16] 发言人 0**:因为笔记本你本来你每天放这就闲散,你晚上你丢在那儿,你不用就不用了。 - -**[01:15:22] 发言人 0**:所以农家跑在你这闲天的,因为你晚上我本来插上泡点试电也没关系,反正这个东西,能不用就不那但是你那个就不一样了,你那个服务器上,你就你你如果服务器扩多了,我这个服务器的龙虾到底能不能做? - -**[01:15:38] 发言人 0**:我那休的,我觉还。 - -**[01:15:40] 发言人 5**:要研究好,那这个的话我们就先按胖端的模式。 - -**[01:15:45] 发言人 0**:我先把做起来。 - -**[01:15:47] 发言人 2**:就是这个好,行。 - -**[01:15:48] 发言人 5**:我这没有其他的。 - -**[01:15:51] 发言人 0**:就是我觉得一个是财务,二一是统一纳管的,法务人事我就可以并行的做。 - -**[01:15:57] 发言人 0**:然后就是把这些统一的把这些电脑就因为这些电脑我们是没有任何管理的。 - -**[01:16:04] 发言人 0**:那天说华智有没有管理,尤记去年你管你管过吗? - -**[01:16:08] 发言人 0**:就华智像他们财务电脑没管都没管理。 - -**[01:16:11] 发言人 7**:就那个产品和研发管的的对吧? - -**[01:16:13] 发言人 0**:你其实这些说实话都是巨大的问题,都很大。 - -**[01:16:18] 发言人 0**:你一个小公司说实话那个财务电脑如果如果跟人家说,你买个300块钱的东西,500块钱或1000块人民币。 - -**[01:16:26] 发言人 3**:财务管理太规范了。 - -**[01:16:28] 发言人 3**:那华智的vn好像在网vpn难道。 - -**[01:16:30] 发言人 7**:不一些管理? - -**[01:16:32] 发言人 7**:我说的是电脑。 - -**[01:16:33] 发言人 0**:他N管他那个电脑。 - -**[01:16:35] 发言人 7**:他随时拿走电脑,他笔以拿回家。 - -**[01:16:40] 发言人 7**:他只管接入。 - -**[01:16:41] 发言人 7**:对他只管接入,只管系统接入,他还走了一篇内网,但是他笔记本本身他没管,但是研发和产品的笔记本是管着的,研发和产品如果你电脑往U盘拷一个东西,没有走那个申报流程。 - -**[01:16:56] 发言人 0**:他就会罚卡。 - -**[01:16:58] 发言人 0**:所以我建直接的,我们如果要搞那个产品管理,是把笔记本电脑关起来是吧? - -**[01:17:04] 发言人 0**:那些说应该纳起来,你做一个胖的那作做一个我们研究院的一种方式。 - -**[01:17:10] 发言人 7**:上周的话,宇豪这边他和和金分那边国会师团队,反正一直在沟通和集院的对接里的。 - -**[01:17:20] 发言人 7**:宇豪今天周一到周三,他就脱展去进行无人机培训了。 - -**[01:17:25] 发言人 0**:我想代理商拿能拿到我们这边。 - -**[01:17:28] 发言人 5**:目前看起来他今天既然那天那个人跟我说,他说既然让我们培,他刚让我们培训的话,用还是比较大的。 - -**[01:17:37] 发言人 0**:好,这是一个。 - -**[01:17:39] 发言人 0**:另外我再问一个,就是吴天华说的那个那个公司叫啥来着? - -**[01:17:45] 发言人 0**:一般是吧? - -**[01:17:46] 发言人 0**:那个一般是么? - -**[01:17:48] 发言人 5**:一般我去的他们说就我问的那个就是才他说他们他说至少到现在为止,他们出货说的。 - -**[01:17:57] 发言人 2**:非常中线材。 - -**[01:17:58] 发言人 6**:就看他们出货就是大概三个地方,但是一个是那个总龙坡有三台,这个怎么看的的? - -**[01:18:06] 发言人 6**:然后他说他们说3338,他那种哪个区有相对没看新单。 - -**[01:18:10] 发言人 0**:但他那个有一个逻辑,我觉得我也是赞同的。 - -**[01:18:15] 发言人 0**:如果他就看那个违停,看完以后分成。 - -**[01:18:44] 发言人 6**:生产。 - -**[01:18:46] 发言人 0**:最关。 - -**[01:18:47] 发言人 6**:用是用。 - -**[01:18:50] 发言人 0**:然后你每年给是吧? - -**[01:18:57] 发言人 0**:每年给不你记这个好事,觉的他的。 - -**[01:19:08] 发言人 3**:母亲话说的好像也不是用的。 - -**[01:19:11] 发言人 3**:他是说一台机器他分成一天给他跑300张照片,是600张照片。 - -**[01:19:16] 发言人 3**:你就抓微停,你抓完之后就相当于他罚梦款的,问罚款的他也他就可以。 - -**[01:19:22] 发言人 0**:来这个。 - -**[01:19:22] 发言人 3**:他也不是申请罚梦款的,他应该也是买服务相于是你买我买我抓拍的服务。 - -**[01:19:29] 发言人 0**:他他我业的服务他指抓多少,他说的这个有一个这么个意思,就是大家这这是表达方式,就是买了我的东西,比如每天抓800个是吧? - -**[01:19:40] 发言人 0**:你反正你有这个钱的,你有这个钱你就可以买这个东西。 - -**[01:19:44] 发言人 3**:然后他有个前置条件是旺三的这个抓拍的这个东及要拿到无锡所区测试才能所成交警的证据。 - -**[01:19:52] 发言人 3**:你们在无锡所检测出来的照片做不了交警取证证据我不知道,等他说的是这两。 - -**[01:19:58] 发言人 6**:我等会汇报,可能是等会问上次交警跟他们那个公安交警。 - -**[01:20:03] 发言人 6**:其实我们我们无人机他们能定义的采集,我们不管是违停采集或者是执法采集都不是,那这个就程他们看来他大概没什么问题了,加上但是现在需要我们落实两个事,他一个事我们要怎么去跟对接,必须要是主对法治科学把政策,他们现在根据不知道怎么操作事。 - -**[01:20:23] 发言人 6**:因为我们现在是那种采集完到了我们执发库里面,把数据推到执发库就完了。 - -**[01:20:29] 发言人 0**:其实我们采钱全都采集。 - -**[01:20:31] 发言人 2**:他概分离不样子分不出现。 - -**[01:20:33] 发言人 2**:是。 - -**[01:20:33] 发言人 0**:那分。 - -**[01:20:35] 发言人 2**:局赶快去问他。 - -**[01:20:40] 发言人 0**:就是跟。 - -**[01:20:43] 发言人 6**:视频。 - -**[01:20:45] 发言人 0**:那。 - -**[01:20:45] 发言人 6**:我们就问他,我那分局他现在的传。 - -**[01:21:14] 发言人 0**:就是但凡脑子上过读过书的,如果他罚没,如果他多拍两张,他就多收不了钱。 - -**[01:21:20] 发言人 0**:那都这个东西还要去这人传人,这病毒。 - -**[01:21:24] 发言人 0**:如果这个事儿是可行的,早每个人都装作。 - -**[01:21:27] 发言人 3**:就是原来什么在九龙不到光山科技部背后的那个代言人,就是那个在九龙坡里联合三家运营商跟我们一起做实验室的人。 - -**[01:21:38] 发言人 3**:你确就是我现在九龙坡的时候,这个运营商不搞了个实验室吗? - -**[01:21:43] 发言人 3**:那背后那个牵头人就是万三科技的。 - -**[01:21:46] 发言人 0**:那说明那说明这个事并不是病毒,不是是吧? - -**[01:21:50] 发言人 6**:但事际里被就分成的事情肯定是。 - -**[01:21:53] 发言人 0**:表面是不分成,不分层他能不能就那病毒就是一旦碰到复制了。 - -**[01:22:00] 发言人 0**:它不能复制,它还是有问题。 - -**[01:22:06] 发言人 0**:行。 - -**[01:22:06] 发言人 4**:继我们能能把那个飞,能把那个无人机拿下来。 - -**[01:22:11] 发言人 0**:就是进步。 - -**[01:22:12] 发言人 0**:我觉得反正这个事是一步一来的,每一步都是他妈的,不管一小步一大步,我操都得往前走。 - -**[01:22:20] 发言人 7**:是那个时候终端这里都有个事儿,就是对我们是在对华润和云南的两个测试项目。 - -**[01:22:30] 发言人 7**:然后实际上就是发现一个问题,就终端这个飞机在这插拔的时候会黑屏。 - -**[01:22:38] 发言人 7**:以前之前我们以为是硬件的问题,结果复现了一下,发现是华山的那个终端一里面一个小模块的。 - -**[01:22:47] 发言人 2**:软件问题。 - -**[01:22:47] 发言人 0**:它那个软。 - -**[01:22:48] 发言人 2**:件叫space os。 - -**[01:22:49] 发言人 7**:对,然后我们那X本身也用了它里面的一个小组件,所以说造成了个通病。 - -**[01:22:55] 发言人 7**:然后说驻厂那个人不来了,他收到了西安荣耀的offer,给了他35K他不。 - -**[01:23:03] 发言人 0**:太慢了。 - -**[01:23:04] 发言人 3**:就是饿操了。 - -**[01:23:06] 发言人 4**:张卓和。 - -**[01:23:07] 发言人 3**:戴世界还等着他。 - -**[01:23:10] 发言人 0**:你太慢了。 - -**[01:23:10] 发言人 7**:就是他不来。 - -**[01:23:12] 发言人 7**:然后这个事情只能我们这尽量去沟通了,要把这里面其其实其实看来你。 - -**[01:23:20] 发言人 0**:们这事儿太慢了,你们的你们如果他确定了,说实话我都可以打电话,我跟他打他妈跟他聊他妈聊聊个一小时的。 - -**[01:23:29] 发言人 7**:我觉得不可以打动他。 - -**[01:23:31] 发言人 0**:我们是闲聊了,我们但是聊你们聊完了。 - -**[01:23:34] 发言人 3**:你们不老是没没确定下来。 - -**[01:23:37] 发言人 3**:昨天上周五云南那个人也接到了两个offer. - -**[01:23:42] 发言人 2**:我害怕他跳了。 - -**[01:23:43] 发言人 3**:周五周下午紧急跟他聊了一个周一他一大早还没我容开开到345,你看张志波和戴世。 - -**[01:23:53] 发言人 0**:平一直还在保他有其你还有关系,你去了干他去了干一段时。 - -**[01:23:59] 发言人 3**:间干不走了是一样的,而且张志波就说。 - -**[01:24:03] 发言人 3**:那这个进来之后,功能再分配。 - -**[01:24:06] 发言人 0**:能个反上人。 - -**[01:24:07] 发言人 7**:跟刚达的荣耀的就华为华为就是就华为荣耀手机。 - -**[01:24:15] 发言人 2**:然后。 - -**[01:24:17] 发言人 5**:本。 - -**[01:24:18] 发言人 0**:他都。 - -**[01:24:20] 发言人 7**:已接们荣耀那给打话,那三五K他法拒35K终他八。 - -**[01:24:43] 发言人 0**:他。 - -**[01:24:44] 发言人 0**:那我们再找,你们再找,再跟他们说好吧。 - -**[01:24:48] 发言人 7**:这样那个谁主这。 - -**[01:24:49] 发言人 0**:个就是相当。 - -**[01:24:50] 发言人 7**:于我们可能要这要改,要他其实基础系统就是5820,有点太老了,这个5820可能是一切问题的根源,要把它更新到24去。 - -**[01:25:01] 发言人 7**:对,然后这个只能我们提给新华三。 - -**[01:25:04] 发言人 0**:我们一起来,你抓紧去找那个院找一个研发。 - -**[01:25:08] 发言人 0**:我过段时间我可能我过段。 - -**[01:25:10] 发言人 7**:时间七初我还是想他就今年年底之前必须把这个系统。 - -**[01:25:14] 发言人 0**:说去吧。 - -**[01:25:16] 发言人 0**:到我找点再我。 - -**[01:25:18] 发言人 3**:才知道我们那东还底层上面没。 - -**[01:25:23] 发言人 8**:有全智眼,我怎么关联倒是非常他是用的那个操作系统,当时用的那个,因为华山它里面还那个终端上的。 - -**[01:25:37] 发言人 0**:那个终端必须要做这个。 - -**[01:25:40] 发言人 0**:对,也不一定。 - -**[01:25:41] 发言人 7**:只会用它这个比较简单一点。 - -**[01:25:43] 发言人 7**:总种再去开发的话,其实做了二次工作,所以说干脆这次重构的时候。 - -**[01:25:49] 发言人 2**:核新华三一起。 - -**[01:25:50] 发言人 7**:对,什么叫核心? - -**[01:25:51] 发言人 7**:没必要去两次发明轮子。 - -**[01:25:54] 发言人 7**:就是这么说,就是终端上有个小的操作系统,华山也在做,然后我们再去做。 - -**[01:25:59] 发言人 0**:一遍意义不大。 - -**[01:26:01] 发言人 3**:可不可以不要去操作系统,不是有定吗? - -**[01:26:04] 发言人 3**:读一遍、抄遍、写遍。 - -**[01:26:05] 发言人 0**:不要是操作系统你独立出来的,你自己做一个操作系统。 - -**[01:26:10] 发言人 0**:对。 - -**[01:26:11] 发言人 8**:图不是这样的主他上面我们当时其实评估过这个事儿,我们如果拿无邦图其实也能做。 - -**[01:26:18] 发言人 8**:但是它整个的那个系统的大小裁剪,就是这方面它有很多细节工作。 - -**[01:26:26] 发言人 8**:还有它里面当时那个华山坞小潘,他们当时拿A全部读过一遍,他们里面当时改了很多包,我们当时就这些包到底干什么的,其实当时其里也不清楚。 - -**[01:26:39] 发言人 8**:所以说从这个比较安全的角度来想,我们当时就没有自己去重新开一个光伏。 - -**[01:26:46] 发言人 8**:而且如果我们吴邦图来做的话,还也还存在一个以后也存在一个,这个叫什么来着? - -**[01:26:54] 发言人 8**:这个不服。 - -**[01:26:55] 发言人 0**:那就是我们以后要做,比如做龙虾,做这个中。 - -**[01:27:01] 发言人 8**:间大碗还得用它的。 - -**[01:27:03] 发言人 0**:来跟没有。 - -**[01:27:05] 发言人 8**:那没有关系,你这不就是用它,只是在启动的阶。 - -**[01:27:10] 发言人 0**:段动阶段启。 - -**[01:27:12] 发言人 8**:动阶段动阶段用,启动阶段在用。 - -**[01:27:16] 发言人 3**:假如以后跟华商不合作的原因。 - -**[01:27:19] 发言人 7**:那就自接重构过,就是工作量的问题。 - -**[01:27:21] 发言人 7**:我们其实还能用。 - -**[01:27:23] 发言人 3**:这个水频时是就不能用了,可以。 - -**[01:27:26] 发言人 8**:是这样的,徐校这个东西它就只是一个华山它深度定制的一个,它跟后台没关。 - -**[01:27:33] 发言人 0**:就独立的一个东西。 - -**[01:27:36] 发言人 0**:你们如果说把它用来打通了,如果他license就后他还个免费件。 - -**[01:27:41] 发言人 8**:你们再拿走他这个他这个也没有license。 - -**[01:27:44] 发言人 8**:他其实就是他们。 - -**[01:27:45] 发言人 7**:在当时在湖的基础上做了些改制裁剪裁剪了裁的就是尽量不消耗资源。 - -**[01:27:52] 发言人 0**:他也没有用,不用。 - -**[01:27:53] 发言人 0**:然后你如果让华为给他改完以后,你拿走我们拿走我们也可以用是吧? - -**[01:27:59] 发言人 7**:对,可以永用下去,简单是成为一个安装包式。 - -**[01:28:02] 发言人 7**:这就是现但是现在我们不并不知道是改了些什么。 - -**[01:28:06] 发言人 7**:如果我们要去改,就要不断的是去去碰着。 - -**[01:28:10] 发言人 7**:因为它毕竟是设备了很多硬件的。 - -**[01:28:13] 发言人 7**:如果我们要去改,首先你得。 - -**[01:28:16] 发言人 2**:一个去录。 - -**[01:28:18] 发言人 7**:现,这就是当时说的云桌面中间的个适配问题。 - -**[01:28:22] 发言人 7**:你光是一个终端,这个适配工作量就极大,你不是A把它洗完就完了,这天一配个装上。 - -**[01:28:30] 发言人 8**:就适配件主要他当时跟华以前那些硬件都是全部绑死。 - -**[01:28:36] 发言人 8**:Ok测试的我们其实。 - -**[01:28:41] 发言人 7**:都在上面已经改过了。 - -**[01:28:46] 发言人 7**:他不是,但是我。 - -**[01:28:50] 发言人 8**:笔记本电脑。 - -**[01:28:53] 发言人 7**:能启动。 - -**[01:28:55] 发言人 7**:如果笔记本电脑过们们当提出的驱华包包包包包们没东西的,紫光计算机,但是你要启动这个东西也有办法启动困难。 - -**[01:29:15] 发言人 0**:现在有很多,这个就是插一个U盘启动,你其实你那个套路那的能不能改成插入盘,不能也变成朋友版。 - -**[01:29:24] 发言人 0**:我说笔记本。 - -**[01:29:29] 发言人 0**:插的U盘就。 - -**[01:29:31] 发言人 5**:是你相当于是把那个操作系统到这个里。 - -**[01:29:37] 发言人 0**:就是的。 - -**[01:29:38] 发言人 7**:胖胖猪胖猪有这个系统并不是为了启动,这个可能理解错了。 - -**[01:29:45] 发言人 7**:胖猪有这个系统是为了他终端建立和管理平台之间的联系。 - -**[01:29:51] 发言人 7**:对,管理平台去给他下发镜像。 - -**[01:29:54] 发言人 7**:对,但是那笔记本的行候,如果笔记本你插这个。 - -**[01:29:59] 发言人 0**:插个U盘也是建立和管理平台联系。 - -**[01:30:02] 发言人 8**:其实也可以。 - -**[01:30:04] 发言人 7**:不是也可以他这个人意。 - -**[01:30:08] 发言人 3**:思联网上就是自然而然。 - -**[01:30:10] 发言人 0**:是把这镜像弄。 - -**[01:30:12] 发言人 0**:我的意思是你你以后你要做,你要跟笔记本做东。 - -**[01:30:16] 发言人 0**:因为现在华智我特别那华智用,但你又说华的服务器多华上,那如果用华笔记本用上,那我就怎么才能华智能,你比我笔记插一个引导拍卖启动,在这个过程中间建立了跟这个后台的联系。 - -**[01:30:33] 发言人 0**:然后我再在这个叫什么? - -**[01:30:35] 发言人 0**:我相当于用我的胖子,他他就变成了我的胖子官。 - -**[01:30:39] 发言人 0**:那我不就我后面用一台高端用一台服务器或者用台高端的。 - -**[01:30:43] 发言人 0**:比如说一一台一台工作量或者一台高端C我就能管理这些电脑,不是这。 - -**[01:30:49] 发言人 2**:个意思。 - -**[01:30:53] 发言人 7**:这个一下午要想一想你的技术是能实现,但是这样有没有什么? - -**[01:30:57] 发言人 0**:因为你笔记本电脑你可以老说你不是云,那你笔记本电脑跟我的云动面啥关系呢? - -**[01:31:04] 发言人 0**:笔记本电脑就是说我做的纳管是,但是如果我用一个U盘启动,那就更高级。 - -**[01:31:13] 发言人 2**:每个人发个K. - -**[01:31:15] 发言人 0**:扩展那K就牛逼了。 - -**[01:31:18] 发言人 0**:我我软件我。 - -**[01:31:20] 发言人 3**:软件化发个K然后我K就可以关起来。 - -**[01:31:26] 发言人 0**:然后以把整个龙虾来,那多好点,就公安那网钥人只插上了统,因为我这我我跟公安的财务一样,行驶电脑都不是你的,是我买的,你都不能用,除了工作以外啥都都不能用,你开进去都得把这个插上才能开,要不然我给你买电脑干嘛? - -**[01:31:47] 发言人 0**:你的财务我给你买个电脑干嘛? - -**[01:31:49] 发言人 0**:插上了是我的,把我拔掉就是你的不行,给公安不一样,不行。 - -**[01:31:53] 发言人 0**:对,拔掉。 - -**[01:31:53] 发言人 0**:你自己家里有电脑,我用我的拔掉,插上去才能用。 - -**[01:31:57] 发言人 0**:拔掉用不了,因为我人家还有龙虾,还有所有数据,知道吧? - -**[01:32:02] 发言人 0**:那电脑是我买的,对不对? - -**[01:32:05] 发言人 0**:那不是你你你你这好,你要你说领导我想用公司给他电脑做自己家的事。 - -**[01:32:15] 发言人 7**:你觉得逻辑图吗? - -**[01:32:17] 发言人 0**:不同,你说我不同,你就解决了。 - -**[01:32:21] 发言人 0**:我桌面我觉得你们着个准好吧,因为你这个放上去,你才有可能在后面再做个小机。 - -**[01:32:28] 发言人 0**:又跟next x也通了,跟nex通了,跟敌人也通了完了以后你包括龙虾管理,你都可以通过它。 - -**[01:32:36] 发言人 0**:因为这个外的一个U盘,一个U盘带个引导盘,带个操系,现在U盘大的,你弄个T的操没问题,弄个你弄个这个这个你弄个什么Fla弄, 弄个什么32G66G的,8G的你插上,那这个就有意思了。 - -**[01:32:52] 发言人 0**:这个我如果如果配合,但是我你们可以连我这交易,你现在可以研究,你比联想大量的出工作。 - -**[01:32:58] 发言人 0**:笔记本老板有没有这个要求,说我必须得插到U盘,我才能够这个笔记本他才能用,然后插这个U盘,那我都在我介绍下不插U盘都用不了,有没有这个要求? - -**[01:33:09] 发言人 0**:如果有这个要求,我觉得这事可能是可以的。 - -**[01:33:12] 发言人 5**:有机会的那有讲的就是本来他是这个云盘用来监管,然后再把我们的云桌面和相关的项。 - -**[01:33:18] 发言人 5**:因为我们那。 - -**[01:33:19] 发言人 0**:时候玩P都知道,你插个U盘做引导是吧,你因为你电脑坏了,你可以用它引导引导。 - -**[01:33:25] 发言人 0**:其实镜像在U盘上,你直接插U盘就重新恢复,对不对? - -**[01:33:29] 发言人 0**:你这肯定是可以的,对不对? - -**[01:33:32] 发言人 0**:我我现在我我我想对苹果电脑也是可以,苹果电脑也是可以直接一个U盘直接往拿走,那你这个是可以的,好吧,我觉得你们琢磨一下刘静,好,继续好。 - -**[01:33:49] 发言人 7**:那个终端自体云其实我想的是这样,智体云我们以后就作为A云桌面的一个数据来源。 - -**[01:33:58] 发言人 7**:等这周,不是这周,今天我把一些架构完善了,我们再沟通,结果越思路上慢慢开始清晰,到是候我们一起就上桌,把这个云桌面。 - -**[01:34:12] 发言人 0**:盒子东。 - -**[01:34:46] 发言人 0**:我操,那变成胖路段了,你以后就不用去改那些胖路段了,因为我差我还。 - -**[01:34:53] 发言人 3**:要去十倍那么多胖。 - -**[01:34:55] 发言人 0**:那干嘛不要了? - -**[01:34:57] 发言人 5**:我用它启动了,到这里。 - -**[01:34:59] 发言人 7**:插一插子,不。 - -**[01:35:01] 发言人 0**:你插我就卖。 - -**[01:35:03] 发言人 7**:这个东西。 - -**[01:35:04] 发言人 7**:那个个那个就要和本U盘里是,但是你就要和这配了。 - -**[01:35:11] 发言人 7**:对一个道理。 - -**[01:35:12] 发言人 3**:你存在U盘不。 - -**[01:35:14] 发言人 7**:是存在是一样的。 - -**[01:35:16] 发言人 7**:因为你以前就个软件。 - -**[01:35:20] 发言人 0**:还这可能。 - -**[01:35:21] 发言人 7**:好一一样样一样的一样的。 - -**[01:35:23] 发言人 7**:你想一下,你现在无非是把那个软件装在pc的硬盘上,以后你是装在U盘上,实际上是一样的,就是启动下从本地这个硬盘改成了U盘,其他都不变。 - -**[01:35:35] 发言人 7**:我就不赚那个钱了。 - -**[01:35:37] 发言人 0**:说实话你要我要连着这一坨一坨的它去卖,我库存也大我这个十倍了以后我的库存越小,我就不赚那个钱了。 - -**[01:35:46] 发言人 3**:也就是说笔记本不是我们的。 - -**[01:35:48] 发言人 0**:跟库存没,也就是说他跟胖端用胖子端最好的办法。 - -**[01:35:52] 发言人 0**:因为端我在里面做了改造以后,胖端我就封死了。 - -**[01:35:56] 发言人 7**:就跟那个C不一样,我就额外只不过我们的角个形了,就以跟基本我们那体系里面我没对,就意思这意思就是为了解决我们今天做财务。 - -**[01:36:08] 发言人 0**:这样我我我你讲我就是解决华智的问题。 - -**[01:36:11] 发言人 0**:如果我不能华智钱,我操他妈你华智这么大那么好的公司,你都了,你钱你出,你挣不了,你挣不了人家钱,你说这话你只能挣点些央企那买个的都是好都都是好大户。 - -**[01:36:24] 发言人 0**:我现在慢慢知道了,买v di都是好好户,都是他妈的央企。 - -**[01:36:28] 发言人 5**:家。 - -**[01:36:30] 发言人 0**:家当很田,一般的学也不买校。 - -**[01:36:45] 发言人 7**:是主要是运维。 - -**[01:36:48] 发言人 2**:对,买都是豪。 - -**[01:36:50] 发言人 0**:横的,就是买那个的,实际上挂了个娱。 - -**[01:36:56] 发言人 7**:乐面的名字。 - -**[01:36:58] 发言人 5**:就是那管。 - -**[01:37:00] 发言人 5**:对。 - -**[01:37:00] 发言人 0**:像我们这种是大笔记,你插可解,如果就了这么大,里面就有cpu pu了。 - -**[01:37:10] 发言人 2**:你自插上去也可以。 - -**[01:37:12] 发言人 0**:这个是我意思不是太。 - -**[01:37:14] 发言人 7**:那个是插的显示器上,你插在手机都可着。 - -**[01:37:18] 发言人 2**:你这个这么大有可能都可以。 - -**[01:37:21] 发言人 3**:直接做I的终端。 - -**[01:37:22] 发言人 0**:不是我是是我的意思是那越越好,我龙虾有的理面。 - -**[01:37:27] 发言人 5**:我只是想就像亚马逊的那个。 - -**[01:37:33] 发言人 0**:可以。 - -**[01:37:33] 发言人 2**:他插到碟上还觉得。 - -**[01:37:36] 发言人 7**:那个电视,那个小孩的学习电脑就是这么大一。 - -**[01:37:41] 发言人 0**:个插在那个电视机hd麦上,所以就是这个意思。 - -**[01:37:47] 发言人 0**:对,所以这个意思我们换解决笔本,因为他没屏,他只解决那个问题。 - -**[01:37:53] 发言人 0**:他实际上他为什么要电脑? - -**[01:37:55] 发言人 0**:他为你说的很对他不管做的再大,他解决了一个问题就是。 - -**[01:38:00] 发言人 5**:对,然后我们以后还可以把如果把员工的助理也。 - -**[01:38:06] 发言人 0**:扔到这里。 - -**[01:38:07] 发言人 0**:对,可以,插上就了插所我觉得真是一个形态,我觉得我们可以想一想,好吧,既然可以管控插上安装你电脑,插电脑说这实不行,脑全插。 - -**[01:38:22] 发言人 7**:那想看就那就是这就是这个云那面纸巾架构,我也把这点想想加进去想一想,好吧。 - -**[01:38:29] 发言人 7**:我们初步的想法就是上次开完会,这个办公、教育、医疗,其实我们有一点共同性,就是后端知识库加上我们的这个数据源,比如语音文件和mp这套架构。 - -**[01:38:42] 发言人 7**:我觉得在这三个场景当中都能满足一些需求来构建我们这个A云桌面。 - -**[01:38:49] 发言人 7**:所以今天把这个架构完善了,我们到时候再讨论一下。 - -**[01:38:53] 发言人 7**:我觉得我们可以往这个方向去走,这样的话解决了我们教育和医疗的常化问题。 - -**[01:39:00] 发言人 7**:而觉确实好像还真能用这个东西。 - -**[01:39:04] 发言人 7**:好吧,然后那个终端这里有点事儿,就是上周我说了一下3300,我们不是找申腾在低价的时候备了2000台,500台。 - -**[01:39:16] 发言人 7**:如果以低于成本价共合新华三,这样会使我们的我们采新华3 tb价,稍微有有一点优势一点。 - -**[01:39:27] 发言人 7**:但是他就必须要求我们同时走1500台的汇智牌的合同,然后和法务和刘晓琴,把采购管理办法,沟通了一下。 - -**[01:39:39] 发言人 7**:然后今天下午两建华给他们开个会,最终沟通一下,可能要和在公司过会,采购管理办法修改了,我就让申腾去填短名单的入会材料,然后我们才能和生腾走这1500台的这个具。 - -**[01:39:54] 发言人 0**:体你跟申哥聊完,你们聊完了以后,可以我就走了。 - -**[01:39:57] 发言人 0**:好的,可就不能有库存。 - -**[01:40:00] 发言人 7**:这个还好,因为那个价格确实。 - -**[01:40:02] 发言人 0**:给的比较低,当时都有库存的,有了库存他妈的就压力就大,就有2000台华三两,最后整一堆库存的。 - -**[01:40:09] 发言人 7**:有2000台500台去. - -**[01:40:10] 发言人 5**:其实最后就是被扣库。 - -**[01:40:12] 发言人 3**:那个1100最后怎么处理。 - -**[01:40:14] 发言人 7**:就不要了,110是真没办法用了,必须。 - -**[01:40:17] 发言人 2**:涛。 - -**[01:40:21] 发言人 0**:涛涛。 - -**[01:40:29] 发言人 7**:果可00库说是,1700的卖出去,我知道,但是1700卖出去的个量很少,我一起步要做1000台,1000台02年是1000台起步,1000台我拿进来,如果1300拿进来卖不掉,那就砸手里了。 - -**[01:41:05] 发言人 7**:因为我实际上不挂新华三的成本是非常低的,600不到我去拿新华三品牌标7300,这个太吓人了。 - -**[01:41:16] 发言人 2**:那新华三必他。 - -**[01:41:18] 发言人 3**:必须1100. - -**[01:41:19] 发言人 7**:价格太高了。 - -**[01:41:21] 发言人 0**:那个C110. - -**[01:41:23] 发言人 3**:卖完了,但是我。 - -**[01:41:25] 发言人 7**:新采C110,他们咨询过来的物料成本到我们这就接近三台。 - -**[01:41:33] 发言人 7**:但是如果不把新华三,我们自同汇智牌不到600。 - -**[01:41:40] 发言人 7**:对,这差距太大,差距太大,我就不敢下单了。 - -**[01:41:43] 发言人 0**:所以这个事能不能一起解决了,我就找那个。 - -**[01:41:46] 发言人 0**:因为我跟张涛说,既然我们如果能欧进来,那我们就马上把1100就也一起改了。 - -**[01:41:52] 发言人 7**:那就马上那那那就马上解决了。 - -**[01:41:54] 发言人 7**:这样的话其实我给他呗。 - -**[01:41:57] 发言人 0**:那这个事这样我下午见。 - -**[01:41:58] 发言人 0**:因为这个事,其实就是他们担心的质量问题和利润问题,对不对? - -**[01:42:03] 发言人 0**:对,现在的C1100,我说我用同样的东西,但是只要不通过智慧走,对我就可以便宜一半给你。 - -**[01:42:10] 发言人 0**:对,然后我然后你该挣你的钱你挣你的钱,但是对我们整个市场都有好处? - -**[01:42:15] 发言人 0**:被人家卡脖子了,被志伟卡脖子了。 - -**[01:42:18] 发言人 0**:我那我那那这样我跟张导武说一下,我下午刚好,因为于总上周五已经回复了咱们邮件给张导。 - -**[01:42:25] 发言人 7**:快速解决。 - -**[01:42:26] 发言人 7**:他有个很现实的问题,我们是最多一家在用那种内存的厂家,你申请福利的早就用了,你不用。 - -**[01:42:34] 发言人 0**:那你根本就不用。 - -**[01:42:36] 发言人 7**:什么内存,就是那个那个黑片内存。 - -**[01:42:41] 发言人 5**:相现在那就。 - -**[01:42:42] 发言人 0**:我们不用。 - -**[01:42:43] 发言人 2**:对。 - -**[01:42:44] 发言人 0**:我们只要不用智的,我们就能便宜,就这个意思,我们自己来找华三,他不敢用,但是但是不但是有个问题,那将还那存同。 - -**[01:42:59] 发言人 7**:样他他如果。 - -**[01:43:01] 发言人 0**:他说找的那行,那他打部点。 - -**[01:43:05] 发言人 7**:他会问这个泵子的编码,但是他应该追溯不到这个料是怎么样。 - -**[01:43:13] 发言人 0**:行,好好,我跟他看怎么走最简单。 - -**[01:43:16] 发言人 7**:但是我就最简单,他可以测一轮,但是你不要问我要怎么了。 - -**[01:43:20] 发言人 2**:就是我找张涛,我下午的话出。 - -**[01:43:23] 发言人 7**:但是存储他们还是用的新的存储,他们不敢用,究的我也不敢用。 - -**[01:43:28] 发言人 0**:对存客更所谓,我现跟那个存储人。 - -**[01:43:31] 发言人 5**:我现在家里的电脑对手我都用。 - -**[01:43:33] 发言人 7**:对,对,内存这么受命,测的过就。 - -**[01:43:37] 发言人 5**:测的内存寿命很长。 - -**[01:43:40] 发言人 7**:其他就是刚刚本来想说的那个认认增收问题,刚刚已经发过了,已经发给供应商,已经发过了,刚刚正正开会的时候,已经集团发过了,已经发给那个认证证书,那个认证机构。 - -**[01:43:57] 发言人 7**:其他没什么,其他就是上周我们要实现什么实现你说的那个授的一些上报,包括一些提取。 - -**[01:44:08] 发言人 7**:外面这有点点小改,到时我商量。 - -**[01:44:11] 发言人 0**:可要力快点弄,快点弄好下。 - -**[01:44:14] 发言人 0**:我们个AI相应的AI提高。 - -**[01:44:17] 发言人 0**:上周开五开会的时候,就是AI提高生产力,AI提高我们自己的生产。 - -**[01:44:27] 发言人 6**:那不管上的什么情况,证店张德根他们跟法院联系,他是就在签一文书判决书。 - -**[01:44:38] 发言人 6**:邯郸那个判决书就是律师还会联上法院法官,他他打分那个时间。 - -**[01:44:46] 发言人 6**:上周中局就提出了解决方案,就制作解决方案,律师也在整个材料。 - -**[01:44:51] 发言人 6**:然后我们过了之这个根据答复。 - -**[01:44:54] 发言人 5**:现在根据。 - -**[01:44:55] 发言人 6**:那个公安是就是四。 - -**[01:44:58] 发言人 2**:346个7认同式的。 - -**[01:45:01] 发言人 6**:这个上原来不是每个第一年101000个月。 - -**[01:45:06] 发言人 0**:在你说律师一份调解材。 - -**[01:45:08] 发言人 6**:料什么意思,就是让律师那个个答复材料,然后我们这个觉方可以,再个证据说噻,我们去做答复,然后我们就让他们做的。 - -**[01:45:21] 发言人 3**:现在是第一年30万,第二年40万,第每个月每个月对,每月。 - -**[01:45:27] 发言人 3**:对。 - -**[01:45:28] 发言人 0**:一年300万,第二年三百。 - -**[01:45:30] 发言人 0**:但是他没他如果他一个月不付,就有问题了,马上就报了。 - -**[01:45:37] 发言人 0**:对。 - -**[01:45:38] 发言人 6**:我。 - -**[01:45:41] 发言人 0**:觉得你这。 - -**[01:45:56] 发言人 2**:不,他不要财富了。 - -**[01:45:57] 发言人 3**:他活亏都走不通。 - -**[01:45:59] 发言人 3**:他如果是不他如果是这样。 - -**[01:46:01] 发言人 0**:应该是只有进入他的。 - -**[01:46:03] 发言人 3**:那第一他第一年第二年是几兑的? - -**[01:46:06] 发言人 6**:国安预算问你每个月付款拿。 - -**[01:46:08] 发言人 3**:但是他第一年30万那种往外挤,肯定是挤他自己内部预算。 - -**[01:46:14] 发言人 0**:不是350低,不是30万,那一年十二个月是吧,360万,360万。 - -**[01:46:20] 发言人 0**:那怎么。 - -**[01:46:21] 发言人 3**:一个月付5,那就把什么买食堂的菜,买什么那个。 - -**[01:46:27] 发言人 0**:你的意思是每。 - -**[01:46:29] 发言人 2**:个月就是那个预算,每个月证明。 - -**[01:46:32] 发言人 0**:财政开给他,然后他每个月给他得每个月给两。 - -**[01:46:36] 发言人 2**:之后老大走球了。 - -**[01:46:38] 发言人 3**:他就不认了,这也对。 - -**[01:46:40] 发言人 0**:因为啥呢? - -**[01:46:41] 发言人 0**:他每个月起,他不起都会有人利用。 - -**[01:46:44] 发言人 0**:对他进入他那个什么,反正就是。 - -**[01:46:48] 发言人 6**:每个月支付。 - -**[01:46:49] 发言人 3**:他们都都每个限每个月支付是不限制。 - -**[01:46:52] 发言人 3**:但是他是肯定起自己的预算往外付钱,就没有财政部把他们的项目。 - -**[01:46:58] 发言人 6**:他这边预算怎么来,现在我们也跑虑研究它。 - -**[01:47:02] 发言人 0**:你的那都财政就时处理条,我们看吧。 - -**[01:47:05] 发言人 3**:这是。 - -**[01:47:06] 发言人 6**:邯郸什么邯郸? - -**[01:47:08] 发言人 3**:不是。 - -**[01:47:08] 发言人 2**:这是邯郸。 - -**[01:47:10] 发言人 6**:九龙坡。 - -**[01:47:11] 发言人 6**:这个就是锦宝,也是今年也是分期把我钱200万的. - -**[01:47:18] 发言人 0**:他一次一次文化。 - -**[01:47:21] 发言人 6**:明白。 - -**[01:47:21] 发言人 0**:然后就明再说。 - -**[01:47:24] 发言人 6**:烟台是缺乏化,然后一般在的合同就是陈建,他签合同部门还没确定,因为一直跟上次打复。 - -**[01:47:33] 发言人 0**:我是本着的确定,他们就不。 - -**[01:47:36] 发言人 6**:盾建那个事,盾剑他诉了股东已经七二三开庭。 - -**[01:47:41] 发言人 0**:房,然后盾建下午是。 - -**[01:47:43] 发言人 6**:也是这个是已判了,不是已经。 - -**[01:47:46] 发言人 2**:二次开庭了,就等的是七月底。 - -**[01:47:49] 发言人 2**:好。 - -**[01:47:50] 发言人 6**:然后五年那上常务会的事情,上次出了问题,就是因财政批复这个预算未明确,非分用的非收益资金和财政拨款金的比例没说清楚,然后被政府把那个生活材料打了。 - -**[01:48:08] 发言人 6**:然后现在是非税金额,这个是2800万,是两部组成,一部分是分局拿他们的非税收入来给我们支付一部分财政拨款。 - -**[01:48:19] 发言人 6**:但是当时财政只批复了一句,这个财政由财政公安,非税收入和财政拨款。 - -**[01:48:26] 发言人 6**:那个不是听。 - -**[01:48:27] 发言人 3**:说2800万,还有分局搞非税收入。 - -**[01:48:30] 发言人 6**:我上次不是说过,3500说的这个分局说过的意思就是一半财政拨款一半非税,非税也处理,3500当时总计预算是一年3500. - -**[01:48:41] 发言人 3**:上哪个非税收入发布款。 - -**[01:48:43] 发言人 6**:发布款分局就发,不。 - -**[01:48:45] 发言人 3**:他们可以不进来。 - -**[01:48:46] 发言人 6**:才这是他接受下来。 - -**[01:48:48] 发言人 6**:那不交了,那财政协不叫财政,交了,这部分钱应该是。 - -**[01:48:53] 发言人 2**:非税收入,是直接进财政委。 - -**[01:48:56] 发言人 3**:又不进公安。 - -**[01:48:57] 发言人 6**:这个得打包拨款过来了。 - -**[01:48:59] 发言人 0**:现在进来财政拿出来。 - -**[01:49:01] 发言人 6**:这你们他打包的每年都非收入,他那财政公安有拿要有要的那个审批权利。 - -**[01:49:11] 发言人 6**:所以这个特质他。 - -**[01:49:12] 发言人 3**:们那你局去找另外一个杜局。 - -**[01:49:14] 发言人 2**:对,他们你去到。 - -**[01:49:16] 发言人 3**:李局还是你去找杜局,防导。 - -**[01:49:31] 发言人 6**:们果。 - -**[01:49:40] 发言人 0**:烦。 - -**[01:49:45] 发言人 6**:那无人机刚才说了,就是让我们那总。 - -**[01:49:48] 发言人 0**:反正我有一个底,但如果别人如果弄不下来,我这卖30,我不认可,我就是卖没钱,确实没钱,公公也知道你律师可。 - -**[01:49:59] 发言人 6**:无论建就是我们现在就是我就要想办法去找组织什么政策,相关政策落实好。 - -**[01:50:04] 发言人 0**:你找,去抓紧找你跟吴建。 - -**[01:50:08] 发言人 6**:华一起去找。 - -**[01:50:10] 发言人 6**:然后滞纳金他都已经撤诉了,上个大发,其他两个项目都还是有定照照按部就班。 - -**[01:50:21] 发言人 6**:这在目前的情况下没大的问。 - -**[01:50:24] 发言人 2**:你们看这。 - -**[01:50:25] 发言人 0**:你们还是在我加强投入。 - -**[01:50:29] 发言人 8**:我觉得可以零。 - -**[01:50:31] 发言人 8**:我看他们里面包含。 - -**[01:50:35] 发言人 3**:了3所人可视化还那些都拿不到。 - -**[01:50:39] 发言人 6**:那些不要去做了,那我们就可视。 - -**[01:50:42] 发言人 3**:化可去。 - -**[01:50:43] 发言人 7**:做那个那个做意数字人跟我。 - -**[01:50:45] 发言人 0**:们的主页如果有点一致性,我们可以试试,做完了以后自己存存点能力,就这个意思。 - -**[01:50:52] 发言人 6**:那个地方那个人的青年头重。 - -**[01:50:54] 发言人 0**:说白了说服我不挣钱的时候就是省点人力。 - -**[01:50:57] 发言人 3**:去太太大位,说我现在不要着急走急,我很有不想,不知道里面什么。 - -**[01:51:03] 发言人 3**:我们我们不承担他七千多万的业收,我们不承担他一个出资人,他妈也不过不可能的,我们七。 - -**[01:51:17] 发言人 0**:千多万的项目靠。 - -**[01:51:20] 发言人 2**:一个200万的交。 - -**[01:51:23] 发言人 3**:付收不这个问根本是个问集项目收这个我们的。 - -**[01:51:30] 发言人 5**:再别给我钱了,就相当于现在我们的现金流是正的。 - -**[01:51:35] 发言人 2**:挣的一直挣的。 - -**[01:51:36] 发言人 8**:我把研发这边情况汇报一下,第一个是云桌面这边,云桌面云南那边测试两个问题,一个是ip显示问题,这个已经解决了。 - -**[01:51:47] 发言人 8**:然后未接那个问题就是刚才说的那个识那个底库,因为他他太老了,它和现在这些新的这些外设兼容上有问题,这个我们要抓紧解决。 - -**[01:52:00] 发言人 8**:第二个就华润这边,华润这边是这样,华润徐凯昨天给我打了个电话,华润他们深圳这个项目的领导,这段时间在正好在成都。 - -**[01:52:15] 发言人 8**:他们可能想在周三让我们去一趟,去一趟就是在招标前整个跟他们整体做一次技术汇报和打印。 - -**[01:52:26] 发言人 2**:大概是这么一个情况。 - -**[01:52:28] 发言人 3**:他想深圳也问我说。 - -**[01:52:29] 发言人 8**:其实他整个这个项目最后的数据中心建设是在深圳。 - -**[01:52:34] 发言人 8**:你现在。 - -**[01:52:35] 发言人 0**:这个危机这个项目要多长时间能解决? - -**[01:52:39] 发言人 0**:因为你华润肯定也。 - -**[01:52:40] 发言人 3**:会出现这个问题是吧? - -**[01:52:42] 发言人 8**:华润是七月份要招标,华润是七月份要招标。 - -**[01:52:45] 发言人 0**:对,原旦那个V机的项目没接。 - -**[01:52:48] 发言人 8**:这个是在带店热巴查的时候会出现。 - -**[01:52:51] 发言人 0**:昨刚才说了个。 - -**[01:52:53] 发言人 0**:行,那现在下。 - -**[01:52:54] 发言人 3**:次解决了。 - -**[01:52:56] 发言人 8**:对,我们如果不去,如果华山那边不配合,我们就只有自己先在现在这个操作系统上面,先把显卡那部分的看一些重新打了,你为抓紧录,下周能解决,我写着下周解决,下周应该可以解决。 - -**[01:53:13] 发言人 8**:你说是这周解决还是下周解决,就是这周解决。 - -**[01:53:17] 发言人 3**:反正七月份要招标了。 - -**[01:53:19] 发言人 3**:华是对。 - -**[01:53:20] 发言人 8**:所以周三可能他们要求我们可能研发去研发和产品一起可能。 - -**[01:53:27] 发言人 3**:到现场要去建文,要求。 - -**[01:53:30] 发言人 8**:是团入的健玩和建文和华润现在成都那边的个经理配合,让我们一起跟他们深圳的领导见一面。 - -**[01:53:40] 发言人 8**:好,知听云这边是这样的,知听云这边那个终端其实都已经开发完了,上周他们都已经做了大部分测试了。 - -**[01:53:50] 发言人 8**:我们这周开始主要是做软客户端,然后再规划一下那个es p 32的那个那个终端,es 32那个终端它就是一个是板卡很小,第二个成本低。 - -**[01:54:01] 发言人 8**:然后外形的话,其实我觉得。 - -**[01:54:04] 发言人 0**:我们可以就是把那个语音转文字的话。 - -**[01:54:08] 发言人 8**:就在终端上转。 - -**[01:54:09] 发言人 8**:对,这个这里做的个十四六,耶稣山二只能做十四六。 - -**[01:54:14] 发言人 8**:因为椰稣山它存储很小。 - -**[01:54:17] 发言人 0**:然后语音转文字是在后台。 - -**[01:54:21] 发言人 8**:服务器转全是后台转。 - -**[01:54:23] 发言人 8**:但是是实时流,它是用后台的算力。 - -**[01:54:27] 发言人 8**:前面主要就是做。 - -**[01:54:30] 发言人 2**:那个做做那个采集。 - -**[01:54:32] 发言人 5**:实时流就了流就本基本完了。 - -**[01:54:35] 发言人 8**:不那样转。 - -**[01:54:37] 发言人 8**:无人机这边是这样的。 - -**[01:54:41] 发言人 0**:互联网的那个。 - -**[01:54:43] 发言人 8**:环境我们就大了。 - -**[01:54:46] 发言人 8**:二可以做实时,如果一般的就。 - -**[01:54:51] 发言人 0**:也能做。 - -**[01:54:52] 发言人 8**:但是是主导只能做做那个核心拿来做终备,拿来做联网采联网的这种测设备所的存储都比低成成非低比好,它可以做成各式各样的各各样的形态,平乐无故就是。 - -**[01:55:14] 发言人 5**:无故就可以做。 - -**[01:55:15] 发言人 0**:成他的算他。 - -**[01:55:16] 发言人 8**:会带进去这两年122的发展。 - -**[01:55:19] 发言人 0**:他算利做什么呢? - -**[01:55:21] 发言人 8**:如果你想在端测上面,包括端侧做那个检测,就他们做那个人脸检测,然后做那个语音唤醒,这些都会需要一点点小算力。 - -**[01:55:30] 发言人 8**:就他的端测因虽还有一好处就是他那个他低功耗,因为他以前是拿来做物联网,然后智控这边是这样的,那个互联网的环境已搭完了,然后设备就香槟山的它的设备已经上报上来了,但下上周上周一直在下雨,就没有人完成测试。 - -**[01:55:50] 发言人 8**:这周我们就抓紧把那个测试开始。 - -**[01:55:53] 发言人 6**:还是请他负责人说说不要提我络了,以及从我的角出。 - -**[01:56:01] 发言人 8**:机器上那个网。 - -**[01:56:02] 发言人 8**:对对对,我知道知道那个卡那样拿回来就把那个卡就取了。 - -**[01:56:08] 发言人 8**:然后我们无人机这边紧急上去上了四个软柱拿四个。 - -**[01:56:17] 发言人 8**:我们今天还是讲人那边再看能不能弄一那边大家说。 - -**[01:56:25] 发言人 6**:走上去。 - -**[01:56:26] 发言人 6**:不是。 - -**[01:56:26] 发言人 3**:所以说你自己这个都怕,别怕你自己去,你那卡拿到你手里,另外一根跟你们去做一个保护,给他弄啥研发这种小心渣渣的,你怪不怪? - -**[01:56:39] 发言人 6**:研发的什么意思? - -**[01:56:41] 发言人 6**:就是机场那有叫现互联网研发公司。 - -**[01:56:46] 发言人 8**:我就你就自己去把它隔离,跟我们隔离搭好了以后,到时候在公司就可以看到那个。 - -**[01:56:52] 发言人 3**:飞机的飞压。 - -**[01:56:53] 发言人 3**:那些就是上周两张卡,把卡一个把视频网卡拿到你公安放着,另外一个把机场的那个视频网线,你去做个东西封装,等他们测完了你再去给打开。 - -**[01:57:05] 发言人 3**:什么意思? - -**[01:57:06] 发言人 3**:就是用视频用互联网的,你不要用视频网。 - -**[01:57:09] 发言人 2**:对,分开是吧? - -**[01:57:10] 发言人 2**:可以把那个同学帮一下。 - -**[01:57:12] 发言人 3**:你自己安排个人去给他弄了。 - -**[01:57:14] 发言人 3**:你别等着研发,他真不小心砸错了,那你还要他妈擦一堆屁股,这你几个事情干嘛要让让他注业? - -**[01:57:24] 发言人 3**:你我们这。 - -**[01:57:25] 发言人 5**:处就出了时候就提醒大家,这个我觉得很好。 - -**[01:57:30] 发言人 3**:很就是这个东完了以后。 - -**[01:57:33] 发言人 5**:我们在在。 - -**[01:57:34] 发言人 3**:这儿也能看到了,就开会的时候直接上互联网的就非常了,这个就非常。 - -**[01:57:42] 发言人 3**:他们要用的是程,老提拉拉箱不着。 - -**[01:57:47] 发言人 3**:对,你把随便怎么弄,你都不他妈砸俩,弄个塑料袋给他封死。 - -**[01:57:53] 发言人 8**:研发也不至于给你打开。 - -**[01:57:56] 发言人 8**:然后上周因为下雨,我们就把机拿回来,遥控器云基调多,就这样的话,后面我们机上遥控器。 - -**[01:58:07] 发言人 8**:然后项目上就是中医物联网立体四联网的那个行业招标之重强,刚才其他部门都已经说,我们中物联的立体是什么? - -**[01:58:22] 发言人 3**:就是中物联他。 - -**[01:58:23] 发言人 8**:们现在视频网现在要找一家给他们提供无人机方案的。 - -**[01:58:29] 发言人 8**:我们上上周上周已经去交流了,他们对我们的技术方案应该说基本上那天是比较认同的。 - -**[01:58:38] 发言人 8**:让我们就加紧这个dp他大概是1000万把我们招进去,如果他们进入有项目。 - -**[01:58:46] 发言人 0**:他们就会通过这个ct来我们我们现在唯一的优势也不较唯一的优势就是我们跟那个因为我们跟中联。 - -**[01:58:57] 发言人 8**:那么近是吧,你找其他厂家不在重庆他的吧,那么近。 - -**[01:59:03] 发言人 8**:最好的合作,然后的话增加九个整体90 08,我们六底,我们Q定的是目标是200 280 280万。 - -**[01:59:13] 发言人 0**:抓紧吧。 - -**[01:59:14] 发言人 8**:然后其他的话一个人员变动,我们的ui U E新换了一个人员,今天已经入职了。 - -**[01:59:20] 发言人 8**:第二个财务助理这边开发本周部署测试。 - -**[01:59:24] 发言人 8**:然后crm的话,我们会在我们会在crm系统里面给我们的授权人员把他们授前人员的日报工作台给加上去。 - -**[01:59:33] 发言人 8**:这样的话以后crm就不光包含我们的销售人员,也包含我们的授权人员,他们的工作日报都放在那面。 - -**[01:59:42] 发言人 8**:好,数字人这边我们自己的这个口播数字环境已经搭出来了。 - -**[01:59:49] 发言人 8**:搭出来的话现在就是可以常规帮着出出视频,大概半个小时可以出一个视频。 - -**[01:59:58] 发言人 0**:你们再往前延展一下,这个口播先做吧,先告诉你个小秘密。 - -**[02:00:04] 发言人 8**:先把这个系列做出,先把它做了。 - -**[02:00:06] 发言人 8**:对,我们会把它我们会把这个也做成一个做成一个普通用户都可以用的一个平台。 - -**[02:00:15] 发言人 8**:软著这边你刚才说了,我们自飞平台一。 - -**[02:00:20] 发言人 0**:共报了两。 - -**[02:00:21] 发言人 8**:个算法,一个前面的几个内容报了一个算法,自飞一共四个。 - -**[02:00:28] 发言人 8**:然后这周我们还要完成一个事情,就是我们通过那个沙漠向我们的研发。 - -**[02:00:36] 发言人 0**:人开会,就是提。 - -**[02:00:37] 发言人 7**:供阿里云的科的。 - -**[02:00:39] 发言人 2**:模型服务。 - -**[02:00:40] 发言人 7**:这块完是一个统一的计口。 - -**[02:00:44] 发言人 8**:我这就这么去。 - -**[02:00:44] 发言人 0**:对对对,不要游击队,我操这个他妈的你要随时想着我们是正规军,要以铁道游击队的方式要求自己,最后就变成铁道队。 - -**[02:00:52] 发言人 8**:但是这样的崔不总上回我们也开过会,就说我们是这样的,这边我们提供的基础服务,其实他们有些同事他们用量非常高,他们也会做,自己会买一些补充,但是我们会统一要求,这样的话至少来说我们可以保证一个基础的培训。 - -**[02:01:09] 发言人 0**:好吧? - -**[02:01:10] 发言人 0**:好,你那然后你那卡是。 - -**[02:01:13] 发言人 3**:你最后那。 - -**[02:01:14] 发言人 8**:几个卡,你是四张卡。 - -**[02:01:17] 发言人 8**:是现在拿了两张卡来统一布一个推理,就是我们所有的全部还。 - -**[02:01:29] 发言人 5**:有一张卡在留给那字午。 - -**[02:01:34] 发言人 0**:不务后所都要的对。 - -**[02:01:36] 发言人 7**:就是我们所有的的那个推理。 - -**[02:01:39] 发言人 8**:我估计他现在。 - -**[02:01:41] 发言人 5**:主要审那个单子,就最大的就是审。 - -**[02:01:49] 发言人 2**:好。 - -**[02:01:50] 发言人 4**:其他的没有。 - -**[02:01:52] 发言人 0**:好,那就这样。 - diff --git a/core_agent/session.py b/core_agent/session.py index 29ba133..280f52c 100644 --- a/core_agent/session.py +++ b/core_agent/session.py @@ -65,6 +65,10 @@ class ConversationSession: self.max_iterations = max_iterations self.max_history_turns = max_history_turns self.max_persisted_turns = max_persisted_turns + self.max_tool_result_chars_for_model = 12000 + self.max_tool_string_field_chars = 1500 + self.max_tool_list_items = 8 + self.max_tool_dict_items = 20 self.session_dir = self.workspace / "agent_memory" / "sessions" / self.session_id self.history_path = self.session_dir / "recent_history.json" self.tool_trace_store = ToolTraceStore(self.session_dir / "tool_trace.json", max_turns=max_history_turns) @@ -201,7 +205,14 @@ class ConversationSession: result=result, tool_call_id=call.id, ) - messages.append({"role": "tool", "tool_call_id": call.id, "name": call.name, "content": result}) + messages.append( + { + "role": "tool", + "tool_call_id": call.id, + "name": call.name, + "content": self._tool_result_for_model(call.name, result), + } + ) yield ChatEvent(type="tool_result", tool_name=call.name, tool_args=call.arguments, tool_result=result, iteration=iteration, max_iterations=self.max_iterations) if repeated_loop_detected: @@ -288,6 +299,64 @@ class ConversationSession: base_prompt=self.system_prompt, ) + def _tool_result_for_model(self, tool_name: str, result: str) -> str: + text = str(result or "") + if len(text) <= self.max_tool_result_chars_for_model: + return text + try: + payload = json.loads(text) + except json.JSONDecodeError: + compact_text = self._compact_tool_value(text, depth=0) + summary = { + "_tool_name": tool_name, + "_truncated_for_model": True, + "_original_chars": len(text), + "_note": "Full tool result was stored in tool_trace.json. Use tool_trace_query if more detail is needed.", + "result_summary": compact_text, + } + return json.dumps(summary, ensure_ascii=False, indent=2) + + summary = { + "_tool_name": tool_name, + "_truncated_for_model": True, + "_original_chars": len(text), + "_note": "Full tool result was stored in tool_trace.json. Use tool_trace_query if more detail is needed.", + "result_summary": self._compact_tool_value(payload, depth=0), + } + return json.dumps(summary, ensure_ascii=False, indent=2) + + def _compact_tool_value(self, value: Any, *, depth: int) -> Any: + if depth >= 4: + if isinstance(value, (dict, list)): + return f"[{type(value).__name__} truncated]" + return self._compact_scalar(value) + if isinstance(value, dict): + items = list(value.items()) + compact: dict[str, Any] = {} + for index, (key, item) in enumerate(items): + if index >= self.max_tool_dict_items: + compact["_remaining_fields"] = len(items) - self.max_tool_dict_items + break + compact[str(key)] = self._compact_tool_value(item, depth=depth + 1) + return compact + if isinstance(value, list): + compact_list = [ + self._compact_tool_value(item, depth=depth + 1) + for item in value[: self.max_tool_list_items] + ] + if len(value) > self.max_tool_list_items: + compact_list.append(f"... {len(value) - self.max_tool_list_items} more items") + return compact_list + return self._compact_scalar(value) + + def _compact_scalar(self, value: Any) -> Any: + if isinstance(value, str): + compact = " ".join(value.split()) + if len(compact) > self.max_tool_string_field_chars: + return compact[: self.max_tool_string_field_chars] + "...[truncated]" + return compact + return value + def _assistant_message(turn: AssistantTurn) -> Dict[str, Any]: message: Dict[str, Any] = {"role": "assistant", "content": turn.content or ""} diff --git a/frontend_nanobot/README.md b/frontend_nanobot/README.md deleted file mode 100644 index 790eb79..0000000 --- a/frontend_nanobot/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# nanobot WebUI Source - -This directory contains the React/TypeScript source for the nanobot WebUI. If -you installed `nanobot-ai` from PyPI and only want to use the bundled browser UI, -read the user guide in [`docs/webui.md`](../docs/webui.md). You do not need -Node.js, Bun, Vite, or anything in this directory unless you are changing the -frontend. - -For the project overview, install guide, and general docs map, see the root [`README.md`](../README.md) and [`docs/README.md`](../docs/README.md). - -## Pick a Path - -| Goal | Start with | Opens at | -|---|---|---| -| Use the bundled browser UI | [`docs/webui.md`](../docs/webui.md) | `http://127.0.0.1:8765` | -| Use the WebUI from another device | [`docs/webui.md#lan-access`](../docs/webui.md#lan-access) | `http://:8765` | -| Change WebUI source code | [Develop the WebUI (Vite HMR)](#develop-the-webui-vite-hmr) | `http://127.0.0.1:5173` | -| Debug setup failures | [`docs/troubleshooting.md#webui-problems`](../docs/troubleshooting.md#webui-problems) | Diagnosis order and common fixes | - -The source app is built with Vite + React 18 + TypeScript + Tailwind 3 + -shadcn/ui. It talks to the gateway over the WebSocket multiplex protocol and -reads session metadata from the embedded REST surface on the same port. - -## Layout - -```text -webui/ source tree (this directory) -../webui/dist/ build output served by the gateway -``` - -## Develop the WebUI (Vite HMR) - -### 1. Install nanobot from source - -From the repository root: - -```bash -python -m pip install -e . -``` - -> Editable installs intentionally **skip** the WebUI bundle step — Vite HMR is faster than rebuilding `dist/` on every change. - -### 2. Enable the WebSocket channel - -In `~/.nanobot/config.json`, merge: - -```json -{ "channels": { "websocket": { "enabled": true } } } -``` - -### 3. Start the gateway - -In one terminal: - -```bash -nanobot gateway -``` - -### 4. Start the WebUI dev server - -In another terminal: - -```bash -cd webui -bun install # npm install also works -bun run dev -``` - -Then open `http://127.0.0.1:5173`. - -By default the dev server proxies `/api`, `/webui`, `/auth`, and WebSocket traffic to `http://127.0.0.1:8765`. - -If your gateway listens on a non-default port, point the dev server at it: - -```bash -NANOBOT_API_URL=http://127.0.0.1:9000 bun run dev -``` - -## Build for packaged runtime - -You usually do not need to run this by hand: `python -m build` invokes the WebUI build automatically when packaging the wheel. - -If you want to preview the production bundle locally without rebuilding the wheel: - -```bash -cd webui -bun run build # writes to ../webui/dist in this project -``` - -The gateway picks up the new bundle on the next restart. - -## Test - -```bash -cd webui -bun run test -``` - -## Acknowledgements - -- [`agent-chat-ui`](https://github.com/langchain-ai/agent-chat-ui) for UI and interaction inspiration across the chat surface. diff --git a/nanobot/web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 b/nanobot/web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 deleted file mode 100644 index 0acaaff..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff b/nanobot/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff deleted file mode 100644 index b804d7b..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf b/nanobot/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf deleted file mode 100644 index c6f9a5e..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf b/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf deleted file mode 100644 index 9ff4a5e..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff b/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff deleted file mode 100644 index 9759710..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 b/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 deleted file mode 100644 index f390922..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff b/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff deleted file mode 100644 index 9bdd534..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 b/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 deleted file mode 100644 index 75344a1..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf b/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf deleted file mode 100644 index f522294..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf b/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf deleted file mode 100644 index 4e98259..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff b/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff deleted file mode 100644 index e7730f6..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 b/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 deleted file mode 100644 index 395f28b..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf b/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf deleted file mode 100644 index b8461b2..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 b/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 deleted file mode 100644 index 735f694..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff b/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff deleted file mode 100644 index acab069..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 b/nanobot/web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 deleted file mode 100644 index ab2ad21..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff b/nanobot/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff deleted file mode 100644 index f38136a..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf b/nanobot/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf deleted file mode 100644 index 4060e62..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 b/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 deleted file mode 100644 index 5931794..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf b/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf deleted file mode 100644 index dc00797..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff b/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff deleted file mode 100644 index 67807b0..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf b/nanobot/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf deleted file mode 100644 index 0e9b0f3..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff b/nanobot/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff deleted file mode 100644 index 6f43b59..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 b/nanobot/web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 deleted file mode 100644 index b50920e..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 b/nanobot/web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 deleted file mode 100644 index eb24a7b..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff b/nanobot/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff deleted file mode 100644 index 21f5812..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf b/nanobot/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf deleted file mode 100644 index dd45e1e..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf b/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf deleted file mode 100644 index 728ce7a..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 b/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 deleted file mode 100644 index 2965702..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff b/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff deleted file mode 100644 index 0ae390d..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff b/nanobot/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff deleted file mode 100644 index eb5159d..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf b/nanobot/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf deleted file mode 100644 index 70d559b..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 b/nanobot/web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 deleted file mode 100644 index 215c143..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf b/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf deleted file mode 100644 index 2f65a8a..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 b/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 deleted file mode 100644 index cfaa3bd..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff b/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff deleted file mode 100644 index 8d47c02..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 b/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 deleted file mode 100644 index 349c06d..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff b/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff deleted file mode 100644 index 7e02df9..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf b/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf deleted file mode 100644 index d5850df..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf b/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf deleted file mode 100644 index 537279f..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff b/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff deleted file mode 100644 index 31b8482..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 b/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 deleted file mode 100644 index a90eea8..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf b/nanobot/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf deleted file mode 100644 index fd679bf..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 b/nanobot/web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 deleted file mode 100644 index b3048fc..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff b/nanobot/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff deleted file mode 100644 index 0e7da82..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff b/nanobot/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff deleted file mode 100644 index 7f292d9..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf b/nanobot/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf deleted file mode 100644 index 871fd7d..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 b/nanobot/web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 deleted file mode 100644 index c5a8462..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf b/nanobot/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf deleted file mode 100644 index 7a212ca..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 b/nanobot/web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 deleted file mode 100644 index e1bccfe..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff b/nanobot/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff deleted file mode 100644 index d241d9b..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff b/nanobot/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff deleted file mode 100644 index e6e9b65..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf b/nanobot/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf deleted file mode 100644 index 00bff34..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff b/nanobot/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff deleted file mode 100644 index e1ec545..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf b/nanobot/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf deleted file mode 100644 index 74f0892..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 b/nanobot/web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 deleted file mode 100644 index 680c130..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff b/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff deleted file mode 100644 index 2432419..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 b/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 deleted file mode 100644 index 771f1af..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 and /dev/null differ diff --git a/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf b/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf deleted file mode 100644 index c83252c..0000000 Binary files a/nanobot/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf and /dev/null differ diff --git a/nanobot/web/dist/assets/MarkdownTextRenderer-Cg7UrKJ7.js b/nanobot/web/dist/assets/MarkdownTextRenderer-Cg7UrKJ7.js deleted file mode 100644 index fa85aec..0000000 --- a/nanobot/web/dist/assets/MarkdownTextRenderer-Cg7UrKJ7.js +++ /dev/null @@ -1,2 +0,0 @@ -import{j as u,M as P,r as M,a as q,b as I,c as z}from"./markdown-vendor-BC7Vi29N.js";import{r as p}from"./syntax-highlight-CQw1bBY6.js";import{A as H,C as _,c as h,F as T,a as k,i as j,b as $,E as B,d as v,f as U}from"./index-CDsuleQI.js";import"./katex-BSBacQyE.js";const x=92,w=36,O=40,V=41,G=91,K=93,R=32,W=94,Q=95,Z=61,J=43,X=47,Y=60,ee=62,te=123,ne=125,re=124,ae={flow:{[x]:{tokenize:me,concrete:!0,name:"texMathFlow"}},text:{[x]:{tokenize:ce,name:"texMathText"},[w]:{tokenize:ue,name:"guardedDollarMathText"}}},ie=function(){const t=this.data();(t.micromarkExtensions||(t.micromarkExtensions=[])).push(ae)};function f(e){return e===-5||e===-4||e===-3}function oe(e){return e!==null&&e>=48&&e<=57}function se(e){return e===null||e===w||e===R||f(e)}function le(e){return e===x||e===W||e===Q||e===Z||e===J||e===X||e===Y||e===ee||e===te||e===ne||e===re}const F={tokenize:pe,partial:!0};function ue(e,t,r){let a=!1,o=!1,n=null,i=null;return c;function c(m){return e.enter("mathText"),e.enter("mathTextSequence"),e.consume(m),l}function l(m){return se(m)?r(m):(e.exit("mathTextSequence"),e.enter("mathTextData"),s(m))}function s(m){return m===null||f(m)?(e.exit("mathTextData"),r(m)):m===w?(e.exit("mathTextData"),e.enter("mathTextSequence"),e.consume(m),e.exit("mathTextSequence"),e.exit("mathText"),g):(b(m),m===x?d:s)}function d(m){return m===null||f(m)?(e.exit("mathTextData"),r(m)):(b(m),s)}function g(m){return!o||i===R||oe(n)&&!a?r(m):t(m)}function b(m){n??(n=m),o=!0,a||(a=le(m)),i=m,e.consume(m)}}function ce(e,t,r){let a;return o;function o(l){return e.enter("mathText"),e.enter("mathTextSequence"),e.consume(l),n}function n(l){return l!==O?r(l):(e.consume(l),e.exit("mathTextSequence"),e.enter("mathTextData"),i)}function i(l){return l===null?(e.exit("mathTextData"),r(l)):l===x?(e.exit("mathTextData"),a=e.enter("mathTextSequence"),e.consume(l),c):(e.consume(l),i)}function c(l){return l===V?(e.consume(l),e.exit("mathTextSequence"),e.exit("mathText"),t):(a&&(a.type="mathTextData"),i(l))}}function me(e,t,r){return a;function a(s){return e.enter("mathFlow"),e.enter("mathFlowFence"),e.enter("mathFlowFenceSequence"),e.consume(s),o}function o(s){return s!==G?r(s):(e.consume(s),e.exit("mathFlowFenceSequence"),e.exit("mathFlowFence"),n)}function n(s){return s===null?r(s):f(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n):s===x?e.attempt(F,l,c)(s):(e.enter("mathFlowValue"),i(s))}function i(s){return s===null?(e.exit("mathFlowValue"),r(s)):f(s)?(e.exit("mathFlowValue"),e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n):s===x?(e.exit("mathFlowValue"),e.attempt(F,l,c)(s)):(e.consume(s),i)}function c(s){return e.enter("mathFlowValue"),e.consume(s),i}function l(s){return e.exit("mathFlow"),t(s)}}function pe(e,t,r){return a;function a(n){return e.enter("mathFlowFence"),e.enter("mathFlowFenceSequence"),e.consume(n),o}function o(n){return n!==K?r(n):(e.consume(n),e.exit("mathFlowFenceSequence"),e.exit("mathFlowFence"),t)}}const he=new Set(["mark","sub","sup"]);function S(e){var n;const t=((n=e.split(/[?#]/,1)[0])==null?void 0:n.trim())??"",r=t.lastIndexOf("/"),a=r>=0?t.slice(r+1):t,o=a.lastIndexOf(".");return o>0?a.slice(o).toLowerCase():""}function xe(e,t){const r=$({url:e,name:t});return r!=="file"?r:S(t)||S(e)?"file":"image"}function de(e,t){return{type:`nanobotSafeHtml${e}`,data:{hName:e},children:t}}function ge(e){return{type:"text",value:e}}function E(e){if(e.type!=="html"||typeof e.value!="string")return null;const t=/^<\s*(\/?)\s*(mark|sub|sup)\s*>$/i.exec(e.value.trim());return t?{tag:t[2].toLowerCase(),closing:t[1]==="/"}:null}function y(e){const t=[];for(let r=0;r\s*<\s*summary\s*>([\s\S]*?)<\s*\/\s*summary\s*>$/i.exec(t);return r?{summary:r[1].trim()}:/^<\s*details\s*>$/i.test(t)?{summary:"Details"}:null}function be(e){return e.type==="html"&&typeof e.value=="string"&&/^<\s*\/\s*details\s*>$/i.test(e.value.trim())}function A(e){const t=[];for(let r=0;rl>r&&be(c));if(n===-1){t.push(a);continue}const i=y(A(e.slice(r+1,n)));t.push({type:"nanobotSafeHtmlDetails",data:{hName:"details"},children:[{type:"nanobotSafeHtmlSummary",data:{hName:"summary"},children:[ge(o.summary)]},...i]}),r=n}return t}function ye(){return e=>{e.children&&(e.children=y(A(e.children)))}}const ke=[q,I,[z,{singleDollarTextMath:!1}],ie,ye],we=[M];function C(e){return p.Children.toArray(e).map(t=>typeof t=="string"||typeof t=="number"?String(t):"").join("")}function L(e){var r,a;let t=e.trim();if(!t)return"";try{/^file:\/\//i.test(t)?t=decodeURIComponent(new URL(t).pathname):t=decodeURIComponent(t)}catch{}return t=((a=(r=t.split("?",1)[0])==null?void 0:r.split("#",1)[0])==null?void 0:a.trim())??"",/^[A-Za-z]:[\\/]/.test(t)||(t=t.replace(/:\d+(?::\d+)?$/,"")),t}function Te(e){return v(e)?!1:j(e)?!0:/^[a-z][a-z0-9+.-]*:\/\//i.test(e)||/[\\/]/.test(e)?!1:/^[^?#]+\.[a-z0-9][a-z0-9_-]{0,12}$/i.test(e)}function Fe(e){if(!e||/^https?:\/\//i.test(e)||e.startsWith("#"))return!1;const t=L(e);return!!(t&&v(t))}function Se(e){if(!e||/^https?:\/\//i.test(e)||e.startsWith("#"))return null;const t=L(e);return Te(t)?t:null}function D(e){let t="",r;for(const a of p.Children.toArray(e)){if(typeof a=="string"||typeof a=="number"){t+=String(a);continue}if(!p.isValidElement(a))continue;const o=a.props;!r&&typeof o.href=="string"&&/^https?:\/\//i.test(o.href)&&(r=o.href);const n=D(o.children);t+=n.text,r||(r=n.href)}return{text:t,href:r}}function N(e){return e.replace(/\s+/g," ").replace(/^[\s"'“”‘’]+|[\s"'“”‘’]+$/g,"").trim()}function Ee(e){const{text:t,href:r}=D(e);if(!r)return null;let a;try{a=new URL(r)}catch{return null}if(a.protocol!=="http:"&&a.protocol!=="https:")return null;const o=t.replace(/\s+/g," ").replace(r,"").replace(a.toString(),"").replace(/https?:\/\/\S+/i,"").trim();if(!o||o.length<4)return null;const n=/^(.*?)\s*(?:[—–]| - |:)\s*(.+)$/.exec(o),i=n!=null&&n[1]?N(n[1]):void 0,c=N((n==null?void 0:n[2])??o);return!c||/^https?:\/\//i.test(c)?null:{href:r,host:a.hostname,prefix:i,title:c}}function Ne({link:e}){const{favicon:t,onFaviconError:r}=je(e.host),a=e.prefix?`${e.prefix} — ${e.title}`:e.title;return u.jsxs("a",{href:e.href,target:"_blank",rel:"noreferrer noopener","aria-label":`Open link: ${a}`,className:h("not-prose inline-flex max-w-full items-center gap-2 align-baseline","text-blue-500 no-underline underline-offset-2 hover:underline dark:text-blue-300"),children:[u.jsx("span",{className:h("relative grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px]","border border-border/65 bg-background text-muted-foreground"),"aria-hidden":!0,children:t?u.jsx("img",{src:t,alt:"",className:"h-3 w-3 rounded-[2px] object-contain",loading:"lazy",onError:r}):u.jsx(B,{className:"h-3 w-3"})}),u.jsx("span",{className:"min-w-0 truncate leading-normal",children:a})]})}function je(e){const t=p.useMemo(()=>U(e),[e]),[r,a]=p.useState(0);p.useEffect(()=>{a(0)},[e]);const o=p.useCallback(()=>{a(n=>Math.min(n+1,t.length))},[t.length]);return{favicon:t[r]??null,onFaviconError:o}}function ve(e){if(!p.isValidElement(e))return!1;const t=e.props;return e.type===k||typeof t.code=="string"}function Re(e){var o;if(!p.isValidElement(e))return null;const t=e.props;if(!("children"in t))return null;const r=typeof t.className=="string"?t.className:"",a=(o=/language-([^\s]+)/.exec(r))==null?void 0:o[1];return{code:C(t.children).replace(/\n$/,""),language:a}}function Pe({children:e,className:t,highlightCode:r=!0,onOpenFilePreview:a}){const o=p.useMemo(()=>({code({className:n,children:i,...c}){const l=/language-(\w+)/.exec(n||"");if(l){const g=String(i).replace(/\n$/,"");return u.jsx(k,{language:l[1],code:g,className:"my-3",highlight:r})}const s=String(i).replace(/\n$/,"");return j(s)?u.jsx(T,{path:s,onOpen:a}):s.includes(` -`)||s.length>120?u.jsx("code",{className:h("block min-w-0 whitespace-pre bg-transparent p-0 font-mono text-[0.8125rem]","leading-snug text-inherit",n),...c,children:i}):u.jsx("code",{className:h("rounded bg-muted px-1 py-0.5 font-mono text-[0.85em]",n),...c,children:i})},pre({children:n}){const i=p.Children.toArray(n),c=i.length===1?i[0]:null;if(ve(c))return u.jsx(u.Fragment,{children:n});const l=Re(c);return l?u.jsx(k,{language:l.language||"text",code:l.code,className:"my-3",highlight:r}):u.jsx("pre",{className:h("my-3 overflow-x-auto rounded-lg border border-border/60 bg-muted/35","p-3 font-mono text-[0.8125rem] leading-snug text-foreground/90","whitespace-pre [overflow-wrap:normal]"),children:n})},a({href:n,children:i,...c}){const l=Se(n);if(l){const s=C(i).trim();return u.jsx(T,{path:s||l,tooltipPath:l,previewPath:l,onOpen:a})}return Fe(n)?u.jsx(u.Fragment,{children:i}):u.jsx("a",{href:n,target:"_blank",rel:"noreferrer noopener",className:"text-blue-500 underline underline-offset-2 hover:text-blue-600 dark:text-blue-300 dark:hover:text-blue-200",...c,children:i})},li({children:n,className:i}){const c=Ee(n);return c?u.jsx("li",{className:h("list-none pl-0",i),children:u.jsx(Ne,{link:c})}):u.jsx("li",{className:i,children:n})},input({type:n,checked:i}){return n!=="checkbox"?null:u.jsx("span",{"aria-hidden":!0,"data-testid":"markdown-task-checkbox",className:h("mr-2 inline-grid h-4 w-4 translate-y-[2px] place-items-center rounded-[4px]","border border-border/70 bg-muted/55 text-background",i&&"border-foreground/55 bg-foreground/65"),children:i?u.jsx(_,{className:"h-3 w-3 stroke-[3]"}):null})},mark({children:n}){return u.jsx("mark",{className:"rounded-[5px] bg-yellow-200/75 px-1 py-0.5 text-inherit dark:bg-yellow-300/25",children:n})},sub({children:n}){return u.jsx("sub",{className:"text-[0.72em] leading-none",children:n})},sup({children:n}){return u.jsx("sup",{className:"text-[0.72em] leading-none",children:n})},details({children:n}){return u.jsx("details",{className:"my-3 rounded-xl border border-border/65 bg-muted/25 px-4 py-3 open:pb-4",children:n})},summary({children:n}){return u.jsx("summary",{className:"cursor-pointer select-none text-sm font-medium text-foreground/88 marker:text-muted-foreground",children:n})},img({src:n,alt:i,node:c,className:l,...s}){const d=typeof n=="string"?n:"";if(!d)return null;const g=typeof i=="string"?i:"",b=xe(d,g);return u.jsx(H,{attachment:{kind:b,url:d,name:g},inline:!0})}}),[r,a]);return u.jsx("div",{className:h("markdown-content prose max-w-none dark:prose-invert","prose-headings:mt-4 prose-headings:mb-2 prose-headings:font-semibold prose-headings:tracking-tight","prose-h1:text-lg prose-h2:text-base prose-h3:text-sm prose-h4:text-[13px]","prose-p:my-2","prose-ul:my-2 prose-ol:my-2 prose-li:my-0.5","prose-blockquote:my-3 prose-blockquote:border-l-2 prose-blockquote:font-normal","prose-blockquote:not-italic prose-blockquote:text-foreground/80","prose-a:text-blue-500 prose-a:underline-offset-2 hover:prose-a:text-blue-600 dark:prose-a:text-blue-300 dark:hover:prose-a:text-blue-200","prose-hr:my-6","prose-pre:my-0 prose-pre:bg-transparent prose-pre:p-0","prose-code:before:content-none prose-code:after:content-none prose-code:font-normal","prose-table:my-3 prose-th:text-left prose-th:font-medium",t),style:{lineHeight:"var(--cjk-line-height)"},children:u.jsx(P,{remarkPlugins:ke,rehypePlugins:we,components:o,children:e})})}export{Pe as default}; diff --git a/nanobot/web/dist/assets/abap-Cdzi4CQl.js b/nanobot/web/dist/assets/abap-Cdzi4CQl.js deleted file mode 100644 index 2cdc474..0000000 --- a/nanobot/web/dist/assets/abap-Cdzi4CQl.js +++ /dev/null @@ -1 +0,0 @@ -import{g as C}from"./syntax-highlight-CQw1bBY6.js";function L(E,S){for(var I=0;IN[T]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var R=A;A.displayName="abap";A.aliases=[];function A(E){E.languages.abap={comment:/^\*.*/m,string:/(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/,"string-template":{pattern:/([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,lookbehind:!0,alias:"string"},"eol-comment":{pattern:/(^|\s)".*/m,lookbehind:!0,alias:"comment"},keyword:{pattern:/(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,lookbehind:!0},number:/\b\d+\b/,operator:{pattern:/(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/}}const D=C(R),M=L({__proto__:null,default:D},[R]);export{M as a}; diff --git a/nanobot/web/dist/assets/abnf-BSWYSs_Z.js b/nanobot/web/dist/assets/abnf-BSWYSs_Z.js deleted file mode 100644 index a8e4f02..0000000 --- a/nanobot/web/dist/assets/abnf-BSWYSs_Z.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function s(t,a){for(var e=0;en[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var u=o;o.displayName="abnf";o.aliases=[];function o(t){(function(a){var e="(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)";a.languages.abnf={comment:/;.*/,string:{pattern:/(?:%[is])?"[^"\n\r]*"/,greedy:!0,inside:{punctuation:/^%[is]/}},range:{pattern:/%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,alias:"number"},terminal:{pattern:/%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,alias:"number"},repetition:{pattern:/(^|[^\w-])(?:\d*\*\d*|\d+)/,lookbehind:!0,alias:"operator"},definition:{pattern:/(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m,lookbehind:!0,alias:"keyword",inside:{punctuation:/<|>/}},"core-rule":{pattern:RegExp("(?:(^|[^<\\w-])"+e+"|<"+e+">)(?![\\w-])","i"),lookbehind:!0,alias:["rule","constant"],inside:{punctuation:/<|>/}},rule:{pattern:/(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i,lookbehind:!0,inside:{punctuation:/<|>/}},operator:/=\/?|\//,punctuation:/[()\[\]]/}})(t)}const l=d(u),f=s({__proto__:null,default:l},[u]);export{f as a}; diff --git a/nanobot/web/dist/assets/actionscript-CB0AaI01.js b/nanobot/web/dist/assets/actionscript-CB0AaI01.js deleted file mode 100644 index a4d37a1..0000000 --- a/nanobot/web/dist/assets/actionscript-CB0AaI01.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./syntax-highlight-CQw1bBY6.js";function l(e,s){for(var n=0;nt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=i;i.displayName="actionscript";i.aliases=[];function i(e){e.languages.actionscript=e.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),e.languages.actionscript["class-name"].alias="function",delete e.languages.actionscript.parameter,delete e.languages.actionscript["literal-property"],e.languages.markup&&e.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:e.languages.markup}})}const p=o(c),g=l({__proto__:null,default:p},[c]);export{g as a}; diff --git a/nanobot/web/dist/assets/ada-xYaa6mtE.js b/nanobot/web/dist/assets/ada-xYaa6mtE.js deleted file mode 100644 index 559b71f..0000000 --- a/nanobot/web/dist/assets/ada-xYaa6mtE.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function c(e,d){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="ada";o.aliases=[];function o(e){e.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:false|true)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}}const l=s(i),p=c({__proto__:null,default:l},[i]);export{p as a}; diff --git a/nanobot/web/dist/assets/agda-BSokU1JM.js b/nanobot/web/dist/assets/agda-BSokU1JM.js deleted file mode 100644 index 7302913..0000000 --- a/nanobot/web/dist/assets/agda-BSokU1JM.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function s(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=i;i.displayName="agda";i.aliases=[];function i(e){(function(a){a.languages.agda={comment:/\{-[\s\S]*?(?:-\}|$)|--.*/,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},punctuation:/[(){}⦃⦄.;@]/,"class-name":{pattern:/((?:data|record) +)\S+/,lookbehind:!0},function:{pattern:/(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m,lookbehind:!0},operator:{pattern:/(^\s*|\s)(?:[=|:∀→λ\\?_]|->)(?=\s)/,lookbehind:!0},keyword:/\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/}})(e)}const c=l(u),p=s({__proto__:null,default:c},[u]);export{p as a}; diff --git a/nanobot/web/dist/assets/al-ByWN7NMK.js b/nanobot/web/dist/assets/al-ByWN7NMK.js deleted file mode 100644 index 42d01ba..0000000 --- a/nanobot/web/dist/assets/al-ByWN7NMK.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,n){for(var r=0;rt[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="al";i.aliases=[];function i(e){e.languages.al={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},function:{pattern:/(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i,lookbehind:!0},keyword:[/\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i,/\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i],number:/\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|LL?|U(?:LL?)?)?\b/i,boolean:/\b(?:false|true)\b/i,variable:/\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\b/,"class-name":/\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i,operator:/\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i,punctuation:/[()\[\]{}:.;,]/}}const c=l(s),p=d({__proto__:null,default:c},[s]);export{p as a}; diff --git a/nanobot/web/dist/assets/antlr4-Dkeeao8D.js b/nanobot/web/dist/assets/antlr4-Dkeeao8D.js deleted file mode 100644 index 1b4090a..0000000 --- a/nanobot/web/dist/assets/antlr4-Dkeeao8D.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(t,s){for(var n=0;ne[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="antlr4";o.aliases=["g4"];function o(t){t.languages.antlr4={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,string:{pattern:/'(?:\\.|[^\\'\r\n])*'/,greedy:!0},"character-class":{pattern:/\[(?:\\.|[^\\\]\r\n])*\]/,greedy:!0,alias:"regex",inside:{range:{pattern:/([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,lookbehind:!0,alias:"punctuation"},escape:/\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,punctuation:/[\[\]]/}},action:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,greedy:!0,inside:{content:{pattern:/(\{)[\s\S]+(?=\})/,lookbehind:!0},punctuation:/[{}]/}},command:{pattern:/(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,lookbehind:!0,inside:{function:/\b\w+(?=\s*(?:[,(]|$))/,punctuation:/[,()]/}},annotation:{pattern:/@\w+(?:::\w+)*/,alias:"keyword"},label:{pattern:/#[ \t]*\w+/,alias:"punctuation"},keyword:/\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,definition:[{pattern:/\b[a-z]\w*(?=\s*:)/,alias:["rule","class-name"]},{pattern:/\b[A-Z]\w*(?=\s*:)/,alias:["token","constant"]}],constant:/\b[A-Z][A-Z_]*\b/,operator:/\.\.|->|[|~]|[*+?]\??/,punctuation:/[;:()=]/},t.languages.g4=t.languages.antlr4}const c=l(i),g=u({__proto__:null,default:c},[i]);export{g as a}; diff --git a/nanobot/web/dist/assets/apacheconf-BjCFfNzD.js b/nanobot/web/dist/assets/apacheconf-BjCFfNzD.js deleted file mode 100644 index 2b1a68c..0000000 --- a/nanobot/web/dist/assets/apacheconf-BjCFfNzD.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function l(e,n){for(var i=0;ir[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="apacheconf";o.aliases=[];function o(e){e.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^[\t ]*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}}const u=c(s),p=l({__proto__:null,default:u},[s]);export{p as a}; diff --git a/nanobot/web/dist/assets/apex-DK_CE0bB.js b/nanobot/web/dist/assets/apex-DK_CE0bB.js deleted file mode 100644 index e5fa9d3..0000000 --- a/nanobot/web/dist/assets/apex-DK_CE0bB.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";import{a as u}from"./sql-Cn07C-jv.js";function g(s,t){for(var r=0;ra[e]})}}}return Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}var p=u,i=o;o.displayName="apex";o.aliases=[];function o(s){s.register(p),function(t){var r=/\b(?:(?:after|before)(?=\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\s+sharing)\b/i,a=/\b(?:(?=[a-z_]\w*\s*[<\[])|(?!))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(//g,function(){return r.source});function e(l){return RegExp(l.replace(//g,function(){return a}),"i")}var n={keyword:r,punctuation:/[()\[\]{};,:.<>]/};t.languages.apex={comment:t.languages.clike.comment,string:t.languages.clike.string,sql:{pattern:/((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,lookbehind:!0,greedy:!0,alias:"language-sql",inside:t.languages.sql},annotation:{pattern:/@\w+\b/,alias:"punctuation"},"class-name":[{pattern:e(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)/.source),lookbehind:!0,inside:n},{pattern:e(/(\(\s*)(?=\s*\)\s*[\w(])/.source),lookbehind:!0,inside:n},{pattern:e(/(?=\s*\w+\s*[;=,(){:])/.source),inside:n}],trigger:{pattern:/(\btrigger\s+)\w+\b/i,lookbehind:!0,alias:"class-name"},keyword:r,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,operator:/[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<{1,3}=?/,punctuation:/[()\[\]{};,.]/}}(s)}const d=c(i),m=g({__proto__:null,default:d},[i]);export{m as a}; diff --git a/nanobot/web/dist/assets/apl-CR4Dfz-v.js b/nanobot/web/dist/assets/apl-CR4Dfz-v.js deleted file mode 100644 index 6220278..0000000 --- a/nanobot/web/dist/assets/apl-CR4Dfz-v.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function l(t,i){for(var r=0;re[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="apl";o.aliases=[];function o(t){t.languages.apl={comment:/(?:⍝|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/¯?(?:\d*\.?\b\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+¯]?\d+)?|¯|∞))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/⎕[A-Z]+/i,alias:"function"},constant:/[⍬⌾#⎕⍞]/,function:/[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,"monadic-operator":{pattern:/[\\\/⌿⍀¨⍨⌶&∥]/,alias:"operator"},"dyadic-operator":{pattern:/[.⍣⍠⍤∘⌸@⌺⍥]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}⍺⍵⍶⍹∇⍫:]/,alias:"builtin"}}}const c=p(s),u=l({__proto__:null,default:c},[s]);export{u as a}; diff --git a/nanobot/web/dist/assets/applescript-gb57ietz.js b/nanobot/web/dist/assets/applescript-gb57ietz.js deleted file mode 100644 index c5c0da0..0000000 --- a/nanobot/web/dist/assets/applescript-gb57ietz.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function l(e,n){for(var s=0;st[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var a=o;o.displayName="applescript";o.aliases=[];function o(e){e.languages.applescript={comment:[/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=≠≤≥*+\-\/÷^]|[<>]=?/,/\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,"class-name":/\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\b/,punctuation:/[{}():,¬«»《》]/}}const u=c(a),p=l({__proto__:null,default:u},[a]);export{p as a}; diff --git a/nanobot/web/dist/assets/aql-piuDaxlQ.js b/nanobot/web/dist/assets/aql-piuDaxlQ.js deleted file mode 100644 index 29dc801..0000000 --- a/nanobot/web/dist/assets/aql-piuDaxlQ.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function b(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var T=o;o.displayName="aql";o.aliases=[];function o(e){e.languages.aql={comment:/\/\/.*|\/\*[\s\S]*?\*\//,property:{pattern:/([{,]\s*)(?:(?!\d)\w+|(["'´`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},identifier:{pattern:/([´`])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},variable:/@@?\w+/,keyword:[{pattern:/(\bWITH\s+)COUNT(?=\s+INTO\b)/i,lookbehind:!0},/\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\b/i,{pattern:/(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i,lookbehind:!0},{pattern:/(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/,lookbehind:!0},{pattern:/\bOPTIONS(?=\s*\{)/i}],function:/\b(?!\d)\w+(?=\s*\()/,boolean:/\b(?:false|true)\b/i,range:{pattern:/\.\./,alias:"operator"},number:[/\b0b[01]+/i,/\b0x[0-9a-f]+/i,/(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i],operator:/\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/,punctuation:/::|[?.:,;()[\]{}]/}}const s=l(T),E=b({__proto__:null,default:s},[T]);export{E as a}; diff --git a/nanobot/web/dist/assets/arduino-Daolr0n0.js b/nanobot/web/dist/assets/arduino-Daolr0n0.js deleted file mode 100644 index cafdbc7..0000000 --- a/nanobot/web/dist/assets/arduino-Daolr0n0.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";import{a as d}from"./cpp-CRSc4Apc.js";function c(e,i){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=d,s=n;n.displayName="arduino";n.aliases=["ino"];function n(e){e.register(u),e.languages.arduino=e.languages.extend("cpp",{keyword:/\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\b/,constant:/\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\b/,builtin:/\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\b/}),e.languages.ino=e.languages.arduino}const g=l(s),m=c({__proto__:null,default:g},[s]);export{m as a}; diff --git a/nanobot/web/dist/assets/arff-B7k8tk8I.js b/nanobot/web/dist/assets/arff-B7k8tk8I.js deleted file mode 100644 index aa4abe7..0000000 --- a/nanobot/web/dist/assets/arff-B7k8tk8I.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(e,o){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=n;n.displayName="arff";n.aliases=[];function n(e){e.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/}}const c=s(i),d=u({__proto__:null,default:c},[i]);export{d as a}; diff --git a/nanobot/web/dist/assets/asciidoc-B2SbY3o7.js b/nanobot/web/dist/assets/asciidoc-B2SbY3o7.js deleted file mode 100644 index 57682a6..0000000 --- a/nanobot/web/dist/assets/asciidoc-B2SbY3o7.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function d(r,a){for(var i=0;in[e]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var c=l;l.displayName="asciidoc";l.aliases=["adoc"];function l(r){(function(a){var i={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}},n=a.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*](?:[<^>](?:\.[<^>])?|\.[<^>])?|[<^>](?:\.[<^>])?|\.[<^>])[a-z]*|[a-z]+)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:i,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:i.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"']|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"']|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:i,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|R|TM)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}};function e(t){t=t.split(" ");for(var s={},o=0,u=t.length;oa[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=n;n.displayName="asm6502";n.aliases=[];function n(e){e.languages.asm6502={comment:/;.*/,directive:{pattern:/\.\w+(?= )/,alias:"property"},string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,"op-code":{pattern:/\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\b/,alias:"keyword"},"hex-number":{pattern:/#?\$[\da-f]{1,4}\b/i,alias:"number"},"binary-number":{pattern:/#?%[01]+\b/,alias:"number"},"decimal-number":{pattern:/#?\b\d+\b/,alias:"number"},register:{pattern:/\b[xya]\b/i,alias:"variable"},punctuation:/[(),:]/}}const b=l(c),m=o({__proto__:null,default:b},[c]);export{m as a}; diff --git a/nanobot/web/dist/assets/asmatmel-DW9Rf3bG.js b/nanobot/web/dist/assets/asmatmel-DW9Rf3bG.js deleted file mode 100644 index c6e6395..0000000 --- a/nanobot/web/dist/assets/asmatmel-DW9Rf3bG.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function n(e,b){for(var a=0;ar[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=l;l.displayName="asmatmel";l.aliases=[];function l(e){e.languages.asmatmel={comment:{pattern:/;.*/,greedy:!0},string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},constant:/\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\d|[0-2]\d|3[01]))\b/,directive:{pattern:/\.\w+(?= )/,alias:"property"},"r-register":{pattern:/\br(?:\d|[12]\d|3[01])\b/,alias:"variable"},"op-code":{pattern:/\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\b/,alias:"keyword"},"hex-number":{pattern:/#?\$[\da-f]{2,4}\b/i,alias:"number"},"binary-number":{pattern:/#?%[01]+\b/,alias:"number"},"decimal-number":{pattern:/#?\b\d+\b/,alias:"number"},register:{pattern:/\b[acznvshtixy]\b/i,alias:"variable"},operator:/>>=?|<<=?|&&?|\|\|?|[-+*/%&|^!=<>?]=?/,punctuation:/[(),:]/}}const S=i(c),o=n({__proto__:null,default:S},[c]);export{o as a}; diff --git a/nanobot/web/dist/assets/aspnet-BQ_UatgB.js b/nanobot/web/dist/assets/aspnet-BQ_UatgB.js deleted file mode 100644 index 2d83edb..0000000 --- a/nanobot/web/dist/assets/aspnet-BQ_UatgB.js +++ /dev/null @@ -1 +0,0 @@ -import{g}from"./syntax-highlight-CQw1bBY6.js";import{a as o}from"./csharp-7kLA39Gy.js";function l(e,p){for(var s=0;sa[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=o,i=n;n.displayName="aspnet";n.aliases=[];function n(e){e.register(c),e.languages.aspnet=e.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:e.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:e.languages.csharp}}}),e.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,e.languages.insertBefore("inside","punctuation",{directive:e.languages.aspnet.directive},e.languages.aspnet.tag.inside["attr-value"]),e.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),e.languages.insertBefore("aspnet",e.languages.javascript?"script":"tag",{"asp-script":{pattern:/(]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:e.languages.csharp||{}}})}const u=g(i),v=l({__proto__:null,default:u},[i]);export{v as a}; diff --git a/nanobot/web/dist/assets/autohotkey-Bq68nwKQ.js b/nanobot/web/dist/assets/autohotkey-Bq68nwKQ.js deleted file mode 100644 index 3dbe2db..0000000 --- a/nanobot/web/dist/assets/autohotkey-Bq68nwKQ.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function d(e,r){for(var a=0;at[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="autohotkey";n.aliases=[];function n(e){e.languages.autohotkey={comment:[{pattern:/(^|\s);.*/,lookbehind:!0},{pattern:/(^[\t ]*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m,lookbehind:!0,greedy:!0}],tag:{pattern:/^([ \t]*)[^\s,`":]+(?=:[ \t]*$)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,boolean:/\b(?:false|true)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,constant:/\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\b/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+(?=\()/,punctuation:/[{}[\]():,]/}}const u=s(l),p=d({__proto__:null,default:u},[l]);export{p as a}; diff --git a/nanobot/web/dist/assets/autoit-C5BIcSzo.js b/nanobot/web/dist/assets/autoit-C5BIcSzo.js deleted file mode 100644 index 3012ce6..0000000 --- a/nanobot/web/dist/assets/autoit-C5BIcSzo.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function s(t,i){for(var r=0;re[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var l=a;a.displayName="autoit";a.aliases=[];function a(t){t.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:ce|comments-end)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#[\w-]+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:False|True)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Not|Or)\b/i,punctuation:/[\[\]().,:]/}}const c=u(l),b=s({__proto__:null,default:c},[l]);export{b as a}; diff --git a/nanobot/web/dist/assets/avisynth-Cyt8eJXX.js b/nanobot/web/dist/assets/avisynth-Cyt8eJXX.js deleted file mode 100644 index 6621878..0000000 --- a/nanobot/web/dist/assets/avisynth-Cyt8eJXX.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";function g(t,a){for(var o=0;oe[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var c=l;l.displayName="avisynth";l.aliases=["avs"];function l(t){(function(a){function o(i,s){return i.replace(/<<(\d+)>>/g,function(u,f){return s[+f]})}function e(i,s,u){return RegExp(o(i,s),u)}var r=/bool|clip|float|int|string|val/.source,n=[/is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/.source,/apply|assert|default|eval|import|nop|select|undefined/.source,/opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/.source,/hex(?:value)?|value/.source,/abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/.source,/a?sinh?|a?cosh?|a?tan[2h]?/.source,/(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/.source,/average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/.source,/getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/.source,/chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/.source,/isversionorgreater|version(?:number|string)/.source,/buildpixeltype|colorspacenametopixeltype/.source,/addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source].join("|"),d=[/has(?:audio|video)/.source,/height|width/.source,/frame(?:count|rate)|framerate(?:denominator|numerator)/.source,/getparity|is(?:field|frame)based/.source,/bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/.source,/audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/.source].join("|"),p=[/avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/.source,/coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/.source,/(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source,/addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/.source,/blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/.source,/trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/.source,/assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/.source,/amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/.source,/animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/.source,/imagewriter/.source,/blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/.source].join("|"),m=[n,d,p].join("|");a.languages.avisynth={comment:[{pattern:/(^|[^\\])\[\*(?:[^\[*]|\[(?!\*)|\*(?!\])|\[\*(?:[^\[*]|\[(?!\*)|\*(?!\]))*\*\])*\*\]/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],argument:{pattern:e(/\b(?:<<0>>)\s+("?)\w+\1/.source,[r],"i"),inside:{keyword:/^\w+/}},"argument-label":{pattern:/([,(][\s\\]*)\w+\s*=(?!=)/,lookbehind:!0,inside:{"argument-name":{pattern:/^\w+/,alias:"punctuation"},punctuation:/=$/}},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0,inside:{constant:{pattern:/\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\b/}}}],variable:/\b(?:last)\b/i,boolean:/\b(?:false|no|true|yes)\b/i,keyword:/\b(?:catch|else|for|function|global|if|return|try|while|__END__)\b/i,constant:/\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\b/,"builtin-function":{pattern:e(/\b(?:<<0>>)\b/.source,[m],"i"),alias:"function"},"type-cast":{pattern:e(/\b(?:<<0>>)(?=\s*\()/.source,[r],"i"),alias:"keyword"},function:{pattern:/\b[a-z_]\w*(?=\s*\()|(\.)[a-z_]\w*\b/i,lookbehind:!0},"line-continuation":{pattern:/(^[ \t]*)\\|\\(?=[ \t]*$)/m,lookbehind:!0,alias:"punctuation"},number:/\B\$(?:[\da-f]{6}|[\da-f]{8})\b|(?:(?:\b|\B-)\d+(?:\.\d*)?\b|\B\.\d+\b)/i,operator:/\+\+?|[!=<>]=?|&&|\|\||[?:*/%-]/,punctuation:/[{}\[\]();,.]/},a.languages.avs=a.languages.avisynth})(t)}const v=b(c),y=g({__proto__:null,default:v},[c]);export{y as a}; diff --git a/nanobot/web/dist/assets/avro-idl-DWE14pZB.js b/nanobot/web/dist/assets/avro-idl-DWE14pZB.js deleted file mode 100644 index d70485a..0000000 --- a/nanobot/web/dist/assets/avro-idl-DWE14pZB.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function u(e,i){for(var o=0;or[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="avroIdl";n.aliases=[];function n(e){e.languages["avro-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0},annotation:{pattern:/@(?:[$\w.-]|`[^\r\n`]+`)+/,greedy:!0,alias:"function"},"function-identifier":{pattern:/`[^\r\n`]+`(?=\s*\()/,greedy:!0,alias:"function"},identifier:{pattern:/`[^\r\n`]+`/,greedy:!0},"class-name":{pattern:/(\b(?:enum|error|protocol|record|throws)\b\s+)[$\w]+/,lookbehind:!0,greedy:!0},keyword:/\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:[{pattern:/(^|[^\w.])-?(?:(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|0x(?:[a-f0-9]+(?:\.[a-f0-9]*)?|\.[a-f0-9]+)(?:p[+-]?\d+)?)[dfl]?(?![\w.])/i,lookbehind:!0},/-?\b(?:Infinity|NaN)\b/],operator:/=/,punctuation:/[()\[\]{}<>.:,;-]/},e.languages.avdl=e.languages["avro-idl"]}const s=d(l),c=u({__proto__:null,default:s},[l]);export{c as a}; diff --git a/nanobot/web/dist/assets/bash-C03zJnEy.js b/nanobot/web/dist/assets/bash-C03zJnEy.js deleted file mode 100644 index 70c1029..0000000 --- a/nanobot/web/dist/assets/bash-C03zJnEy.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function u(o,n){for(var a=0;at[e]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var p=i;i.displayName="bash";i.aliases=["shell"];function i(o){(function(n){var a="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",t={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},e={bash:t,environment:{pattern:RegExp("\\$"+a),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+a),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+a),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:e},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:t}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:e},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:e.entity}}],environment:{pattern:RegExp("\\$?"+a),alias:"constant"},variable:e.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},t.inside=n.languages.bash;for(var r=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],l=e.variable[1].inside,s=0;sT[R]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var O=A;A.displayName="basic";A.aliases=[];function A(E){E.languages.basic={comment:{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}const e=L(O),t=D({__proto__:null,default:e},[O]);export{O as a,t as b}; diff --git a/nanobot/web/dist/assets/batch-B9zDLnB8.js b/nanobot/web/dist/assets/batch-B9zDLnB8.js deleted file mode 100644 index 7c9b022..0000000 --- a/nanobot/web/dist/assets/batch-B9zDLnB8.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";function l(n,i){for(var t=0;te[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="batch";o.aliases=[];function o(n){(function(i){var t=/%%?[~:\w]+%?|!\S+!/,e={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},r=/"(?:[\\"]"|[^"])*"(?!")/,a=/(?:\b|-)\d+\b/;i.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/\b(?:do|in)\b|^for\b/i,string:r,parameter:e,variable:t,number:a,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:"[^"]*"|[^\s"]\S*))/im,lookbehind:!0,inside:{keyword:/\b(?:cmdextversion|defined|errorlevel|exist|not)\b|^if\b/i,string:r,parameter:e,variable:t,number:a,operator:/\^|==|\b(?:equ|geq|gtr|leq|lss|neq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:r,parameter:e,variable:[t,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:a,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/m,lookbehind:!0,inside:{keyword:/^\w+\b/,string:r,parameter:e,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:t,number:a,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}})(n)}const d=b(s),u=l({__proto__:null,default:d},[s]);export{u as b}; diff --git a/nanobot/web/dist/assets/bbcode-Bpla2nyU.js b/nanobot/web/dist/assets/bbcode-Bpla2nyU.js deleted file mode 100644 index ee4025f..0000000 --- a/nanobot/web/dist/assets/bbcode-Bpla2nyU.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function b(e,n){for(var a=0;at[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=s;s.displayName="bbcode";s.aliases=["shortcode"];function s(e){e.languages.bbcode={tag:{pattern:/\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/,inside:{tag:{pattern:/^\[\/?[^\s=\]]+/,inside:{punctuation:/^\[\/?/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\]/,"attr-name":/[^\s=\]]+/}}},e.languages.shortcode=e.languages.bbcode}const i=u(c),g=b({__proto__:null,default:i},[c]);export{g as b}; diff --git a/nanobot/web/dist/assets/bicep-Dpb6ggD4.js b/nanobot/web/dist/assets/bicep-Dpb6ggD4.js deleted file mode 100644 index b8abaab..0000000 --- a/nanobot/web/dist/assets/bicep-Dpb6ggD4.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function s(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var p=i;i.displayName="bicep";i.aliases=[];function i(e){e.languages.bicep={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],property:[{pattern:/([\r\n][ \t]*)[a-z_]\w*(?=[ \t]*:)/i,lookbehind:!0},{pattern:/([\r\n][ \t]*)'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'(?=[ \t]*:)/,lookbehind:!0,greedy:!0}],string:[{pattern:/'''[^'][\s\S]*?'''/,greedy:!0},{pattern:/(^|[^\\'])'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0}],"interpolated-string":{pattern:/(^|[^\\'])'(?:\\.|\$(?:(?!\{)|\{[^{}\r\n]*\})|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}\r\n]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0},punctuation:/^\$\{|\}$/}},string:/[\s\S]+/}},datatype:{pattern:/(\b(?:output|param)\b[ \t]+\w+[ \t]+)\w+\b/,lookbehind:!0,alias:"class-name"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\b/,decorator:/@\w+\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/,punctuation:/[{}[\];(),.:]/},e.languages.bicep["interpolated-string"].inside.interpolation.inside.expression.inside=e.languages.bicep}const d=u(p),l=s({__proto__:null,default:d},[p]);export{l as b}; diff --git a/nanobot/web/dist/assets/birb-J3-aoGlm.js b/nanobot/web/dist/assets/birb-J3-aoGlm.js deleted file mode 100644 index dd87111..0000000 --- a/nanobot/web/dist/assets/birb-J3-aoGlm.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function l(e,s){for(var a=0;ar[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var b=n;n.displayName="birb";n.aliases=[];function n(e){e.languages.birb=e.languages.extend("clike",{string:{pattern:/r?("|')(?:\\.|(?!\1)[^\\])*\1/,greedy:!0},"class-name":[/\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/,/\b(?:[A-Z]\w*|(?!(?:var|void)\b)[a-z]\w*)(?=\s+\w+\s*[;,=()])/],keyword:/\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\b/,operator:/\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/,variable:/\b[a-z_]\w*\b/}),e.languages.insertBefore("birb","function",{metadata:{pattern:/<\w+>/,greedy:!0,alias:"symbol"}})}const f=i(b),u=l({__proto__:null,default:f},[b]);export{u as b}; diff --git a/nanobot/web/dist/assets/bison-B5_vjJ8F.js b/nanobot/web/dist/assets/bison-B5_vjJ8F.js deleted file mode 100644 index 605e75b..0000000 --- a/nanobot/web/dist/assets/bison-B5_vjJ8F.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";import{a as u}from"./c-BCNF8Z26.js";function g(e,i){for(var a=0;at[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=u,s=o;o.displayName="bison";o.aliases=[];function o(e){e.register(l),e.languages.bison=e.languages.extend("c",{}),e.languages.insertBefore("bison","comment",{bison:{pattern:/^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:e.languages.c}},comment:e.languages.c.comment,string:e.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}})}const p=c(s),d=g({__proto__:null,default:p},[s]);export{d as b}; diff --git a/nanobot/web/dist/assets/bnf-Co0lWrDt.js b/nanobot/web/dist/assets/bnf-Co0lWrDt.js deleted file mode 100644 index 1960350..0000000 --- a/nanobot/web/dist/assets/bnf-Co0lWrDt.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(e,f){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="bnf";o.aliases=["rbnf"];function o(e){e.languages.bnf={string:{pattern:/"[^\r\n"]*"|'[^\r\n']*'/},definition:{pattern:/<[^<>\r\n\t]+>(?=\s*::=)/,alias:["rule","keyword"],inside:{punctuation:/^<|>$/}},rule:{pattern:/<[^<>\r\n\t]+>/,inside:{punctuation:/^<|>$/}},operator:/::=|[|()[\]{}*+?]|\.{3}/},e.languages.rbnf=e.languages.bnf}const l=s(i),p=u({__proto__:null,default:l},[i]);export{p as b}; diff --git a/nanobot/web/dist/assets/brainfuck-nM_U7PGj.js b/nanobot/web/dist/assets/brainfuck-nM_U7PGj.js deleted file mode 100644 index d31c40c..0000000 --- a/nanobot/web/dist/assets/brainfuck-nM_U7PGj.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function s(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=o;o.displayName="brainfuck";o.aliases=[];function o(e){e.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}}const l=f(c),p=s({__proto__:null,default:l},[c]);export{p as b}; diff --git a/nanobot/web/dist/assets/brightscript-pnbFE2IS.js b/nanobot/web/dist/assets/brightscript-pnbFE2IS.js deleted file mode 100644 index d8fb2e9..0000000 --- a/nanobot/web/dist/assets/brightscript-pnbFE2IS.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function b(e,s){for(var i=0;it[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var a=o;o.displayName="brightscript";o.aliases=[];function o(e){e.languages.brightscript={comment:/(?:\brem|').*/i,"directive-statement":{pattern:/(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,lookbehind:!0,alias:"property",inside:{"error-message":{pattern:/(^#error).+/,lookbehind:!0},directive:{pattern:/^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,alias:"keyword"},expression:{pattern:/[\s\S]+/,inside:null}}},property:{pattern:/([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},"class-name":{pattern:/(\bAs[\t ]+)\w+/i,lookbehind:!0},keyword:/\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?!\d)\w+(?=[\t ]*\()/,number:/(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,operator:/--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,punctuation:/[.,;()[\]{}]/,constant:/\b(?:LINE_NUM)\b/i},e.languages.brightscript["directive-statement"].inside.expression.inside=e.languages.brightscript}const d=p(a),l=b({__proto__:null,default:d},[a]);export{l as b}; diff --git a/nanobot/web/dist/assets/bro-DuDkdLOk.js b/nanobot/web/dist/assets/bro-DuDkdLOk.js deleted file mode 100644 index dfc044c..0000000 --- a/nanobot/web/dist/assets/bro-DuDkdLOk.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function d(e,a){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=i;i.displayName="bro";i.aliases=[];function i(e){e.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:FIXME|TODO|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(\b(?:event|function|hook)[ \t]+)\w+(?:::\w+)?/,lookbehind:!0},builtin:/(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,constant:{pattern:/(\bconst[ \t]+)\w+/i,lookbehind:!0},keyword:/\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/}}const b=u(l),c=d({__proto__:null,default:b},[l]);export{c as b}; diff --git a/nanobot/web/dist/assets/bsl-UUfR09Ka.js b/nanobot/web/dist/assets/bsl-UUfR09Ka.js deleted file mode 100644 index 7131b54..0000000 --- a/nanobot/web/dist/assets/bsl-UUfR09Ka.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./syntax-highlight-CQw1bBY6.js";function i(e,f){for(var r=0;ru[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var d=a;a.displayName="bsl";a.aliases=[];function a(e){e.languages.bsl={comment:/\/\/.*/,string:[{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},{pattern:/'(?:[^'\r\n\\]|\\.)*'/}],keyword:[{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\b/i}],number:{pattern:/(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,lookbehind:!0},operator:[/[<>+\-*/]=?|[%=]/,{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:and|not|or)\b/i}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/,directive:[{pattern:/^([ \t]*)&.*/m,lookbehind:!0,greedy:!0,alias:"important"},{pattern:/^([ \t]*)#.*/gm,lookbehind:!0,greedy:!0,alias:"important"}]},e.languages.oscript=e.languages.bsl}const l=o(d),b=i({__proto__:null,default:l},[d]);export{b}; diff --git a/nanobot/web/dist/assets/c-BCNF8Z26.js b/nanobot/web/dist/assets/c-BCNF8Z26.js deleted file mode 100644 index fc7ab04..0000000 --- a/nanobot/web/dist/assets/c-BCNF8Z26.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function u(e,s){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="c";o.aliases=[];function o(e){e.languages.c=e.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),e.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],char:e.languages.c.char,comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}}}),e.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete e.languages.c.boolean}const _=c(i),d=u({__proto__:null,default:_},[i]);export{i as a,d as c}; diff --git a/nanobot/web/dist/assets/cfscript-ByUh8gD3.js b/nanobot/web/dist/assets/cfscript-ByUh8gD3.js deleted file mode 100644 index 75dac96..0000000 --- a/nanobot/web/dist/assets/cfscript-ByUh8gD3.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function l(e,o){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=i;i.displayName="cfscript";i.aliases=[];function i(e){e.languages.cfscript=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,inside:{annotation:{pattern:/(?:^|[^.])@[\w\.]+/,alias:"punctuation"}}},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],keyword:/\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\b(?!\s*=)/,operator:[/\+\+|--|&&|\|\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\?(?:\.|:)?|[?:]/,/\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\b/],scope:{pattern:/\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\b/,alias:"global"},type:{pattern:/\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\b/,alias:"builtin"}}),e.languages.insertBefore("cfscript","keyword",{"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"}}),delete e.languages.cfscript["class-name"],e.languages.cfc=e.languages.cfscript}const u=s(c),f=l({__proto__:null,default:u},[c]);export{f as c}; diff --git a/nanobot/web/dist/assets/chaiscript-BVgVrYsP.js b/nanobot/web/dist/assets/chaiscript-BVgVrYsP.js deleted file mode 100644 index e849e35..0000000 --- a/nanobot/web/dist/assets/chaiscript-BVgVrYsP.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";import{a as p}from"./cpp-CRSc4Apc.js";function l(e,o){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=p,s=i;i.displayName="chaiscript";i.aliases=[];function i(e){e.register(u),e.languages.chaiscript=e.languages.extend("clike",{string:{pattern:/(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,lookbehind:!0,greedy:!0},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},{pattern:/(\b(?:attr|def)\s+)\w+(?=\s*::)/,lookbehind:!0}],keyword:/\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,number:[e.languages.cpp.number,/\b(?:Infinity|NaN)\b/],operator:/>>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/}),e.languages.insertBefore("chaiscript","operator",{"parameter-type":{pattern:/([,(]\s*)\w+(?=\s+\w)/,lookbehind:!0,alias:"class-name"}}),e.languages.insertBefore("chaiscript","string",{"string-interpolation":{pattern:/(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,lookbehind:!0,inside:{"interpolation-expression":{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.chaiscript},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"}}},string:/[\s\S]+/}}})}const g=c(s),b=l({__proto__:null,default:g},[s]);export{b as c}; diff --git a/nanobot/web/dist/assets/cil-D-KXfxfp.js b/nanobot/web/dist/assets/cil-D-KXfxfp.js deleted file mode 100644 index 020e458..0000000 --- a/nanobot/web/dist/assets/cil-D-KXfxfp.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./syntax-highlight-CQw1bBY6.js";function c(e,s){for(var l=0;lt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=a;a.displayName="cil";a.aliases=[];function a(e){e.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.\d+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.\d+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|castclass|ldvirtftn|beq(?:\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:false|true)\b/,number:/\b-?(?:0x[0-9a-f]+|\d+)(?:\.[0-9a-f]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}}const d=o(i),f=c({__proto__:null,default:d},[i]);export{f as c}; diff --git a/nanobot/web/dist/assets/clojure-B_m_tw28.js b/nanobot/web/dist/assets/clojure-B_m_tw28.js deleted file mode 100644 index 60bc515..0000000 --- a/nanobot/web/dist/assets/clojure-B_m_tw28.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function c(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="clojure";o.aliases=[];function o(e){e.languages.clojure={comment:{pattern:/;.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},char:/\\\w+/,symbol:{pattern:/(^|[\s()\[\]{},])::?[\w*+!?'<>=/.-]+/,lookbehind:!0},keyword:{pattern:/(\()(?:-|->|->>|\.|\.\.|\*|\/|\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[\s)]|$)/,lookbehind:!0},boolean:/\b(?:false|nil|true)\b/,number:{pattern:/(^|[^\w$@])(?:\d+(?:[/.]\d+)?(?:e[+-]?\d+)?|0x[a-f0-9]+|[1-9]\d?r[a-z0-9]+)[lmn]?(?![\w$@])/i,lookbehind:!0},function:{pattern:/((?:^|[^'])\()[\w*+!?'<>=/.-]+(?=[\s)]|$)/,lookbehind:!0},operator:/[#@^`~]/,punctuation:/[{}\[\](),]/}}const d=l(i),f=c({__proto__:null,default:d},[i]);export{f as c}; diff --git a/nanobot/web/dist/assets/cmake-B3wMX_y0.js b/nanobot/web/dist/assets/cmake-B3wMX_y0.js deleted file mode 100644 index 30d4cbf..0000000 --- a/nanobot/web/dist/assets/cmake-B3wMX_y0.js +++ /dev/null @@ -1 +0,0 @@ -import{g as N}from"./syntax-highlight-CQw1bBY6.js";function C(E,A){for(var I=0;I_[T]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var S=O;O.displayName="cmake";O.aliases=[];function O(E){E.languages.cmake={comment:/#.*/,string:{pattern:/"(?:[^\\"]|\\.)*"/,greedy:!0,inside:{interpolation:{pattern:/\$\{(?:[^{}$]|\$\{[^{}$]*\})*\}/,inside:{punctuation:/\$\{|\}/,variable:/\w+/}}}},variable:/\b(?:CMAKE_\w+|\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/,property:/\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/,keyword:/\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/,boolean:/\b(?:FALSE|OFF|ON|TRUE)\b/,namespace:/\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\b/,operator:/\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\b/,inserted:{pattern:/\b\w+::\w+\b/,alias:"class-name"},number:/\b\d+(?:\.\d+)*\b/,function:/\b[a-z_]\w*(?=\s*\()\b/i,punctuation:/[()>}]|\$[<{]/}}const L=N(S),P=C({__proto__:null,default:L},[S]);export{P as c}; diff --git a/nanobot/web/dist/assets/cobol-BHONvlcG.js b/nanobot/web/dist/assets/cobol-BHONvlcG.js deleted file mode 100644 index e7e8ba6..0000000 --- a/nanobot/web/dist/assets/cobol-BHONvlcG.js +++ /dev/null @@ -1 +0,0 @@ -import{g as L}from"./syntax-highlight-CQw1bBY6.js";function S(E,A){for(var N=0;NT[I]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var D=O;O.displayName="cobol";O.aliases=[];function O(E){E.languages.cobol={comment:{pattern:/\*>.*|(^[ \t]*)\*.*/m,lookbehind:!0,greedy:!0},string:{pattern:/[xzgn]?(?:"(?:[^\r\n"]|"")*"(?!")|'(?:[^\r\n']|'')*'(?!'))/i,greedy:!0},level:{pattern:/(^[ \t]*)\d+\b/m,lookbehind:!0,greedy:!0,alias:"number"},"class-name":{pattern:/(\bpic(?:ture)?\s+)(?:(?:[-\w$/,:*+<>]|\.(?!\s|$))(?:\(\d+\))?)+/i,lookbehind:!0,inside:{number:{pattern:/(\()\d+/,lookbehind:!0},punctuation:/[()]/}},keyword:{pattern:/(^|[^\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\w-])/i,lookbehind:!0},boolean:{pattern:/(^|[^\w-])(?:false|true)(?![\w-])/i,lookbehind:!0},number:{pattern:/(^|[^\w-])(?:[+-]?(?:(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:e[+-]?\d+)?|zero))(?![\w-])/i,lookbehind:!0},operator:[/<>|[<>]=?|[=+*/&]/,{pattern:/(^|[^\w-])(?:-|and|equal|greater|less|not|or|than)(?![\w-])/i,lookbehind:!0}],punctuation:/[.:,()]/}}const C=L(D),P=S({__proto__:null,default:C},[D]);export{P as c}; diff --git a/nanobot/web/dist/assets/coffeescript-YYxk8tr6.js b/nanobot/web/dist/assets/coffeescript-YYxk8tr6.js deleted file mode 100644 index 0244328..0000000 --- a/nanobot/web/dist/assets/coffeescript-YYxk8tr6.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function l(a,e){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var o=s;s.displayName="coffeescript";s.aliases=["coffee"];function s(a){(function(e){var n=/#(?!\{).+/,t={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:n,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:t}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:n,interpolation:t}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:t}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript})(a)}const f=c(o),g=l({__proto__:null,default:f},[o]);export{g as c}; diff --git a/nanobot/web/dist/assets/concurnas-CNTwC13t.js b/nanobot/web/dist/assets/concurnas-CNTwC13t.js deleted file mode 100644 index 4972bb0..0000000 --- a/nanobot/web/dist/assets/concurnas-CNTwC13t.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function l(e,s){for(var a=0;an[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="concurnas";o.aliases=["conc"];function o(e){e.languages.concurnas={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*)/,lookbehind:!0,greedy:!0},langext:{pattern:/\b\w+\s*\|\|[\s\S]+?\|\|/,greedy:!0,inside:{"class-name":/^\w+/,string:{pattern:/(^\s*\|\|)[\s\S]+(?=\|\|$)/,lookbehind:!0},punctuation:/\|\|/}},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/,lookbehind:!0},keyword:/\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/,boolean:/\b(?:false|true)\b/,number:/\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i,punctuation:/[{}[\];(),.:]/,operator:/<==|>==|=>|->|<-|<>|&==|&<>|\?:?|\.\?|\+\+|--|[-+*/=<>]=?|[!^~]|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/,annotation:{pattern:/@(?:\w+:)?(?:\w+|\[[^\]]+\])?/,alias:"builtin"}},e.languages.insertBefore("concurnas","langext",{"regex-literal":{pattern:/\br("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:e.languages.concurnas},regex:/[\s\S]+/}},"string-literal":{pattern:/(?:\B|\bs)("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:e.languages.concurnas},string:/[\s\S]+/}}}),e.languages.conc=e.languages.concurnas}const u=c(i),p=l({__proto__:null,default:u},[i]);export{p as c}; diff --git a/nanobot/web/dist/assets/coq-306fs7Mb.js b/nanobot/web/dist/assets/coq-306fs7Mb.js deleted file mode 100644 index 6b58825..0000000 --- a/nanobot/web/dist/assets/coq-306fs7Mb.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function l(r,n){for(var e=0;et[i]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var s=a;a.displayName="coq";a.aliases=[];function a(r){(function(n){for(var e=/\(\*(?:[^(*]|\((?!\*)|\*(?!\))|)*\*\)/.source,t=0;t<2;t++)e=e.replace(//g,function(){return e});e=e.replace(//g,"[]"),n.languages.coq={comment:RegExp(e),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},attribute:[{pattern:RegExp(/#\[(?:[^\[\]("]|"(?:[^"]|"")*"(?!")|\((?!\*)|)*\]/.source.replace(//g,function(){return e})),greedy:!0,alias:"attr-name",inside:{comment:RegExp(e),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},operator:/=/,punctuation:/^#\[|\]$|[,()]/}},{pattern:/\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\b/,alias:"attr-name"}],keyword:/\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\b/,number:/\b(?:0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]+)?(?:p[+-]?\d[\d_]*)?|\d[\d_]*(?:\.[\d_]+)?(?:e[+-]?\d[\d_]*)?)\b/i,punct:{pattern:/@\{|\{\||\[=|:>/,alias:"punctuation"},operator:/\/\\|\\\/|\.{2,3}|:{1,2}=|\*\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\|[-|]?|[-!%&*+/<=>?@^~']/,punctuation:/\.\(|`\(|@\{|`\{|\{\||\[=|:>|[:.,;(){}\[\]]/}})(r)}const p=c(s),m=l({__proto__:null,default:p},[s]);export{m as c}; diff --git a/nanobot/web/dist/assets/cpp-CRSc4Apc.js b/nanobot/web/dist/assets/cpp-CRSc4Apc.js deleted file mode 100644 index 4fa0d2b..0000000 --- a/nanobot/web/dist/assets/cpp-CRSc4Apc.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";import{a as u}from"./c-BCNF8Z26.js";function p(a,e){for(var t=0;tr[n]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var l=u,c=s;s.displayName="cpp";s.aliases=[];function s(a){a.register(l),function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,r=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return t.source});e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return t.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return r})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a)}const d=i(c),f=p({__proto__:null,default:d},[c]);export{c as a,f as c}; diff --git a/nanobot/web/dist/assets/crystal-D1dlICFe.js b/nanobot/web/dist/assets/crystal-D1dlICFe.js deleted file mode 100644 index 4181af7..0000000 --- a/nanobot/web/dist/assets/crystal-D1dlICFe.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";import{a as u}from"./ruby-BhDJe4uD.js";function d(t,e){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var c=u,i=o;o.displayName="crystal";o.aliases=[];function o(t){t.register(c),function(e){e.languages.crystal=e.languages.extend("ruby",{keyword:[/\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/,operator:[/->/,e.languages.ruby.operator],punctuation:/[(){}[\].,;\\]/}),e.languages.insertBefore("crystal","string-literal",{attribute:{pattern:/@\[.*?\]/,inside:{delimiter:{pattern:/^@\[|\]$/,alias:"punctuation"},attribute:{pattern:/^(\s*)\w+/,lookbehind:!0,alias:"class-name"},args:{pattern:/\S(?:[\s\S]*\S)?/,inside:e.languages.crystal}}},expansion:{pattern:/\{(?:\{.*?\}|%.*?%)\}/,inside:{content:{pattern:/^(\{.)[\s\S]+(?=.\}$)/,lookbehind:!0,inside:e.languages.crystal},delimiter:{pattern:/^\{[\{%]|[\}%]\}$/,alias:"operator"}}},char:{pattern:/'(?:[^\\\r\n]{1,2}|\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\{[A-Fa-f0-9]{1,6}\})))'/,greedy:!0}})}(t)}const f=l(i),g=d({__proto__:null,default:f},[i]);export{g as c}; diff --git a/nanobot/web/dist/assets/csharp-7kLA39Gy.js b/nanobot/web/dist/assets/csharp-7kLA39Gy.js deleted file mode 100644 index ce84c48..0000000 --- a/nanobot/web/dist/assets/csharp-7kLA39Gy.js +++ /dev/null @@ -1 +0,0 @@ -import{g as W}from"./syntax-highlight-CQw1bBY6.js";function Z(d,t){for(var r=0;re[a]})}}}return Object.freeze(Object.defineProperty(d,Symbol.toStringTag,{value:"Module"}))}var C=k;k.displayName="csharp";k.aliases=["dotnet","cs"];function k(d){(function(t){function r(n,c){return n.replace(/<<(\d+)>>/g,function(y,U){return"(?:"+c[+U]+")"})}function e(n,c,y){return RegExp(r(n,c),"")}function a(n,c){for(var y=0;y>/g,function(){return"(?:"+n+")"});return n.replace(/<>/g,"[^\\s\\S]")}var s={type:"bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",typeDeclaration:"class enum interface record struct",contextual:"add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",other:"abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield"};function p(n){return"\\b(?:"+n.trim().replace(/ /g,"|")+")\\b"}var w=p(s.typeDeclaration),g=RegExp(p(s.type+" "+s.typeDeclaration+" "+s.contextual+" "+s.other)),T=p(s.typeDeclaration+" "+s.contextual+" "+s.other),z=p(s.type+" "+s.typeDeclaration+" "+s.other),b=a(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),h=a(/\((?:[^()]|<>)*\)/.source,2),i=/@?\b[A-Za-z_]\w*\b/.source,f=r(/<<0>>(?:\s*<<1>>)?/.source,[i,b]),u=r(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[T,f]),v=/\[\s*(?:,\s*)*\]/.source,A=r(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[u,v]),K=r(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[b,h,v]),N=r(/\(<<0>>+(?:,<<0>>+)+\)/.source,[K]),l=r(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[N,u,v]),o={keyword:g,punctuation:/[<>()?,.:[\]]/},x=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,_=/"(?:\\.|[^\\"\r\n])*"/.source,F=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;t.languages.csharp=t.languages.extend("clike",{string:[{pattern:e(/(^|[^$\\])<<0>>/.source,[F]),lookbehind:!0,greedy:!0},{pattern:e(/(^|[^@$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:e(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[u]),lookbehind:!0,inside:o},{pattern:e(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[i,l]),lookbehind:!0,inside:o},{pattern:e(/(\busing\s+)<<0>>(?=\s*=)/.source,[i]),lookbehind:!0},{pattern:e(/(\b<<0>>\s+)<<1>>/.source,[w,f]),lookbehind:!0,inside:o},{pattern:e(/(\bcatch\s*\(\s*)<<0>>/.source,[u]),lookbehind:!0,inside:o},{pattern:e(/(\bwhere\s+)<<0>>/.source,[i]),lookbehind:!0},{pattern:e(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[A]),lookbehind:!0,inside:o},{pattern:e(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[l,z,i]),inside:o}],keyword:g,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),t.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),t.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:e(/([(,]\s*)<<0>>(?=\s*:)/.source,[i]),lookbehind:!0,alias:"punctuation"}}),t.languages.insertBefore("csharp","class-name",{namespace:{pattern:e(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[i]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:e(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[h]),lookbehind:!0,alias:"class-name",inside:o},"return-type":{pattern:e(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[l,u]),inside:o,alias:"class-name"},"constructor-invocation":{pattern:e(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[l]),lookbehind:!0,inside:o,alias:"class-name"},"generic-method":{pattern:e(/<<0>>\s*<<1>>(?=\s*\()/.source,[i,b]),inside:{function:e(/^<<0>>/.source,[i]),generic:{pattern:RegExp(b),alias:"class-name",inside:o}}},"type-list":{pattern:e(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[w,f,i,l,g.source,h,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:e(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[f,h]),lookbehind:!0,greedy:!0,inside:t.languages.csharp},keyword:g,"class-name":{pattern:RegExp(l),greedy:!0,inside:o},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var S=_+"|"+x,E=r(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[S]),$=a(r(/[^"'/()]|<<0>>|\(<>*\)/.source,[E]),2),R=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,M=r(/<<0>>(?:\s*\(<<1>>*\))?/.source,[u,$]);t.languages.insertBefore("csharp","class-name",{attribute:{pattern:e(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[R,M]),lookbehind:!0,greedy:!0,inside:{target:{pattern:e(/^<<0>>(?=\s*:)/.source,[R]),alias:"keyword"},"attribute-arguments":{pattern:e(/\(<<0>>*\)/.source,[$]),inside:t.languages.csharp},"class-name":{pattern:RegExp(u),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var m=/:[^}\r\n]+/.source,D=a(r(/[^"'/()]|<<0>>|\(<>*\)/.source,[E]),2),j=r(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[D,m]),I=a(r(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[S]),2),O=r(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[I,m]);function B(n,c){return{interpolation:{pattern:e(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[n]),lookbehind:!0,inside:{"format-string":{pattern:e(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[c,m]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:t.languages.csharp}}},string:/[\s\S]+/}}t.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:e(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[j]),lookbehind:!0,greedy:!0,inside:B(j,D)},{pattern:e(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[O]),lookbehind:!0,greedy:!0,inside:B(O,I)}],char:{pattern:RegExp(x),greedy:!0}}),t.languages.dotnet=t.languages.cs=t.languages.csharp})(d)}const q=W(C),H=Z({__proto__:null,default:q},[C]);export{C as a,H as c}; diff --git a/nanobot/web/dist/assets/cshtml-Ci0gEMX4.js b/nanobot/web/dist/assets/cshtml-Ci0gEMX4.js deleted file mode 100644 index 5e639b6..0000000 --- a/nanobot/web/dist/assets/cshtml-Ci0gEMX4.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";import{a as w}from"./csharp-7kLA39Gy.js";function k(a,r){for(var c=0;ct[s]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var x=w,f=g;g.displayName="cshtml";g.aliases=["razor"];function g(a){a.register(x),function(r){var c=/\/(?![/*])|\/\/.*[\r\n]|\/\*[^*]*(?:\*(?!\/)[^*]*)*\*\//.source,t=/@(?!")|"(?:[^\r\n\\"]|\\.)*"|@"(?:[^\\"]|""|\\[\s\S])*"(?!")/.source+"|"+/'(?:(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'|(?=[^\\](?!')))/.source;function s(u,y){for(var p=0;p/g,function(){return"(?:"+u+")"});return u.replace(//g,"[^\\s\\S]").replace(//g,"(?:"+t+")").replace(//g,"(?:"+c+")")}var e=s(/\((?:[^()'"@/]|||)*\)/.source,2),d=s(/\[(?:[^\[\]'"@/]|||)*\]/.source,2),o=s(/\{(?:[^{}'"@/]|||)*\}/.source,2),m=s(/<(?:[^<>'"@/]|||)*>/.source,2),n=/(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?/.source,l=/(?!\d)[^\s>\/=$<%]+/.source+n+/\s*\/?>/.source,h=/\B@?/.source+"(?:"+/<([a-zA-Z][\w:]*)/.source+n+/\s*>/.source+"(?:"+(/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+l+"|"+s(/<\1/.source+n+/\s*>/.source+"(?:"+(/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+l+"|")+")*"+/<\/\1\s*>/.source,2))+")*"+/<\/\1\s*>/.source+"|"+/r[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var i=n;n.displayName="csp";n.aliases=[];function n(t){(function(s){function e(r){return RegExp(/([ \t])/.source+"(?:"+r+")"+/(?=[\s;]|$)/.source,"i")}s.languages.csp={directive:{pattern:/(^|[\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\s;]|$)/i,lookbehind:!0,alias:"property"},scheme:{pattern:e(/[a-z][a-z0-9.+-]*:/.source),lookbehind:!0},none:{pattern:e(/'none'/.source),lookbehind:!0,alias:"keyword"},nonce:{pattern:e(/'nonce-[-+/\w=]+'/.source),lookbehind:!0,alias:"number"},hash:{pattern:e(/'sha(?:256|384|512)-[-+/\w=]+'/.source),lookbehind:!0,alias:"number"},host:{pattern:e(/[a-z][a-z0-9.+-]*:\/\/[^\s;,']*/.source+"|"+/\*[^\s;,']*/.source+"|"+/[a-z0-9-]+(?:\.[a-z0-9-]+)+(?::[\d*]+)?(?:\/[^\s;,']*)?/.source),lookbehind:!0,alias:"url",inside:{important:/\*/}},keyword:[{pattern:e(/'unsafe-[a-z-]+'/.source),lookbehind:!0,alias:"unsafe"},{pattern:e(/'[a-z-]+'/.source),lookbehind:!0,alias:"safe"}],punctuation:/;/}})(t)}const l=c(i),f=u({__proto__:null,default:l},[i]);export{f as c}; diff --git a/nanobot/web/dist/assets/css-extras-QWPSaDSs.js b/nanobot/web/dist/assets/css-extras-QWPSaDSs.js deleted file mode 100644 index f91e213..0000000 --- a/nanobot/web/dist/assets/css-extras-QWPSaDSs.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(i,e){for(var t=0;tr[a]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="cssExtras";o.aliases=[];function o(i){(function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,r;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:r={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp(`\\[(?:[^[\\]"']|`+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=r,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var a={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:a,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:a,number:n})})(i)}const d=s(l),h=u({__proto__:null,default:d},[l]);export{h as c}; diff --git a/nanobot/web/dist/assets/csv-CYRvlPLy.js b/nanobot/web/dist/assets/csv-CYRvlPLy.js deleted file mode 100644 index 8708ae0..0000000 --- a/nanobot/web/dist/assets/csv-CYRvlPLy.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function u(e,n){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=s;s.displayName="csv";s.aliases=[];function s(e){e.languages.csv={value:/[^\r\n,"]+|"(?:[^"]|"")*"(?!")/,punctuation:/,/}}const i=f(c),g=u({__proto__:null,default:i},[c]);export{g as c}; diff --git a/nanobot/web/dist/assets/cypher-HwS91afO.js b/nanobot/web/dist/assets/cypher-HwS91afO.js deleted file mode 100644 index c9b311c..0000000 --- a/nanobot/web/dist/assets/cypher-HwS91afO.js +++ /dev/null @@ -1 +0,0 @@ -import{g as N}from"./syntax-highlight-CQw1bBY6.js";function i(e,a){for(var n=0;nr[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="cypher";o.aliases=[];function o(e){e.languages.cypher={comment:/\/\/.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,greedy:!0},"class-name":{pattern:/(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,lookbehind:!0,greedy:!0},relationship:{pattern:/(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,lookbehind:!0,greedy:!0,alias:"property"},identifier:{pattern:/`(?:[^`\\\r\n])*`/,greedy:!0},variable:/\$\w+/,keyword:/\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,function:/\b\w+\b(?=\s*\()/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,operator:/:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,punctuation:/[()[\]{},;.]/}}const A=N(s),S=i({__proto__:null,default:A},[s]);export{S as c}; diff --git a/nanobot/web/dist/assets/d-CWnwIaRk.js b/nanobot/web/dist/assets/d-CWnwIaRk.js deleted file mode 100644 index 673eb27..0000000 --- a/nanobot/web/dist/assets/d-CWnwIaRk.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function d(e,s){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=n;n.displayName="d";n.aliases=[];function n(e){e.languages.d=e.languages.extend("clike",{comment:[{pattern:/^\s*#!.+/,greedy:!0},{pattern:RegExp(/(^|[^\\])/.source+"(?:"+[/\/\+(?:\/\+(?:[^+]|\+(?!\/))*\+\/|(?!\/\+)[\s\S])*?\+\//.source,/\/\/.*/.source,/\/\*[\s\S]*?\*\//.source].join("|")+")"),lookbehind:!0,greedy:!0}],string:[{pattern:RegExp([/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/.source,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/.source,/\bq"((?!\d)\w+)$[\s\S]*?^\1"/.source,/\bq"(.)[\s\S]*?\2"/.source,/(["`])(?:\\[\s\S]|(?!\3)[^\\])*\3[cwd]?/.source].join("|"),"m"),greedy:!0},{pattern:/\bq\{(?:\{[^{}]*\}|[^{}])*\}/,greedy:!0,alias:"token-string"}],keyword:/\$|\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\b/,number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i,lookbehind:!0}],operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),e.languages.insertBefore("d","string",{char:/'(?:\\(?:\W|\w+)|[^\\])'/}),e.languages.insertBefore("d","keyword",{property:/\B@\w*/}),e.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}})}const c=u(i),f=d({__proto__:null,default:c},[i]);export{f as d}; diff --git a/nanobot/web/dist/assets/dart-ug61qYQq.js b/nanobot/web/dist/assets/dart-ug61qYQq.js deleted file mode 100644 index e38f196..0000000 --- a/nanobot/web/dist/assets/dart-ug61qYQq.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function c(n,e){for(var r=0;ra[t]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var o=i;i.displayName="dart";i.aliases=[];function i(n){(function(e){var r=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],a=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,t={pattern:RegExp(a+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}};e.languages.dart=e.languages.extend("clike",{"class-name":[t,{pattern:RegExp(a+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:t.inside}],keyword:r,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),e.languages.insertBefore("dart","string",{"string-literal":{pattern:/r?(?:("""|''')[\s\S]*?\1|(["'])(?:\\.|(?!\2)[^\\\r\n])*\2(?!\2))/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,lookbehind:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.dart}}},string:/[\s\S]+/}},string:void 0}),e.languages.insertBefore("dart","class-name",{metadata:{pattern:/@\w+/,alias:"function"}}),e.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":t,keyword:r,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})})(n)}const l=d(o),p=c({__proto__:null,default:l},[o]);export{p as d}; diff --git a/nanobot/web/dist/assets/dataweave-Cd0RzI6P.js b/nanobot/web/dist/assets/dataweave-Cd0RzI6P.js deleted file mode 100644 index be156d9..0000000 --- a/nanobot/web/dist/assets/dataweave-Cd0RzI6P.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function s(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var d=u;u.displayName="dataweave";u.aliases=[];function u(e){(function(a){a.languages.dataweave={url:/\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,property:{pattern:/(?:\b\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\b\w+)(?=\s*[:@])/,greedy:!0},string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},"mime-type":/\b(?:application|audio|image|multipart|text|video)\/[\w+-]+/,date:{pattern:/\|[\w:+-]+\|/,greedy:!0},comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],regex:{pattern:/\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,greedy:!0},keyword:/\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\b/,function:/\b[A-Z_]\w*(?=\s*\()/i,number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\];(),.:@]/,operator:/<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|!|\?/,boolean:/\b(?:false|true)\b/}})(e)}const p=i(d),b=s({__proto__:null,default:p},[d]);export{b as d}; diff --git a/nanobot/web/dist/assets/dax-CgXL2tQ5.js b/nanobot/web/dist/assets/dax-CgXL2tQ5.js deleted file mode 100644 index ea02e72..0000000 --- a/nanobot/web/dist/assets/dax-CgXL2tQ5.js +++ /dev/null @@ -1 +0,0 @@ -import{g as L}from"./syntax-highlight-CQw1bBY6.js";function C(E,O){for(var N=0;NT[A]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var I=S;S.displayName="dax";S.aliases=[];function S(E){E.languages.dax={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/,lookbehind:!0},"data-field":{pattern:/'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/,alias:"symbol"},measure:{pattern:/\[[ \w\xA0-\uFFFF]+\]/,alias:"constant"},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},function:/\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i,keyword:/\b(?:DEFINE|EVALUATE|MEASURE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i,boolean:{pattern:/\b(?:FALSE|NULL|TRUE)\b/i,alias:"constant"},number:/\b\d+(?:\.\d*)?|\B\.\d+\b/,operator:/:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i,punctuation:/[;\[\](){}`,.]/}}const D=L(I),M=C({__proto__:null,default:D},[I]);export{M as d}; diff --git a/nanobot/web/dist/assets/dhall-ZCAX0bZP.js b/nanobot/web/dist/assets/dhall-ZCAX0bZP.js deleted file mode 100644 index 11532f2..0000000 --- a/nanobot/web/dist/assets/dhall-ZCAX0bZP.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(e,l){for(var n=0;nt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=i;i.displayName="dhall";i.aliases=[];function i(e){e.languages.dhall={comment:/--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,string:{pattern:/"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,alias:"language-dhall",inside:null},punctuation:/\$\{|\}/}}}},label:{pattern:/`[^`]*`/,greedy:!0},url:{pattern:/\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,greedy:!0},env:{pattern:/\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,greedy:!0,inside:{function:/^env/,operator:/^:/,variable:/[\s\S]+/}},hash:{pattern:/\bsha256:[\da-fA-F]{64}\b/,inside:{function:/sha256/,operator:/:/,number:/[\da-fA-F]{64}/}},keyword:/\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,builtin:/\b(?:None|Some)\b/,boolean:/\b(?:False|True)\b/,number:/\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,operator:/\/\\|\/\/\\\\|&&|\|\||===|[!=]=|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,punctuation:/\.\.|[{}\[\](),./]/,"class-name":/\b[A-Z]\w*\b/},e.languages.dhall.string.inside.interpolation.inside.expression.inside=e.languages.dhall}const d=s(o),p=u({__proto__:null,default:d},[o]);export{p as d}; diff --git a/nanobot/web/dist/assets/diff-C0dmbTlT.js b/nanobot/web/dist/assets/diff-C0dmbTlT.js deleted file mode 100644 index f23a0e4..0000000 --- a/nanobot/web/dist/assets/diff-C0dmbTlT.js +++ /dev/null @@ -1,3 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function s(a,i){for(var t=0;te[r]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var o=n;n.displayName="diff";n.aliases=[];function n(a){(function(i){i.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach(function(e){var r=t[e],f=[];/^\w+$/.test(e)||f.push(/\w+/.exec(e)[0]),e==="diff"&&f.push("bold"),i.languages.diff[e]={pattern:RegExp("^(?:["+r+`].*(?:\r -?| -|(?![\\s\\S])))+`,"m"),alias:f,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(e)[0]}}}}),Object.defineProperty(i.languages.diff,"PREFIXES",{value:t})})(a)}const l=d(o),u=s({__proto__:null,default:l},[o]);export{u as d}; diff --git a/nanobot/web/dist/assets/django-DT-tv6V8.js b/nanobot/web/dist/assets/django-DT-tv6V8.js deleted file mode 100644 index 8d25c19..0000000 --- a/nanobot/web/dist/assets/django-DT-tv6V8.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";import{a as s}from"./markup-templating-C7tXeHgl.js";function u(o,t){for(var n=0;na[e]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var g=s,l=i;i.displayName="django";i.aliases=["jinja2"];function i(o){o.register(g),function(t){t.languages.django={comment:/^\{#[\s\S]*?#\}$/,tag:{pattern:/(^\{%[+-]?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%][+-]?|[+-]?[}%]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},filter:{pattern:/(\|)\w+/,lookbehind:!0,alias:"function"},test:{pattern:/(\bis\s+(?:not\s+)?)(?!not\b)\w+/,lookbehind:!0,alias:"function"},function:/\b[a-z_]\w+(?=\s*\()/i,keyword:/\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,number:/\b\d+(?:\.\d+)?\b/,boolean:/[Ff]alse|[Nn]one|[Tt]rue/,variable:/\b\w+\b/,punctuation:/[{}[\](),.:;]/};var n=/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}|\{#[\s\S]*?#\}/g,a=t.languages["markup-templating"];t.hooks.add("before-tokenize",function(e){a.buildPlaceholders(e,"django",n)}),t.hooks.add("after-tokenize",function(e){a.tokenizePlaceholders(e,"django")}),t.languages.jinja2=t.languages.django,t.hooks.add("before-tokenize",function(e){a.buildPlaceholders(e,"jinja2",n)}),t.hooks.add("after-tokenize",function(e){a.tokenizePlaceholders(e,"jinja2")})}(o)}const f=d(l),b=u({__proto__:null,default:f},[l]);export{b as d}; diff --git a/nanobot/web/dist/assets/dns-zone-file-p5ciu9jQ.js b/nanobot/web/dist/assets/dns-zone-file-p5ciu9jQ.js deleted file mode 100644 index 79166a7..0000000 --- a/nanobot/web/dist/assets/dns-zone-file-p5ciu9jQ.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function N(e,s){for(var o=0;ot[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var S=a;a.displayName="dnsZoneFile";a.aliases=[];function a(e){e.languages["dns-zone-file"]={comment:/;.*/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},variable:[{pattern:/(^\$ORIGIN[ \t]+)\S+/m,lookbehind:!0},{pattern:/(^|\s)@(?=\s|$)/,lookbehind:!0}],keyword:/^\$(?:INCLUDE|ORIGIN|TTL)(?=\s|$)/m,class:{pattern:/(^|\s)(?:CH|CS|HS|IN)(?=\s|$)/,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,lookbehind:!0,alias:"keyword"},punctuation:/[()]/},e.languages["dns-zone"]=e.languages["dns-zone-file"]}const A=l(S),I=N({__proto__:null,default:A},[S]);export{I as d}; diff --git a/nanobot/web/dist/assets/docker-_7HsMJvS.js b/nanobot/web/dist/assets/docker-_7HsMJvS.js deleted file mode 100644 index fec49a4..0000000 --- a/nanobot/web/dist/assets/docker-_7HsMJvS.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function S(n,t){for(var o=0;or[e]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var p=c;c.displayName="docker";c.aliases=["dockerfile"];function c(n){(function(t){var o=/\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source,r=/(?:[ \t]+(?![ \t])(?:)?|)/.source.replace(//g,function(){return o}),e=/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source,a=/--[\w-]+=(?:|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(//g,function(){return e}),s={pattern:RegExp(e),greedy:!0},d={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function u(i,g){return i=i.replace(//g,function(){return a}).replace(//g,function(){return r}),RegExp(i,g)}t.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:u(/(^(?:ONBUILD)?\w+)(?:)*/.source,"i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[s,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:u(/(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\b/.source,"i"),lookbehind:!0,greedy:!0},{pattern:u(/(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\]+)AS/.source,"i"),lookbehind:!0,greedy:!0},{pattern:u(/(^ONBUILD)\w+/.source,"i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:d,string:s,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:d},t.languages.dockerfile=t.languages.docker})(n)}const f=l(p),O=S({__proto__:null,default:f},[p]);export{O as d}; diff --git a/nanobot/web/dist/assets/dot-DachZs3x.js b/nanobot/web/dist/assets/dot-DachZs3x.js deleted file mode 100644 index a291396..0000000 --- a/nanobot/web/dist/assets/dot-DachZs3x.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function g(a,r){for(var n=0;ne[t]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var i=u;u.displayName="dot";u.aliases=["gv"];function u(a){(function(r){var n="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",e={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:r.languages.markup}};function t(o,s){return RegExp(o.replace(//g,function(){return n}),s)}r.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:t(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:e},"attr-value":{pattern:t(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:e},"attr-name":{pattern:t(/([\[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:e},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:t(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:e},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},r.languages.gv=r.languages.dot})(a)}const l=d(i),c=g({__proto__:null,default:l},[i]);export{c as d}; diff --git a/nanobot/web/dist/assets/ebnf-DNdTYV7g.js b/nanobot/web/dist/assets/ebnf-DNdTYV7g.js deleted file mode 100644 index f30eeb5..0000000 --- a/nanobot/web/dist/assets/ebnf-DNdTYV7g.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function l(e,i){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="ebnf";o.aliases=[];function o(e){e.languages.ebnf={comment:/\(\*[\s\S]*?\*\)/,string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},special:{pattern:/\?[^?\r\n]*\?/,greedy:!0,alias:"class-name"},definition:{pattern:/^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,lookbehind:!0,alias:["rule","keyword"]},rule:/\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,punctuation:/\([:/]|[:/]\)|[.,;()[\]{}]/,operator:/[-=|*/!]/}}const u=f(s),p=l({__proto__:null,default:u},[s]);export{p as e}; diff --git a/nanobot/web/dist/assets/editorconfig-BcesPHUK.js b/nanobot/web/dist/assets/editorconfig-BcesPHUK.js deleted file mode 100644 index 4fa254b..0000000 --- a/nanobot/web/dist/assets/editorconfig-BcesPHUK.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function f(e,i){for(var r=0;rt[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=a;a.displayName="editorconfig";a.aliases=[];function a(e){e.languages.editorconfig={comment:/[;#].*/,section:{pattern:/(^[ \t]*)\[.+\]/m,lookbehind:!0,alias:"selector",inside:{regex:/\\\\[\[\]{},!?.*]/,operator:/[!?]|\.\.|\*{1,2}/,punctuation:/[\[\]{},]/}},key:{pattern:/(^[ \t]*)[^\s=]+(?=[ \t]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/=.*/,alias:"attr-value",inside:{punctuation:/^=/}}}}const l=c(s),g=f({__proto__:null,default:l},[s]);export{g as e}; diff --git a/nanobot/web/dist/assets/eiffel-DYdcFPqH.js b/nanobot/web/dist/assets/eiffel-DYdcFPqH.js deleted file mode 100644 index 1f744be..0000000 --- a/nanobot/web/dist/assets/eiffel-DYdcFPqH.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function f(e,i){for(var a=0;ar[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="eiffel";o.aliases=[];function o(e){e.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:False|True)\b/i,"class-name":/\b[A-Z][\dA-Z_]*\b/,number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}}const d=l(s),u=f({__proto__:null,default:d},[s]);export{u as e}; diff --git a/nanobot/web/dist/assets/ejs-RvlGfVrQ.js b/nanobot/web/dist/assets/ejs-RvlGfVrQ.js deleted file mode 100644 index 3311500..0000000 --- a/nanobot/web/dist/assets/ejs-RvlGfVrQ.js +++ /dev/null @@ -1 +0,0 @@ -import{g}from"./syntax-highlight-CQw1bBY6.js";import{a as u}from"./markup-templating-C7tXeHgl.js";function i(n,e){for(var t=0;ta[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var p=u,l=s;s.displayName="ejs";s.aliases=["eta"];function s(n){n.register(p),function(e){e.languages.ejs={delimiter:{pattern:/^<%[-_=]?|[-_]?%>$/,alias:"punctuation"},comment:/^#[\s\S]*/,"language-javascript":{pattern:/[\s\S]+/,inside:e.languages.javascript}},e.hooks.add("before-tokenize",function(t){var a=/<%(?!%)[\s\S]+?%>/g;e.languages["markup-templating"].buildPlaceholders(t,"ejs",a)}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"ejs")}),e.languages.eta=e.languages.ejs}(n)}const c=g(l),j=i({__proto__:null,default:c},[l]);export{j as e}; diff --git a/nanobot/web/dist/assets/elixir-tXW383vs.js b/nanobot/web/dist/assets/elixir-tXW383vs.js deleted file mode 100644 index 415fbc6..0000000 --- a/nanobot/web/dist/assets/elixir-tXW383vs.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,n){for(var a=0;ar[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="elixir";o.aliases=[];function o(e){e.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:false|nil|true)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},e.languages.elixir.string.forEach(function(n){n.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.elixir}}}})}const d=l(s),p=u({__proto__:null,default:d},[s]);export{p as e}; diff --git a/nanobot/web/dist/assets/elm-TT8FZPv0.js b/nanobot/web/dist/assets/elm-TT8FZPv0.js deleted file mode 100644 index 8431d42..0000000 --- a/nanobot/web/dist/assets/elm-TT8FZPv0.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,s){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="elm";o.aliases=[];function o(e){e.languages.elm={comment:/--.*|\{-[\s\S]*?-\}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+|u\{[0-9a-fA-F]+\}))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|exposing|import)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}}const f=l(i),p=u({__proto__:null,default:f},[i]);export{p as e}; diff --git a/nanobot/web/dist/assets/erb-CdEw_O2i.js b/nanobot/web/dist/assets/erb-CdEw_O2i.js deleted file mode 100644 index 256d830..0000000 --- a/nanobot/web/dist/assets/erb-CdEw_O2i.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";import{a as g}from"./ruby-BhDJe4uD.js";import{a as s}from"./markup-templating-C7tXeHgl.js";function b(r,e){for(var t=0;ta[n]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var f=g,p=s,i=u;u.displayName="erb";u.aliases=[];function u(r){r.register(f),r.register(p),function(e){e.languages.erb={delimiter:{pattern:/^(\s*)<%=?|%>(?=\s*$)/,lookbehind:!0,alias:"punctuation"},ruby:{pattern:/\s*\S[\s\S]*/,alias:"language-ruby",inside:e.languages.ruby}},e.hooks.add("before-tokenize",function(t){var a=/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s(?:[^\r\n]|[\r\n](?!=end))*[\r\n]=end)+?%>/g;e.languages["markup-templating"].buildPlaceholders(t,"erb",a)}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"erb")})}(r)}const c=l(i),k=b({__proto__:null,default:c},[i]);export{k as e}; diff --git a/nanobot/web/dist/assets/erlang-CDY0uWBC.js b/nanobot/web/dist/assets/erlang-CDY0uWBC.js deleted file mode 100644 index f00363a..0000000 --- a/nanobot/web/dist/assets/erlang-CDY0uWBC.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";function u(e,l){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="erlang";o.aliases=[];function o(e){e.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:after|case|catch|end|fun|if|of|receive|try|when)\b/,number:[/\$\\?./,/\b\d+#[a-z0-9]+/i,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}const s=b(i),f=u({__proto__:null,default:s},[i]);export{f as e}; diff --git a/nanobot/web/dist/assets/etlua-DaF4ktOC.js b/nanobot/web/dist/assets/etlua-DaF4ktOC.js deleted file mode 100644 index b63b31d..0000000 --- a/nanobot/web/dist/assets/etlua-DaF4ktOC.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";import{a as g}from"./lua-CiOFnLEM.js";import{a as f}from"./markup-templating-C7tXeHgl.js";function p(t,e){for(var a=0;ar[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var s=g,c=f,u=l;l.displayName="etlua";l.aliases=[];function l(t){t.register(s),t.register(c),function(e){e.languages.etlua={delimiter:{pattern:/^<%[-=]?|-?%>$/,alias:"punctuation"},"language-lua":{pattern:/[\s\S]+/,inside:e.languages.lua}},e.hooks.add("before-tokenize",function(a){var r=/<%[\s\S]+?%>/g;e.languages["markup-templating"].buildPlaceholders(a,"etlua",r)}),e.hooks.add("after-tokenize",function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"etlua")})}(t)}const d=i(u),b=p({__proto__:null,default:d},[u]);export{b as e}; diff --git a/nanobot/web/dist/assets/excel-formula-D92jXze4.js b/nanobot/web/dist/assets/excel-formula-D92jXze4.js deleted file mode 100644 index 26f54e4..0000000 --- a/nanobot/web/dist/assets/excel-formula-D92jXze4.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function s(e,l){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="excelFormula";o.aliases=[];function o(e){e.languages["excel-formula"]={comment:{pattern:/(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},reference:{pattern:/(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,greedy:!0,alias:"string",inside:{operator:/!$/,punctuation:/'/,sheet:{pattern:/[^[\]]+$/,alias:"function"},file:{pattern:/\[[^[\]]+\]$/,inside:{punctuation:/[[\]]/}},path:/[\s\S]+/}},"function-name":{pattern:/\b[A-Z]\w*(?=\()/i,alias:"keyword"},range:{pattern:/\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,alias:"property",inside:{operator:/:/,cell:/\$?[A-Z]+\$?\d+/i,column:/\$?[A-Z]+/i,row:/\$?\d+/}},cell:{pattern:/\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,alias:"property"},number:/(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,boolean:/\b(?:FALSE|TRUE)\b/i,operator:/[-+*/^%=&,]|<[=>]?|>=?/,punctuation:/[[\]();{}|]/},e.languages.xlsx=e.languages.xls=e.languages["excel-formula"]}const c=u(i),d=s({__proto__:null,default:c},[i]);export{d as e}; diff --git a/nanobot/web/dist/assets/factor-eVzxi7V4.js b/nanobot/web/dist/assets/factor-eVzxi7V4.js deleted file mode 100644 index ebaa060..0000000 --- a/nanobot/web/dist/assets/factor-eVzxi7V4.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function m(i,a){for(var r=0;re[t]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var p=o;o.displayName="factor";o.aliases=[];function o(i){(function(a){var r={function:/\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/},e={number:/\\[^\s']|%\w/},t={comment:[{pattern:/(^|\s)(?:! .*|!$)/,lookbehind:!0,inside:r},{pattern:/(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,inside:r}],number:[{pattern:/(^|\s)[+-]?\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)-\d+-\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,lookbehind:!0}],regexp:{pattern:/(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,lookbehind:!0,alias:"number",inside:{variable:/\\\S/,keyword:/[+?*\[\]^$(){}.|]/,operator:{pattern:/(\/)[idmsr]+(?:-[idmsr]+)?/,lookbehind:!0}}},boolean:{pattern:/(^|\s)[tf](?=\s|$)/,lookbehind:!0},"custom-string":{pattern:/(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:/\\\S|%\w|\//}},"multiline-string":[{pattern:/(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:e.number,"semicolon-or-setlocal":{pattern:/([\r\n][ \t]*);(?=\s|$)/,lookbehind:!0,alias:"function"}}},{pattern:/(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:e},{pattern:/(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:e}],"special-using":{pattern:/(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,lookbehind:!0,alias:"function",inside:{string:{pattern:/(\s)[^:\s]+/,lookbehind:!0}}},"stack-effect-delimiter":[{pattern:/(^|\s)(?:call|eval|execute)?\((?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)--(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\)(?=\s|$)/,lookbehind:!0,alias:"operator"}],combinators:{pattern:null,lookbehind:!0,alias:"keyword"},"kernel-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"sequences-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"math-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"constructor-word":{pattern:/(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,lookbehind:!0,alias:"keyword"},"other-builtin-syntax":{pattern:null,lookbehind:!0,alias:"operator"},"conventionally-named-word":{pattern:/(^|\s)(?!")(?:(?:change|new|set|with)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,lookbehind:!0,alias:"keyword"},"colon-syntax":{pattern:/(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"function"},"semicolon-or-setlocal":{pattern:/(\s)(?:;|:>)(?=\s|$)/,lookbehind:!0,alias:"function"},"curly-brace-literal-delimiter":[{pattern:/(^|\s)[a-z]*\{(?=\s)/i,lookbehind:!0,alias:"operator"},{pattern:/(\s)\}(?=\s|$)/,lookbehind:!0,alias:"operator"}],"quotation-delimiter":[{pattern:/(^|\s)\[(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\](?=\s|$)/,lookbehind:!0,alias:"operator"}],"normal-word":{pattern:/(^|\s)[^"\s]\S*(?=\s|$)/,lookbehind:!0},string:{pattern:/"(?:\\\S|[^"\\])*"/,greedy:!0,inside:e}},n=function(s){return(s+"").replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1")},l=function(s){return new RegExp("(^|\\s)(?:"+s.map(n).join("|")+")(?=\\s|$)")},u={"kernel-builtin":["or","2nipd","4drop","tuck","wrapper","nip","wrapper?","callstack>array","die","dupd","callstack","callstack?","3dup","hashcode","pick","4nip","build",">boolean","nipd","clone","5nip","eq?","?","=","swapd","2over","clear","2dup","get-retainstack","not","tuple?","dup","3nipd","call","-rotd","object","drop","assert=","assert?","-rot","execute","boa","get-callstack","curried?","3drop","pickd","overd","over","roll","3nip","swap","and","2nip","rotd","throw","(clone)","hashcode*","spin","reach","4dup","equal?","get-datastack","assert","2drop","","boolean?","identity-hashcode","identity-tuple?","null","composed?","new","5drop","rot","-roll","xor","identity-tuple","boolean"],"other-builtin-syntax":["=======","recursive","flushable",">>","<<<<<<","M\\","B","PRIVATE>","\\","======","final","inline","delimiter","deprecated",">>>>>","<<<<<<<","parse-complex","malformed-complex","read-only",">>>>>>>","call-next-method","<<","foldable","$","$[","${"],"sequences-builtin":["member-eq?","mismatch","append","assert-sequence=","longer","repetition","clone-like","3sequence","assert-sequence?","last-index-from","reversed","index-from","cut*","pad-tail","join-as","remove-eq!","concat-as","but-last","snip","nths","nth","sequence","longest","slice?","","remove-nth","tail-slice","empty?","tail*","member?","virtual-sequence?","set-length","drop-prefix","iota","unclip","bounds-error?","unclip-last-slice","non-negative-integer-expected","non-negative-integer-expected?","midpoint@","longer?","?set-nth","?first","rest-slice","prepend-as","prepend","fourth","sift","subseq-start","new-sequence","?last","like","first4","1sequence","reverse","slice","virtual@","repetition?","set-last","index","4sequence","max-length","set-second","immutable-sequence","first2","first3","supremum","unclip-slice","suffix!","insert-nth","tail","3append","short","suffix","concat","flip","immutable?","reverse!","2sequence","sum","delete-all","indices","snip-slice","","check-slice","sequence?","head","append-as","halves","sequence=","collapse-slice","?second","slice-error?","product","bounds-check?","bounds-check","immutable","virtual-exemplar","harvest","remove","pad-head","last","set-fourth","cartesian-product","remove-eq","shorten","shorter","reversed?","shorter?","shortest","head-slice","pop*","tail-slice*","but-last-slice","iota?","append!","cut-slice","new-resizable","head-slice*","sequence-hashcode","pop","set-nth","?nth","second","join","immutable-sequence?","","3append-as","virtual-sequence","subseq?","remove-nth!","length","last-index","lengthen","assert-sequence","copy","move","third","first","tail?","set-first","prefix","bounds-error","","exchange","surround","cut","min-length","set-third","push-all","head?","subseq-start-from","delete-slice","rest","sum-lengths","head*","infimum","remove!","glue","slice-error","subseq","push","replace-slice","subseq-as","unclip-last"],"math-builtin":["number=","next-power-of-2","?1+","fp-special?","imaginary-part","float>bits","number?","fp-infinity?","bignum?","fp-snan?","denominator","gcd","*","+","fp-bitwise=","-","u>=","/",">=","bitand","power-of-2?","log2-expects-positive","neg?","<","log2",">","integer?","number","bits>double","2/","zero?","bits>float","float?","shift","ratio?","rect>","even?","ratio","fp-sign","bitnot",">fixnum","complex?","/i","integer>fixnum","/f","sgn",">bignum","next-float","u<","u>","mod","recip","rational",">float","2^","integer","fixnum?","neg","fixnum","sq","bignum",">rect","bit?","fp-qnan?","simple-gcd","complex","","real",">fraction","double>bits","bitor","rem","fp-nan-payload","real-part","log2-expects-positive?","prev-float","align","unordered?","float","fp-nan?","abs","bitxor","integer>fixnum-strict","u<=","odd?","<=","/mod",">integer","real?","rational?","numerator"]};Object.keys(u).forEach(function(s){t[s].pattern=l(u[s])});var d=["2bi","while","2tri","bi*","4dip","both?","same?","tri@","curry","prepose","3bi","?if","tri*","2keep","3keep","curried","2keepd","when","2bi*","2tri*","4keep","bi@","keepdd","do","unless*","tri-curry","if*","loop","bi-curry*","when*","2bi@","2tri@","with","2with","either?","bi","until","3dip","3curry","tri-curry*","tri-curry@","bi-curry","keepd","compose","2dip","if","3tri","unless","tuple","keep","2curry","tri","most","while*","dip","composed","bi-curry@","find-last-from","trim-head-slice","map-as","each-from","none?","trim-tail","partition","if-empty","accumulate*","reject!","find-from","accumulate-as","collector-for-as","reject","map","map-sum","accumulate!","2each-from","follow","supremum-by","map!","unless-empty","collector","padding","reduce-index","replicate-as","infimum-by","trim-tail-slice","count","find-index","filter","accumulate*!","reject-as","map-integers","map-find","reduce","selector","interleave","2map","filter-as","binary-reduce","map-index-as","find","produce","filter!","replicate","cartesian-map","cartesian-each","find-index-from","map-find-last","3map-as","3map","find-last","selector-as","2map-as","2map-reduce","accumulate","each","each-index","accumulate*-as","when-empty","all?","collector-as","push-either","new-like","collector-for","2selector","push-if","2all?","map-reduce","3each","any?","trim-slice","2reduce","change-nth","produce-as","2each","trim","trim-head","cartesian-find","map-index","if-zero","each-integer","unless-zero","(find-integer)","when-zero","find-last-integer","(all-integers?)","times","(each-integer)","find-integer","all-integers?","unless-negative","if-positive","when-positive","when-negative","unless-positive","if-negative","case","2cleave","cond>quot","case>quot","3cleave","wrong-values","to-fixed-point","alist>quot","cond","cleave","call-effect","recursive-hashcode","spread","deep-spread>quot","2||","0||","n||","0&&","2&&","3||","1||","1&&","n&&","3&&","smart-unless*","keep-inputs","reduce-outputs","smart-when*","cleave>array","smart-with","smart-apply","smart-if","inputs/outputs","output>sequence-n","map-outputs","map-reduce-outputs","dropping","output>array","smart-map-reduce","smart-2map-reduce","output>array-n","nullary","inputsequence"];t.combinators.pattern=l(d),a.languages.factor=t})(i)}const b=c(p),f=m({__proto__:null,default:b},[p]);export{f}; diff --git a/nanobot/web/dist/assets/false-D-wV2E1b.js b/nanobot/web/dist/assets/false-D-wV2E1b.js deleted file mode 100644 index a4ac7b2..0000000 --- a/nanobot/web/dist/assets/false-D-wV2E1b.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function i(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=s;s.displayName="$false";s.aliases=[];function s(e){(function(a){a.languages.false={comment:{pattern:/\{[^}]*\}/},string:{pattern:/"[^"]*"/,greedy:!0},"character-code":{pattern:/'(?:[^\r]|\r\n?)/,alias:"number"},"assembler-code":{pattern:/\d+`/,alias:"important"},number:/\d+/,operator:/[-!#$%&'*+,./:;=>?@\\^_`|~ßø]/,punctuation:/\[|\]/,variable:/[a-z]/,"non-standard":{pattern:/[()t[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var a=u;u.displayName="firestoreSecurityRules";u.aliases=[];function u(e){e.languages["firestore-security-rules"]=e.languages.extend("clike",{comment:/\/\/.*/,keyword:/\b(?:allow|function|if|match|null|return|rules_version|service)\b/,operator:/&&|\|\||[<>!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete e.languages["firestore-security-rules"]["class-name"],e.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/\//}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}})}const c=n(a),F=l({__proto__:null,default:c},[a]);export{F as f}; diff --git a/nanobot/web/dist/assets/flow-uvtfM3os.js b/nanobot/web/dist/assets/flow-uvtfM3os.js deleted file mode 100644 index 3fd2538..0000000 --- a/nanobot/web/dist/assets/flow-uvtfM3os.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function s(a,e){for(var n=0;nt[o]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var u=l;l.displayName="flow";l.aliases=[];function l(a){(function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\b/,alias:"tag"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})})(a)}const g=f(u),i=s({__proto__:null,default:g},[u]);export{i as f}; diff --git a/nanobot/web/dist/assets/fortran-BHOACl11.js b/nanobot/web/dist/assets/fortran-BHOACl11.js deleted file mode 100644 index 7ec5c9a..0000000 --- a/nanobot/web/dist/assets/fortran-BHOACl11.js +++ /dev/null @@ -1 +0,0 @@ -import{g as A}from"./syntax-highlight-CQw1bBY6.js";function O(E,N){for(var r=0;re[t]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var L=T;T.displayName="fortran";T.aliases=[];function T(E){E.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:FALSE|TRUE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}}const o=A(L),R=O({__proto__:null,default:o},[L]);export{R as f}; diff --git a/nanobot/web/dist/assets/fsharp-CxtxXbpj.js b/nanobot/web/dist/assets/fsharp-CxtxXbpj.js deleted file mode 100644 index aff8f70..0000000 --- a/nanobot/web/dist/assets/fsharp-CxtxXbpj.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,s){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="fsharp";o.aliases=[];function o(e){e.languages.fsharp=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*(?!\))[\s\S]*?\*\)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?/,greedy:!0},"class-name":{pattern:/(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/,lookbehind:!0,inside:{operator:/->|\*/,punctuation:/\./}},keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\b/,number:[/\b0x[\da-fA-F]+(?:LF|lf|un)?\b/,/\b0b[01]+(?:uy|y)?\b/,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|UL|u[lsy]?)?\b/],operator:/([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/}),e.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(^#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}),e.languages.insertBefore("fsharp","punctuation",{"computation-expression":{pattern:/\b[_a-z]\w*(?=\s*\{)/i,alias:"keyword"}}),e.languages.insertBefore("fsharp","string",{annotation:{pattern:/\[<.+?>\]/,greedy:!0,inside:{punctuation:/^\[<|>\]$/,"class-name":{pattern:/^\w+$|(^|;\s*)[A-Z]\w*(?=\()/,lookbehind:!0},"annotation-content":{pattern:/[\s\S]+/,inside:e.languages.fsharp}}},char:{pattern:/'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/,greedy:!0}})}const u=l(i),c=d({__proto__:null,default:u},[i]);export{c as f}; diff --git a/nanobot/web/dist/assets/ftl-zGG7UOGT.js b/nanobot/web/dist/assets/ftl-zGG7UOGT.js deleted file mode 100644 index b952607..0000000 --- a/nanobot/web/dist/assets/ftl-zGG7UOGT.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";import{a as s}from"./markup-templating-C7tXeHgl.js";function c(o,r){for(var e=0;en[t]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var f=s,l=i;i.displayName="ftl";i.aliases=[];function i(o){o.register(f),function(r){for(var e=/[^<()"']|\((?:)*\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|"(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'/.source,n=0;n<2;n++)e=e.replace(//g,function(){return e});e=e.replace(//g,/[^\s\S]/.source);var t={comment:/<#--[\s\S]*?-->/,string:[{pattern:/\br("|')(?:(?!\1)[^\\]|\\.)*\1/,greedy:!0},{pattern:RegExp(/("|')(?:(?!\1|\$\{)[^\\]|\\.|\$\{(?:(?!\})(?:))*\})*\1/.source.replace(//g,function(){return e})),greedy:!0,inside:{interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\\\)*)\$\{(?:(?!\})(?:))*\}/.source.replace(//g,function(){return e})),lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:null}}}}],keyword:/\b(?:as)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/((?:^|[^?])\?\s*)\w+/,lookbehind:!0,alias:"function"},function:/\b\w+(?=\s*\()/,number:/\b\d+(?:\.\d+)?\b/,operator:/\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,punctuation:/[,;.:()[\]{}]/};t.string[1].inside.interpolation.inside.rest=t,r.languages.ftl={"ftl-comment":{pattern:/^<#--[\s\S]*/,alias:"comment"},"ftl-directive":{pattern:/^<[\s\S]+>$/,inside:{directive:{pattern:/(^<\/?)[#@][a-z]\w*/i,lookbehind:!0,alias:"keyword"},punctuation:/^<\/?|\/?>$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:t}}},"ftl-interpolation":{pattern:/^\$\{[\s\S]*\}$/,inside:{punctuation:/^\$\{|\}$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:t}}}},r.hooks.add("before-tokenize",function(a){var p=RegExp(/<#--[\s\S]*?-->|<\/?[#@][a-zA-Z](?:)*?>|\$\{(?:)*?\}/.source.replace(//g,function(){return e}),"gi");r.languages["markup-templating"].buildPlaceholders(a,"ftl",p)}),r.hooks.add("after-tokenize",function(a){r.languages["markup-templating"].tokenizePlaceholders(a,"ftl")})}(o)}const g=u(l),m=c({__proto__:null,default:g},[l]);export{m as f}; diff --git a/nanobot/web/dist/assets/gap-CJ6zqbax.js b/nanobot/web/dist/assets/gap-CJ6zqbax.js deleted file mode 100644 index fa6bbab..0000000 --- a/nanobot/web/dist/assets/gap-CJ6zqbax.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function p(e,i){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=o;o.displayName="gap";o.aliases=[];function o(e){e.languages.gap={shell:{pattern:/^gap>[\s\S]*?(?=^gap>|$(?![\s\S]))/m,greedy:!0,inside:{gap:{pattern:/^(gap>).+(?:(?:\r(?:\n|(?!\n))|\n)>.*)*/,lookbehind:!0,inside:null},punctuation:/^gap>/}},comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(^|[^\\'"])(?:'(?:[^\r\n\\']|\\.){1,10}'|"(?:[^\r\n\\"]|\\.)*"(?!")|"""[\s\S]*?""")/,lookbehind:!0,greedy:!0,inside:{continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"}}},keyword:/\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"},operator:/->|[-+*/^~=!]|<>|[<>]=?|:=|\.\./,punctuation:/[()[\]{},;.:]/},e.languages.gap.shell.inside.gap.inside=e.languages.gap}const d=l(u),g=p({__proto__:null,default:d},[u]);export{g}; diff --git a/nanobot/web/dist/assets/gcode-BkbKHNNP.js b/nanobot/web/dist/assets/gcode-BkbKHNNP.js deleted file mode 100644 index 4842ff0..0000000 --- a/nanobot/web/dist/assets/gcode-BkbKHNNP.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function s(e,c){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var g=a;a.displayName="gcode";a.aliases=[];function a(e){e.languages.gcode={comment:/;.*|\B\(.*?\)\B/,string:{pattern:/"(?:""|[^"])*"/,greedy:!0},keyword:/\b[GM]\d+(?:\.\d+)?\b/,property:/\b[A-Z]/,checksum:{pattern:/(\*)\d+/,lookbehind:!0,alias:"number"},punctuation:/[:*]/}}const u=d(g),f=s({__proto__:null,default:u},[g]);export{f as g}; diff --git a/nanobot/web/dist/assets/gdscript-DeVF3IBO.js b/nanobot/web/dist/assets/gdscript-DeVF3IBO.js deleted file mode 100644 index 05ed9e1..0000000 --- a/nanobot/web/dist/assets/gdscript-DeVF3IBO.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function l(e,o){for(var s=0;st[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=n;n.displayName="gdscript";n.aliases=[];function n(e){e.languages.gdscript={comment:/#.*/,string:{pattern:/@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/,greedy:!0},"class-name":{pattern:/(^(?:class|class_name|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m,lookbehind:!0},keyword:/\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,variable:/\$\w+/,number:[/\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/,/\b(?:INF|NAN|PI|TAU)\b/],constant:/\b[A-Z][A-Z_\d]*\b/,boolean:/\b(?:false|true)\b/,operator:/->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,punctuation:/[.:,;()[\]{}]/}}const p=i(c),d=l({__proto__:null,default:p},[c]);export{d as g}; diff --git a/nanobot/web/dist/assets/gedcom-DuQJUuPq.js b/nanobot/web/dist/assets/gedcom-DuQJUuPq.js deleted file mode 100644 index d45a4e8..0000000 --- a/nanobot/web/dist/assets/gedcom-DuQJUuPq.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function d(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="gedcom";n.aliases=[];function n(e){e.languages.gedcom={"line-value":{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^[\t ]*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}}}const g=s(l),c=d({__proto__:null,default:g},[l]);export{c as g}; diff --git a/nanobot/web/dist/assets/gherkin-B5DuOWCn.js b/nanobot/web/dist/assets/gherkin-B5DuOWCn.js deleted file mode 100644 index 7cd089c..0000000 --- a/nanobot/web/dist/assets/gherkin-B5DuOWCn.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,i){for(var a=0;an[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=r;r.displayName="gherkin";r.aliases=[];function r(e){(function(i){var a=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source;i.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+a+")(?:"+a+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(a),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}})(e)}const d=l(s),k=u({__proto__:null,default:d},[s]);export{k as g}; diff --git a/nanobot/web/dist/assets/git-DDInpk6l.js b/nanobot/web/dist/assets/git-DDInpk6l.js deleted file mode 100644 index 37d7fc8..0000000 --- a/nanobot/web/dist/assets/git-DDInpk6l.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function g(e,n){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var m=a;a.displayName="git";a.aliases=[];function a(e){e.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}}const c=s(m),l=g({__proto__:null,default:c},[m]);export{l as g}; diff --git a/nanobot/web/dist/assets/glsl-B7Mu1QeB.js b/nanobot/web/dist/assets/glsl-B7Mu1QeB.js deleted file mode 100644 index 32cc04e..0000000 --- a/nanobot/web/dist/assets/glsl-B7Mu1QeB.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";import{a as n}from"./c-BCNF8Z26.js";function c(e,s){for(var a=0;ar[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var p=n,l=o;o.displayName="glsl";o.aliases=[];function o(e){e.register(p),e.languages.glsl=e.languages.extend("c",{keyword:/\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\b/})}const m=u(l),d=c({__proto__:null,default:m},[l]);export{d as g}; diff --git a/nanobot/web/dist/assets/gml-ox1Gc810.js b/nanobot/web/dist/assets/gml-ox1Gc810.js deleted file mode 100644 index ed72ea4..0000000 --- a/nanobot/web/dist/assets/gml-ox1Gc810.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function _(e,n){for(var i=0;it[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=a;a.displayName="gml";a.aliases=[];function a(e){e.languages.gamemakerlanguage=e.languages.gml=e.languages.extend("clike",{keyword:/\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\b/,number:/(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i,operator:/--|\+\+|[-+%/=]=?|!=|\*\*?=?|<[<=>]?|>[=>]?|&&?|\^\^?|\|\|?|~|\b(?:and|at|not|or|with|xor)\b/,constant:/\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\d|numpad\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\w+)\b/,variable:/\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\d)|argument|global|local|other|self)\b/})}const d=l(s),p=_({__proto__:null,default:d},[s]);export{p as g}; diff --git a/nanobot/web/dist/assets/gn-DQQcgxRy.js b/nanobot/web/dist/assets/gn-DQQcgxRy.js deleted file mode 100644 index c4c2867..0000000 --- a/nanobot/web/dist/assets/gn-DQQcgxRy.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,i){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=a;a.displayName="gn";a.aliases=["gni"];function a(e){e.languages.gn={comment:{pattern:/#.*/,greedy:!0},"string-literal":{pattern:/(^|[^\\"])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[\s\S]*?\}|[a-zA-Z_]\w*|0x[a-fA-F0-9]{2})/,lookbehind:!0,inside:{number:/^\$0x[\s\S]{2}$/,variable:/^\$\w+$/,"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},string:/[\s\S]+/}},keyword:/\b(?:else|if)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\s*\()/i,alias:"keyword"},function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\b/,number:/-?\b\d+\b/,operator:/[-+!=<>]=?|&&|\|\|/,punctuation:/[(){}[\],.]/},e.languages.gn["string-literal"].inside.interpolation.inside.expression.inside=e.languages.gn,e.languages.gni=e.languages.gn}const g=l(s),c=u({__proto__:null,default:g},[s]);export{c as g}; diff --git a/nanobot/web/dist/assets/go-2QJZRQwQ.js b/nanobot/web/dist/assets/go-2QJZRQwQ.js deleted file mode 100644 index b0d77df..0000000 --- a/nanobot/web/dist/assets/go-2QJZRQwQ.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function c(e,l){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var g=n;n.displayName="go";n.aliases=[];function n(e){e.languages.go=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),e.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete e.languages.go["class-name"]}const s=i(g),d=c({__proto__:null,default:s},[g]);export{d as g}; diff --git a/nanobot/web/dist/assets/go-module-CHNkhHxT.js b/nanobot/web/dist/assets/go-module-CHNkhHxT.js deleted file mode 100644 index 90a5aa4..0000000 --- a/nanobot/web/dist/assets/go-module-CHNkhHxT.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function g(e,u){for(var r=0;ro[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="goModule";n.aliases=[];function n(e){e.languages["go-mod"]=e.languages["go-module"]={comment:{pattern:/\/\/.*/,greedy:!0},version:{pattern:/(^|[\s()[\],])v\d+\.\d+\.\d+(?:[+-][-+.\w]*)?(?![^\s()[\],])/,lookbehind:!0,alias:"number"},"go-version":{pattern:/((?:^|\s)go\s+)\d+(?:\.\d+){1,2}/,lookbehind:!0,alias:"number"},keyword:{pattern:/^([ \t]*)(?:exclude|go|module|replace|require|retract)\b/m,lookbehind:!0},operator:/=>/,punctuation:/[()[\],]/}}const s=d(l),c=g({__proto__:null,default:s},[l]);export{c as g}; diff --git a/nanobot/web/dist/assets/graphql-DauflmYW.js b/nanobot/web/dist/assets/graphql-DauflmYW.js deleted file mode 100644 index 6c53319..0000000 --- a/nanobot/web/dist/assets/graphql-DauflmYW.js +++ /dev/null @@ -1 +0,0 @@ -import{g as k}from"./syntax-highlight-CQw1bBY6.js";function z(i,l){for(var s=0;sa[e]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var A=m;m.displayName="graphql";m.aliases=[];function m(i){i.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:i.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},i.hooks.add("after-tokenize",function(s){if(s.language!=="graphql")return;var a=s.tokens.filter(function(r){return typeof r!="string"&&r.type!=="comment"&&r.type!=="scalar"}),e=0;function n(r){return a[e+r]}function v(r,o){o=o||0;for(var t=0;t0)){var _=h(/^\{$/,/^\}$/);if(_===-1)continue;for(var b=e;b<_;b++){var d=a[b];d.type==="variable"&&f.indexOf(d.content)>=0&&p(d,"variable-input")}}}}})}const Z=k(A),j=z({__proto__:null,default:Z},[A]);export{j as g}; diff --git a/nanobot/web/dist/assets/groovy-C0JEEe6o.js b/nanobot/web/dist/assets/groovy-C0JEEe6o.js deleted file mode 100644 index 61431b5..0000000 --- a/nanobot/web/dist/assets/groovy-C0JEEe6o.js +++ /dev/null @@ -1 +0,0 @@ -import{g}from"./syntax-highlight-CQw1bBY6.js";function l(e,t){for(var n=0;no[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=s;s.displayName="groovy";s.aliases=[];function s(e){e.languages.groovy=e.languages.extend("clike",{string:[{pattern:/("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0},{pattern:/(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:/\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),e.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),e.hooks.add("wrap",function(t){if(t.language==="groovy"&&t.type==="string"){var n=t.content.value[0];if(n!="'"){var o=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;n==="$"&&(o=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),t.content.value=t.content.value.replace(/</g,"<").replace(/&/g,"&"),t.content=e.highlight(t.content.value,{expression:{pattern:o,lookbehind:!0,inside:e.languages.groovy}}),t.classes.push(n==="/"?"regex":"gstring")}}})}const c=g(i),p=l({__proto__:null,default:c},[i]);export{p as g}; diff --git a/nanobot/web/dist/assets/haml-Cz1NXEzG.js b/nanobot/web/dist/assets/haml-Cz1NXEzG.js deleted file mode 100644 index 9396fb7..0000000 --- a/nanobot/web/dist/assets/haml-Cz1NXEzG.js +++ /dev/null @@ -1 +0,0 @@ -import{g}from"./syntax-highlight-CQw1bBY6.js";import{a as p}from"./ruby-BhDJe4uD.js";function d(l,e){for(var o=0;or[n]})}}}return Object.freeze(Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}))}var b=p,u=i;i.displayName="haml";i.aliases=[];function i(l){l.register(b),function(e){e.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,lookbehind:!0,inside:e.languages.ruby},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,lookbehind:!0,inside:e.languages.ruby}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,lookbehind:!0,inside:e.languages.ruby},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:e.languages.ruby}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:e.languages.ruby},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},ruby:{pattern:/[\s\S]+/,inside:e.languages.ruby}}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var o="((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+",r=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],n={},a=0,s=r.length;at[n]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var b=u,l=s;s.displayName="handlebars";s.aliases=["hbs"];function s(r){r.register(b),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",function(a){var t=/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;e.languages["markup-templating"].buildPlaceholders(a,"handlebars",t)}),e.hooks.add("after-tokenize",function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"handlebars")}),e.languages.hbs=e.languages.handlebars}(r)}const g=d(l),f=i({__proto__:null,default:g},[l]);export{f as h}; diff --git a/nanobot/web/dist/assets/haskell-BZ81Xx8-.js b/nanobot/web/dist/assets/haskell-BZ81Xx8-.js deleted file mode 100644 index 8f47c3c..0000000 --- a/nanobot/web/dist/assets/haskell-BZ81Xx8-.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,o){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=n;n.displayName="haskell";n.aliases=["hs"];function n(e){e.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import|qualified)\b/,punctuation:/\./}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:[{pattern:/`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,greedy:!0},{pattern:/(\s)\.(?=\s)/,lookbehind:!0},/[-!#$%*+=?&@|~:<>^\\\/][-!#$%*+=?&@|~.:<>^\\\/]*|\.[-!#$%*+=?&@|~.:<>^\\\/]+/],hvariable:{pattern:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*/,inside:{punctuation:/\./}},constant:{pattern:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:]/},e.languages.hs=e.languages.haskell}const p=l(s),c=d({__proto__:null,default:p},[s]);export{s as a,c as h}; diff --git a/nanobot/web/dist/assets/haxe-DWN4n611.js b/nanobot/web/dist/assets/haxe-DWN4n611.js deleted file mode 100644 index fb10c80..0000000 --- a/nanobot/web/dist/assets/haxe-DWN4n611.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function p(e,s){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=i;i.displayName="haxe";i.aliases=[];function i(e){e.languages.haxe=e.languages.extend("clike",{string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},"class-name":[{pattern:/(\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\s+)[A-Z_]\w*/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\.)\b/,function:{pattern:/\b[a-z_]\w*(?=\s*(?:<[^<>]*>\s*)?\()/i,greedy:!0},operator:/\.{3}|\+\+|--|&&|\|\||->|=>|(?:<{1,3}|[-+*/%!=&|^])=?|[?:~]/}),e.languages.insertBefore("haxe","string",{"string-interpolation":{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^{}]+\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.haxe}}},string:/[\s\S]+/}}}),e.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[a-z]*/,greedy:!0,inside:{"regex-flags":/\b[a-z]+$/,"regex-source":{pattern:/^(~\/)[\s\S]+(?=\/$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^~\/|\/$/}}}),e.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#(?:else|elseif|end|if)\b.*/,alias:"property"},metadata:{pattern:/@:?[\w.]+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"important"}})}const u=l(o),c=p({__proto__:null,default:u},[o]);export{c as h}; diff --git a/nanobot/web/dist/assets/hcl-Dw1KvlzA.js b/nanobot/web/dist/assets/hcl-Dw1KvlzA.js deleted file mode 100644 index 32ce3c1..0000000 --- a/nanobot/web/dist/assets/hcl-Dw1KvlzA.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,n){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="hcl";i.aliases=[];function i(e){e.languages.hcl={comment:/(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/,heredoc:{pattern:/<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m,greedy:!0,alias:"string"},keyword:[{pattern:/(?:data|resource)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i,inside:{type:{pattern:/(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i,lookbehind:!0,alias:"variable"}}},{pattern:/(?:backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?=\{)/i,inside:{type:{pattern:/(backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i,lookbehind:!0,alias:"variable"}}},/[\w-]+(?=\s+\{)/],property:[/[-\w\.]+(?=\s*=(?!=))/,/"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/],string:{pattern:/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/,greedy:!0,inside:{interpolation:{pattern:/(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/,lookbehind:!0,inside:{type:{pattern:/(\b(?:count|data|local|module|path|self|terraform|var)\b\.)[\w\*]+/i,lookbehind:!0,alias:"variable"},keyword:/\b(?:count|data|local|module|path|self|terraform|var)\b/i,function:/\w+(?=\()/,string:{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/}}}},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,boolean:/\b(?:false|true)\b/i,punctuation:/[=\[\]{}]/}}const u=l(s),b=d({__proto__:null,default:u},[s]);export{b as h}; diff --git a/nanobot/web/dist/assets/hlsl-DH4aftWd.js b/nanobot/web/dist/assets/hlsl-DH4aftWd.js deleted file mode 100644 index 4a52287..0000000 --- a/nanobot/web/dist/assets/hlsl-DH4aftWd.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";import{a as u}from"./c-BCNF8Z26.js";function c(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var f=u,l=o;o.displayName="hlsl";o.aliases=[];function o(e){e.register(f),e.languages.hlsl=e.languages.extend("c",{"class-name":[e.languages.c["class-name"],/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/],keyword:[/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/],number:/(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,boolean:/\b(?:false|true)\b/})}const d=s(l),g=c({__proto__:null,default:d},[l]);export{g as h}; diff --git a/nanobot/web/dist/assets/hoon-DKfDRkQc.js b/nanobot/web/dist/assets/hoon-DKfDRkQc.js deleted file mode 100644 index 0d195a0..0000000 --- a/nanobot/web/dist/assets/hoon-DKfDRkQc.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function i(e,s){for(var r=0;rt[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=a;a.displayName="hoon";a.aliases=[];function a(e){e.languages.hoon={comment:{pattern:/::.*/,greedy:!0},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},constant:/%(?:\.[ny]|[\w-]+)/,"class-name":/@(?:[a-z0-9-]*[a-z0-9])?|\*/i,function:/(?:\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,keyword:/\.[\^\+\*=\?]|![><:\.=\?!]|=[>|:,\.\-\^<+;/~\*\?]|\?[>|:\.\-\^<\+&~=@!]|\|[\$_%:\.\-\^~\*=@\?]|\+[|\$\+\*]|:[_\-\^\+~\*]|%[_:\.\-\^\+~\*=]|\^[|:\.\-\+&~\*=\?]|\$[|_%:<>\-\^&~@=\?]|;[:<\+;\/~\*=]|~[>|\$_%<\+\/&=\?!]|--|==/}}const u=f(c),l=i({__proto__:null,default:u},[c]);export{l as h}; diff --git a/nanobot/web/dist/assets/hpkp-D-zwIDiv.js b/nanobot/web/dist/assets/hpkp-D-zwIDiv.js deleted file mode 100644 index 7cc61f3..0000000 --- a/nanobot/web/dist/assets/hpkp-D-zwIDiv.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(e,n){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=a;a.displayName="hpkp";a.aliases=[];function a(e){e.languages.hpkp={directive:{pattern:/\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}const c=s(i),f=u({__proto__:null,default:c},[i]);export{f as h}; diff --git a/nanobot/web/dist/assets/hsts-CYPBznpg.js b/nanobot/web/dist/assets/hsts-CYPBznpg.js deleted file mode 100644 index 1310fcf..0000000 --- a/nanobot/web/dist/assets/hsts-CYPBznpg.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function p(e,n){for(var s=0;st[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="hsts";o.aliases=[];function o(e){e.languages.hsts={directive:{pattern:/\b(?:includeSubDomains|max-age|preload)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}const u=l(i),f=p({__proto__:null,default:u},[i]);export{f as h}; diff --git a/nanobot/web/dist/assets/http-DP_aKdEF.js b/nanobot/web/dist/assets/http-DP_aKdEF.js deleted file mode 100644 index e0f886e..0000000 --- a/nanobot/web/dist/assets/http-DP_aKdEF.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function b(n,e){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var u=l;l.displayName="http";l.aliases=[];function l(n){(function(e){function r(p){return RegExp("(^(?:"+p+"):[ ]*(?![ ]))[^]+","i")}e.languages.http={"request-line":{pattern:/^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:e.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[\d.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[\d.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[\d.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},header:{pattern:/^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m,inside:{"header-value":[{pattern:r(/Content-Security-Policy/.source),lookbehind:!0,alias:["csp","languages-csp"],inside:e.languages.csp},{pattern:r(/Public-Key-Pins(?:-Report-Only)?/.source),lookbehind:!0,alias:["hpkp","languages-hpkp"],inside:e.languages.hpkp},{pattern:r(/Strict-Transport-Security/.source),lookbehind:!0,alias:["hsts","languages-hsts"],inside:e.languages.hsts},{pattern:r(/[^:]+/.source),lookbehind:!0}],"header-name":{pattern:/^[^:]+/,alias:"keyword"},punctuation:/^:/}}};var t=e.languages,a={"application/javascript":t.javascript,"application/json":t.json||t.javascript,"application/xml":t.xml,"text/xml":t.xml,"text/html":t.html,"text/css":t.css,"text/plain":t.plain},i={"application/json":!0,"application/xml":!0};function c(p){var g=p.replace(/^[a-z]+\//,""),h="\\w+/(?:[\\w.-]+\\+)+"+g+"(?![+\\w.-])";return"(?:"+p+"|"+h+")"}var o;for(var s in a)if(a[s]){o=o||{};var d=i[s]?c(s):s;o[s.replace(/\//g,"-")]={pattern:RegExp("("+/content-type:\s*/.source+d+/(?:(?:\r\n?|\n)[\w-].*)*(?:\r(?:\n|(?!\n))|\n)/.source+")"+/[^ \t\w-][\s\S]*/.source,"i"),lookbehind:!0,inside:a[s]}}o&&e.languages.insertBefore("http","header",o)})(n)}const v=f(u),k=b({__proto__:null,default:v},[u]);export{k as h}; diff --git a/nanobot/web/dist/assets/ichigojam-PjOTJymC.js b/nanobot/web/dist/assets/ichigojam-PjOTJymC.js deleted file mode 100644 index 14e53ba..0000000 --- a/nanobot/web/dist/assets/ichigojam-PjOTJymC.js +++ /dev/null @@ -1 +0,0 @@ -import{g as N}from"./syntax-highlight-CQw1bBY6.js";function T(e,a){for(var r=0;rE[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var n=i;i.displayName="ichigojam";i.aliases=[];function i(e){e.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@\S+)/,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}const R=N(n),O=T({__proto__:null,default:R},[n]);export{O as i}; diff --git a/nanobot/web/dist/assets/icon-D1maMr91.js b/nanobot/web/dist/assets/icon-D1maMr91.js deleted file mode 100644 index 4c23998..0000000 --- a/nanobot/web/dist/assets/icon-D1maMr91.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function c(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=i;i.displayName="icon";i.aliases=[];function i(e){e.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/\b(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}}const u=s(l),p=c({__proto__:null,default:u},[l]);export{p as i}; diff --git a/nanobot/web/dist/assets/icu-message-format-C0X-5ufl.js b/nanobot/web/dist/assets/icu-message-format-C0X-5ufl.js deleted file mode 100644 index 0680040..0000000 --- a/nanobot/web/dist/assets/icu-message-format-C0X-5ufl.js +++ /dev/null @@ -1 +0,0 @@ -import{g}from"./syntax-highlight-CQw1bBY6.js";function p(n,r){for(var s=0;se[t]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var d=i;i.displayName="icuMessageFormat";i.aliases=[];function i(n){(function(r){function s(l,c){return c<=0?/[]/.source:l.replace(//g,function(){return s(l,c-1)})}var e=/'[{}:=,](?:[^']|'')*'(?!')/,t={pattern:/''/,greedy:!0,alias:"operator"},a={pattern:e,greedy:!0,inside:{escape:t}},u=s(/\{(?:[^{}']|'(?![{},'])|''||)*\}/.source.replace(//g,function(){return e.source}),8),o={pattern:RegExp(u),inside:{message:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:null},"message-delimiter":{pattern:/./,alias:"punctuation"}}};r.languages["icu-message-format"]={argument:{pattern:RegExp(u),greedy:!0,inside:{content:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:{"argument-name":{pattern:/^(\s*)[^{}:=,\s]+/,lookbehind:!0},"choice-style":{pattern:/^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{punctuation:/\|/,range:{pattern:/^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,lookbehind:!0,inside:{operator:/[<#\u2264]/,number:/\S+/}},rest:null}},"plural-style":{pattern:/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{offset:/^offset:\s*\d+/,"nested-message":o,selector:{pattern:/=\d+|[^{}:=,\s]+/,inside:{keyword:/^(?:few|many|one|other|two|zero)$/}}}},"select-style":{pattern:/^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{"nested-message":o,selector:{pattern:/[^{}:=,\s]+/,inside:{keyword:/^other$/}}}},keyword:/\b(?:choice|plural|select|selectordinal)\b/,"arg-type":{pattern:/\b(?:date|duration|number|ordinal|spellout|time)\b/,alias:"keyword"},"arg-skeleton":{pattern:/(,\s*)::[^{}:=,\s]+/,lookbehind:!0},"arg-style":{pattern:/(,\s*)(?:currency|full|integer|long|medium|percent|short)(?=\s*$)/,lookbehind:!0},"arg-style-text":{pattern:RegExp(/(^\s*,\s*(?=\S))/.source+s(/(?:[^{}']|'[^']*'|\{(?:)?\})+/.source,8)+"$"),lookbehind:!0,alias:"string"},punctuation:/,/}},"argument-delimiter":{pattern:/./,alias:"operator"}}},escape:t,string:a},o.inside.message.inside=r.languages["icu-message-format"],r.languages["icu-message-format"].argument.inside.content.inside["choice-style"].inside.rest=r.languages["icu-message-format"]})(n)}const m=g(d),y=p({__proto__:null,default:m},[d]);export{y as i}; diff --git a/nanobot/web/dist/assets/idris-CJfsrCA2.js b/nanobot/web/dist/assets/idris-CJfsrCA2.js deleted file mode 100644 index 8266f7f..0000000 --- a/nanobot/web/dist/assets/idris-CJfsrCA2.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";import{a as d}from"./haskell-BZ81Xx8-.js";function p(e,n){for(var i=0;it[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=d,s=o;o.displayName="idris";o.aliases=["idr"];function o(e){e.register(u),e.languages.idris=e.languages.extend("haskell",{comment:{pattern:/(?:(?:--|\|\|\|).*$|\{-[\s\S]*?-\})/m},keyword:/\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,builtin:void 0}),e.languages.insertBefore("idris","keyword",{"import-statement":{pattern:/(^\s*import\s+)(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.idr=e.languages.idris}const c=l(s),m=p({__proto__:null,default:c},[s]);export{m as i}; diff --git a/nanobot/web/dist/assets/iecst-C8T3O-tg.js b/nanobot/web/dist/assets/iecst-C8T3O-tg.js deleted file mode 100644 index 4639af2..0000000 --- a/nanobot/web/dist/assets/iecst-C8T3O-tg.js +++ /dev/null @@ -1 +0,0 @@ -import{g as A}from"./syntax-highlight-CQw1bBY6.js";function R(e,O){for(var E=0;ET[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=N;N.displayName="iecst";N.aliases=[];function N(e){e.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:[/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\b/i,/\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\b/],"class-name":/\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\b/,address:{pattern:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,alias:"symbol"},number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:D|DT|T|TOD)#[\d_shmd:]*|\b[A-Z]*#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/,operator:/S?R?:?=>?|&&?|\*\*?|<[=>]?|>=?|[-:^/+#]|\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,punctuation:/[()[\].,;]/}}const a=A(o),s=R({__proto__:null,default:a},[o]);export{s as i}; diff --git a/nanobot/web/dist/assets/ignore-BSRAq36K.js b/nanobot/web/dist/assets/ignore-BSRAq36K.js deleted file mode 100644 index dddc68f..0000000 --- a/nanobot/web/dist/assets/ignore-BSRAq36K.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function l(n,e){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var i=a;a.displayName="ignore";a.aliases=["gitignore","hgignore","npmignore"];function a(n){(function(e){e.languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},e.languages.gitignore=e.languages.ignore,e.languages.hgignore=e.languages.ignore,e.languages.npmignore=e.languages.ignore})(n)}const s=u(i),p=l({__proto__:null,default:s},[i]);export{p as i}; diff --git a/nanobot/web/dist/assets/imageEncode.worker-Cs1P3eq4.js b/nanobot/web/dist/assets/imageEncode.worker-Cs1P3eq4.js deleted file mode 100644 index 7012811..0000000 --- a/nanobot/web/dist/assets/imageEncode.worker-Cs1P3eq4.js +++ /dev/null @@ -1 +0,0 @@ -(function(){"use strict";const u=new Set(["image/jpeg","image/webp"]),l=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function g(e){if(e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e[4]===13&&e[5]===10&&e[6]===26&&e[7]===10)return"image/png";if(e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255)return"image/jpeg";if(e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70&&e[3]===56&&e[5]===97&&(e[4]===55||e[4]===57))return"image/gif";if(e.length>=12){const a=e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70,n=e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80;if(a&&n)return"image/webp"}return null}function m(e){const a=new Uint8Array(e);let n="";const r=32768;for(let t=0;t6291456)return{error:"too_large_after_normalize"};const _=await s.arrayBuffer();return{dataUrl:`data:${n};base64,${m(_)}`,mime:n,bytes:s.size}}catch{try{r.close()}catch{}return{error:"decode_failed"}}}async function p(e){const{id:a,file:n}=e,r=n.size;let t;try{t=await n.arrayBuffer()}catch{return{id:a,ok:!1,reason:"io"}}const f=new Uint8Array(t.slice(0,12)),i=g(f);if(!i)return{id:a,ok:!1,reason:"magic_mismatch"};if(!l.has(i))return{id:a,ok:!1,reason:"invalid_mime"};if(n.type&&l.has(n.type)&&n.type,r<=6291456){const c=`data:${i};base64,${m(t)}`;return{id:a,ok:!0,dataUrl:c,mime:i,bytes:r,origBytes:r,normalized:!1}}const o=await h(n,i);return"error"in o?{id:a,ok:!1,reason:o.error}:{id:a,ok:!0,dataUrl:o.dataUrl,mime:o.mime,bytes:o.bytes,origBytes:r,normalized:!0}}typeof self<"u"&&typeof self.importScripts=="function"&&self.addEventListener("message",async e=>{const a=await p(e.data);self.postMessage(a)})})(); diff --git a/nanobot/web/dist/assets/index-CDsuleQI.js b/nanobot/web/dist/assets/index-CDsuleQI.js deleted file mode 100644 index 21ccf67..0000000 --- a/nanobot/web/dist/assets/index-CDsuleQI.js +++ /dev/null @@ -1,555 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/syntax-highlight-CQw1bBY6.js","assets/markdown-vendor-BC7Vi29N.js","assets/katex-BSBacQyE.js","assets/katex-wklAmtGL.css","assets/MarkdownTextRenderer-Cg7UrKJ7.js"])))=>i.map(i=>d[i]); -var RS=Object.defineProperty;var MS=(e,t,n)=>t in e?RS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var He=(e,t,n)=>MS(e,typeof t!="symbol"?t+"":t,n);import{j as s}from"./markdown-vendor-BC7Vi29N.js";import{r as u,g as ES,R as wm,a as Pa,_ as Dl}from"./syntax-highlight-CQw1bBY6.js";import"./katex-BSBacQyE.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(a){if(a.ep)return;a.ep=!0;const o=n(a);fetch(a.href,o)}})();var Yd={},Kx={exports:{}},Mn={},Vx={exports:{}},Gx={};/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */(function(e){function t(P,D){var G=P.length;P.push(D);e:for(;0>>1,oe=P[Y];if(0>>1;Ya(le,G))Ia(Q,le)?(P[Y]=Q,P[I]=G,Y=I):(P[Y]=le,P[pe]=G,Y=pe);else if(Ia(Q,G))P[Y]=Q,P[I]=G,Y=I;else break e}}return D}function a(P,D){var G=P.sortIndex-D.sortIndex;return G!==0?G:P.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],d=[],p=1,m=null,f=3,h=!1,y=!1,x=!1,b=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,g=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(P){for(var D=n(d);D!==null;){if(D.callback===null)r(d);else if(D.startTime<=P)r(d),D.sortIndex=D.expirationTime,t(c,D);else break;D=n(d)}}function k(P){if(x=!1,w(P),!y)if(n(c)!==null)y=!0,$(C);else{var D=n(d);D!==null&&W(k,D.startTime-P)}}function C(P,D){y=!1,x&&(x=!1,v(A),A=-1),h=!0;var G=f;try{for(w(D),m=n(c);m!==null&&(!(m.expirationTime>D)||P&&!R());){var Y=m.callback;if(typeof Y=="function"){m.callback=null,f=m.priorityLevel;var oe=Y(m.expirationTime<=D);D=e.unstable_now(),typeof oe=="function"?m.callback=oe:m===n(c)&&r(c),w(D)}else r(c);m=n(c)}if(m!==null)var de=!0;else{var pe=n(d);pe!==null&&W(k,pe.startTime-D),de=!1}return de}finally{m=null,f=G,h=!1}}var N=!1,S=null,A=-1,E=5,_=-1;function R(){return!(e.unstable_now()-_P||125Y?(P.sortIndex=G,t(d,P),n(c)===null&&P===n(d)&&(x?(v(A),A=-1):x=!0,W(k,G-Y))):(P.sortIndex=oe,t(c,P),y||h||(y=!0,$(C))),P},e.unstable_shouldYield=R,e.unstable_wrapCallback=function(P){var D=f;return function(){var G=f;f=D;try{return P.apply(this,arguments)}finally{f=G}}}})(Gx);Vx.exports=Gx;var IS=Vx.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var LS=u,Rn=IS;function te(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qd=Object.prototype.hasOwnProperty,DS=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ah={},oh={};function OS(e){return Qd.call(oh,e)?!0:Qd.call(ah,e)?!1:DS.test(e)?oh[e]=!0:(ah[e]=!0,!1)}function FS(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function zS(e,t,n,r){if(t===null||typeof t>"u"||FS(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function on(e,t,n,r,a,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var qt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){qt[e]=new on(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];qt[t]=new on(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){qt[e]=new on(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){qt[e]=new on(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){qt[e]=new on(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){qt[e]=new on(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){qt[e]=new on(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){qt[e]=new on(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){qt[e]=new on(e,5,!1,e.toLowerCase(),null,!1,!1)});var km=/[\-:]([a-z])/g;function Cm(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(km,Cm);qt[t]=new on(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(km,Cm);qt[t]=new on(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(km,Cm);qt[t]=new on(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){qt[e]=new on(e,1,!1,e.toLowerCase(),null,!1,!1)});qt.xlinkHref=new on("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){qt[e]=new on(e,1,!1,e.toLowerCase(),null,!0,!0)});function Sm(e,t,n,r){var a=qt.hasOwnProperty(t)?qt[t]:null;(a!==null?a.type!==0:r||!(2l||a[i]!==o[l]){var c=` -`+a[i].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=i&&0<=l);break}}}finally{qu=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Fs(e):""}function $S(e){switch(e.tag){case 5:return Fs(e.type);case 16:return Fs("Lazy");case 13:return Fs("Suspense");case 19:return Fs("SuspenseList");case 0:case 2:case 15:return e=Ku(e.type,!1),e;case 11:return e=Ku(e.type.render,!1),e;case 1:return e=Ku(e.type,!0),e;default:return""}}function ep(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case bo:return"Fragment";case yo:return"Portal";case Xd:return"Profiler";case Nm:return"StrictMode";case Jd:return"Suspense";case Zd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Xx:return(e.displayName||"Context")+".Consumer";case Qx:return(e._context.displayName||"Context")+".Provider";case jm:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Am:return t=e.displayName||null,t!==null?t:ep(e.type)||"Memo";case ta:t=e._payload,e=e._init;try{return ep(e(t))}catch{}}return null}function US(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ep(t);case 8:return t===Nm?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function va(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Zx(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function BS(e){var t=Zx(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ll(e){e._valueTracker||(e._valueTracker=BS(e))}function ey(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Zx(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function nc(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function tp(e,t){var n=t.checked;return dt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ih(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=va(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ty(e,t){t=t.checked,t!=null&&Sm(e,"checked",t,!1)}function np(e,t){ty(e,t);var n=va(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?rp(e,t.type,n):t.hasOwnProperty("defaultValue")&&rp(e,t.type,va(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function lh(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function rp(e,t,n){(t!=="number"||nc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var zs=Array.isArray;function Io(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a"+t.valueOf().toString()+"",t=cl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function ci(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Vs={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},HS=["Webkit","ms","Moz","O"];Object.keys(Vs).forEach(function(e){HS.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Vs[t]=Vs[e]})});function oy(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Vs.hasOwnProperty(e)&&Vs[e]?(""+t).trim():t+"px"}function sy(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=oy(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}var WS=dt({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function sp(e,t){if(t){if(WS[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(te(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(te(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(te(61))}if(t.style!=null&&typeof t.style!="object")throw Error(te(62))}}function ip(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var lp=null;function _m(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var cp=null,Lo=null,Do=null;function dh(e){if(e=Bi(e)){if(typeof cp!="function")throw Error(te(280));var t=e.stateNode;t&&(t=Xc(t),cp(e.stateNode,e.type,t))}}function iy(e){Lo?Do?Do.push(e):Do=[e]:Lo=e}function ly(){if(Lo){var e=Lo,t=Do;if(Do=Lo=null,dh(e),t)for(e=0;e>>=0,e===0?32:31-(tN(e)/nN|0)|0}var ul=64,dl=4194304;function $s(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function sc(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var l=i&~a;l!==0?r=$s(l):(o&=i,o!==0&&(r=$s(o)))}else i=n&~a,i!==0?r=$s(i):o!==0&&(r=$s(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&a)&&(a=r&-r,o=t&-t,a>=o||a===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function $i(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Qn(t),e[t]=n}function sN(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Ys),bh=" ",wh=!1;function _y(e,t){switch(e){case"keyup":return IN.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Py(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var wo=!1;function DN(e,t){switch(e){case"compositionend":return Py(t);case"keypress":return t.which!==32?null:(wh=!0,bh);case"textInput":return e=t.data,e===bh&&wh?null:e;default:return null}}function ON(e,t){if(wo)return e==="compositionend"||!Dm&&_y(e,t)?(e=jy(),Fl=Em=sa=null,wo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Nh(n)}}function Ey(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ey(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Iy(){for(var e=window,t=nc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=nc(e.document)}return t}function Om(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function KN(e){var t=Iy(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ey(n.ownerDocument.documentElement,n)){if(r!==null&&Om(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=r.end===void 0?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=jh(n,o);var i=jh(n,r);a&&i&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,ko=null,hp=null,Xs=null,gp=!1;function Ah(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;gp||ko==null||ko!==nc(r)||(r=ko,"selectionStart"in r&&Om(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Xs&&hi(Xs,r)||(Xs=r,r=cc(hp,"onSelect"),0No||(e.current=kp[No],kp[No]=null,No--)}function tt(e,t){No++,kp[No]=e.current,e.current=t}var xa={},Zt=Sa(xa),mn=Sa(!1),Ha=xa;function Yo(e,t){var n=e.type.contextTypes;if(!n)return xa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a={},o;for(o in n)a[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function fn(e){return e=e.childContextTypes,e!=null}function dc(){st(mn),st(Zt)}function Ih(e,t,n){if(Zt.current!==xa)throw Error(te(168));tt(Zt,t),tt(mn,n)}function Hy(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in t))throw Error(te(108,US(e)||"Unknown",a));return dt({},n,r)}function pc(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||xa,Ha=Zt.current,tt(Zt,e),tt(mn,mn.current),!0}function Lh(e,t,n){var r=e.stateNode;if(!r)throw Error(te(169));n?(e=Hy(e,t,Ha),r.__reactInternalMemoizedMergedChildContext=e,st(mn),st(Zt),tt(Zt,e)):st(mn),tt(mn,n)}var Rr=null,Jc=!1,sd=!1;function Wy(e){Rr===null?Rr=[e]:Rr.push(e)}function aj(e){Jc=!0,Wy(e)}function Na(){if(!sd&&Rr!==null){sd=!0;var e=0,t=Xe;try{var n=Rr;for(Xe=1;e>=i,a-=i,Mr=1<<32-Qn(t)+a|n<A?(E=S,S=null):E=S.sibling;var _=f(v,S,w[A],k);if(_===null){S===null&&(S=E);break}e&&S&&_.alternate===null&&t(v,S),g=o(_,g,A),N===null?C=_:N.sibling=_,N=_,S=E}if(A===w.length)return n(v,S),it&&Ma(v,A),C;if(S===null){for(;AA?(E=S,S=null):E=S.sibling;var R=f(v,S,_.value,k);if(R===null){S===null&&(S=E);break}e&&S&&R.alternate===null&&t(v,S),g=o(R,g,A),N===null?C=R:N.sibling=R,N=R,S=E}if(_.done)return n(v,S),it&&Ma(v,A),C;if(S===null){for(;!_.done;A++,_=w.next())_=m(v,_.value,k),_!==null&&(g=o(_,g,A),N===null?C=_:N.sibling=_,N=_);return it&&Ma(v,A),C}for(S=r(v,S);!_.done;A++,_=w.next())_=h(S,v,A,_.value,k),_!==null&&(e&&_.alternate!==null&&S.delete(_.key===null?A:_.key),g=o(_,g,A),N===null?C=_:N.sibling=_,N=_);return e&&S.forEach(function(T){return t(v,T)}),it&&Ma(v,A),C}function b(v,g,w,k){if(typeof w=="object"&&w!==null&&w.type===bo&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case il:e:{for(var C=w.key,N=g;N!==null;){if(N.key===C){if(C=w.type,C===bo){if(N.tag===7){n(v,N.sibling),g=a(N,w.props.children),g.return=v,v=g;break e}}else if(N.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===ta&&Fh(C)===N.type){n(v,N.sibling),g=a(N,w.props),g.ref=Rs(v,N,w),g.return=v,v=g;break e}n(v,N);break}else t(v,N);N=N.sibling}w.type===bo?(g=za(w.props.children,v.mode,k,w.key),g.return=v,v=g):(k=Kl(w.type,w.key,w.props,null,v.mode,k),k.ref=Rs(v,g,w),k.return=v,v=k)}return i(v);case yo:e:{for(N=w.key;g!==null;){if(g.key===N)if(g.tag===4&&g.stateNode.containerInfo===w.containerInfo&&g.stateNode.implementation===w.implementation){n(v,g.sibling),g=a(g,w.children||[]),g.return=v,v=g;break e}else{n(v,g);break}else t(v,g);g=g.sibling}g=fd(w,v.mode,k),g.return=v,v=g}return i(v);case ta:return N=w._init,b(v,g,N(w._payload),k)}if(zs(w))return y(v,g,w,k);if(js(w))return x(v,g,w,k);xl(v,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,g!==null&&g.tag===6?(n(v,g.sibling),g=a(g,w),g.return=v,v=g):(n(v,g),g=md(w,v.mode,k),g.return=v,v=g),i(v)):n(v,g)}return b}var Xo=Gy(!0),Yy=Gy(!1),hc=Sa(null),gc=null,_o=null,Um=null;function Bm(){Um=_o=gc=null}function Hm(e){var t=hc.current;st(hc),e._currentValue=t}function Np(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Fo(e,t){gc=e,Um=_o=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(pn=!0),e.firstContext=null)}function Un(e){var t=e._currentValue;if(Um!==e)if(e={context:e,memoizedValue:t,next:null},_o===null){if(gc===null)throw Error(te(308));_o=e,gc.dependencies={lanes:0,firstContext:e}}else _o=_o.next=e;return t}var La=null;function Wm(e){La===null?La=[e]:La.push(e)}function Qy(e,t,n,r){var a=t.interleaved;return a===null?(n.next=n,Wm(t)):(n.next=a.next,a.next=n),t.interleaved=n,Or(e,r)}function Or(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var na=!1;function qm(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Xy(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ir(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Ge&2){var a=r.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Or(e,n)}return a=r.interleaved,a===null?(t.next=t,Wm(r)):(t.next=a.next,a.next=t),r.interleaved=t,Or(e,n)}function $l(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Tm(e,n)}}function zh(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?a=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?a=o=t:o=o.next=t}else a=o=t;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function vc(e,t,n,r){var a=e.updateQueue;na=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var c=l,d=c.next;c.next=null,i===null?o=d:i.next=d,i=c;var p=e.alternate;p!==null&&(p=p.updateQueue,l=p.lastBaseUpdate,l!==i&&(l===null?p.firstBaseUpdate=d:l.next=d,p.lastBaseUpdate=c))}if(o!==null){var m=a.baseState;i=0,p=d=c=null,l=o;do{var f=l.lane,h=l.eventTime;if((r&f)===f){p!==null&&(p=p.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var y=e,x=l;switch(f=t,h=n,x.tag){case 1:if(y=x.payload,typeof y=="function"){m=y.call(h,m,f);break e}m=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=x.payload,f=typeof y=="function"?y.call(h,m,f):y,f==null)break e;m=dt({},m,f);break e;case 2:na=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=a.effects,f===null?a.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},p===null?(d=p=h,c=m):p=p.next=h,i|=f;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;f=l,l=f.next,f.next=null,a.lastBaseUpdate=f,a.shared.pending=null}}while(!0);if(p===null&&(c=m),a.baseState=c,a.firstBaseUpdate=d,a.lastBaseUpdate=p,t=a.shared.interleaved,t!==null){a=t;do i|=a.lane,a=a.next;while(a!==t)}else o===null&&(a.shared.lanes=0);Ka|=i,e.lanes=i,e.memoizedState=m}}function $h(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=ld.transition;ld.transition={};try{e(!1),t()}finally{Xe=n,ld.transition=r}}function fb(){return Bn().memoizedState}function lj(e,t,n){var r=fa(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},hb(e))gb(t,n);else if(n=Qy(e,t,n,r),n!==null){var a=an();Xn(n,e,r,a),vb(n,t,r)}}function cj(e,t,n){var r=fa(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(hb(e))gb(t,a);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,Jn(l,i)){var c=t.interleaved;c===null?(a.next=a,Wm(t)):(a.next=c.next,c.next=a),t.interleaved=a;return}}catch{}finally{}n=Qy(e,t,a,r),n!==null&&(a=an(),Xn(n,e,r,a),vb(n,t,r))}}function hb(e){var t=e.alternate;return e===ut||t!==null&&t===ut}function gb(e,t){Js=yc=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function vb(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Tm(e,n)}}var bc={readContext:Un,useCallback:Yt,useContext:Yt,useEffect:Yt,useImperativeHandle:Yt,useInsertionEffect:Yt,useLayoutEffect:Yt,useMemo:Yt,useReducer:Yt,useRef:Yt,useState:Yt,useDebugValue:Yt,useDeferredValue:Yt,useTransition:Yt,useMutableSource:Yt,useSyncExternalStore:Yt,useId:Yt,unstable_isNewReconciler:!1},uj={readContext:Un,useCallback:function(e,t){return ur().memoizedState=[e,t===void 0?null:t],e},useContext:Un,useEffect:Bh,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Bl(4194308,4,cb.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Bl(4194308,4,e,t)},useInsertionEffect:function(e,t){return Bl(4,2,e,t)},useMemo:function(e,t){var n=ur();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ur();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=lj.bind(null,ut,e),[r.memoizedState,e]},useRef:function(e){var t=ur();return e={current:e},t.memoizedState=e},useState:Uh,useDebugValue:Zm,useDeferredValue:function(e){return ur().memoizedState=e},useTransition:function(){var e=Uh(!1),t=e[0];return e=ij.bind(null,e[1]),ur().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ut,a=ur();if(it){if(n===void 0)throw Error(te(407));n=n()}else{if(n=t(),Ft===null)throw Error(te(349));qa&30||tb(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Bh(rb.bind(null,r,o,e),[e]),r.flags|=2048,Ci(9,nb.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=ur(),t=Ft.identifierPrefix;if(it){var n=Er,r=Mr;n=(r&~(1<<32-Qn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=wi++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[dr]=t,e[xi]=r,Ab(e,t,!1,!1),t.stateNode=e;e:{switch(i=ip(n,r),n){case"dialog":ot("cancel",e),ot("close",e),a=r;break;case"iframe":case"object":case"embed":ot("load",e),a=r;break;case"video":case"audio":for(a=0;aes&&(t.flags|=128,r=!0,Ms(o,!1),t.lanes=4194304)}else{if(!r)if(e=xc(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ms(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!it)return Qt(t),null}else 2*bt()-o.renderingStartTime>es&&n!==1073741824&&(t.flags|=128,r=!0,Ms(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=bt(),t.sibling=null,n=ct.current,tt(ct,r?n&1|2:n&1),t):(Qt(t),null);case 22:case 23:return of(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Nn&1073741824&&(Qt(t),t.subtreeFlags&6&&(t.flags|=8192)):Qt(t),null;case 24:return null;case 25:return null}throw Error(te(156,t.tag))}function xj(e,t){switch(zm(t),t.tag){case 1:return fn(t.type)&&dc(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Jo(),st(mn),st(Zt),Gm(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Vm(t),null;case 13:if(st(ct),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(te(340));Qo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return st(ct),null;case 4:return Jo(),null;case 10:return Hm(t.type._context),null;case 22:case 23:return of(),null;case 24:return null;default:return null}}var bl=!1,Xt=!1,yj=typeof WeakSet=="function"?WeakSet:Set,ge=null;function Po(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ht(e,t,r)}else n.current=null}function Ip(e,t,n){try{n()}catch(r){ht(e,t,r)}}var Zh=!1;function bj(e,t){if(vp=ic,e=Iy(),Om(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,l=-1,c=-1,d=0,p=0,m=e,f=null;t:for(;;){for(var h;m!==n||a!==0&&m.nodeType!==3||(l=i+a),m!==o||r!==0&&m.nodeType!==3||(c=i+r),m.nodeType===3&&(i+=m.nodeValue.length),(h=m.firstChild)!==null;)f=m,m=h;for(;;){if(m===e)break t;if(f===n&&++d===a&&(l=i),f===o&&++p===r&&(c=i),(h=m.nextSibling)!==null)break;m=f,f=m.parentNode}m=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(xp={focusedElem:e,selectionRange:n},ic=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var x=y.memoizedProps,b=y.memoizedState,v=t.stateNode,g=v.getSnapshotBeforeUpdate(t.elementType===t.type?x:Vn(t.type,x),b);v.__reactInternalSnapshotBeforeUpdate=g}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(te(163))}}catch(k){ht(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return y=Zh,Zh=!1,y}function Zs(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,o!==void 0&&Ip(t,n,o)}a=a.next}while(a!==r)}}function tu(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Lp(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Tb(e){var t=e.alternate;t!==null&&(e.alternate=null,Tb(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[dr],delete t[xi],delete t[wp],delete t[nj],delete t[rj])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Rb(e){return e.tag===5||e.tag===3||e.tag===4}function eg(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Rb(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Dp(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=uc));else if(r!==4&&(e=e.child,e!==null))for(Dp(e,t,n),e=e.sibling;e!==null;)Dp(e,t,n),e=e.sibling}function Op(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Op(e,t,n),e=e.sibling;e!==null;)Op(e,t,n),e=e.sibling}var Bt=null,Gn=!1;function Qr(e,t,n){for(n=n.child;n!==null;)Mb(e,t,n),n=n.sibling}function Mb(e,t,n){if(hr&&typeof hr.onCommitFiberUnmount=="function")try{hr.onCommitFiberUnmount(Vc,n)}catch{}switch(n.tag){case 5:Xt||Po(n,t);case 6:var r=Bt,a=Gn;Bt=null,Qr(e,t,n),Bt=r,Gn=a,Bt!==null&&(Gn?(e=Bt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Bt.removeChild(n.stateNode));break;case 18:Bt!==null&&(Gn?(e=Bt,n=n.stateNode,e.nodeType===8?od(e.parentNode,n):e.nodeType===1&&od(e,n),mi(e)):od(Bt,n.stateNode));break;case 4:r=Bt,a=Gn,Bt=n.stateNode.containerInfo,Gn=!0,Qr(e,t,n),Bt=r,Gn=a;break;case 0:case 11:case 14:case 15:if(!Xt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&Ip(n,t,i),a=a.next}while(a!==r)}Qr(e,t,n);break;case 1:if(!Xt&&(Po(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){ht(n,t,l)}Qr(e,t,n);break;case 21:Qr(e,t,n);break;case 22:n.mode&1?(Xt=(r=Xt)||n.memoizedState!==null,Qr(e,t,n),Xt=r):Qr(e,t,n);break;default:Qr(e,t,n)}}function tg(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new yj),t.forEach(function(r){var a=Pj.bind(null,e,r);n.has(r)||(n.add(r),r.then(a,a))})}}function Kn(e,t){var n=t.deletions;if(n!==null)for(var r=0;ra&&(a=i),r&=~o}if(r=a,r=bt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*kj(r/1960))-r,10e?16:e,ia===null)var r=!1;else{if(e=ia,ia=null,Cc=0,Ge&6)throw Error(te(331));var a=Ge;for(Ge|=4,ge=e.current;ge!==null;){var o=ge,i=o.child;if(ge.flags&16){var l=o.deletions;if(l!==null){for(var c=0;cbt()-rf?Fa(e,0):nf|=n),hn(e,t)}function $b(e,t){t===0&&(e.mode&1?(t=dl,dl<<=1,!(dl&130023424)&&(dl=4194304)):t=1);var n=an();e=Or(e,t),e!==null&&($i(e,t,n),hn(e,n))}function _j(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$b(e,n)}function Pj(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(te(314))}r!==null&&r.delete(t),$b(e,n)}var Ub;Ub=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||mn.current)pn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return pn=!1,gj(e,t,n);pn=!!(e.flags&131072)}else pn=!1,it&&t.flags&1048576&&qy(t,fc,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hl(e,t),e=t.pendingProps;var a=Yo(t,Zt.current);Fo(t,n),a=Qm(null,t,r,e,a,n);var o=Xm();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,fn(r)?(o=!0,pc(t)):o=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,qm(t),a.updater=eu,t.stateNode=a,a._reactInternals=t,Ap(t,r,e,n),t=Tp(null,t,r,!0,o,n)):(t.tag=0,it&&o&&Fm(t),rn(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hl(e,t),e=t.pendingProps,a=r._init,r=a(r._payload),t.type=r,a=t.tag=Rj(r),e=Vn(r,e),a){case 0:t=Pp(null,t,r,e,n);break e;case 1:t=Qh(null,t,r,e,n);break e;case 11:t=Gh(null,t,r,e,n);break e;case 14:t=Yh(null,t,r,Vn(r.type,e),n);break e}throw Error(te(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Vn(r,a),Pp(e,t,r,a,n);case 1:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Vn(r,a),Qh(e,t,r,a,n);case 3:e:{if(Sb(t),e===null)throw Error(te(387));r=t.pendingProps,o=t.memoizedState,a=o.element,Xy(e,t),vc(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){a=Zo(Error(te(423)),t),t=Xh(e,t,r,n,a);break e}else if(r!==a){a=Zo(Error(te(424)),t),t=Xh(e,t,r,n,a);break e}else for(_n=da(t.stateNode.containerInfo.firstChild),Pn=t,it=!0,Yn=null,n=Yy(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Qo(),r===a){t=Fr(e,t,n);break e}rn(e,t,r,n)}t=t.child}return t;case 5:return Jy(t),e===null&&Sp(t),r=t.type,a=t.pendingProps,o=e!==null?e.memoizedProps:null,i=a.children,yp(r,a)?i=null:o!==null&&yp(r,o)&&(t.flags|=32),Cb(e,t),rn(e,t,i,n),t.child;case 6:return e===null&&Sp(t),null;case 13:return Nb(e,t,n);case 4:return Km(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Xo(t,null,r,n):rn(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Vn(r,a),Gh(e,t,r,a,n);case 7:return rn(e,t,t.pendingProps,n),t.child;case 8:return rn(e,t,t.pendingProps.children,n),t.child;case 12:return rn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,o=t.memoizedProps,i=a.value,tt(hc,r._currentValue),r._currentValue=i,o!==null)if(Jn(o.value,i)){if(o.children===a.children&&!mn.current){t=Fr(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var l=o.dependencies;if(l!==null){i=o.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(o.tag===1){c=Ir(-1,n&-n),c.tag=2;var d=o.updateQueue;if(d!==null){d=d.shared;var p=d.pending;p===null?c.next=c:(c.next=p.next,p.next=c),d.pending=c}}o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Np(o.return,n,t),l.lanes|=n;break}c=c.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(te(341));i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),Np(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}rn(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,Fo(t,n),a=Un(a),r=r(a),t.flags|=1,rn(e,t,r,n),t.child;case 14:return r=t.type,a=Vn(r,t.pendingProps),a=Vn(r.type,a),Yh(e,t,r,a,n);case 15:return wb(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Vn(r,a),Hl(e,t),t.tag=1,fn(r)?(e=!0,pc(t)):e=!1,Fo(t,n),xb(t,r,a),Ap(t,r,a,n),Tp(null,t,r,!0,e,n);case 19:return jb(e,t,n);case 22:return kb(e,t,n)}throw Error(te(156,t.tag))};function Bb(e,t){return hy(e,t)}function Tj(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Fn(e,t,n,r){return new Tj(e,t,n,r)}function lf(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Rj(e){if(typeof e=="function")return lf(e)?1:0;if(e!=null){if(e=e.$$typeof,e===jm)return 11;if(e===Am)return 14}return 2}function ha(e,t){var n=e.alternate;return n===null?(n=Fn(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Kl(e,t,n,r,a,o){var i=2;if(r=e,typeof e=="function")lf(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case bo:return za(n.children,a,o,t);case Nm:i=8,a|=8;break;case Xd:return e=Fn(12,n,t,a|2),e.elementType=Xd,e.lanes=o,e;case Jd:return e=Fn(13,n,t,a),e.elementType=Jd,e.lanes=o,e;case Zd:return e=Fn(19,n,t,a),e.elementType=Zd,e.lanes=o,e;case Jx:return ru(n,a,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Qx:i=10;break e;case Xx:i=9;break e;case jm:i=11;break e;case Am:i=14;break e;case ta:i=16,r=null;break e}throw Error(te(130,e==null?e:typeof e,""))}return t=Fn(i,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function za(e,t,n,r){return e=Fn(7,e,r,t),e.lanes=n,e}function ru(e,t,n,r){return e=Fn(22,e,r,t),e.elementType=Jx,e.lanes=n,e.stateNode={isHidden:!1},e}function md(e,t,n){return e=Fn(6,e,null,t),e.lanes=n,e}function fd(e,t,n){return t=Fn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Mj(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Gu(0),this.expirationTimes=Gu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Gu(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function cf(e,t,n,r,a,o,i,l,c){return e=new Mj(e,t,n,l,c),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Fn(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},qm(o),e}function Ej(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Kb)}catch(e){console.error(e)}}Kb(),Kx.exports=Mn;var lu=Kx.exports;const Fj=ES(lu);var cg=lu;Yd.createRoot=cg.createRoot,Yd.hydrateRoot=cg.hydrateRoot;/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zj=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Vb=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var $j={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Uj=u.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:o,iconNode:i,...l},c)=>u.createElement("svg",{ref:c,...$j,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:Vb("lucide",a),...l},[...i.map(([d,p])=>u.createElement(d,p)),...Array.isArray(o)?o:[o]]));/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ae=(e,t)=>{const n=u.forwardRef(({className:r,...a},o)=>u.createElement(Uj,{ref:o,iconNode:t,className:Vb(`lucide-${zj(e)}`,r),...a}));return n.displayName=`${e}`,n};/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gb=ae("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bj=ae("ArchiveRestore",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h2",key:"tvwodi"}],["path",{d:"M20 8v11a2 2 0 0 1-2 2h-2",key:"1gkqxj"}],["path",{d:"m9 15 3-3 3 3",key:"1pd0qc"}],["path",{d:"M12 12v9",key:"192myk"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Yb=ae("Archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Hj=ae("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wj=ae("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qj=ae("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bp=ae("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qb=ae("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ga=ae("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Kj=ae("CalendarClock",[["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M17.5 17.5 16 16.3V14",key:"akvzfd"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Et=ae("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yr=ae("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mf=ae("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wr=ae("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Vj=ae("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ja=ae("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ug=ae("CircleArrowUp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Xb=ae("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jb=ae("CircleDashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ff=ae("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gj=ae("CirclePause",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jc=ae("CirclePlay",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Yj=ae("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qj=ae("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const po=ae("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Zb=ae("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Xj=ae("CornerDownRight",[["polyline",{points:"15 10 20 15 15 20",key:"1q7qjw"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mo=ae("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ac=ae("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ew=ae("Earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tw=ae("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nw=ae("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const rw=ae("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const aw=ae("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Vl=ae("FileImage",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jj=ae("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Zj=ae("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gl=ae("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const eA=ae("Gem",[["path",{d:"M6 3h12l4 6-10 13L2 9Z",key:"1pcd5k"}],["path",{d:"M11 3 8 9l4 13 4-13-3-6",key:"1fcu3u"}],["path",{d:"M2 9h20",key:"16fsjt"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tA=ae("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nA=ae("Grid3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const rA=ae("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dg=ae("Hand",[["path",{d:"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1fvzgz"}],["path",{d:"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"1kc0my"}],["path",{d:"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8",key:"10h0bg"}],["path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"1s1gnw"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const aA=ae("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hf=ae("Hexagon",[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oA=ae("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wi=ae("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pg=ae("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ni=ae("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const sA=ae("ListTodo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const iA=ae("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pt=ae("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lA=ae("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ow=ae("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gf=ae("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vf=ae("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const cA=ae("Orbit",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}],["path",{d:"M10.4 21.9a10 10 0 0 0 9.941-15.416",key:"eohfx2"}],["path",{d:"M13.5 2.1a10 10 0 0 0-9.841 15.416",key:"19pvbm"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const uA=ae("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dA=ae("PanelLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fs=ae("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pA=ae("PinOff",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mA=ae("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ga=ae("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fA=ae("RefreshCcw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qi=ae("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hA=ae("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Tt=ae("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ts=ae("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gA=ae("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vA=ae("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const sw=ae("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $o=ae("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xf=ae("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xA=ae("SquarePlay",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 8 6 4-6 4Z",key:"f1r3lt"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Hp=ae("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const iw=ae("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yA=ae("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _c=ae("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ya=ae("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wp=ae("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bA=ae("Triangle",[["path",{d:"M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"14u9p9"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wA=ae("Undo2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const kA=ae("Waves",[["path",{d:"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"knzxuh"}],["path",{d:"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"2jd2cc"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lw=ae("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xr=ae("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mg=ae("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),Pe=e=>typeof e=="string",Is=()=>{let e,t;const n=new Promise((r,a)=>{e=r,t=a});return n.resolve=e,n.reject=t,n},fg=e=>e==null?"":String(e),CA=(e,t,n)=>{e.forEach(r=>{t[r]&&(n[r]=t[r])})},SA=/###/g,hg=e=>e&&e.includes("###")?e.replace(SA,"."):e,gg=e=>!e||Pe(e),ni=(e,t,n)=>{const r=Pe(t)?t.split("."):t;let a=0;for(;a{const{obj:r,k:a}=ni(e,t,Object);if(r!==void 0||t.length===1){r[a]=n;return}let o=t[t.length-1],i=t.slice(0,t.length-1),l=ni(e,i,Object);for(;l.obj===void 0&&i.length;)o=`${i[i.length-1]}.${o}`,i=i.slice(0,i.length-1),l=ni(e,i,Object),l!=null&&l.obj&&typeof l.obj[`${l.k}.${o}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${o}`]=n},NA=(e,t,n,r)=>{const{obj:a,k:o}=ni(e,t,Object);a[o]=a[o]||[],a[o].push(n)},Pc=(e,t)=>{const{obj:n,k:r}=ni(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},jA=(e,t,n)=>{const r=Pc(e,n);return r!==void 0?r:Pc(t,n)},cw=(e,t,n)=>{for(const r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?Pe(e[r])||e[r]instanceof String||Pe(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):cw(e[r],t[r],n):e[r]=t[r]);return e},_r=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),AA={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},_A=e=>Pe(e)?e.replace(/[&<>"'\/]/g,t=>AA[t]):e;class PA{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}}const TA=[" ",",","?","!",";"],RA=new PA(20),MA=(e,t,n)=>{t=t||"",n=n||"";const r=TA.filter(i=>!t.includes(i)&&!n.includes(i));if(r.length===0)return!0;const a=RA.getRegExp(`(${r.map(i=>i==="?"?"\\?":i).join("|")})`);let o=!a.test(e);if(!o){const i=e.indexOf(n);i>0&&!a.test(e.substring(0,i))&&(o=!0)}return o},qp=(e,t,n=".")=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;const r=t.split(n);let a=e;for(let o=0;oe==null?void 0:e.replace(/_/g,"-"),EA={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){var n,r;(r=(n=console==null?void 0:console[e])==null?void 0:n.apply)==null||r.call(n,console,t)}};class Tc{constructor(t,n={}){this.init(t,n)}init(t,n={}){this.prefix=n.prefix||"i18next:",this.logger=t||EA,this.options=n,this.debug=n.debug}log(...t){return this.forward(t,"log","",!0)}warn(...t){return this.forward(t,"warn","",!0)}error(...t){return this.forward(t,"error","")}deprecate(...t){return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(t,n,r,a){return a&&!this.debug?null:(t=t.map(o=>Pe(o)?o.replace(/[\r\n\x00-\x1F\x7F]/g," "):o),Pe(t[0])&&(t[0]=`${r}${this.prefix} ${t[0]}`),this.logger[n](t))}create(t){return new Tc(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new Tc(this.logger,t)}}var mr=new Tc;class cu{constructor(){this.observers={}}on(t,n){return t.split(" ").forEach(r=>{this.observers[r]||(this.observers[r]=new Map);const a=this.observers[r].get(n)||0;this.observers[r].set(n,a+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}once(t,n){const r=(...a)=>{n(...a),this.off(t,r)};return this.on(t,r),this}emit(t,...n){this.observers[t]&&Array.from(this.observers[t].entries()).forEach(([a,o])=>{for(let i=0;i{for(let i=0;i-1&&this.options.ns.splice(n,1)}getResource(t,n,r,a={}){var d,p;const o=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,i=a.ignoreJSONStructure!==void 0?a.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;t.includes(".")?l=t.split("."):(l=[t,n],r&&(Array.isArray(r)?l.push(...r):Pe(r)&&o?l.push(...r.split(o)):l.push(r)));const c=Pc(this.data,l);return!c&&!n&&!r&&t.includes(".")&&(t=l[0],n=l[1],r=l.slice(2).join(".")),c||!i||!Pe(r)?c:qp((p=(d=this.data)==null?void 0:d[t])==null?void 0:p[n],r,o)}addResource(t,n,r,a,o={silent:!1}){const i=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let l=[t,n];r&&(l=l.concat(i?r.split(i):r)),t.includes(".")&&(l=t.split("."),a=n,n=l[1]),this.addNamespaces(n),vg(this.data,l,a),o.silent||this.emit("added",t,n,r,a)}addResources(t,n,r,a={silent:!1}){for(const o in r)(Pe(r[o])||Array.isArray(r[o]))&&this.addResource(t,n,o,r[o],{silent:!0});a.silent||this.emit("added",t,n,r)}addResourceBundle(t,n,r,a,o,i={silent:!1,skipCopy:!1}){let l=[t,n];t.includes(".")&&(l=t.split("."),a=r,r=n,n=l[1]),this.addNamespaces(n);let c=Pc(this.data,l)||{};i.skipCopy||(r=JSON.parse(JSON.stringify(r))),a?cw(c,r,o):c={...c,...r},vg(this.data,l,c),i.silent||this.emit("added",t,n,r)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(a=>n[a]&&Object.keys(n[a]).length>0)}toJSON(){return this.data}}var uw={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,a){return e.forEach(o=>{var i;t=((i=this.processors[o])==null?void 0:i.process(t,n,r,a))??t}),t}};const dw=Symbol("i18next/PATH_KEY");function IA(){const e=[],t=Object.create(null);let n;return t.get=(r,a)=>{var o;return(o=n==null?void 0:n.revoke)==null||o.call(n),a===dw?e:(e.push(a),n=Proxy.revocable(r,t),n.proxy)},Proxy.revocable(Object.create(null),t).proxy}function Uo(e,t){const{[dw]:n}=e(IA()),r=(t==null?void 0:t.keySeparator)??".",a=(t==null?void 0:t.nsSeparator)??":";if(n.length>1&&a){const o=t==null?void 0:t.ns,i=Array.isArray(o)?o:null;if(i&&i.length>1&&i.slice(1).includes(n[0]))return`${n[0]}${a}${n.slice(1).join(r)}`}return n.join(r)}const hd=e=>!Pe(e)&&typeof e!="boolean"&&typeof e!="number";class Rc extends cu{constructor(t,n={}){super(),CA(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=mr.create("translator"),this.checkedLoadedFor={}}changeLanguage(t){t&&(this.language=t)}exists(t,n={interpolation:{}}){const r={...n};if(t==null)return!1;const a=this.resolve(t,r);if((a==null?void 0:a.res)===void 0)return!1;const o=hd(a.res);return!(r.returnObjects===!1&&o)}extractFromKey(t,n){let r=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const a=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let o=n.ns||this.options.defaultNS||[];const i=r&&t.includes(r),l=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!MA(t,r,a);if(i&&!l){const c=t.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:t,namespaces:Pe(o)?[o]:o};const d=t.split(r);(r!==a||r===a&&this.options.ns.includes(d[0]))&&(o=d.shift()),t=d.join(a)}return{key:t,namespaces:Pe(o)?[o]:o}}translate(t,n,r){let a=typeof n=="object"?{...n}:n;if(typeof a!="object"&&this.options.overloadTranslationOptionHandler&&(a=this.options.overloadTranslationOptionHandler(arguments)),typeof a=="object"&&(a={...a}),a||(a={}),t==null)return"";typeof t=="function"&&(t=Uo(t,{...this.options,...a})),Array.isArray(t)||(t=[String(t)]),t=t.map(F=>typeof F=="function"?Uo(F,{...this.options,...a}):String(F));const o=a.returnDetails!==void 0?a.returnDetails:this.options.returnDetails,i=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,{key:l,namespaces:c}=this.extractFromKey(t[t.length-1],a),d=c[c.length-1];let p=a.nsSeparator!==void 0?a.nsSeparator:this.options.nsSeparator;p===void 0&&(p=":");const m=a.lng||this.language,f=a.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if((m==null?void 0:m.toLowerCase())==="cimode")return f?o?{res:`${d}${p}${l}`,usedKey:l,exactUsedKey:l,usedLng:m,usedNS:d,usedParams:this.getUsedParamsDetails(a)}:`${d}${p}${l}`:o?{res:l,usedKey:l,exactUsedKey:l,usedLng:m,usedNS:d,usedParams:this.getUsedParamsDetails(a)}:l;const h=this.resolve(t,a);let y=h==null?void 0:h.res;const x=(h==null?void 0:h.usedKey)||l,b=(h==null?void 0:h.exactUsedKey)||l,v=["[object Number]","[object Function]","[object RegExp]"],g=a.joinArrays!==void 0?a.joinArrays:this.options.joinArrays,w=!this.i18nFormat||this.i18nFormat.handleAsObject,k=a.count!==void 0&&!Pe(a.count),C=Rc.hasDefaultValue(a),N=k?this.pluralResolver.getSuffix(m,a.count,a):"",S=a.ordinal&&k?this.pluralResolver.getSuffix(m,a.count,{ordinal:!1}):"",A=k&&!a.ordinal&&a.count===0,E=A&&a[`defaultValue${this.options.pluralSeparator}zero`]||a[`defaultValue${N}`]||a[`defaultValue${S}`]||a.defaultValue;let _=y;w&&!y&&C&&(_=E);const R=hd(_),T=Object.prototype.toString.apply(_);if(w&&_&&R&&!v.includes(T)&&!(Pe(g)&&Array.isArray(_))){if(!a.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const F=this.options.returnedObjectHandler?this.options.returnedObjectHandler(x,_,{...a,ns:c}):`key '${l} (${this.language})' returned an object instead of string.`;return o?(h.res=F,h.usedParams=this.getUsedParamsDetails(a),h):F}if(i){const F=Array.isArray(_),z=F?[]:{},K=F?b:x;for(const $ in _)if(Object.prototype.hasOwnProperty.call(_,$)){const W=`${K}${i}${$}`;C&&!y?z[$]=this.translate(W,{...a,defaultValue:hd(E)?E[$]:void 0,joinArrays:!1,ns:c}):z[$]=this.translate(W,{...a,joinArrays:!1,ns:c}),z[$]===W&&(z[$]=_[$])}y=z}}else if(w&&Pe(g)&&Array.isArray(y))y=y.join(g),y&&(y=this.extendTranslation(y,t,a,r));else{let F=!1,z=!1;!this.isValidLookup(y)&&C&&(F=!0,y=E),this.isValidLookup(y)||(z=!0,y=l);const $=(a.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&z?void 0:y,W=C&&E!==y&&this.options.updateMissing;if(z||F||W){if(this.logger.log(W?"updateKey":"missingKey",m,d,l,W?E:y),i){const Y=this.resolve(l,{...a,keySeparator:!1});Y&&Y.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let P=[];const D=this.languageUtils.getFallbackCodes(this.options.fallbackLng,a.lng||this.language);if(this.options.saveMissingTo==="fallback"&&D&&D[0])for(let Y=0;Y{var le;const pe=C&&de!==y?de:$;this.options.missingKeyHandler?this.options.missingKeyHandler(Y,d,oe,pe,W,a):(le=this.backendConnector)!=null&&le.saveMissing&&this.backendConnector.saveMissing(Y,d,oe,pe,W,a),this.emit("missingKey",Y,d,oe,y)};this.options.saveMissing&&(this.options.saveMissingPlurals&&k?P.forEach(Y=>{const oe=this.pluralResolver.getSuffixes(Y,a);A&&a[`defaultValue${this.options.pluralSeparator}zero`]&&!oe.includes(`${this.options.pluralSeparator}zero`)&&oe.push(`${this.options.pluralSeparator}zero`),oe.forEach(de=>{G([Y],l+de,a[`defaultValue${de}`]||E)})}):G(P,l,E))}y=this.extendTranslation(y,t,a,h,r),z&&y===l&&this.options.appendNamespaceToMissingKey&&(y=`${d}${p}${l}`),(z||F)&&this.options.parseMissingKeyHandler&&(y=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}${p}${l}`:l,F?y:void 0,a))}return o?(h.res=y,h.usedParams=this.getUsedParamsDetails(a),h):y}extendTranslation(t,n,r,a,o){var c,d;if((c=this.i18nFormat)!=null&&c.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||a.usedLng,a.usedNS,a.usedKey,{resolved:a});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const p=Pe(t)&&(((d=r==null?void 0:r.interpolation)==null?void 0:d.skipOnVariables)!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let m;if(p){const h=t.match(this.interpolator.nestingRegexp);m=h&&h.length}let f=r.replace&&!Pe(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(f={...this.options.interpolation.defaultVariables,...f}),t=this.interpolator.interpolate(t,f,r.lng||this.language||a.usedLng,r),p){const h=t.match(this.interpolator.nestingRegexp),y=h&&h.length;m(o==null?void 0:o[0])===h[0]&&!r.context?(this.logger.warn(`It seems you are nesting recursively key: ${h[0]} in key: ${n[0]}`),null):this.translate(...h,n),r)),r.interpolation&&this.interpolator.reset()}const i=r.postProcess||this.options.postProcess,l=Pe(i)?[i]:i;return t!=null&&(l!=null&&l.length)&&r.applyPostProcessor!==!1&&(t=uw.handle(l,t,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...a,usedParams:this.getUsedParamsDetails(r)},...r}:r,this)),t}resolve(t,n={}){let r,a,o,i,l;return Pe(t)&&(t=[t]),Array.isArray(t)&&(t=t.map(c=>typeof c=="function"?Uo(c,{...this.options,...n}):c)),t.forEach(c=>{if(this.isValidLookup(r))return;const d=this.extractFromKey(c,n),p=d.key;a=p;let m=d.namespaces;this.options.fallbackNS&&(m=m.concat(this.options.fallbackNS));const f=n.count!==void 0&&!Pe(n.count),h=f&&!n.ordinal&&n.count===0,y=n.context!==void 0&&(Pe(n.context)||typeof n.context=="number")&&n.context!=="",x=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);m.forEach(b=>{var v,g;this.isValidLookup(r)||(l=b,!this.checkedLoadedFor[`${x[0]}-${b}`]&&((v=this.utils)!=null&&v.hasLoadedNamespace)&&!((g=this.utils)!=null&&g.hasLoadedNamespace(l))&&(this.checkedLoadedFor[`${x[0]}-${b}`]=!0,this.logger.warn(`key "${a}" for languages "${x.join(", ")}" won't get resolved as namespace "${l}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),x.forEach(w=>{var N;if(this.isValidLookup(r))return;i=w;const k=[p];if((N=this.i18nFormat)!=null&&N.addLookupKeys)this.i18nFormat.addLookupKeys(k,p,w,b,n);else{let S;f&&(S=this.pluralResolver.getSuffix(w,n.count,n));const A=`${this.options.pluralSeparator}zero`,E=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(f&&(n.ordinal&&S.startsWith(E)&&k.push(p+S.replace(E,this.options.pluralSeparator)),k.push(p+S),h&&k.push(p+A)),y){const _=`${p}${this.options.contextSeparator||"_"}${n.context}`;k.push(_),f&&(n.ordinal&&S.startsWith(E)&&k.push(_+S.replace(E,this.options.pluralSeparator)),k.push(_+S),h&&k.push(_+A))}}let C;for(;C=k.pop();)this.isValidLookup(r)||(o=C,r=this.getResource(w,b,C,n))}))})}),{res:r,usedKey:a,exactUsedKey:o,usedLng:i,usedNS:l}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,r,a={}){var o;return(o=this.i18nFormat)!=null&&o.getResource?this.i18nFormat.getResource(t,n,r,a):this.resourceStore.getResource(t,n,r,a)}getUsedParamsDetails(t={}){const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&!Pe(t.replace);let a=r?t.replace:t;if(r&&typeof t.count<"u"&&(a.count=t.count),this.options.interpolation.defaultVariables&&(a={...this.options.interpolation.defaultVariables,...a}),!r){a={...a};for(const o of n)delete a[o]}return a}static hasDefaultValue(t){const n="defaultValue";for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&r.startsWith(n)&&t[r]!==void 0)return!0;return!1}}class yg{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=mr.create("languageUtils")}getScriptPartFromCode(t){if(t=ji(t),!t||!t.includes("-"))return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=ji(t),!t||!t.includes("-"))return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(Pe(t)&&t.includes("-")){let n;try{n=Intl.getCanonicalLocales(t)[0]}catch{}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(t)}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(r=>{if(n)return;const a=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(a))&&(n=a)}),!n&&this.options.supportedLngs&&t.forEach(r=>{if(n)return;const a=this.getScriptPartFromCode(r);if(this.isSupportedCode(a))return n=a;const o=this.getLanguagePartFromCode(r);if(this.isSupportedCode(o))return n=o;n=this.options.supportedLngs.find(i=>i===o?!0:!i.includes("-")&&!o.includes("-")?!1:!!(i.includes("-")&&!o.includes("-")&&i.slice(0,i.indexOf("-"))===o||i.startsWith(o)&&o.length>1))}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),Pe(t)&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}toResolveHierarchy(t,n){const r=this.getFallbackCodes((n===!1?[]:n)||this.options.fallbackLng||[],t),a=[],o=i=>{i&&(this.isSupportedCode(i)?a.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return Pe(t)&&(t.includes("-")||t.includes("_"))?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(t))):Pe(t)&&o(this.formatLanguageCode(t)),r.forEach(i=>{a.includes(i)||o(this.formatLanguageCode(i))}),a}}const bg={zero:0,one:1,two:2,few:3,many:4,other:5},wg={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class LA{constructor(t,n={}){this.languageUtils=t,this.options=n,this.logger=mr.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(t,n={}){const r=ji(t==="dev"?"en":t),a=n.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:r,type:a});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let i;try{i=new Intl.PluralRules(r,{type:a})}catch{if(typeof Intl>"u")return this.logger.error("No Intl support, please use an Intl polyfill!"),wg;if(!t.match(/-|_/))return wg;const c=this.languageUtils.getLanguagePartFromCode(t);i=this.getRule(c,n)}return this.pluralRulesCache[o]=i,i}needsPlural(t,n={}){let r=this.getRule(t,n);return r||(r=this.getRule("dev",n)),(r==null?void 0:r.resolvedOptions().pluralCategories.length)>1}getPluralFormsOfKey(t,n,r={}){return this.getSuffixes(t,r).map(a=>`${n}${a}`)}getSuffixes(t,n={}){let r=this.getRule(t,n);return r||(r=this.getRule("dev",n)),r?r.resolvedOptions().pluralCategories.sort((a,o)=>bg[a]-bg[o]).map(a=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${a}`):[]}getSuffix(t,n,r={}){const a=this.getRule(t,r);return a?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${a.select(n)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",n,r))}}const kg=(e,t,n,r=".",a=!0)=>{let o=jA(e,t,n);return!o&&a&&Pe(n)&&(o=qp(e,n,r),o===void 0&&(o=qp(t,n,r))),o},gd=e=>e.replace(/\$/g,"$$$$");class Cg{constructor(t={}){var n;this.logger=mr.create("interpolator"),this.options=t,this.format=((n=t==null?void 0:t.interpolation)==null?void 0:n.format)||(r=>r),this.init(t)}init(t={}){t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:r,useRawValueToEscape:a,prefix:o,prefixEscaped:i,suffix:l,suffixEscaped:c,formatSeparator:d,unescapeSuffix:p,unescapePrefix:m,nestingPrefix:f,nestingPrefixEscaped:h,nestingSuffix:y,nestingSuffixEscaped:x,nestingOptionsSeparator:b,maxReplaces:v,alwaysFormat:g}=t.interpolation;this.escape=n!==void 0?n:_A,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=a!==void 0?a:!1,this.prefix=o?_r(o):i||"{{",this.suffix=l?_r(l):c||"}}",this.formatSeparator=d||",",this.unescapePrefix=p?"":m?_r(m):"-",this.unescapeSuffix=this.unescapePrefix?"":p?_r(p):"",this.nestingPrefix=f?_r(f):h||_r("$t("),this.nestingSuffix=y?_r(y):x||_r(")"),this.nestingOptionsSeparator=b||",",this.maxReplaces=v||1e3,this.alwaysFormat=g!==void 0?g:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,r)=>(n==null?void 0:n.source)===r?(n.lastIndex=0,n):new RegExp(r,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(t,n,r,a){var h;let o,i,l;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=y=>{if(!y.includes(this.formatSeparator)){const g=kg(n,c,y,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(g,void 0,r,{...a,...n,interpolationkey:y}):g}const x=y.split(this.formatSeparator),b=x.shift().trim(),v=x.join(this.formatSeparator).trim();return this.format(kg(n,c,b,this.options.keySeparator,this.options.ignoreJSONStructure),v,r,{...a,...n,interpolationkey:b})};this.resetRegExp(),!this.escapeValue&&typeof t=="string"&&/\$t\([^)]*\{[^}]*\{\{/.test(t)&&this.logger.warn("nesting options string contains interpolated variables with escapeValue: false — if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.");const p=(a==null?void 0:a.missingInterpolationHandler)||this.options.missingInterpolationHandler,m=((h=a==null?void 0:a.interpolation)==null?void 0:h.skipOnVariables)!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:y=>gd(y)},{regex:this.regexp,safeValue:y=>this.escapeValue?gd(this.escape(y)):gd(y)}].forEach(y=>{for(l=0;o=y.regex.exec(t);){const x=o[1].trim();if(i=d(x),i===void 0)if(typeof p=="function"){const v=p(t,o,a);i=Pe(v)?v:""}else if(a&&Object.prototype.hasOwnProperty.call(a,x))i="";else if(m){i=o[0];continue}else this.logger.warn(`missed to pass in variable ${x} for interpolating ${t}`),i="";else!Pe(i)&&!this.useRawValueToEscape&&(i=fg(i));const b=y.safeValue(i);if(t=t.replace(o[0],b),m?(y.regex.lastIndex+=i.length,y.regex.lastIndex-=o[0].length):y.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),t}nest(t,n,r={}){let a,o,i;const l=(c,d)=>{const p=this.nestingOptionsSeparator;if(!c.includes(p))return c;const m=c.split(new RegExp(`${_r(p)}[ ]*{`));let f=`{${m[1]}`;c=m[0],f=this.interpolate(f,i);const h=f.match(/'/g),y=f.match(/"/g);(((h==null?void 0:h.length)??0)%2===0&&!y||((y==null?void 0:y.length)??0)%2!==0)&&(f=f.replace(/'/g,'"'));try{i=JSON.parse(f),d&&(i={...d,...i})}catch(x){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,x),`${c}${p}${f}`}return i.defaultValue&&i.defaultValue.includes(this.prefix)&&delete i.defaultValue,c};for(;a=this.nestingRegexp.exec(t);){let c=[];i={...r},i=i.replace&&!Pe(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;const d=/{.*}/.test(a[1])?a[1].lastIndexOf("}")+1:a[1].indexOf(this.formatSeparator);if(d!==-1&&(c=a[1].slice(d).split(this.formatSeparator).map(p=>p.trim()).filter(Boolean),a[1]=a[1].slice(0,d)),o=n(l.call(this,a[1].trim(),i),i),o&&a[0]===t&&!Pe(o))return o;Pe(o)||(o=fg(o)),o||(this.logger.warn(`missed to resolve ${a[1]} for nesting ${t}`),o=""),c.length&&(o=c.reduce((p,m)=>this.format(p,m,r.lng,{...r,interpolationkey:a[1].trim()}),o.trim())),t=t.replace(a[0],o),this.regexp.lastIndex=0}return t}}const DA=e=>{let t=e.toLowerCase().trim();const n={};if(e.includes("(")){const r=e.split("(");t=r[0].toLowerCase().trim();const a=r[1].slice(0,-1);t==="currency"&&!a.includes(":")?n.currency||(n.currency=a.trim()):t==="relativetime"&&!a.includes(":")?n.range||(n.range=a.trim()):a.split(";").forEach(i=>{if(i){const[l,...c]=i.split(":"),d=c.join(":").trim().replace(/^'+|'+$/g,""),p=l.trim();n[p]||(n[p]=d),d==="false"&&(n[p]=!1),d==="true"&&(n[p]=!0),isNaN(d)||(n[p]=parseInt(d,10))}})}return{formatName:t,formatOptions:n}},Sg=e=>{const t={};return(n,r,a)=>{let o=a;a&&a.interpolationkey&&a.formatParams&&a.formatParams[a.interpolationkey]&&a[a.interpolationkey]&&(o={...o,[a.interpolationkey]:void 0});const i=r+JSON.stringify(o);let l=t[i];return l||(l=e(ji(r),a),t[i]=l),l(n)}},OA=e=>(t,n,r)=>e(ji(n),r)(t);class FA{constructor(t={}){this.logger=mr.create("formatter"),this.options=t,this.init(t)}init(t,n={interpolation:{}}){this.formatSeparator=n.interpolation.formatSeparator||",";const r=n.cacheInBuiltFormats?Sg:OA;this.formats={number:r((a,o)=>{const i=new Intl.NumberFormat(a,{...o});return l=>i.format(l)}),currency:r((a,o)=>{const i=new Intl.NumberFormat(a,{...o,style:"currency"});return l=>i.format(l)}),datetime:r((a,o)=>{const i=new Intl.DateTimeFormat(a,{...o});return l=>i.format(l)}),relativetime:r((a,o)=>{const i=new Intl.RelativeTimeFormat(a,{...o});return l=>i.format(l,o.range||"day")}),list:r((a,o)=>{const i=new Intl.ListFormat(a,{...o});return l=>i.format(l)})}}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=Sg(n)}format(t,n,r,a={}){if(!n||t==null)return t;const o=n.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&!o[0].includes(")")&&o.find(l=>l.includes(")"))){const l=o.findIndex(c=>c.includes(")"));o[0]=[o[0],...o.splice(1,l)].join(this.formatSeparator)}return o.reduce((l,c)=>{var m;const{formatName:d,formatOptions:p}=DA(c);if(this.formats[d]){let f=l;try{const h=((m=a==null?void 0:a.formatParams)==null?void 0:m[a.interpolationkey])||{},y=h.locale||h.lng||a.locale||a.lng||r;f=this.formats[d](l,y,{...p,...a,...h})}catch(h){this.logger.warn(h)}return f}else this.logger.warn(`there was no format function for ${d}`);return l},t)}}const zA=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class $A extends cu{constructor(t,n,r,a={}){var o,i;super(),this.backend=t,this.store=n,this.services=r,this.languageUtils=r.languageUtils,this.options=a,this.logger=mr.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=a.maxParallelReads||10,this.readingCalls=0,this.maxRetries=a.maxRetries>=0?a.maxRetries:5,this.retryTimeout=a.retryTimeout>=1?a.retryTimeout:350,this.state={},this.queue=[],(i=(o=this.backend)==null?void 0:o.init)==null||i.call(o,r,a.backend,a)}queueLoad(t,n,r,a){const o={},i={},l={},c={};return t.forEach(d=>{let p=!0;n.forEach(m=>{const f=`${d}|${m}`;!r.reload&&this.store.hasResourceBundle(d,m)?this.state[f]=2:this.state[f]<0||(this.state[f]===1?i[f]===void 0&&(i[f]=!0):(this.state[f]=1,p=!1,i[f]===void 0&&(i[f]=!0),o[f]===void 0&&(o[f]=!0),c[m]===void 0&&(c[m]=!0)))}),p||(l[d]=!0)}),(Object.keys(o).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:a}),{toLoad:Object.keys(o),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(c)}}loaded(t,n,r){const a=t.split("|"),o=a[0],i=a[1];n&&this.emit("failedLoading",o,i,n),!n&&r&&this.store.addResourceBundle(o,i,r,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&r&&(this.state[t]=0);const l={};this.queue.forEach(c=>{NA(c.loaded,[o],i),zA(c,t),n&&c.errors.push(n),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(d=>{l[d]||(l[d]={});const p=c.loaded[d];p.length&&p.forEach(m=>{l[d][m]===void 0&&(l[d][m]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",l),this.queue=this.queue.filter(c=>!c.done)}read(t,n,r,a=0,o=this.retryTimeout,i){if(!t.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:r,tried:a,wait:o,callback:i});return}this.readingCalls++;const l=(d,p)=>{if(this.readingCalls--,this.waitingReads.length>0){const m=this.waitingReads.shift();this.read(m.lng,m.ns,m.fcName,m.tried,m.wait,m.callback)}if(d&&p&&a{this.read(t,n,r,a+1,o*2,i)},o);return}i(d,p)},c=this.backend[r].bind(this.backend);if(c.length===2){try{const d=c(t,n);d&&typeof d.then=="function"?d.then(p=>l(null,p)).catch(l):l(null,d)}catch(d){l(d)}return}return c(t,n,l)}prepareLoading(t,n,r={},a){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),a&&a();Pe(t)&&(t=this.languageUtils.toResolveHierarchy(t)),Pe(n)&&(n=[n]);const o=this.queueLoad(t,n,r,a);if(!o.toLoad.length)return o.pending.length||a(),null;o.toLoad.forEach(i=>{this.loadOne(i)})}load(t,n,r){this.prepareLoading(t,n,{},r)}reload(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}loadOne(t,n=""){const r=t.split("|"),a=r[0],o=r[1];this.read(a,o,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${n}loading namespace ${o} for language ${a} failed`,i),!i&&l&&this.logger.log(`${n}loaded namespace ${o} for language ${a}`,l),this.loaded(t,i,l)})}saveMissing(t,n,r,a,o,i={},l=()=>{}){var c,d,p,m,f;if((d=(c=this.services)==null?void 0:c.utils)!=null&&d.hasLoadedNamespace&&!((m=(p=this.services)==null?void 0:p.utils)!=null&&m.hasLoadedNamespace(n))){this.logger.warn(`did not save key "${r}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if((f=this.backend)!=null&&f.create){const h={...i,isUpdate:o},y=this.backend.create.bind(this.backend);if(y.length<6)try{let x;y.length===5?x=y(t,n,r,a,h):x=y(t,n,r,a),x&&typeof x.then=="function"?x.then(b=>l(null,b)).catch(l):l(null,x)}catch(x){l(x)}else y(t,n,r,a,l,h)}!t||!t[0]||this.store.addResource(t[0],n,r,a)}}}const vd=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),Pe(e[1])&&(t.defaultValue=e[1]),Pe(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(r=>{t[r]=n[r]})}return t},interpolation:{escapeValue:!0,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Ng=e=>(Pe(e.ns)&&(e.ns=[e.ns]),Pe(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),Pe(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes("cimode")&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),Cl=()=>{},UA=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})};class ri extends cu{constructor(t={},n){if(super(),this.options=Ng(t),this.services={},this.logger=mr,this.modules={external:[]},UA(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(t={},n){this.isInitializing=!0,typeof t=="function"&&(n=t,t={}),t.defaultNS==null&&t.ns&&(Pe(t.ns)?t.defaultNS=t.ns:t.ns.includes("translation")||(t.defaultNS=t.ns[0]));const r=vd();this.options={...r,...this.options,...Ng(t)},this.options.interpolation={...r.interpolation,...this.options.interpolation},t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=r.overloadTranslationOptionHandler);const a=d=>d?typeof d=="function"?new d:d:null;if(!this.options.isClone){this.modules.logger?mr.init(a(this.modules.logger),this.options):mr.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:d=FA;const p=new yg(this.options);this.store=new xg(this.options.resources,this.options);const m=this.services;m.logger=mr,m.resourceStore=this.store,m.languageUtils=p,m.pluralResolver=new LA(p,{prepend:this.options.pluralSeparator}),d&&(m.formatter=a(d),m.formatter.init&&m.formatter.init(m,this.options),this.options.interpolation.format=m.formatter.format.bind(m.formatter)),m.interpolator=new Cg(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new $A(a(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",(f,...h)=>{this.emit(f,...h)}),this.modules.languageDetector&&(m.languageDetector=a(this.modules.languageDetector),m.languageDetector.init&&m.languageDetector.init(m,this.options.detection,this.options)),this.modules.i18nFormat&&(m.i18nFormat=a(this.modules.i18nFormat),m.i18nFormat.init&&m.i18nFormat.init(this)),this.translator=new Rc(this.services,this.options),this.translator.on("*",(f,...h)=>{this.emit(f,...h)}),this.modules.external.forEach(f=>{f.init&&f.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Cl),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=(...p)=>this.store[d](...p)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=(...p)=>(this.store[d](...p),this)});const l=Is(),c=()=>{const d=(p,m)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(m),n(p,m)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initAsync?c():setTimeout(c,0),l}loadResources(t,n=Cl){var o,i;let r=n;const a=Pe(t)?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if((a==null?void 0:a.toLowerCase())==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const l=[],c=d=>{if(!d||d==="cimode")return;this.services.languageUtils.toResolveHierarchy(d).forEach(m=>{m!=="cimode"&&(l.includes(m)||l.push(m))})};a?c(a):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(p=>c(p)),(i=(o=this.options.preload)==null?void 0:o.forEach)==null||i.call(o,d=>c(d)),this.services.backendConnector.load(l,this.options.ns,d=>{!d&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(d)})}else r(null)}reloadResources(t,n,r){const a=Is();return typeof t=="function"&&(r=t,t=void 0),typeof n=="function"&&(r=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),r||(r=Cl),this.services.backendConnector.reload(t,n,o=>{a.resolve(),r(o)}),a}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&uw.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!["cimode","dev"].includes(t)){for(let n=0;n{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},o=(l,c)=>{c?this.isLanguageChangingTo===t&&(a(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,r.resolve((...d)=>this.t(...d)),n&&n(l,(...d)=>this.t(...d))},i=l=>{var p,m;!t&&!l&&this.services.languageDetector&&(l=[]);const c=Pe(l)?l:l&&l[0],d=this.store.hasLanguageSomeTranslations(c)?c:this.services.languageUtils.getBestMatchFromCodes(Pe(l)?[l]:l);d&&(this.language||a(d),this.translator.language||this.translator.changeLanguage(d),(m=(p=this.services.languageDetector)==null?void 0:p.cacheUserLanguage)==null||m.call(p,d)),this.loadResources(d,f=>{o(f,d)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?i(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(i):this.services.languageDetector.detect(i):i(t),r}getFixedT(t,n,r){const a=(o,i,...l)=>{let c;typeof i!="object"?c=this.options.overloadTranslationOptionHandler([o,i].concat(l)):c={...i},c.lng=c.lng||a.lng,c.lngs=c.lngs||a.lngs,c.ns=c.ns||a.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||r||a.keyPrefix);const d={...this.options,...c};typeof c.keyPrefix=="function"&&(c.keyPrefix=Uo(c.keyPrefix,d));const p=this.options.keySeparator||".";let m;return c.keyPrefix&&Array.isArray(o)?m=o.map(f=>(typeof f=="function"&&(f=Uo(f,d)),`${c.keyPrefix}${p}${f}`)):(typeof o=="function"&&(o=Uo(o,d)),m=c.keyPrefix?`${c.keyPrefix}${p}${o}`:o),this.t(m,c)};return Pe(t)?a.lng=t:a.lngs=t,a.ns=n,a.keyPrefix=r,a}t(...t){var n;return(n=this.translator)==null?void 0:n.translate(...t)}exists(...t){var n;return(n=this.translator)==null?void 0:n.exists(...t)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t,n={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=n.lng||this.resolvedLanguage||this.languages[0],a=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const i=(l,c)=>{const d=this.services.backendConnector.state[`${l}|${c}`];return d===-1||d===0||d===2};if(n.precheck){const l=n.precheck(this,i);if(l!==void 0)return l}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(r,t)&&(!a||i(o,t)))}loadNamespaces(t,n){const r=Is();return this.options.ns?(Pe(t)&&(t=[t]),t.forEach(a=>{this.options.ns.includes(a)||this.options.ns.push(a)}),this.loadResources(a=>{r.resolve(),n&&n(a)}),r):(n&&n(),Promise.resolve())}loadLanguages(t,n){const r=Is();Pe(t)&&(t=[t]);const a=this.options.preload||[],o=t.filter(i=>!a.includes(i)&&this.services.languageUtils.isSupportedCode(i));return o.length?(this.options.preload=a.concat(o),this.loadResources(i=>{r.resolve(),n&&n(i)}),r):(n&&n(),Promise.resolve())}dir(t){var a,o;if(t||(t=this.resolvedLanguage||(((a=this.languages)==null?void 0:a.length)>0?this.languages[0]:this.language)),!t)return"rtl";try{const i=new Intl.Locale(t);if(i&&i.getTextInfo){const l=i.getTextInfo();if(l&&l.direction)return l.direction}}catch{}const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=((o=this.services)==null?void 0:o.languageUtils)||new yg(vd());return t.toLowerCase().indexOf("-latn")>1?"ltr":n.includes(r.getLanguagePartFromCode(t))||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(t={},n){const r=new ri(t,n);return r.createInstance=ri.createInstance,r}cloneInstance(t={},n=Cl){const r=t.forkResourceStore;r&&delete t.forkResourceStore;const a={...this.options,...t,isClone:!0},o=new ri(a);if((t.debug!==void 0||t.prefix!==void 0)&&(o.logger=o.logger.clone(t)),["store","services","language"].forEach(l=>{o[l]=this[l]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},r){const l=Object.keys(this.store.data).reduce((c,d)=>(c[d]={...this.store.data[d]},c[d]=Object.keys(c[d]).reduce((p,m)=>(p[m]={...c[d][m]},p),c[d]),c),{});o.store=new xg(l,a),o.services.resourceStore=o.store}if(t.interpolation){const c={...vd().interpolation,...this.options.interpolation,...t.interpolation},d={...a,interpolation:c};o.services.interpolator=new Cg(d)}return o.translator=new Rc(o.services,a),o.translator.on("*",(l,...c)=>{o.emit(l,...c)}),o.init(a,n),o.translator.options=a,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const vt=ri.createInstance();vt.createInstance;vt.dir;vt.init;vt.loadResources;vt.reloadResources;vt.use;vt.changeLanguage;vt.getFixedT;vt.t;vt.exists;vt.setDefaultNamespace;vt.hasLoadedNamespace;vt.loadNamespaces;vt.loadLanguages;const BA=(e,t,n,r)=>{var o,i,l,c;const a=[n,{code:t,...r||{}}];if((i=(o=e==null?void 0:e.services)==null?void 0:o.logger)!=null&&i.forward)return e.services.logger.forward(a,"warn","react-i18next::",!0);Ya(a[0])&&(a[0]=`react-i18next:: ${a[0]}`),(c=(l=e==null?void 0:e.services)==null?void 0:l.logger)!=null&&c.warn?e.services.logger.warn(...a):console!=null&&console.warn&&console.warn(...a)},jg={},Kp=(e,t,n,r)=>{Ya(n)&&jg[n]||(Ya(n)&&(jg[n]=new Date),BA(e,t,n,r))},pw=(e,t)=>()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}},Vp=(e,t,n)=>{e.loadNamespaces(t,pw(e,n))},Ag=(e,t,n,r)=>{if(Ya(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return Vp(e,n,r);n.forEach(a=>{e.options.ns.indexOf(a)<0&&e.options.ns.push(a)}),e.loadLanguages(t,pw(e,r))},HA=(e,t,n={})=>!t.languages||!t.languages.length?(Kp(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(r,a)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!a(r.isLanguageChangingTo,e))return!1}}),Ya=e=>typeof e=="string",WA=e=>typeof e=="object"&&e!==null,qA=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,KA={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},VA=e=>KA[e],GA=e=>e.replace(qA,VA);let Gp={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:GA,transDefaultProps:void 0};const YA=(e={})=>{Gp={...Gp,...e}},QA=()=>Gp;let mw;const XA=e=>{mw=e},JA=()=>mw,ZA={type:"3rdParty",init(e){YA(e.options.react),XA(e)}},e2=u.createContext();class t2{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var fw={exports:{}},hw={};/** - * @license React - * use-sync-external-store-shim.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ns=u;function n2(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var r2=typeof Object.is=="function"?Object.is:n2,a2=ns.useState,o2=ns.useEffect,s2=ns.useLayoutEffect,i2=ns.useDebugValue;function l2(e,t){var n=t(),r=a2({inst:{value:n,getSnapshot:t}}),a=r[0].inst,o=r[1];return s2(function(){a.value=n,a.getSnapshot=t,xd(a)&&o({inst:a})},[e,n,t]),o2(function(){return xd(a)&&o({inst:a}),e(function(){xd(a)&&o({inst:a})})},[e]),i2(n),n}function xd(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r2(e,n)}catch{return!0}}function c2(e,t){return t()}var u2=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c2:l2;hw.useSyncExternalStore=ns.useSyncExternalStore!==void 0?ns.useSyncExternalStore:u2;fw.exports=hw;var d2=fw.exports;const p2=(e,t)=>{if(Ya(t))return t;if(WA(t)&&Ya(t.defaultValue))return t.defaultValue;if(typeof e=="function")return"";if(Array.isArray(e)){const n=e[e.length-1];return typeof n=="function"?"":n}return e},m2={t:p2,ready:!1},f2=()=>()=>{},ie=(e,t={})=>{var E,_,R;const{i18n:n}=t,{i18n:r,defaultNS:a}=u.useContext(e2)||{},o=n||r||JA();o&&!o.reportNamespaces&&(o.reportNamespaces=new t2),o||Kp(o,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const i=u.useMemo(()=>{var T;return{...QA(),...(T=o==null?void 0:o.options)==null?void 0:T.react,...t}},[o,t]),{useSuspense:l,keyPrefix:c}=i,d=e||a||((E=o==null?void 0:o.options)==null?void 0:E.defaultNS),p=Ya(d)?[d]:d||["translation"],m=u.useMemo(()=>p,p);(R=(_=o==null?void 0:o.reportNamespaces)==null?void 0:_.addUsedNamespaces)==null||R.call(_,m);const f=u.useRef(0),h=u.useCallback(T=>{if(!o)return f2;const{bindI18n:F,bindI18nStore:z}=i,K=()=>{f.current+=1,T()};return F&&o.on(F,K),z&&o.store.on(z,K),()=>{F&&F.split(" ").forEach($=>o.off($,K)),z&&z.split(" ").forEach($=>o.store.off($,K))}},[o,i]),y=u.useRef(),x=u.useCallback(()=>{if(!o)return m2;const T=!!(o.isInitialized||o.initializedStoreOnce)&&m.every(P=>HA(P,o,i)),F=t.lng||o.language,z=f.current,K=y.current;if(K&&K.ready===T&&K.lng===F&&K.keyPrefix===c&&K.revision===z)return K;const W={t:o.getFixedT(F,i.nsMode==="fallback"?m:m[0],c),ready:T,lng:F,keyPrefix:c,revision:z};return y.current=W,W},[o,m,c,i,t.lng]),[b,v]=u.useState(0),{t:g,ready:w}=d2.useSyncExternalStore(h,x,x);u.useEffect(()=>{if(o&&!w&&!l){const T=()=>v(F=>F+1);t.lng?Ag(o,t.lng,m,T):Vp(o,m,T)}},[o,t.lng,m,w,l,b]);const k=o||{},C=u.useRef(null),N=u.useRef(),S=T=>{const F=Object.getOwnPropertyDescriptors(T);F.__original&&delete F.__original;const z=Object.create(Object.getPrototypeOf(T),F);if(!Object.prototype.hasOwnProperty.call(z,"__original"))try{Object.defineProperty(z,"__original",{value:T,writable:!1,enumerable:!1,configurable:!1})}catch{}return z},A=u.useMemo(()=>{const T=k,F=T==null?void 0:T.language;let z=T;T&&(C.current&&C.current.__original===T?N.current!==F?(z=S(T),C.current=z,N.current=F):z=C.current:(z=S(T),C.current=z,N.current=F));const K=!w&&!l?(...W)=>(Kp(o,"USE_T_BEFORE_READY","useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t."),g(...W)):g,$=[K,z,w];return $.t=K,$.i18n=z,$.ready=w,$},[g,k,w,k.resolvedLanguage,k.language,k.languages]);if(o&&l&&!w)throw new Promise(T=>{const F=()=>T();t.lng?Ag(o,t.lng,m,F):Vp(o,m,F)});return A};function h2(e,t){const n=u.createContext(t),r=o=>{const{children:i,...l}=o,c=u.useMemo(()=>l,Object.values(l));return s.jsx(n.Provider,{value:c,children:i})};r.displayName=e+"Provider";function a(o){const i=u.useContext(n);if(i)return i;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,a]}function Aa(e,t=[]){let n=[];function r(o,i){const l=u.createContext(i),c=n.length;n=[...n,i];const d=m=>{var v;const{scope:f,children:h,...y}=m,x=((v=f==null?void 0:f[e])==null?void 0:v[c])||l,b=u.useMemo(()=>y,Object.values(y));return s.jsx(x.Provider,{value:b,children:h})};d.displayName=o+"Provider";function p(m,f){var x;const h=((x=f==null?void 0:f[e])==null?void 0:x[c])||l,y=u.useContext(h);if(y)return y;if(i!==void 0)return i;throw new Error(`\`${m}\` must be used within \`${o}\``)}return[d,p]}const a=()=>{const o=n.map(i=>u.createContext(i));return function(l){const c=(l==null?void 0:l[e])||o;return u.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return a.scopeName=e,[r,g2(a,...t)]}function g2(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(o){const i=r.reduce((l,{useScope:c,scopeName:d})=>{const m=c(o)[`__scope${d}`];return{...l,...m}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}function _g(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function _a(...e){return t=>{let n=!1;const r=e.map(a=>{const o=_g(a,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let a=0;a{},v2=wm[" useId ".trim().toString()]||(()=>{}),x2=0;function $a(e){const[t,n]=u.useState(v2());return ba(()=>{n(r=>r??String(x2++))},[e]),t?`radix-${t}`:""}var y2=wm[" useInsertionEffect ".trim().toString()]||ba;function uu({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,o,i]=b2({defaultProp:t,onChange:n}),l=e!==void 0,c=l?e:a;{const p=u.useRef(e!==void 0);u.useEffect(()=>{const m=p.current;m!==l&&console.warn(`${r} is changing from ${m?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),p.current=l},[l,r])}const d=u.useCallback(p=>{var m;if(l){const f=w2(p)?p(e):p;f!==e&&((m=i.current)==null||m.call(i,f))}else o(p)},[l,e,o,i]);return[c,d]}function b2({defaultProp:e,onChange:t}){const[n,r]=u.useState(e),a=u.useRef(n),o=u.useRef(t);return y2(()=>{o.current=t},[t]),u.useEffect(()=>{var i;a.current!==n&&((i=o.current)==null||i.call(o,n),a.current=n)},[n,a]),[n,r,o]}function w2(e){return typeof e=="function"}function k2(e){const t=C2(e),n=u.forwardRef((r,a)=>{const{children:o,...i}=r,l=u.Children.toArray(o),c=l.find(N2);if(c){const d=c.props.children,p=l.map(m=>m===c?u.Children.count(d)>1?u.Children.only(null):u.isValidElement(d)?d.props.children:null:m);return s.jsx(t,{...i,ref:a,children:u.isValidElement(d)?u.cloneElement(d,void 0,p):null})}return s.jsx(t,{...i,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function C2(e){const t=u.forwardRef((n,r)=>{const{children:a,...o}=n;if(u.isValidElement(a)){const i=A2(a),l=j2(o,a.props);return a.type!==u.Fragment&&(l.ref=r?_a(r,i):i),u.cloneElement(a,l)}return u.Children.count(a)>1?u.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var S2=Symbol("radix.slottable");function N2(e){return u.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===S2}function j2(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...l)=>{const c=o(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function A2(e){var r,a;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var _2=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xt=_2.reduce((e,t)=>{const n=k2(`Primitive.${t}`),r=u.forwardRef((a,o)=>{const{asChild:i,...l}=a,c=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(c,{...l,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function gw(e,t){e&&lu.flushSync(()=>e.dispatchEvent(t))}function zr(e){const t=u.useRef(e);return u.useEffect(()=>{t.current=e}),u.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function P2(e,t=globalThis==null?void 0:globalThis.document){const n=zr(e);u.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var T2="DismissableLayer",Yp="dismissableLayer.update",R2="dismissableLayer.pointerDownOutside",M2="dismissableLayer.focusOutside",Pg,vw=u.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),du=u.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:i,onDismiss:l,...c}=e,d=u.useContext(vw),[p,m]=u.useState(null),f=(p==null?void 0:p.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,h]=u.useState({}),y=wt(t,S=>m(S)),x=Array.from(d.layers),[b]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),v=x.indexOf(b),g=p?x.indexOf(p):-1,w=d.layersWithOutsidePointerEventsDisabled.size>0,k=g>=v,C=L2(S=>{const A=S.target,E=[...d.branches].some(_=>_.contains(A));!k||E||(a==null||a(S),i==null||i(S),S.defaultPrevented||l==null||l())},f),N=D2(S=>{const A=S.target;[...d.branches].some(_=>_.contains(A))||(o==null||o(S),i==null||i(S),S.defaultPrevented||l==null||l())},f);return P2(S=>{g===d.layers.size-1&&(r==null||r(S),!S.defaultPrevented&&l&&(S.preventDefault(),l()))},f),u.useEffect(()=>{if(p)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Pg=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(p)),d.layers.add(p),Tg(),()=>{n&&d.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=Pg)}},[p,f,n,d]),u.useEffect(()=>()=>{p&&(d.layers.delete(p),d.layersWithOutsidePointerEventsDisabled.delete(p),Tg())},[p,d]),u.useEffect(()=>{const S=()=>h({});return document.addEventListener(Yp,S),()=>document.removeEventListener(Yp,S)},[]),s.jsx(xt.div,{...c,ref:y,style:{pointerEvents:w?k?"auto":"none":void 0,...e.style},onFocusCapture:Re(e.onFocusCapture,N.onFocusCapture),onBlurCapture:Re(e.onBlurCapture,N.onBlurCapture),onPointerDownCapture:Re(e.onPointerDownCapture,C.onPointerDownCapture)})});du.displayName=T2;var E2="DismissableLayerBranch",I2=u.forwardRef((e,t)=>{const n=u.useContext(vw),r=u.useRef(null),a=wt(t,r);return u.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),s.jsx(xt.div,{...e,ref:a})});I2.displayName=E2;function L2(e,t=globalThis==null?void 0:globalThis.document){const n=zr(e),r=u.useRef(!1),a=u.useRef(()=>{});return u.useEffect(()=>{const o=l=>{if(l.target&&!r.current){let c=function(){xw(R2,n,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=c,t.addEventListener("click",a.current,{once:!0})):c()}else t.removeEventListener("click",a.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",o),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function D2(e,t=globalThis==null?void 0:globalThis.document){const n=zr(e),r=u.useRef(!1);return u.useEffect(()=>{const a=o=>{o.target&&!r.current&&xw(M2,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Tg(){const e=new CustomEvent(Yp);document.dispatchEvent(e)}function xw(e,t,n,{discrete:r}){const a=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?gw(a,o):a.dispatchEvent(o)}var yd="focusScope.autoFocusOnMount",bd="focusScope.autoFocusOnUnmount",Rg={bubbles:!1,cancelable:!0},O2="FocusScope",yf=u.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:o,...i}=e,[l,c]=u.useState(null),d=zr(a),p=zr(o),m=u.useRef(null),f=wt(t,x=>c(x)),h=u.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;u.useEffect(()=>{if(r){let x=function(w){if(h.paused||!l)return;const k=w.target;l.contains(k)?m.current=k:ea(m.current,{select:!0})},b=function(w){if(h.paused||!l)return;const k=w.relatedTarget;k!==null&&(l.contains(k)||ea(m.current,{select:!0}))},v=function(w){if(document.activeElement===document.body)for(const C of w)C.removedNodes.length>0&&ea(l)};document.addEventListener("focusin",x),document.addEventListener("focusout",b);const g=new MutationObserver(v);return l&&g.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",b),g.disconnect()}}},[r,l,h.paused]),u.useEffect(()=>{if(l){Eg.add(h);const x=document.activeElement;if(!l.contains(x)){const v=new CustomEvent(yd,Rg);l.addEventListener(yd,d),l.dispatchEvent(v),v.defaultPrevented||(F2(H2(yw(l)),{select:!0}),document.activeElement===x&&ea(l))}return()=>{l.removeEventListener(yd,d),setTimeout(()=>{const v=new CustomEvent(bd,Rg);l.addEventListener(bd,p),l.dispatchEvent(v),v.defaultPrevented||ea(x??document.body,{select:!0}),l.removeEventListener(bd,p),Eg.remove(h)},0)}}},[l,d,p,h]);const y=u.useCallback(x=>{if(!n&&!r||h.paused)return;const b=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,v=document.activeElement;if(b&&v){const g=x.currentTarget,[w,k]=z2(g);w&&k?!x.shiftKey&&v===k?(x.preventDefault(),n&&ea(w,{select:!0})):x.shiftKey&&v===w&&(x.preventDefault(),n&&ea(k,{select:!0})):v===g&&x.preventDefault()}},[n,r,h.paused]);return s.jsx(xt.div,{tabIndex:-1,...i,ref:f,onKeyDown:y})});yf.displayName=O2;function F2(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(ea(r,{select:t}),document.activeElement!==n)return}function z2(e){const t=yw(e),n=Mg(t,e),r=Mg(t.reverse(),e);return[n,r]}function yw(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Mg(e,t){for(const n of e)if(!$2(n,{upTo:t}))return n}function $2(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function U2(e){return e instanceof HTMLInputElement&&"select"in e}function ea(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&U2(e)&&t&&e.select()}}var Eg=B2();function B2(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Ig(e,t),e.unshift(t)},remove(t){var n;e=Ig(e,t),(n=e[0])==null||n.resume()}}}function Ig(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function H2(e){return e.filter(t=>t.tagName!=="A")}var W2="Portal",pu=u.forwardRef((e,t)=>{var l;const{container:n,...r}=e,[a,o]=u.useState(!1);ba(()=>o(!0),[]);const i=n||a&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return i?Fj.createPortal(s.jsx(xt.div,{...r,ref:t}),i):null});pu.displayName=W2;function q2(e,t){return u.useReducer((n,r)=>t[n][r]??n,e)}var br=e=>{const{present:t,children:n}=e,r=K2(t),a=typeof n=="function"?n({present:r.isPresent}):u.Children.only(n),o=wt(r.ref,V2(a));return typeof n=="function"||r.isPresent?u.cloneElement(a,{ref:o}):null};br.displayName="Presence";function K2(e){const[t,n]=u.useState(),r=u.useRef(null),a=u.useRef(e),o=u.useRef("none"),i=e?"mounted":"unmounted",[l,c]=q2(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return u.useEffect(()=>{const d=Sl(r.current);o.current=l==="mounted"?d:"none"},[l]),ba(()=>{const d=r.current,p=a.current;if(p!==e){const f=o.current,h=Sl(d);e?c("MOUNT"):h==="none"||(d==null?void 0:d.display)==="none"?c("UNMOUNT"):c(p&&f!==h?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,c]),ba(()=>{if(t){let d;const p=t.ownerDocument.defaultView??window,m=h=>{const x=Sl(r.current).includes(CSS.escape(h.animationName));if(h.target===t&&x&&(c("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",d=p.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},f=h=>{h.target===t&&(o.current=Sl(r.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{p.clearTimeout(d),t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:u.useCallback(d=>{r.current=d?getComputedStyle(d):null,n(d)},[])}}function Sl(e){return(e==null?void 0:e.animationName)||"none"}function V2(e){var r,a;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var wd=0;function bw(){u.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Lg()),document.body.insertAdjacentElement("beforeend",e[1]??Lg()),wd++,()=>{wd===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),wd--}},[])}function Lg(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var pr=function(){return pr=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return u_;var t=d_(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},m_=Sw(),Bo="data-scroll-locked",f_=function(e,t,n,r){var a=e.left,o=e.top,i=e.right,l=e.gap;return n===void 0&&(n="margin"),` - .`.concat(Y2,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(l,"px ").concat(r,`; - } - body[`).concat(Bo,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(a,`px; - padding-top: `).concat(o,`px; - padding-right: `).concat(i,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(l,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(Yl,` { - right: `).concat(l,"px ").concat(r,`; - } - - .`).concat(Ql,` { - margin-right: `).concat(l,"px ").concat(r,`; - } - - .`).concat(Yl," .").concat(Yl,` { - right: 0 `).concat(r,`; - } - - .`).concat(Ql," .").concat(Ql,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(Bo,`] { - `).concat(Q2,": ").concat(l,`px; - } -`)},Og=function(){var e=parseInt(document.body.getAttribute(Bo)||"0",10);return isFinite(e)?e:0},h_=function(){u.useEffect(function(){return document.body.setAttribute(Bo,(Og()+1).toString()),function(){var e=Og()-1;e<=0?document.body.removeAttribute(Bo):document.body.setAttribute(Bo,e.toString())}},[])},g_=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;h_();var o=u.useMemo(function(){return p_(a)},[a]);return u.createElement(m_,{styles:f_(o,!t,a,n?"":"!important")})},Qp=!1;if(typeof window<"u")try{var Nl=Object.defineProperty({},"passive",{get:function(){return Qp=!0,!0}});window.addEventListener("test",Nl,Nl),window.removeEventListener("test",Nl,Nl)}catch{Qp=!1}var fo=Qp?{passive:!1}:!1,v_=function(e){return e.tagName==="TEXTAREA"},Nw=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!v_(e)&&n[t]==="visible")},x_=function(e){return Nw(e,"overflowY")},y_=function(e){return Nw(e,"overflowX")},Fg=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=jw(e,r);if(a){var o=Aw(e,r),i=o[1],l=o[2];if(i>l)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},b_=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},w_=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},jw=function(e,t){return e==="v"?x_(t):y_(t)},Aw=function(e,t){return e==="v"?b_(t):w_(t)},k_=function(e,t){return e==="h"&&t==="rtl"?-1:1},C_=function(e,t,n,r,a){var o=k_(e,window.getComputedStyle(t).direction),i=o*r,l=n.target,c=t.contains(l),d=!1,p=i>0,m=0,f=0;do{if(!l)break;var h=Aw(e,l),y=h[0],x=h[1],b=h[2],v=x-b-o*y;(y||v)&&jw(e,l)&&(m+=v,f+=y);var g=l.parentNode;l=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&l!==document.body||c&&(t.contains(l)||t===l));return(p&&Math.abs(m)<1||!p&&Math.abs(f)<1)&&(d=!0),d},jl=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},zg=function(e){return[e.deltaX,e.deltaY]},$g=function(e){return e&&"current"in e?e.current:e},S_=function(e,t){return e[0]===t[0]&&e[1]===t[1]},N_=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},j_=0,ho=[];function A_(e){var t=u.useRef([]),n=u.useRef([0,0]),r=u.useRef(),a=u.useState(j_++)[0],o=u.useState(Sw)[0],i=u.useRef(e);u.useEffect(function(){i.current=e},[e]),u.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var x=G2([e.lockRef.current],(e.shards||[]).map($g),!0).filter(Boolean);return x.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),x.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var l=u.useCallback(function(x,b){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!i.current.allowPinchZoom;var v=jl(x),g=n.current,w="deltaX"in x?x.deltaX:g[0]-v[0],k="deltaY"in x?x.deltaY:g[1]-v[1],C,N=x.target,S=Math.abs(w)>Math.abs(k)?"h":"v";if("touches"in x&&S==="h"&&N.type==="range")return!1;var A=window.getSelection(),E=A&&A.anchorNode,_=E?E===N||E.contains(N):!1;if(_)return!1;var R=Fg(S,N);if(!R)return!0;if(R?C=S:(C=S==="v"?"h":"v",R=Fg(S,N)),!R)return!1;if(!r.current&&"changedTouches"in x&&(w||k)&&(r.current=C),!C)return!0;var T=r.current||C;return C_(T,b,x,T==="h"?w:k)},[]),c=u.useCallback(function(x){var b=x;if(!(!ho.length||ho[ho.length-1]!==o)){var v="deltaY"in b?zg(b):jl(b),g=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&S_(C.delta,v)})[0];if(g&&g.should){b.cancelable&&b.preventDefault();return}if(!g){var w=(i.current.shards||[]).map($g).filter(Boolean).filter(function(C){return C.contains(b.target)}),k=w.length>0?l(b,w[0]):!i.current.noIsolation;k&&b.cancelable&&b.preventDefault()}}},[]),d=u.useCallback(function(x,b,v,g){var w={name:x,delta:b,target:v,should:g,shadowParent:__(v)};t.current.push(w),setTimeout(function(){t.current=t.current.filter(function(k){return k!==w})},1)},[]),p=u.useCallback(function(x){n.current=jl(x),r.current=void 0},[]),m=u.useCallback(function(x){d(x.type,zg(x),x.target,l(x,e.lockRef.current))},[]),f=u.useCallback(function(x){d(x.type,jl(x),x.target,l(x,e.lockRef.current))},[]);u.useEffect(function(){return ho.push(o),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:f}),document.addEventListener("wheel",c,fo),document.addEventListener("touchmove",c,fo),document.addEventListener("touchstart",p,fo),function(){ho=ho.filter(function(x){return x!==o}),document.removeEventListener("wheel",c,fo),document.removeEventListener("touchmove",c,fo),document.removeEventListener("touchstart",p,fo)}},[]);var h=e.removeScrollBar,y=e.inert;return u.createElement(u.Fragment,null,y?u.createElement(o,{styles:N_(a)}):null,h?u.createElement(g_,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function __(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const P_=r_(Cw,A_);var bf=u.forwardRef(function(e,t){return u.createElement(mu,pr({},e,{ref:t,sideCar:P_}))});bf.classNames=mu.classNames;var T_=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},go=new WeakMap,Al=new WeakMap,_l={},Nd=0,_w=function(e){return e&&(e.host||_w(e.parentNode))},R_=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=_w(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},M_=function(e,t,n,r){var a=R_(t,Array.isArray(e)?e:[e]);_l[n]||(_l[n]=new WeakMap);var o=_l[n],i=[],l=new Set,c=new Set(a),d=function(m){!m||l.has(m)||(l.add(m),d(m.parentNode))};a.forEach(d);var p=function(m){!m||c.has(m)||Array.prototype.forEach.call(m.children,function(f){if(l.has(f))p(f);else try{var h=f.getAttribute(r),y=h!==null&&h!=="false",x=(go.get(f)||0)+1,b=(o.get(f)||0)+1;go.set(f,x),o.set(f,b),i.push(f),x===1&&y&&Al.set(f,!0),b===1&&f.setAttribute(n,"true"),y||f.setAttribute(r,"true")}catch(v){console.error("aria-hidden: cannot operate on ",f,v)}})};return p(t),l.clear(),Nd++,function(){i.forEach(function(m){var f=go.get(m)-1,h=o.get(m)-1;go.set(m,f),o.set(m,h),f||(Al.has(m)||m.removeAttribute(r),Al.delete(m)),h||m.removeAttribute(n)}),Nd--,Nd||(go=new WeakMap,go=new WeakMap,Al=new WeakMap,_l={})}},Pw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=T_(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),M_(r,a,n,"aria-hidden")):function(){return null}};function E_(e){const t=I_(e),n=u.forwardRef((r,a)=>{const{children:o,...i}=r,l=u.Children.toArray(o),c=l.find(D_);if(c){const d=c.props.children,p=l.map(m=>m===c?u.Children.count(d)>1?u.Children.only(null):u.isValidElement(d)?d.props.children:null:m);return s.jsx(t,{...i,ref:a,children:u.isValidElement(d)?u.cloneElement(d,void 0,p):null})}return s.jsx(t,{...i,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function I_(e){const t=u.forwardRef((n,r)=>{const{children:a,...o}=n;if(u.isValidElement(a)){const i=F_(a),l=O_(o,a.props);return a.type!==u.Fragment&&(l.ref=r?_a(r,i):i),u.cloneElement(a,l)}return u.Children.count(a)>1?u.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var L_=Symbol("radix.slottable");function D_(e){return u.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===L_}function O_(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...l)=>{const c=o(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function F_(e){var r,a;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var fu="Dialog",[Tw,Rw]=Aa(fu),[z_,tr]=Tw(fu),Mw=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:o,modal:i=!0}=e,l=u.useRef(null),c=u.useRef(null),[d,p]=uu({prop:r,defaultProp:a??!1,onChange:o,caller:fu});return s.jsx(z_,{scope:t,triggerRef:l,contentRef:c,contentId:$a(),titleId:$a(),descriptionId:$a(),open:d,onOpenChange:p,onOpenToggle:u.useCallback(()=>p(m=>!m),[p]),modal:i,children:n})};Mw.displayName=fu;var Ew="DialogTrigger",Iw=u.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=tr(Ew,n),o=wt(t,a.triggerRef);return s.jsx(xt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":Cf(a.open),...r,ref:o,onClick:Re(e.onClick,a.onOpenToggle)})});Iw.displayName=Ew;var wf="DialogPortal",[$_,Lw]=Tw(wf,{forceMount:void 0}),Dw=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,o=tr(wf,t);return s.jsx($_,{scope:t,forceMount:n,children:u.Children.map(r,i=>s.jsx(br,{present:n||o.open,children:s.jsx(pu,{asChild:!0,container:a,children:i})}))})};Dw.displayName=wf;var Mc="DialogOverlay",Ow=u.forwardRef((e,t)=>{const n=Lw(Mc,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,o=tr(Mc,e.__scopeDialog);return o.modal?s.jsx(br,{present:r||o.open,children:s.jsx(B_,{...a,ref:t})}):null});Ow.displayName=Mc;var U_=E_("DialogOverlay.RemoveScroll"),B_=u.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=tr(Mc,n);return s.jsx(bf,{as:U_,allowPinchZoom:!0,shards:[a.contentRef],children:s.jsx(xt.div,{"data-state":Cf(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),Qa="DialogContent",Fw=u.forwardRef((e,t)=>{const n=Lw(Qa,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,o=tr(Qa,e.__scopeDialog);return s.jsx(br,{present:r||o.open,children:o.modal?s.jsx(H_,{...a,ref:t}):s.jsx(W_,{...a,ref:t})})});Fw.displayName=Qa;var H_=u.forwardRef((e,t)=>{const n=tr(Qa,e.__scopeDialog),r=u.useRef(null),a=wt(t,n.contentRef,r);return u.useEffect(()=>{const o=r.current;if(o)return Pw(o)},[]),s.jsx(zw,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Re(e.onCloseAutoFocus,o=>{var i;o.preventDefault(),(i=n.triggerRef.current)==null||i.focus()}),onPointerDownOutside:Re(e.onPointerDownOutside,o=>{const i=o.detail.originalEvent,l=i.button===0&&i.ctrlKey===!0;(i.button===2||l)&&o.preventDefault()}),onFocusOutside:Re(e.onFocusOutside,o=>o.preventDefault())})}),W_=u.forwardRef((e,t)=>{const n=tr(Qa,e.__scopeDialog),r=u.useRef(!1),a=u.useRef(!1);return s.jsx(zw,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var i,l;(i=e.onCloseAutoFocus)==null||i.call(e,o),o.defaultPrevented||(r.current||(l=n.triggerRef.current)==null||l.focus(),o.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:o=>{var c,d;(c=e.onInteractOutside)==null||c.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const i=o.target;((d=n.triggerRef.current)==null?void 0:d.contains(i))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&a.current&&o.preventDefault()}})}),zw=u.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:o,...i}=e,l=tr(Qa,n),c=u.useRef(null),d=wt(t,c);return bw(),s.jsxs(s.Fragment,{children:[s.jsx(yf,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:o,children:s.jsx(du,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":Cf(l.open),...i,ref:d,onDismiss:()=>l.onOpenChange(!1)})}),s.jsxs(s.Fragment,{children:[s.jsx(K_,{titleId:l.titleId}),s.jsx(G_,{contentRef:c,descriptionId:l.descriptionId})]})]})}),kf="DialogTitle",$w=u.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=tr(kf,n);return s.jsx(xt.h2,{id:a.titleId,...r,ref:t})});$w.displayName=kf;var Uw="DialogDescription",Bw=u.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=tr(Uw,n);return s.jsx(xt.p,{id:a.descriptionId,...r,ref:t})});Bw.displayName=Uw;var Hw="DialogClose",Ww=u.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=tr(Hw,n);return s.jsx(xt.button,{type:"button",...r,ref:t,onClick:Re(e.onClick,()=>a.onOpenChange(!1))})});Ww.displayName=Hw;function Cf(e){return e?"open":"closed"}var qw="DialogTitleWarning",[q_,Kw]=h2(qw,{contentName:Qa,titleName:kf,docsSlug:"dialog"}),K_=({titleId:e})=>{const t=Kw(qw),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return u.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},V_="DialogDescriptionWarning",G_=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Kw(V_).contentName}}.`;return u.useEffect(()=>{var o;const a=(o=e.current)==null?void 0:o.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},hu=Mw,Y_=Iw,gu=Dw,hs=Ow,gs=Fw,vs=$w,Ki=Bw,Vi=Ww,Q_=Symbol("radix.slottable");function X_(e){const t=({children:n})=>s.jsx(s.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Q_,t}var Vw="AlertDialog",[J_]=Aa(Vw,[Rw]),qr=Rw(),Gw=e=>{const{__scopeAlertDialog:t,...n}=e,r=qr(t);return s.jsx(hu,{...r,...n,modal:!0})};Gw.displayName=Vw;var Z_="AlertDialogTrigger",eP=u.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=qr(n);return s.jsx(Y_,{...a,...r,ref:t})});eP.displayName=Z_;var tP="AlertDialogPortal",Yw=e=>{const{__scopeAlertDialog:t,...n}=e,r=qr(t);return s.jsx(gu,{...r,...n})};Yw.displayName=tP;var nP="AlertDialogOverlay",Qw=u.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=qr(n);return s.jsx(hs,{...a,...r,ref:t})});Qw.displayName=nP;var Ho="AlertDialogContent",[rP,aP]=J_(Ho),oP=X_("AlertDialogContent"),Xw=u.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,o=qr(n),i=u.useRef(null),l=wt(t,i),c=u.useRef(null);return s.jsx(q_,{contentName:Ho,titleName:Jw,docsSlug:"alert-dialog",children:s.jsx(rP,{scope:n,cancelRef:c,children:s.jsxs(gs,{role:"alertdialog",...o,...a,ref:l,onOpenAutoFocus:Re(a.onOpenAutoFocus,d=>{var p;d.preventDefault(),(p=c.current)==null||p.focus({preventScroll:!0})}),onPointerDownOutside:d=>d.preventDefault(),onInteractOutside:d=>d.preventDefault(),children:[s.jsx(oP,{children:r}),s.jsx(iP,{contentRef:i})]})})})});Xw.displayName=Ho;var Jw="AlertDialogTitle",Zw=u.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=qr(n);return s.jsx(vs,{...a,...r,ref:t})});Zw.displayName=Jw;var e0="AlertDialogDescription",t0=u.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=qr(n);return s.jsx(Ki,{...a,...r,ref:t})});t0.displayName=e0;var sP="AlertDialogAction",n0=u.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=qr(n);return s.jsx(Vi,{...a,...r,ref:t})});n0.displayName=sP;var r0="AlertDialogCancel",a0=u.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=aP(r0,n),o=qr(n),i=wt(t,a);return s.jsx(Vi,{...o,...r,ref:i})});a0.displayName=r0;var iP=({contentRef:e})=>{const t=`\`${Ho}\` requires a description for the component to be accessible for screen reader users. - -You can add a description to the \`${Ho}\` by passing a \`${e0}\` component as a child, which also benefits sighted users by adding visible context to the dialog. - -Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Ho}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. - -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return u.useEffect(()=>{var r;document.getElementById((r=e.current)==null?void 0:r.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},lP=Gw,cP=Yw,o0=Qw,s0=Xw,i0=n0,l0=a0,c0=Zw,u0=t0;function d0(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const t=pP(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{const l=i.split(Sf);return l[0]===""&&l.length!==1&&l.shift(),m0(l,t)||dP(i)},getConflictingClassGroupIds:(i,l)=>{const c=n[i]||[];return l&&r[i]?[...c,...r[i]]:c}}},m0=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),a=r?m0(e.slice(1),r):void 0;if(a)return a;if(t.validators.length===0)return;const o=e.join(Sf);return(i=t.validators.find(({validator:l})=>l(o)))==null?void 0:i.classGroupId},Ug=/^\[(.+)\]$/,dP=e=>{if(Ug.test(e)){const t=Ug.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},pP=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return fP(Object.entries(e.classGroups),n).forEach(([o,i])=>{Xp(i,r,o,t)}),r},Xp=(e,t,n,r)=>{e.forEach(a=>{if(typeof a=="string"){const o=a===""?t:Bg(t,a);o.classGroupId=n;return}if(typeof a=="function"){if(mP(a)){Xp(a(r),t,n,r);return}t.validators.push({validator:a,classGroupId:n});return}Object.entries(a).forEach(([o,i])=>{Xp(i,Bg(t,o),n,r)})})},Bg=(e,t)=>{let n=e;return t.split(Sf).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},mP=e=>e.isThemeGetter,fP=(e,t)=>t?e.map(([n,r])=>{const a=r.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([i,l])=>[t+i,l])):o);return[n,a]}):e,hP=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const a=(o,i)=>{n.set(o,i),t++,t>e&&(t=0,r=n,n=new Map)};return{get(o){let i=n.get(o);if(i!==void 0)return i;if((i=r.get(o))!==void 0)return a(o,i),i},set(o,i){n.has(o)?n.set(o,i):a(o,i)}}},f0="!",gP=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,a=t[0],o=t.length,i=l=>{const c=[];let d=0,p=0,m;for(let b=0;bp?m-p:void 0;return{modifiers:c,hasImportantModifier:h,baseClassName:y,maybePostfixModifierPosition:x}};return n?l=>n({className:l,parseClassName:i}):i},vP=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},xP=e=>({cache:hP(e.cacheSize),parseClassName:gP(e),...uP(e)}),yP=/\s+/,bP=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a}=t,o=[],i=e.trim().split(yP);let l="";for(let c=i.length-1;c>=0;c-=1){const d=i[c],{modifiers:p,hasImportantModifier:m,baseClassName:f,maybePostfixModifierPosition:h}=n(d);let y=!!h,x=r(y?f.substring(0,h):f);if(!x){if(!y){l=d+(l.length>0?" "+l:l);continue}if(x=r(f),!x){l=d+(l.length>0?" "+l:l);continue}y=!1}const b=vP(p).join(":"),v=m?b+f0:b,g=v+x;if(o.includes(g))continue;o.push(g);const w=a(x,y);for(let k=0;k0?" "+l:l)}return l};function wP(){let e=0,t,n,r="";for(;e{if(typeof e=="string")return e;let t,n="";for(let r=0;rm(p),e());return n=xP(d),r=n.cache.get,a=n.cache.set,o=l,l(c)}function l(c){const d=r(c);if(d)return d;const p=bP(c,n);return a(c,p),p}return function(){return o(wP.apply(null,arguments))}}const at=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},g0=/^\[(?:([a-z-]+):)?(.+)\]$/i,CP=/^\d+\/\d+$/,SP=new Set(["px","full","screen"]),NP=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,jP=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,AP=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,_P=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,PP=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Pr=e=>Wo(e)||SP.has(e)||CP.test(e),Xr=e=>xs(e,"length",OP),Wo=e=>!!e&&!Number.isNaN(Number(e)),jd=e=>xs(e,"number",Wo),Ls=e=>!!e&&Number.isInteger(Number(e)),TP=e=>e.endsWith("%")&&Wo(e.slice(0,-1)),Ue=e=>g0.test(e),Jr=e=>NP.test(e),RP=new Set(["length","size","percentage"]),MP=e=>xs(e,RP,v0),EP=e=>xs(e,"position",v0),IP=new Set(["image","url"]),LP=e=>xs(e,IP,zP),DP=e=>xs(e,"",FP),Ds=()=>!0,xs=(e,t,n)=>{const r=g0.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},OP=e=>jP.test(e)&&!AP.test(e),v0=()=>!1,FP=e=>_P.test(e),zP=e=>PP.test(e),$P=()=>{const e=at("colors"),t=at("spacing"),n=at("blur"),r=at("brightness"),a=at("borderColor"),o=at("borderRadius"),i=at("borderSpacing"),l=at("borderWidth"),c=at("contrast"),d=at("grayscale"),p=at("hueRotate"),m=at("invert"),f=at("gap"),h=at("gradientColorStops"),y=at("gradientColorStopPositions"),x=at("inset"),b=at("margin"),v=at("opacity"),g=at("padding"),w=at("saturate"),k=at("scale"),C=at("sepia"),N=at("skew"),S=at("space"),A=at("translate"),E=()=>["auto","contain","none"],_=()=>["auto","hidden","clip","visible","scroll"],R=()=>["auto",Ue,t],T=()=>[Ue,t],F=()=>["",Pr,Xr],z=()=>["auto",Wo,Ue],K=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],$=()=>["solid","dashed","dotted","double","none"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],P=()=>["start","end","center","between","around","evenly","stretch"],D=()=>["","0",Ue],G=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Y=()=>[Wo,Ue];return{cacheSize:500,separator:":",theme:{colors:[Ds],spacing:[Pr,Xr],blur:["none","",Jr,Ue],brightness:Y(),borderColor:[e],borderRadius:["none","","full",Jr,Ue],borderSpacing:T(),borderWidth:F(),contrast:Y(),grayscale:D(),hueRotate:Y(),invert:D(),gap:T(),gradientColorStops:[e],gradientColorStopPositions:[TP,Xr],inset:R(),margin:R(),opacity:Y(),padding:T(),saturate:Y(),scale:Y(),sepia:D(),skew:Y(),space:T(),translate:T()},classGroups:{aspect:[{aspect:["auto","square","video",Ue]}],container:["container"],columns:[{columns:[Jr]}],"break-after":[{"break-after":G()}],"break-before":[{"break-before":G()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...K(),Ue]}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:E()}],"overscroll-x":[{"overscroll-x":E()}],"overscroll-y":[{"overscroll-y":E()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[x]}],"inset-x":[{"inset-x":[x]}],"inset-y":[{"inset-y":[x]}],start:[{start:[x]}],end:[{end:[x]}],top:[{top:[x]}],right:[{right:[x]}],bottom:[{bottom:[x]}],left:[{left:[x]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Ls,Ue]}],basis:[{basis:R()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Ue]}],grow:[{grow:D()}],shrink:[{shrink:D()}],order:[{order:["first","last","none",Ls,Ue]}],"grid-cols":[{"grid-cols":[Ds]}],"col-start-end":[{col:["auto",{span:["full",Ls,Ue]},Ue]}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":[Ds]}],"row-start-end":[{row:["auto",{span:[Ls,Ue]},Ue]}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Ue]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Ue]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:["normal",...P()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...P(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...P(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[g]}],px:[{px:[g]}],py:[{py:[g]}],ps:[{ps:[g]}],pe:[{pe:[g]}],pt:[{pt:[g]}],pr:[{pr:[g]}],pb:[{pb:[g]}],pl:[{pl:[g]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[S]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[S]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Ue,t]}],"min-w":[{"min-w":[Ue,t,"min","max","fit"]}],"max-w":[{"max-w":[Ue,t,"none","full","min","max","fit","prose",{screen:[Jr]},Jr]}],h:[{h:[Ue,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Ue,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Ue,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Ue,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Jr,Xr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",jd]}],"font-family":[{font:[Ds]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Ue]}],"line-clamp":[{"line-clamp":["none",Wo,jd]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Pr,Ue]}],"list-image":[{"list-image":["none",Ue]}],"list-style-type":[{list:["none","disc","decimal",Ue]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...$(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Pr,Xr]}],"underline-offset":[{"underline-offset":["auto",Pr,Ue]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:T()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ue]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ue]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...K(),EP]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",MP]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},LP]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[y]}],"gradient-via-pos":[{via:[y]}],"gradient-to-pos":[{to:[y]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:[...$(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:$()}],"border-color":[{border:[a]}],"border-color-x":[{"border-x":[a]}],"border-color-y":[{"border-y":[a]}],"border-color-s":[{"border-s":[a]}],"border-color-e":[{"border-e":[a]}],"border-color-t":[{"border-t":[a]}],"border-color-r":[{"border-r":[a]}],"border-color-b":[{"border-b":[a]}],"border-color-l":[{"border-l":[a]}],"divide-color":[{divide:[a]}],"outline-style":[{outline:["",...$()]}],"outline-offset":[{"outline-offset":[Pr,Ue]}],"outline-w":[{outline:[Pr,Xr]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:F()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[Pr,Xr]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Jr,DP]}],"shadow-color":[{shadow:[Ds]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":[...W(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":W()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",Jr,Ue]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[p]}],invert:[{invert:[m]}],saturate:[{saturate:[w]}],sepia:[{sepia:[C]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[p]}],"backdrop-invert":[{"backdrop-invert":[m]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[w]}],"backdrop-sepia":[{"backdrop-sepia":[C]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Ue]}],duration:[{duration:Y()}],ease:[{ease:["linear","in","out","in-out",Ue]}],delay:[{delay:Y()}],animate:[{animate:["none","spin","ping","pulse","bounce",Ue]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[k]}],"scale-x":[{"scale-x":[k]}],"scale-y":[{"scale-y":[k]}],rotate:[{rotate:[Ls,Ue]}],"translate-x":[{"translate-x":[A]}],"translate-y":[{"translate-y":[A]}],"skew-x":[{"skew-x":[N]}],"skew-y":[{"skew-y":[N]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Ue]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ue]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":T()}],"scroll-mx":[{"scroll-mx":T()}],"scroll-my":[{"scroll-my":T()}],"scroll-ms":[{"scroll-ms":T()}],"scroll-me":[{"scroll-me":T()}],"scroll-mt":[{"scroll-mt":T()}],"scroll-mr":[{"scroll-mr":T()}],"scroll-mb":[{"scroll-mb":T()}],"scroll-ml":[{"scroll-ml":T()}],"scroll-p":[{"scroll-p":T()}],"scroll-px":[{"scroll-px":T()}],"scroll-py":[{"scroll-py":T()}],"scroll-ps":[{"scroll-ps":T()}],"scroll-pe":[{"scroll-pe":T()}],"scroll-pt":[{"scroll-pt":T()}],"scroll-pr":[{"scroll-pr":T()}],"scroll-pb":[{"scroll-pb":T()}],"scroll-pl":[{"scroll-pl":T()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ue]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Pr,Xr,jd]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},UP=kP($P);function j(...e){return UP(p0(e))}var BP=Symbol.for("react.lazy"),Ec=wm[" use ".trim().toString()];function HP(e){return typeof e=="object"&&e!==null&&"then"in e}function x0(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===BP&&"_payload"in e&&HP(e._payload)}function y0(e){const t=qP(e),n=u.forwardRef((r,a)=>{let{children:o,...i}=r;x0(o)&&typeof Ec=="function"&&(o=Ec(o._payload));const l=u.Children.toArray(o),c=l.find(VP);if(c){const d=c.props.children,p=l.map(m=>m===c?u.Children.count(d)>1?u.Children.only(null):u.isValidElement(d)?d.props.children:null:m);return s.jsx(t,{...i,ref:a,children:u.isValidElement(d)?u.cloneElement(d,void 0,p):null})}return s.jsx(t,{...i,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}var WP=y0("Slot");function qP(e){const t=u.forwardRef((n,r)=>{let{children:a,...o}=n;if(x0(a)&&typeof Ec=="function"&&(a=Ec(a._payload)),u.isValidElement(a)){const i=YP(a),l=GP(o,a.props);return a.type!==u.Fragment&&(l.ref=r?_a(r,i):i),u.cloneElement(a,l)}return u.Children.count(a)>1?u.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var KP=Symbol("radix.slottable");function VP(e){return u.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===KP}function GP(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...l)=>{const c=o(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function YP(e){var r,a;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}const Hg=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Wg=p0,b0=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return Wg(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:a,defaultVariants:o}=t,i=Object.keys(a).map(d=>{const p=n==null?void 0:n[d],m=o==null?void 0:o[d];if(p===null)return null;const f=Hg(p)||Hg(m);return a[d][f]}),l=n&&Object.entries(n).reduce((d,p)=>{let[m,f]=p;return f===void 0||(d[m]=f),d},{}),c=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((d,p)=>{let{class:m,className:f,...h}=p;return Object.entries(h).every(y=>{let[x,b]=y;return Array.isArray(b)?b.includes({...o,...l}[x]):{...o,...l}[x]===b})?[...d,m,f]:d},[]);return Wg(e,i,c,n==null?void 0:n.class,n==null?void 0:n.className)},Nf=b0("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),fe=u.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},o)=>{const i=r?WP:"button";return s.jsx(i,{className:j(Nf({variant:t,size:n,className:e})),ref:o,...a})});fe.displayName="Button";const QP=lP,XP=cP,w0=u.forwardRef(({className:e,...t},n)=>s.jsx(o0,{ref:n,className:j("fixed inset-0 z-50 bg-background/45 backdrop-blur-[3px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));w0.displayName=o0.displayName;const k0=u.forwardRef(({className:e,...t},n)=>s.jsxs(XP,{children:[s.jsx(w0,{}),s.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:s.jsx(s0,{ref:n,className:j("grid w-full max-w-lg origin-center gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg",e),...t})})]}));k0.displayName=s0.displayName;const C0=({className:e,...t})=>s.jsx("div",{className:j("flex flex-col space-y-2 text-center sm:text-left",e),...t});C0.displayName="AlertDialogHeader";const S0=({className:e,...t})=>s.jsx("div",{className:j("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});S0.displayName="AlertDialogFooter";const N0=u.forwardRef(({className:e,...t},n)=>s.jsx(c0,{ref:n,className:j("text-lg font-semibold",e),...t}));N0.displayName=c0.displayName;const j0=u.forwardRef(({className:e,...t},n)=>s.jsx(u0,{ref:n,className:j("text-sm text-muted-foreground",e),...t}));j0.displayName=u0.displayName;const A0=u.forwardRef(({className:e,...t},n)=>s.jsx(i0,{ref:n,className:j(Nf(),e),...t}));A0.displayName=i0.displayName;const _0=u.forwardRef(({className:e,...t},n)=>s.jsx(l0,{ref:n,className:j(Nf({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));_0.displayName=l0.displayName;const JP="nanobot.locale",Ai=[{code:"en",label:"English",nativeLabel:"English"},{code:"zh-CN",label:"Chinese (Simplified)",nativeLabel:"简体中文"},{code:"zh-TW",label:"Chinese (Traditional)",nativeLabel:"繁體中文"},{code:"fr",label:"French",nativeLabel:"Français"},{code:"ja",label:"Japanese",nativeLabel:"日本語"},{code:"ko",label:"Korean",nativeLabel:"한국어"},{code:"es",label:"Spanish",nativeLabel:"Español"},{code:"vi",label:"Vietnamese",nativeLabel:"Tiếng Việt"},{code:"id",label:"Indonesian",nativeLabel:"Bahasa Indonesia"}],ai="zh-CN",ZP="zh-CN";function P0(e){if(!e)return ai;const t=e.trim();if(!t)return ai;const n=Ai.find(i=>i.code===t);if(n)return n.code;const r=t.toLowerCase();if(r==="zh"||r.startsWith("zh-cn")||r.startsWith("zh-sg"))return"zh-CN";if(r.startsWith("zh-tw")||r.startsWith("zh-hk")||r.startsWith("zh-mo")||r.startsWith("zh-hant"))return"zh-TW";const a=r.split("-")[0],o=Ai.find(i=>i.code.toLowerCase()===a);return(o==null?void 0:o.code)??ai}function eT(){return ai}function tT(e){if(!(typeof window>"u"))try{window.localStorage.setItem(JP,e)}catch{}}function nT(e){typeof document>"u"||(document.documentElement.lang=e)}function rT(e){return Ai.find(t=>t.code===e)??Ai[0]}const aT={brand:"nanobot",loading:{connecting:"Connecting to nanobot…",boot:"Loading nanobot…"},error:{title:"Couldn't reach nanobot",gatewayHint:"Make sure the gateway is running (`nanobot gateway`) and that this page is open on the same machine."},auth:{title:"Authentication required",hint:"Enter the secret configured as tokenIssueSecret in your gateway config.",placeholder:"Password",submit:"Connect",invalid:"Invalid password. Try again."},account:{section:"Account",logoutHint:"Disconnect this browser from the gateway.",logout:"Sign out"},system:{section:"System",restartHint:"Restart nanobot to apply runtime changes.",restart:"Restart nanobot",restarting:"Restarting...",restartEngine:"Restart engine",restartingEngine:"Restarting engine..."},restart:{completed:"Restart completed in {{seconds}}s."},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"nanobot web UI — chat with your nanobot workspace."}},oT={navigation:"Sidebar navigation",collapse:"Collapse sidebar",newChat:"New chat",searchAria:"Search",searchPlaceholder:"Search",searchResults:"Results",noSearchResults:"No matching chats.",recent:"Recent",settings:"Settings",language:{label:"Language",ariaLabel:"Change language"},apps:"Apps",automations:"Automations",skills:{title:"Skills"}},sT={backToChat:"Back to chat",sidebar:{title:"Settings",ariaLabel:"Settings sections"},nav:{general:"General",byok:"BYOK",overview:"Overview",appearance:"Appearance",models:"Models",providers:"Providers",image:"Image",voice:"Voice",browser:"Web",cliApps:"CLI Apps",mcp:"MCP",runtime:"System",advanced:"Security",apps:"Apps",automations:"Automations",skills:"Skills"},sections:{interface:"Interface",ai:"AI",system:"System",about:"About",status:"Status",localPreferences:"Local preferences",presets:"Presets",imageGeneration:"Image generation",imageDefaults:"Defaults",webSearch:"Web search",webBehavior:"Behavior",cliApps:"CLI apps",mcp:"MCP services",identity:"Identity",webuiSafety:"Web safety",capabilities:"Capabilities",apps:"Apps",nativeHost:"Native host",hostSafety:"App safety",voiceInput:"Voice input"},models:{selectModel:"Select model",addConfiguration:"Add configuration",newConfiguration:"New model configuration",newConfigurationHelp:"Save a provider and model as a one-click option.",configurationName:"Configuration name",configurationNameHelp:"Rename this saved model configuration.",configurationNamePlaceholder:"Fast writing",searchModels:"Search or type model ID",useCustomModel:"Use",loadingModels:"Loading models...",searchCatalog:"Search provider catalog to choose a model.",modelsAvailable:"available",noModelResults:"No matching models.",loadFailed:"Model list unavailable.",unsupportedModelList:"Type a model ID manually.",providerNotConfigured:"Configure this provider before loading models.",autoProviderCustomOnly:"Auto provider mode uses custom model IDs."},rows:{theme:"Theme",language:"Language",provider:"Provider",model:"Model",restart:"Restart nanobot",configPath:"Config path",activePreset:"Active preset",gateway:"Gateway",restartState:"Restart state",pendingChanges:"Pending changes",currentModel:"Current configuration",selectedPreset:"Selected preset",presetModel:"Preset model",density:"Density",activityMode:"Activity detail",codeWrap:"Code wrapping",brandLogos:"Brand logos",maxResults:"Max results",timeout:"Timeout",jinaReader:"Jina reader",imageGeneration:"Image generation",imageProvider:"Image provider",imageProviderStatus:"Provider status",imageProviderBase:"Provider base",imageModel:"Image model",defaultAspectRatio:"Default aspect",defaultImageSize:"Default size",maxImagesPerTurn:"Max images per turn",imageSaveDir:"Save directory",botName:"Bot name",botIcon:"Bot icon",timezone:"Timezone",workspacePath:"Default workspace",localServiceAccess:"Local services",webuiDefaultAccess:"Default access",cliAppsCatalog:"Catalog",cliAppsFilter:"Filter",engine:"Engine",logs:"Logs",diagnostics:"Diagnostics",contextWindow:"Context window",transcription:"Transcription",transcriptionProvider:"Provider",transcriptionProviderStatus:"Provider status",transcriptionModel:"Model",transcriptionLanguage:"Language",voiceLimits:"Limits"},help:{theme:"Switch between light and dark appearance.",language:"Choose the language used by the WebUI.",provider:"Select the provider that should serve new model requests.",model:"Set the default model name used by nanobot.",configPath:"The gateway configuration file currently in use.",currentModel:"Used for new replies.",selectedModelProvider:"Set by the selected model.",selectedModelValue:"Set by the selected model.",selectedPreset:"Named presets are read-only here; edit them in config.json.",presetModel:"Switch to Default to edit model and provider from the WebUI.",density:"Stored only in this browser.",activityMode:"Choose how much agent activity chrome to show by default.",codeWrap:"Keep long code lines readable on smaller screens.",brandLogos:"Show third-party provider and CLI logos in Settings.",maxResults:"Results returned by each web_search call.",timeout:"Seconds before a search provider request times out.",jinaReader:"Use Jina Reader for web_fetch when available.",imageGeneration:"Expose generate_image in chats when a configured image provider is available.",imageProvider:"Choose the registry provider used by generate_image.",imageProviderStatus:"Image generation reuses provider credentials from Providers.",imageModel:"Model name sent to the selected image provider.",defaultAspectRatio:"Used when the prompt does not choose an aspect ratio.",defaultImageSize:"Size hint sent to providers that support it.",maxImagesPerTurn:"Upper bound for one generate_image request.",botName:"Shown wherever nanobot uses a display name.",botIcon:"Short emoji or text shown with the bot name.",timezone:"Used for schedules and time-aware replies.",cliAppsCatalog:"Install only the app-specific CLI adapters nanobot can run locally; native apps stay untouched.",cliAppsFilter:"Search by app, category, or capability.",localServiceAccess:"Allow Full Access shell commands to reach localhost services.",webuiDefaultAccess:"Used by web chats without a project-specific permission.",securityManagedControls:"Web fetches always protect local, private, and metadata services. Core channel safety stays in config.json.",logs:"Open the native engine log folder.",diagnostics:"Export a small runtime report for support.",localServiceAccessNative:"Allow Full Access shell commands to reach services on this Mac.",webuiDefaultAccessNative:"Used by native chats without a project-specific permission.",contextWindow:"Choose the default context budget for this model configuration.",transcription:"Transcribe microphone input before sending it. Chat channel voice messages use the same settings.",transcriptionProvider:"Uses the matching provider credentials from Providers.",transcriptionProviderStatus:"API keys stay under providers, not in transcription settings.",transcriptionModel:"Leave as the resolved default unless your provider needs a custom model id.",transcriptionLanguage:"Optional ISO-639 hint such as en, zh, ja, or ko."},timezone:{select:"Select timezone",search:"Search timezone",empty:"No matching timezones."},cliApps:{allCategories:"All categories",availableCount:"{{count}} apps",installedCount:"{{count}} CLIs installed",summary:"{{installed}} of {{total}} CLIs installed",filterAll:"All",filterInstalled:"Installed CLIs",filterNotInstalled:"Not installed",searchPlaceholder:"Search CLIs",loading:"Loading CLI Apps...",empty:"No CLI Apps match this filter.",statusInstalled:"CLI installed",statusMissing:"Missing",statusAvailable:"Available",statusUnsupported:"Unsupported",statusNotInstalled:"CLI not installed",requires:"Requires",test:"Test CLI",update:"Update CLI",uninstall:"Uninstall CLI",install:"Install CLI",readyTitle:"@{{name}} is ready",readyStatus:"Ready",readyTry:"Try @{{name}}",readyCopied:"Copied",readyPrompt:"Use @{{name}} to inspect what this CLI can do.",openChat:"Open chat",unsupported:"Unsupported",unavailable:"Unavailable",noDescription:"No description available."},about:{version:"Version",checking:"Checking...",checkForUpdates:"Check for updates",upToDate:"You're up to date",updateAvailable:"Update available v{{version}}"},mcp:{allCategories:"All categories",summary:"{{installed}} of {{total}} presets enabled",filterAll:"All",filterInstalled:"Enabled",filterNotInstalled:"Not enabled",searchPlaceholder:"Search MCP presets",moreOptions:"More MCP options",moreOptionsSubtitle:"Add a custom server or import mcp.json.",customTitle:"Custom MCP",customSubtitle:"Add any stdio, HTTP, or SSE MCP server.",customAction:"Custom",importAction:"Import",serverName:"Server name",serverUrl:"URL",transport:"Transport",command:"Command",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"Tool timeout",advancedOptions:"Advanced options",hideAdvanced:"Hide advanced",saveCustom:"Save MCP",configImport:"Import mcp.json",importConfig:"Import",restartRequired:"Restart nanobot to connect updated MCP tools.",toolsFound:"{{count}} tools",loading:"Loading MCP presets...",empty:"No MCP presets match this filter.",openDocs:"Open docs",test:"Test",remove:"Remove",enable:"Enable",enabled:"Enabled",setup:"Connect",configure:"Connect",connectTitle:"Connect {{name}}",connectHint:"Add the key from your account settings.",saveAndEnable:"Save and enable",updateSetup:"Update setup",configured:"configured",keepExisting:"Leave blank to keep existing",statusConfigured:"Configured",statusMissingCredentials:"Needs key",statusMissingDependency:"Needs dependency",statusComingSoon:"Coming soon",statusNotInstalled:"Not enabled",toolScope:"Tools",allTools:"All",noTools:"None",testForTools:"Run Test to inspect and choose individual tools."},values:{light:"Light",dark:"Dark",notAvailable:"Not available",enabled:"Enabled",disabled:"Disabled",restartPending:"Restart pending",ready:"Ready",privateEngine:"Private engine",unixSocket:"Unix socket",defaultWorkspace:"Default workspace",comfortable:"Comfortable",compact:"Compact",auto:"Auto",expanded:"Expanded",on:"On",off:"Off",defaultPermission:"Default Permission",fullAccess:"Full Access",configured:"Configured",notConfigured:"Not configured",pending:"Pending",restartingEngine:"Restarting"},status:{loading:"Loading settings...",loadError:"Could not load settings",unsaved:"Unsaved changes.",upToDate:"Up to date.",savedRestart:"Saved. Restart nanobot to apply.",restartAfterSaving:"Save changes, then restart when ready.",savedRestartApply:"Saved. Restart when ready.",imageProviderRestart:"Image provider changes saved. Restart when ready.",hostRestartAfterSaving:"Save changes and nanobot will restart its engine.",hostRestartPending:"Saved. Restarting engine when ready.",hostApiUnavailable:"Host actions are only available inside the native app.",logsOpened:"Opened logs folder.",logsOpenFailed:"Could not open logs folder.",diagnosticsExported:"Diagnostics exported to {{path}}.",diagnosticsExportFailed:"Could not export diagnostics."},actions:{save:"Save",saving:"Saving",edit:"Edit",cancel:"Cancel",open:"Open",export:"Export",opening:"Opening...",exporting:"Exporting..."},byok:{description:"Bring your own provider keys. Nanobot reads these values from the current config and only configured providers can be selected in General.",configured:"Configured",notConfigured:"Not configured",configuredSection:"Configured",notConfiguredSection:"Not configured",showMore:"Show {{count}} more",showLess:"Show fewer",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"Enter API key",apiKeyConfiguredPlaceholder:"Leave blank to keep the current key",configuredKeyHint:"Configured key",apiBasePlaceholder:"Use provider default",apiKeyRequired:"API key is required to configure this provider.",showApiKey:"Show API key",hideApiKey:"Hide API key",noConfiguredProviders:"No configured providers",configureFirst:"Configure a provider in BYOK first.",openByok:"Open BYOK",tabs:{ariaLabel:"BYOK credential type",llm:"LLM",webSearch:"Web Search"},webSearch:{provider:"Search provider",providerHelp:"Choose the backend used by the web search tool.",selectProvider:"Select provider",credentials:"Credentials",noCredentialRequired:"No key required",noCredentialHelp:"DuckDuckGo works without a saved API key.",apiKeyHelp:"Stored in config and masked after saving.",baseUrl:"Base URL",baseUrlHelp:"SearXNG needs the URL of your own instance.",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"API key is required for this search provider.",baseUrlRequired:"Base URL is required for SearXNG.",missingCredential:"Add the required credential before saving.",saveHint:"Changes apply to new web search requests."}},overview:{model:"Current model",providers:"Providers",configuredCount:"{{count}} configured",totalProviders:"{{count}} available",webSearch:"Web search",imageGeneration:"Image generation",voiceInput:"Voice input",workspace:"Workspace"},usage:{title:"Token activity",shortTitle:"Token Usage",subtitle:"Provider-reported usage over the last 12 months.",empty:"Token activity will appear after new model replies.",totalTokens:"Total tokens",peakTokens:"Peak tokens",thirtyDayTokens:"30-day tokens",currentStreak:"Current streak",longestStreak:"Longest streak",daysValue:"{{count}}d",last30:"30 days",activeDays:"Active days",requests:"Requests",estimated:"estimated",includesEstimates:"includes estimates",cellTitle:"{{date}}: {{tokens}} tokens, {{requests}} requests",sources:{user:"Chat",api:"API",cron:"Automations",dream:"Memory",system:"System"}},providers:{searchPlaceholder:"Search providers",noMatches:"No providers match this search.",saveProvider:"Save provider"},legal:{thirdPartyBrands:"Product names, logos, and brands are property of their respective owners. Use is for identification only and does not imply endorsement."},image:{selectProvider:"Select provider",selectAspect:"Select aspect",selectSize:"Select size",configureProvider:"Configure provider",missingCredential:"Configure this provider before enabling image generation."},apps:{description:"Add app CLIs and MCP services nanobot can use from chat.",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"All",filterCli:"CLI apps",filterMcp:"MCP services",enabledSummary:"{{count}} enabled",caption:"{{cli}} CLI · {{mcp}} MCP",searchPlaceholder:"Search Apps",featured:"Featured",loading:"Loading Apps...",empty:"No apps match this filter."},automations:{filters:{all:"All",active:"Active",paused:"Paused",failed:"Needs attention",system:"System"},sort:{next:"Next run",last:"Last run",updated:"Updated",name:"Name"},search:"Search task, message, linked chat, or schedule",queue:"Queue",loading:"Loading automations...",noMatches:"No automations match this view.",empty:"No automations yet.",emptyHint:"Create one from where it should run so nanobot keeps the right context.",oneShot:"One-time",systemTask:"System-managed automation",labels:{schedule:"Schedule",next:"Next",origin:"Linked chat",created:"Created",updated:"Updated"},runNow:"Run now",pause:"Pause",resume:"Resume",edit:"Edit",delete:"Delete",protected:"Protected",editTitle:"Edit automation",save:"Save",deleteTitle:"Delete automation",deleteDescription:"This removes {{name}} from the cron store. Past chat messages stay in the session.",cancel:"Cancel",status:{system:"System",running:"Running now",paused:"Paused",failed:"Failed",completed:"Completed",noSchedule:"No schedule",active:"Active"},origin:{system:"System",unknown:"No linked chat"},channels:{api:"API",cli:"CLI",dingtalk:"DingTalk",discord:"Discord",email:"Email",feishu:"Feishu",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"WeChat",wecom:"WeCom",weixin:"WeChat",whatsapp:"WhatsApp"},schedule:{at:"At {{time}}",every:"Every {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"Daily at {{time}}",weekdaysAt:"Weekdays at {{time}}",hourlyAt:"Hourly at :{{minute}}",hourlyWindow:"Hourly {{start}}-{{end}} at :{{minute}}",custom:"Custom schedule"},next:{paused:"Paused",pending:"Running now",none:"No next run"},message:{showMore:"Show full message",showLess:"Show less"},fields:{name:"Name",message:"Message",scheduleType:"Schedule type",every:"Every",unit:"Unit",cronExpression:"Cron expression",timezone:"Timezone",runAt:"Run at"},scheduleTypes:{every:"Interval",cron:"Cron",at:"Once"},everyUnits:{second:"Seconds",minute:"Minutes",hour:"Hours",day:"Days"},validation:{nameRequired:"Name is required.",messageRequired:"Message is required.",intervalRequired:"Interval must be a positive number.",cronRequired:"Cron expression is required.",timeRequired:"Run time is required.",futureRequired:"Run time must be in the future."}},oauth:{authentication:"OAuth authentication",signIn:"Sign in",signingIn:"Signing in...",signInAgain:"Sign in again",signOut:"Sign out",signedInAs:"Signed in as {{account}}",signInHelp:"Sign in from this device; no API key is stored in config.",signInRequired:"Sign in required",signInBeforeSaving:"Sign in before saving this OAuth provider as the active model provider.",signedIn:"Signed in",notSignedIn:"Not signed in"},skills:{description:"Review the instruction skills this agent can load during a conversation.",caption:"{{available}} available · {{total}} total",featured:"Agent skills",empty:"No skills are available.",sourceWorkspace:"Custom",sourceBuiltin:"Built-in",statusAvailable:"Available",statusUnavailable:"Unavailable",unavailableReason:"Missing: {{reason}}",openDetails:"Open details for {{name}}",loadingDetail:"Loading skill details...",loadFailed:"Could not load skill details.",descriptionTitle:"Description",source:"Source",status:"Status",requirements:"Requirements",noRequirements:"No explicit requirements.",commands:"Commands",environment:"Environment variables",missingCommands:"Missing CLI",missingEnvironment:"Missing ENV",unavailableReasonLabel:"Unavailable reason",rawInstructions:"Raw SKILL.md",rawInstructionsEmpty:"No raw instructions.",detailDescription:"Details for {{name}}."},voice:{selectProvider:"Select provider",configureProvider:"Configure provider",languageAuto:"Auto"}},iT={fallbackTitle:"Chat {{id}}",forkTitle:"Fork: {{title}}",loading:"Loading…",noSessions:"No sessions yet.",showMore:"Show {{count}} more",collapsed:"{{count}} hidden chats",showLess:"Show less",actions:"Chat actions for {{title}}",newInProject:"Start a new chat in {{project}}",activity:{running:"Agent running",complete:"Agent finished",updated:"New activity"},pin:"Pin",unpin:"Unpin",rename:"Rename",renameTitle:"Rename chat",renameDescription:"Choose a local sidebar name for this chat.",renamePlaceholder:"Chat name",renameProjectTitle:"Rename project",renameProjectDescription:"Choose a local sidebar name for this project.",renameProjectPlaceholder:"Project name",renameSave:"Save",archive:"Archive",unarchive:"Unarchive",showArchived:"Show archived",hideArchived:"Hide archived",delete:"Delete",newChat:"New chat",groups:{pinned:"Pinned",all:"Chats",projects:"Projects",today:"Today",yesterday:"Yesterday",earlier:"Earlier",archived:"Archived"}},lT={title:"Delete this chat?",description:"This action cannot be undone.",cancel:"Cancel",confirm:"Delete",automationsDescription:"This chat has scheduled automations. Deleting it will also delete them.",moreAutomations:"+ {{count}} more",confirmWithAutomations:"Delete",schedule:{at:"{{time}}",every:"Every {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Custom schedule"},next:{label:"Next: {{time}}",disabled:"Paused",none:"No next run"}},cT={idle:"Idle",connecting:"Connecting…",open:"Connected",reconnecting:"Reconnecting…",closed:"Disconnected",error:"Connection error"},uT={loadingConversation:"Loading conversation…",empty:{greetings:{workOn:"What should we work on?",start:"Where should we start?",build:"What are we building today?",tackle:"What should we tackle together?"},quickActions:{plan:{title:"Create a project plan",prompt:"Create a concise project plan for what I should build next."},analyze:{title:"Analyze this data",prompt:"Help me analyze this data and call out the most important patterns."},brainstorm:{title:"Brainstorm ideas",prompt:"Brainstorm a few practical ideas and tradeoffs for this problem."},code:{title:"Write code",prompt:"Help me write the code for this task, starting with the smallest useful change."},summarize:{title:"Summarize this document",prompt:"Summarize this document and list the key takeaways."},more:{title:"More",prompt:"Show me a few useful ways you can help in this workspace."}},imageQuickActions:{icon:{title:"Design an app icon",prompt:"Generate a clean 1:1 app icon for nanobot: friendly robot, simple vector style, soft blue and white palette, no text."},sticker:{title:"Make a sticker",prompt:"Generate a cute sticker-style image of a tiny robot assistant, transparent-looking background, expressive and playful."},poster:{title:"Create a poster",prompt:"Generate a polished poster concept for a personal AI assistant, modern composition, strong visual hierarchy, suitable for a landing page."},product:{title:"Product mockup",prompt:"Generate a clean product mockup image for a conversational AI web app, minimal interface, premium lighting, realistic device frame."},portrait:{title:"Stylized portrait",prompt:"Generate a stylized portrait of a friendly AI companion, soft lighting, detailed but approachable, modern illustration style."},edit:{title:"Edit an image",prompt:"Help me edit an image. Ask me to upload or reference the image first, then generate the edited result."}}},header:{toggleSidebar:"Toggle sidebar",newChat:"Start a new chat",toggleTheme:"Toggle theme from header",settings:"Open settings",sessionInfo:"Session details"},sessionInfo:{title:"Session",untitled:"Untitled chat",automations:"Automations",count:"{{count}}",loading:"Loading automations...",loadFailed:"Could not load automations.",empty:"No automations in this session yet.",disabled:"Off",schedule:{at:"{{time}}",every:"Every {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Custom schedule"},next:{label:"{{time}}",pending:"Runs shortly",disabled:"Paused",none:"No next run"}},composer:{placeholderThread:"Type your message…",placeholderHero:"Ask anything...",placeholderOpening:"Opening a new chat…",placeholderStreaming:"Model is responding…",inputAria:"Message input",sendHint:"Enter to send · Shift+Enter for newline",runRuntimeTitle:"Running · {{elapsed}}",goalStateStrip:"Goal · {{label}}",goalStateFallback:"Goal",goalStateExpandAria:"Show full goal",goalStateSheetTitle:"Goal",goalStateCloseAria:"Close goal",send:"Send message",stop:"Stop response",modelNotConfigured:"Model not configured",configureModel:"Configure model",queued:{label:"Queued guidance",guide:"Guide",delete:"Delete guidance",edit:"Edit guidance",drag:"Drag to reorder"},attachImage:"Attach image",imageMode:{label:"Image Generation",toggle:"Toggle image generation mode",placeholder:"Describe or edit an image…",aspectAria:"Image aspect ratio",aspectLabel:"Image aspect",aspect:{auto:"Auto","1_1":"Square 1:1","3_4":"Portrait 3:4","9_16":"Story 9:16","4_3":"Landscape 4:3","16_9":"Wide 16:9"}},tools:{search:"Search",reason:"Reason",deepResearch:"Deep research",voice:"Voice input"},voice:{hint:"Click to dictate or hold",stop:"Stop recording",transcribing:"Transcribing...",recordingStatus:"Recording {{time}}"},voiceErrors:{unsupported:"Voice input is not supported in this browser.",permission:"Microphone permission is required.",notConfigured:"Configure a transcription provider first.",tooLong:"Recording is too long.",tooShort:"Hold a little longer to record voice.",noInput:"No microphone input detected.",failed:"Could not transcribe audio."},slash:{ariaLabel:"Slash commands",label:"commands",navigateHint:"↑↓ Navigate",selectHint:"Enter/Tab Select",closeHint:"Esc Close",badges:{current:"Current",recent:"Recent"},details:{goalActive:"Goal is running",goalReady:"Start a sustained objective",history:"Show recent messages",stopRunning:"Running now"},commands:{new:{title:"New chat",description:"Stop the current task and start a fresh conversation."},stop:{title:"Stop current task",description:"Cancel the active agent turn for this chat."},restart:{title:"Restart nanobot",description:"Restart the bot process in place."},status:{title:"Show status",description:"Display runtime, provider, and channel status."},model:{title:"Model",description:"Show or switch the active model preset."},history:{title:"Show conversation history",description:"Print the last N persisted conversation messages."},dream:{title:"Run Dream",description:"Manually trigger memory consolidation."},dream_log:{title:"Show Dream log",description:"Show what the last Dream consolidation changed."},dream_restore:{title:"Restore memory",description:"Revert memory to a previous Dream snapshot."},goal:{title:"Long-running goal",description:"Tell the agent to treat this as a sustained multi-step goal."},help:{title:"Show help",description:"List available slash commands."},pairing:{title:"Pairing",description:"Manage pairing requests."}}},mentions:{ariaLabel:"Apps",label:"Apps",cliGroup:"CLI apps",mcpGroup:"MCP services",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"Use @{{name}} as a local CLI app",mcpDescription:"Use @{{name}} as an MCP server"},encoding:"Encoding…",remove:"Remove attachment",normalizedSizeHint:"{{orig}} → {{current}} (auto)",imageRejected:{unsupported_type:"Unsupported file type",too_many_images:"Max {{max}} images per message",magic_mismatch:"File doesn't look like a real image",decode_failed:"Couldn't decode this image",too_large:"Image is too large — try a smaller one",io:"Couldn't read this file"},workspace:{accessAria:"Workspace access mode",projectAria:"Choose project",projectPlaceholder:"Select project",default:"Default Permission",full:"Full Access"}},scrollToBottom:"Scroll to bottom",loadEarlier:"Load earlier messages",forkedFromHistory:"Forked from history",promptNavigator:{open:"Open prompt navigator",title:"Prompts",search:"Search prompts",noResults:"No matching prompts.",jumpTo:"Jump to prompt: {{label}}"}},dT={streaming:"streaming",assistantTyping:"Assistant is typing",toolSingle:"Using a tool",toolMany:"Used {{count}} tools",toolSummary:"{{count}} tool",toolSummaryMany:"{{count}} tools",reasoningTools:"Reasoning · {{count}} tools",reasoningToolsSingular:"Reasoning · 1 tool",reasoning:"Thinking",reasoningStreaming:"Thinking…",reasoningSummary:"Reasoning",agentActivitySummary:"{{reasoning}} steps · {{tools}} tool calls",agentActivityToolsOnly:"{{tools}} tool calls",agentActivityLiveSummary:"Working… · {{reasoning}} steps · {{tools}} tool calls",agentActivityLiveToolsOnly:"Working… · {{tools}} tool calls",activityThinkingFor:"Thinking for {{duration}}",activityThought:"Thought",activityThoughtFor:"Thought for {{duration}}",activityWorkingFor:"Working for {{duration}}",activityWorked:"Worked",activityWorkedFor:"Worked for {{duration}}",cliActivityRunningOne:"Using @{{name}}",cliActivityRanOne:"Used @{{name}}",cliActivityFailedOne:"Failed @{{name}}",cliActivityRunningMany:"Using {{count}} CLI apps",cliActivityRanMany:"Used {{count}} CLI apps",cliActivityFailedMany:"{{count}} CLI apps failed",cliRunRunning:"Using",cliRunRan:"Used",cliRunFailed:"Failed",imageAttachment:"Image attachment",automationSourceFallback:"Automation",automationTriggered:"Triggered automatically",forkFromHere:"Fork",copyReply:"Copy",copiedReply:"Copied",turnLatencyTitle:"Response time (end-to-end)"},pT={title:"Image preview",open:"View image",prev:"Previous image",next:"Next image",close:"Close image preview"},mT={aria:"File preview",close:"Close file preview",loading:"Loading preview...",failed:"Could not preview this file.",routeMissing:"File preview needs the latest gateway. Restart nanobot gateway and try again.",resize:"Resize file preview",truncated:"Preview is truncated because this file is large."},fT={fallbackLanguage:"code",copyAria:"Copy code",copy:"Copy",copied:"Copied"},hT={dismiss:"Dismiss"},gT={messageTooBig:{title:"Message too large",body:"The server rejected your last message because it exceeded the size limit. Remove some images or try smaller files, then send again."},workspaceScopeRejected:{title:"Workspace was not changed",body:"Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."}},vT={dialog:{defaultProject:"Default workspace",manual:"Paste path",manualPlaceholder:"/Users/name/project",usePath:"Use Path",absolutePathRequired:"Enter an absolute folder path on this machine."}},xT={app:aT,sidebar:oT,settings:sT,chat:iT,deleteConfirm:lT,connection:cT,thread:uT,message:dT,lightbox:pT,filePreview:mT,code:fT,common:hT,errors:gT,workspace:vT},yT={brand:"nanobot",loading:{connecting:"正在连接 nanobot…",boot:"正在加载 nanobot…"},error:{title:"无法连接到 nanobot",gatewayHint:"请确认 gateway 已启动(`nanobot gateway`),并且当前页面与 gateway 运行在同一台机器上。"},auth:{title:"需要验证",hint:"请输入 gateway 配置中的 tokenIssueSecret。",placeholder:"密码",submit:"连接",invalid:"密码无效,请重试。"},account:{section:"账户",logoutHint:"断开此浏览器与 gateway 的连接。",logout:"退出登录"},system:{section:"系统",restartHint:"重启 nanobot 以应用运行时更改。",restart:"重启 nanobot",restarting:"正在重启...",restartEngine:"重启引擎",restartingEngine:"正在重启引擎..."},restart:{completed:"重启已完成,用时 {{seconds}} 秒。"},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"nanobot Web UI —— 与你的 nanobot 工作区对话。"}},bT={navigation:"侧边栏导航",collapse:"收起侧边栏",newChat:"新建对话",searchAria:"搜索",searchPlaceholder:"搜索",searchResults:"搜索结果",noSearchResults:"没有匹配的会话。",recent:"最近对话",settings:"设置",language:{label:"语言",ariaLabel:"切换语言"},apps:"应用",automations:"自动任务",skills:{title:"技能"}},wT={backToChat:"返回聊天",sidebar:{title:"设置",ariaLabel:"设置分区"},nav:{general:"通用",byok:"BYOK",overview:"概览",appearance:"外观",models:"模型",providers:"提供商",image:"图片",voice:"语音",browser:"网页",cliApps:"CLI 应用",mcp:"MCP",runtime:"系统",advanced:"安全",apps:"应用",automations:"自动任务",skills:"技能"},sections:{interface:"界面",ai:"AI",system:"系统",about:"关于",status:"状态",localPreferences:"本地偏好",presets:"预设",imageGeneration:"图片生成",imageDefaults:"默认值",webSearch:"网页搜索",webBehavior:"行为",cliApps:"CLI 应用",mcp:"MCP 服务",identity:"身份",webuiSafety:"WebUI 安全",capabilities:"能力",apps:"应用",nativeHost:"原生宿主",hostSafety:"应用安全",voiceInput:"语音识别"},models:{selectModel:"选择模型",addConfiguration:"添加配置",newConfiguration:"新建模型配置",newConfigurationHelp:"把提供商和模型保存成一键选项。",configurationName:"配置名称",configurationNameHelp:"重命名这个已保存的模型配置。",configurationNamePlaceholder:"快速写作",searchModels:"搜索或输入模型 ID",useCustomModel:"使用",loadingModels:"正在加载模型...",searchCatalog:"搜索提供商目录来选择模型。",modelsAvailable:"可用",noModelResults:"没有匹配的模型。",loadFailed:"模型列表不可用。",unsupportedModelList:"手动输入模型 ID。",providerNotConfigured:"加载模型前请先配置此提供商。",autoProviderCustomOnly:"自动提供商模式使用自定义模型 ID。"},rows:{theme:"主题",language:"语言",provider:"提供商",model:"模型",restart:"重启 nanobot",configPath:"配置路径",activePreset:"当前预设",gateway:"网关",restartState:"重启状态",pendingChanges:"待应用更改",currentModel:"当前配置",selectedPreset:"选中的预设",presetModel:"预设模型",density:"密度",activityMode:"活动详情",codeWrap:"代码换行",brandLogos:"品牌 Logo",maxResults:"最大结果数",timeout:"超时",jinaReader:"Jina 阅读器",imageGeneration:"图片生成",imageProvider:"图片提供商",imageProviderStatus:"提供商状态",imageProviderBase:"提供商地址",imageModel:"图片模型",defaultAspectRatio:"默认比例",defaultImageSize:"默认尺寸",maxImagesPerTurn:"每轮最大图片数",imageSaveDir:"保存目录",botName:"Bot 名称",botIcon:"Bot 图标",timezone:"时区",workspacePath:"默认工作区",localServiceAccess:"本机服务",webuiDefaultAccess:"默认权限",cliAppsCatalog:"目录",cliAppsFilter:"筛选",engine:"引擎",logs:"日志",diagnostics:"诊断",contextWindow:"上下文窗口",transcription:"语音转写",transcriptionProvider:"提供商",transcriptionProviderStatus:"提供商状态",transcriptionModel:"模型",transcriptionLanguage:"语言",voiceLimits:"限制"},help:{theme:"在浅色和深色外观之间切换。",language:"选择 WebUI 使用的语言。",provider:"选择处理新模型请求的提供商。",model:"设置 nanobot 默认使用的模型名称。",configPath:"当前网关正在使用的配置文件。",currentModel:"用于新的回复。",selectedModelProvider:"由选中的模型决定。",selectedModelValue:"由选中的模型决定。",selectedPreset:"命名预设在这里只读;请在 config.json 中编辑。",presetModel:"切回 Default 后可在 WebUI 中编辑模型和提供商。",density:"只保存在此浏览器中。",activityMode:"选择默认显示多少 agent 活动细节。",codeWrap:"让长代码行在小屏幕上也易读。",brandLogos:"在设置中显示第三方提供商和 CLI 图标。",maxResults:"每次 web_search 调用返回的结果数。",timeout:"搜索提供商请求超时前的秒数。",jinaReader:"可用时为 web_fetch 使用 Jina Reader。",imageGeneration:"配置图片提供商后,在聊天中开放 generate_image。",imageProvider:"选择 generate_image 使用的注册提供商。",imageProviderStatus:"图片生成会复用「提供商」里的凭据。",imageModel:"发送给所选图片提供商的模型名称。",defaultAspectRatio:"当提示词没有指定比例时使用。",defaultImageSize:"发送给支持此选项的提供商的尺寸提示。",maxImagesPerTurn:"单次 generate_image 请求可生成的图片上限。",botName:"显示在 nanobot 使用展示名称的地方。",botIcon:"显示在 Bot 名称旁的短 emoji 或文字。",timezone:"用于日程和需要时间感知的回复。",cliAppsCatalog:"只安装 nanobot 可本地运行的应用 CLI 适配器;不会改动原生应用。",cliAppsFilter:"按应用、类别或能力搜索。",localServiceAccess:"允许完全访问权限下的 shell 命令访问 localhost 服务。",webuiDefaultAccess:"用于没有单独项目权限的 Web 聊天。",securityManagedControls:"网页抓取始终保护本机、内网和元数据服务。核心渠道安全仍由 config.json 管理。",logs:"打开原生引擎日志文件夹。",diagnostics:"导出一份用于支持排查的小型运行报告。",localServiceAccessNative:"允许完全访问权限下的 shell 命令访问这台 Mac 上的服务。",webuiDefaultAccessNative:"用于没有单独项目权限的原生聊天。",contextWindow:"选择此模型配置的默认上下文预算。",transcription:"发送前先把麦克风输入转写到输入框。聊天渠道里的语音消息也使用同一套设置。",transcriptionProvider:"使用「提供商」中对应提供商的凭据。",transcriptionProviderStatus:"API Key 仍保存在 providers 里,不写进 transcription 设置。",transcriptionModel:"除非提供商需要自定义模型 ID,否则保持解析后的默认值即可。",transcriptionLanguage:"可选 ISO-639 语言提示,例如 en、zh、ja 或 ko。"},timezone:{select:"选择时区",search:"搜索时区",empty:"没有匹配的时区。"},cliApps:{allCategories:"全部分类",availableCount:"{{count}} 个应用",installedCount:"已安装 {{count}} 个 CLI",summary:"CLI 已安装 {{installed}} / {{total}}",filterAll:"全部",filterInstalled:"已装 CLI",filterNotInstalled:"未装 CLI",searchPlaceholder:"搜索 CLI",loading:"正在加载 CLI 应用...",empty:"没有匹配的 CLI 应用。",statusInstalled:"CLI 已安装",statusMissing:"缺失",statusAvailable:"可用",statusUnsupported:"暂不支持",statusNotInstalled:"CLI 未安装",requires:"依赖",test:"测试 CLI",update:"更新 CLI",uninstall:"卸载 CLI",install:"安装 CLI",readyTitle:"@{{name}} 已就绪",readyStatus:"就绪",readyTry:"试试 @{{name}}",readyCopied:"已复制",readyPrompt:"用 @{{name}} 看看这个 CLI 能做什么。",openChat:"回到对话",unsupported:"暂不支持",unavailable:"不可用",noDescription:"暂无描述。"},about:{version:"版本",checking:"正在检查...",checkForUpdates:"检查更新",upToDate:"已是最新版本",updateAvailable:"有可用更新 v{{version}}"},mcp:{allCategories:"全部分类",summary:"已启用 {{installed}} / {{total}} 个预设",filterAll:"全部",filterInstalled:"已启用",filterNotInstalled:"未启用",searchPlaceholder:"搜索 MCP 预设",moreOptions:"更多 MCP 选项",moreOptionsSubtitle:"添加自定义服务,或导入 mcp.json。",customTitle:"自定义 MCP",customSubtitle:"添加任意 stdio、HTTP 或 SSE MCP 服务。",customAction:"自定义",importAction:"导入",serverName:"服务名",serverUrl:"URL",transport:"传输方式",command:"命令",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"工具超时",advancedOptions:"高级选项",hideAdvanced:"收起高级",saveCustom:"保存 MCP",configImport:"导入 mcp.json",importConfig:"导入",restartRequired:"重启 nanobot 以连接更新后的 MCP 工具。",toolsFound:"{{count}} 个工具",loading:"正在加载 MCP 预设...",empty:"没有匹配的 MCP 预设。",openDocs:"打开文档",test:"测试",remove:"移除",enable:"启用",enabled:"已启用",setup:"连接",configure:"连接",connectTitle:"连接 {{name}}",connectHint:"填入你账户里的 key。",saveAndEnable:"保存并启用",updateSetup:"更新配置",configured:"已配置",keepExisting:"留空则保留当前值",statusConfigured:"已配置",statusMissingCredentials:"需要 key",statusMissingDependency:"缺少依赖",statusComingSoon:"暂不支持",statusNotInstalled:"未启用",toolScope:"工具",allTools:"全部",noTools:"不暴露",testForTools:"运行测试后,可以查看并选择单个工具。"},values:{light:"浅色",dark:"深色",notAvailable:"不可用",enabled:"已启用",disabled:"已禁用",restartPending:"等待重启",ready:"就绪",privateEngine:"私有引擎",unixSocket:"Unix socket",defaultWorkspace:"默认工作区",comfortable:"舒适",compact:"紧凑",auto:"自动",expanded:"展开",on:"开启",off:"关闭",defaultPermission:"默认权限",fullAccess:"完全访问权限",configured:"已配置",notConfigured:"未配置",pending:"等待中",restartingEngine:"正在重启"},status:{loading:"正在加载设置...",loadError:"无法加载设置",unsaved:"有未保存的更改。",upToDate:"已是最新。",savedRestart:"已保存。重启 nanobot 后生效。",restartAfterSaving:"保存更改后,在合适时重启。",savedRestartApply:"已保存。准备好后重启。",imageProviderRestart:"图片提供商更改已保存。准备好后重启。",hostRestartAfterSaving:"保存后 nanobot 会重启引擎。",hostRestartPending:"已保存。准备好后会重启引擎。",hostApiUnavailable:"宿主操作仅在原生应用中可用。",logsOpened:"已打开日志文件夹。",logsOpenFailed:"无法打开日志文件夹。",diagnosticsExported:"诊断已导出到 {{path}}。",diagnosticsExportFailed:"无法导出诊断。"},actions:{save:"保存",saving:"正在保存",edit:"编辑",cancel:"取消",open:"打开",export:"导出",opening:"正在打开...",exporting:"正在导出..."},byok:{description:"自带服务商密钥。Nanobot 会从当前 config 读取这些值,只有已配置的服务商才能在通用设置里选择。",configured:"已配置",notConfigured:"未配置",configuredSection:"已配置",notConfiguredSection:"未配置",showMore:"再显示 {{count}} 个",showLess:"收起",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"输入 API key",apiKeyConfiguredPlaceholder:"留空则保留当前 key",configuredKeyHint:"已配置的 key",apiBasePlaceholder:"使用服务商默认地址",apiKeyRequired:"需要 API key 才能配置此服务商。",showApiKey:"显示 API key",hideApiKey:"隐藏 API key",noConfiguredProviders:"没有已配置的服务商",configureFirst:"请先在 BYOK 里配置服务商。",openByok:"打开 BYOK",tabs:{ariaLabel:"BYOK 凭证类型",llm:"LLM",webSearch:"网页搜索"},webSearch:{provider:"搜索服务商",providerHelp:"选择网页搜索工具使用的后端。",selectProvider:"选择服务商",credentials:"凭证",noCredentialRequired:"无需 key",noCredentialHelp:"DuckDuckGo 不需要保存 API key。",apiKeyHelp:"保存到 config 后只显示掩码提示。",baseUrl:"Base URL",baseUrlHelp:"SearXNG 需要你自己的实例地址。",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"这个搜索服务商需要 API key。",baseUrlRequired:"SearXNG 需要 Base URL。",missingCredential:"填写所需凭证后才能保存。",saveHint:"改动会应用到新的网页搜索请求。"}},overview:{model:"当前模型",providers:"提供商",configuredCount:"已配置 {{count}} 个",totalProviders:"共 {{count}} 个可用",webSearch:"网页搜索",imageGeneration:"图片生成",voiceInput:"语音识别",workspace:"工作区"},usage:{title:"Token 活动",shortTitle:"Token Usage",subtitle:"最近 12 个月由提供商上报的 token 用量。",empty:"新的模型回复产生后,这里会显示 token 活动。",totalTokens:"累计 Token 数",peakTokens:"峰值 Token 数",thirtyDayTokens:"30 天 Token 数",currentStreak:"当前连续天数",longestStreak:"最长连续天数",daysValue:"{{count}} 天",last30:"30 天",activeDays:"活跃天数",requests:"请求数",estimated:"估算",includesEstimates:"包含估算",cellTitle:"{{date}}:{{tokens}} tokens,{{requests}} 次请求",sources:{user:"对话",api:"API",cron:"自动任务",dream:"记忆整理",system:"系统"}},providers:{searchPlaceholder:"搜索提供商",noMatches:"没有匹配的提供商。",saveProvider:"保存提供商"},legal:{thirdPartyBrands:"产品名称、Logo 和品牌归各自所有者所有;此处仅用于识别,不代表背书或合作。"},image:{selectProvider:"选择提供商",selectAspect:"选择比例",selectSize:"选择尺寸",configureProvider:"配置提供商",missingCredential:"启用图片生成前请先配置此提供商。"},apps:{description:"添加 nanobot 可在聊天中使用的 App CLI 和 MCP 服务。",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"全部",filterCli:"CLI 应用",filterMcp:"MCP 服务",enabledSummary:"已启用 {{count}} 个",caption:"{{cli}} 个 CLI · {{mcp}} 个 MCP",searchPlaceholder:"搜索应用",featured:"精选",loading:"正在加载应用...",empty:"没有匹配的应用。"},automations:{filters:{all:"全部",active:"运行中",paused:"已暂停",failed:"异常",system:"系统"},sort:{next:"下次运行",last:"上次运行",updated:"更新时间",name:"名称"},search:"搜索任务、消息、关联会话或计划",queue:"任务队列",loading:"正在加载自动任务...",noMatches:"当前视图没有匹配的自动任务。",empty:"暂无自动任务。",emptyHint:"请从它应该运行的来源处创建,这样 nanobot 才能保留正确上下文。",oneShot:"一次性",systemTask:"系统管理的自动任务",labels:{schedule:"计划",next:"下次",origin:"关联会话",created:"创建于",updated:"更新于"},runNow:"立即运行",pause:"暂停",resume:"恢复",edit:"编辑",delete:"删除",protected:"受保护",editTitle:"编辑自动任务",save:"保存",deleteTitle:"删除自动任务",deleteDescription:"这会从 cron 存储中删除 {{name}},历史聊天消息会保留在会话中。",cancel:"取消",status:{system:"系统",running:"正在运行",paused:"已暂停",failed:"失败",completed:"已完成",noSchedule:"无计划",active:"运行中"},origin:{system:"系统",unknown:"未关联会话"},channels:{api:"API",cli:"CLI",dingtalk:"钉钉",discord:"Discord",email:"邮件",feishu:"飞书",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"微信",wecom:"企业微信",weixin:"微信",whatsapp:"WhatsApp"},schedule:{at:"在 {{time}}",every:"每 {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"每天 {{time}}",weekdaysAt:"工作日 {{time}}",hourlyAt:"每小时第 {{minute}} 分钟",hourlyWindow:"{{start}}-{{end}} 点每小时第 {{minute}} 分钟",custom:"自定义计划"},next:{paused:"已暂停",pending:"正在运行",none:"没有下次运行"},message:{showMore:"查看完整消息",showLess:"收起消息"},fields:{name:"名称",message:"消息",scheduleType:"计划类型",every:"每隔",unit:"单位",cronExpression:"Cron 表达式",timezone:"时区",runAt:"运行时间"},scheduleTypes:{every:"间隔",cron:"Cron",at:"一次性"},everyUnits:{second:"秒",minute:"分钟",hour:"小时",day:"天"},validation:{nameRequired:"名称不能为空。",messageRequired:"消息不能为空。",intervalRequired:"间隔必须是正整数。",cronRequired:"Cron 表达式不能为空。",timeRequired:"运行时间不能为空。",futureRequired:"运行时间必须晚于当前时间。"}},oauth:{authentication:"OAuth 认证",signIn:"登录",signingIn:"登录中...",signInAgain:"重新登录",signOut:"退出登录",signedInAs:"已登录为 {{account}}",signInHelp:"从这台设备登录;不会在配置中保存 API key。",signInRequired:"需要登录",signInBeforeSaving:"将此 OAuth 提供商设为当前模型提供商前,请先登录。",signedIn:"已登录",notSignedIn:"未登录"},skills:{description:"查看此 agent 在对话中可以加载的指令技能。",caption:"{{available}} 个可用 · 共 {{total}} 个",featured:"Agent 技能",empty:"暂无可用技能。",sourceWorkspace:"自定义",sourceBuiltin:"内置",statusAvailable:"可用",statusUnavailable:"不可用",unavailableReason:"缺少:{{reason}}",openDetails:"查看 {{name}} 详情",loadingDetail:"正在加载技能详情...",loadFailed:"无法加载技能详情。",descriptionTitle:"完整描述",source:"来源",status:"状态",requirements:"需求",noRequirements:"没有显式需求。",commands:"命令",environment:"环境变量",missingCommands:"缺 CLI",missingEnvironment:"缺 ENV",unavailableReasonLabel:"不可用原因",rawInstructions:"原始 SKILL.md",rawInstructionsEmpty:"没有原始说明。",detailDescription:"{{name}} 的详情。"},voice:{selectProvider:"选择提供商",configureProvider:"配置提供商",languageAuto:"自动"}},kT={fallbackTitle:"对话 {{id}}",forkTitle:"分叉:{{title}}",loading:"加载中…",noSessions:"还没有会话。",showMore:"再显示 {{count}} 个",collapsed:"已折叠 {{count}} 个对话",showLess:"收起",actions:"“{{title}}” 的会话操作",newInProject:"在 {{project}} 中开始新对话",activity:{running:"Agent 正在运行",complete:"Agent 已完成",updated:"有新内容"},pin:"置顶",unpin:"取消置顶",rename:"重命名",renameTitle:"重命名对话",renameDescription:"为这个对话设置一个仅用于 WebUI 侧边栏的名称。",renamePlaceholder:"对话名称",renameProjectTitle:"重命名项目",renameProjectDescription:"为这个项目设置一个仅用于 WebUI 侧边栏的名称。",renameProjectPlaceholder:"项目名称",renameSave:"保存",archive:"归档",unarchive:"取消归档",showArchived:"显示归档",hideArchived:"隐藏归档",delete:"删除",newChat:"新建对话",groups:{pinned:"置顶",all:"对话",projects:"项目",today:"今天",yesterday:"昨天",earlier:"更早",archived:"已归档"}},CT={title:"删除这个对话?",description:"此操作无法撤销。",cancel:"取消",confirm:"删除",automationsDescription:"这个对话有关联的自动任务。删除对话也会删除这些自动任务。",moreAutomations:"另有 {{count}} 个",confirmWithAutomations:"删除",schedule:{at:"{{time}}",every:"每 {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"自定义计划"},next:{label:"下次:{{time}}",disabled:"已暂停",none:"没有下次运行"}},ST={idle:"空闲",connecting:"连接中…",open:"已连接",reconnecting:"重连中…",closed:"已断开",error:"连接出错"},NT={loadingConversation:"正在加载对话…",empty:{greetings:{workOn:"我们要一起做点什么?",start:"今天从哪里开始?",build:"今天一起构建什么?",tackle:"我们要一起解决什么?"},quickActions:{plan:{title:"创建项目计划",prompt:"帮我为接下来要做的事情写一份简洁的项目计划。"},analyze:{title:"分析这些数据",prompt:"帮我分析这些数据,并指出最重要的模式。"},brainstorm:{title:"头脑风暴想法",prompt:"围绕这个问题头脑风暴几个实用方案,并说明取舍。"},code:{title:"编写代码",prompt:"帮我为这个任务写代码,先从最小可用改动开始。"},summarize:{title:"总结这份文档",prompt:"帮我总结这份文档,并列出关键要点。"},more:{title:"更多",prompt:"展示几个你在这个工作区里可以帮我的实用方式。"}},imageQuickActions:{icon:{title:"设计应用图标",prompt:"生成一个干净的 1:1 nanobot 应用图标:友好的机器人,简洁矢量风格,蓝白柔和配色,不要文字。"},sticker:{title:"制作贴纸",prompt:"生成一张可爱的贴纸风小机器人助手图片,背景像透明贴纸,表情活泼有趣。"},poster:{title:"创建海报",prompt:"生成一张个人 AI 助手的精致海报概念图,现代构图,视觉层级清晰,适合落地页展示。"},product:{title:"产品样机",prompt:"生成一张对话式 AI Web 应用的干净产品样机图,极简界面,高级光影,真实设备边框。"},portrait:{title:"风格化头像",prompt:"生成一个友好的 AI 伙伴风格化头像,柔和光线,细节丰富但亲切,现代插画风格。"},edit:{title:"编辑图片",prompt:"帮我编辑一张图片。先让我上传或指定要编辑的图片,然后生成编辑后的结果。"}}},header:{toggleSidebar:"切换侧边栏",newChat:"从顶部新建对话",toggleTheme:"从顶部切换主题",settings:"打开设置",sessionInfo:"会话详情"},sessionInfo:{title:"会话",untitled:"未命名对话",automations:"自动任务",count:"{{count}}",loading:"正在加载自动任务...",loadFailed:"无法加载自动任务。",empty:"这个会话暂时没有自动任务。",disabled:"已关闭",schedule:{at:"{{time}}",every:"每 {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"自定义计划"},next:{label:"下次 {{time}}",pending:"即将执行",disabled:"已暂停",none:"没有下次运行"}},composer:{placeholderThread:"输入消息…",placeholderHero:"问任何问题...",placeholderOpening:"正在打开新对话…",placeholderStreaming:"模型正在回复…",inputAria:"消息输入框",sendHint:"Enter 发送 · Shift+Enter 换行",runRuntimeTitle:"运行中 · {{elapsed}}",goalStateStrip:"目标 · {{label}}",goalStateFallback:"目标",goalStateExpandAria:"查看完整目标",goalStateSheetTitle:"目标",send:"发送消息",stop:"停止响应",modelNotConfigured:"模型未配置",configureModel:"配置模型",queued:{label:"待引导提示",guide:"引导",delete:"删除引导",edit:"编辑引导",drag:"拖动排序"},attachImage:"添加图片",imageMode:{label:"图片生成",toggle:"切换图片生成模式",placeholder:"描述或编辑图片…",aspectAria:"图片画幅",aspectLabel:"图片画幅",aspect:{auto:"自动","1_1":"方形 1:1","3_4":"竖版 3:4","9_16":"故事版 9:16","4_3":"横版 4:3","16_9":"宽屏 16:9"}},tools:{search:"搜索",reason:"推理",deepResearch:"深度研究",voice:"语音输入"},voice:{hint:"点击进行听写或长按",stop:"停止录音",transcribing:"正在转写...",recordingStatus:"正在录音 {{time}}"},voiceErrors:{unsupported:"当前浏览器不支持语音输入。",permission:"需要麦克风权限。",notConfigured:"请先配置转写提供商。",tooLong:"录音时间太长。",tooShort:"请稍微多录一会儿。",noInput:"没有检测到麦克风输入。",failed:"语音转写失败。"},slash:{ariaLabel:"斜杠命令",label:"命令",navigateHint:"↑↓ 选择",selectHint:"Enter/Tab 填入",closeHint:"Esc 关闭",badges:{current:"当前",recent:"最近"},details:{goalActive:"目标正在运行",goalReady:"开始一个持续目标",history:"查看最近消息",stopRunning:"正在运行"},commands:{new:{title:"新建对话",description:"停止当前任务,并开始一个新的对话。"},stop:{title:"停止当前任务",description:"取消这个对话中正在运行的 agent 回合。"},restart:{title:"重启 nanobot",description:"原地重启 bot 进程。"},status:{title:"查看状态",description:"显示运行时、服务商和通道状态。"},model:{title:"模型",description:"查看或切换当前模型预设。"},history:{title:"查看对话历史",description:"打印最近 N 条已持久化的对话消息。"},dream:{title:"运行 Dream",description:"手动触发记忆整理。"},dream_log:{title:"查看 Dream 日志",description:"查看上一次 Dream 整理改变了什么。"},dream_restore:{title:"恢复记忆",description:"将记忆恢复到之前的 Dream 快照。"},goal:{title:"长期目标",description:"让助手把当前请求当作需要多步骤持续推进的目标。"},help:{title:"查看帮助",description:"列出可用的斜杠命令。"},pairing:{title:"配对",description:"管理配对请求。"}}},mentions:{ariaLabel:"应用",label:"应用",cliGroup:"CLI 应用",mcpGroup:"MCP 服务",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"使用 @{{name}} 调用本地 CLI",mcpDescription:"使用 @{{name}} 调用 MCP 服务"},encoding:"处理中…",remove:"移除附件",normalizedSizeHint:"{{orig}} → {{current}}(已自动压缩)",imageRejected:{unsupported_type:"不支持的文件类型",too_many_images:"每条消息最多 {{max}} 张图片",magic_mismatch:"文件看起来不像真实的图片",decode_failed:"无法解码这张图片",too_large:"图片太大,请换一张小一点的",io:"无法读取该文件"},goalStateCloseAria:"关闭目标",workspace:{accessAria:"工作区访问权限",projectAria:"选择项目",projectPlaceholder:"选择项目",default:"默认权限",full:"完全访问权限"}},scrollToBottom:"滚动到底部",loadEarlier:"加载更早消息",forkedFromHistory:"从历史消息分叉",promptNavigator:{open:"打开输入导航",title:"输入列表",search:"搜索输入",noResults:"没有匹配的输入。",jumpTo:"跳转到输入:{{label}}"}},jT={streaming:"流式输出中",assistantTyping:"助手正在输入",toolSingle:"正在使用工具",toolMany:"已使用 {{count}} 个工具",toolSummary:"{{count}} 个工具",toolSummaryMany:"{{count}} 个工具",reasoningTools:"推理 · {{count}} 个工具",reasoningToolsSingular:"推理 · 1 个工具",reasoning:"思考过程",reasoningStreaming:"正在思考…",reasoningSummary:"推理",agentActivitySummary:"{{reasoning}} 步 · {{tools}} 次工具调用",agentActivityToolsOnly:"{{tools}} 次工具调用",agentActivityLiveSummary:"进行中… · {{reasoning}} 步 · {{tools}} 次工具调用",agentActivityLiveToolsOnly:"进行中… · {{tools}} 次工具调用",activityThinkingFor:"思考中 {{duration}}",activityThought:"已思考",activityThoughtFor:"思考了 {{duration}}",activityWorkingFor:"处理中 {{duration}}",activityWorked:"已处理",activityWorkedFor:"处理了 {{duration}}",cliActivityRunningOne:"正在使用 @{{name}}",cliActivityRanOne:"已使用 @{{name}}",cliActivityFailedOne:"使用 @{{name}} 失败",cliActivityRunningMany:"正在使用 {{count}} 个 CLI 应用",cliActivityRanMany:"已使用 {{count}} 个 CLI 应用",cliActivityFailedMany:"{{count}} 个 CLI 应用失败",cliRunRunning:"正在使用",cliRunRan:"已使用",cliRunFailed:"失败",imageAttachment:"图片附件",automationSourceFallback:"自动化",automationTriggered:"自动触发",forkFromHere:"分叉",copyReply:"复制",copiedReply:"已复制",turnLatencyTitle:"本轮耗时(端到端)"},AT={title:"图片预览",open:"查看图片",prev:"上一张",next:"下一张",close:"关闭预览"},_T={aria:"文件预览",close:"关闭文件预览",loading:"正在加载预览...",failed:"无法预览这个文件。",routeMissing:"文件预览需要最新的 gateway。请重启 nanobot gateway 后再试。",resize:"调整文件预览宽度",truncated:"文件较大,当前只显示前半部分预览。"},PT={fallbackLanguage:"代码",copyAria:"复制代码",copy:"复制",copied:"已复制"},TT={dismiss:"关闭"},RT={messageTooBig:{title:"消息过大",body:"服务端因超过大小限制拒收了上一条消息。可移除部分图片或使用更小的图片后重试。"},workspaceScopeRejected:{title:"工作区未更改",body:"网关拒绝了请求的项目或访问权限,Nanobot 已继续使用之前的工作区。"}},MT={dialog:{defaultProject:"默认工作区",manual:"粘贴路径",manualPlaceholder:"/Users/name/project",usePath:"使用路径",absolutePathRequired:"请输入这台机器上的绝对文件夹路径。"}},ET={app:yT,sidebar:bT,settings:wT,chat:kT,deleteConfirm:CT,connection:ST,thread:NT,message:jT,lightbox:AT,filePreview:_T,code:PT,common:TT,errors:RT,workspace:MT},IT={brand:"nanobot",loading:{connecting:"正在連線到 nanobot…",boot:"正在載入 nanobot…"},error:{title:"無法連線到 nanobot",gatewayHint:"請確認 gateway 已啟動(`nanobot gateway`),並且目前頁面與 gateway 在同一台機器上開啟。"},auth:{title:"需要驗證",hint:"輸入 gateway 設定中 tokenIssueSecret 配置的密鑰。",placeholder:"密碼",submit:"連線",invalid:"密碼無效,請再試一次。"},account:{section:"帳戶",logoutHint:"中斷此瀏覽器與 gateway 的連線。",logout:"登出"},system:{section:"系統",restartHint:"重新啟動 nanobot 以套用執行階段變更。",restart:"重新啟動 nanobot",restarting:"正在重新啟動...",restartEngine:"重新啟動引擎",restartingEngine:"正在重新啟動引擎..."},restart:{completed:"重新啟動已完成,耗時 {{seconds}} 秒。"},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"nanobot Web UI —— 與你的 nanobot 工作區對話。"}},LT={navigation:"側邊欄導覽",collapse:"收合側邊欄",newChat:"新增對話",searchAria:"搜尋",searchPlaceholder:"搜尋",searchResults:"搜尋結果",noSearchResults:"沒有符合的對話。",recent:"最近對話",settings:"設定",language:{label:"語言",ariaLabel:"切換語言"},apps:"應用",automations:"自動任務",skills:{title:"技能"}},DT={backToChat:"返回聊天",sidebar:{title:"設定",ariaLabel:"設定分區"},nav:{general:"一般",byok:"BYOK",overview:"概覽",appearance:"外觀",models:"模型",providers:"提供商",image:"圖片",voice:"語音",browser:"網頁",runtime:"系統",advanced:"安全",cliApps:"CLI 應用",mcp:"MCP",apps:"應用",automations:"自動任務",skills:"技能"},sections:{interface:"介面",ai:"AI",system:"系統",about:"關於",status:"狀態",localPreferences:"本機偏好",presets:"預設",imageGeneration:"圖片生成",imageDefaults:"預設值",webSearch:"網頁搜尋",webBehavior:"行為",identity:"身分",webuiSafety:"WebUI 安全",capabilities:"能力",cliApps:"CLI 應用",mcp:"MCP 服務",apps:"應用",nativeHost:"原生宿主",hostSafety:"App 安全",voiceInput:"語音辨識"},rows:{theme:"主題",language:"語言",provider:"供應商",model:"模型",restart:"重新啟動 nanobot",configPath:"配置路徑",activePreset:"目前預設",gateway:"閘道",restartState:"重啟狀態",pendingChanges:"待套用更改",selectedPreset:"已選預設",presetModel:"預設模型",density:"密度",activityMode:"活動細節",codeWrap:"程式碼換行",maxResults:"最大結果數",timeout:"逾時",jinaReader:"Jina 閱讀器",imageGeneration:"圖片生成",imageProvider:"圖片供應商",imageProviderStatus:"供應商狀態",imageProviderBase:"供應商位址",imageModel:"圖片模型",defaultAspectRatio:"預設比例",defaultImageSize:"預設尺寸",maxImagesPerTurn:"每輪最大圖片數",imageSaveDir:"儲存目錄",botName:"Bot 名稱",botIcon:"Bot 圖示",timezone:"時區",workspacePath:"預設工作區",localServiceAccess:"本機服務",webuiDefaultAccess:"預設權限",currentModel:"目前設定",brandLogos:"品牌 Logo",cliAppsCatalog:"目錄",cliAppsFilter:"篩選",engine:"引擎",logs:"日誌",diagnostics:"診斷",contextWindow:"上下文視窗",transcription:"語音轉寫",transcriptionProvider:"提供商",transcriptionProviderStatus:"提供商狀態",transcriptionModel:"模型",transcriptionLanguage:"語言",voiceLimits:"限制"},help:{theme:"在淺色與深色外觀之間切換。",language:"選擇 WebUI 使用的語言。",provider:"選擇處理新模型請求的供應商。",model:"設定 nanobot 預設使用的模型名稱。",configPath:"目前閘道使用中的配置檔。",selectedPreset:"命名預設在此為唯讀;請在 config.json 中編輯。",presetModel:"切回 Default 後可在 WebUI 中編輯模型與供應商。",density:"只儲存在此瀏覽器中。",activityMode:"選擇預設顯示多少 agent 活動細節。",codeWrap:"讓長程式碼行在小螢幕上也易讀。",maxResults:"每次 web_search 呼叫返回的結果數。",timeout:"搜尋供應商請求逾時前的秒數。",jinaReader:"可用時為 web_fetch 使用 Jina Reader。",imageGeneration:"配置圖片供應商後,在聊天中開放 generate_image。",imageProvider:"選擇 generate_image 使用的註冊供應商。",imageProviderStatus:"圖片生成會重用「供應商」中的憑證。",imageModel:"傳送給所選圖片供應商的模型名稱。",defaultAspectRatio:"提示詞未指定比例時使用。",defaultImageSize:"傳送給支援此選項的供應商的尺寸提示。",maxImagesPerTurn:"單次 generate_image 請求可生成的圖片上限。",botName:"顯示在 nanobot 使用顯示名稱的位置。",botIcon:"顯示在 Bot 名稱旁的短 emoji 或文字。",timezone:"用於排程和需要時間感知的回覆。",localServiceAccess:"允許完全訪問權限下的 shell 命令訪問 localhost 服務。",webuiDefaultAccess:"用於沒有單獨專案權限的 Web 聊天。",securityManagedControls:"網頁抓取始終保護本機、內網和 metadata 服務。核心渠道安全仍由 config.json 管理。",currentModel:"用於新的回覆。",selectedModelProvider:"由選取的模型決定。",selectedModelValue:"由選取的模型決定。",brandLogos:"在設定中顯示第三方提供商和 CLI 圖示。",cliAppsCatalog:"只安裝 nanobot 可在本機執行的應用 CLI 轉接器;不會改動原生應用。",cliAppsFilter:"按應用、類別或能力搜尋。",logs:"開啟原生引擎日誌資料夾。",diagnostics:"匯出一份用於支援排查的小型執行報告。",localServiceAccessNative:"允許完全訪問權限下的 shell 命令訪問這台 Mac 上的服務。",webuiDefaultAccessNative:"用於沒有單獨專案權限的原生聊天。",contextWindow:"選擇此模型配置的預設上下文預算。",transcription:"送出前先把麥克風輸入轉寫到輸入框。聊天渠道的語音訊息也使用同一組設定。",transcriptionProvider:"使用「提供商」中對應提供商的憑證。",transcriptionProviderStatus:"API Key 仍保存在 providers 裡,不寫進 transcription 設定。",transcriptionModel:"除非提供商需要自訂模型 ID,否則保持解析後的預設值即可。",transcriptionLanguage:"可選 ISO-639 語言提示,例如 en、zh、ja 或 ko。"},values:{light:"淺色",dark:"深色",notAvailable:"不可用",enabled:"已啟用",disabled:"已停用",restartPending:"等待重啟",ready:"就緒",privateEngine:"私有引擎",unixSocket:"Unix socket",defaultWorkspace:"預設工作區",comfortable:"舒適",compact:"緊湊",auto:"自動",expanded:"展開",on:"開啟",off:"關閉",defaultPermission:"預設權限",fullAccess:"完全訪問權限",configured:"已配置",notConfigured:"未配置",pending:"等待中",restartingEngine:"正在重啟"},status:{loading:"正在載入設定...",loadError:"無法載入設定",unsaved:"有未儲存的更改。",upToDate:"已是最新。",savedRestart:"已儲存。重新啟動 nanobot 後生效。",restartAfterSaving:"儲存更改後,在合適時重啟。",savedRestartApply:"已儲存。準備好後重啟。",imageProviderRestart:"圖片供應商更改已儲存。準備好後重啟。",hostRestartAfterSaving:"儲存後 nanobot 會重啟引擎。",hostRestartPending:"已儲存。準備好後會重啟引擎。",hostApiUnavailable:"宿主操作僅在原生應用中可用。",logsOpened:"已開啟日誌資料夾。",logsOpenFailed:"無法開啟日誌資料夾。",diagnosticsExported:"診斷已匯出到 {{path}}。",diagnosticsExportFailed:"無法匯出診斷。"},actions:{save:"儲存",saving:"正在儲存",edit:"編輯",cancel:"取消",open:"開啟",export:"匯出",opening:"正在開啟...",exporting:"正在匯出..."},byok:{description:"自帶 provider key。Nanobot 會從目前 config 讀取這些值,只有已設定的 provider 才能在一般設定中選擇。",configured:"已設定",notConfigured:"未設定",configuredSection:"已設定",notConfiguredSection:"未設定",showMore:"再顯示 {{count}} 個",showLess:"收合",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"輸入 API key",apiKeyConfiguredPlaceholder:"留空則保留目前 key",configuredKeyHint:"已設定的 key",apiBasePlaceholder:"使用 provider 預設地址",apiKeyRequired:"需要 API key 才能設定此 provider。",showApiKey:"顯示 API key",hideApiKey:"隱藏 API key",noConfiguredProviders:"沒有已設定的 provider",configureFirst:"請先在 BYOK 設定 provider。",openByok:"開啟 BYOK",tabs:{ariaLabel:"BYOK 憑證類型",llm:"LLM",webSearch:"網頁搜尋"},webSearch:{provider:"搜尋 provider",providerHelp:"選擇 web search 工具使用的後端。",selectProvider:"選擇 provider",credentials:"憑證",noCredentialRequired:"不需要 key",noCredentialHelp:"DuckDuckGo 不需要儲存 API key。",apiKeyHelp:"儲存到 config 後只顯示遮罩提示。",baseUrl:"Base URL",baseUrlHelp:"SearXNG 需要你自己的實例網址。",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"此搜尋 provider 需要 API key。",baseUrlRequired:"SearXNG 需要 Base URL。",missingCredential:"填寫必要憑證後才能儲存。",saveHint:"變更會套用到新的 web search 請求。"}},overview:{model:"目前模型",providers:"供應商",configuredCount:"已配置 {{count}} 個",totalProviders:"共 {{count}} 個可用",webSearch:"網頁搜尋",imageGeneration:"圖片生成",voiceInput:"語音辨識",workspace:"工作區"},usage:{title:"Token 活動",shortTitle:"Token Usage",subtitle:"最近 12 個月由供應商回報的 token 用量。",empty:"新的模型回覆產生後,這裡會顯示 token 活動。",totalTokens:"累計 Token 數",peakTokens:"峰值 Token 數",thirtyDayTokens:"30 天 Token 數",currentStreak:"目前連續天數",longestStreak:"最長連續天數",daysValue:"{{count}} 天",last30:"30 天",activeDays:"活躍天數",requests:"請求數",estimated:"估算",includesEstimates:"包含估算",cellTitle:"{{date}}:{{tokens}} tokens,{{requests}} 次請求",sources:{user:"對話",api:"API",cron:"自動任務",dream:"記憶整理",system:"系統"}},providers:{searchPlaceholder:"搜尋供應商",noMatches:"沒有符合的供應商。",saveProvider:"儲存供應商"},image:{selectProvider:"選擇供應商",selectAspect:"選擇比例",selectSize:"選擇尺寸",configureProvider:"配置供應商",missingCredential:"啟用圖片生成前請先配置此供應商。"},models:{selectModel:"選擇模型",addConfiguration:"新增配置",newConfiguration:"新增模型配置",newConfigurationHelp:"將供應商與模型儲存為一鍵選項。",configurationName:"配置名稱",configurationNameHelp:"重新命名這個已儲存的模型配置。",configurationNamePlaceholder:"快速寫作",searchModels:"搜尋或輸入模型 ID",useCustomModel:"使用",loadingModels:"正在載入模型...",searchCatalog:"搜尋供應商目錄來選擇模型。",modelsAvailable:"可用",noModelResults:"沒有符合的模型。",loadFailed:"模型列表不可用。",unsupportedModelList:"手動輸入模型 ID。",providerNotConfigured:"載入模型前請先配置此供應商。",autoProviderCustomOnly:"自動供應商模式使用自訂模型 ID。"},timezone:{select:"選擇時區",search:"搜尋時區",empty:"沒有符合的時區。"},cliApps:{allCategories:"全部分類",availableCount:"{{count}} 個應用",installedCount:"已安裝 {{count}} 個",summary:"已安裝 {{installed}} / {{total}} 個 CLI",filterAll:"全部",filterInstalled:"已安裝的 CLI",filterNotInstalled:"未安裝",searchPlaceholder:"搜尋 CLI",statusInstalled:"已安裝",statusAvailable:"可用",statusMissing:"缺少相依項",statusUnsupported:"不支援",statusNotInstalled:"未安裝",unsupported:"不支援",loading:"正在載入 CLI 應用...",empty:"沒有符合此篩選條件的 CLI 應用。",readyTitle:"@{{name}} 已就緒",readyStatus:"就緒",readyPrompt:"使用 @{{name}} 查看這個 CLI 能做什麼。",readyTry:"試用 @{{name}}",readyCopied:"已複製",openChat:"開啟聊天",requires:"需要",test:"測試 CLI",update:"更新 CLI",uninstall:"解除安裝 CLI",install:"安裝 CLI",unavailable:"不可用",noDescription:"暫無描述。"},about:{version:"版本",checking:"正在檢查...",checkForUpdates:"檢查更新",upToDate:"已是最新版本",updateAvailable:"有可用更新 v{{version}}"},mcp:{allCategories:"全部分類",summary:"已啟用 {{installed}} / {{total}} 個預設",filterAll:"全部",filterInstalled:"已啟用",filterNotInstalled:"未啟用",searchPlaceholder:"搜尋 MCP 預設",moreOptions:"更多 MCP 選項",moreOptionsSubtitle:"新增自訂服務,或匯入 mcp.json。",customTitle:"自訂 MCP",customSubtitle:"新增任意 stdio、HTTP 或 SSE MCP 服務。",customAction:"自訂",importAction:"匯入",serverName:"服務名稱",serverUrl:"URL",transport:"傳輸方式",command:"指令",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"工具逾時",advancedOptions:"進階選項",hideAdvanced:"隱藏進階",saveCustom:"儲存 MCP",configImport:"匯入 mcp.json",importConfig:"匯入",restartRequired:"重新啟動 nanobot 以連接更新後的 MCP 工具。",toolsFound:"{{count}} 個工具",loading:"正在載入 MCP 預設...",empty:"沒有符合此篩選條件的 MCP 預設。",openDocs:"開啟文件",test:"測試",remove:"移除",enable:"啟用",enabled:"已啟用",setup:"連接",configure:"連接",connectTitle:"連接 {{name}}",connectHint:"從你的帳號設定中加入金鑰。",saveAndEnable:"儲存並啟用",updateSetup:"更新設定",configured:"已設定",keepExisting:"留空以保留目前值",statusConfigured:"已設定",statusMissingCredentials:"需要金鑰",statusMissingDependency:"需要相依項",statusComingSoon:"即將推出",statusNotInstalled:"未啟用",toolScope:"工具",allTools:"全部",noTools:"無",testForTools:"執行測試以檢查並選擇個別工具。"},legal:{thirdPartyBrands:"產品名稱、標誌與品牌均屬於其各自擁有者。使用僅為識別用途,並不代表背書。"},apps:{description:"新增 nanobot 可在聊天中使用的 App CLI 和 MCP 服務。",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"全部",filterCli:"CLI 應用",filterMcp:"MCP 服務",enabledSummary:"已啟用 {{count}} 個",caption:"{{cli}} 個 CLI · {{mcp}} 個 MCP",searchPlaceholder:"搜尋應用",featured:"精選",loading:"正在載入應用...",empty:"沒有符合的應用。"},automations:{filters:{all:"全部",active:"執行中",paused:"已暫停",failed:"異常",system:"系統"},sort:{next:"下次執行",last:"上次執行",updated:"更新時間",name:"名稱"},search:"搜尋任務、訊息、關聯對話或排程",queue:"任務佇列",loading:"正在載入自動任務...",noMatches:"目前檢視沒有符合的自動任務。",empty:"尚無自動任務。",emptyHint:"請從它應該執行的來源處建立,這樣 nanobot 才能保留正確上下文。",oneShot:"一次性",systemTask:"系統管理的自動任務",labels:{schedule:"排程",next:"下次",origin:"關聯會話",created:"建立於",updated:"更新於"},runNow:"立即執行",pause:"暫停",resume:"恢復",edit:"編輯",delete:"刪除",protected:"受保護",editTitle:"編輯自動任務",save:"儲存",deleteTitle:"刪除自動任務",deleteDescription:"這會從 cron 儲存中刪除 {{name}},歷史聊天訊息會保留在會話中。",cancel:"取消",status:{system:"系統",running:"正在執行",paused:"已暫停",failed:"失敗",completed:"已完成",noSchedule:"無排程",active:"執行中"},origin:{system:"系統",unknown:"未關聯會話"},channels:{api:"API",cli:"CLI",dingtalk:"釘釘",discord:"Discord",email:"電子郵件",feishu:"飛書",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"微信",wecom:"企業微信",weixin:"微信",whatsapp:"WhatsApp"},schedule:{at:"於 {{time}}",every:"每 {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"每天 {{time}}",weekdaysAt:"工作日 {{time}}",hourlyAt:"每小時第 {{minute}} 分鐘",hourlyWindow:"{{start}}-{{end}} 點每小時第 {{minute}} 分鐘",custom:"自訂排程"},next:{paused:"已暫停",pending:"正在執行",none:"沒有下次執行"},message:{showMore:"查看完整訊息",showLess:"收起訊息"},fields:{name:"名稱",message:"訊息",scheduleType:"排程類型",every:"每隔",unit:"單位",cronExpression:"Cron 表達式",timezone:"時區",runAt:"執行時間"},scheduleTypes:{every:"間隔",cron:"Cron",at:"一次性"},everyUnits:{second:"秒",minute:"分鐘",hour:"小時",day:"天"},validation:{nameRequired:"名稱不能為空。",messageRequired:"訊息不能為空。",intervalRequired:"間隔必須是正整數。",cronRequired:"Cron 表達式不能為空。",timeRequired:"執行時間不能為空。",futureRequired:"執行時間必須晚於目前時間。"}},oauth:{authentication:"OAuth 認證",signIn:"登入",signingIn:"登入中...",signInAgain:"重新登入",signOut:"登出",signedInAs:"已登入為 {{account}}",signInHelp:"從這台裝置登入;不會在配置中儲存 API key。",signInRequired:"需要登入",signInBeforeSaving:"將此 OAuth 供應商設為目前模型供應商前,請先登入。",signedIn:"已登入",notSignedIn:"未登入"},skills:{description:"查看此 agent 在對話中可以載入的指令技能。",caption:"{{available}} 個可用 · 共 {{total}} 個",featured:"Agent 技能",empty:"暫無可用技能。",sourceWorkspace:"自訂",sourceBuiltin:"內建",statusAvailable:"可用",statusUnavailable:"不可用",unavailableReason:"缺少:{{reason}}",openDetails:"查看 {{name}} 詳情",loadingDetail:"正在載入技能詳情...",loadFailed:"無法載入技能詳情。",descriptionTitle:"完整描述",source:"來源",status:"狀態",requirements:"需求",noRequirements:"沒有明確需求。",commands:"命令",environment:"環境變數",missingCommands:"缺 CLI",missingEnvironment:"缺 ENV",unavailableReasonLabel:"不可用原因",rawInstructions:"原始 SKILL.md",rawInstructionsEmpty:"沒有原始說明。",detailDescription:"{{name}} 的詳細資訊。"},voice:{selectProvider:"選擇提供商",configureProvider:"設定提供商",languageAuto:"自動"}},OT={fallbackTitle:"對話 {{id}}",forkTitle:"分叉:{{title}}",loading:"載入中…",noSessions:"目前還沒有會話。",showMore:"再顯示 {{count}} 個",collapsed:"已折疊 {{count}} 個對話",showLess:"收起",actions:"「{{title}}」的會話操作",newInProject:"在 {{project}} 中開始新對話",activity:{running:"Agent 正在執行",complete:"Agent 已完成",updated:"有新內容"},pin:"置頂",unpin:"取消置頂",rename:"重新命名",renameTitle:"重新命名對話",renameDescription:"為這個對話設定僅用於 WebUI 側邊欄的名稱。",renamePlaceholder:"對話名稱",renameProjectTitle:"重新命名專案",renameProjectDescription:"為這個專案設定僅用於 WebUI 側邊欄的名稱。",renameProjectPlaceholder:"專案名稱",renameSave:"儲存",archive:"封存",unarchive:"取消封存",showArchived:"顯示封存",hideArchived:"隱藏封存",delete:"刪除",newChat:"新增對話",groups:{pinned:"置頂",all:"對話",projects:"專案",today:"今天",yesterday:"昨天",earlier:"更早",archived:"已封存"}},FT={title:"刪除這個對話?",description:"此操作無法復原。",cancel:"取消",confirm:"刪除",automationsDescription:"這個對話有關聯的自動任務。刪除對話也會刪除這些自動任務。",moreAutomations:"另有 {{count}} 個",confirmWithAutomations:"刪除",schedule:{at:"{{time}}",every:"每 {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"自訂計畫"},next:{label:"下次:{{time}}",disabled:"已暫停",none:"沒有下次執行"}},zT={idle:"閒置",connecting:"連線中…",open:"已連線",reconnecting:"重新連線中…",closed:"已中斷",error:"連線錯誤"},$T={loadingConversation:"正在載入對話…",empty:{greetings:{workOn:"我們要一起做點什麼?",start:"今天從哪裡開始?",build:"今天一起構建什麼?",tackle:"我們要一起解決什麼?"},quickActions:{plan:{title:"建立專案計畫",prompt:"幫我為接下來要做的事情寫一份簡潔的專案計畫。"},analyze:{title:"分析這些資料",prompt:"幫我分析這些資料,並指出最重要的模式。"},brainstorm:{title:"腦力激盪想法",prompt:"圍繞這個問題腦力激盪幾個實用方案,並說明取捨。"},code:{title:"撰寫程式碼",prompt:"幫我為這個任務撰寫程式碼,先從最小可用改動開始。"},summarize:{title:"總結這份文件",prompt:"幫我總結這份文件,並列出關鍵重點。"},more:{title:"更多",prompt:"展示幾個你在這個工作區裡可以幫我的實用方式。"}},imageQuickActions:{icon:{title:"設計應用程式圖示",prompt:"生成一個乾淨的 1:1 nanobot 應用程式圖示:友善的機器人、簡潔向量風格、柔和藍白配色,不要文字。"},sticker:{title:"製作貼圖",prompt:"生成一張可愛貼圖風格的小型機器人助理圖片,背景像透明貼紙,表情活潑有趣。"},poster:{title:"建立海報",prompt:"生成一張個人 AI 助理的精緻海報概念圖,現代構圖、清楚的視覺層級,適合登陸頁展示。"},product:{title:"產品樣機",prompt:"生成一張對話式 AI Web 應用的乾淨產品樣機圖,極簡介面、高級光影、真實裝置邊框。"},portrait:{title:"風格化頭像",prompt:"生成一個友善 AI 夥伴的風格化頭像,柔和光線、細節豐富但親切,現代插畫風格。"},edit:{title:"編輯圖片",prompt:"幫我編輯一張圖片。先請我上傳或指定要編輯的圖片,然後生成編輯後的結果。"}}},header:{toggleSidebar:"切換側邊欄",newChat:"開始新對話",toggleTheme:"從頂部切換主題",settings:"開啟設定",sessionInfo:"會話詳情"},sessionInfo:{title:"會話",untitled:"未命名對話",automations:"自動任務",count:"{{count}}",loading:"正在載入自動任務...",loadFailed:"無法載入自動任務。",empty:"這個會話暫時沒有自動任務。",disabled:"已關閉",schedule:{at:"{{time}}",every:"每 {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"自訂計畫"},next:{label:"下次 {{time}}",pending:"即將執行",disabled:"已暫停",none:"沒有下次執行"}},composer:{placeholderThread:"輸入訊息…",placeholderHero:"你在想什麼?",placeholderOpening:"正在開啟新對話…",placeholderStreaming:"模型正在回覆…",inputAria:"訊息輸入框",sendHint:"Enter 送出 · Shift+Enter 換行",runRuntimeTitle:"執行中 · {{elapsed}}",goalStateStrip:"目標 · {{label}}",goalStateFallback:"目標",goalStateExpandAria:"查看完整目標",goalStateSheetTitle:"目標",goalStateCloseAria:"關閉目標",send:"送出訊息",stop:"停止回覆",modelNotConfigured:"模型未配置",configureModel:"配置模型",queued:{label:"待引導提示",guide:"引導",delete:"刪除引導",edit:"編輯引導",drag:"拖曳排序"},attachImage:"附加圖片",imageMode:{label:"圖片生成",toggle:"切換圖片生成模式",placeholder:"描述或編輯圖片…",aspectAria:"圖片畫幅",aspectLabel:"圖片畫幅",aspect:{auto:"自動","1_1":"方形 1:1","3_4":"直式 3:4","9_16":"故事版 9:16","4_3":"橫式 4:3","16_9":"寬螢幕 16:9"}},tools:{search:"搜尋",reason:"推理",deepResearch:"深度研究",voice:"語音輸入"},voice:{hint:"點擊進行聽寫或長按",stop:"停止錄音",transcribing:"正在轉寫...",recordingStatus:"正在錄音 {{time}}"},voiceErrors:{unsupported:"目前瀏覽器不支援語音輸入。",permission:"需要麥克風權限。",notConfigured:"請先設定轉寫提供商。",tooLong:"錄音時間太長。",tooShort:"請稍微多錄一會兒。",noInput:"沒有偵測到麥克風輸入。",failed:"語音轉寫失敗。"},slash:{ariaLabel:"斜線命令",label:"命令",navigateHint:"↑↓ 選擇",selectHint:"Enter/Tab 填入",closeHint:"Esc 關閉",commands:{new:{title:"新增對話",description:"停止目前任務,並開始新的對話。"},stop:{title:"停止目前任務",description:"取消這個對話中正在執行的 agent 回合。"},restart:{title:"重新啟動 nanobot",description:"原地重新啟動 bot 進程。"},status:{title:"查看狀態",description:"顯示執行環境、provider 和 channel 狀態。"},model:{title:"模型",description:"查看或切換目前模型預設。"},history:{title:"查看對話歷史",description:"列印最近 N 則已持久化的對話訊息。"},dream:{title:"執行 Dream",description:"手動觸發記憶整理。"},dream_log:{title:"查看 Dream 日誌",description:"查看上一次 Dream 整理變更了什麼。"},dream_restore:{title:"恢復記憶",description:"將記憶恢復到之前的 Dream 快照。"},goal:{title:"長期目標",description:"請助理把這則請求當成需要多步驟持續推進的目標。"},help:{title:"查看說明",description:"列出可用的斜線命令。"},pairing:{title:"配對",description:"管理配對請求。"}},badges:{current:"目前",recent:"最近"},details:{goalActive:"目標正在執行",goalReady:"開始一個持續目標",history:"查看最近訊息",stopRunning:"正在執行"}},encoding:"處理中…",remove:"移除附件",normalizedSizeHint:"{{orig}} → {{current}}(已自動壓縮)",imageRejected:{unsupported_type:"不支援的檔案類型",too_many_images:"每則訊息最多 {{max}} 張圖片",magic_mismatch:"檔案看起來不像真正的圖片",decode_failed:"無法解碼這張圖片",too_large:"圖片太大,請換一張小一點的",io:"無法讀取這個檔案"},mentions:{ariaLabel:"應用",label:"應用",cliGroup:"CLI 應用",mcpGroup:"MCP 服務",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"使用 @{{name}} 呼叫本機 CLI",mcpDescription:"使用 @{{name}} 呼叫 MCP 服務"},workspace:{accessAria:"工作區存取權限",projectAria:"選擇專案",projectPlaceholder:"選擇專案",default:"預設權限",full:"完全存取權限"}},scrollToBottom:"捲動到底部",loadEarlier:"載入更早訊息",forkedFromHistory:"從歷史訊息分叉",promptNavigator:{open:"開啟輸入導覽",title:"輸入列表",search:"搜尋輸入",noResults:"沒有符合的輸入。",jumpTo:"跳到輸入:{{label}}"}},UT={streaming:"串流輸出中",assistantTyping:"助理正在輸入",toolSingle:"正在使用工具",toolMany:"已使用 {{count}} 個工具",toolSummary:"{{count}} 個工具",toolSummaryMany:"{{count}} 個工具",reasoningTools:"推理 · {{count}} 個工具",reasoningToolsSingular:"推理 · 1 個工具",reasoning:"思考過程",reasoningStreaming:"正在思考…",reasoningSummary:"推理",agentActivitySummary:"{{reasoning}} 步 · {{tools}} 次工具呼叫",agentActivityToolsOnly:"{{tools}} 次工具呼叫",agentActivityLiveSummary:"進行中… · {{reasoning}} 步 · {{tools}} 次工具呼叫",agentActivityLiveToolsOnly:"進行中… · {{tools}} 次工具呼叫",imageAttachment:"圖片附件",forkFromHere:"分叉",copyReply:"複製",copiedReply:"已複製",turnLatencyTitle:"本輪耗時(端到端)",activityThinkingFor:"思考中,已 {{duration}}",activityThought:"已思考",activityThoughtFor:"已思考 {{duration}}",activityWorkingFor:"處理中,已 {{duration}}",activityWorked:"已處理",activityWorkedFor:"已處理 {{duration}}",cliActivityRunningOne:"正在使用 @{{name}}",cliActivityRanOne:"已使用 @{{name}}",cliActivityFailedOne:"@{{name}} 失敗",cliActivityRunningMany:"正在使用 {{count}} 個 CLI 應用",cliActivityRanMany:"已使用 {{count}} 個 CLI 應用",cliActivityFailedMany:"{{count}} 個 CLI 應用失敗",cliRunRunning:"使用中",cliRunRan:"已使用",cliRunFailed:"失敗",automationSourceFallback:"自動化",automationTriggered:"自動觸發"},BT={title:"圖片預覽",open:"檢視圖片",prev:"上一張",next:"下一張",close:"關閉預覽"},HT={aria:"檔案預覽",close:"關閉檔案預覽",loading:"正在載入預覽...",failed:"無法預覽這個檔案。",routeMissing:"檔案預覽需要最新的 gateway。請重啟 nanobot gateway 後再試。",resize:"調整檔案預覽寬度",truncated:"檔案較大,目前只顯示前半部分預覽。"},WT={fallbackLanguage:"程式碼",copyAria:"複製程式碼",copy:"複製",copied:"已複製"},qT={dismiss:"關閉"},KT={messageTooBig:{title:"訊息過大",body:"伺服器因超過大小限制拒收了上一則訊息。可移除部分圖片或改用較小的圖片後再試。"},workspaceScopeRejected:{title:"工作區未變更",body:"閘道拒絕了要求的專案或存取權限,Nanobot 已繼續使用先前的工作區。"}},VT={dialog:{defaultProject:"預設工作區",manual:"貼上路徑",manualPlaceholder:"/Users/name/project",usePath:"使用路徑",absolutePathRequired:"請輸入這台機器上的絕對資料夾路徑。"}},GT={app:IT,sidebar:LT,settings:DT,chat:OT,deleteConfirm:FT,connection:zT,thread:$T,message:UT,lightbox:BT,filePreview:HT,code:WT,common:qT,errors:KT,workspace:VT},YT={brand:"nanobot",loading:{connecting:"Connexion à nanobot…",boot:"Chargement de nanobot…"},error:{title:"Impossible de joindre nanobot",gatewayHint:"Assurez-vous que la gateway est en cours d’exécution (`nanobot gateway`) et que cette page est ouverte sur la même machine."},auth:{title:"Authentification requise",hint:"Saisissez le secret configuré comme tokenIssueSecret dans la configuration de votre gateway.",placeholder:"Mot de passe",submit:"Se connecter",invalid:"Mot de passe invalide. Réessayez."},account:{section:"Compte",logoutHint:"Déconnecter ce navigateur du gateway.",logout:"Se déconnecter"},system:{section:"Système",restartHint:"Redémarrez nanobot pour appliquer les changements d’exécution.",restart:"Redémarrer nanobot",restarting:"Redémarrage...",restartEngine:"Redémarrer le moteur",restartingEngine:"Redémarrage du moteur..."},restart:{completed:"Redémarrage terminé en {{seconds}} s."},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"Interface web nanobot — discutez avec votre espace de travail nanobot."}},QT={navigation:"Navigation de la barre latérale",collapse:"Réduire la barre latérale",newChat:"Nouvelle discussion",searchAria:"Rechercher",searchPlaceholder:"Rechercher",searchResults:"Résultats",noSearchResults:"Aucun chat correspondant.",recent:"Récentes",settings:"Paramètres",language:{label:"Langue",ariaLabel:"Changer de langue"},apps:"Apps",automations:"Automatisations",skills:{title:"Compétences"}},XT={backToChat:"Retour au chat",sidebar:{title:"Réglages",ariaLabel:"Sections des réglages"},nav:{general:"Général",byok:"BYOK",overview:"Aperçu",appearance:"Apparence",models:"Modèles",providers:"Fournisseurs",image:"Images",voice:"Voix",browser:"Internet",runtime:"Système",advanced:"Sécurité",cliApps:"Apps CLI",mcp:"MCP",apps:"Applications",automations:"Automatisations",skills:"Compétences"},sections:{interface:"Interface utilisateur",ai:"AI",system:"Système",about:"À propos",status:"État",localPreferences:"Préférences locales",presets:"Préréglages",imageGeneration:"Génération d’images",imageDefaults:"Valeurs par défaut",webSearch:"Recherche web",webBehavior:"Comportement",identity:"Identité",webuiSafety:"Sécurité WebUI",capabilities:"Capacités",cliApps:"Applications CLI",mcp:"Services MCP",apps:"Applications",nativeHost:"Hôte natif",hostSafety:"Sécurité de l’app",voiceInput:"Saisie vocale"},rows:{theme:"Thème",language:"Langue",provider:"Fournisseur",model:"Modèle",restart:"Redémarrer nanobot",configPath:"Chemin de config",activePreset:"Préréglage actif",gateway:"Passerelle",restartState:"État du redémarrage",pendingChanges:"Modifications en attente",selectedPreset:"Préréglage sélectionné",presetModel:"Modèle du préréglage",density:"Densité",activityMode:"Détail d’activité",codeWrap:"Retour à la ligne du code",maxResults:"Résultats max.",timeout:"Délai d’attente",jinaReader:"Lecteur Jina",imageGeneration:"Génération d’images",imageProvider:"Fournisseur d’images",imageProviderStatus:"État du fournisseur",imageProviderBase:"Base du fournisseur",imageModel:"Modèle d’image",defaultAspectRatio:"Ratio par défaut",defaultImageSize:"Taille par défaut",maxImagesPerTurn:"Images max. par tour",imageSaveDir:"Dossier d’enregistrement",botName:"Nom du bot",botIcon:"Icône du bot",timezone:"Fuseau horaire",workspacePath:"Espace de travail par défaut",localServiceAccess:"Services locaux",webuiDefaultAccess:"Accès par défaut",currentModel:"Configuration actuelle",brandLogos:"Logos de marque",cliAppsCatalog:"Catalogue",cliAppsFilter:"Filtre",engine:"Moteur",logs:"Journaux",diagnostics:"Diagnostic",contextWindow:"Fenêtre de contexte",transcription:"Transcription",transcriptionProvider:"Fournisseur",transcriptionProviderStatus:"Etat du fournisseur",transcriptionModel:"Modele",transcriptionLanguage:"Langue",voiceLimits:"Limites"},help:{theme:"Basculer entre l’apparence claire et sombre.",language:"Choisissez la langue utilisée par WebUI.",provider:"Sélectionnez le fournisseur à utiliser pour les nouvelles requêtes de modèle.",model:"Définissez le nom du modèle utilisé par défaut par nanobot.",configPath:"Le fichier de configuration actuellement utilisé par la passerelle.",selectedPreset:"Les préréglages nommés sont en lecture seule ici ; modifiez-les dans config.json.",presetModel:"Passez à Default pour modifier le modèle et le fournisseur depuis WebUI.",density:"Enregistré seulement dans ce navigateur.",activityMode:"Choisissez le niveau de détail d’activité agent affiché par défaut.",codeWrap:"Garde les longues lignes de code lisibles sur les petits écrans.",maxResults:"Résultats renvoyés par chaque appel web_search.",timeout:"Nombre de secondes avant l’expiration d’une requête de recherche.",jinaReader:"Utilise Jina Reader pour web_fetch lorsque disponible.",imageGeneration:"Expose generate_image dans les chats lorsqu’un fournisseur d’image configuré est disponible.",imageProvider:"Choisissez le fournisseur inscrit utilisé par generate_image.",imageProviderStatus:"La génération d’images réutilise les identifiants des fournisseurs.",imageModel:"Nom du modèle envoyé au fournisseur d’images sélectionné.",defaultAspectRatio:"Utilisé lorsque le prompt ne choisit pas de ratio.",defaultImageSize:"Indication de taille envoyée aux fournisseurs compatibles.",maxImagesPerTurn:"Limite supérieure pour une requête generate_image.",botName:"Affiché là où nanobot utilise un nom visible.",botIcon:"Emoji ou texte court affiché avec le nom du bot.",timezone:"Utilisé pour les horaires et les réponses tenant compte du temps.",localServiceAccess:"Autorise les commandes shell Full Access à atteindre les services localhost.",webuiDefaultAccess:"Utilisé par les chats web sans permission propre au projet.",securityManagedControls:"Les récupérations web protègent toujours les services locaux, privés et de métadonnées. La sécurité des canaux principaux reste gérée dans config.json.",currentModel:"Utilisée pour les nouvelles réponses.",selectedModelProvider:"Défini par le modèle sélectionné.",selectedModelValue:"Défini par le modèle sélectionné.",brandLogos:"Affiche les logos de fournisseurs tiers et CLI dans les Réglages.",cliAppsCatalog:"Installe uniquement les adaptateurs CLI d’apps que nanobot peut exécuter localement ; les apps natives restent inchangées.",cliAppsFilter:"Recherchez par app, catégorie ou capacité.",logs:"Ouvre le dossier des journaux du moteur natif.",diagnostics:"Exporte un petit rapport d’exécution pour le support.",localServiceAccessNative:"Autorise les commandes shell Full Access à atteindre les services sur ce Mac.",webuiDefaultAccessNative:"Utilisé par les chats natifs sans permission propre au projet.",contextWindow:"Choisissez le budget de contexte par défaut pour cette configuration de modèle.",transcription:"Transcrit l'entree micro avant l'envoi. Les messages vocaux des canaux utilisent les memes reglages.",transcriptionProvider:"Utilise les identifiants du fournisseur correspondant dans Fournisseurs.",transcriptionProviderStatus:"Les cles API restent dans les fournisseurs, pas dans les reglages de transcription.",transcriptionModel:"Laissez le modele resolu par defaut sauf si votre fournisseur exige un id personnalise.",transcriptionLanguage:"Indice ISO-639 facultatif, comme en, zh, ja ou ko."},values:{light:"Clair",dark:"Sombre",notAvailable:"Indisponible",enabled:"Activé",disabled:"Désactivé",restartPending:"Redémarrage en attente",ready:"Prêt",privateEngine:"Moteur privé",unixSocket:"Socket Unix",defaultWorkspace:"Espace par défaut",comfortable:"Confortable",compact:"Compacte",auto:"Automatique",expanded:"Développé",on:"Activé",off:"Désactivé",defaultPermission:"Autorisation par défaut",fullAccess:"Accès complet",configured:"Configuré",notConfigured:"Non configuré",pending:"En attente",restartingEngine:"Redémarrage"},status:{loading:"Chargement des réglages...",loadError:"Impossible de charger les réglages",unsaved:"Modifications non enregistrées.",upToDate:"À jour.",savedRestart:"Enregistré. Redémarrez nanobot pour appliquer.",restartAfterSaving:"Enregistrez les changements, puis redémarrez quand vous êtes prêt.",savedRestartApply:"Enregistré. Redémarrez quand vous êtes prêt.",imageProviderRestart:"Changements du fournisseur d’image enregistrés. Redémarrez quand vous êtes prêt.",hostRestartAfterSaving:"En enregistrant, nanobot redémarrera son moteur.",hostRestartPending:"Enregistré. Le moteur redémarrera lorsqu’il sera prêt.",hostApiUnavailable:"Les actions de l’hôte ne sont disponibles que dans l’app native.",logsOpened:"Dossier des journaux ouvert.",logsOpenFailed:"Impossible d’ouvrir le dossier des journaux.",diagnosticsExported:"Diagnostic exporté vers {{path}}.",diagnosticsExportFailed:"Impossible d’exporter le diagnostic."},actions:{save:"Enregistrer",saving:"Enregistrement",edit:"Modifier",cancel:"Annuler",open:"Ouvrir",export:"Exporter",opening:"Ouverture...",exporting:"Exportation..."},byok:{description:"Utilisez vos propres clés de fournisseur. Nanobot lit ces valeurs depuis la configuration actuelle, et seuls les fournisseurs configurés peuvent être sélectionnés dans Général.",configured:"Configuré",notConfigured:"Non configuré",configuredSection:"Configurés",notConfiguredSection:"Non configurés",showMore:"Afficher {{count}} de plus",showLess:"Afficher moins",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"Saisir l'API key",apiKeyConfiguredPlaceholder:"Laisser vide pour conserver la key actuelle",configuredKeyHint:"Key configurée",apiBasePlaceholder:"Utiliser la valeur par défaut du fournisseur",apiKeyRequired:"Une API key est requise pour configurer ce fournisseur.",showApiKey:"Afficher l'API key",hideApiKey:"Masquer l'API key",noConfiguredProviders:"Aucun fournisseur configuré",configureFirst:"Configurez d'abord un fournisseur dans BYOK.",openByok:"Ouvrir BYOK",tabs:{ariaLabel:"Type d'identifiants BYOK",llm:"LLM",webSearch:"Recherche web"},webSearch:{provider:"Fournisseur de recherche",providerHelp:"Choisissez le backend utilisé par l'outil web search.",selectProvider:"Choisir un fournisseur",credentials:"Identifiants",noCredentialRequired:"Aucune key requise",noCredentialHelp:"DuckDuckGo fonctionne sans API key enregistrée.",apiKeyHelp:"Enregistrée dans la config et masquée après l'enregistrement.",baseUrl:"Base URL",baseUrlHelp:"SearXNG nécessite l'URL de votre propre instance.",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"Ce fournisseur de recherche nécessite une API key.",baseUrlRequired:"SearXNG nécessite une Base URL.",missingCredential:"Ajoutez l'identifiant requis avant d'enregistrer.",saveHint:"Les changements s'appliquent aux nouvelles requêtes web search."}},overview:{model:"Modèle actuel",providers:"Fournisseurs",configuredCount:"{{count}} configurés",totalProviders:"{{count}} disponibles",webSearch:"Recherche web",imageGeneration:"Génération d’images",voiceInput:"Saisie vocale",workspace:"Espace de travail"},usage:{title:"Activité des tokens",shortTitle:"Token Usage",subtitle:"Usage signalé par le fournisseur sur les 12 derniers mois.",empty:"L’activité des tokens apparaîtra après les nouvelles réponses du modèle.",totalTokens:"Tokens cumulés",peakTokens:"Pic de tokens",thirtyDayTokens:"Tokens sur 30 jours",currentStreak:"Série actuelle",longestStreak:"Plus longue série",daysValue:"{{count}} j",last30:"30 jours",activeDays:"Jours actifs",requests:"Requêtes",estimated:"estimé",includesEstimates:"inclut des estimations",cellTitle:"{{date}} : {{tokens}} tokens, {{requests}} requêtes",sources:{user:"Chat",api:"API",cron:"Automatisations",dream:"Mémoire",system:"Système"}},providers:{searchPlaceholder:"Rechercher des fournisseurs",noMatches:"Aucun fournisseur ne correspond.",saveProvider:"Enregistrer le fournisseur"},image:{selectProvider:"Choisir un fournisseur",selectAspect:"Choisir un ratio",selectSize:"Choisir une taille",configureProvider:"Configurer le fournisseur",missingCredential:"Configura este proveedor antes de activar la generación de imágenes."},models:{selectModel:"Choisir un modèle",addConfiguration:"Ajouter une configuration",newConfiguration:"Nouvelle configuration de modèle",newConfigurationHelp:"Enregistre un fournisseur et un modèle comme option en un clic.",configurationName:"Nom de la configuration",configurationNameHelp:"Renomme cette configuration de modèle enregistrée.",configurationNamePlaceholder:"Rédaction rapide",searchModels:"Rechercher ou saisir un ID de modèle",useCustomModel:"Utiliser",loadingModels:"Chargement des modèles...",searchCatalog:"Rechercher dans le catalogue du fournisseur pour choisir un modèle.",modelsAvailable:"disponibles",noModelResults:"Aucun modèle correspondant.",loadFailed:"Liste des modèles indisponible.",unsupportedModelList:"Saisissez manuellement un ID de modèle.",providerNotConfigured:"Configurez ce fournisseur avant de charger les modèles.",autoProviderCustomOnly:"Le mode fournisseur automatique utilise des IDs de modèle personnalisés."},timezone:{select:"Choisir un fuseau horaire",search:"Rechercher un fuseau horaire",empty:"Aucun fuseau horaire correspondant."},cliApps:{allCategories:"Toutes les catégories",availableCount:"{{count}} applications",installedCount:"{{count}} installées",summary:"{{installed}} CLIs installées sur {{total}}",filterAll:"Tout",filterInstalled:"CLIs installées",filterNotInstalled:"Non installées",searchPlaceholder:"Rechercher des CLIs",statusInstalled:"Installée",statusAvailable:"Disponible",statusMissing:"Dépendance manquante",statusUnsupported:"Non compatible",statusNotInstalled:"Non installée",unsupported:"Non compatible",loading:"Chargement des apps CLI...",empty:"Aucune app CLI ne correspond à ce filtre.",readyTitle:"@{{name}} est prêt",readyStatus:"Prêt",readyPrompt:"Utilisez @{{name}} pour voir ce que ce CLI peut faire.",readyTry:"Essayer @{{name}}",readyCopied:"Copié",openChat:"Ouvrir le chat",requires:"Requiert",test:"Tester le CLI",update:"Mettre à jour le CLI",uninstall:"Désinstaller le CLI",install:"Installer le CLI",unavailable:"Indisponible",noDescription:"Aucune description disponible."},about:{version:"Version",checking:"Recherche de mises à jour...",checkForUpdates:"Rechercher les mises à jour",upToDate:"Vous êtes à jour",updateAvailable:"Mise à jour disponible v{{version}}"},mcp:{allCategories:"Toutes les catégories",summary:"{{installed}} presets activés sur {{total}}",filterAll:"Tout",filterInstalled:"Activés",filterNotInstalled:"Non activés",searchPlaceholder:"Rechercher des presets MCP",moreOptions:"Plus d'options MCP",moreOptionsSubtitle:"Ajoutez un serveur personnalisé ou importez mcp.json.",customTitle:"MCP personnalisé",customSubtitle:"Ajoutez n'importe quel serveur MCP stdio, HTTP ou SSE.",customAction:"Personnalisé",importAction:"Importer",serverName:"Nom du serveur",serverUrl:"URL",transport:"Transport",command:"Commande",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"Délai d'outil",advancedOptions:"Options avancées",hideAdvanced:"Masquer les options avancées",saveCustom:"Enregistrer MCP",configImport:"Importer mcp.json",importConfig:"Importer",restartRequired:"Redémarrez nanobot pour connecter les outils MCP mis à jour.",toolsFound:"{{count}} outils",loading:"Chargement des presets MCP...",empty:"Aucun preset MCP ne correspond à ce filtre.",openDocs:"Ouvrir la doc",test:"Tester",remove:"Supprimer",enable:"Activer",enabled:"Activé",setup:"Connecter",configure:"Connecter",connectTitle:"Connecter {{name}}",connectHint:"Ajoutez la clé depuis les paramètres de votre compte.",saveAndEnable:"Enregistrer et activer",updateSetup:"Mettre à jour la configuration",configured:"configuré",keepExisting:"Laissez vide pour conserver la valeur actuelle",statusConfigured:"Configuré",statusMissingCredentials:"Clé requise",statusMissingDependency:"Dépendance requise",statusComingSoon:"Bientôt disponible",statusNotInstalled:"Non activé",toolScope:"Outils",allTools:"Tous",noTools:"Aucun",testForTools:"Exécutez Tester pour inspecter et choisir des outils individuels."},legal:{thirdPartyBrands:"Les noms, logos et marques de produits appartiennent à leurs propriétaires respectifs. Leur utilisation sert uniquement à l'identification et n'implique aucune approbation."},apps:{description:"Ajoutez des CLI d’apps et services MCP utilisables par nanobot depuis le chat.",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"Tout",filterCli:"Apps CLI",filterMcp:"Services MCP",enabledSummary:"{{count}} activés",caption:"{{cli}} CLI · {{mcp}} MCP",searchPlaceholder:"Rechercher des apps",featured:"À la une",loading:"Chargement des apps...",empty:"Aucune app ne correspond."},automations:{filters:{all:"Toutes",active:"Actives",paused:"En pause",failed:"À traiter",system:"Système"},sort:{next:"Prochaine exécution",last:"Dernière exécution",updated:"Mise à jour",name:"Nom"},search:"Rechercher tâche, message, discussion liée ou planning",queue:"File",loading:"Chargement des automatisations...",noMatches:"Aucune automatisation ne correspond à cette vue.",empty:"Aucune automatisation pour le moment.",emptyHint:"Créez-la depuis son point d'exécution pour que nanobot conserve le bon contexte.",oneShot:"Ponctuelle",systemTask:"Automatisation gérée par le système",labels:{schedule:"Planning",next:"Prochaine",origin:"Discussion liée",created:"Créée",updated:"Modifiée"},runNow:"Exécuter maintenant",pause:"Mettre en pause",resume:"Reprendre",edit:"Modifier",delete:"Supprimer",protected:"Protégée",editTitle:"Modifier l’automatisation",save:"Enregistrer",deleteTitle:"Supprimer l’automatisation",deleteDescription:"Cela supprime {{name}} du stockage cron. Les anciens messages de chat restent dans la session.",cancel:"Annuler",status:{system:"Système",running:"En cours d’exécution",paused:"En pause",failed:"Échouée",completed:"Terminée",noSchedule:"Aucun planning",active:"En cours"},origin:{system:"Système",unknown:"Aucune discussion liée"},channels:{api:"API",cli:"CLI",dingtalk:"DingTalk",discord:"Discord",email:"Email",feishu:"Feishu",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"WeChat",wecom:"WeCom",weixin:"WeChat",whatsapp:"WhatsApp"},schedule:{at:"À {{time}}",every:"Toutes les {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"Chaque jour à {{time}}",weekdaysAt:"Jours ouvrés à {{time}}",hourlyAt:"Toutes les heures à :{{minute}}",hourlyWindow:"Toutes les heures {{start}}-{{end}} à :{{minute}}",custom:"Planning personnalisé"},next:{paused:"En pause",pending:"En cours d’exécution",none:"Aucune prochaine exécution"},message:{showMore:"Afficher le message complet",showLess:"Afficher moins"},fields:{name:"Nom",message:"Message",scheduleType:"Type de planning",every:"Toutes les",unit:"Unité",cronExpression:"Expression cron",timezone:"Fuseau horaire",runAt:"Exécuter à"},scheduleTypes:{every:"Intervalle",cron:"Cron",at:"Une fois"},everyUnits:{second:"Secondes",minute:"Minutes",hour:"Heures",day:"Jours"},validation:{nameRequired:"Le nom est obligatoire.",messageRequired:"Le message est obligatoire.",intervalRequired:"L’intervalle doit être un nombre positif.",cronRequired:"L’expression cron est obligatoire.",timeRequired:"L’heure d’exécution est obligatoire.",futureRequired:"L’heure d’exécution doit être dans le futur."}},oauth:{authentication:"Authentification OAuth",signIn:"Se connecter",signingIn:"Connexion...",signInAgain:"Se reconnecter",signOut:"Se déconnecter",signedInAs:"Connecté en tant que {{account}}",signInHelp:"Inicia sesión desde este dispositivo; no se guarda API key en config.",signInRequired:"Connexion requise",signInBeforeSaving:"Inicia sesión antes de guardar este proveedor OAuth como proveedor activo.",signedIn:"Connecté",notSignedIn:"Non connecté"},skills:{description:"Consultez les compétences d’instruction que cet agent peut charger pendant une conversation.",caption:"{{available}} disponibles · {{total}} au total",featured:"Compétences agent",empty:"Aucune compétence disponible.",sourceWorkspace:"Personnalisée",sourceBuiltin:"Intégrée",statusAvailable:"Disponible",statusUnavailable:"Indisponible",unavailableReason:"Manquant : {{reason}}",openDetails:"Ouvrir les détails de {{name}}",loadingDetail:"Chargement des détails...",loadFailed:"Impossible de charger les détails.",descriptionTitle:"Description",source:"Source",status:"Statut",requirements:"Prérequis",noRequirements:"Aucun prérequis explicite.",commands:"Commandes",environment:"Variables d’environnement",missingCommands:"CLI manquant",missingEnvironment:"ENV manquant",unavailableReasonLabel:"Raison d’indisponibilité",rawInstructions:"SKILL.md brut",rawInstructionsEmpty:"Aucune instruction brute.",detailDescription:"Détails de {{name}}."},voice:{selectProvider:"Choisir un fournisseur",configureProvider:"Configurer le fournisseur",languageAuto:"Auto"}},JT={fallbackTitle:"Discussion {{id}}",forkTitle:"Branche : {{title}}",loading:"Chargement…",noSessions:"Aucune session pour le moment.",showMore:"Afficher {{count}} de plus",collapsed:"{{count}} discussions masquées",showLess:"Afficher moins",actions:"Actions de la discussion {{title}}",newInProject:"Démarrer une nouvelle discussion dans {{project}}",activity:{running:"Agent running",complete:"Agent finished",updated:"New activity"},pin:"Pin",unpin:"Unpin",rename:"Rename",renameTitle:"Rename chat",renameDescription:"Choose a local sidebar name for this chat.",renamePlaceholder:"Chat name",renameProjectTitle:"Rename project",renameProjectDescription:"Choose a local sidebar name for this project.",renameProjectPlaceholder:"Project name",renameSave:"Save",archive:"Archive",unarchive:"Unarchive",showArchived:"Show archived",hideArchived:"Hide archived",delete:"Supprimer",newChat:"Nouvelle discussion",groups:{pinned:"Pinned",all:"Chats",projects:"Projects",today:"Today",yesterday:"Yesterday",earlier:"Earlier",archived:"Archived"}},ZT={title:"Supprimer cette discussion ?",description:"Cette action est irréversible.",cancel:"Annuler",confirm:"Supprimer",automationsDescription:"Cette discussion contient des automatisations planifiées. La supprimer les supprimera aussi.",moreAutomations:"+ {{count}} autres",confirmWithAutomations:"Supprimer",schedule:{at:"{{time}}",every:"Tous les {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Planification personnalisée"},next:{label:"Prochaine exécution : {{time}}",disabled:"En pause",none:"Aucune prochaine exécution"}},eR={idle:"Inactif",connecting:"Connexion…",open:"Connecté",reconnecting:"Reconnexion…",closed:"Déconnecté",error:"Erreur de connexion"},tR={loadingConversation:"Chargement de la conversation…",empty:{greetings:{workOn:"Sur quoi travaillons-nous ensemble ?",start:"Par où commence-t-on ?",build:"Que construisons-nous aujourd'hui ?",tackle:"Que résout-on ensemble ?"},quickActions:{plan:{title:"Créer un plan de projet",prompt:"Créez un plan de projet concis pour ce que je devrais construire ensuite."},analyze:{title:"Analyser ces données",prompt:"Aidez-moi à analyser ces données et à faire ressortir les tendances les plus importantes."},brainstorm:{title:"Trouver des idées",prompt:"Proposez quelques idées pratiques et leurs compromis pour ce problème."},code:{title:"Écrire du code",prompt:"Aidez-moi à écrire le code pour cette tâche, en commençant par le plus petit changement utile."},summarize:{title:"Résumer ce document",prompt:"Résumez ce document et listez les points clés à retenir."},more:{title:"Plus",prompt:"Montrez-moi quelques façons utiles dont vous pouvez m’aider dans cet espace de travail."}},imageQuickActions:{icon:{title:"Créer une icône d’app",prompt:"Générez une icône d’application 1:1 propre pour nanobot : robot sympathique, style vectoriel simple, palette douce bleu et blanc, sans texte."},sticker:{title:"Créer un sticker",prompt:"Générez une image façon sticker d’un petit assistant robot, avec un fond d’apparence transparente, expressive et ludique."},poster:{title:"Créer une affiche",prompt:"Générez un concept d’affiche soigné pour un assistant IA personnel, composition moderne, hiérarchie visuelle forte, adapté à une landing page."},product:{title:"Maquette produit",prompt:"Générez une maquette produit propre pour une application web d’IA conversationnelle, interface minimale, éclairage premium, cadre d’appareil réaliste."},portrait:{title:"Portrait stylisé",prompt:"Générez un portrait stylisé d’un compagnon IA sympathique, lumière douce, détaillé mais accessible, style illustration moderne."},edit:{title:"Modifier une image",prompt:"Aidez-moi à modifier une image. Demandez-moi d’abord de téléverser ou d’indiquer l’image, puis générez le résultat modifié."}}},header:{toggleSidebar:"Afficher ou masquer la barre latérale",newChat:"Démarrer un nouveau chat",toggleTheme:"Changer le thème depuis l’en-tête",settings:"Ouvrir les paramètres",sessionInfo:"Détails de la session"},sessionInfo:{title:"Session",untitled:"Chat sans titre",automations:"Automatisations",count:"{{count}}",loading:"Chargement des automatisations...",loadFailed:"Impossible de charger les automatisations.",empty:"Aucune automatisation dans cette session pour le moment.",disabled:"Désactivé",schedule:{at:"À {{time}}",every:"Toutes les {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Planification personnalisée"},next:{label:"Prochaine {{time}}",pending:"Exécution imminente",disabled:"En pause",none:"Aucune prochaine exécution"}},composer:{placeholderThread:"Saisissez votre message…",placeholderHero:"Qu’avez-vous en tête ?",placeholderOpening:"Ouverture d’une nouvelle discussion…",placeholderStreaming:"Le modèle est en train de répondre…",inputAria:"Champ de message",sendHint:"Entrée pour envoyer · Maj+Entrée pour un retour à la ligne",runRuntimeTitle:"Exécution · {{elapsed}}",goalStateStrip:"Objectif · {{label}}",goalStateFallback:"Objectif",goalStateExpandAria:"Afficher l’objectif complet",goalStateSheetTitle:"Objectif",goalStateCloseAria:"Fermer l’objectif",send:"Envoyer le message",stop:"Arrêter la réponse",modelNotConfigured:"Modèle non configuré",configureModel:"Configurer le modèle",queued:{label:"Guidage en attente",guide:"Guider",delete:"Supprimer le guidage",edit:"Modifier le guidage",drag:"Faire glisser pour réordonner"},attachImage:"Joindre une image",imageMode:{label:"Génération d’image",toggle:"Activer ou désactiver le mode génération d’image",placeholder:"Décrire ou modifier une image…",aspectAria:"Format de l’image",aspectLabel:"Format de l’image",aspect:{auto:"Auto","1_1":"Carré 1:1","3_4":"Portrait 3:4","9_16":"Story 9:16","4_3":"Paysage 4:3","16_9":"Large 16:9"}},tools:{search:"Rechercher",reason:"Raisonner",deepResearch:"Recherche approfondie",voice:"Entrée vocale"},voice:{hint:"Cliquez pour dicter ou maintenez",stop:"Arrêter l'enregistrement",transcribing:"Transcription...",recordingStatus:"Enregistrement {{time}}"},voiceErrors:{unsupported:"La saisie vocale n'est pas prise en charge par ce navigateur.",permission:"L'autorisation du microphone est requise.",notConfigured:"Configurez d'abord un fournisseur de transcription.",tooLong:"L'enregistrement est trop long.",tooShort:"Maintenez un peu plus longtemps pour enregistrer la voix.",noInput:"Aucune entrée microphone détectée.",failed:"Impossible de transcrire l'audio."},slash:{ariaLabel:"Commandes slash",label:"commandes",navigateHint:"↑↓ Naviguer",selectHint:"Entrée/Tab Insérer",closeHint:"Échap Fermer",commands:{new:{title:"Nouvelle discussion",description:"Arrêter la tâche en cours et démarrer une nouvelle conversation."},stop:{title:"Arrêter la tâche en cours",description:"Annuler le tour agent actif pour cette discussion."},restart:{title:"Redémarrer nanobot",description:"Redémarrer le processus du bot sur place."},status:{title:"Afficher l’état",description:"Afficher l’état du runtime, du provider et des channels."},model:{title:"Modèle",description:"Afficher ou changer le préréglage de modèle actif."},history:{title:"Afficher l’historique",description:"Afficher les N derniers messages persistés de la conversation."},dream:{title:"Lancer Dream",description:"Déclencher manuellement la consolidation de la mémoire."},dream_log:{title:"Afficher le journal Dream",description:"Afficher ce que la dernière consolidation Dream a changé."},dream_restore:{title:"Restaurer la mémoire",description:"Revenir à un instantané Dream précédent."},goal:{title:"Objectif long terme",description:"Demandez à l’agent de traiter ceci comme un objectif multi‑étapes durable."},help:{title:"Afficher l’aide",description:"Lister les commandes slash disponibles."},pairing:{title:"Appairage",description:"Gérer les demandes d’appairage."}},badges:{current:"Actuel",recent:"Récent"},details:{goalActive:"L’objectif est en cours",goalReady:"Démarrer un objectif durable",history:"Afficher les messages récents",stopRunning:"En cours"}},encoding:"Traitement…",remove:"Retirer la pièce jointe",normalizedSizeHint:"{{orig}} → {{current}} (auto)",imageRejected:{unsupported_type:"Type de fichier non pris en charge",too_many_images:"Maximum {{max}} images par message",magic_mismatch:"Ce fichier n'est pas une image",decode_failed:"Impossible de décoder cette image",too_large:"Image trop grande — essayez-en une plus petite",io:"Impossible de lire ce fichier"},mentions:{ariaLabel:"Apps",label:"Apps",cliGroup:"Apps CLI",mcpGroup:"Services MCP",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"Utiliser @{{name}} comme app CLI locale",mcpDescription:"Utiliser @{{name}} comme serveur MCP"},workspace:{accessAria:"Workspace access mode",projectAria:"Choisir un projet",projectPlaceholder:"Sélectionner un projet",default:"Default Permission",full:"Full Access"}},scrollToBottom:"Faire défiler vers le bas",loadEarlier:"Charger les messages précédents",forkedFromHistory:"Bifurqué depuis l'historique",promptNavigator:{open:"Ouvrir le navigateur de prompts",title:"Prompts",search:"Rechercher des prompts",noResults:"Aucun prompt correspondant.",jumpTo:"Aller au prompt : {{label}}"}},nR={streaming:"en cours de génération",assistantTyping:"L’assistant est en train d’écrire",toolSingle:"Utilisation d’un outil",toolMany:"{{count}} outils utilisés",toolSummary:"{{count}} outil",toolSummaryMany:"{{count}} outils",reasoningTools:"Raisonnement · {{count}} outils",reasoningToolsSingular:"Raisonnement · 1 outil",reasoning:"Raisonnement",reasoningStreaming:"En réflexion…",reasoningSummary:"Raisonnement",agentActivitySummary:"{{reasoning}} étapes · {{tools}} appels d’outils",agentActivityToolsOnly:"{{tools}} appels d’outils",agentActivityLiveSummary:"En cours… · {{reasoning}} étapes · {{tools}} appels d’outils",agentActivityLiveToolsOnly:"En cours… · {{tools}} appels d’outils",imageAttachment:"Pièce jointe image",forkFromHere:"Bifurquer",copyReply:"Copier",copiedReply:"Copié",turnLatencyTitle:"Temps de réponse (de bout en bout)",activityThinkingFor:"Réflexion pendant {{duration}}",activityThought:"Réflexion terminée",activityThoughtFor:"Réflexion terminée en {{duration}}",activityWorkingFor:"Travail en cours depuis {{duration}}",activityWorked:"Travail terminé",activityWorkedFor:"Travail terminé en {{duration}}",cliActivityRunningOne:"Utilisation de @{{name}}",cliActivityRanOne:"@{{name}} utilisé",cliActivityFailedOne:"Échec de @{{name}}",cliActivityRunningMany:"Utilisation de {{count}} apps CLI",cliActivityRanMany:"{{count}} apps CLI utilisées",cliActivityFailedMany:"Échec de {{count}} apps CLI",cliRunRunning:"Utilisation",cliRunRan:"Utilisé",cliRunFailed:"Échec",automationSourceFallback:"Automatisation",automationTriggered:"Déclenché automatiquement"},rR={title:"Aperçu de l’image",open:"Voir l’image",prev:"Image précédente",next:"Image suivante",close:"Fermer l’aperçu"},aR={aria:"Aperçu du fichier",close:"Fermer l’aperçu du fichier",loading:"Chargement de l’aperçu...",failed:"Impossible de prévisualiser ce fichier.",routeMissing:"L’aperçu du fichier nécessite le dernier gateway. Redémarrez nanobot gateway puis réessayez.",resize:"Redimensionner l’aperçu du fichier",truncated:"L’aperçu est tronqué car le fichier est volumineux."},oR={fallbackLanguage:"code",copyAria:"Copier le code",copy:"Copier",copied:"Copié"},sR={dismiss:"Fermer"},iR={messageTooBig:{title:"Message trop volumineux",body:"Le serveur a rejeté votre dernier message car il dépasse la taille autorisée. Retirez des images ou choisissez des fichiers plus légers, puis renvoyez-le."},workspaceScopeRejected:{title:"Workspace was not changed",body:"Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."}},lR={dialog:{defaultProject:"Default workspace",manual:"Coller un chemin",manualPlaceholder:"/Users/name/project",usePath:"Use Path",absolutePathRequired:"Enter an absolute folder path on this machine."}},cR={app:YT,sidebar:QT,settings:XT,chat:JT,deleteConfirm:ZT,connection:eR,thread:tR,message:nR,lightbox:rR,filePreview:aR,code:oR,common:sR,errors:iR,workspace:lR},uR={brand:"nanobot",loading:{connecting:"nanobot に接続中…",boot:"nanobot を読み込み中…"},error:{title:"nanobot に接続できませんでした",gatewayHint:"gateway(`nanobot gateway`)が起動しており、このページが同じマシン上で開かれていることを確認してください。"},auth:{title:"認証が必要です",hint:"gateway 設定の tokenIssueSecret に指定されたシークレットを入力してください。",placeholder:"パスワード",submit:"接続",invalid:"パスワードが無効です。もう一度お試しください。"},account:{section:"アカウント",logoutHint:"このブラウザーを gateway から切断します。",logout:"サインアウト"},system:{section:"システム",restartHint:"実行時の変更を適用するには nanobot を再起動します。",restart:"nanobot を再起動",restarting:"再起動中...",restartEngine:"エンジンを再起動",restartingEngine:"エンジンを再起動中..."},restart:{completed:"{{seconds}} 秒で再起動が完了しました。"},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"nanobot Web UI — nanobot ワークスペースと会話します。"}},dR={navigation:"サイドバーのナビゲーション",collapse:"サイドバーを閉じる",newChat:"新しいチャット",searchAria:"検索",searchPlaceholder:"検索",searchResults:"検索結果",noSearchResults:"一致するチャットはありません。",recent:"最近のチャット",settings:"設定",language:{label:"言語",ariaLabel:"言語を変更"},apps:"アプリ",automations:"自動タスク",skills:{title:"スキル"}},pR={backToChat:"チャットに戻る",sidebar:{title:"設定",ariaLabel:"設定セクション"},nav:{general:"一般",byok:"BYOK",overview:"概要",appearance:"外観",models:"モデル",providers:"プロバイダー",image:"画像",voice:"音声",browser:"ウェブ",runtime:"システム",advanced:"セキュリティ",cliApps:"CLI アプリ",mcp:"MCP",apps:"アプリ",automations:"自動タスク",skills:"スキル"},sections:{interface:"インターフェース",ai:"AI",system:"システム",about:"情報",status:"状態",localPreferences:"ローカル設定",presets:"プリセット",imageGeneration:"画像生成",imageDefaults:"既定値",webSearch:"ウェブ検索",webBehavior:"動作",identity:"ID",webuiSafety:"WebUI の安全性",capabilities:"機能",cliApps:"CLI アプリ",mcp:"MCP サービス",apps:"アプリ",nativeHost:"ネイティブホスト",hostSafety:"アプリの安全性",voiceInput:"音声入力"},rows:{theme:"テーマ",language:"言語",provider:"プロバイダー",model:"モデル",restart:"nanobot を再起動",configPath:"設定パス",activePreset:"アクティブなプリセット",gateway:"ゲートウェイ",restartState:"再起動状態",pendingChanges:"保留中の変更",selectedPreset:"選択中のプリセット",presetModel:"プリセットモデル",density:"表示密度",activityMode:"アクティビティ詳細",codeWrap:"コードの折り返し",maxResults:"最大結果数",timeout:"タイムアウト",jinaReader:"Jina リーダー",imageGeneration:"画像生成",imageProvider:"画像プロバイダー",imageProviderStatus:"プロバイダー状態",imageProviderBase:"プロバイダー URL",imageModel:"画像モデル",defaultAspectRatio:"既定の比率",defaultImageSize:"既定のサイズ",maxImagesPerTurn:"1 ターンの最大画像数",imageSaveDir:"保存先ディレクトリ",botName:"Bot 名",botIcon:"Bot アイコン",timezone:"タイムゾーン",workspacePath:"既定のワークスペース",localServiceAccess:"ローカルサービス",webuiDefaultAccess:"既定の権限",currentModel:"現在の設定",brandLogos:"ブランドロゴ",cliAppsCatalog:"カタログ",cliAppsFilter:"フィルター",engine:"エンジン",logs:"ログ",diagnostics:"診断",contextWindow:"コンテキストウィンドウ",transcription:"文字起こし",transcriptionProvider:"プロバイダー",transcriptionProviderStatus:"プロバイダー状態",transcriptionModel:"モデル",transcriptionLanguage:"言語",voiceLimits:"制限"},help:{theme:"ライト表示とダーク表示を切り替えます。",language:"WebUI で使用する言語を選択します。",provider:"新しいモデルリクエストに使うプロバイダーを選択します。",model:"nanobot が既定で使用するモデル名を設定します。",configPath:"現在ゲートウェイが使用している設定ファイルです。",selectedPreset:"名前付きプリセットはここでは読み取り専用です。編集するには config.json を変更してください。",presetModel:"Default に切り替えると、WebUI からモデルとプロバイダーを編集できます。",density:"このブラウザーにのみ保存されます。",activityMode:"既定で表示する agent アクティビティの詳細量を選択します。",codeWrap:"小さな画面でも長いコード行を読みやすくします。",maxResults:"各 web_search 呼び出しで返す結果数です。",timeout:"検索プロバイダーのリクエストがタイムアウトするまでの秒数です。",jinaReader:"利用可能な場合、web_fetch に Jina Reader を使います。",imageGeneration:"画像プロバイダーが設定済みのとき、チャットで generate_image を有効にします。",imageProvider:"generate_image で使用する登録済みプロバイダーを選択します。",imageProviderStatus:"画像生成は「プロバイダー」の認証情報を再利用します。",imageModel:"選択した画像プロバイダーへ送信するモデル名です。",defaultAspectRatio:"プロンプトで比率が指定されていない場合に使用します。",defaultImageSize:"対応しているプロバイダーへ送信するサイズ指定です。",maxImagesPerTurn:"1 回の generate_image リクエストで生成できる画像数の上限です。",botName:"nanobot が表示名を使う場所に表示されます。",botIcon:"Bot 名の横に表示する短い emoji またはテキストです。",timezone:"スケジュールと時刻を考慮する返信に使用します。",localServiceAccess:"Full Access の shell コマンドが localhost サービスにアクセスできるようにします。",webuiDefaultAccess:"プロジェクト固有の権限がない Web チャットで使用します。",securityManagedControls:"Web 取得は常にローカル、プライベート、メタデータサービスを保護します。コアチャネルの安全性は config.json で管理されます。",currentModel:"新しい返信に使用します。",selectedModelProvider:"選択したモデルによって設定されます。",selectedModelValue:"選択したモデルによって設定されます。",brandLogos:"設定で第三者プロバイダーと CLI のロゴを表示します。",cliAppsCatalog:"nanobot がローカルで実行できるアプリ CLI アダプターだけをインストールします。ネイティブアプリは変更しません。",cliAppsFilter:"アプリ、カテゴリ、機能で検索します。",logs:"ネイティブエンジンのログフォルダーを開きます。",diagnostics:"サポート用の小さなランタイムレポートを書き出します。",localServiceAccessNative:"Full Access の shell コマンドがこの Mac 上のサービスにアクセスできるようにします。",webuiDefaultAccessNative:"プロジェクト固有の権限がないネイティブチャットで使用します。",contextWindow:"このモデル設定で使う既定のコンテキスト予算を選択します。",transcription:"マイク入力を送信前に文字起こしします。チャネルの音声メッセージも同じ設定を使います。",transcriptionProvider:"プロバイダー設定にある対応する認証情報を使います。",transcriptionProviderStatus:"APIキーは文字起こし設定ではなくプロバイダー側に保存されます。",transcriptionModel:"プロバイダーがカスタムモデルIDを必要としない限り、解決済みのデフォルトのままにします。",transcriptionLanguage:"en、zh、ja、ko などの任意の ISO-639 ヒント。"},values:{light:"ライト",dark:"ダーク",notAvailable:"利用不可",enabled:"有効",disabled:"無効",restartPending:"再起動待ち",ready:"準備完了",privateEngine:"プライベートエンジン",unixSocket:"Unix ソケット",defaultWorkspace:"デフォルトワークスペース",comfortable:"標準",compact:"コンパクト",auto:"自動",expanded:"展開",on:"オン",off:"オフ",defaultPermission:"既定の権限",fullAccess:"完全アクセス",configured:"設定済み",notConfigured:"未設定",pending:"保留中",restartingEngine:"再起動中"},status:{loading:"設定を読み込んでいます...",loadError:"設定を読み込めませんでした",unsaved:"未保存の変更があります。",upToDate:"最新です。",savedRestart:"保存しました。反映するには nanobot を再起動してください。",restartAfterSaving:"変更を保存してから、準備ができたら再起動してください。",savedRestartApply:"保存しました。準備ができたら再起動してください。",imageProviderRestart:"画像プロバイダーの変更を保存しました。準備ができたら再起動してください。",hostRestartAfterSaving:"保存すると nanobot がエンジンを再起動します。",hostRestartPending:"保存しました。準備ができたらエンジンを再起動します。",hostApiUnavailable:"ホスト操作はネイティブアプリ内でのみ利用できます。",logsOpened:"ログフォルダーを開きました。",logsOpenFailed:"ログフォルダーを開けませんでした。",diagnosticsExported:"診断を {{path}} に書き出しました。",diagnosticsExportFailed:"診断を書き出せませんでした。"},actions:{save:"保存",saving:"保存中",edit:"編集",cancel:"キャンセル",open:"開く",export:"書き出す",opening:"開いています...",exporting:"書き出しています..."},byok:{description:"自分の provider キーを使います。Nanobot は現在の config から値を読み込み、設定済みの provider だけを一般設定で選択できます。",configured:"設定済み",notConfigured:"未設定",configuredSection:"設定済み",notConfiguredSection:"未設定",showMore:"さらに {{count}} 件表示",showLess:"折りたたむ",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"API key を入力",apiKeyConfiguredPlaceholder:"空欄のままなら現在の key を保持",configuredKeyHint:"設定済み key",apiBasePlaceholder:"provider の既定値を使用",apiKeyRequired:"この provider を設定するには API key が必要です。",showApiKey:"API key を表示",hideApiKey:"API key を隠す",noConfiguredProviders:"設定済み provider がありません",configureFirst:"先に BYOK で provider を設定してください。",openByok:"BYOK を開く",tabs:{ariaLabel:"BYOK 認証情報タイプ",llm:"LLM",webSearch:"ウェブ検索"},webSearch:{provider:"検索 provider",providerHelp:"web search ツールで使うバックエンドを選択します。",selectProvider:"provider を選択",credentials:"認証情報",noCredentialRequired:"key は不要",noCredentialHelp:"DuckDuckGo は API key を保存せずに使えます。",apiKeyHelp:"config に保存され、保存後はマスク表示されます。",baseUrl:"Base URL",baseUrlHelp:"SearXNG には自分のインスタンス URL が必要です。",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"この検索 provider には API key が必要です。",baseUrlRequired:"SearXNG には Base URL が必要です。",missingCredential:"保存する前に必要な認証情報を入力してください。",saveHint:"変更は新しい web search リクエストに適用されます。"}},overview:{model:"現在のモデル",providers:"プロバイダー",configuredCount:"{{count}} 個設定済み",totalProviders:"{{count}} 個利用可能",webSearch:"Web 検索",imageGeneration:"画像生成",voiceInput:"音声入力",workspace:"ワークスペース"},usage:{title:"Token アクティビティ",shortTitle:"Token Usage",subtitle:"直近 12 か月にプロバイダーが報告した使用量。",empty:"新しいモデル返信の後に token アクティビティが表示されます。",totalTokens:"累計 Token 数",peakTokens:"ピーク Token 数",thirtyDayTokens:"30 日 Token 数",currentStreak:"現在の連続日数",longestStreak:"最長連続日数",daysValue:"{{count}} 日",last30:"30 日",activeDays:"アクティブ日数",requests:"リクエスト",estimated:"推定",includesEstimates:"推定を含む",cellTitle:"{{date}}: {{tokens}} tokens, {{requests}} 件のリクエスト",sources:{user:"チャット",api:"API",cron:"自動タスク",dream:"メモリ整理",system:"システム"}},providers:{searchPlaceholder:"プロバイダーを検索",noMatches:"一致するプロバイダーはありません。",saveProvider:"プロバイダーを保存"},image:{selectProvider:"プロバイダーを選択",selectAspect:"比率を選択",selectSize:"サイズを選択",configureProvider:"プロバイダーを設定",missingCredential:"画像生成を有効にする前に、このプロバイダーを設定してください。"},models:{selectModel:"モデルを選択",addConfiguration:"設定を追加",newConfiguration:"新しいモデル設定",newConfigurationHelp:"プロバイダーとモデルをワンクリックの選択肢として保存します。",configurationName:"設定名",configurationNameHelp:"保存済みのモデル設定の名前を変更します。",configurationNamePlaceholder:"高速執筆",searchModels:"モデル ID を検索または入力",useCustomModel:"使用",loadingModels:"モデルを読み込んでいます...",searchCatalog:"プロバイダーのカタログからモデルを選択します。",modelsAvailable:"利用可能",noModelResults:"一致するモデルはありません。",loadFailed:"モデル一覧を利用できません。",unsupportedModelList:"モデル ID を手動で入力してください。",providerNotConfigured:"モデルを読み込む前にこのプロバイダーを設定してください。",autoProviderCustomOnly:"自動プロバイダーモードではカスタムモデル ID を使用します。"},timezone:{select:"タイムゾーンを選択",search:"タイムゾーンを検索",empty:"一致するタイムゾーンはありません。"},cliApps:{allCategories:"すべてのカテゴリ",availableCount:"{{count}} 個のアプリ",installedCount:"{{count}} 個インストール済み",summary:"{{total}} 個中 {{installed}} 個の CLI がインストール済み",filterAll:"すべて",filterInstalled:"インストール済み CLI",filterNotInstalled:"未インストール",searchPlaceholder:"CLI を検索",statusInstalled:"インストール済み",statusAvailable:"利用可能",statusMissing:"依存関係が不足",statusUnsupported:"未対応",statusNotInstalled:"未インストール",unsupported:"未対応",loading:"CLI アプリを読み込み中...",empty:"この条件に一致する CLI アプリはありません。",readyTitle:"@{{name}} の準備ができました",readyStatus:"準備完了",readyPrompt:"@{{name}} を使って、この CLI でできることを確認します。",readyTry:"@{{name}} を試す",readyCopied:"コピーしました",openChat:"チャットを開く",requires:"必要条件",test:"CLI をテスト",update:"CLI を更新",uninstall:"CLI をアンインストール",install:"CLI をインストール",unavailable:"利用不可",noDescription:"説明はありません。"},about:{version:"バージョン",checking:"確認中...",checkForUpdates:"アップデートを確認",upToDate:"最新の状態です",updateAvailable:"アップデートがあります v{{version}}"},mcp:{allCategories:"すべてのカテゴリ",summary:"{{total}} 個中 {{installed}} 個のプリセットが有効",filterAll:"すべて",filterInstalled:"有効",filterNotInstalled:"未有効",searchPlaceholder:"MCP プリセットを検索",moreOptions:"その他の MCP オプション",moreOptionsSubtitle:"カスタムサーバーを追加するか mcp.json をインポートします。",customTitle:"カスタム MCP",customSubtitle:"任意の stdio、HTTP、SSE MCP サーバーを追加します。",customAction:"カスタム",importAction:"インポート",serverName:"サーバー名",serverUrl:"URL",transport:"トランスポート",command:"コマンド",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"ツールのタイムアウト",advancedOptions:"詳細オプション",hideAdvanced:"詳細を隠す",saveCustom:"MCP を保存",configImport:"mcp.json をインポート",importConfig:"インポート",restartRequired:"更新された MCP ツールに接続するには nanobot を再起動してください。",toolsFound:"{{count}} 個のツール",loading:"MCP プリセットを読み込み中...",empty:"この条件に一致する MCP プリセットはありません。",openDocs:"ドキュメントを開く",test:"テスト",remove:"削除",enable:"有効化",enabled:"有効",setup:"接続",configure:"接続",connectTitle:"{{name}} に接続",connectHint:"アカウント設定からキーを追加します。",saveAndEnable:"保存して有効化",updateSetup:"設定を更新",configured:"設定済み",keepExisting:"既存の値を維持するには空欄のままにします",statusConfigured:"設定済み",statusMissingCredentials:"キーが必要",statusMissingDependency:"依存関係が必要",statusComingSoon:"近日公開",statusNotInstalled:"未有効",toolScope:"ツール",allTools:"すべて",noTools:"なし",testForTools:"テストを実行して個別のツールを確認・選択します。"},legal:{thirdPartyBrands:"製品名、ロゴ、ブランドはそれぞれの所有者に帰属します。使用は識別のみを目的とし、承認を意味するものではありません。"},apps:{description:"nanobot がチャットで使用できる App CLI と MCP サービスを追加します。",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"すべて",filterCli:"CLI アプリ",filterMcp:"MCP サービス",enabledSummary:"{{count}} 件有効",caption:"CLI {{cli}} 件 · MCP {{mcp}} 件",searchPlaceholder:"アプリを検索",featured:"注目",loading:"アプリを読み込み中...",empty:"一致するアプリはありません。"},automations:{filters:{all:"すべて",active:"実行中",paused:"一時停止",failed:"要対応",system:"システム"},sort:{next:"次回実行",last:"前回実行",updated:"更新日時",name:"名前"},search:"タスク、メッセージ、関連チャット、予定を検索",queue:"キュー",loading:"自動タスクを読み込み中...",noMatches:"この表示に一致する自動タスクはありません。",empty:"自動タスクはまだありません。",emptyHint:"実行元から作成すると、nanobot が正しいコンテキストを保持できます。",oneShot:"一回限り",systemTask:"システム管理の自動タスク",labels:{schedule:"スケジュール",next:"次回",origin:"関連チャット",created:"作成",updated:"更新"},runNow:"今すぐ実行",pause:"一時停止",resume:"再開",edit:"編集",delete:"削除",protected:"保護済み",editTitle:"自動タスクを編集",save:"保存",deleteTitle:"自動タスクを削除",deleteDescription:"{{name}} を cron ストアから削除します。過去のチャットメッセージはセッションに残ります。",cancel:"キャンセル",status:{system:"システム",running:"実行中",paused:"一時停止",failed:"失敗",completed:"完了",noSchedule:"スケジュールなし",active:"実行中"},origin:{system:"システム",unknown:"関連チャットなし"},channels:{api:"API",cli:"CLI",dingtalk:"DingTalk",discord:"Discord",email:"Email",feishu:"Feishu",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"WeChat",wecom:"WeCom",weixin:"WeChat",whatsapp:"WhatsApp"},schedule:{at:"{{time}}",every:"{{duration}} ごと",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"毎日 {{time}}",weekdaysAt:"平日 {{time}}",hourlyAt:"毎時 :{{minute}}",hourlyWindow:"{{start}}-{{end}} の毎時 :{{minute}}",custom:"カスタムスケジュール"},next:{paused:"一時停止",pending:"実行中",none:"次回実行なし"},message:{showMore:"メッセージ全文を表示",showLess:"折りたたむ"},fields:{name:"名前",message:"メッセージ",scheduleType:"スケジュール種別",every:"間隔",unit:"単位",cronExpression:"Cron 式",timezone:"タイムゾーン",runAt:"実行日時"},scheduleTypes:{every:"間隔",cron:"Cron",at:"一回限り"},everyUnits:{second:"秒",minute:"分",hour:"時間",day:"日"},validation:{nameRequired:"名前は必須です。",messageRequired:"メッセージは必須です。",intervalRequired:"間隔は正の数で指定してください。",cronRequired:"Cron 式は必須です。",timeRequired:"実行日時は必須です。",futureRequired:"実行日時は現在より後にしてください。"}},oauth:{authentication:"OAuth 認証",signIn:"サインイン",signingIn:"サインイン中...",signInAgain:"再度サインイン",signOut:"サインアウト",signedInAs:"{{account}} としてサインイン済み",signInHelp:"このデバイスからサインインします。API key は config に保存されません。",signInRequired:"サインインが必要です",signInBeforeSaving:"この OAuth プロバイダーをアクティブなモデルプロバイダーとして保存する前にサインインしてください。",signedIn:"サインイン済み",notSignedIn:"未サインイン"},skills:{description:"このエージェントが会話中に読み込める指示スキルを確認します。",caption:"{{available}} 利用可能 · 合計 {{total}}",featured:"エージェントスキル",empty:"利用可能なスキルはありません。",sourceWorkspace:"カスタム",sourceBuiltin:"組み込み",statusAvailable:"利用可能",statusUnavailable:"利用不可",unavailableReason:"不足: {{reason}}",openDetails:"{{name}} の詳細を開く",loadingDetail:"スキル詳細を読み込み中...",loadFailed:"スキル詳細を読み込めませんでした。",descriptionTitle:"説明",source:"ソース",status:"状態",requirements:"要件",noRequirements:"明示的な要件はありません。",commands:"コマンド",environment:"環境変数",missingCommands:"CLI 不足",missingEnvironment:"ENV 不足",unavailableReasonLabel:"利用不可の理由",rawInstructions:"元の SKILL.md",rawInstructionsEmpty:"元の説明はありません。",detailDescription:"{{name}} の詳細。"},voice:{selectProvider:"プロバイダーを選択",configureProvider:"プロバイダーを設定",languageAuto:"自動"}},mR={fallbackTitle:"チャット {{id}}",forkTitle:"分岐:{{title}}",loading:"読み込み中…",noSessions:"まだセッションがありません。",showMore:"さらに {{count}} 件表示",collapsed:"{{count}} 件のチャットを折りたたみ中",showLess:"折りたたむ",actions:"「{{title}}」のチャット操作",newInProject:"「{{project}}」で新しいチャットを開始",activity:{running:"Agent running",complete:"Agent finished",updated:"New activity"},pin:"Pin",unpin:"Unpin",rename:"Rename",renameTitle:"Rename chat",renameDescription:"Choose a local sidebar name for this chat.",renamePlaceholder:"Chat name",renameProjectTitle:"Rename project",renameProjectDescription:"Choose a local sidebar name for this project.",renameProjectPlaceholder:"Project name",renameSave:"Save",archive:"Archive",unarchive:"Unarchive",showArchived:"Show archived",hideArchived:"Hide archived",delete:"削除",newChat:"新しいチャット",groups:{pinned:"Pinned",all:"Chats",projects:"Projects",today:"Today",yesterday:"Yesterday",earlier:"Earlier",archived:"Archived"}},fR={title:"このチャットを削除しますか?",description:"この操作は元に戻せません。",cancel:"キャンセル",confirm:"削除",automationsDescription:"このチャットにはスケジュール済みの自動タスクがあります。削除するとそれらも削除されます。",moreAutomations:"他 {{count}} 件",confirmWithAutomations:"削除",schedule:{at:"{{time}}",every:"{{duration}} ごと",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"カスタムスケジュール"},next:{label:"次回: {{time}}",disabled:"一時停止中",none:"次回実行なし"}},hR={idle:"待機中",connecting:"接続中…",open:"接続済み",reconnecting:"再接続中…",closed:"切断済み",error:"接続エラー"},gR={loadingConversation:"会話を読み込み中…",empty:{greetings:{workOn:"一緒に何に取り組みましょうか?",start:"今日はどこから始めましょう?",build:"今日は何を作りましょうか?",tackle:"一緒に何を解決しましょう?"},quickActions:{plan:{title:"プロジェクト計画を作成",prompt:"次に作るものについて、簡潔なプロジェクト計画を作成してください。"},analyze:{title:"このデータを分析",prompt:"このデータを分析し、最も重要なパターンを指摘してください。"},brainstorm:{title:"アイデアを出す",prompt:"この問題について、実用的なアイデアとトレードオフをいくつか出してください。"},code:{title:"コードを書く",prompt:"このタスクのコードを書くのを手伝ってください。まず最小限の有用な変更から始めてください。"},summarize:{title:"この文書を要約",prompt:"この文書を要約し、重要なポイントを列挙してください。"},more:{title:"その他",prompt:"このワークスペースであなたが手伝える便利な方法をいくつか見せてください。"}},imageQuickActions:{icon:{title:"アプリアイコンを作る",prompt:"nanobot のクリーンな 1:1 アプリアイコンを生成してください。親しみやすいロボット、シンプルなベクター風、柔らかい青と白の配色、文字なし。"},sticker:{title:"ステッカーを作る",prompt:"小さなロボットアシスタントのかわいいステッカー風画像を生成してください。透明風の背景で、表情豊かで遊び心のある雰囲気。"},poster:{title:"ポスターを作る",prompt:"個人向け AI アシスタントの洗練されたポスター案を生成してください。モダンな構図、強い視覚階層、ランディングページ向け。"},product:{title:"製品モックアップ",prompt:"会話型 AI Web アプリのクリーンな製品モックアップ画像を生成してください。ミニマルな UI、上質なライティング、リアルなデバイスフレーム。"},portrait:{title:"スタイル付きポートレート",prompt:"親しみやすい AI コンパニオンのスタイル付きポートレートを生成してください。柔らかい光、細部は豊かで近づきやすい、モダンなイラスト風。"},edit:{title:"画像を編集",prompt:"画像編集を手伝ってください。まず編集する画像のアップロードまたは指定を求め、その後に編集後の結果を生成してください。"}}},header:{toggleSidebar:"サイドバーを切り替える",newChat:"新しいチャットを開始",toggleTheme:"ヘッダーからテーマを切り替える",settings:"設定を開く",sessionInfo:"セッション詳細"},sessionInfo:{title:"セッション",untitled:"無題のチャット",automations:"自動タスク",count:"{{count}}",loading:"自動タスクを読み込み中...",loadFailed:"自動タスクを読み込めませんでした。",empty:"このセッションにはまだ自動タスクがありません。",disabled:"オフ",schedule:{at:"{{time}}",every:"{{duration}}ごと",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"カスタムスケジュール"},next:{label:"次回 {{time}}",pending:"まもなく実行",disabled:"一時停止",none:"次回実行なし"}},composer:{placeholderThread:"メッセージを入力…",placeholderHero:"何を考えていますか?",placeholderOpening:"新しいチャットを開いています…",placeholderStreaming:"モデルが応答しています…",inputAria:"メッセージ入力欄",sendHint:"Enter で送信 · Shift+Enter で改行",runRuntimeTitle:"実行中 · {{elapsed}}",goalStateStrip:"目標 · {{label}}",goalStateFallback:"目標",goalStateExpandAria:"目標の全文を表示",goalStateSheetTitle:"目標",goalStateCloseAria:"目標を閉じる",send:"メッセージを送信",stop:"応答を停止",modelNotConfigured:"モデルが未設定です",configureModel:"モデルを設定",queued:{label:"保留中のガイド",guide:"ガイド",delete:"ガイドを削除",edit:"ガイドを編集",drag:"ドラッグして並べ替え"},attachImage:"画像を添付",imageMode:{label:"画像生成",toggle:"画像生成モードを切り替え",placeholder:"画像を説明または編集…",aspectAria:"画像のアスペクト比",aspectLabel:"画像の比率",aspect:{auto:"自動","1_1":"正方形 1:1","3_4":"縦長 3:4","9_16":"ストーリー 9:16","4_3":"横長 4:3","16_9":"ワイド 16:9"}},tools:{search:"検索",reason:"推論",deepResearch:"詳細調査",voice:"音声入力"},voice:{hint:"クリックして音声入力、または長押し",stop:"録音を停止",transcribing:"文字起こし中...",recordingStatus:"録音中 {{time}}"},voiceErrors:{unsupported:"このブラウザーは音声入力に対応していません。",permission:"マイクの許可が必要です。",notConfigured:"先に文字起こしプロバイダーを設定してください。",tooLong:"録音が長すぎます。",tooShort:"もう少し長く録音してください。",noInput:"マイク入力が検出されませんでした。",failed:"音声を文字起こしできませんでした。"},slash:{ariaLabel:"スラッシュコマンド",label:"コマンド",navigateHint:"↑↓ 選択",selectHint:"Enter/Tab 入力",closeHint:"Esc 閉じる",commands:{new:{title:"新しいチャット",description:"現在のタスクを停止して、新しい会話を開始します。"},stop:{title:"現在のタスクを停止",description:"このチャットで実行中の agent ターンをキャンセルします。"},restart:{title:"nanobot を再起動",description:"bot プロセスをその場で再起動します。"},status:{title:"ステータスを表示",description:"ランタイム、provider、channel の状態を表示します。"},model:{title:"モデル",description:"有効なモデルプリセットを表示または切り替えます。"},history:{title:"会話履歴を表示",description:"保存済みの直近 N 件の会話メッセージを表示します。"},dream:{title:"Dream を実行",description:"メモリ統合を手動で開始します。"},dream_log:{title:"Dream ログを表示",description:"直近の Dream 統合で変更された内容を表示します。"},dream_restore:{title:"メモリを復元",description:"以前の Dream スナップショットへメモリを戻します。"},goal:{title:"長期目標",description:"持続的な複数ステップの目標として扱うようエージェントに伝えます。"},help:{title:"ヘルプを表示",description:"利用可能なスラッシュコマンドを一覧表示します。"},pairing:{title:"ペアリング",description:"ペアリングリクエストを管理します。"}},badges:{current:"現在",recent:"最近"},details:{goalActive:"目標が実行中",goalReady:"継続的な目標を開始",history:"最近のメッセージを表示",stopRunning:"実行中"}},encoding:"処理中…",remove:"添付を削除",normalizedSizeHint:"{{orig}} → {{current}}(自動圧縮)",imageRejected:{unsupported_type:"対応していないファイル形式です",too_many_images:"1 メッセージにつき最大 {{max}} 枚です",magic_mismatch:"画像ファイルではないようです",decode_failed:"この画像をデコードできません",too_large:"画像が大きすぎます。小さいものを選んでください",io:"このファイルを読み込めません"},mentions:{ariaLabel:"アプリ",label:"アプリ",cliGroup:"CLI アプリ",mcpGroup:"MCP サービス",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"@{{name}} をローカル CLI アプリとして使用",mcpDescription:"@{{name}} を MCP サーバーとして使用"},workspace:{accessAria:"Workspace access mode",projectAria:"プロジェクトを選択",projectPlaceholder:"プロジェクトを選択",default:"Default Permission",full:"Full Access"}},scrollToBottom:"一番下へスクロール",loadEarlier:"以前のメッセージを読み込む",forkedFromHistory:"履歴から分岐",promptNavigator:{open:"プロンプトナビゲーターを開く",title:"プロンプト",search:"プロンプトを検索",noResults:"一致するプロンプトがありません。",jumpTo:"プロンプトへ移動: {{label}}"}},vR={streaming:"生成中",assistantTyping:"アシスタントが入力中",toolSingle:"ツールを使用中",toolMany:"{{count}} 個のツールを使用",toolSummary:"{{count}} 個のツール",toolSummaryMany:"{{count}} 個のツール",reasoningTools:"思考 · {{count}} 個のツール",reasoningToolsSingular:"思考 · 1 個のツール",reasoning:"思考",reasoningStreaming:"思考中…",reasoningSummary:"思考",agentActivitySummary:"{{reasoning}} ステップ · ツール呼び出し {{tools}} 回",agentActivityToolsOnly:"ツール呼び出し {{tools}} 回",agentActivityLiveSummary:"実行中… · {{reasoning}} ステップ · ツール呼び出し {{tools}} 回",agentActivityLiveToolsOnly:"実行中… · ツール呼び出し {{tools}} 回",imageAttachment:"画像の添付",forkFromHere:"分岐",copyReply:"コピー",copiedReply:"コピー済み",turnLatencyTitle:"応答時間(全行程)",activityThinkingFor:"{{duration}}考えています",activityThought:"思考しました",activityThoughtFor:"{{duration}}考えました",activityWorkingFor:"{{duration}}作業中",activityWorked:"作業しました",activityWorkedFor:"{{duration}}作業しました",cliActivityRunningOne:"@{{name}} を使用中",cliActivityRanOne:"@{{name}} を使用しました",cliActivityFailedOne:"@{{name}} が失敗しました",cliActivityRunningMany:"{{count}} 個の CLI アプリを使用中",cliActivityRanMany:"{{count}} 個の CLI アプリを使用しました",cliActivityFailedMany:"{{count}} 個の CLI アプリが失敗しました",cliRunRunning:"使用中",cliRunRan:"使用済み",cliRunFailed:"失敗",automationSourceFallback:"自動化",automationTriggered:"自動実行"},xR={title:"画像プレビュー",open:"画像を表示",prev:"前の画像",next:"次の画像",close:"プレビューを閉じる"},yR={aria:"ファイルプレビュー",close:"ファイルプレビューを閉じる",loading:"プレビューを読み込み中...",failed:"このファイルをプレビューできませんでした。",routeMissing:"ファイルプレビューには最新の gateway が必要です。nanobot gateway を再起動してから再試行してください。",resize:"ファイルプレビューの幅を変更",truncated:"ファイルが大きいため、プレビューは途中まで表示されています。"},bR={fallbackLanguage:"コード",copyAria:"コードをコピー",copy:"コピー",copied:"コピーしました"},wR={dismiss:"閉じる"},kR={messageTooBig:{title:"メッセージが大きすぎます",body:"サイズ上限を超えたため、直前のメッセージはサーバーに拒否されました。画像を減らすか、より小さいファイルに差し替えて再送してください。"},workspaceScopeRejected:{title:"Workspace was not changed",body:"Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."}},CR={dialog:{defaultProject:"Default workspace",manual:"パスを貼り付け",manualPlaceholder:"/Users/name/project",usePath:"Use Path",absolutePathRequired:"Enter an absolute folder path on this machine."}},SR={app:uR,sidebar:dR,settings:pR,chat:mR,deleteConfirm:fR,connection:hR,thread:gR,message:vR,lightbox:xR,filePreview:yR,code:bR,common:wR,errors:kR,workspace:CR},NR={brand:"nanobot",loading:{connecting:"nanobot에 연결 중…",boot:"nanobot 불러오는 중…"},error:{title:"nanobot에 연결할 수 없습니다",gatewayHint:"gateway(`nanobot gateway`)가 실행 중인지, 그리고 이 페이지가 같은 머신에서 열려 있는지 확인하세요."},auth:{title:"인증이 필요합니다",hint:"gateway 설정의 tokenIssueSecret에 구성된 비밀 값을 입력하세요.",placeholder:"비밀번호",submit:"연결",invalid:"비밀번호가 올바르지 않습니다. 다시 시도하세요."},account:{section:"계정",logoutHint:"이 브라우저를 gateway에서 연결 해제합니다.",logout:"로그아웃"},system:{section:"시스템",restartHint:"런타임 변경 사항을 적용하려면 nanobot을 다시 시작하세요.",restart:"nanobot 다시 시작",restarting:"다시 시작 중...",restartEngine:"엔진 다시 시작",restartingEngine:"엔진 다시 시작 중..."},restart:{completed:"{{seconds}}초 만에 다시 시작되었습니다."},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"nanobot 웹 UI — nanobot 작업공간과 대화하세요."}},jR={navigation:"사이드바 탐색",collapse:"사이드바 접기",newChat:"새 채팅",searchAria:"검색",searchPlaceholder:"검색",searchResults:"결과",noSearchResults:"일치하는 채팅이 없습니다.",recent:"최근 대화",settings:"설정",language:{label:"언어",ariaLabel:"언어 변경"},apps:"앱",automations:"자동화",skills:{title:"스킬"}},AR={backToChat:"채팅으로 돌아가기",sidebar:{title:"설정",ariaLabel:"설정 섹션"},nav:{general:"일반",byok:"BYOK",overview:"개요",appearance:"외관",models:"모델",providers:"제공자",image:"이미지",voice:"음성",browser:"웹",runtime:"시스템",advanced:"보안",cliApps:"CLI 앱",mcp:"MCP",apps:"앱",automations:"자동화",skills:"스킬"},sections:{interface:"인터페이스",ai:"AI",system:"시스템",about:"정보",status:"상태",localPreferences:"로컬 환경설정",presets:"프리셋",imageGeneration:"이미지 생성",imageDefaults:"기본값",webSearch:"웹 검색",webBehavior:"동작",identity:"ID",webuiSafety:"WebUI 보안",capabilities:"기능",cliApps:"CLI 앱",mcp:"MCP 서비스",apps:"앱",nativeHost:"네이티브 호스트",hostSafety:"앱 보안",voiceInput:"음성 입력"},rows:{theme:"테마",language:"언어",provider:"제공자",model:"모델",restart:"nanobot 재시작",configPath:"설정 경로",activePreset:"활성 프리셋",gateway:"게이트웨이",restartState:"재시작 상태",pendingChanges:"대기 중인 변경",selectedPreset:"선택한 프리셋",presetModel:"프리셋 모델",density:"밀도",activityMode:"활동 상세",codeWrap:"코드 줄바꿈",maxResults:"최대 결과 수",timeout:"타임아웃",jinaReader:"Jina 리더",imageGeneration:"이미지 생성",imageProvider:"이미지 제공자",imageProviderStatus:"제공자 상태",imageProviderBase:"제공자 주소",imageModel:"이미지 모델",defaultAspectRatio:"기본 비율",defaultImageSize:"기본 크기",maxImagesPerTurn:"턴당 최대 이미지 수",imageSaveDir:"저장 디렉터리",botName:"Bot 이름",botIcon:"Bot 아이콘",timezone:"시간대",workspacePath:"기본 작업공간",localServiceAccess:"로컬 서비스",webuiDefaultAccess:"기본 권한",currentModel:"현재 구성",brandLogos:"브랜드 로고",cliAppsCatalog:"카탈로그",cliAppsFilter:"필터",engine:"엔진",logs:"로그",diagnostics:"진단",contextWindow:"컨텍스트 창",transcription:"전사",transcriptionProvider:"제공자",transcriptionProviderStatus:"제공자 상태",transcriptionModel:"모델",transcriptionLanguage:"언어",voiceLimits:"제한"},help:{theme:"밝은 모드와 어두운 모드를 전환합니다.",language:"WebUI에서 사용할 언어를 선택합니다.",provider:"새 모델 요청을 처리할 제공자를 선택합니다.",model:"nanobot이 기본으로 사용할 모델 이름을 설정합니다.",configPath:"현재 게이트웨이가 사용하는 설정 파일입니다.",selectedPreset:"이름 있는 프리셋은 여기서 읽기 전용입니다. config.json에서 편집하세요.",presetModel:"Default로 전환하면 WebUI에서 모델과 제공자를 편집할 수 있습니다.",density:"이 브라우저에만 저장됩니다.",activityMode:"기본으로 표시할 agent 활동 세부 수준을 선택합니다.",codeWrap:"작은 화면에서도 긴 코드 줄을 읽기 쉽게 유지합니다.",maxResults:"각 web_search 호출에서 반환되는 결과 수입니다.",timeout:"검색 제공자 요청이 타임아웃되기 전의 초입니다.",jinaReader:"가능할 때 web_fetch에 Jina Reader를 사용합니다.",imageGeneration:"구성된 이미지 제공자가 있을 때 채팅에서 generate_image를 노출합니다.",imageProvider:"generate_image에 사용할 등록 제공자를 선택합니다.",imageProviderStatus:"이미지 생성은 제공자 자격 증명을 재사용합니다.",imageModel:"선택한 이미지 제공자에 보낼 모델 이름입니다.",defaultAspectRatio:"프롬프트가 비율을 선택하지 않을 때 사용됩니다.",defaultImageSize:"지원하는 제공자에 보낼 크기 힌트입니다.",maxImagesPerTurn:"한 번의 generate_image 요청에서 생성할 수 있는 이미지 상한입니다.",botName:"nanobot이 표시 이름을 사용하는 곳에 표시됩니다.",botIcon:"Bot 이름 옆에 표시할 짧은 emoji 또는 텍스트입니다.",timezone:"일정과 시간 인식 답변에 사용됩니다.",localServiceAccess:"Full Access shell 명령이 localhost 서비스에 접근할 수 있게 합니다.",webuiDefaultAccess:"프로젝트별 권한이 없는 Web 채팅에 사용됩니다.",securityManagedControls:"웹 가져오기는 항상 로컬, 사설, 메타데이터 서비스를 보호합니다. 핵심 채널 보안은 config.json에서 관리됩니다.",currentModel:"새 응답에 사용됩니다.",selectedModelProvider:"선택한 모델에 의해 설정됩니다.",selectedModelValue:"선택한 모델에 의해 설정됩니다.",brandLogos:"설정에서 타사 제공자와 CLI 로고를 표시합니다.",cliAppsCatalog:"nanobot이 로컬에서 실행할 수 있는 앱 CLI 어댑터만 설치합니다. 네이티브 앱은 변경하지 않습니다.",cliAppsFilter:"앱, 카테고리 또는 기능으로 검색합니다.",logs:"네이티브 엔진 로그 폴더를 엽니다.",diagnostics:"지원용 작은 런타임 보고서를 내보냅니다.",localServiceAccessNative:"Full Access shell 명령이 이 Mac의 서비스에 접근할 수 있게 합니다.",webuiDefaultAccessNative:"프로젝트별 권한이 없는 네이티브 채팅에 사용됩니다.",contextWindow:"이 모델 구성의 기본 컨텍스트 예산을 선택합니다.",transcription:"마이크 입력을 보내기 전에 텍스트로 변환합니다. 채널 음성 메시지도 같은 설정을 사용합니다.",transcriptionProvider:"Providers에 저장된 해당 제공자의 인증 정보를 사용합니다.",transcriptionProviderStatus:"API 키는 transcription 설정이 아니라 providers 아래에 유지됩니다.",transcriptionModel:"제공자가 사용자 지정 모델 ID를 요구하지 않으면 해석된 기본값을 사용하세요.",transcriptionLanguage:"en, zh, ja, ko 같은 선택적 ISO-639 힌트입니다."},values:{light:"라이트",dark:"다크",notAvailable:"사용 불가",enabled:"활성화됨",disabled:"비활성화됨",restartPending:"재시작 대기",ready:"준비됨",privateEngine:"비공개 엔진",unixSocket:"Unix 소켓",defaultWorkspace:"기본 작업 공간",comfortable:"편안함",compact:"컴팩트",auto:"자동",expanded:"펼침",on:"켜짐",off:"꺼짐",defaultPermission:"기본 권한",fullAccess:"전체 접근",configured:"구성됨",notConfigured:"미구성",pending:"대기 중",restartingEngine:"재시작 중"},status:{loading:"설정을 불러오는 중...",loadError:"설정을 불러올 수 없습니다",unsaved:"저장되지 않은 변경 사항이 있습니다.",upToDate:"최신 상태입니다.",savedRestart:"저장했습니다. 적용하려면 nanobot을 재시작하세요.",restartAfterSaving:"변경 사항을 저장한 뒤 준비되면 재시작하세요.",savedRestartApply:"저장했습니다. 준비되면 재시작하세요.",imageProviderRestart:"이미지 제공자 변경 사항을 저장했습니다. 준비되면 재시작하세요.",hostRestartAfterSaving:"저장하면 nanobot이 엔진을 재시작합니다.",hostRestartPending:"저장했습니다. 준비되면 엔진을 재시작합니다.",hostApiUnavailable:"호스트 작업은 네이티브 앱 안에서만 사용할 수 있습니다.",logsOpened:"로그 폴더를 열었습니다.",logsOpenFailed:"로그 폴더를 열 수 없습니다.",diagnosticsExported:"진단을 {{path}}에 내보냈습니다.",diagnosticsExportFailed:"진단을 내보낼 수 없습니다."},actions:{save:"저장",saving:"저장 중",edit:"편집",cancel:"취소",open:"열기",export:"내보내기",opening:"여는 중...",exporting:"내보내는 중..."},byok:{description:"직접 provider 키를 가져옵니다. Nanobot은 현재 config에서 값을 읽고, 설정된 provider만 일반 설정에서 선택할 수 있습니다.",configured:"설정됨",notConfigured:"설정 안 됨",configuredSection:"설정됨",notConfiguredSection:"설정 안 됨",showMore:"{{count}}개 더 보기",showLess:"접기",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"API key 입력",apiKeyConfiguredPlaceholder:"비워 두면 현재 key 유지",configuredKeyHint:"설정된 key",apiBasePlaceholder:"provider 기본값 사용",apiKeyRequired:"이 provider를 설정하려면 API key가 필요합니다.",showApiKey:"API key 표시",hideApiKey:"API key 숨기기",noConfiguredProviders:"설정된 provider가 없습니다",configureFirst:"먼저 BYOK에서 provider를 설정하세요.",openByok:"BYOK 열기",tabs:{ariaLabel:"BYOK 자격 증명 유형",llm:"LLM",webSearch:"웹 검색"},webSearch:{provider:"검색 provider",providerHelp:"web search 도구가 사용할 백엔드를 선택합니다.",selectProvider:"provider 선택",credentials:"자격 증명",noCredentialRequired:"key 필요 없음",noCredentialHelp:"DuckDuckGo는 API key를 저장하지 않고 사용할 수 있습니다.",apiKeyHelp:"config에 저장되며 저장 후에는 마스킹되어 표시됩니다.",baseUrl:"Base URL",baseUrlHelp:"SearXNG에는 자체 인스턴스 URL이 필요합니다.",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"이 검색 provider에는 API key가 필요합니다.",baseUrlRequired:"SearXNG에는 Base URL이 필요합니다.",missingCredential:"저장하기 전에 필요한 자격 증명을 입력하세요.",saveHint:"변경 사항은 새 web search 요청에 적용됩니다."}},overview:{model:"현재 모델",providers:"제공자",configuredCount:"{{count}}개 구성됨",totalProviders:"{{count}}개 사용 가능",webSearch:"웹 검색",imageGeneration:"이미지 생성",voiceInput:"음성 입력",workspace:"작업공간"},usage:{title:"Token 활동",shortTitle:"Token Usage",subtitle:"최근 12개월 동안 제공자가 보고한 사용량입니다.",empty:"새 모델 응답 이후 token 활동이 표시됩니다.",totalTokens:"누적 Token 수",peakTokens:"최고 Token 수",thirtyDayTokens:"30일 Token 수",currentStreak:"현재 연속 일수",longestStreak:"최장 연속 일수",daysValue:"{{count}}일",last30:"30일",activeDays:"활성 일수",requests:"요청",estimated:"추정",includesEstimates:"추정 포함",cellTitle:"{{date}}: {{tokens}} tokens, 요청 {{requests}}회",sources:{user:"채팅",api:"API",cron:"자동화",dream:"메모리 정리",system:"시스템"}},providers:{searchPlaceholder:"제공자 검색",noMatches:"일치하는 제공자가 없습니다.",saveProvider:"제공자 저장"},image:{selectProvider:"제공자 선택",selectAspect:"비율 선택",selectSize:"크기 선택",configureProvider:"제공자 구성",missingCredential:"이미지 생성을 활성화하기 전에 이 제공자를 구성하세요."},models:{selectModel:"모델 선택",addConfiguration:"구성 추가",newConfiguration:"새 모델 구성",newConfigurationHelp:"제공자와 모델을 원클릭 옵션으로 저장합니다.",configurationName:"구성 이름",configurationNameHelp:"저장된 모델 구성의 이름을 변경합니다.",configurationNamePlaceholder:"빠른 작성",searchModels:"모델 ID 검색 또는 입력",useCustomModel:"사용",loadingModels:"모델 불러오는 중...",searchCatalog:"제공자 카탈로그에서 모델을 선택합니다.",modelsAvailable:"사용 가능",noModelResults:"일치하는 모델이 없습니다.",loadFailed:"모델 목록을 사용할 수 없습니다.",unsupportedModelList:"모델 ID를 직접 입력하세요.",providerNotConfigured:"모델을 불러오기 전에 이 제공자를 설정하세요.",autoProviderCustomOnly:"자동 제공자 모드는 사용자 지정 모델 ID를 사용합니다."},timezone:{select:"시간대 선택",search:"시간대 검색",empty:"일치하는 시간대가 없습니다."},cliApps:{allCategories:"모든 카테고리",availableCount:"앱 {{count}}개",installedCount:"{{count}}개 설치됨",summary:"CLI {{total}}개 중 {{installed}}개 설치됨",filterAll:"전체",filterInstalled:"설치된 CLI",filterNotInstalled:"미설치",searchPlaceholder:"CLI 검색",statusInstalled:"설치됨",statusAvailable:"사용 가능",statusMissing:"의존성 필요",statusUnsupported:"지원 안 함",statusNotInstalled:"미설치",unsupported:"지원 안 함",loading:"CLI 앱 로드 중...",empty:"이 필터와 일치하는 CLI 앱이 없습니다.",readyTitle:"@{{name}} 준비됨",readyStatus:"준비됨",readyPrompt:"@{{name}}을 사용해 이 CLI가 무엇을 할 수 있는지 확인하세요.",readyTry:"@{{name}} 사용해 보기",readyCopied:"복사됨",openChat:"채팅 열기",requires:"필요 항목",test:"CLI 테스트",update:"CLI 업데이트",uninstall:"CLI 제거",install:"CLI 설치",unavailable:"사용 불가",noDescription:"설명이 없습니다."},about:{version:"버전",checking:"확인 중...",checkForUpdates:"업데이트 확인",upToDate:"최신 버전입니다",updateAvailable:"업데이트 사용 가능 v{{version}}"},mcp:{allCategories:"모든 카테고리",summary:"프리셋 {{total}}개 중 {{installed}}개 활성화됨",filterAll:"전체",filterInstalled:"활성화됨",filterNotInstalled:"비활성",searchPlaceholder:"MCP 프리셋 검색",moreOptions:"추가 MCP 옵션",moreOptionsSubtitle:"사용자 지정 서버를 추가하거나 mcp.json을 가져옵니다.",customTitle:"사용자 지정 MCP",customSubtitle:"stdio, HTTP 또는 SSE MCP 서버를 추가합니다.",customAction:"사용자 지정",importAction:"가져오기",serverName:"서버 이름",serverUrl:"URL",transport:"전송 방식",command:"명령",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"도구 제한 시간",advancedOptions:"고급 옵션",hideAdvanced:"고급 숨기기",saveCustom:"MCP 저장",configImport:"mcp.json 가져오기",importConfig:"가져오기",restartRequired:"업데이트된 MCP 도구를 연결하려면 nanobot을 다시 시작하세요.",toolsFound:"도구 {{count}}개",loading:"MCP 프리셋 로드 중...",empty:"이 필터와 일치하는 MCP 프리셋이 없습니다.",openDocs:"문서 열기",test:"테스트",remove:"제거",enable:"활성화",enabled:"활성화됨",setup:"연결",configure:"연결",connectTitle:"{{name}} 연결",connectHint:"계정 설정에서 키를 추가하세요.",saveAndEnable:"저장 후 활성화",updateSetup:"설정 업데이트",configured:"구성됨",keepExisting:"기존 값을 유지하려면 비워 두세요",statusConfigured:"구성됨",statusMissingCredentials:"키 필요",statusMissingDependency:"의존성 필요",statusComingSoon:"곧 제공",statusNotInstalled:"비활성",toolScope:"도구",allTools:"전체",noTools:"없음",testForTools:"테스트를 실행해 개별 도구를 확인하고 선택하세요."},legal:{thirdPartyBrands:"제품 이름, 로고 및 브랜드는 각 소유자의 자산입니다. 사용은 식별 목적일 뿐 보증이나 제휴를 의미하지 않습니다."},apps:{description:"nanobot이 채팅에서 사용할 수 있는 App CLI와 MCP 서비스를 추가합니다.",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"전체",filterCli:"CLI 앱",filterMcp:"MCP 서비스",enabledSummary:"{{count}}개 활성화됨",caption:"CLI {{cli}}개 · MCP {{mcp}}개",searchPlaceholder:"앱 검색",featured:"추천",loading:"앱을 불러오는 중...",empty:"일치하는 앱이 없습니다."},automations:{filters:{all:"전체",active:"활성",paused:"일시 중지",failed:"확인 필요",system:"시스템"},sort:{next:"다음 실행",last:"마지막 실행",updated:"업데이트",name:"이름"},search:"작업, 메시지, 연결된 채팅 또는 일정 검색",queue:"대기열",loading:"자동화를 불러오는 중...",noMatches:"이 보기와 일치하는 자동화가 없습니다.",empty:"아직 자동화가 없습니다.",emptyHint:"실행될 위치에서 만들면 nanobot이 올바른 컨텍스트를 유지합니다.",oneShot:"일회성",systemTask:"시스템 관리 자동화",labels:{schedule:"일정",next:"다음",origin:"연결된 채팅",created:"생성",updated:"업데이트"},runNow:"지금 실행",pause:"일시 중지",resume:"재개",edit:"편집",delete:"삭제",protected:"보호됨",editTitle:"자동화 편집",save:"저장",deleteTitle:"자동화 삭제",deleteDescription:"{{name}}을 cron 저장소에서 삭제합니다. 이전 채팅 메시지는 세션에 남습니다.",cancel:"취소",status:{system:"시스템",running:"실행 중",paused:"일시 중지",failed:"실패",completed:"완료",noSchedule:"일정 없음",active:"활성"},origin:{system:"시스템",unknown:"연결된 채팅 없음"},channels:{api:"API",cli:"CLI",dingtalk:"DingTalk",discord:"Discord",email:"Email",feishu:"Feishu",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"WeChat",wecom:"WeCom",weixin:"WeChat",whatsapp:"WhatsApp"},schedule:{at:"{{time}}",every:"{{duration}}마다",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"매일 {{time}}",weekdaysAt:"평일 {{time}}",hourlyAt:"매시간 :{{minute}}",hourlyWindow:"{{start}}-{{end}} 사이 매시간 :{{minute}}",custom:"사용자 지정 일정"},next:{paused:"일시 중지",pending:"실행 중",none:"다음 실행 없음"},message:{showMore:"전체 메시지 보기",showLess:"접기"},fields:{name:"이름",message:"메시지",scheduleType:"일정 유형",every:"간격",unit:"단위",cronExpression:"Cron 식",timezone:"시간대",runAt:"실행 시간"},scheduleTypes:{every:"간격",cron:"Cron",at:"일회성"},everyUnits:{second:"초",minute:"분",hour:"시간",day:"일"},validation:{nameRequired:"이름은 필수입니다.",messageRequired:"메시지는 필수입니다.",intervalRequired:"간격은 양수여야 합니다.",cronRequired:"Cron 식은 필수입니다.",timeRequired:"실행 시간은 필수입니다.",futureRequired:"실행 시간은 현재보다 이후여야 합니다."}},oauth:{authentication:"OAuth 인증",signIn:"로그인",signingIn:"로그인 중...",signInAgain:"다시 로그인",signOut:"로그아웃",signedInAs:"{{account}}로 로그인됨",signInHelp:"이 기기에서 로그인합니다. API key는 config에 저장되지 않습니다.",signInRequired:"로그인이 필요합니다",signInBeforeSaving:"이 OAuth 제공자를 활성 모델 제공자로 저장하기 전에 로그인하세요.",signedIn:"로그인됨",notSignedIn:"로그인 안 됨"},skills:{description:"이 에이전트가 대화 중에 불러올 수 있는 지시 스킬을 확인합니다.",caption:"{{available}}개 사용 가능 · 총 {{total}}개",featured:"에이전트 스킬",empty:"사용 가능한 스킬이 없습니다.",sourceWorkspace:"사용자 지정",sourceBuiltin:"내장",statusAvailable:"사용 가능",statusUnavailable:"사용 불가",unavailableReason:"누락: {{reason}}",openDetails:"{{name}} 상세 열기",loadingDetail:"스킬 상세를 불러오는 중...",loadFailed:"스킬 상세를 불러올 수 없습니다.",descriptionTitle:"설명",source:"출처",status:"상태",requirements:"요구 사항",noRequirements:"명시된 요구 사항이 없습니다.",commands:"명령",environment:"환경 변수",missingCommands:"CLI 누락",missingEnvironment:"ENV 누락",unavailableReasonLabel:"사용 불가 이유",rawInstructions:"원본 SKILL.md",rawInstructionsEmpty:"원본 지침이 없습니다.",detailDescription:"{{name}} 세부 정보."},voice:{selectProvider:"제공자 선택",configureProvider:"제공자 설정",languageAuto:"자동"}},_R={fallbackTitle:"채팅 {{id}}",forkTitle:"분기: {{title}}",loading:"불러오는 중…",noSessions:"아직 세션이 없습니다.",showMore:"{{count}}개 더 보기",collapsed:"{{count}}개 채팅 접힘",showLess:"접기",actions:"{{title}} 채팅 작업",newInProject:"{{project}}에서 새 채팅 시작",activity:{running:"Agent running",complete:"Agent finished",updated:"New activity"},pin:"Pin",unpin:"Unpin",rename:"Rename",renameTitle:"Rename chat",renameDescription:"Choose a local sidebar name for this chat.",renamePlaceholder:"Chat name",renameProjectTitle:"Rename project",renameProjectDescription:"Choose a local sidebar name for this project.",renameProjectPlaceholder:"Project name",renameSave:"Save",archive:"Archive",unarchive:"Unarchive",showArchived:"Show archived",hideArchived:"Hide archived",delete:"삭제",newChat:"새 채팅",groups:{pinned:"Pinned",all:"Chats",projects:"Projects",today:"Today",yesterday:"Yesterday",earlier:"Earlier",archived:"Archived"}},PR={title:"이 채팅을 삭제할까요?",description:"이 작업은 되돌릴 수 없습니다.",cancel:"취소",confirm:"삭제",automationsDescription:"이 채팅에는 예약된 자동화가 있습니다. 채팅을 삭제하면 자동화도 함께 삭제됩니다.",moreAutomations:"+ {{count}}개 더",confirmWithAutomations:"삭제",schedule:{at:"{{time}}",every:"{{duration}}마다",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"사용자 지정 일정"},next:{label:"다음: {{time}}",disabled:"일시 중지됨",none:"다음 실행 없음"}},TR={idle:"대기 중",connecting:"연결 중…",open:"연결됨",reconnecting:"재연결 중…",closed:"연결 끊김",error:"연결 오류"},RR={loadingConversation:"대화 불러오는 중…",empty:{greetings:{workOn:"우리 무엇을 함께 해볼까요?",start:"오늘은 어디서 시작할까요?",build:"오늘은 무엇을 만들어볼까요?",tackle:"함께 무엇을 해결할까요?"},quickActions:{plan:{title:"프로젝트 계획 만들기",prompt:"다음에 만들 것에 대한 간결한 프로젝트 계획을 작성해 주세요."},analyze:{title:"이 데이터 분석하기",prompt:"이 데이터를 분석하고 가장 중요한 패턴을 짚어 주세요."},brainstorm:{title:"아이디어 브레인스토밍",prompt:"이 문제에 대한 실용적인 아이디어와 트레이드오프를 몇 가지 제안해 주세요."},code:{title:"코드 작성하기",prompt:"이 작업을 위한 코드를 작성해 주세요. 가장 작은 유용한 변경부터 시작해 주세요."},summarize:{title:"문서 요약하기",prompt:"이 문서를 요약하고 핵심 내용을 정리해 주세요."},more:{title:"더 보기",prompt:"이 워크스페이스에서 도와줄 수 있는 유용한 방법을 몇 가지 보여 주세요."}},imageQuickActions:{icon:{title:"앱 아이콘 디자인",prompt:"nanobot을 위한 깔끔한 1:1 앱 아이콘을 생성해 주세요. 친근한 로봇, 단순한 벡터 스타일, 부드러운 파란색과 흰색 팔레트, 텍스트 없음."},sticker:{title:"스티커 만들기",prompt:"작은 로봇 도우미의 귀여운 스티커 스타일 이미지를 생성해 주세요. 투명해 보이는 배경, 표정이 풍부하고 장난스러운 느낌."},poster:{title:"포스터 만들기",prompt:"개인 AI 도우미를 위한 세련된 포스터 콘셉트를 생성해 주세요. 현대적인 구성, 강한 시각적 계층, 랜딩 페이지에 어울리는 스타일."},product:{title:"제품 목업",prompt:"대화형 AI 웹 앱을 위한 깔끔한 제품 목업 이미지를 생성해 주세요. 미니멀한 인터페이스, 고급스러운 조명, 현실적인 기기 프레임."},portrait:{title:"스타일화된 초상화",prompt:"친근한 AI 동반자의 스타일화된 초상화를 생성해 주세요. 부드러운 조명, 세밀하지만 다가가기 쉬운 분위기, 현대적인 일러스트 스타일."},edit:{title:"이미지 편집",prompt:"이미지 편집을 도와주세요. 먼저 편집할 이미지를 업로드하거나 지정하게 한 뒤, 편집된 결과를 생성해 주세요."}}},header:{toggleSidebar:"사이드바 전환",newChat:"새 채팅 시작",toggleTheme:"헤더에서 테마 전환",settings:"설정 열기",sessionInfo:"세션 세부 정보"},sessionInfo:{title:"세션",untitled:"제목 없는 채팅",automations:"자동화",count:"{{count}}",loading:"자동화를 불러오는 중...",loadFailed:"자동화를 불러오지 못했습니다.",empty:"이 세션에는 아직 자동화가 없습니다.",disabled:"꺼짐",schedule:{at:"{{time}}",every:"{{duration}}마다",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"사용자 지정 일정"},next:{label:"다음 {{time}}",pending:"곧 실행됨",disabled:"일시 중지됨",none:"다음 실행 없음"}},composer:{placeholderThread:"메시지를 입력하세요…",placeholderHero:"무슨 생각을 하고 있나요?",placeholderOpening:"새 채팅을 여는 중…",placeholderStreaming:"모델이 응답 중입니다…",inputAria:"메시지 입력",sendHint:"Enter로 전송 · Shift+Enter로 줄바꿈",runRuntimeTitle:"실행 중 · {{elapsed}}",goalStateStrip:"목표 · {{label}}",goalStateFallback:"목표",goalStateExpandAria:"전체 목표 보기",goalStateSheetTitle:"목표",goalStateCloseAria:"목표 닫기",send:"메시지 보내기",stop:"응답 중지",modelNotConfigured:"모델이 설정되지 않음",configureModel:"모델 설정",queued:{label:"대기 중인 안내",guide:"안내",delete:"안내 삭제",edit:"안내 수정",drag:"드래그하여 순서 변경"},attachImage:"이미지 첨부",imageMode:{label:"이미지 생성",toggle:"이미지 생성 모드 전환",placeholder:"이미지를 설명하거나 편집하세요…",aspectAria:"이미지 화면 비율",aspectLabel:"이미지 비율",aspect:{auto:"자동","1_1":"정사각형 1:1","3_4":"세로 3:4","9_16":"스토리 9:16","4_3":"가로 4:3","16_9":"와이드 16:9"}},tools:{search:"검색",reason:"추론",deepResearch:"심층 조사",voice:"음성 입력"},voice:{hint:"클릭해 받아쓰거나 길게 누르기",stop:"녹음 중지",transcribing:"변환 중...",recordingStatus:"녹음 중 {{time}}"},voiceErrors:{unsupported:"이 브라우저는 음성 입력을 지원하지 않습니다.",permission:"마이크 권한이 필요합니다.",notConfigured:"먼저 음성 변환 제공업체를 설정하세요.",tooLong:"녹음 시간이 너무 깁니다.",tooShort:"음성을 녹음하려면 조금 더 길게 눌러 주세요.",noInput:"마이크 입력이 감지되지 않았습니다.",failed:"오디오를 변환하지 못했습니다."},slash:{ariaLabel:"슬래시 명령",label:"명령",navigateHint:"↑↓ 선택",selectHint:"Enter/Tab 입력",closeHint:"Esc 닫기",commands:{new:{title:"새 채팅",description:"현재 작업을 중지하고 새 대화를 시작합니다."},stop:{title:"현재 작업 중지",description:"이 채팅에서 실행 중인 agent 턴을 취소합니다."},restart:{title:"nanobot 재시작",description:"bot 프로세스를 제자리에서 재시작합니다."},status:{title:"상태 보기",description:"런타임, provider, channel 상태를 표시합니다."},model:{title:"모델",description:"활성 모델 프리셋을 보거나 전환합니다."},history:{title:"대화 기록 보기",description:"저장된 최근 N개의 대화 메시지를 출력합니다."},dream:{title:"Dream 실행",description:"메모리 정리를 수동으로 트리거합니다."},dream_log:{title:"Dream 로그 보기",description:"마지막 Dream 정리에서 변경된 내용을 표시합니다."},dream_restore:{title:"메모리 복원",description:"이전 Dream 스냅샷으로 메모리를 되돌립니다."},goal:{title:"장기 목표",description:"에이전트에게 지속적인 다단계 목표로 처리하도록 지시합니다."},help:{title:"도움말 보기",description:"사용 가능한 슬래시 명령을 나열합니다."},pairing:{title:"페어링",description:"페어링 요청을 관리합니다."}},badges:{current:"현재",recent:"최근"},details:{goalActive:"목표 실행 중",goalReady:"지속 목표 시작",history:"최근 메시지 보기",stopRunning:"실행 중"}},encoding:"처리 중…",remove:"첨부 제거",normalizedSizeHint:"{{orig}} → {{current}} (자동 압축)",imageRejected:{unsupported_type:"지원하지 않는 파일 형식입니다",too_many_images:"메시지당 최대 {{max}}장까지 가능합니다",magic_mismatch:"이미지 파일이 아닌 것 같습니다",decode_failed:"이 이미지를 디코딩할 수 없습니다",too_large:"이미지가 너무 큽니다. 더 작은 걸로 시도해 주세요",io:"이 파일을 읽을 수 없습니다"},mentions:{ariaLabel:"앱",label:"앱",cliGroup:"CLI 앱",mcpGroup:"MCP 서비스",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"@{{name}}을 로컬 CLI 앱으로 사용",mcpDescription:"@{{name}}을 MCP 서버로 사용"},workspace:{accessAria:"Workspace access mode",projectAria:"프로젝트 선택",projectPlaceholder:"프로젝트 선택",default:"Default Permission",full:"Full Access"}},scrollToBottom:"맨 아래로 스크롤",loadEarlier:"이전 메시지 불러오기",forkedFromHistory:"기록에서 분기됨",promptNavigator:{open:"프롬프트 탐색기 열기",title:"프롬프트",search:"프롬프트 검색",noResults:"일치하는 프롬프트가 없습니다.",jumpTo:"프롬프트로 이동: {{label}}"}},MR={streaming:"생성 중",assistantTyping:"도우미가 입력 중",toolSingle:"도구 사용 중",toolMany:"도구 {{count}}개 사용됨",toolSummary:"도구 {{count}}개",toolSummaryMany:"도구 {{count}}개",reasoningTools:"추론 · 도구 {{count}}개",reasoningToolsSingular:"추론 · 도구 1개",reasoning:"추론",reasoningStreaming:"추론 중…",reasoningSummary:"추론",agentActivitySummary:"{{reasoning}}단계 · 도구 호출 {{tools}}회",agentActivityToolsOnly:"도구 호출 {{tools}}회",agentActivityLiveSummary:"진행 중… · {{reasoning}}단계 · 도구 호출 {{tools}}회",agentActivityLiveToolsOnly:"진행 중… · 도구 호출 {{tools}}회",imageAttachment:"이미지 첨부",forkFromHere:"분기",copyReply:"복사",copiedReply:"복사됨",turnLatencyTitle:"응답 시간(엔드투엔드)",activityThinkingFor:"{{duration}} 동안 생각 중",activityThought:"생각함",activityThoughtFor:"{{duration}} 동안 생각함",activityWorkingFor:"{{duration}} 동안 작업 중",activityWorked:"작업함",activityWorkedFor:"{{duration}} 동안 작업함",cliActivityRunningOne:"@{{name}} 사용 중",cliActivityRanOne:"@{{name}} 사용함",cliActivityFailedOne:"@{{name}} 실패",cliActivityRunningMany:"CLI 앱 {{count}}개 사용 중",cliActivityRanMany:"CLI 앱 {{count}}개 사용함",cliActivityFailedMany:"CLI 앱 {{count}}개 실패",cliRunRunning:"사용 중",cliRunRan:"사용함",cliRunFailed:"실패",automationSourceFallback:"자동화",automationTriggered:"자동 실행됨"},ER={title:"이미지 미리보기",open:"이미지 보기",prev:"이전 이미지",next:"다음 이미지",close:"미리보기 닫기"},IR={aria:"파일 미리보기",close:"파일 미리보기 닫기",loading:"미리보기 로딩 중...",failed:"이 파일을 미리 볼 수 없습니다.",routeMissing:"파일 미리보기에는 최신 gateway가 필요합니다. nanobot gateway를 다시 시작한 뒤 다시 시도하세요.",resize:"파일 미리보기 크기 조절",truncated:"파일이 커서 미리보기가 잘렸습니다."},LR={fallbackLanguage:"코드",copyAria:"코드 복사",copy:"복사",copied:"복사됨"},DR={dismiss:"닫기"},OR={messageTooBig:{title:"메시지가 너무 큽니다",body:"마지막 메시지가 서버의 크기 제한을 초과하여 거부되었습니다. 이미지를 줄이거나 더 작은 파일로 바꿔서 다시 보내 주세요."},workspaceScopeRejected:{title:"Workspace was not changed",body:"Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."}},FR={dialog:{defaultProject:"Default workspace",manual:"경로 붙여넣기",manualPlaceholder:"/Users/name/project",usePath:"Use Path",absolutePathRequired:"Enter an absolute folder path on this machine."}},zR={app:NR,sidebar:jR,settings:AR,chat:_R,deleteConfirm:PR,connection:TR,thread:RR,message:MR,lightbox:ER,filePreview:IR,code:LR,common:DR,errors:OR,workspace:FR},$R={brand:"nanobot",loading:{connecting:"Conectando con nanobot…",boot:"Cargando nanobot…"},error:{title:"No se pudo conectar con nanobot",gatewayHint:"Asegúrate de que la gateway esté en ejecución (`nanobot gateway`) y de que esta página esté abierta en la misma máquina."},auth:{title:"Autenticación requerida",hint:"Introduce el secreto configurado como tokenIssueSecret en la configuración del gateway.",placeholder:"Contraseña",submit:"Conectar",invalid:"Contraseña no válida. Inténtalo de nuevo."},account:{section:"Cuenta",logoutHint:"Desconecta este navegador del gateway.",logout:"Cerrar sesión"},system:{section:"Sistema",restartHint:"Reinicia nanobot para aplicar los cambios de ejecución.",restart:"Reiniciar nanobot",restarting:"Reiniciando...",restartEngine:"Reiniciar motor",restartingEngine:"Reiniciando motor..."},restart:{completed:"Reinicio completado en {{seconds}} s."},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"Interfaz web de nanobot: conversa con tu espacio de trabajo de nanobot."}},UR={navigation:"Navegación de la barra lateral",collapse:"Contraer barra lateral",newChat:"Nuevo chat",searchAria:"Buscar",searchPlaceholder:"Buscar",searchResults:"Resultados",noSearchResults:"No hay chats coincidentes.",recent:"Recientes",settings:"Configuración",language:{label:"Idioma",ariaLabel:"Cambiar idioma"},apps:"Apps",automations:"Automatizaciones",skills:{title:"Habilidades"}},BR={backToChat:"Volver al chat",sidebar:{title:"Ajustes",ariaLabel:"Secciones de ajustes"},nav:{general:"General",byok:"BYOK",overview:"Resumen",appearance:"Apariencia",models:"Modelos",providers:"Proveedores",image:"Imagen",voice:"Voz",browser:"Internet",runtime:"Sistema",advanced:"Seguridad",cliApps:"Apps CLI",mcp:"MCP",apps:"Aplicaciones",automations:"Automatizaciones",skills:"Habilidades"},sections:{interface:"Interfaz",ai:"AI",system:"Sistema",about:"Acerca de",status:"Estado",localPreferences:"Preferencias locales",presets:"Preajustes",imageGeneration:"Generación de imágenes",imageDefaults:"Valores predeterminados",webSearch:"Búsqueda web",webBehavior:"Comportamiento",identity:"Identidad",webuiSafety:"Seguridad de WebUI",capabilities:"Capacidades",cliApps:"Aplicaciones CLI",mcp:"Servicios MCP",apps:"Aplicaciones",nativeHost:"Host nativo",hostSafety:"Seguridad de la app",voiceInput:"Entrada de voz"},rows:{theme:"Tema",language:"Idioma",provider:"Proveedor",model:"Modelo",restart:"Reiniciar nanobot",configPath:"Ruta de configuración",activePreset:"Preajuste activo",gateway:"Pasarela",restartState:"Estado de reinicio",pendingChanges:"Cambios pendientes",selectedPreset:"Preajuste seleccionado",presetModel:"Modelo del preajuste",density:"Densidad",activityMode:"Detalle de actividad",codeWrap:"Ajuste de código",maxResults:"Resultados máximos",timeout:"Tiempo de espera",jinaReader:"Lector Jina",imageGeneration:"Generación de imágenes",imageProvider:"Proveedor de imágenes",imageProviderStatus:"Estado del proveedor",imageProviderBase:"Base del proveedor",imageModel:"Modelo de imagen",defaultAspectRatio:"Proporción predeterminada",defaultImageSize:"Tamaño predeterminado",maxImagesPerTurn:"Máx. imágenes por turno",imageSaveDir:"Directorio de guardado",botName:"Nombre del bot",botIcon:"Icono del bot",timezone:"Zona horaria",workspacePath:"Workspace predeterminado",localServiceAccess:"Servicios locales",webuiDefaultAccess:"Acceso predeterminado",currentModel:"Configuración actual",brandLogos:"Logos de marca",cliAppsCatalog:"Catálogo",cliAppsFilter:"Filtro",engine:"Motor",logs:"Registros",diagnostics:"Diagnóstico",contextWindow:"Ventana de contexto",transcription:"Transcripcion",transcriptionProvider:"Proveedor",transcriptionProviderStatus:"Estado del proveedor",transcriptionModel:"Modelo",transcriptionLanguage:"Idioma",voiceLimits:"Limites"},help:{theme:"Cambia entre apariencia clara y oscura.",language:"Elige el idioma usado por WebUI.",provider:"Selecciona el proveedor para nuevas solicitudes de modelo.",model:"Define el nombre de modelo predeterminado de nanobot.",configPath:"Archivo de configuración que usa actualmente el gateway.",selectedPreset:"Los preajustes con nombre son de solo lectura aquí; edítalos en config.json.",presetModel:"Cambia a Default para editar modelo y proveedor desde WebUI.",density:"Solo se guarda en este navegador.",activityMode:"Elige cuánto detalle de actividad del agente se muestra por defecto.",codeWrap:"Mantiene legibles las líneas largas de código en pantallas pequeñas.",maxResults:"Resultados devueltos por cada llamada web_search.",timeout:"Segundos antes de que una solicitud de búsqueda expire.",jinaReader:"Usa Jina Reader para web_fetch cuando esté disponible.",imageGeneration:"Expone generate_image en chats cuando hay un proveedor de imagen configurado.",imageProvider:"Elige el proveedor registrado usado por generate_image.",imageProviderStatus:"La generación de imágenes reutiliza credenciales de Proveedores.",imageModel:"Nombre del modelo enviado al proveedor de imágenes seleccionado.",defaultAspectRatio:"Se usa cuando el prompt no elige una proporción.",defaultImageSize:"Pista de tamaño enviada a proveedores compatibles.",maxImagesPerTurn:"Límite superior para una solicitud generate_image.",botName:"Se muestra donde nanobot usa un nombre visible.",botIcon:"Emoji o texto corto junto al nombre del bot.",timezone:"Se usa para horarios y respuestas con conciencia temporal.",localServiceAccess:"Permite que comandos shell con Full Access alcancen servicios localhost.",webuiDefaultAccess:"Usado por chats web sin permiso específico de proyecto.",securityManagedControls:"Las capturas web siempre protegen servicios locales, privados y metadata. La seguridad de canales core se gestiona en config.json.",currentModel:"Se usa para nuevas respuestas.",selectedModelProvider:"Definido por el modelo seleccionado.",selectedModelValue:"Definido por el modelo seleccionado.",brandLogos:"Muestra logos de proveedores de terceros y CLI en Ajustes.",cliAppsCatalog:"Instala solo adaptadores CLI de apps que nanobot puede ejecutar localmente; las apps nativas no se modifican.",cliAppsFilter:"Busca por app, categoría o capacidad.",logs:"Abre la carpeta de registros del motor nativo.",diagnostics:"Exporta un pequeño informe de runtime para soporte.",localServiceAccessNative:"Permite que comandos shell con Full Access alcancen servicios en este Mac.",webuiDefaultAccessNative:"Usado por chats nativos sin permiso específico de proyecto.",contextWindow:"Elige el presupuesto de contexto predeterminado para esta configuración de modelo.",transcription:"Transcribe la entrada del microfono antes de enviarla. Los mensajes de voz de los canales usan la misma configuracion.",transcriptionProvider:"Usa las credenciales del proveedor correspondiente en Proveedores.",transcriptionProviderStatus:"Las claves API permanecen en proveedores, no en la configuracion de transcripcion.",transcriptionModel:"Dejalo como el valor predeterminado resuelto salvo que el proveedor necesite un id de modelo personalizado.",transcriptionLanguage:"Pista ISO-639 opcional, como en, zh, ja o ko."},values:{light:"Claro",dark:"Oscuro",notAvailable:"No disponible",enabled:"Activado",disabled:"Desactivado",restartPending:"Reinicio pendiente",ready:"Listo",privateEngine:"Motor privado",unixSocket:"Socket Unix",defaultWorkspace:"Espacio predeterminado",comfortable:"Cómodo",compact:"Compacto",auto:"Automático",expanded:"Expandido",on:"Activado",off:"Desactivado",defaultPermission:"Permiso predeterminado",fullAccess:"Acceso completo",configured:"Configurado",notConfigured:"Sin configurar",pending:"Pendiente",restartingEngine:"Reiniciando"},status:{loading:"Cargando ajustes...",loadError:"No se pudieron cargar los ajustes",unsaved:"Cambios sin guardar.",upToDate:"Actualizado.",savedRestart:"Guardado. Reinicia nanobot para aplicar.",restartAfterSaving:"Guarda los cambios y reinicia cuando puedas.",savedRestartApply:"Guardado. Reinicia cuando puedas.",imageProviderRestart:"Cambios del proveedor de imagen guardados. Reinicia cuando puedas.",hostRestartAfterSaving:"Al guardar, nanobot reiniciará su motor.",hostRestartPending:"Guardado. El motor se reiniciará cuando esté listo.",hostApiUnavailable:"Las acciones del host solo están disponibles en la app nativa.",logsOpened:"Carpeta de registros abierta.",logsOpenFailed:"No se pudo abrir la carpeta de registros.",diagnosticsExported:"Diagnóstico exportado a {{path}}.",diagnosticsExportFailed:"No se pudo exportar el diagnóstico."},actions:{save:"Guardar",saving:"Guardando",edit:"Editar",cancel:"Cancelar",open:"Abrir",export:"Exportar",opening:"Abriendo...",exporting:"Exportando..."},byok:{description:"Usa tus propias claves de proveedor. Nanobot lee estos valores desde la configuración actual, y solo los proveedores configurados se pueden elegir en General.",configured:"Configurado",notConfigured:"Sin configurar",configuredSection:"Configurados",notConfiguredSection:"Sin configurar",showMore:"Mostrar {{count}} más",showLess:"Mostrar menos",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"Introduce la API key",apiKeyConfiguredPlaceholder:"Deja vacío para conservar la key actual",configuredKeyHint:"Key configurada",apiBasePlaceholder:"Usar el valor predeterminado del proveedor",apiKeyRequired:"Se requiere una API key para configurar este proveedor.",showApiKey:"Mostrar API key",hideApiKey:"Ocultar API key",noConfiguredProviders:"No hay proveedores configurados",configureFirst:"Configura primero un proveedor en BYOK.",openByok:"Abrir BYOK",tabs:{ariaLabel:"Tipo de credencial BYOK",llm:"LLM",webSearch:"Búsqueda web"},webSearch:{provider:"Proveedor de búsqueda",providerHelp:"Elige el backend que usará la herramienta web search.",selectProvider:"Seleccionar proveedor",credentials:"Credenciales",noCredentialRequired:"No requiere key",noCredentialHelp:"DuckDuckGo funciona sin guardar una API key.",apiKeyHelp:"Se guarda en config y se muestra enmascarada después de guardar.",baseUrl:"Base URL",baseUrlHelp:"SearXNG necesita la URL de tu propia instancia.",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"Este proveedor de búsqueda requiere una API key.",baseUrlRequired:"SearXNG requiere una Base URL.",missingCredential:"Añade la credencial requerida antes de guardar.",saveHint:"Los cambios se aplican a nuevas solicitudes de web search."}},overview:{model:"Modelo actual",providers:"Proveedores",configuredCount:"{{count}} configurados",totalProviders:"{{count}} disponibles",webSearch:"Búsqueda web",imageGeneration:"Generación de imágenes",voiceInput:"Entrada de voz",workspace:"Espacio de trabajo"},usage:{title:"Actividad de tokens",shortTitle:"Token Usage",subtitle:"Uso reportado por el proveedor durante los últimos 12 meses.",empty:"La actividad de tokens aparecerá después de nuevas respuestas del modelo.",totalTokens:"Tokens totales",peakTokens:"Pico de tokens",thirtyDayTokens:"Tokens en 30 días",currentStreak:"Racha actual",longestStreak:"Racha más larga",daysValue:"{{count}} d",last30:"30 días",activeDays:"Días activos",requests:"Solicitudes",estimated:"estimado",includesEstimates:"incluye estimaciones",cellTitle:"{{date}}: {{tokens}} tokens, {{requests}} solicitudes",sources:{user:"Chat",api:"API",cron:"Automatizaciones",dream:"Memoria",system:"Sistema"}},providers:{searchPlaceholder:"Buscar proveedores",noMatches:"Ningún proveedor coincide con esta búsqueda.",saveProvider:"Guardar proveedor"},image:{selectProvider:"Seleccionar proveedor",selectAspect:"Seleccionar proporción",selectSize:"Seleccionar tamaño",configureProvider:"Configurar proveedor",missingCredential:"Configura este proveedor antes de activar la generación de imágenes."},models:{selectModel:"Seleccionar modelo",addConfiguration:"Agregar configuración",newConfiguration:"Nueva configuración de modelo",newConfigurationHelp:"Guarda un proveedor y modelo como opción de un clic.",configurationName:"Nombre de configuración",configurationNameHelp:"Renombra esta configuración de modelo guardada.",configurationNamePlaceholder:"Escritura rápida",searchModels:"Buscar o escribir ID de modelo",useCustomModel:"Usar",loadingModels:"Cargando modelos...",searchCatalog:"Busca el catálogo del proveedor para elegir un modelo.",modelsAvailable:"disponibles",noModelResults:"No hay modelos coincidentes.",loadFailed:"Lista de modelos no disponible.",unsupportedModelList:"Escribe un ID de modelo manualmente.",providerNotConfigured:"Configura este proveedor antes de cargar modelos.",autoProviderCustomOnly:"El modo de proveedor automático usa IDs de modelo personalizados."},timezone:{select:"Seleccionar zona horaria",search:"Buscar zona horaria",empty:"No hay zonas horarias coincidentes."},cliApps:{allCategories:"Todas las categorías",availableCount:"{{count}} aplicaciones",installedCount:"{{count}} instaladas",summary:"{{installed}} de {{total}} CLIs instaladas",filterAll:"Todas",filterInstalled:"CLIs instaladas",filterNotInstalled:"No instaladas",searchPlaceholder:"Buscar CLIs",statusInstalled:"Instalada",statusAvailable:"Disponible",statusMissing:"Falta dependencia",statusUnsupported:"No compatible",statusNotInstalled:"No instalada",unsupported:"No compatible",loading:"Cargando apps CLI...",empty:"Ninguna app CLI coincide con este filtro.",readyTitle:"@{{name}} está listo",readyStatus:"Listo",readyPrompt:"Usa @{{name}} para ver qué puede hacer este CLI.",readyTry:"Probar @{{name}}",readyCopied:"Copiado",openChat:"Abrir chat",requires:"Requiere",test:"Probar CLI",update:"Actualizar CLI",uninstall:"Desinstalar CLI",install:"Instalar CLI",unavailable:"No disponible",noDescription:"Sin descripción disponible."},about:{version:"Versión",checking:"Buscando actualizaciones...",checkForUpdates:"Buscar actualizaciones",upToDate:"Estás al día",updateAvailable:"Actualización disponible v{{version}}"},mcp:{allCategories:"Todas las categorías",summary:"{{installed}} de {{total}} presets habilitados",filterAll:"Todos",filterInstalled:"Habilitados",filterNotInstalled:"No habilitados",searchPlaceholder:"Buscar presets MCP",moreOptions:"Más opciones de MCP",moreOptionsSubtitle:"Añade un servidor personalizado o importa mcp.json.",customTitle:"MCP personalizado",customSubtitle:"Añade cualquier servidor MCP stdio, HTTP o SSE.",customAction:"Personalizado",importAction:"Importar",serverName:"Nombre del servidor",serverUrl:"URL",transport:"Transporte",command:"Comando",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"Tiempo límite de herramienta",advancedOptions:"Opciones avanzadas",hideAdvanced:"Ocultar avanzado",saveCustom:"Guardar MCP",configImport:"Importar mcp.json",importConfig:"Importar",restartRequired:"Reinicia nanobot para conectar las herramientas MCP actualizadas.",toolsFound:"{{count}} herramientas",loading:"Cargando presets MCP...",empty:"Ningún preset MCP coincide con este filtro.",openDocs:"Abrir docs",test:"Probar",remove:"Eliminar",enable:"Habilitar",enabled:"Habilitado",setup:"Conectar",configure:"Conectar",connectTitle:"Conectar {{name}}",connectHint:"Añade la clave desde la configuración de tu cuenta.",saveAndEnable:"Guardar y habilitar",updateSetup:"Actualizar configuración",configured:"configurado",keepExisting:"Déjalo en blanco para conservar el valor actual",statusConfigured:"Configurado",statusMissingCredentials:"Necesita clave",statusMissingDependency:"Necesita dependencia",statusComingSoon:"Próximamente",statusNotInstalled:"No habilitado",toolScope:"Herramientas",allTools:"Todas",noTools:"Ninguna",testForTools:"Ejecuta Probar para inspeccionar y elegir herramientas individuales."},legal:{thirdPartyBrands:"Los nombres, logotipos y marcas de productos pertenecen a sus respectivos propietarios. Su uso es solo identificativo y no implica respaldo."},apps:{description:"Agrega CLI de apps y servicios MCP que nanobot puede usar desde el chat.",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"Todo",filterCli:"Apps CLI",filterMcp:"Servicios MCP",enabledSummary:"{{count}} activados",caption:"{{cli}} CLI · {{mcp}} MCP",searchPlaceholder:"Buscar apps",featured:"Destacadas",loading:"Cargando apps...",empty:"Ninguna app coincide con este filtro."},automations:{filters:{all:"Todas",active:"Activas",paused:"Pausadas",failed:"Requieren atención",system:"Sistema"},sort:{next:"Próxima ejecución",last:"Última ejecución",updated:"Actualizada",name:"Nombre"},search:"Buscar tarea, mensaje, chat vinculado u horario",queue:"Cola",loading:"Cargando automatizaciones...",noMatches:"No hay automatizaciones que coincidan con esta vista.",empty:"Aún no hay automatizaciones.",emptyHint:"Créala desde donde debe ejecutarse para que nanobot conserve el contexto correcto.",oneShot:"Una vez",systemTask:"Automatización administrada por el sistema",labels:{schedule:"Programación",next:"Siguiente",origin:"Chat vinculado",created:"Creada",updated:"Actualizada"},runNow:"Ejecutar ahora",pause:"Pausar",resume:"Reanudar",edit:"Editar",delete:"Eliminar",protected:"Protegida",editTitle:"Editar automatización",save:"Guardar",deleteTitle:"Eliminar automatización",deleteDescription:"Esto elimina {{name}} del almacén cron. Los mensajes de chat anteriores permanecen en la sesión.",cancel:"Cancelar",status:{system:"Sistema",running:"Ejecutándose ahora",paused:"Pausada",failed:"Fallida",completed:"Completada",noSchedule:"Sin programación",active:"Activa"},origin:{system:"Sistema",unknown:"Sin chat vinculado"},channels:{api:"API",cli:"CLI",dingtalk:"DingTalk",discord:"Discord",email:"Email",feishu:"Feishu",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"WeChat",wecom:"WeCom",weixin:"WeChat",whatsapp:"WhatsApp"},schedule:{at:"A las {{time}}",every:"Cada {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"Diaria a las {{time}}",weekdaysAt:"Días laborables a las {{time}}",hourlyAt:"Cada hora en :{{minute}}",hourlyWindow:"Cada hora {{start}}-{{end}} en :{{minute}}",custom:"Programación personalizada"},next:{paused:"Pausada",pending:"Ejecutándose ahora",none:"Sin próxima ejecución"},message:{showMore:"Mostrar mensaje completo",showLess:"Mostrar menos"},fields:{name:"Nombre",message:"Mensaje",scheduleType:"Tipo de programación",every:"Cada",unit:"Unidad",cronExpression:"Expresión cron",timezone:"Zona horaria",runAt:"Ejecutar a las"},scheduleTypes:{every:"Intervalo",cron:"Cron",at:"Una vez"},everyUnits:{second:"Segundos",minute:"Minutos",hour:"Horas",day:"Días"},validation:{nameRequired:"El nombre es obligatorio.",messageRequired:"El mensaje es obligatorio.",intervalRequired:"El intervalo debe ser un número positivo.",cronRequired:"La expresión cron es obligatoria.",timeRequired:"La hora de ejecución es obligatoria.",futureRequired:"La hora de ejecución debe estar en el futuro."}},oauth:{authentication:"Autenticación OAuth",signIn:"Iniciar sesión",signingIn:"Iniciando sesión...",signInAgain:"Iniciar sesión de nuevo",signOut:"Cerrar sesión",signedInAs:"Sesión iniciada como {{account}}",signInHelp:"Inicia sesión desde este dispositivo; no se guarda API key en config.",signInRequired:"Inicio de sesión requerido",signInBeforeSaving:"Inicia sesión antes de guardar este proveedor OAuth como proveedor activo.",signedIn:"Sesión iniciada",notSignedIn:"Sin sesión"},skills:{description:"Revisa las habilidades de instrucciones que este agente puede cargar durante una conversación.",caption:"{{available}} disponibles · {{total}} en total",featured:"Habilidades del agente",empty:"No hay habilidades disponibles.",sourceWorkspace:"Personalizada",sourceBuiltin:"Integradas",statusAvailable:"Disponible",statusUnavailable:"No disponible",unavailableReason:"Falta: {{reason}}",openDetails:"Abrir detalles de {{name}}",loadingDetail:"Cargando detalles de la habilidad...",loadFailed:"No se pudieron cargar los detalles.",descriptionTitle:"Descripción",source:"Origen",status:"Estado",requirements:"Requisitos",noRequirements:"Sin requisitos explícitos.",commands:"Comandos",environment:"Variables de entorno",missingCommands:"Falta CLI",missingEnvironment:"Falta ENV",unavailableReasonLabel:"Motivo de indisponibilidad",rawInstructions:"SKILL.md original",rawInstructionsEmpty:"No hay instrucciones originales.",detailDescription:"Detalles de {{name}}."},voice:{selectProvider:"Seleccionar proveedor",configureProvider:"Configurar proveedor",languageAuto:"Auto"}},HR={fallbackTitle:"Chat {{id}}",forkTitle:"Bifurcación: {{title}}",loading:"Cargando…",noSessions:"Todavía no hay sesiones.",showMore:"Mostrar {{count}} más",collapsed:"{{count}} chats ocultos",showLess:"Mostrar menos",actions:"Acciones del chat {{title}}",newInProject:"Iniciar un chat nuevo en {{project}}",activity:{running:"Agent running",complete:"Agent finished",updated:"New activity"},pin:"Pin",unpin:"Unpin",rename:"Rename",renameTitle:"Rename chat",renameDescription:"Choose a local sidebar name for this chat.",renamePlaceholder:"Chat name",renameProjectTitle:"Rename project",renameProjectDescription:"Choose a local sidebar name for this project.",renameProjectPlaceholder:"Project name",renameSave:"Save",archive:"Archive",unarchive:"Unarchive",showArchived:"Show archived",hideArchived:"Hide archived",delete:"Eliminar",newChat:"Nuevo chat",groups:{pinned:"Pinned",all:"Chats",projects:"Projects",today:"Today",yesterday:"Yesterday",earlier:"Earlier",archived:"Archived"}},WR={title:"¿Eliminar este chat?",description:"Esta acción no se puede deshacer.",cancel:"Cancelar",confirm:"Eliminar",automationsDescription:"Este chat tiene automatizaciones programadas. Al eliminarlo también se eliminarán.",moreAutomations:"+ {{count}} más",confirmWithAutomations:"Eliminar",schedule:{at:"{{time}}",every:"Cada {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Programación personalizada"},next:{label:"Siguiente: {{time}}",disabled:"Pausada",none:"Sin próxima ejecución"}},qR={idle:"Inactivo",connecting:"Conectando…",open:"Conectado",reconnecting:"Reconectando…",closed:"Desconectado",error:"Error de conexión"},KR={loadingConversation:"Cargando conversación…",empty:{greetings:{workOn:"¿En qué trabajamos juntos?",start:"¿Por dónde empezamos?",build:"¿Qué construimos hoy?",tackle:"¿Qué resolvemos juntos?"},quickActions:{plan:{title:"Crear un plan de proyecto",prompt:"Crea un plan de proyecto conciso para lo que debería construir después."},analyze:{title:"Analizar estos datos",prompt:"Ayúdame a analizar estos datos y destaca los patrones más importantes."},brainstorm:{title:"Lluvia de ideas",prompt:"Propón algunas ideas prácticas y sus compensaciones para este problema."},code:{title:"Escribir código",prompt:"Ayúdame a escribir el código para esta tarea, empezando por el cambio útil más pequeño."},summarize:{title:"Resumir este documento",prompt:"Resume este documento y enumera las conclusiones clave."},more:{title:"Más",prompt:"Muéstrame algunas formas útiles en las que puedes ayudar en este workspace."}},imageQuickActions:{icon:{title:"Diseñar un icono de app",prompt:"Genera un icono de app 1:1 limpio para nanobot: robot amigable, estilo vectorial simple, paleta suave azul y blanca, sin texto."},sticker:{title:"Crear un sticker",prompt:"Genera una imagen estilo sticker de un pequeño asistente robot, con fondo de apariencia transparente, expresivo y divertido."},poster:{title:"Crear un póster",prompt:"Genera un concepto de póster pulido para un asistente personal de IA, composición moderna, jerarquía visual fuerte, apto para una landing page."},product:{title:"Mockup de producto",prompt:"Genera una imagen limpia de mockup de producto para una app web de IA conversacional, interfaz mínima, iluminación premium, marco de dispositivo realista."},portrait:{title:"Retrato estilizado",prompt:"Genera un retrato estilizado de un compañero de IA amigable, luz suave, detallado pero cercano, estilo de ilustración moderna."},edit:{title:"Editar una imagen",prompt:"Ayúdame a editar una imagen. Primero pídeme que suba o indique la imagen, y luego genera el resultado editado."}}},header:{toggleSidebar:"Mostrar u ocultar la barra lateral",newChat:"Iniciar un chat nuevo",toggleTheme:"Cambiar tema desde el encabezado",settings:"Abrir configuración",sessionInfo:"Detalles de la sesión"},sessionInfo:{title:"Sesión",untitled:"Chat sin título",automations:"Automatizaciones",count:"{{count}}",loading:"Cargando automatizaciones...",loadFailed:"No se pudieron cargar las automatizaciones.",empty:"Esta sesión aún no tiene automatizaciones.",disabled:"Desactivado",schedule:{at:"A las {{time}}",every:"Cada {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Programación personalizada"},next:{label:"Siguiente {{time}}",pending:"Se ejecutará pronto",disabled:"En pausa",none:"Sin próxima ejecución"}},composer:{placeholderThread:"Escribe tu mensaje…",placeholderHero:"¿Qué tienes en mente?",placeholderOpening:"Abriendo un nuevo chat…",placeholderStreaming:"El modelo está respondiendo…",inputAria:"Entrada de mensaje",sendHint:"Enter para enviar · Shift+Enter para nueva línea",runRuntimeTitle:"En ejecución · {{elapsed}}",goalStateStrip:"Objetivo · {{label}}",goalStateFallback:"Objetivo",goalStateExpandAria:"Ver objetivo completo",goalStateSheetTitle:"Objetivo",goalStateCloseAria:"Cerrar objetivo",send:"Enviar mensaje",stop:"Detener respuesta",modelNotConfigured:"Modelo no configurado",configureModel:"Configurar modelo",queued:{label:"Guía en cola",guide:"Guiar",delete:"Eliminar guía",edit:"Editar guía",drag:"Arrastrar para reordenar"},attachImage:"Adjuntar imagen",imageMode:{label:"Generar imagen",toggle:"Activar o desactivar modo de generación de imágenes",placeholder:"Describe o edita una imagen…",aspectAria:"Relación de aspecto de imagen",aspectLabel:"Formato de imagen",aspect:{auto:"Auto","1_1":"Cuadrado 1:1","3_4":"Vertical 3:4","9_16":"Historia 9:16","4_3":"Horizontal 4:3","16_9":"Panorámico 16:9"}},tools:{search:"Buscar",reason:"Razonar",deepResearch:"Investigación profunda",voice:"Entrada de voz"},voice:{hint:"Haz clic para dictar o mantén",stop:"Detener grabación",transcribing:"Transcribiendo...",recordingStatus:"Grabando {{time}}"},voiceErrors:{unsupported:"Este navegador no admite entrada de voz.",permission:"Se requiere permiso de micrófono.",notConfigured:"Configura primero un proveedor de transcripción.",tooLong:"La grabación es demasiado larga.",tooShort:"Mantén pulsado un poco más para grabar voz.",noInput:"No se detectó entrada del micrófono.",failed:"No se pudo transcribir el audio."},slash:{ariaLabel:"Comandos slash",label:"comandos",navigateHint:"↑↓ Navegar",selectHint:"Enter/Tab Insertar",closeHint:"Esc Cerrar",commands:{new:{title:"Nuevo chat",description:"Detiene la tarea actual e inicia una conversación nueva."},stop:{title:"Detener tarea actual",description:"Cancela el turno activo del agent en este chat."},restart:{title:"Reiniciar nanobot",description:"Reinicia el proceso del bot en el mismo lugar."},status:{title:"Mostrar estado",description:"Muestra el estado del runtime, provider y channels."},model:{title:"Modelo",description:"Muestra o cambia el preset de modelo activo."},history:{title:"Mostrar historial",description:"Imprime los últimos N mensajes persistidos de la conversación."},dream:{title:"Ejecutar Dream",description:"Activa manualmente la consolidación de memoria."},dream_log:{title:"Mostrar registro de Dream",description:"Muestra qué cambió la última consolidación Dream."},dream_restore:{title:"Restaurar memoria",description:"Revierte la memoria a una instantánea Dream anterior."},goal:{title:"Objetivo a largo plazo",description:"Indica al agente que trate esto como un objetivo sostenido en varios pasos."},help:{title:"Mostrar ayuda",description:"Lista los comandos slash disponibles."},pairing:{title:"Emparejamiento",description:"Gestiona solicitudes de emparejamiento."}},badges:{current:"Actual",recent:"Reciente"},details:{goalActive:"El objetivo está en curso",goalReady:"Iniciar un objetivo sostenido",history:"Mostrar mensajes recientes",stopRunning:"En ejecución"}},encoding:"Procesando…",remove:"Quitar adjunto",normalizedSizeHint:"{{orig}} → {{current}} (auto)",imageRejected:{unsupported_type:"Tipo de archivo no compatible",too_many_images:"Máximo {{max}} imágenes por mensaje",magic_mismatch:"El archivo no parece una imagen real",decode_failed:"No se pudo decodificar esta imagen",too_large:"Imagen demasiado grande — prueba una más pequeña",io:"No se pudo leer este archivo"},mentions:{ariaLabel:"Apps",label:"Apps",cliGroup:"Apps CLI",mcpGroup:"Servicios MCP",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"Usar @{{name}} como app CLI local",mcpDescription:"Usar @{{name}} como servidor MCP"},workspace:{accessAria:"Workspace access mode",projectAria:"Elegir proyecto",projectPlaceholder:"Seleccionar proyecto",default:"Default Permission",full:"Full Access"}},scrollToBottom:"Desplazarse al final",loadEarlier:"Cargar mensajes anteriores",forkedFromHistory:"Bifurcado desde el historial",promptNavigator:{open:"Abrir navegador de prompts",title:"Prompts",search:"Buscar prompts",noResults:"No hay prompts coincidentes.",jumpTo:"Ir al prompt: {{label}}"}},VR={streaming:"transmitiendo",assistantTyping:"El asistente está escribiendo",toolSingle:"Usando una herramienta",toolMany:"Se usaron {{count}} herramientas",toolSummary:"{{count}} herramienta",toolSummaryMany:"{{count}} herramientas",reasoningTools:"Razonamiento · {{count}} herramientas",reasoningToolsSingular:"Razonamiento · 1 herramienta",reasoning:"Razonamiento",reasoningStreaming:"Pensando…",reasoningSummary:"Razonamiento",agentActivitySummary:"{{reasoning}} pasos · {{tools}} llamadas a herramientas",agentActivityToolsOnly:"{{tools}} llamadas a herramientas",agentActivityLiveSummary:"En curso… · {{reasoning}} pasos · {{tools}} llamadas a herramientas",agentActivityLiveToolsOnly:"En curso… · {{tools}} llamadas a herramientas",imageAttachment:"Imagen adjunta",forkFromHere:"Bifurcar",copyReply:"Copiar",copiedReply:"Copiado",turnLatencyTitle:"Tiempo de respuesta (extremo a extremo)",activityThinkingFor:"Pensando durante {{duration}}",activityThought:"Pensamiento completado",activityThoughtFor:"Pensó durante {{duration}}",activityWorkingFor:"Trabajando durante {{duration}}",activityWorked:"Trabajo completado",activityWorkedFor:"Trabajó durante {{duration}}",cliActivityRunningOne:"Usando @{{name}}",cliActivityRanOne:"Usó @{{name}}",cliActivityFailedOne:"Falló @{{name}}",cliActivityRunningMany:"Usando {{count}} apps CLI",cliActivityRanMany:"Usó {{count}} apps CLI",cliActivityFailedMany:"Fallaron {{count}} apps CLI",cliRunRunning:"Usando",cliRunRan:"Usado",cliRunFailed:"Falló",automationSourceFallback:"Automatización",automationTriggered:"Activada automáticamente"},GR={title:"Vista previa de imagen",open:"Ver imagen",prev:"Imagen anterior",next:"Imagen siguiente",close:"Cerrar vista previa"},YR={aria:"Vista previa de archivo",close:"Cerrar vista previa de archivo",loading:"Cargando vista previa...",failed:"No se pudo previsualizar este archivo.",routeMissing:"La vista previa necesita el gateway más reciente. Reinicia nanobot gateway e inténtalo de nuevo.",resize:"Cambiar el tamaño de la vista previa",truncated:"La vista previa está truncada porque el archivo es grande."},QR={fallbackLanguage:"código",copyAria:"Copiar código",copy:"Copiar",copied:"Copiado"},XR={dismiss:"Cerrar"},JR={messageTooBig:{title:"Mensaje demasiado grande",body:"El servidor rechazó tu último mensaje por superar el tamaño permitido. Quita algunas imágenes o usa archivos más pequeños y vuelve a enviarlo."},workspaceScopeRejected:{title:"Workspace was not changed",body:"Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."}},ZR={dialog:{defaultProject:"Default workspace",manual:"Pegar ruta",manualPlaceholder:"/Users/name/project",usePath:"Use Path",absolutePathRequired:"Enter an absolute folder path on this machine."}},eM={app:$R,sidebar:UR,settings:BR,chat:HR,deleteConfirm:WR,connection:qR,thread:KR,message:VR,lightbox:GR,filePreview:YR,code:QR,common:XR,errors:JR,workspace:ZR},tM={brand:"nanobot",loading:{connecting:"Đang kết nối tới nanobot…",boot:"Đang tải nanobot…"},error:{title:"Không thể kết nối tới nanobot",gatewayHint:"Hãy chắc chắn gateway đang chạy (`nanobot gateway`) và trang này được mở trên cùng máy."},auth:{title:"Cần xác thực",hint:"Nhập secret được cấu hình là tokenIssueSecret trong cấu hình gateway.",placeholder:"Mật khẩu",submit:"Kết nối",invalid:"Mật khẩu không hợp lệ. Hãy thử lại."},account:{section:"Tài khoản",logoutHint:"Ngắt kết nối trình duyệt này khỏi gateway.",logout:"Đăng xuất"},system:{section:"Hệ thống",restartHint:"Khởi động lại nanobot để áp dụng thay đổi runtime.",restart:"Khởi động lại nanobot",restarting:"Đang khởi động lại...",restartEngine:"Khởi động lại engine",restartingEngine:"Đang khởi động lại engine..."},restart:{completed:"Khởi động lại hoàn tất sau {{seconds}} giây."},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"Giao diện web nanobot — trò chuyện với workspace nanobot của bạn."}},nM={navigation:"Điều hướng thanh bên",collapse:"Thu gọn thanh bên",newChat:"Cuộc trò chuyện mới",searchAria:"Tìm kiếm",searchPlaceholder:"Tìm kiếm",searchResults:"Kết quả",noSearchResults:"Không có cuộc trò chuyện phù hợp.",recent:"Gần đây",settings:"Cài đặt",language:{label:"Ngôn ngữ",ariaLabel:"Đổi ngôn ngữ"},apps:"Ứng dụng",automations:"Tự động hóa",skills:{title:"Kỹ năng"}},rM={backToChat:"Quay lại chat",sidebar:{title:"Cài đặt",ariaLabel:"Mục cài đặt"},nav:{general:"Chung",byok:"BYOK",overview:"Tổng quan",appearance:"Giao diện",models:"Mô hình",providers:"Nhà cung cấp",image:"Hình ảnh",voice:"Giọng nói",browser:"Trang web",runtime:"Hệ thống",advanced:"Bảo mật",cliApps:"Ứng dụng CLI",mcp:"MCP",apps:"Ứng dụng",automations:"Tự động hóa",skills:"Kỹ năng"},sections:{interface:"Giao diện",ai:"AI",system:"Hệ thống",about:"Giới thiệu",status:"Trạng thái",localPreferences:"Tùy chọn cục bộ",presets:"Preset",imageGeneration:"Tạo hình ảnh",imageDefaults:"Mặc định",webSearch:"Tìm kiếm web",webBehavior:"Hành vi",identity:"Danh tính",webuiSafety:"An toàn WebUI",capabilities:"Khả năng",cliApps:"Ứng dụng CLI",mcp:"Dịch vụ MCP",apps:"Ứng dụng",nativeHost:"Host gốc",hostSafety:"An toàn ứng dụng",voiceInput:"Nhap giong noi"},rows:{theme:"Chủ đề",language:"Ngôn ngữ",provider:"Nhà cung cấp",model:"Mô hình",restart:"Khởi động lại nanobot",configPath:"Đường dẫn cấu hình",activePreset:"Preset đang dùng",gateway:"Cổng",restartState:"Trạng thái khởi động lại",pendingChanges:"Thay đổi chờ áp dụng",selectedPreset:"Preset đã chọn",presetModel:"Mô hình preset",density:"Mật độ",activityMode:"Chi tiết hoạt động",codeWrap:"Xuống dòng mã",maxResults:"Kết quả tối đa",timeout:"Thời gian chờ",jinaReader:"Trình đọc Jina",imageGeneration:"Tạo hình ảnh",imageProvider:"Nhà cung cấp hình ảnh",imageProviderStatus:"Trạng thái nhà cung cấp",imageProviderBase:"Địa chỉ nhà cung cấp",imageModel:"Mô hình hình ảnh",defaultAspectRatio:"Tỷ lệ mặc định",defaultImageSize:"Kích thước mặc định",maxImagesPerTurn:"Ảnh tối đa mỗi lượt",imageSaveDir:"Thư mục lưu",botName:"Tên bot",botIcon:"Biểu tượng bot",timezone:"Múi giờ",workspacePath:"Workspace mặc định",localServiceAccess:"Dịch vụ cục bộ",webuiDefaultAccess:"Quyền mặc định",currentModel:"Cấu hình hiện tại",brandLogos:"Logo thương hiệu",cliAppsCatalog:"Danh mục",cliAppsFilter:"Bộ lọc",engine:"Bộ máy",logs:"Nhật ký",diagnostics:"Chẩn đoán",contextWindow:"Cửa sổ ngữ cảnh",transcription:"Phien am",transcriptionProvider:"Nha cung cap",transcriptionProviderStatus:"Trang thai nha cung cap",transcriptionModel:"Mo hinh",transcriptionLanguage:"Ngon ngu",voiceLimits:"Gioi han"},help:{theme:"Chuyển giữa giao diện sáng và tối.",language:"Chọn ngôn ngữ dùng trong WebUI.",provider:"Selecciona el proveedor para nuevas solicitudes de modelo.",model:"Define el nombre de modelo predeterminado de nanobot.",configPath:"Archivo de configuración que usa actualmente el gateway.",selectedPreset:"Los preajustes con nombre son de solo lectura aquí; edítalos en config.json.",presetModel:"Chuyển sang Default để chỉnh sửa mô hình và nhà cung cấp từ WebUI.",density:"Chỉ lưu trong trình duyệt này.",activityMode:"Chọn mức chi tiết hoạt động agent hiển thị mặc định.",codeWrap:"Giữ các dòng mã dài dễ đọc trên màn hình nhỏ.",maxResults:"Resultados devueltos por cada llamada web_search.",timeout:"Segundos antes de que una solicitud de búsqueda expire.",jinaReader:"Usa Jina Reader para web_fetch cuando esté disponible.",imageGeneration:"Expone generate_image en chats cuando hay un proveedor de imagen configurado.",imageProvider:"Elige el proveedor registrado usado por generate_image.",imageProviderStatus:"La generación de imágenes reutiliza credenciales de Proveedores.",imageModel:"Nombre del modelo enviado al proveedor de imágenes seleccionado.",defaultAspectRatio:"Se usa cuando el prompt no elige una proporción.",defaultImageSize:"Gợi ý kích thước gửi tới nhà cung cấp hỗ trợ.",maxImagesPerTurn:"Giới hạn trên cho một yêu cầu generate_image.",botName:"Se muestra donde nanobot usa un nombre visible.",botIcon:"Emoji o texto corto junto al nombre del bot.",timezone:"Se usa para horarios y respuestas con conciencia temporal.",localServiceAccess:"Cho phép lệnh shell Full Access truy cập dịch vụ localhost.",webuiDefaultAccess:"Dùng cho chat web không có quyền riêng theo dự án.",securityManagedControls:"Las capturas web siempre protegen servicios locales, privados y metadata. La seguridad de canales core se gestiona en config.json.",currentModel:"Dùng cho các phản hồi mới.",selectedModelProvider:"Definido por el modelo seleccionado.",selectedModelValue:"Definido por el modelo seleccionado.",brandLogos:"Hiển thị logo nhà cung cấp bên thứ ba và CLI trong Cài đặt.",cliAppsCatalog:"Instala solo adaptadores CLI de apps que nanobot puede ejecutar localmente; las apps nativas no se modifican.",cliAppsFilter:"Busca por app, categoría o capacidad.",logs:"Abre la carpeta de registros del motor nativo.",diagnostics:"Exporta un pequeño informe de runtime para soporte.",localServiceAccessNative:"Permite que comandos shell con Full Access alcancen servicios en este Mac.",webuiDefaultAccessNative:"Usado por chats nativos sin permiso específico de proyecto.",contextWindow:"Chọn ngân sách ngữ cảnh mặc định cho cấu hình mô hình này.",transcription:"Phien am dau vao micro truoc khi gui. Tin nhan giong noi tu kenh chat dung cung cai dat.",transcriptionProvider:"Dung thong tin xac thuc cua nha cung cap tu Providers.",transcriptionProviderStatus:"API key nam trong providers, khong nam trong cai dat transcription.",transcriptionModel:"Giu mac dinh da resolve tru khi nha cung cap can id model tuy chinh.",transcriptionLanguage:"Goi y ISO-639 tuy chon, nhu en, zh, ja hoac ko."},values:{light:"Sáng",dark:"Tối",notAvailable:"Không khả dụng",enabled:"Đã bật",disabled:"Đã tắt",restartPending:"Chờ khởi động lại",ready:"Sẵn sàng",privateEngine:"Bộ máy riêng",unixSocket:"Socket Unix",defaultWorkspace:"Workspace mặc định",comfortable:"Thoải mái",compact:"Gọn",auto:"Tự động",expanded:"Mở rộng",on:"Bật",off:"Tắt",defaultPermission:"Quyền mặc định",fullAccess:"Toàn quyền",configured:"Đã cấu hình",notConfigured:"Chưa cấu hình",pending:"Đang chờ",restartingEngine:"Đang khởi động lại"},status:{loading:"Đang tải cài đặt...",loadError:"Không thể tải cài đặt",unsaved:"Có thay đổi chưa lưu.",upToDate:"Đã cập nhật.",savedRestart:"Guardado. Reinicia nanobot para aplicar.",restartAfterSaving:"Guarda los cambios y reinicia cuando puedas.",savedRestartApply:"Guardado. Reinicia cuando puedas.",imageProviderRestart:"Cambios del proveedor de imagen guardados. Reinicia cuando puedas.",hostRestartAfterSaving:"Al guardar, nanobot reiniciará su motor.",hostRestartPending:"Guardado. El motor se reiniciará cuando esté listo.",hostApiUnavailable:"Las acciones del host solo están disponibles en la app nativa.",logsOpened:"Carpeta de registros abierta.",logsOpenFailed:"No se pudo abrir la carpeta de registros.",diagnosticsExported:"Diagnóstico exportado a {{path}}.",diagnosticsExportFailed:"No se pudo exportar el diagnóstico."},actions:{save:"Lưu",saving:"Đang lưu",edit:"Sửa",cancel:"Hủy",open:"Mở",export:"Xuất",opening:"Đang mở...",exporting:"Đang xuất..."},byok:{description:"Dùng key provider của riêng bạn. Nanobot đọc các giá trị này từ config hiện tại, và chỉ provider đã cấu hình mới có thể chọn trong Chung.",configured:"Đã cấu hình",notConfigured:"Chưa cấu hình",configuredSection:"Đã cấu hình",notConfiguredSection:"Chưa cấu hình",showMore:"Hiển thị thêm {{count}}",showLess:"Thu gọn",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"Nhập API key",apiKeyConfiguredPlaceholder:"Để trống để giữ key hiện tại",configuredKeyHint:"Key đã cấu hình",apiBasePlaceholder:"Dùng mặc định của provider",apiKeyRequired:"Cần API key để cấu hình provider này.",showApiKey:"Hiển thị API key",hideApiKey:"Ẩn API key",noConfiguredProviders:"Chưa có provider đã cấu hình",configureFirst:"Hãy cấu hình provider trong BYOK trước.",openByok:"Mở BYOK",tabs:{ariaLabel:"Loại thông tin xác thực BYOK",llm:"LLM",webSearch:"Tìm kiếm web"},webSearch:{provider:"Nhà cung cấp tìm kiếm",providerHelp:"Chọn backend mà công cụ web search sẽ dùng.",selectProvider:"Chọn provider",credentials:"Thông tin xác thực",noCredentialRequired:"Không cần key",noCredentialHelp:"DuckDuckGo hoạt động mà không cần lưu API key.",apiKeyHelp:"Được lưu trong config và chỉ hiện dạng che sau khi lưu.",baseUrl:"Base URL",baseUrlHelp:"SearXNG cần URL instance của bạn.",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"Provider tìm kiếm này cần API key.",baseUrlRequired:"SearXNG cần Base URL.",missingCredential:"Thêm thông tin bắt buộc trước khi lưu.",saveHint:"Thay đổi áp dụng cho các yêu cầu web search mới."}},overview:{model:"Mô hình hiện tại",providers:"Nhà cung cấp",configuredCount:"{{count}} đã cấu hình",totalProviders:"{{count}} khả dụng",webSearch:"Tìm kiếm web",imageGeneration:"Tạo hình ảnh",voiceInput:"Nhập bằng giọng nói",workspace:"Không gian làm việc"},usage:{title:"Hoạt động token",shortTitle:"Token Usage",subtitle:"Mức dùng do nhà cung cấp báo cáo trong 12 tháng gần nhất.",empty:"Hoạt động token sẽ xuất hiện sau các phản hồi mô hình mới.",totalTokens:"Tổng token",peakTokens:"Đỉnh token",thirtyDayTokens:"Token 30 ngày",currentStreak:"Chuỗi hiện tại",longestStreak:"Chuỗi dài nhất",daysValue:"{{count}} ngày",last30:"30 ngày",activeDays:"Ngày hoạt động",requests:"Yêu cầu",estimated:"ước tính",includesEstimates:"bao gồm ước tính",cellTitle:"{{date}}: {{tokens}} tokens, {{requests}} yêu cầu",sources:{user:"Trò chuyện",api:"API",cron:"Tự động hóa",dream:"Bộ nhớ",system:"Hệ thống"}},providers:{searchPlaceholder:"Tìm nhà cung cấp",noMatches:"Không có nhà cung cấp phù hợp.",saveProvider:"Lưu nhà cung cấp"},image:{selectProvider:"Chọn nhà cung cấp",selectAspect:"Chọn tỷ lệ",selectSize:"Chọn kích thước",configureProvider:"Cấu hình nhà cung cấp",missingCredential:"Configura este proveedor antes de activar la generación de imágenes."},models:{selectModel:"Chọn mô hình",addConfiguration:"Thêm cấu hình",newConfiguration:"Cấu hình mô hình mới",newConfigurationHelp:"Lưu nhà cung cấp và mô hình thành một lựa chọn nhanh.",configurationName:"Tên cấu hình",configurationNameHelp:"Đổi tên cấu hình mô hình đã lưu này.",configurationNamePlaceholder:"Viết nhanh",searchModels:"Tìm kiếm hoặc nhập ID mô hình",useCustomModel:"Dùng",loadingModels:"Đang tải mô hình...",searchCatalog:"Tìm trong danh mục nhà cung cấp để chọn mô hình.",modelsAvailable:"khả dụng",noModelResults:"Không có mô hình phù hợp.",loadFailed:"Không tải được danh sách mô hình.",unsupportedModelList:"Nhập ID mô hình thủ công.",providerNotConfigured:"Hãy cấu hình nhà cung cấp này trước khi tải mô hình.",autoProviderCustomOnly:"Chế độ nhà cung cấp tự động dùng ID mô hình tùy chỉnh."},timezone:{select:"Chọn múi giờ",search:"Tìm múi giờ",empty:"Không có múi giờ phù hợp."},cliApps:{allCategories:"Tất cả danh mục",availableCount:"{{count}} ứng dụng",installedCount:"Đã cài {{count}}",summary:"Đã cài {{installed}} / {{total}} CLI",filterAll:"Tất cả",filterInstalled:"CLI đã cài",filterNotInstalled:"Chưa cài",searchPlaceholder:"Tìm CLI",statusInstalled:"Đã cài",statusAvailable:"Có sẵn",statusMissing:"Thiếu phụ thuộc",statusUnsupported:"Không hỗ trợ",statusNotInstalled:"Chưa cài",unsupported:"Không hỗ trợ",loading:"Đang tải ứng dụng CLI...",empty:"Không có ứng dụng CLI nào khớp bộ lọc này.",readyTitle:"@{{name}} đã sẵn sàng",readyStatus:"Sẵn sàng",readyPrompt:"Dùng @{{name}} để xem CLI này làm được gì.",readyTry:"Thử @{{name}}",readyCopied:"Đã sao chép",openChat:"Mở chat",requires:"Yêu cầu",test:"Kiểm tra CLI",update:"Cập nhật CLI",uninstall:"Gỡ CLI",install:"Cài CLI",unavailable:"Không khả dụng",noDescription:"Không có mô tả."},about:{version:"Phiên bản",checking:"Đang kiểm tra...",checkForUpdates:"Kiểm tra bản cập nhật",upToDate:"Bạn đang dùng phiên bản mới nhất",updateAvailable:"Có bản cập nhật v{{version}}"},mcp:{allCategories:"Tất cả danh mục",summary:"Đã bật {{installed}} / {{total}} preset",filterAll:"Tất cả",filterInstalled:"Đã bật",filterNotInstalled:"Chưa bật",searchPlaceholder:"Tìm preset MCP",moreOptions:"Tùy chọn MCP khác",moreOptionsSubtitle:"Thêm máy chủ tùy chỉnh hoặc nhập mcp.json.",customTitle:"MCP tùy chỉnh",customSubtitle:"Thêm bất kỳ máy chủ MCP stdio, HTTP hoặc SSE nào.",customAction:"Tùy chỉnh",importAction:"Nhập",serverName:"Tên máy chủ",serverUrl:"URL",transport:"Giao thức truyền",command:"Lệnh",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"Thời gian chờ công cụ",advancedOptions:"Tùy chọn nâng cao",hideAdvanced:"Ẩn nâng cao",saveCustom:"Lưu MCP",configImport:"Nhập mcp.json",importConfig:"Nhập",restartRequired:"Khởi động lại nanobot để kết nối các công cụ MCP đã cập nhật.",toolsFound:"{{count}} công cụ",loading:"Đang tải preset MCP...",empty:"Không có preset MCP nào khớp bộ lọc này.",openDocs:"Mở tài liệu",test:"Kiểm tra",remove:"Xóa",enable:"Bật",enabled:"Đã bật",setup:"Kết nối",configure:"Kết nối",connectTitle:"Kết nối {{name}}",connectHint:"Thêm khóa từ phần cài đặt tài khoản của bạn.",saveAndEnable:"Lưu và bật",updateSetup:"Cập nhật thiết lập",configured:"đã cấu hình",keepExisting:"Để trống để giữ giá trị hiện tại",statusConfigured:"Đã cấu hình",statusMissingCredentials:"Cần khóa",statusMissingDependency:"Cần phụ thuộc",statusComingSoon:"Sắp ra mắt",statusNotInstalled:"Chưa bật",toolScope:"Công cụ",allTools:"Tất cả",noTools:"Không có",testForTools:"Chạy Kiểm tra để xem và chọn từng công cụ."},legal:{thirdPartyBrands:"Tên sản phẩm, logo và thương hiệu thuộc về chủ sở hữu tương ứng. Việc sử dụng chỉ nhằm nhận diện và không ngụ ý được xác nhận."},apps:{description:"Thêm CLI ứng dụng và dịch vụ MCP mà nanobot có thể dùng trong chat.",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"Tất cả",filterCli:"Ứng dụng CLI",filterMcp:"Dịch vụ MCP",enabledSummary:"{{count}} đã bật",caption:"{{cli}} CLI · {{mcp}} MCP",searchPlaceholder:"Tìm ứng dụng",featured:"Nổi bật",loading:"Đang tải ứng dụng...",empty:"Không có ứng dụng phù hợp."},automations:{filters:{all:"Tất cả",active:"Đang chạy",paused:"Đã tạm dừng",failed:"Cần xử lý",system:"Hệ thống"},sort:{next:"Lần chạy tiếp theo",last:"Lần chạy trước",updated:"Đã cập nhật",name:"Tên"},search:"Tìm tác vụ, tin nhắn, cuộc trò chuyện liên kết hoặc lịch",queue:"Hàng đợi",loading:"Đang tải tự động hóa...",noMatches:"Không có tự động hóa phù hợp với chế độ xem này.",empty:"Chưa có tự động hóa.",emptyHint:"Tạo từ nơi tác vụ sẽ chạy để nanobot giữ đúng ngữ cảnh.",oneShot:"Một lần",systemTask:"Tự động hóa do hệ thống quản lý",labels:{schedule:"Lịch",next:"Tiếp theo",origin:"Cuộc trò chuyện liên kết",created:"Đã tạo",updated:"Đã cập nhật"},runNow:"Chạy ngay",pause:"Tạm dừng",resume:"Tiếp tục",edit:"Sửa",delete:"Xóa",protected:"Được bảo vệ",editTitle:"Sửa tự động hóa",save:"Lưu",deleteTitle:"Xóa tự động hóa",deleteDescription:"Thao tác này xóa {{name}} khỏi kho cron. Tin nhắn chat trước đó vẫn ở trong phiên.",cancel:"Hủy",status:{system:"Hệ thống",running:"Đang chạy",paused:"Đã tạm dừng",failed:"Thất bại",completed:"Hoàn tất",noSchedule:"Không có lịch",active:"Đang chạy"},origin:{system:"Hệ thống",unknown:"Chưa liên kết cuộc trò chuyện"},channels:{api:"API",cli:"CLI",dingtalk:"DingTalk",discord:"Discord",email:"Email",feishu:"Feishu",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"WeChat",wecom:"WeCom",weixin:"WeChat",whatsapp:"WhatsApp"},schedule:{at:"Vào {{time}}",every:"Mỗi {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"Hằng ngày lúc {{time}}",weekdaysAt:"Ngày làm việc lúc {{time}}",hourlyAt:"Mỗi giờ tại :{{minute}}",hourlyWindow:"Mỗi giờ {{start}}-{{end}} tại :{{minute}}",custom:"Lịch tùy chỉnh"},next:{paused:"Đã tạm dừng",pending:"Đang chạy",none:"Không có lần chạy tiếp theo"},message:{showMore:"Hiển thị toàn bộ tin nhắn",showLess:"Thu gọn"},fields:{name:"Tên",message:"Tin nhắn",scheduleType:"Loại lịch",every:"Mỗi",unit:"Đơn vị",cronExpression:"Biểu thức cron",timezone:"Múi giờ",runAt:"Chạy lúc"},scheduleTypes:{every:"Khoảng lặp",cron:"Cron",at:"Một lần"},everyUnits:{second:"Giây",minute:"Phút",hour:"Giờ",day:"Ngày"},validation:{nameRequired:"Tên là bắt buộc.",messageRequired:"Tin nhắn là bắt buộc.",intervalRequired:"Khoảng lặp phải là số dương.",cronRequired:"Biểu thức cron là bắt buộc.",timeRequired:"Thời gian chạy là bắt buộc.",futureRequired:"Thời gian chạy phải ở tương lai."}},oauth:{authentication:"Xác thực OAuth",signIn:"Đăng nhập",signingIn:"Đang đăng nhập...",signInAgain:"Đăng nhập lại",signOut:"Đăng xuất",signedInAs:"Đã đăng nhập bằng {{account}}",signInHelp:"Inicia sesión desde este dispositivo; no se guarda API key en config.",signInRequired:"Cần đăng nhập",signInBeforeSaving:"Inicia sesión antes de guardar este proveedor OAuth como proveedor activo.",signedIn:"Đã đăng nhập",notSignedIn:"Chưa đăng nhập"},skills:{description:"Xem các kỹ năng chỉ dẫn mà agent này có thể tải trong cuộc trò chuyện.",caption:"{{available}} khả dụng · tổng {{total}}",featured:"Kỹ năng agent",empty:"Không có kỹ năng nào khả dụng.",sourceWorkspace:"Tùy chỉnh",sourceBuiltin:"Tích hợp",statusAvailable:"Khả dụng",statusUnavailable:"Không khả dụng",unavailableReason:"Thiếu: {{reason}}",openDetails:"Mở chi tiết {{name}}",loadingDetail:"Đang tải chi tiết kỹ năng...",loadFailed:"Không tải được chi tiết kỹ năng.",descriptionTitle:"Mô tả",source:"Nguồn",status:"Trạng thái",requirements:"Yêu cầu",noRequirements:"Không có yêu cầu rõ ràng.",commands:"Lệnh",environment:"Biến môi trường",missingCommands:"Thiếu CLI",missingEnvironment:"Thiếu ENV",unavailableReasonLabel:"Lý do không khả dụng",rawInstructions:"SKILL.md gốc",rawInstructionsEmpty:"Không có hướng dẫn gốc.",detailDescription:"Chi tiết cho {{name}}."},voice:{selectProvider:"Chon nha cung cap",configureProvider:"Cau hinh nha cung cap",languageAuto:"Tu dong"}},aM={fallbackTitle:"Trò chuyện {{id}}",forkTitle:"Nhánh: {{title}}",loading:"Đang tải…",noSessions:"Chưa có phiên nào.",showMore:"Hiển thị thêm {{count}}",collapsed:"Đã thu gọn {{count}} cuộc trò chuyện",showLess:"Thu gọn",actions:"Tác vụ cho cuộc trò chuyện {{title}}",newInProject:"Bắt đầu cuộc trò chuyện mới trong {{project}}",activity:{running:"Agent running",complete:"Agent finished",updated:"New activity"},pin:"Pin",unpin:"Unpin",rename:"Rename",renameTitle:"Rename chat",renameDescription:"Choose a local sidebar name for this chat.",renamePlaceholder:"Chat name",renameProjectTitle:"Rename project",renameProjectDescription:"Choose a local sidebar name for this project.",renameProjectPlaceholder:"Project name",renameSave:"Save",archive:"Archive",unarchive:"Unarchive",showArchived:"Show archived",hideArchived:"Hide archived",delete:"Xóa",newChat:"Cuộc trò chuyện mới",groups:{pinned:"Pinned",all:"Chats",projects:"Projects",today:"Today",yesterday:"Yesterday",earlier:"Earlier",archived:"Archived"}},oM={title:"Xóa cuộc trò chuyện này?",description:"Không thể hoàn tác thao tác này.",cancel:"Hủy",confirm:"Xóa",automationsDescription:"Cuộc trò chuyện này có các tự động hóa đã lên lịch. Xóa cuộc trò chuyện cũng sẽ xóa chúng.",moreAutomations:"+ {{count}} mục nữa",confirmWithAutomations:"Xóa",schedule:{at:"{{time}}",every:"Mỗi {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Lịch tùy chỉnh"},next:{label:"Tiếp theo: {{time}}",disabled:"Đã tạm dừng",none:"Không có lần chạy tiếp theo"}},sM={idle:"Rảnh",connecting:"Đang kết nối…",open:"Đã kết nối",reconnecting:"Đang kết nối lại…",closed:"Đã ngắt kết nối",error:"Lỗi kết nối"},iM={loadingConversation:"Đang tải cuộc trò chuyện…",empty:{greetings:{workOn:"Mình cùng làm gì tiếp?",start:"Hôm nay bắt đầu từ đâu?",build:"Hôm nay mình xây dựng gì?",tackle:"Mình cùng xử lý việc gì?"},quickActions:{plan:{title:"Tạo kế hoạch dự án",prompt:"Tạo một kế hoạch dự án ngắn gọn cho việc tôi nên xây dựng tiếp theo."},analyze:{title:"Phân tích dữ liệu này",prompt:"Giúp tôi phân tích dữ liệu này và chỉ ra các mẫu quan trọng nhất."},brainstorm:{title:"Động não ý tưởng",prompt:"Động não vài ý tưởng thực tế và các đánh đổi cho vấn đề này."},code:{title:"Viết mã",prompt:"Giúp tôi viết mã cho nhiệm vụ này, bắt đầu từ thay đổi hữu ích nhỏ nhất."},summarize:{title:"Tóm tắt tài liệu này",prompt:"Tóm tắt tài liệu này và liệt kê các ý chính."},more:{title:"Thêm",prompt:"Cho tôi xem vài cách hữu ích mà bạn có thể giúp trong workspace này."}},imageQuickActions:{icon:{title:"Thiết kế biểu tượng app",prompt:"Tạo một biểu tượng ứng dụng 1:1 gọn gàng cho nanobot: robot thân thiện, phong cách vector đơn giản, bảng màu xanh trắng dịu, không có chữ."},sticker:{title:"Tạo sticker",prompt:"Tạo một hình kiểu sticker dễ thương của trợ lý robot nhỏ, nền trông như trong suốt, biểu cảm và vui nhộn."},poster:{title:"Tạo poster",prompt:"Tạo một ý tưởng poster chỉn chu cho trợ lý AI cá nhân, bố cục hiện đại, phân cấp thị giác rõ, phù hợp cho landing page."},product:{title:"Mockup sản phẩm",prompt:"Tạo một hình mockup sản phẩm gọn gàng cho ứng dụng web AI hội thoại, giao diện tối giản, ánh sáng cao cấp, khung thiết bị chân thực."},portrait:{title:"Chân dung cách điệu",prompt:"Tạo chân dung cách điệu của một người bạn đồng hành AI thân thiện, ánh sáng mềm, chi tiết nhưng dễ gần, phong cách minh họa hiện đại."},edit:{title:"Chỉnh sửa ảnh",prompt:"Giúp tôi chỉnh sửa một ảnh. Trước tiên hãy yêu cầu tôi tải lên hoặc chỉ định ảnh, rồi tạo kết quả đã chỉnh sửa."}}},header:{toggleSidebar:"Bật/tắt thanh bên",newChat:"Bắt đầu chat mới",toggleTheme:"Chuyển chủ đề từ header",settings:"Mở cài đặt",sessionInfo:"Chi tiết phiên"},sessionInfo:{title:"Phiên",untitled:"Chat chưa đặt tên",automations:"Tự động hóa",count:"{{count}}",loading:"Đang tải tự động hóa...",loadFailed:"Không thể tải tự động hóa.",empty:"Phiên này chưa có tự động hóa.",disabled:"Tắt",schedule:{at:"Lúc {{time}}",every:"Mỗi {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Lịch tùy chỉnh"},next:{label:"Tiếp theo {{time}}",pending:"Sắp chạy",disabled:"Đã tạm dừng",none:"Không có lần chạy tiếp theo"}},composer:{placeholderThread:"Nhập tin nhắn…",placeholderHero:"Bạn đang nghĩ gì?",placeholderOpening:"Đang mở cuộc trò chuyện mới…",placeholderStreaming:"Mô hình đang trả lời…",inputAria:"Ô nhập tin nhắn",sendHint:"Enter để gửi · Shift+Enter để xuống dòng",runRuntimeTitle:"Đang chạy · {{elapsed}}",goalStateStrip:"Mục tiêu · {{label}}",goalStateFallback:"Mục tiêu",goalStateExpandAria:"Xem đầy đủ mục tiêu",goalStateSheetTitle:"Mục tiêu",goalStateCloseAria:"Đóng mục tiêu",send:"Gửi tin nhắn",stop:"Dừng phản hồi",modelNotConfigured:"Chưa cấu hình mô hình",configureModel:"Cấu hình mô hình",queued:{label:"Hướng dẫn đang chờ",guide:"Hướng dẫn",delete:"Xóa hướng dẫn",edit:"Sửa hướng dẫn",drag:"Kéo để sắp xếp"},attachImage:"Đính kèm ảnh",imageMode:{label:"Tạo ảnh",toggle:"Bật/tắt chế độ tạo ảnh",placeholder:"Mô tả hoặc chỉnh sửa ảnh…",aspectAria:"Tỷ lệ khung hình ảnh",aspectLabel:"Tỷ lệ ảnh",aspect:{auto:"Tự động","1_1":"Vuông 1:1","3_4":"Dọc 3:4","9_16":"Story 9:16","4_3":"Ngang 4:3","16_9":"Rộng 16:9"}},tools:{search:"Tìm kiếm",reason:"Suy luận",deepResearch:"Nghiên cứu sâu",voice:"Nhập bằng giọng nói"},voice:{hint:"Bấm để đọc chính tả hoặc nhấn giữ",stop:"Dừng ghi âm",transcribing:"Đang chép lời...",recordingStatus:"Đang ghi {{time}}"},voiceErrors:{unsupported:"Trình duyệt này không hỗ trợ nhập bằng giọng nói.",permission:"Cần quyền truy cập micrô.",notConfigured:"Hãy cấu hình nhà cung cấp chép lời trước.",tooLong:"Bản ghi âm quá dài.",tooShort:"Giữ lâu hơn một chút để ghi âm giọng nói.",noInput:"Không phát hiện đầu vào micrô.",failed:"Không thể chép lời âm thanh."},slash:{ariaLabel:"Lệnh slash",label:"lệnh",navigateHint:"↑↓ Chọn",selectHint:"Enter/Tab Chèn",closeHint:"Esc Đóng",commands:{new:{title:"Cuộc trò chuyện mới",description:"Dừng tác vụ hiện tại và bắt đầu một cuộc trò chuyện mới."},stop:{title:"Dừng tác vụ hiện tại",description:"Hủy lượt agent đang chạy trong cuộc trò chuyện này."},restart:{title:"Khởi động lại nanobot",description:"Khởi động lại tiến trình bot tại chỗ."},status:{title:"Hiển thị trạng thái",description:"Hiển thị trạng thái runtime, provider và channel."},model:{title:"Mô hình",description:"Hiển thị hoặc chuyển preset mô hình đang hoạt động."},history:{title:"Hiển thị lịch sử",description:"In N tin nhắn hội thoại đã lưu gần nhất."},dream:{title:"Chạy Dream",description:"Kích hoạt thủ công quá trình hợp nhất bộ nhớ."},dream_log:{title:"Hiển thị nhật ký Dream",description:"Hiển thị những gì lần hợp nhất Dream gần nhất đã thay đổi."},dream_restore:{title:"Khôi phục bộ nhớ",description:"Đưa bộ nhớ về một snapshot Dream trước đó."},goal:{title:"Mục tiêu dài hạn",description:"Yêu cầu agent xử lý đây là mục tiêu nhiều bước kéo dài."},help:{title:"Hiển thị trợ giúp",description:"Liệt kê các lệnh slash có sẵn."},pairing:{title:"Ghép nối",description:"Quản lý yêu cầu ghép nối."}},badges:{current:"Hiện tại",recent:"Gần đây"},details:{goalActive:"Mục tiêu đang chạy",goalReady:"Bắt đầu mục tiêu duy trì",history:"Hiển thị tin nhắn gần đây",stopRunning:"Đang chạy"}},encoding:"Đang xử lý…",remove:"Xóa tệp đính kèm",normalizedSizeHint:"{{orig}} → {{current}} (tự động)",imageRejected:{unsupported_type:"Loại tệp không được hỗ trợ",too_many_images:"Tối đa {{max}} ảnh mỗi tin nhắn",magic_mismatch:"Tệp này không phải là một ảnh thực",decode_failed:"Không thể giải mã ảnh này",too_large:"Ảnh quá lớn — hãy thử ảnh nhỏ hơn",io:"Không thể đọc tệp này"},mentions:{ariaLabel:"Ứng dụng",label:"Ứng dụng",cliGroup:"Ứng dụng CLI",mcpGroup:"Dịch vụ MCP",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"Dùng @{{name}} như ứng dụng CLI cục bộ",mcpDescription:"Dùng @{{name}} như máy chủ MCP"},workspace:{accessAria:"Workspace access mode",projectAria:"Chọn dự án",projectPlaceholder:"Chọn dự án",default:"Default Permission",full:"Full Access"}},scrollToBottom:"Cuộn xuống cuối",loadEarlier:"Tải tin nhắn trước đó",forkedFromHistory:"Tách nhánh từ lịch sử",promptNavigator:{open:"Mở trình điều hướng prompt",title:"Prompt",search:"Tìm prompt",noResults:"Không có prompt phù hợp.",jumpTo:"Nhảy tới prompt: {{label}}"}},lM={streaming:"đang truyền",assistantTyping:"Trợ lý đang nhập",toolSingle:"Đang dùng một công cụ",toolMany:"Đã dùng {{count}} công cụ",toolSummary:"{{count}} công cụ",toolSummaryMany:"{{count}} công cụ",reasoningTools:"Suy luận · {{count}} công cụ",reasoningToolsSingular:"Suy luận · 1 công cụ",reasoning:"Suy luận",reasoningStreaming:"Đang suy nghĩ…",reasoningSummary:"Suy luận",agentActivitySummary:"{{reasoning}} bước · {{tools}} lần gọi công cụ",agentActivityToolsOnly:"{{tools}} lần gọi công cụ",agentActivityLiveSummary:"Đang chạy… · {{reasoning}} bước · {{tools}} lần gọi công cụ",agentActivityLiveToolsOnly:"Đang chạy… · {{tools}} lần gọi công cụ",imageAttachment:"Tệp hình ảnh đính kèm",forkFromHere:"Tách nhánh",copyReply:"Sao chép",copiedReply:"Đã sao chép",turnLatencyTitle:"Thời gian phản hồi (end-to-end)",activityThinkingFor:"Đang suy nghĩ trong {{duration}}",activityThought:"Đã suy nghĩ",activityThoughtFor:"Đã suy nghĩ trong {{duration}}",activityWorkingFor:"Đang xử lý trong {{duration}}",activityWorked:"Đã xử lý",activityWorkedFor:"Đã xử lý trong {{duration}}",cliActivityRunningOne:"Đang dùng @{{name}}",cliActivityRanOne:"Đã dùng @{{name}}",cliActivityFailedOne:"@{{name}} thất bại",cliActivityRunningMany:"Đang dùng {{count}} ứng dụng CLI",cliActivityRanMany:"Đã dùng {{count}} ứng dụng CLI",cliActivityFailedMany:"{{count}} ứng dụng CLI thất bại",cliRunRunning:"Đang dùng",cliRunRan:"Đã dùng",cliRunFailed:"Thất bại",automationSourceFallback:"Tự động hóa",automationTriggered:"Tự động kích hoạt"},cM={title:"Xem trước ảnh",open:"Xem ảnh",prev:"Ảnh trước",next:"Ảnh tiếp theo",close:"Đóng xem trước"},uM={aria:"Xem trước tệp",close:"Đóng xem trước tệp",loading:"Đang tải bản xem trước...",failed:"Không thể xem trước tệp này.",routeMissing:"Xem trước tệp cần gateway mới nhất. Hãy khởi động lại nanobot gateway rồi thử lại.",resize:"Đổi kích thước bản xem trước tệp",truncated:"Bản xem trước bị cắt vì tệp này lớn."},dM={fallbackLanguage:"mã",copyAria:"Sao chép mã",copy:"Sao chép",copied:"Đã sao chép"},pM={dismiss:"Đóng"},mM={messageTooBig:{title:"Tin nhắn quá lớn",body:"Máy chủ đã từ chối tin nhắn trước vì vượt quá giới hạn kích thước. Hãy bớt ảnh hoặc chọn tệp nhỏ hơn rồi thử lại."},workspaceScopeRejected:{title:"Workspace was not changed",body:"Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."}},fM={dialog:{defaultProject:"Default workspace",manual:"Dán đường dẫn",manualPlaceholder:"/Users/name/project",usePath:"Use Path",absolutePathRequired:"Enter an absolute folder path on this machine."}},hM={app:tM,sidebar:nM,settings:rM,chat:aM,deleteConfirm:oM,connection:sM,thread:iM,message:lM,lightbox:cM,filePreview:uM,code:dM,common:pM,errors:mM,workspace:fM},gM={brand:"nanobot",loading:{connecting:"Menghubungkan ke nanobot…",boot:"Memuat nanobot…"},error:{title:"Tidak dapat menjangkau nanobot",gatewayHint:"Pastikan gateway sedang berjalan (`nanobot gateway`) dan halaman ini dibuka pada mesin yang sama."},auth:{title:"Autentikasi diperlukan",hint:"Masukkan secret yang dikonfigurasi sebagai tokenIssueSecret di konfigurasi gateway.",placeholder:"Kata sandi",submit:"Hubungkan",invalid:"Kata sandi tidak valid. Coba lagi."},account:{section:"Akun",logoutHint:"Putuskan browser ini dari gateway.",logout:"Keluar"},system:{section:"Sistem",restartHint:"Mulai ulang nanobot untuk menerapkan perubahan runtime.",restart:"Mulai ulang nanobot",restarting:"Memulai ulang...",restartEngine:"Mulai ulang engine",restartingEngine:"Memulai ulang engine..."},restart:{completed:"Mulai ulang selesai dalam {{seconds}} dtk."},documentTitle:{base:"nanobot",chat:"{{title}} · nanobot"},meta:{description:"UI web nanobot — ngobrol dengan workspace nanobot Anda."}},vM={navigation:"Navigasi bilah samping",collapse:"Ciutkan sidebar",newChat:"Obrolan baru",searchAria:"Cari",searchPlaceholder:"Cari",searchResults:"Hasil",noSearchResults:"Tidak ada chat yang cocok.",recent:"Terbaru",settings:"Pengaturan",language:{label:"Bahasa",ariaLabel:"Ganti bahasa"},apps:"Aplikasi",automations:"Otomasi",skills:{title:"Skill"}},xM={backToChat:"Kembali ke chat",sidebar:{title:"Pengaturan",ariaLabel:"Bagian pengaturan"},nav:{general:"Umum",byok:"BYOK",overview:"Ikhtisar",appearance:"Tampilan",models:"Model",providers:"Penyedia",image:"Gambar",voice:"Suara",browser:"Internet",runtime:"Sistem",advanced:"Keamanan",cliApps:"Aplikasi CLI",mcp:"MCP",apps:"Aplikasi",automations:"Otomasi",skills:"Skill"},sections:{interface:"Antarmuka",ai:"AI",system:"Sistem",about:"Tentang",status:"Status",localPreferences:"Preferensi lokal",presets:"Preset",imageGeneration:"Pembuatan gambar",imageDefaults:"Default",webSearch:"Pencarian web",webBehavior:"Perilaku",identity:"Identitas",webuiSafety:"Keamanan WebUI",capabilities:"Kemampuan",cliApps:"Aplikasi CLI",mcp:"Layanan MCP",apps:"Aplikasi",nativeHost:"Host native",hostSafety:"Keamanan aplikasi",voiceInput:"Input suara"},rows:{theme:"Tema",language:"Bahasa",provider:"Penyedia",model:"Model",restart:"Mulai ulang nanobot",configPath:"Path konfigurasi",activePreset:"Preset aktif",gateway:"Gerbang",restartState:"Status mulai ulang",pendingChanges:"Perubahan tertunda",selectedPreset:"Preset terpilih",presetModel:"Model preset",density:"Kerapatan",activityMode:"Detail aktivitas",codeWrap:"Bungkus kode",maxResults:"Hasil maksimum",timeout:"Batas waktu",jinaReader:"Pembaca Jina",imageGeneration:"Pembuatan gambar",imageProvider:"Penyedia gambar",imageProviderStatus:"Status penyedia",imageProviderBase:"Basis penyedia",imageModel:"Model gambar",defaultAspectRatio:"Rasio default",defaultImageSize:"Ukuran default",maxImagesPerTurn:"Maks. gambar per giliran",imageSaveDir:"Direktori simpan",botName:"Nama bot",botIcon:"Ikon bot",timezone:"Zona waktu",workspacePath:"Workspace default",localServiceAccess:"Layanan lokal",webuiDefaultAccess:"Akses default",currentModel:"Konfigurasi saat ini",brandLogos:"Logo merek",cliAppsCatalog:"Katalog",cliAppsFilter:"Saring",engine:"Mesin",logs:"Log",diagnostics:"Diagnostik",contextWindow:"Jendela konteks",transcription:"Transkripsi",transcriptionProvider:"Penyedia",transcriptionProviderStatus:"Status penyedia",transcriptionModel:"Model",transcriptionLanguage:"Bahasa",voiceLimits:"Batas"},help:{theme:"Beralih antara tampilan terang dan gelap.",language:"Pilih bahasa yang digunakan WebUI.",provider:"Selecciona el proveedor para nuevas solicitudes de modelo.",model:"Define el nombre de modelo predeterminado de nanobot.",configPath:"Archivo de configuración que usa actualmente el gateway.",selectedPreset:"Los preajustes con nombre son de solo lectura aquí; edítalos en config.json.",presetModel:"Beralih ke Default untuk mengedit model dan penyedia dari WebUI.",density:"Hanya disimpan di browser ini.",activityMode:"Pilih seberapa banyak detail aktivitas agen yang ditampilkan secara default.",codeWrap:"Menjaga baris kode panjang tetap terbaca di layar kecil.",maxResults:"Resultados devueltos por cada llamada web_search.",timeout:"Segundos antes de que una solicitud de búsqueda expire.",jinaReader:"Usa Jina Reader para web_fetch cuando esté disponible.",imageGeneration:"Expone generate_image en chats cuando hay un proveedor de imagen configurado.",imageProvider:"Elige el proveedor registrado usado por generate_image.",imageProviderStatus:"La generación de imágenes reutiliza credenciales de Proveedores.",imageModel:"Nombre del modelo enviado al proveedor de imágenes seleccionado.",defaultAspectRatio:"Se usa cuando el prompt no elige una proporción.",defaultImageSize:"Petunjuk ukuran yang dikirim ke penyedia yang mendukungnya.",maxImagesPerTurn:"Batas atas untuk satu permintaan generate_image.",botName:"Se muestra donde nanobot usa un nombre visible.",botIcon:"Emoji o texto corto junto al nombre del bot.",timezone:"Se usa para horarios y respuestas con conciencia temporal.",localServiceAccess:"Izinkan perintah shell Full Access menjangkau layanan localhost.",webuiDefaultAccess:"Digunakan oleh chat web tanpa izin khusus proyek.",securityManagedControls:"Las capturas web siempre protegen servicios locales, privados y metadata. La seguridad de canales core se gestiona en config.json.",currentModel:"Digunakan untuk balasan baru.",selectedModelProvider:"Definido por el modelo seleccionado.",selectedModelValue:"Definido por el modelo seleccionado.",brandLogos:"Tampilkan logo penyedia pihak ketiga dan CLI di Pengaturan.",cliAppsCatalog:"Instala solo adaptadores CLI de apps que nanobot puede ejecutar localmente; las apps nativas no se modifican.",cliAppsFilter:"Busca por app, categoría o capacidad.",logs:"Abre la carpeta de registros del motor nativo.",diagnostics:"Exporta un pequeño informe de runtime para soporte.",localServiceAccessNative:"Permite que comandos shell con Full Access alcancen servicios en este Mac.",webuiDefaultAccessNative:"Usado por chats nativos sin permiso específico de proyecto.",contextWindow:"Pilih anggaran konteks default untuk konfigurasi model ini.",transcription:"Transkripsikan input mikrofon sebelum dikirim. Pesan suara channel memakai pengaturan yang sama.",transcriptionProvider:"Menggunakan kredensial penyedia yang sesuai dari Providers.",transcriptionProviderStatus:"API key tetap berada di providers, bukan di pengaturan transkripsi.",transcriptionModel:"Biarkan memakai default yang teresolusi kecuali penyedia membutuhkan id model khusus.",transcriptionLanguage:"Petunjuk ISO-639 opsional, seperti en, zh, ja, atau ko."},values:{light:"Terang",dark:"Gelap",notAvailable:"Tidak tersedia",enabled:"Aktif",disabled:"Nonaktif",restartPending:"Menunggu mulai ulang",ready:"Siap",privateEngine:"Mesin privat",unixSocket:"Soket Unix",defaultWorkspace:"Workspace default",comfortable:"Nyaman",compact:"Ringkas",auto:"Otomatis",expanded:"Diperluas",on:"Aktif",off:"Nonaktif",defaultPermission:"Izin default",fullAccess:"Akses penuh",configured:"Terkonfigurasi",notConfigured:"Belum dikonfigurasi",pending:"Tertunda",restartingEngine:"Memulai ulang"},status:{loading:"Memuat pengaturan...",loadError:"Tidak dapat memuat pengaturan",unsaved:"Perubahan belum disimpan.",upToDate:"Sudah terbaru.",savedRestart:"Guardado. Reinicia nanobot para aplicar.",restartAfterSaving:"Guarda los cambios y reinicia cuando puedas.",savedRestartApply:"Guardado. Reinicia cuando puedas.",imageProviderRestart:"Cambios del proveedor de imagen guardados. Reinicia cuando puedas.",hostRestartAfterSaving:"Al guardar, nanobot reiniciará su motor.",hostRestartPending:"Guardado. El motor se reiniciará cuando esté listo.",hostApiUnavailable:"Las acciones del host solo están disponibles en la app nativa.",logsOpened:"Carpeta de registros abierta.",logsOpenFailed:"No se pudo abrir la carpeta de registros.",diagnosticsExported:"Diagnóstico exportado a {{path}}.",diagnosticsExportFailed:"No se pudo exportar el diagnóstico."},actions:{save:"Simpan",saving:"Menyimpan",edit:"Edit",cancel:"Batal",open:"Buka",export:"Ekspor",opening:"Membuka...",exporting:"Mengekspor..."},byok:{description:"Gunakan kunci provider Anda sendiri. Nanobot membaca nilai ini dari config saat ini, dan hanya provider yang sudah dikonfigurasi yang bisa dipilih di Umum.",configured:"Terkonfigurasi",notConfigured:"Belum dikonfigurasi",configuredSection:"Terkonfigurasi",notConfiguredSection:"Belum dikonfigurasi",showMore:"Tampilkan {{count}} lagi",showLess:"Tampilkan lebih sedikit",apiKey:"API key",apiBase:"API base",apiKeyPlaceholder:"Masukkan API key",apiKeyConfiguredPlaceholder:"Kosongkan untuk mempertahankan key saat ini",configuredKeyHint:"Key terkonfigurasi",apiBasePlaceholder:"Gunakan default provider",apiKeyRequired:"API key diperlukan untuk mengonfigurasi provider ini.",showApiKey:"Tampilkan API key",hideApiKey:"Sembunyikan API key",noConfiguredProviders:"Belum ada provider terkonfigurasi",configureFirst:"Konfigurasikan provider di BYOK terlebih dahulu.",openByok:"Buka BYOK",tabs:{ariaLabel:"Jenis kredensial BYOK",llm:"LLM",webSearch:"Pencarian web"},webSearch:{provider:"Penyedia pencarian",providerHelp:"Pilih backend yang digunakan alat web search.",selectProvider:"Pilih provider",credentials:"Kredensial",noCredentialRequired:"Tidak perlu key",noCredentialHelp:"DuckDuckGo berfungsi tanpa menyimpan API key.",apiKeyHelp:"Disimpan di config dan ditampilkan tersamarkan setelah disimpan.",baseUrl:"Base URL",baseUrlHelp:"SearXNG memerlukan URL instance Anda sendiri.",baseUrlPlaceholder:"https://search.example.com",apiKeyRequired:"Provider pencarian ini memerlukan API key.",baseUrlRequired:"SearXNG memerlukan Base URL.",missingCredential:"Tambahkan kredensial yang diperlukan sebelum menyimpan.",saveHint:"Perubahan berlaku untuk permintaan web search baru."}},overview:{model:"Model saat ini",providers:"Penyedia",configuredCount:"{{count}} dikonfigurasi",totalProviders:"{{count}} tersedia",webSearch:"Pencarian web",imageGeneration:"Pembuatan gambar",voiceInput:"Input suara",workspace:"Ruang kerja"},usage:{title:"Aktivitas token",shortTitle:"Token Usage",subtitle:"Penggunaan yang dilaporkan penyedia selama 12 bulan terakhir.",empty:"Aktivitas token akan muncul setelah balasan model baru.",totalTokens:"Total token",peakTokens:"Puncak token",thirtyDayTokens:"Token 30 hari",currentStreak:"Rentetan saat ini",longestStreak:"Rentetan terpanjang",daysValue:"{{count}} h",last30:"30 hari",activeDays:"Hari aktif",requests:"Permintaan",estimated:"perkiraan",includesEstimates:"termasuk perkiraan",cellTitle:"{{date}}: {{tokens}} token, {{requests}} permintaan",sources:{user:"Chat",api:"API",cron:"Otomasi",dream:"Memori",system:"Sistem"}},providers:{searchPlaceholder:"Cari penyedia",noMatches:"Tidak ada penyedia yang cocok.",saveProvider:"Simpan penyedia"},image:{selectProvider:"Pilih penyedia",selectAspect:"Pilih rasio",selectSize:"Pilih ukuran",configureProvider:"Konfigurasi penyedia",missingCredential:"Configura este proveedor antes de activar la generación de imágenes."},models:{selectModel:"Pilih model",addConfiguration:"Tambah konfigurasi",newConfiguration:"Konfigurasi model baru",newConfigurationHelp:"Simpan penyedia dan model sebagai opsi sekali klik.",configurationName:"Nama konfigurasi",configurationNameHelp:"Ganti nama konfigurasi model tersimpan ini.",configurationNamePlaceholder:"Menulis cepat",searchModels:"Cari atau ketik ID model",useCustomModel:"Gunakan",loadingModels:"Memuat model...",searchCatalog:"Cari katalog penyedia untuk memilih model.",modelsAvailable:"tersedia",noModelResults:"Tidak ada model yang cocok.",loadFailed:"Daftar model tidak tersedia.",unsupportedModelList:"Ketik ID model secara manual.",providerNotConfigured:"Konfigurasikan penyedia ini sebelum memuat model.",autoProviderCustomOnly:"Mode penyedia otomatis memakai ID model kustom."},timezone:{select:"Pilih zona waktu",search:"Cari zona waktu",empty:"Tidak ada zona waktu yang cocok."},cliApps:{allCategories:"Semua kategori",availableCount:"{{count}} aplikasi",installedCount:"{{count}} terpasang",summary:"{{installed}} dari {{total}} CLI terpasang",filterAll:"Semua",filterInstalled:"CLI terpasang",filterNotInstalled:"Belum terpasang",searchPlaceholder:"Cari CLI",statusInstalled:"Terpasang",statusAvailable:"Tersedia",statusMissing:"Dependensi hilang",statusUnsupported:"Tidak didukung",statusNotInstalled:"Belum terpasang",unsupported:"Tidak didukung",loading:"Memuat aplikasi CLI...",empty:"Tidak ada aplikasi CLI yang cocok dengan filter ini.",readyTitle:"@{{name}} siap",readyStatus:"Siap",readyPrompt:"Gunakan @{{name}} untuk melihat kemampuan CLI ini.",readyTry:"Coba @{{name}}",readyCopied:"Disalin",openChat:"Buka chat",requires:"Membutuhkan",test:"Uji CLI",update:"Perbarui CLI",uninstall:"Copot CLI",install:"Pasang CLI",unavailable:"Tidak tersedia",noDescription:"Tidak ada deskripsi."},about:{version:"Versi",checking:"Memeriksa pembaruan...",checkForUpdates:"Periksa pembaruan",upToDate:"Anda sudah menggunakan versi terbaru",updateAvailable:"Pembaruan tersedia v{{version}}"},mcp:{allCategories:"Semua kategori",summary:"{{installed}} dari {{total}} preset diaktifkan",filterAll:"Semua",filterInstalled:"Aktif",filterNotInstalled:"Tidak aktif",searchPlaceholder:"Cari preset MCP",moreOptions:"Opsi MCP lainnya",moreOptionsSubtitle:"Tambahkan server khusus atau impor mcp.json.",customTitle:"MCP khusus",customSubtitle:"Tambahkan server MCP stdio, HTTP, atau SSE apa pun.",customAction:"Khusus",importAction:"Impor",serverName:"Nama server",serverUrl:"URL",transport:"Transport",command:"Perintah",args:"Args JSON",headers:"Headers JSON",env:"Env JSON",timeout:"Batas waktu alat",advancedOptions:"Opsi lanjutan",hideAdvanced:"Sembunyikan lanjutan",saveCustom:"Simpan MCP",configImport:"Impor mcp.json",importConfig:"Impor",restartRequired:"Mulai ulang nanobot untuk menyambungkan alat MCP yang diperbarui.",toolsFound:"{{count}} alat",loading:"Memuat preset MCP...",empty:"Tidak ada preset MCP yang cocok dengan filter ini.",openDocs:"Buka dokumentasi",test:"Uji",remove:"Hapus",enable:"Aktifkan",enabled:"Aktif",setup:"Hubungkan",configure:"Hubungkan",connectTitle:"Hubungkan {{name}}",connectHint:"Tambahkan kunci dari pengaturan akun Anda.",saveAndEnable:"Simpan dan aktifkan",updateSetup:"Perbarui konfigurasi",configured:"terkonfigurasi",keepExisting:"Biarkan kosong untuk mempertahankan nilai saat ini",statusConfigured:"Terkonfigurasi",statusMissingCredentials:"Butuh kunci",statusMissingDependency:"Butuh dependensi",statusComingSoon:"Segera hadir",statusNotInstalled:"Tidak aktif",toolScope:"Alat",allTools:"Semua",noTools:"Tidak ada",testForTools:"Jalankan Uji untuk memeriksa dan memilih alat individual."},legal:{thirdPartyBrands:"Nama produk, logo, dan merek adalah milik pemiliknya masing-masing. Penggunaan hanya untuk identifikasi dan tidak menyiratkan dukungan."},apps:{description:"Tambahkan CLI aplikasi dan layanan MCP yang dapat digunakan nanobot dari chat.",cliLabel:"CLI",mcpLabel:"MCP",filterAll:"Semua",filterCli:"Aplikasi CLI",filterMcp:"Layanan MCP",enabledSummary:"{{count}} aktif",caption:"{{cli}} CLI · {{mcp}} MCP",searchPlaceholder:"Cari aplikasi",featured:"Unggulan",loading:"Memuat aplikasi...",empty:"Tidak ada aplikasi yang cocok."},automations:{filters:{all:"Semua",active:"Aktif",paused:"Dijeda",failed:"Perlu ditangani",system:"Sistem"},sort:{next:"Jalankan berikutnya",last:"Jalankan terakhir",updated:"Diperbarui",name:"Nama"},search:"Cari tugas, pesan, chat terkait, atau jadwal",queue:"Antrean",loading:"Memuat otomasi...",noMatches:"Tidak ada otomasi yang cocok dengan tampilan ini.",empty:"Belum ada otomasi.",emptyHint:"Buat dari tempat tugas ini berjalan agar nanobot menyimpan konteks yang tepat.",oneShot:"Satu kali",systemTask:"Automasi yang dikelola sistem",labels:{schedule:"Jadwal",next:"Berikutnya",origin:"Chat tertaut",created:"Dibuat",updated:"Diperbarui"},runNow:"Jalankan sekarang",pause:"Jeda",resume:"Lanjutkan",edit:"Edit",delete:"Hapus",protected:"Terlindungi",editTitle:"Edit otomasi",save:"Simpan",deleteTitle:"Hapus otomasi",deleteDescription:"Ini menghapus {{name}} dari penyimpanan cron. Pesan chat sebelumnya tetap ada di sesi.",cancel:"Batal",status:{system:"Sistem",running:"Sedang berjalan",paused:"Dijeda",failed:"Gagal",completed:"Selesai",noSchedule:"Tanpa jadwal",active:"Aktif"},origin:{system:"Sistem",unknown:"Tidak ada chat tertaut"},channels:{api:"API",cli:"CLI",dingtalk:"DingTalk",discord:"Discord",email:"Email",feishu:"Feishu",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"WeChat",wecom:"WeCom",weixin:"WeChat",whatsapp:"WhatsApp"},schedule:{at:"Pada {{time}}",every:"Setiap {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",withTz:"{{summary}} · {{tz}}",dailyAt:"Setiap hari pukul {{time}}",weekdaysAt:"Hari kerja pukul {{time}}",hourlyAt:"Setiap jam pada :{{minute}}",hourlyWindow:"Setiap jam {{start}}-{{end}} pada :{{minute}}",custom:"Jadwal khusus"},next:{paused:"Dijeda",pending:"Sedang berjalan",none:"Tidak ada jadwal berikutnya"},message:{showMore:"Tampilkan pesan lengkap",showLess:"Tampilkan lebih sedikit"},fields:{name:"Nama",message:"Pesan",scheduleType:"Jenis jadwal",every:"Setiap",unit:"Unit",cronExpression:"Ekspresi cron",timezone:"Zona waktu",runAt:"Jalankan pada"},scheduleTypes:{every:"Interval",cron:"Cron",at:"Sekali"},everyUnits:{second:"Detik",minute:"Menit",hour:"Jam",day:"Hari"},validation:{nameRequired:"Nama wajib diisi.",messageRequired:"Pesan wajib diisi.",intervalRequired:"Interval harus berupa angka positif.",cronRequired:"Ekspresi cron wajib diisi.",timeRequired:"Waktu eksekusi wajib diisi.",futureRequired:"Waktu eksekusi harus berada di masa depan."}},oauth:{authentication:"Autentikasi OAuth",signIn:"Masuk",signingIn:"Masuk...",signInAgain:"Masuk lagi",signOut:"Keluar",signedInAs:"Masuk sebagai {{account}}",signInHelp:"Inicia sesión desde este dispositivo; no se guarda API key en config.",signInRequired:"Perlu masuk",signInBeforeSaving:"Inicia sesión antes de guardar este proveedor OAuth como proveedor activo.",signedIn:"Sudah masuk",notSignedIn:"Belum masuk"},skills:{description:"Tinjau skill instruksi yang dapat dimuat agent ini selama percakapan.",caption:"{{available}} tersedia · {{total}} total",featured:"Skill agent",empty:"Tidak ada skill yang tersedia.",sourceWorkspace:"Kustom",sourceBuiltin:"Bawaan",statusAvailable:"Tersedia",statusUnavailable:"Tidak tersedia",unavailableReason:"Kurang: {{reason}}",openDetails:"Buka detail {{name}}",loadingDetail:"Memuat detail skill...",loadFailed:"Tidak dapat memuat detail skill.",descriptionTitle:"Deskripsi",source:"Sumber",status:"Status",requirements:"Kebutuhan",noRequirements:"Tidak ada kebutuhan eksplisit.",commands:"Perintah",environment:"Variabel lingkungan",missingCommands:"CLI hilang",missingEnvironment:"ENV hilang",unavailableReasonLabel:"Alasan tidak tersedia",rawInstructions:"SKILL.md mentah",rawInstructionsEmpty:"Tidak ada instruksi mentah.",detailDescription:"Detail untuk {{name}}."},voice:{selectProvider:"Pilih penyedia",configureProvider:"Konfigurasi penyedia",languageAuto:"Auto"}},yM={fallbackTitle:"Obrolan {{id}}",forkTitle:"Cabang: {{title}}",loading:"Memuat…",noSessions:"Belum ada sesi.",showMore:"Tampilkan {{count}} lagi",collapsed:"{{count}} obrolan diciutkan",showLess:"Tampilkan lebih sedikit",actions:"Aksi obrolan untuk {{title}}",newInProject:"Mulai obrolan baru di {{project}}",activity:{running:"Agent running",complete:"Agent finished",updated:"New activity"},pin:"Pin",unpin:"Unpin",rename:"Rename",renameTitle:"Rename chat",renameDescription:"Choose a local sidebar name for this chat.",renamePlaceholder:"Chat name",renameProjectTitle:"Rename project",renameProjectDescription:"Choose a local sidebar name for this project.",renameProjectPlaceholder:"Project name",renameSave:"Save",archive:"Archive",unarchive:"Unarchive",showArchived:"Show archived",hideArchived:"Hide archived",delete:"Hapus",newChat:"Obrolan baru",groups:{pinned:"Pinned",all:"Chats",projects:"Projects",today:"Today",yesterday:"Yesterday",earlier:"Earlier",archived:"Archived"}},bM={title:"Hapus obrolan ini?",description:"Tindakan ini tidak dapat dibatalkan.",cancel:"Batal",confirm:"Hapus",automationsDescription:"Obrolan ini memiliki automasi terjadwal. Menghapusnya juga akan menghapus automasi tersebut.",moreAutomations:"+ {{count}} lagi",confirmWithAutomations:"Hapus",schedule:{at:"{{time}}",every:"Setiap {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Jadwal khusus"},next:{label:"Berikutnya: {{time}}",disabled:"Dijeda",none:"Tidak ada jadwal berikutnya"}},wM={idle:"Idle",connecting:"Menghubungkan…",open:"Terhubung",reconnecting:"Menyambung ulang…",closed:"Terputus",error:"Kesalahan koneksi"},kM={loadingConversation:"Memuat percakapan…",empty:{greetings:{workOn:"Apa yang kita kerjakan bersama?",start:"Kita mulai dari mana?",build:"Apa yang kita bangun hari ini?",tackle:"Apa yang kita selesaikan bersama?"},quickActions:{plan:{title:"Buat rencana proyek",prompt:"Buat rencana proyek ringkas untuk apa yang sebaiknya saya bangun berikutnya."},analyze:{title:"Analisis data ini",prompt:"Bantu saya menganalisis data ini dan soroti pola yang paling penting."},brainstorm:{title:"Brainstorm ide",prompt:"Brainstorm beberapa ide praktis dan tradeoff untuk masalah ini."},code:{title:"Tulis kode",prompt:"Bantu saya menulis kode untuk tugas ini, mulai dari perubahan berguna yang paling kecil."},summarize:{title:"Ringkas dokumen ini",prompt:"Ringkas dokumen ini dan daftar poin-poin utamanya."},more:{title:"Lainnya",prompt:"Tunjukkan beberapa cara berguna Anda dapat membantu di workspace ini."}},imageQuickActions:{icon:{title:"Desain ikon aplikasi",prompt:"Buat ikon aplikasi 1:1 yang bersih untuk nanobot: robot ramah, gaya vektor sederhana, palet biru dan putih lembut, tanpa teks."},sticker:{title:"Buat stiker",prompt:"Buat gambar gaya stiker yang lucu dari asisten robot kecil, latar terlihat transparan, ekspresif dan menyenangkan."},poster:{title:"Buat poster",prompt:"Buat konsep poster yang rapi untuk asisten AI pribadi, komposisi modern, hierarki visual kuat, cocok untuk landing page."},product:{title:"Mockup produk",prompt:"Buat gambar mockup produk yang bersih untuk aplikasi web AI percakapan, antarmuka minimal, pencahayaan premium, bingkai perangkat realistis."},portrait:{title:"Potret bergaya",prompt:"Buat potret bergaya dari pendamping AI yang ramah, pencahayaan lembut, detail tetapi tetap mudah didekati, gaya ilustrasi modern."},edit:{title:"Edit gambar",prompt:"Bantu saya mengedit gambar. Minta saya mengunggah atau menyebutkan gambar terlebih dahulu, lalu buat hasil editnya."}}},header:{toggleSidebar:"Tampilkan atau sembunyikan sidebar",newChat:"Mulai chat baru",toggleTheme:"Alihkan tema dari header",settings:"Buka pengaturan",sessionInfo:"Detail sesi"},sessionInfo:{title:"Sesi",untitled:"Chat tanpa judul",automations:"Otomasi",count:"{{count}}",loading:"Memuat otomasi...",loadFailed:"Tidak dapat memuat otomasi.",empty:"Belum ada otomasi dalam sesi ini.",disabled:"Mati",schedule:{at:"Pada {{time}}",every:"Setiap {{duration}}",cron:"Cron {{expr}}",cronWithTz:"Cron {{expr}} · {{tz}}",unknown:"Jadwal khusus"},next:{label:"Berikutnya {{time}}",pending:"Segera berjalan",disabled:"Dijeda",none:"Tidak ada jadwal berikutnya"}},composer:{placeholderThread:"Ketik pesan Anda…",placeholderHero:"Apa yang sedang Anda pikirkan?",placeholderOpening:"Membuka obrolan baru…",placeholderStreaming:"Model sedang merespons…",inputAria:"Input pesan",sendHint:"Enter untuk kirim · Shift+Enter untuk baris baru",runRuntimeTitle:"Berjalan · {{elapsed}}",goalStateStrip:"Tujuan · {{label}}",goalStateFallback:"Tujuan",goalStateExpandAria:"Lihat tujuan lengkap",goalStateSheetTitle:"Tujuan",goalStateCloseAria:"Tutup tujuan",send:"Kirim pesan",stop:"Hentikan respons",modelNotConfigured:"Model belum dikonfigurasi",configureModel:"Konfigurasi model",queued:{label:"Panduan antrean",guide:"Pandu",delete:"Hapus panduan",edit:"Edit panduan",drag:"Seret untuk mengurutkan"},attachImage:"Lampirkan gambar",imageMode:{label:"Buat gambar",toggle:"Alihkan mode pembuatan gambar",placeholder:"Deskripsikan atau edit gambar…",aspectAria:"Rasio aspek gambar",aspectLabel:"Rasio gambar",aspect:{auto:"Otomatis","1_1":"Persegi 1:1","3_4":"Potret 3:4","9_16":"Story 9:16","4_3":"Lanskap 4:3","16_9":"Lebar 16:9"}},tools:{search:"Cari",reason:"Bernalar",deepResearch:"Riset mendalam",voice:"Input suara"},voice:{hint:"Klik untuk mendikte atau tahan",stop:"Hentikan rekaman",transcribing:"Mentranskripsi...",recordingStatus:"Merekam {{time}}"},voiceErrors:{unsupported:"Input suara tidak didukung di browser ini.",permission:"Izin mikrofon diperlukan.",notConfigured:"Konfigurasikan penyedia transkripsi terlebih dahulu.",tooLong:"Rekaman terlalu panjang.",tooShort:"Tahan sedikit lebih lama untuk merekam suara.",noInput:"Tidak ada input mikrofon yang terdeteksi.",failed:"Tidak dapat mentranskripsi audio."},slash:{ariaLabel:"Perintah slash",label:"perintah",navigateHint:"↑↓ Pilih",selectHint:"Enter/Tab Sisipkan",closeHint:"Esc Tutup",commands:{new:{title:"Obrolan baru",description:"Hentikan tugas saat ini dan mulai percakapan baru."},stop:{title:"Hentikan tugas saat ini",description:"Batalkan giliran agent yang sedang aktif di chat ini."},restart:{title:"Mulai ulang nanobot",description:"Mulai ulang proses bot di tempat."},status:{title:"Tampilkan status",description:"Tampilkan status runtime, provider, dan channel."},model:{title:"Model",description:"Tampilkan atau ganti preset model aktif."},history:{title:"Tampilkan riwayat",description:"Cetak N pesan percakapan tersimpan terbaru."},dream:{title:"Jalankan Dream",description:"Picu konsolidasi memori secara manual."},dream_log:{title:"Tampilkan log Dream",description:"Tampilkan perubahan dari konsolidasi Dream terakhir."},dream_restore:{title:"Pulihkan memori",description:"Kembalikan memori ke snapshot Dream sebelumnya."},goal:{title:"Tujuan jangka panjang",description:"Instruksikan agen memperlakukan ini sebagai tujuan multi-langkah yang berkelanjutan."},help:{title:"Tampilkan bantuan",description:"Daftar perintah slash yang tersedia."},pairing:{title:"Pemasangan",description:"Kelola permintaan pemasangan."}},badges:{current:"Saat ini",recent:"Terbaru"},details:{goalActive:"Tujuan sedang berjalan",goalReady:"Mulai tujuan berkelanjutan",history:"Tampilkan pesan terbaru",stopRunning:"Sedang berjalan"}},encoding:"Memproses…",remove:"Hapus lampiran",normalizedSizeHint:"{{orig}} → {{current}} (auto)",imageRejected:{unsupported_type:"Tipe file tidak didukung",too_many_images:"Maksimal {{max}} gambar per pesan",magic_mismatch:"File ini tampaknya bukan gambar asli",decode_failed:"Tidak dapat mendekode gambar ini",too_large:"Gambar terlalu besar — coba yang lebih kecil",io:"Tidak dapat membaca file ini"},mentions:{ariaLabel:"Aplikasi",label:"Aplikasi",cliGroup:"App CLI",mcpGroup:"Layanan MCP",cliBadge:"CLI",mcpBadge:"MCP",cliDescription:"Gunakan @{{name}} sebagai aplikasi CLI lokal",mcpDescription:"Gunakan @{{name}} sebagai server MCP"},workspace:{accessAria:"Workspace access mode",projectAria:"Pilih proyek",projectPlaceholder:"Pilih proyek",default:"Default Permission",full:"Full Access"}},scrollToBottom:"Gulir ke bawah",loadEarlier:"Muat pesan sebelumnya",forkedFromHistory:"Fork dari riwayat",promptNavigator:{open:"Buka navigator prompt",title:"Prompt",search:"Cari prompt",noResults:"Tidak ada prompt yang cocok.",jumpTo:"Lompat ke prompt: {{label}}"}},CM={streaming:"sedang mengalir",assistantTyping:"Asisten sedang mengetik",toolSingle:"Menggunakan sebuah alat",toolMany:"Menggunakan {{count}} alat",toolSummary:"{{count}} alat",toolSummaryMany:"{{count}} alat",reasoningTools:"Penalaran · {{count}} alat",reasoningToolsSingular:"Penalaran · 1 alat",reasoning:"Penalaran",reasoningStreaming:"Berpikir…",reasoningSummary:"Penalaran",agentActivitySummary:"{{reasoning}} langkah · {{tools}} panggilan alat",agentActivityToolsOnly:"{{tools}} panggilan alat",agentActivityLiveSummary:"Berjalan… · {{reasoning}} langkah · {{tools}} panggilan alat",agentActivityLiveToolsOnly:"Berjalan… · {{tools}} panggilan alat",imageAttachment:"Lampiran gambar",forkFromHere:"Fork",copyReply:"Salin",copiedReply:"Disalin",turnLatencyTitle:"Waktu respons (ujung ke ujung)",activityThinkingFor:"Berpikir selama {{duration}}",activityThought:"Selesai berpikir",activityThoughtFor:"Selesai berpikir dalam {{duration}}",activityWorkingFor:"Memproses selama {{duration}}",activityWorked:"Selesai memproses",activityWorkedFor:"Diproses selama {{duration}}",cliActivityRunningOne:"Menggunakan @{{name}}",cliActivityRanOne:"Menggunakan @{{name}} selesai",cliActivityFailedOne:"@{{name}} gagal",cliActivityRunningMany:"Menggunakan {{count}} aplikasi CLI",cliActivityRanMany:"{{count}} aplikasi CLI digunakan",cliActivityFailedMany:"{{count}} aplikasi CLI gagal",cliRunRunning:"Menggunakan",cliRunRan:"Digunakan",cliRunFailed:"Gagal",automationSourceFallback:"Otomatisasi",automationTriggered:"Dipicu otomatis"},SM={title:"Pratinjau gambar",open:"Lihat gambar",prev:"Gambar sebelumnya",next:"Gambar berikutnya",close:"Tutup pratinjau"},NM={aria:"Pratinjau file",close:"Tutup pratinjau file",loading:"Memuat pratinjau...",failed:"Tidak dapat mempratinjau file ini.",routeMissing:"Pratinjau file memerlukan gateway terbaru. Mulai ulang nanobot gateway lalu coba lagi.",resize:"Ubah ukuran pratinjau file",truncated:"Pratinjau dipotong karena file ini besar."},jM={fallbackLanguage:"kode",copyAria:"Salin kode",copy:"Salin",copied:"Tersalin"},AM={dismiss:"Tutup"},_M={messageTooBig:{title:"Pesan terlalu besar",body:"Server menolak pesan terakhir karena melebihi batas ukuran. Hapus beberapa gambar atau gunakan berkas yang lebih kecil, lalu coba lagi."},workspaceScopeRejected:{title:"Workspace was not changed",body:"Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."}},PM={dialog:{defaultProject:"Default workspace",manual:"Tempel path",manualPlaceholder:"/Users/name/project",usePath:"Use Path",absolutePathRequired:"Enter an absolute folder path on this machine."}},TM={app:gM,sidebar:vM,settings:xM,chat:yM,deleteConfirm:bM,connection:wM,thread:kM,message:CM,lightbox:SM,filePreview:NM,code:jM,common:AM,errors:_M,workspace:PM},qg={en:{common:xT},"zh-CN":{common:ET},"zh-TW":{common:GT},fr:{common:cR},ja:{common:SR},ko:{common:zR},es:{common:eM},vi:{common:hM},id:{common:TM}};function ys(){return P0(vt.resolvedLanguage??vt.language??ai)}async function RM(e){await vt.changeLanguage(e)}vt.isInitialized||vt.use(ZA).init({resources:qg,lng:eT(),fallbackLng:ZP,defaultNS:"common",ns:["common"],interpolation:{escapeValue:!1},returnNull:!1,supportedLngs:Object.keys(qg)});const T0=e=>{const t=P0(e);nT(t),tT(t)};T0(ys());vt.on("languageChanged",T0);const MM=new Set(["hi","hello","hey","hello nano","hello nanobot","hi nano","hi nanobot","你好","您好","嗨","哈喽","哈啰","在吗"]);function EM(e){const t=e.toLowerCase().replace(/[.!?。!?~~\s]+$/g,"").trim();return t.startsWith("/")||MM.has(t)}function Gi(e,t){if(!e)return t;const n=e.replace(/\s+/g," ").trim();return!n||EM(n)?t:n.length>60?`${n.slice(0,57)}…`:n}function R0(e){if(e==null||e==="")return null;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}const IM=[[60,"second"],[60,"minute"],[24,"hour"],[7,"day"],[4.345,"week"],[12,"month"],[Number.POSITIVE_INFINITY,"year"]],Kg=new Map,Vg=new Map;function jf(e){return e||vt.resolvedLanguage||vt.language||ys()}function LM(e){const t=Kg.get(e);if(t)return t;const n=new Intl.RelativeTimeFormat(e,{numeric:"auto"});return Kg.set(e,n),n}function DM(e){const t=Vg.get(e);if(t)return t;const n=new Intl.DateTimeFormat(e,{dateStyle:"medium",timeStyle:"short"});return Vg.set(e,n),n}function Af(e,t){const n=R0(e);if(!n)return"";let r=(n.getTime()-Date.now())/1e3;const a=LM(jf(t));for(const[o,i]of IM){if(Math.abs(r)0,c=n.slice(0,4),d=Math.max(0,n.length-c.length);return s.jsx(QP,{open:e,onOpenChange:p=>p?void 0:r(),children:s.jsxs(k0,{className:"w-[min(calc(100vw-2rem),24rem)] gap-0 rounded-[28px] border border-white/70 bg-card/95 p-5 text-center shadow-[0_24px_80px_rgba(15,23,42,0.20)] backdrop-blur-xl data-[state=open]:zoom-in-95 sm:rounded-[28px]",children:[s.jsxs(C0,{className:"items-center space-y-0 text-center",children:[s.jsx("div",{className:"mb-5 grid h-16 w-16 place-items-center rounded-full bg-destructive/10 text-destructive",children:s.jsx("div",{className:"grid h-9 w-9 place-items-center rounded-full border border-destructive/20 bg-destructive/5",children:s.jsx(ya,{className:"h-5 w-5",strokeWidth:2.4,"aria-hidden":!0})})}),s.jsx(N0,{className:"text-center text-[20px] font-semibold leading-tight tracking-[-0.02em] text-foreground",children:o("deleteConfirm.title",{title:t})}),s.jsx(j0,{className:"mt-3 max-w-[17rem] text-center text-[14px] leading-6 text-muted-foreground",children:o(l?"deleteConfirm.automationsDescription":"deleteConfirm.description")}),l?s.jsxs("div",{className:"mt-4 max-h-40 w-full overflow-y-auto rounded-2xl bg-muted/55 px-3 py-2 text-left",children:[c.map(p=>s.jsxs("div",{className:"min-w-0 py-1.5",children:[s.jsx("div",{className:"truncate text-[13px] font-medium leading-5 text-foreground",children:p.name||p.id}),s.jsxs("div",{className:"mt-0.5 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5 text-[11.5px] leading-5 text-muted-foreground",children:[s.jsx("span",{className:"truncate",children:zM(p,o,i)}),s.jsx("span",{"aria-hidden":!0,children:"·"}),s.jsx("span",{className:"truncate",children:$M(p,o,i)})]})]},p.id)),d>0?s.jsx("div",{className:"text-[13px] leading-6 text-muted-foreground",children:o("deleteConfirm.moreAutomations",{count:d})}):null]}):null]}),s.jsxs(S0,{className:"mt-7 !grid grid-cols-1 gap-3 space-x-0 sm:grid-cols-2 sm:space-x-0",children:[s.jsx(_0,{onClick:r,className:"mt-0 h-11 w-full min-w-0 rounded-full border-0 bg-muted/70 px-5 text-[15px] font-semibold text-foreground shadow-none hover:bg-muted",children:o("deleteConfirm.cancel")}),s.jsx(A0,{onClick:a,className:"h-11 w-full min-w-0 !whitespace-normal rounded-full bg-destructive px-5 text-center text-[15px] font-semibold text-destructive-foreground shadow-[0_10px_25px_rgba(239,68,68,0.28)] hover:bg-destructive/90",children:o(l?"deleteConfirm.confirmWithAutomations":"deleteConfirm.confirm")})]})]})})}function zM(e,t,n){return e.schedule.kind==="at"&&e.schedule.at_ms?t("deleteConfirm.schedule.at",{time:$r(e.schedule.at_ms,n)}):e.schedule.kind==="every"&&e.schedule.every_ms?t("deleteConfirm.schedule.every",{duration:UM(e.schedule.every_ms,n)}):e.schedule.kind==="cron"&&e.schedule.expr?e.schedule.tz?t("deleteConfirm.schedule.cronWithTz",{expr:e.schedule.expr,tz:e.schedule.tz}):t("deleteConfirm.schedule.cron",{expr:e.schedule.expr}):t("deleteConfirm.schedule.unknown")}function $M(e,t,n){if(!e.enabled)return t("deleteConfirm.next.disabled");const r=e.state.next_run_at_ms;return r?t("deleteConfirm.next.label",{time:$r(r,n)}):t("deleteConfirm.next.none")}function UM(e,t){const n=[["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];for(const[r,a]of n)if(e>=a&&e%a===0)return new Intl.NumberFormat(t,{style:"unit",unit:r,unitDisplay:"long",maximumFractionDigits:0}).format(e/a);return new Intl.NumberFormat(t,{style:"unit",unit:"minute",unitDisplay:"long",maximumFractionDigits:1}).format(e/6e4)}const Yi=hu,BM=gu,M0=u.forwardRef(({className:e,...t},n)=>s.jsx(hs,{ref:n,className:j("fixed inset-0 z-50 bg-black/60 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));M0.displayName=hs.displayName;const bs=u.forwardRef(({className:e,children:t,showCloseButton:n=!0,...r},a)=>s.jsxs(BM,{children:[s.jsx(M0,{}),s.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:s.jsxs(gs,{ref:a,className:j("grid w-full max-w-lg origin-center gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg",e),...r,children:[t,n?s.jsxs(Vi,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[s.jsx(xr,{className:"h-4 w-4"}),s.jsx("span",{className:"sr-only",children:"Close"})]}):null]})})]}));bs.displayName=gs.displayName;const Qi=({className:e,...t})=>s.jsx("div",{className:j("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Qi.displayName="DialogHeader";const Xi=({className:e,...t})=>s.jsx("div",{className:j("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Xi.displayName="DialogFooter";const ws=u.forwardRef(({className:e,...t},n)=>s.jsx(vs,{ref:n,className:j("text-lg font-semibold leading-none tracking-tight",e),...t}));ws.displayName=vs.displayName;const Ji=u.forwardRef(({className:e,...t},n)=>s.jsx(Ki,{ref:n,className:j("text-sm text-muted-foreground",e),...t}));Ji.displayName=Ki.displayName;const Ye=u.forwardRef(({className:e,type:t,...n},r)=>s.jsx("input",{type:t,className:j("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...n}));Ye.displayName="Input";function Gg({open:e,title:t,dialogTitle:n,description:r,placeholder:a,onCancel:o,onConfirm:i}){const{t:l}=ie(),[c,d]=u.useState(t);u.useEffect(()=>{e&&d(t)},[e,t]);const p=c.trim();return s.jsx(Yi,{open:e,onOpenChange:m=>{m||o()},children:s.jsx(bs,{className:"max-w-sm rounded-[22px] border-border/70 bg-popover p-5 shadow-2xl",children:s.jsxs("form",{className:"grid gap-4",onSubmit:m=>{m.preventDefault(),p&&i(p)},children:[s.jsxs(Qi,{className:"text-left",children:[s.jsx(ws,{children:n??l("chat.renameTitle")}),s.jsx(Ji,{children:r??l("chat.renameDescription")})]}),s.jsx(Ye,{value:c,onChange:m=>d(m.target.value),placeholder:a??l("chat.renamePlaceholder"),autoFocus:!0,maxLength:160}),s.jsxs(Xi,{className:"gap-2 sm:space-x-0",children:[s.jsx(fe,{type:"button",variant:"outline",onClick:o,children:l("deleteConfirm.cancel")}),s.jsx(fe,{type:"submit",disabled:!p,children:l("chat.renameSave")})]})]})})})}function Yg(e){const t=HM(e),n=u.forwardRef((r,a)=>{const{children:o,...i}=r,l=u.Children.toArray(o),c=l.find(qM);if(c){const d=c.props.children,p=l.map(m=>m===c?u.Children.count(d)>1?u.Children.only(null):u.isValidElement(d)?d.props.children:null:m);return s.jsx(t,{...i,ref:a,children:u.isValidElement(d)?u.cloneElement(d,void 0,p):null})}return s.jsx(t,{...i,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function HM(e){const t=u.forwardRef((n,r)=>{const{children:a,...o}=n;if(u.isValidElement(a)){const i=VM(a),l=KM(o,a.props);return a.type!==u.Fragment&&(l.ref=r?_a(r,i):i),u.cloneElement(a,l)}return u.Children.count(a)>1?u.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var WM=Symbol("radix.slottable");function qM(e){return u.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===WM}function KM(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...l)=>{const c=o(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function VM(e){var r,a;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function E0(e){const t=e+"CollectionProvider",[n,r]=Aa(t),[a,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=x=>{const{scope:b,children:v}=x,g=Pa.useRef(null),w=Pa.useRef(new Map).current;return s.jsx(a,{scope:b,itemMap:w,collectionRef:g,children:v})};i.displayName=t;const l=e+"CollectionSlot",c=Yg(l),d=Pa.forwardRef((x,b)=>{const{scope:v,children:g}=x,w=o(l,v),k=wt(b,w.collectionRef);return s.jsx(c,{ref:k,children:g})});d.displayName=l;const p=e+"CollectionItemSlot",m="data-radix-collection-item",f=Yg(p),h=Pa.forwardRef((x,b)=>{const{scope:v,children:g,...w}=x,k=Pa.useRef(null),C=wt(b,k),N=o(p,v);return Pa.useEffect(()=>(N.itemMap.set(k,{ref:k,...w}),()=>void N.itemMap.delete(k))),s.jsx(f,{[m]:"",ref:C,children:g})});h.displayName=p;function y(x){const b=o(e+"CollectionConsumer",x);return Pa.useCallback(()=>{const g=b.collectionRef.current;if(!g)return[];const w=Array.from(g.querySelectorAll(`[${m}]`));return Array.from(b.itemMap.values()).sort((N,S)=>w.indexOf(N.ref.current)-w.indexOf(S.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:i,Slot:d,ItemSlot:h},y,r]}var GM=u.createContext(void 0);function I0(e){const t=u.useContext(GM);return e||t||"ltr"}const YM=["top","right","bottom","left"],wa=Math.min,jn=Math.max,Ic=Math.round,Pl=Math.floor,vr=e=>({x:e,y:e}),QM={left:"right",right:"left",bottom:"top",top:"bottom"};function Jp(e,t,n){return jn(e,wa(t,n))}function Ur(e,t){return typeof e=="function"?e(t):e}function Br(e){return e.split("-")[0]}function ks(e){return e.split("-")[1]}function _f(e){return e==="x"?"y":"x"}function Pf(e){return e==="y"?"height":"width"}function fr(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function Tf(e){return _f(fr(e))}function XM(e,t,n){n===void 0&&(n=!1);const r=ks(e),a=Tf(e),o=Pf(a);let i=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(i=Lc(i)),[i,Lc(i)]}function JM(e){const t=Lc(e);return[Zp(e),t,Zp(t)]}function Zp(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Qg=["left","right"],Xg=["right","left"],ZM=["top","bottom"],eE=["bottom","top"];function tE(e,t,n){switch(e){case"top":case"bottom":return n?t?Xg:Qg:t?Qg:Xg;case"left":case"right":return t?ZM:eE;default:return[]}}function nE(e,t,n,r){const a=ks(e);let o=tE(Br(e),n==="start",r);return a&&(o=o.map(i=>i+"-"+a),t&&(o=o.concat(o.map(Zp)))),o}function Lc(e){const t=Br(e);return QM[t]+e.slice(t.length)}function rE(e){return{top:0,right:0,bottom:0,left:0,...e}}function L0(e){return typeof e!="number"?rE(e):{top:e,right:e,bottom:e,left:e}}function Dc(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function Jg(e,t,n){let{reference:r,floating:a}=e;const o=fr(t),i=Tf(t),l=Pf(i),c=Br(t),d=o==="y",p=r.x+r.width/2-a.width/2,m=r.y+r.height/2-a.height/2,f=r[l]/2-a[l]/2;let h;switch(c){case"top":h={x:p,y:r.y-a.height};break;case"bottom":h={x:p,y:r.y+r.height};break;case"right":h={x:r.x+r.width,y:m};break;case"left":h={x:r.x-a.width,y:m};break;default:h={x:r.x,y:r.y}}switch(ks(t)){case"start":h[i]-=f*(n&&d?-1:1);break;case"end":h[i]+=f*(n&&d?-1:1);break}return h}async function aE(e,t){var n;t===void 0&&(t={});const{x:r,y:a,platform:o,rects:i,elements:l,strategy:c}=e,{boundary:d="clippingAncestors",rootBoundary:p="viewport",elementContext:m="floating",altBoundary:f=!1,padding:h=0}=Ur(t,e),y=L0(h),b=l[f?m==="floating"?"reference":"floating":m],v=Dc(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(b)))==null||n?b:b.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(l.floating)),boundary:d,rootBoundary:p,strategy:c})),g=m==="floating"?{x:r,y:a,width:i.floating.width,height:i.floating.height}:i.reference,w=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l.floating)),k=await(o.isElement==null?void 0:o.isElement(w))?await(o.getScale==null?void 0:o.getScale(w))||{x:1,y:1}:{x:1,y:1},C=Dc(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:g,offsetParent:w,strategy:c}):g);return{top:(v.top-C.top+y.top)/k.y,bottom:(C.bottom-v.bottom+y.bottom)/k.y,left:(v.left-C.left+y.left)/k.x,right:(C.right-v.right+y.right)/k.x}}const oE=50,sE=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:o=[],platform:i}=n,l=i.detectOverflow?i:{...i,detectOverflow:aE},c=await(i.isRTL==null?void 0:i.isRTL(t));let d=await i.getElementRects({reference:e,floating:t,strategy:a}),{x:p,y:m}=Jg(d,r,c),f=r,h=0;const y={};for(let x=0;x({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:o,platform:i,elements:l,middlewareData:c}=t,{element:d,padding:p=0}=Ur(e,t)||{};if(d==null)return{};const m=L0(p),f={x:n,y:r},h=Tf(a),y=Pf(h),x=await i.getDimensions(d),b=h==="y",v=b?"top":"left",g=b?"bottom":"right",w=b?"clientHeight":"clientWidth",k=o.reference[y]+o.reference[h]-f[h]-o.floating[y],C=f[h]-o.reference[h],N=await(i.getOffsetParent==null?void 0:i.getOffsetParent(d));let S=N?N[w]:0;(!S||!await(i.isElement==null?void 0:i.isElement(N)))&&(S=l.floating[w]||o.floating[y]);const A=k/2-C/2,E=S/2-x[y]/2-1,_=wa(m[v],E),R=wa(m[g],E),T=_,F=S-x[y]-R,z=S/2-x[y]/2+A,K=Jp(T,z,F),$=!c.arrow&&ks(a)!=null&&z!==K&&o.reference[y]/2-(zz<=0)){var R,T;const z=(((R=o.flip)==null?void 0:R.index)||0)+1,K=S[z];if(K&&(!(m==="alignment"?g!==fr(K):!1)||_.every(P=>fr(P.placement)===g?P.overflows[0]>0:!0)))return{data:{index:z,overflows:_},reset:{placement:K}};let $=(T=_.filter(W=>W.overflows[0]<=0).sort((W,P)=>W.overflows[1]-P.overflows[1])[0])==null?void 0:T.placement;if(!$)switch(h){case"bestFit":{var F;const W=(F=_.filter(P=>{if(N){const D=fr(P.placement);return D===g||D==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(D=>D>0).reduce((D,G)=>D+G,0)]).sort((P,D)=>P[1]-D[1])[0])==null?void 0:F[0];W&&($=W);break}case"initialPlacement":$=l;break}if(a!==$)return{reset:{placement:$}}}return{}}}};function Zg(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ev(e){return YM.some(t=>e[t]>=0)}const cE=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:r}=t,{strategy:a="referenceHidden",...o}=Ur(e,t);switch(a){case"referenceHidden":{const i=await r.detectOverflow(t,{...o,elementContext:"reference"}),l=Zg(i,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:ev(l)}}}case"escaped":{const i=await r.detectOverflow(t,{...o,altBoundary:!0}),l=Zg(i,n.floating);return{data:{escapedOffsets:l,escaped:ev(l)}}}default:return{}}}}},D0=new Set(["left","top"]);async function uE(e,t){const{placement:n,platform:r,elements:a}=e,o=await(r.isRTL==null?void 0:r.isRTL(a.floating)),i=Br(n),l=ks(n),c=fr(n)==="y",d=D0.has(i)?-1:1,p=o&&c?-1:1,m=Ur(t,e);let{mainAxis:f,crossAxis:h,alignmentAxis:y}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return l&&typeof y=="number"&&(h=l==="end"?y*-1:y),c?{x:h*p,y:f*d}:{x:f*d,y:h*p}}const dE=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:o,placement:i,middlewareData:l}=t,c=await uE(t,e);return i===((n=l.offset)==null?void 0:n.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:a+c.x,y:o+c.y,data:{...c,placement:i}}}}},pE=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a,platform:o}=t,{mainAxis:i=!0,crossAxis:l=!1,limiter:c={fn:v=>{let{x:g,y:w}=v;return{x:g,y:w}}},...d}=Ur(e,t),p={x:n,y:r},m=await o.detectOverflow(t,d),f=fr(Br(a)),h=_f(f);let y=p[h],x=p[f];if(i){const v=h==="y"?"top":"left",g=h==="y"?"bottom":"right",w=y+m[v],k=y-m[g];y=Jp(w,y,k)}if(l){const v=f==="y"?"top":"left",g=f==="y"?"bottom":"right",w=x+m[v],k=x-m[g];x=Jp(w,x,k)}const b=c.fn({...t,[h]:y,[f]:x});return{...b,data:{x:b.x-n,y:b.y-r,enabled:{[h]:i,[f]:l}}}}}},mE=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:o,middlewareData:i}=t,{offset:l=0,mainAxis:c=!0,crossAxis:d=!0}=Ur(e,t),p={x:n,y:r},m=fr(a),f=_f(m);let h=p[f],y=p[m];const x=Ur(l,t),b=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(c){const w=f==="y"?"height":"width",k=o.reference[f]-o.floating[w]+b.mainAxis,C=o.reference[f]+o.reference[w]-b.mainAxis;hC&&(h=C)}if(d){var v,g;const w=f==="y"?"width":"height",k=D0.has(Br(a)),C=o.reference[m]-o.floating[w]+(k&&((v=i.offset)==null?void 0:v[m])||0)+(k?0:b.crossAxis),N=o.reference[m]+o.reference[w]+(k?0:((g=i.offset)==null?void 0:g[m])||0)-(k?b.crossAxis:0);yN&&(y=N)}return{[f]:h,[m]:y}}}},fE=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:o,platform:i,elements:l}=t,{apply:c=()=>{},...d}=Ur(e,t),p=await i.detectOverflow(t,d),m=Br(a),f=ks(a),h=fr(a)==="y",{width:y,height:x}=o.floating;let b,v;m==="top"||m==="bottom"?(b=m,v=f===(await(i.isRTL==null?void 0:i.isRTL(l.floating))?"start":"end")?"left":"right"):(v=m,b=f==="end"?"top":"bottom");const g=x-p.top-p.bottom,w=y-p.left-p.right,k=wa(x-p[b],g),C=wa(y-p[v],w),N=!t.middlewareData.shift;let S=k,A=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(A=w),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(S=g),N&&!f){const _=jn(p.left,0),R=jn(p.right,0),T=jn(p.top,0),F=jn(p.bottom,0);h?A=y-2*(_!==0||R!==0?_+R:jn(p.left,p.right)):S=x-2*(T!==0||F!==0?T+F:jn(p.top,p.bottom))}await c({...t,availableWidth:A,availableHeight:S});const E=await i.getDimensions(l.floating);return y!==E.width||x!==E.height?{reset:{rects:!0}}:{}}}};function vu(){return typeof window<"u"}function Cs(e){return O0(e)?(e.nodeName||"").toLowerCase():"#document"}function Tn(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function wr(e){var t;return(t=(O0(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function O0(e){return vu()?e instanceof Node||e instanceof Tn(e).Node:!1}function Zn(e){return vu()?e instanceof Element||e instanceof Tn(e).Element:!1}function Kr(e){return vu()?e instanceof HTMLElement||e instanceof Tn(e).HTMLElement:!1}function tv(e){return!vu()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Tn(e).ShadowRoot}function Zi(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=er(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&a!=="inline"&&a!=="contents"}function hE(e){return/^(table|td|th)$/.test(Cs(e))}function xu(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const gE=/transform|translate|scale|rotate|perspective|filter/,vE=/paint|layout|strict|content/,Ta=e=>!!e&&e!=="none";let Ad;function Rf(e){const t=Zn(e)?er(e):e;return Ta(t.transform)||Ta(t.translate)||Ta(t.scale)||Ta(t.rotate)||Ta(t.perspective)||!Mf()&&(Ta(t.backdropFilter)||Ta(t.filter))||gE.test(t.willChange||"")||vE.test(t.contain||"")}function xE(e){let t=ka(e);for(;Kr(t)&&!rs(t);){if(Rf(t))return t;if(xu(t))return null;t=ka(t)}return null}function Mf(){return Ad==null&&(Ad=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Ad}function rs(e){return/^(html|body|#document)$/.test(Cs(e))}function er(e){return Tn(e).getComputedStyle(e)}function yu(e){return Zn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ka(e){if(Cs(e)==="html")return e;const t=e.assignedSlot||e.parentNode||tv(e)&&e.host||wr(e);return tv(t)?t.host:t}function F0(e){const t=ka(e);return rs(t)?e.ownerDocument?e.ownerDocument.body:e.body:Kr(t)&&Zi(t)?t:F0(t)}function _i(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=F0(e),o=a===((r=e.ownerDocument)==null?void 0:r.body),i=Tn(a);if(o){const l=em(i);return t.concat(i,i.visualViewport||[],Zi(a)?a:[],l&&n?_i(l):[])}else return t.concat(a,_i(a,[],n))}function em(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function z0(e){const t=er(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=Kr(e),o=a?e.offsetWidth:n,i=a?e.offsetHeight:r,l=Ic(n)!==o||Ic(r)!==i;return l&&(n=o,r=i),{width:n,height:r,$:l}}function Ef(e){return Zn(e)?e:e.contextElement}function qo(e){const t=Ef(e);if(!Kr(t))return vr(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:o}=z0(t);let i=(o?Ic(n.width):n.width)/r,l=(o?Ic(n.height):n.height)/a;return(!i||!Number.isFinite(i))&&(i=1),(!l||!Number.isFinite(l))&&(l=1),{x:i,y:l}}const yE=vr(0);function $0(e){const t=Tn(e);return!Mf()||!t.visualViewport?yE:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function bE(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Tn(e)?!1:t}function Xa(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),o=Ef(e);let i=vr(1);t&&(r?Zn(r)&&(i=qo(r)):i=qo(e));const l=bE(o,n,r)?$0(o):vr(0);let c=(a.left+l.x)/i.x,d=(a.top+l.y)/i.y,p=a.width/i.x,m=a.height/i.y;if(o){const f=Tn(o),h=r&&Zn(r)?Tn(r):r;let y=f,x=em(y);for(;x&&r&&h!==y;){const b=qo(x),v=x.getBoundingClientRect(),g=er(x),w=v.left+(x.clientLeft+parseFloat(g.paddingLeft))*b.x,k=v.top+(x.clientTop+parseFloat(g.paddingTop))*b.y;c*=b.x,d*=b.y,p*=b.x,m*=b.y,c+=w,d+=k,y=Tn(x),x=em(y)}}return Dc({width:p,height:m,x:c,y:d})}function bu(e,t){const n=yu(e).scrollLeft;return t?t.left+n:Xa(wr(e)).left+n}function U0(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-bu(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function wE(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const o=a==="fixed",i=wr(r),l=t?xu(t.floating):!1;if(r===i||l&&o)return n;let c={scrollLeft:0,scrollTop:0},d=vr(1);const p=vr(0),m=Kr(r);if((m||!m&&!o)&&((Cs(r)!=="body"||Zi(i))&&(c=yu(r)),m)){const h=Xa(r);d=qo(r),p.x=h.x+r.clientLeft,p.y=h.y+r.clientTop}const f=i&&!m&&!o?U0(i,c):vr(0);return{width:n.width*d.x,height:n.height*d.y,x:n.x*d.x-c.scrollLeft*d.x+p.x+f.x,y:n.y*d.y-c.scrollTop*d.y+p.y+f.y}}function kE(e){return Array.from(e.getClientRects())}function CE(e){const t=wr(e),n=yu(e),r=e.ownerDocument.body,a=jn(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=jn(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+bu(e);const l=-n.scrollTop;return er(r).direction==="rtl"&&(i+=jn(t.clientWidth,r.clientWidth)-a),{width:a,height:o,x:i,y:l}}const nv=25;function SE(e,t){const n=Tn(e),r=wr(e),a=n.visualViewport;let o=r.clientWidth,i=r.clientHeight,l=0,c=0;if(a){o=a.width,i=a.height;const p=Mf();(!p||p&&t==="fixed")&&(l=a.offsetLeft,c=a.offsetTop)}const d=bu(r);if(d<=0){const p=r.ownerDocument,m=p.body,f=getComputedStyle(m),h=p.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,y=Math.abs(r.clientWidth-m.clientWidth-h);y<=nv&&(o-=y)}else d<=nv&&(o+=d);return{width:o,height:i,x:l,y:c}}function NE(e,t){const n=Xa(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,o=Kr(e)?qo(e):vr(1),i=e.clientWidth*o.x,l=e.clientHeight*o.y,c=a*o.x,d=r*o.y;return{width:i,height:l,x:c,y:d}}function rv(e,t,n){let r;if(t==="viewport")r=SE(e,n);else if(t==="document")r=CE(wr(e));else if(Zn(t))r=NE(t,n);else{const a=$0(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return Dc(r)}function B0(e,t){const n=ka(e);return n===t||!Zn(n)||rs(n)?!1:er(n).position==="fixed"||B0(n,t)}function jE(e,t){const n=t.get(e);if(n)return n;let r=_i(e,[],!1).filter(l=>Zn(l)&&Cs(l)!=="body"),a=null;const o=er(e).position==="fixed";let i=o?ka(e):e;for(;Zn(i)&&!rs(i);){const l=er(i),c=Rf(i);!c&&l.position==="fixed"&&(a=null),(o?!c&&!a:!c&&l.position==="static"&&!!a&&(a.position==="absolute"||a.position==="fixed")||Zi(i)&&!c&&B0(e,i))?r=r.filter(p=>p!==i):a=l,i=ka(i)}return t.set(e,r),r}function AE(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const i=[...n==="clippingAncestors"?xu(t)?[]:jE(t,this._c):[].concat(n),r],l=rv(t,i[0],a);let c=l.top,d=l.right,p=l.bottom,m=l.left;for(let f=1;f{i(!1,1e-7)},1e3)}S===1&&!W0(d,e.getBoundingClientRect())&&i(),k=!1}try{n=new IntersectionObserver(C,{...w,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,w)}n.observe(e)}return i(!0),o}function IE(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:o=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=r,d=Ef(e),p=a||o?[...d?_i(d):[],...t?_i(t):[]]:[];p.forEach(v=>{a&&v.addEventListener("scroll",n,{passive:!0}),o&&v.addEventListener("resize",n)});const m=d&&l?EE(d,n):null;let f=-1,h=null;i&&(h=new ResizeObserver(v=>{let[g]=v;g&&g.target===d&&h&&t&&(h.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var w;(w=h)==null||w.observe(t)})),n()}),d&&!c&&h.observe(d),t&&h.observe(t));let y,x=c?Xa(e):null;c&&b();function b(){const v=Xa(e);x&&!W0(x,v)&&n(),x=v,y=requestAnimationFrame(b)}return n(),()=>{var v;p.forEach(g=>{a&&g.removeEventListener("scroll",n),o&&g.removeEventListener("resize",n)}),m==null||m(),(v=h)==null||v.disconnect(),h=null,c&&cancelAnimationFrame(y)}}const LE=dE,DE=pE,OE=lE,FE=fE,zE=cE,ov=iE,$E=mE,UE=(e,t,n)=>{const r=new Map,a={platform:ME,...n},o={...a.platform,_c:r};return sE(e,t,{...a,platform:o})};var BE=typeof document<"u",HE=function(){},Xl=BE?u.useLayoutEffect:HE;function Oc(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Oc(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const o=a[r];if(!(o==="_owner"&&e.$$typeof)&&!Oc(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function q0(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function sv(e,t){const n=q0(e);return Math.round(t*n)/n}function Pd(e){const t=u.useRef(e);return Xl(()=>{t.current=e}),t}function WE(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:o,floating:i}={},transform:l=!0,whileElementsMounted:c,open:d}=e,[p,m]=u.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,h]=u.useState(r);Oc(f,r)||h(r);const[y,x]=u.useState(null),[b,v]=u.useState(null),g=u.useCallback(P=>{P!==N.current&&(N.current=P,x(P))},[]),w=u.useCallback(P=>{P!==S.current&&(S.current=P,v(P))},[]),k=o||y,C=i||b,N=u.useRef(null),S=u.useRef(null),A=u.useRef(p),E=c!=null,_=Pd(c),R=Pd(a),T=Pd(d),F=u.useCallback(()=>{if(!N.current||!S.current)return;const P={placement:t,strategy:n,middleware:f};R.current&&(P.platform=R.current),UE(N.current,S.current,P).then(D=>{const G={...D,isPositioned:T.current!==!1};z.current&&!Oc(A.current,G)&&(A.current=G,lu.flushSync(()=>{m(G)}))})},[f,t,n,R,T]);Xl(()=>{d===!1&&A.current.isPositioned&&(A.current.isPositioned=!1,m(P=>({...P,isPositioned:!1})))},[d]);const z=u.useRef(!1);Xl(()=>(z.current=!0,()=>{z.current=!1}),[]),Xl(()=>{if(k&&(N.current=k),C&&(S.current=C),k&&C){if(_.current)return _.current(k,C,F);F()}},[k,C,F,_,E]);const K=u.useMemo(()=>({reference:N,floating:S,setReference:g,setFloating:w}),[g,w]),$=u.useMemo(()=>({reference:k,floating:C}),[k,C]),W=u.useMemo(()=>{const P={position:n,left:0,top:0};if(!$.floating)return P;const D=sv($.floating,p.x),G=sv($.floating,p.y);return l?{...P,transform:"translate("+D+"px, "+G+"px)",...q0($.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:D,top:G}},[n,l,$.floating,p.x,p.y]);return u.useMemo(()=>({...p,update:F,refs:K,elements:$,floatingStyles:W}),[p,F,K,$,W])}const qE=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?ov({element:r.current,padding:a}).fn(n):{}:r?ov({element:r,padding:a}).fn(n):{}}}},KE=(e,t)=>{const n=LE(e);return{name:n.name,fn:n.fn,options:[e,t]}},VE=(e,t)=>{const n=DE(e);return{name:n.name,fn:n.fn,options:[e,t]}},GE=(e,t)=>({fn:$E(e).fn,options:[e,t]}),YE=(e,t)=>{const n=OE(e);return{name:n.name,fn:n.fn,options:[e,t]}},QE=(e,t)=>{const n=FE(e);return{name:n.name,fn:n.fn,options:[e,t]}},XE=(e,t)=>{const n=zE(e);return{name:n.name,fn:n.fn,options:[e,t]}},JE=(e,t)=>{const n=qE(e);return{name:n.name,fn:n.fn,options:[e,t]}};var ZE="Arrow",K0=u.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...o}=e;return s.jsx(xt.svg,{...o,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:s.jsx("polygon",{points:"0,0 30,0 15,10"})})});K0.displayName=ZE;var eI=K0;function tI(e){const[t,n]=u.useState(void 0);return ba(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const o=a[0];let i,l;if("borderBoxSize"in o){const c=o.borderBoxSize,d=Array.isArray(c)?c[0]:c;i=d.inlineSize,l=d.blockSize}else i=e.offsetWidth,l=e.offsetHeight;n({width:i,height:l})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var If="Popper",[V0,wu]=Aa(If),[nI,G0]=V0(If),Y0=e=>{const{__scopePopper:t,children:n}=e,[r,a]=u.useState(null);return s.jsx(nI,{scope:t,anchor:r,onAnchorChange:a,children:n})};Y0.displayName=If;var Q0="PopperAnchor",X0=u.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,o=G0(Q0,n),i=u.useRef(null),l=wt(t,i),c=u.useRef(null);return u.useEffect(()=>{const d=c.current;c.current=(r==null?void 0:r.current)||i.current,d!==c.current&&o.onAnchorChange(c.current)}),r?null:s.jsx(xt.div,{...a,ref:l})});X0.displayName=Q0;var Lf="PopperContent",[rI,aI]=V0(Lf),J0=u.forwardRef((e,t)=>{var Q,O,ne,he,ve,me;const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:o="center",alignOffset:i=0,arrowPadding:l=0,avoidCollisions:c=!0,collisionBoundary:d=[],collisionPadding:p=0,sticky:m="partial",hideWhenDetached:f=!1,updatePositionStrategy:h="optimized",onPlaced:y,...x}=e,b=G0(Lf,n),[v,g]=u.useState(null),w=wt(t,ee=>g(ee)),[k,C]=u.useState(null),N=tI(k),S=(N==null?void 0:N.width)??0,A=(N==null?void 0:N.height)??0,E=r+(o!=="center"?"-"+o:""),_=typeof p=="number"?p:{top:0,right:0,bottom:0,left:0,...p},R=Array.isArray(d)?d:[d],T=R.length>0,F={padding:_,boundary:R.filter(sI),altBoundary:T},{refs:z,floatingStyles:K,placement:$,isPositioned:W,middlewareData:P}=WE({strategy:"fixed",placement:E,whileElementsMounted:(...ee)=>IE(...ee,{animationFrame:h==="always"}),elements:{reference:b.anchor},middleware:[KE({mainAxis:a+A,alignmentAxis:i}),c&&VE({mainAxis:!0,crossAxis:!1,limiter:m==="partial"?GE():void 0,...F}),c&&YE({...F}),QE({...F,apply:({elements:ee,rects:we,availableWidth:je,availableHeight:xe})=>{const{width:Ee,height:$e}=we.reference,Se=ee.floating.style;Se.setProperty("--radix-popper-available-width",`${je}px`),Se.setProperty("--radix-popper-available-height",`${xe}px`),Se.setProperty("--radix-popper-anchor-width",`${Ee}px`),Se.setProperty("--radix-popper-anchor-height",`${$e}px`)}}),k&&JE({element:k,padding:l}),iI({arrowWidth:S,arrowHeight:A}),f&&XE({strategy:"referenceHidden",...F})]}),[D,G]=tk($),Y=zr(y);ba(()=>{W&&(Y==null||Y())},[W,Y]);const oe=(Q=P.arrow)==null?void 0:Q.x,de=(O=P.arrow)==null?void 0:O.y,pe=((ne=P.arrow)==null?void 0:ne.centerOffset)!==0,[le,I]=u.useState();return ba(()=>{v&&I(window.getComputedStyle(v).zIndex)},[v]),s.jsx("div",{ref:z.setFloating,"data-radix-popper-content-wrapper":"",style:{...K,transform:W?K.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:le,"--radix-popper-transform-origin":[(he=P.transformOrigin)==null?void 0:he.x,(ve=P.transformOrigin)==null?void 0:ve.y].join(" "),...((me=P.hide)==null?void 0:me.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:s.jsx(rI,{scope:n,placedSide:D,onArrowChange:C,arrowX:oe,arrowY:de,shouldHideArrow:pe,children:s.jsx(xt.div,{"data-side":D,"data-align":G,...x,ref:w,style:{...x.style,animation:W?void 0:"none"}})})})});J0.displayName=Lf;var Z0="PopperArrow",oI={top:"bottom",right:"left",bottom:"top",left:"right"},ek=u.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,o=aI(Z0,r),i=oI[o.placedSide];return s.jsx("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:s.jsx(eI,{...a,ref:n,style:{...a.style,display:"block"}})})});ek.displayName=Z0;function sI(e){return e!==null}var iI=e=>({name:"transformOrigin",options:e,fn(t){var b,v,g;const{placement:n,rects:r,middlewareData:a}=t,i=((b=a.arrow)==null?void 0:b.centerOffset)!==0,l=i?0:e.arrowWidth,c=i?0:e.arrowHeight,[d,p]=tk(n),m={start:"0%",center:"50%",end:"100%"}[p],f=(((v=a.arrow)==null?void 0:v.x)??0)+l/2,h=(((g=a.arrow)==null?void 0:g.y)??0)+c/2;let y="",x="";return d==="bottom"?(y=i?m:`${f}px`,x=`${-c}px`):d==="top"?(y=i?m:`${f}px`,x=`${r.floating.height+c}px`):d==="right"?(y=`${-c}px`,x=i?m:`${h}px`):d==="left"&&(y=`${r.floating.width+c}px`,x=i?m:`${h}px`),{data:{x:y,y:x}}}});function tk(e){const[t,n="center"]=e.split("-");return[t,n]}var nk=Y0,rk=X0,ak=J0,ok=ek,Td="rovingFocusGroup.onEntryFocus",lI={bubbles:!1,cancelable:!0},el="RovingFocusGroup",[tm,sk,cI]=E0(el),[uI,ik]=Aa(el,[cI]),[dI,pI]=uI(el),lk=u.forwardRef((e,t)=>s.jsx(tm.Provider,{scope:e.__scopeRovingFocusGroup,children:s.jsx(tm.Slot,{scope:e.__scopeRovingFocusGroup,children:s.jsx(mI,{...e,ref:t})})}));lk.displayName=el;var mI=u.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:o,currentTabStopId:i,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:d,preventScrollOnEntryFocus:p=!1,...m}=e,f=u.useRef(null),h=wt(t,f),y=I0(o),[x,b]=uu({prop:i,defaultProp:l??null,onChange:c,caller:el}),[v,g]=u.useState(!1),w=zr(d),k=sk(n),C=u.useRef(!1),[N,S]=u.useState(0);return u.useEffect(()=>{const A=f.current;if(A)return A.addEventListener(Td,w),()=>A.removeEventListener(Td,w)},[w]),s.jsx(dI,{scope:n,orientation:r,dir:y,loop:a,currentTabStopId:x,onItemFocus:u.useCallback(A=>b(A),[b]),onItemShiftTab:u.useCallback(()=>g(!0),[]),onFocusableItemAdd:u.useCallback(()=>S(A=>A+1),[]),onFocusableItemRemove:u.useCallback(()=>S(A=>A-1),[]),children:s.jsx(xt.div,{tabIndex:v||N===0?-1:0,"data-orientation":r,...m,ref:h,style:{outline:"none",...e.style},onMouseDown:Re(e.onMouseDown,()=>{C.current=!0}),onFocus:Re(e.onFocus,A=>{const E=!C.current;if(A.target===A.currentTarget&&E&&!v){const _=new CustomEvent(Td,lI);if(A.currentTarget.dispatchEvent(_),!_.defaultPrevented){const R=k().filter($=>$.focusable),T=R.find($=>$.active),F=R.find($=>$.id===x),K=[T,F,...R].filter(Boolean).map($=>$.ref.current);dk(K,p)}}C.current=!1}),onBlur:Re(e.onBlur,()=>g(!1))})})}),ck="RovingFocusGroupItem",uk=u.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:o,children:i,...l}=e,c=$a(),d=o||c,p=pI(ck,n),m=p.currentTabStopId===d,f=sk(n),{onFocusableItemAdd:h,onFocusableItemRemove:y,currentTabStopId:x}=p;return u.useEffect(()=>{if(r)return h(),()=>y()},[r,h,y]),s.jsx(tm.ItemSlot,{scope:n,id:d,focusable:r,active:a,children:s.jsx(xt.span,{tabIndex:m?0:-1,"data-orientation":p.orientation,...l,ref:t,onMouseDown:Re(e.onMouseDown,b=>{r?p.onItemFocus(d):b.preventDefault()}),onFocus:Re(e.onFocus,()=>p.onItemFocus(d)),onKeyDown:Re(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){p.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const v=gI(b,p.orientation,p.dir);if(v!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let w=f().filter(k=>k.focusable).map(k=>k.ref.current);if(v==="last")w.reverse();else if(v==="prev"||v==="next"){v==="prev"&&w.reverse();const k=w.indexOf(b.currentTarget);w=p.loop?vI(w,k+1):w.slice(k+1)}setTimeout(()=>dk(w))}}),children:typeof i=="function"?i({isCurrentTabStop:m,hasTabStop:x!=null}):i})})});uk.displayName=ck;var fI={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function hI(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function gI(e,t,n){const r=hI(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return fI[r]}function dk(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function vI(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var xI=lk,yI=uk;function bI(e){const t=wI(e),n=u.forwardRef((r,a)=>{const{children:o,...i}=r,l=u.Children.toArray(o),c=l.find(CI);if(c){const d=c.props.children,p=l.map(m=>m===c?u.Children.count(d)>1?u.Children.only(null):u.isValidElement(d)?d.props.children:null:m);return s.jsx(t,{...i,ref:a,children:u.isValidElement(d)?u.cloneElement(d,void 0,p):null})}return s.jsx(t,{...i,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function wI(e){const t=u.forwardRef((n,r)=>{const{children:a,...o}=n;if(u.isValidElement(a)){const i=NI(a),l=SI(o,a.props);return a.type!==u.Fragment&&(l.ref=r?_a(r,i):i),u.cloneElement(a,l)}return u.Children.count(a)>1?u.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var kI=Symbol("radix.slottable");function CI(e){return u.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===kI}function SI(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...l)=>{const c=o(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function NI(e){var r,a;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var nm=["Enter"," "],jI=["ArrowDown","PageUp","Home"],pk=["ArrowUp","PageDown","End"],AI=[...jI,...pk],_I={ltr:[...nm,"ArrowRight"],rtl:[...nm,"ArrowLeft"]},PI={ltr:["ArrowLeft"],rtl:["ArrowRight"]},tl="Menu",[Pi,TI,RI]=E0(tl),[ro,mk]=Aa(tl,[RI,wu,ik]),ku=wu(),fk=ik(),[MI,ao]=ro(tl),[EI,nl]=ro(tl),hk=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:o,modal:i=!0}=e,l=ku(t),[c,d]=u.useState(null),p=u.useRef(!1),m=zr(o),f=I0(a);return u.useEffect(()=>{const h=()=>{p.current=!0,document.addEventListener("pointerdown",y,{capture:!0,once:!0}),document.addEventListener("pointermove",y,{capture:!0,once:!0})},y=()=>p.current=!1;return document.addEventListener("keydown",h,{capture:!0}),()=>{document.removeEventListener("keydown",h,{capture:!0}),document.removeEventListener("pointerdown",y,{capture:!0}),document.removeEventListener("pointermove",y,{capture:!0})}},[]),s.jsx(nk,{...l,children:s.jsx(MI,{scope:t,open:n,onOpenChange:m,content:c,onContentChange:d,children:s.jsx(EI,{scope:t,onClose:u.useCallback(()=>m(!1),[m]),isUsingKeyboardRef:p,dir:f,modal:i,children:r})})})};hk.displayName=tl;var II="MenuAnchor",Df=u.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=ku(n);return s.jsx(rk,{...a,...r,ref:t})});Df.displayName=II;var Of="MenuPortal",[LI,gk]=ro(Of,{forceMount:void 0}),vk=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,o=ao(Of,t);return s.jsx(LI,{scope:t,forceMount:n,children:s.jsx(br,{present:n||o.open,children:s.jsx(pu,{asChild:!0,container:a,children:r})})})};vk.displayName=Of;var $n="MenuContent",[DI,Ff]=ro($n),xk=u.forwardRef((e,t)=>{const n=gk($n,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,o=ao($n,e.__scopeMenu),i=nl($n,e.__scopeMenu);return s.jsx(Pi.Provider,{scope:e.__scopeMenu,children:s.jsx(br,{present:r||o.open,children:s.jsx(Pi.Slot,{scope:e.__scopeMenu,children:i.modal?s.jsx(OI,{...a,ref:t}):s.jsx(FI,{...a,ref:t})})})})}),OI=u.forwardRef((e,t)=>{const n=ao($n,e.__scopeMenu),r=u.useRef(null),a=wt(t,r);return u.useEffect(()=>{const o=r.current;if(o)return Pw(o)},[]),s.jsx(zf,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Re(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),FI=u.forwardRef((e,t)=>{const n=ao($n,e.__scopeMenu);return s.jsx(zf,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),zI=bI("MenuContent.ScrollLock"),zf=u.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:i,disableOutsidePointerEvents:l,onEntryFocus:c,onEscapeKeyDown:d,onPointerDownOutside:p,onFocusOutside:m,onInteractOutside:f,onDismiss:h,disableOutsideScroll:y,...x}=e,b=ao($n,n),v=nl($n,n),g=ku(n),w=fk(n),k=TI(n),[C,N]=u.useState(null),S=u.useRef(null),A=wt(t,S,b.onContentChange),E=u.useRef(0),_=u.useRef(""),R=u.useRef(0),T=u.useRef(null),F=u.useRef("right"),z=u.useRef(0),K=y?bf:u.Fragment,$=y?{as:zI,allowPinchZoom:!0}:void 0,W=D=>{var Q,O;const G=_.current+D,Y=k().filter(ne=>!ne.disabled),oe=document.activeElement,de=(Q=Y.find(ne=>ne.ref.current===oe))==null?void 0:Q.textValue,pe=Y.map(ne=>ne.textValue),le=XI(pe,G,de),I=(O=Y.find(ne=>ne.textValue===le))==null?void 0:O.ref.current;(function ne(he){_.current=he,window.clearTimeout(E.current),he!==""&&(E.current=window.setTimeout(()=>ne(""),1e3))})(G),I&&setTimeout(()=>I.focus())};u.useEffect(()=>()=>window.clearTimeout(E.current),[]),bw();const P=u.useCallback(D=>{var Y,oe;return F.current===((Y=T.current)==null?void 0:Y.side)&&ZI(D,(oe=T.current)==null?void 0:oe.area)},[]);return s.jsx(DI,{scope:n,searchRef:_,onItemEnter:u.useCallback(D=>{P(D)&&D.preventDefault()},[P]),onItemLeave:u.useCallback(D=>{var G;P(D)||((G=S.current)==null||G.focus(),N(null))},[P]),onTriggerLeave:u.useCallback(D=>{P(D)&&D.preventDefault()},[P]),pointerGraceTimerRef:R,onPointerGraceIntentChange:u.useCallback(D=>{T.current=D},[]),children:s.jsx(K,{...$,children:s.jsx(yf,{asChild:!0,trapped:a,onMountAutoFocus:Re(o,D=>{var G;D.preventDefault(),(G=S.current)==null||G.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:s.jsx(du,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:d,onPointerDownOutside:p,onFocusOutside:m,onInteractOutside:f,onDismiss:h,children:s.jsx(xI,{asChild:!0,...w,dir:v.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:N,onEntryFocus:Re(c,D=>{v.isUsingKeyboardRef.current||D.preventDefault()}),preventScrollOnEntryFocus:!0,children:s.jsx(ak,{role:"menu","aria-orientation":"vertical","data-state":Ik(b.open),"data-radix-menu-content":"",dir:v.dir,...g,...x,ref:A,style:{outline:"none",...x.style},onKeyDown:Re(x.onKeyDown,D=>{const Y=D.target.closest("[data-radix-menu-content]")===D.currentTarget,oe=D.ctrlKey||D.altKey||D.metaKey,de=D.key.length===1;Y&&(D.key==="Tab"&&D.preventDefault(),!oe&&de&&W(D.key));const pe=S.current;if(D.target!==pe||!AI.includes(D.key))return;D.preventDefault();const I=k().filter(Q=>!Q.disabled).map(Q=>Q.ref.current);pk.includes(D.key)&&I.reverse(),YI(I)}),onBlur:Re(e.onBlur,D=>{D.currentTarget.contains(D.target)||(window.clearTimeout(E.current),_.current="")}),onPointerMove:Re(e.onPointerMove,Ti(D=>{const G=D.target,Y=z.current!==D.clientX;if(D.currentTarget.contains(G)&&Y){const oe=D.clientX>z.current?"right":"left";F.current=oe,z.current=D.clientX}}))})})})})})})});xk.displayName=$n;var $I="MenuGroup",$f=u.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return s.jsx(xt.div,{role:"group",...r,ref:t})});$f.displayName=$I;var UI="MenuLabel",yk=u.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return s.jsx(xt.div,{...r,ref:t})});yk.displayName=UI;var Fc="MenuItem",iv="menu.itemSelect",Cu=u.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,o=u.useRef(null),i=nl(Fc,e.__scopeMenu),l=Ff(Fc,e.__scopeMenu),c=wt(t,o),d=u.useRef(!1),p=()=>{const m=o.current;if(!n&&m){const f=new CustomEvent(iv,{bubbles:!0,cancelable:!0});m.addEventListener(iv,h=>r==null?void 0:r(h),{once:!0}),gw(m,f),f.defaultPrevented?d.current=!1:i.onClose()}};return s.jsx(bk,{...a,ref:c,disabled:n,onClick:Re(e.onClick,p),onPointerDown:m=>{var f;(f=e.onPointerDown)==null||f.call(e,m),d.current=!0},onPointerUp:Re(e.onPointerUp,m=>{var f;d.current||(f=m.currentTarget)==null||f.click()}),onKeyDown:Re(e.onKeyDown,m=>{const f=l.searchRef.current!=="";n||f&&m.key===" "||nm.includes(m.key)&&(m.currentTarget.click(),m.preventDefault())})})});Cu.displayName=Fc;var bk=u.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...o}=e,i=Ff(Fc,n),l=fk(n),c=u.useRef(null),d=wt(t,c),[p,m]=u.useState(!1),[f,h]=u.useState("");return u.useEffect(()=>{const y=c.current;y&&h((y.textContent??"").trim())},[o.children]),s.jsx(Pi.ItemSlot,{scope:n,disabled:r,textValue:a??f,children:s.jsx(yI,{asChild:!0,...l,focusable:!r,children:s.jsx(xt.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:d,onPointerMove:Re(e.onPointerMove,Ti(y=>{r?i.onItemLeave(y):(i.onItemEnter(y),y.defaultPrevented||y.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Re(e.onPointerLeave,Ti(y=>i.onItemLeave(y))),onFocus:Re(e.onFocus,()=>m(!0)),onBlur:Re(e.onBlur,()=>m(!1))})})})}),BI="MenuCheckboxItem",wk=u.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return s.jsx(jk,{scope:e.__scopeMenu,checked:n,children:s.jsx(Cu,{role:"menuitemcheckbox","aria-checked":zc(n)?"mixed":n,...a,ref:t,"data-state":Bf(n),onSelect:Re(a.onSelect,()=>r==null?void 0:r(zc(n)?!0:!n),{checkForDefaultPrevented:!1})})})});wk.displayName=BI;var kk="MenuRadioGroup",[HI,WI]=ro(kk,{value:void 0,onValueChange:()=>{}}),Ck=u.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,o=zr(r);return s.jsx(HI,{scope:e.__scopeMenu,value:n,onValueChange:o,children:s.jsx($f,{...a,ref:t})})});Ck.displayName=kk;var Sk="MenuRadioItem",Nk=u.forwardRef((e,t)=>{const{value:n,...r}=e,a=WI(Sk,e.__scopeMenu),o=n===a.value;return s.jsx(jk,{scope:e.__scopeMenu,checked:o,children:s.jsx(Cu,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":Bf(o),onSelect:Re(r.onSelect,()=>{var i;return(i=a.onValueChange)==null?void 0:i.call(a,n)},{checkForDefaultPrevented:!1})})})});Nk.displayName=Sk;var Uf="MenuItemIndicator",[jk,qI]=ro(Uf,{checked:!1}),Ak=u.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,o=qI(Uf,n);return s.jsx(br,{present:r||zc(o.checked)||o.checked===!0,children:s.jsx(xt.span,{...a,ref:t,"data-state":Bf(o.checked)})})});Ak.displayName=Uf;var KI="MenuSeparator",_k=u.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return s.jsx(xt.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});_k.displayName=KI;var VI="MenuArrow",Pk=u.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=ku(n);return s.jsx(ok,{...a,...r,ref:t})});Pk.displayName=VI;var GI="MenuSub",[k6,Tk]=ro(GI),Bs="MenuSubTrigger",Rk=u.forwardRef((e,t)=>{const n=ao(Bs,e.__scopeMenu),r=nl(Bs,e.__scopeMenu),a=Tk(Bs,e.__scopeMenu),o=Ff(Bs,e.__scopeMenu),i=u.useRef(null),{pointerGraceTimerRef:l,onPointerGraceIntentChange:c}=o,d={__scopeMenu:e.__scopeMenu},p=u.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return u.useEffect(()=>p,[p]),u.useEffect(()=>{const m=l.current;return()=>{window.clearTimeout(m),c(null)}},[l,c]),s.jsx(Df,{asChild:!0,...d,children:s.jsx(bk,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":Ik(n.open),...e,ref:_a(t,a.onTriggerChange),onClick:m=>{var f;(f=e.onClick)==null||f.call(e,m),!(e.disabled||m.defaultPrevented)&&(m.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Re(e.onPointerMove,Ti(m=>{o.onItemEnter(m),!m.defaultPrevented&&!e.disabled&&!n.open&&!i.current&&(o.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),p()},100))})),onPointerLeave:Re(e.onPointerLeave,Ti(m=>{var h,y;p();const f=(h=n.content)==null?void 0:h.getBoundingClientRect();if(f){const x=(y=n.content)==null?void 0:y.dataset.side,b=x==="right",v=b?-5:5,g=f[b?"left":"right"],w=f[b?"right":"left"];o.onPointerGraceIntentChange({area:[{x:m.clientX+v,y:m.clientY},{x:g,y:f.top},{x:w,y:f.top},{x:w,y:f.bottom},{x:g,y:f.bottom}],side:x}),window.clearTimeout(l.current),l.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(m),m.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Re(e.onKeyDown,m=>{var h;const f=o.searchRef.current!=="";e.disabled||f&&m.key===" "||_I[r.dir].includes(m.key)&&(n.onOpenChange(!0),(h=n.content)==null||h.focus(),m.preventDefault())})})})});Rk.displayName=Bs;var Mk="MenuSubContent",Ek=u.forwardRef((e,t)=>{const n=gk($n,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,o=ao($n,e.__scopeMenu),i=nl($n,e.__scopeMenu),l=Tk(Mk,e.__scopeMenu),c=u.useRef(null),d=wt(t,c);return s.jsx(Pi.Provider,{scope:e.__scopeMenu,children:s.jsx(br,{present:r||o.open,children:s.jsx(Pi.Slot,{scope:e.__scopeMenu,children:s.jsx(zf,{id:l.contentId,"aria-labelledby":l.triggerId,...a,ref:d,align:"start",side:i.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:p=>{var m;i.isUsingKeyboardRef.current&&((m=c.current)==null||m.focus()),p.preventDefault()},onCloseAutoFocus:p=>p.preventDefault(),onFocusOutside:Re(e.onFocusOutside,p=>{p.target!==l.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Re(e.onEscapeKeyDown,p=>{i.onClose(),p.preventDefault()}),onKeyDown:Re(e.onKeyDown,p=>{var h;const m=p.currentTarget.contains(p.target),f=PI[i.dir].includes(p.key);m&&f&&(o.onOpenChange(!1),(h=l.trigger)==null||h.focus(),p.preventDefault())})})})})})});Ek.displayName=Mk;function Ik(e){return e?"open":"closed"}function zc(e){return e==="indeterminate"}function Bf(e){return zc(e)?"indeterminate":e?"checked":"unchecked"}function YI(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function QI(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function XI(e,t,n){const a=t.length>1&&Array.from(t).every(d=>d===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let i=QI(e,Math.max(o,0));a.length===1&&(i=i.filter(d=>d!==n));const c=i.find(d=>d.toLowerCase().startsWith(a.toLowerCase()));return c!==n?c:void 0}function JI(e,t){const{x:n,y:r}=e;let a=!1;for(let o=0,i=t.length-1;or!=f>r&&n<(m-d)*(r-p)/(f-p)+d&&(a=!a)}return a}function ZI(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return JI(n,t)}function Ti(e){return t=>t.pointerType==="mouse"?e(t):void 0}var e5=hk,t5=Df,n5=vk,r5=xk,a5=$f,o5=yk,s5=Cu,i5=wk,l5=Ck,c5=Nk,u5=Ak,d5=_k,p5=Pk,m5=Rk,f5=Ek,Su="DropdownMenu",[h5]=Aa(Su,[mk]),sn=mk(),[g5,Lk]=h5(Su),Dk=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:a,defaultOpen:o,onOpenChange:i,modal:l=!0}=e,c=sn(t),d=u.useRef(null),[p,m]=uu({prop:a,defaultProp:o??!1,onChange:i,caller:Su});return s.jsx(g5,{scope:t,triggerId:$a(),triggerRef:d,contentId:$a(),open:p,onOpenChange:m,onOpenToggle:u.useCallback(()=>m(f=>!f),[m]),modal:l,children:s.jsx(e5,{...c,open:p,onOpenChange:m,dir:r,modal:l,children:n})})};Dk.displayName=Su;var Ok="DropdownMenuTrigger",Fk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...a}=e,o=Lk(Ok,n),i=sn(n);return s.jsx(t5,{asChild:!0,...i,children:s.jsx(xt.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...a,ref:_a(t,o.triggerRef),onPointerDown:Re(e.onPointerDown,l=>{!r&&l.button===0&&l.ctrlKey===!1&&(o.onOpenToggle(),o.open||l.preventDefault())}),onKeyDown:Re(e.onKeyDown,l=>{r||(["Enter"," "].includes(l.key)&&o.onOpenToggle(),l.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})})});Fk.displayName=Ok;var v5="DropdownMenuPortal",zk=e=>{const{__scopeDropdownMenu:t,...n}=e,r=sn(t);return s.jsx(n5,{...r,...n})};zk.displayName=v5;var $k="DropdownMenuContent",Uk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=Lk($k,n),o=sn(n),i=u.useRef(!1);return s.jsx(r5,{id:a.contentId,"aria-labelledby":a.triggerId,...o,...r,ref:t,onCloseAutoFocus:Re(e.onCloseAutoFocus,l=>{var c;i.current||(c=a.triggerRef.current)==null||c.focus(),i.current=!1,l.preventDefault()}),onInteractOutside:Re(e.onInteractOutside,l=>{const c=l.detail.originalEvent,d=c.button===0&&c.ctrlKey===!0,p=c.button===2||d;(!a.modal||p)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Uk.displayName=$k;var x5="DropdownMenuGroup",y5=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(a5,{...a,...r,ref:t})});y5.displayName=x5;var b5="DropdownMenuLabel",Bk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(o5,{...a,...r,ref:t})});Bk.displayName=b5;var w5="DropdownMenuItem",Hk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(s5,{...a,...r,ref:t})});Hk.displayName=w5;var k5="DropdownMenuCheckboxItem",Wk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(i5,{...a,...r,ref:t})});Wk.displayName=k5;var C5="DropdownMenuRadioGroup",qk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(l5,{...a,...r,ref:t})});qk.displayName=C5;var S5="DropdownMenuRadioItem",Kk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(c5,{...a,...r,ref:t})});Kk.displayName=S5;var N5="DropdownMenuItemIndicator",Vk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(u5,{...a,...r,ref:t})});Vk.displayName=N5;var j5="DropdownMenuSeparator",Gk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(d5,{...a,...r,ref:t})});Gk.displayName=j5;var A5="DropdownMenuArrow",_5=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(p5,{...a,...r,ref:t})});_5.displayName=A5;var P5="DropdownMenuSubTrigger",Yk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(m5,{...a,...r,ref:t})});Yk.displayName=P5;var T5="DropdownMenuSubContent",Qk=u.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,a=sn(n);return s.jsx(f5,{...a,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Qk.displayName=T5;var R5=Dk,M5=Fk,E5=zk,Xk=Uk,Jk=Bk,Zk=Hk,e1=Wk,I5=qk,t1=Kk,n1=Vk,r1=Gk,a1=Yk,o1=Qk;const gn=R5,vn=M5,L5=I5,s1="z-50 max-h-[min(var(--radix-dropdown-menu-content-available-height),28rem)] min-w-[10rem] overflow-x-hidden overflow-y-auto overscroll-contain rounded-[18px] border border-border/65 bg-popover/96 p-1.5 text-popover-foreground shadow-[0_18px_55px_rgba(15,23,42,0.18)] backdrop-blur-xl scrollbar-thin scrollbar-track-transparent dark:border-white/10 dark:shadow-[0_22px_55px_rgba(0,0,0,0.45)]",Nu="relative flex min-h-8 cursor-default select-none items-center gap-2 rounded-[12px] px-2.5 py-2 text-[13px] outline-none transition-colors focus:bg-foreground/[0.055] focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-white/[0.08]",D5=u.forwardRef(({className:e,inset:t,children:n,...r},a)=>s.jsxs(a1,{ref:a,className:j(Nu,"data-[state=open]:bg-foreground/[0.055] dark:data-[state=open]:bg-white/[0.08]",t&&"pl-8",e),...r,children:[n,s.jsx(Wr,{className:"ml-auto h-3.5 w-3.5 text-muted-foreground"})]}));D5.displayName=a1.displayName;const O5=u.forwardRef(({className:e,...t},n)=>s.jsx(o1,{ref:n,className:j(s1,e),...t}));O5.displayName=o1.displayName;const ln=u.forwardRef(({className:e,sideOffset:t=4,portalContainer:n,...r},a)=>s.jsx(E5,{container:n??void 0,children:s.jsx(Xk,{ref:a,sideOffset:t,className:j(s1,"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...r})}));ln.displayName=Xk.displayName;const gt=u.forwardRef(({className:e,inset:t,...n},r)=>s.jsx(Zk,{ref:r,className:j(Nu,t&&"pl-8",e),...n}));gt.displayName=Zk.displayName;const F5=u.forwardRef(({className:e,children:t,checked:n,...r},a)=>s.jsxs(e1,{ref:a,className:j(Nu,"pl-8 pr-2.5",e),checked:n,...r,children:[s.jsx("span",{className:"absolute left-2.5 flex h-3.5 w-3.5 items-center justify-center",children:s.jsx(n1,{children:s.jsx(Et,{className:"h-3.5 w-3.5"})})}),t]}));F5.displayName=e1.displayName;const i1=u.forwardRef(({className:e,children:t,...n},r)=>s.jsxs(t1,{ref:r,className:j(Nu,"pl-8 pr-2.5",e),...n,children:[s.jsx("span",{className:"absolute left-2.5 flex h-3.5 w-3.5 items-center justify-center",children:s.jsx(n1,{children:s.jsx(Yj,{className:"h-2 w-2 fill-current"})})}),t]}));i1.displayName=t1.displayName;const l1=u.forwardRef(({className:e,inset:t,...n},r)=>s.jsx(Jk,{ref:r,className:j("px-2.5 pb-1.5 pt-1 text-[12px] font-semibold text-muted-foreground",t&&"pl-8",e),...n}));l1.displayName=Jk.displayName;const Hf=u.forwardRef(({className:e,...t},n)=>s.jsx(r1,{ref:n,className:j("-mx-1.5 my-1.5 h-px bg-border/50",e),...t}));Hf.displayName=r1.displayName;function z5(e,t){return{...e,access_mode:t,restrict_to_workspace:t==="restricted"}}function Ri(e){return e.replace(/\\/g,"/").replace(/\/+$/,"").split("/").filter(Boolean).pop()||e}function c1(e){const n=e.replace(/\\/g,"/").split("/").filter(Boolean);return n.length<=3?e:`.../${n.slice(-3).join("/")}`}function $5(e){const t=e.trim();return t==="~"||t.startsWith("~/")||t.startsWith("~\\")||t.startsWith("/")||/^[A-Za-z]:[\\/]/.test(t)}function U5(e,t){return!e||!t||u1(e.project_path,t.project_path)?null:e}function rm(e){return(e??"").replace(/\\/g,"/").replace(/\/+$/,"")||"/"}function u1(e,t){return!e||!t?!1:rm(e)===rm(t)}const Wf=8;function B5(e,t,n){if(e.some(h=>{var y;return(y=h.workspaceScope)==null?void 0:y.project_path}))return q5(e,t,n);const r=new Date,a=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime(),o=a-24*60*60*1e3,i=new Map,l=new Set(n.pinnedKeys),c=new Set(n.archivedKeys),d=[],p=[],m=[];for(const h of e){if(c.has(h.key)){n.showArchived&&p.push(h);continue}if(l.has(h.key)){d.push(h);continue}if(n.sort==="title_asc"){m.push(h);continue}const y=Date.parse(h.updatedAt??h.createdAt??""),x=Number.isFinite(y)&&y>=a?t.today:Number.isFinite(y)&&y>=o?t.yesterday:t.earlier,b=i.get(x)??[];b.push(h),i.set(x,b)}const f=[t.today,t.yesterday,t.earlier].map(h=>({id:`date:${h}`,label:h,sessions:Hs(i.get(h)??[],n.sort,n.titleOverrides)})).filter(h=>h.sessions.length>0);return n.sort==="title_asc"&&m.length&&f.push({id:"date:all",label:t.all,sessions:Hs(m,n.sort,n.titleOverrides)}),d.length&&f.unshift({id:"pinned",label:t.pinned,sessions:Hs(d,n.sort,n.titleOverrides)}),p.length&&f.push({id:"archived",label:t.archived,sessions:Hs(p,n.sort,n.titleOverrides)}),f}function H5(e,t,n,r){let a=Math.max(0,t),o=!n;const i=[];for(const l of e){if(am(l,r)){i.push({...l,sessions:[]});continue}const c=a>0?l.sessions.slice(0,a):[];a-=c.length,n&&c.some(d=>d.key===n)&&(o=!0),c.length>0&&i.push({...l,sessions:c})}if(o||!n)return i;for(const l of e){if(am(l,r))continue;const c=l.sessions.find(p=>p.key===n);if(!c)continue;const d=i.find(p=>p.id===l.id);return d?d.sessions=[...d.sessions,c]:i.push({...l,sessions:[c]}),i}return i}function am(e,t){return e.kind==="project"&&!!t[e.id]}function d1(e){return e.id==="workspace:chats"||e.id==="date:all"}function p1(e,t){return d1(e)&&e.sessions.length>Wf&&t[e.id]!==!1}function W5(e,t,n){if(!p1(e,n))return e.sessions;const r=e.sessions.slice(0,Wf);if(!t||r.some(o=>o.key===t))return r;const a=e.sessions.find(o=>o.key===t);return a?[...r,a]:r}function m1(e,t,n){var r,a;return((r=t[e.key])==null?void 0:r.trim())||((a=e.title)==null?void 0:a.trim())||Gi(e.preview,n)}function q5(e,t,n){var c,d;const r=new Set(n.archivedKeys),a=[],o=new Map;for(const p of e){if(r.has(p.key)&&!n.showArchived)continue;const m=p.workspaceScope,f=(m==null?void 0:m.project_path)||"";if(!f||u1(f,n.defaultWorkspacePath)){a.push(p);continue}const h=rm(f),y=((c=n.projectNameOverrides[h])==null?void 0:c.trim())||((d=m==null?void 0:m.project_name)==null?void 0:d.trim())||Ri(f),x=o.get(h)??{path:f,label:y,sessions:[],updatedAt:null};x.sessions.push(p);const b=p.updatedAt??p.createdAt??null;cv(b,x.updatedAt)&&(x.updatedAt=b),o.set(h,x)}const i=new Set(n.pinnedKeys),l=Array.from(o.entries()).map(([p,m])=>({id:`project:${p}`,label:m.label,kind:"project",projectPath:m.path,projectKey:p,updatedAt:m.updatedAt,sessions:lv(m.sessions,n.sort,n.titleOverrides,i,r)}));if(a.length){const p=a.reduce((m,f)=>{const h=f.updatedAt??f.createdAt??null;return cv(h,m)?h:m},null);l.push({id:"workspace:chats",label:t.all,updatedAt:p,sessions:lv(a,n.sort,n.titleOverrides,i,r)})}return l.sort((p,m)=>{const f=$c(m.updatedAt)-$c(p.updatedAt);return f!==0?f:p.label.localeCompare(m.label,"en",{numeric:!0,sensitivity:"base"})}),l}function lv(e,t,n,r,a){return Hs(e,t,n).sort((o,i)=>{const l=Number(r.has(i.key))-Number(r.has(o.key));if(l!==0)return l;const c=Number(a.has(o.key))-Number(a.has(i.key));return c!==0?c:0})}function Hs(e,t,n){const r=[...e];return r.sort((a,o)=>{if(t==="title_asc"){const c=uv(a,n).localeCompare(uv(o,n),"en",{numeric:!0,sensitivity:"base"});return c!==0?c:Tl(o,"updatedAt")-Tl(a,"updatedAt")}const i=Tl(a,t==="created_desc"?"createdAt":"updatedAt");return Tl(o,t==="created_desc"?"createdAt":"updatedAt")-i}),r}function cv(e,t){return $c(e)>$c(t)}function $c(e){const t=Date.parse(e??"");return Number.isFinite(t)?t:0}function uv(e,t){var n,r;return(((n=t[e.key])==null?void 0:n.trim())||((r=e.title)==null?void 0:r.trim())||Gi(e.preview,"new chat")).toLocaleLowerCase("en")}function Tl(e,t){const n=Date.parse(e[t]??"");return Number.isFinite(n)?n:0}const dv=160,K5=160,f1="w-[8.5rem] min-w-[8.5rem]",Ws="grid w-[7.75rem] grid-cols-[1rem_minmax(0,1fr)] items-center gap-2",V5=u.memo(function({sessions:t,activeKey:n,onSelect:r,onRequestDelete:a,onTogglePin:o,onRequestRename:i,onToggleArchive:l,onToggleGroup:c,onRequestRenameProject:d,onNewChatInProject:p,pinnedKeys:m=[],archivedKeys:f=[],titleOverrides:h={},projectNameOverrides:y={},collapsedGroups:x={},runningChatIds:b=[],updatedChatIds:v=[],density:g="comfortable",showPreviews:w=!1,showTimestamps:k=!1,sort:C="updated_desc",showArchived:N=!1,defaultWorkspacePath:S,actionMenuPortalContainer:A,loading:E,emptyLabel:_}){const{t:R}=ie(),[T,F]=u.useState(dv),z=u.useMemo(()=>({pinned:R("chat.groups.pinned"),all:R("chat.groups.all"),today:R("chat.groups.today"),yesterday:R("chat.groups.yesterday"),earlier:R("chat.groups.earlier"),archived:R("chat.groups.archived"),projects:R("chat.groups.projects"),fallbackTitle:R("chat.newChat")}),[R]),K=u.useMemo(()=>B5(t,z,{pinnedKeys:m,archivedKeys:f,titleOverrides:h,projectNameOverrides:y,showArchived:N,sort:C,defaultWorkspacePath:S}),[f,z,m,t,N,C,h,y,S]),$=u.useMemo(()=>H5(K,T,n,x),[n,x,K,T]),W=u.useMemo(()=>K.reduce((I,Q)=>I+(am(Q,x)?0:Q.sessions.length),0),[x,K]),P=u.useMemo(()=>$.reduce((I,Q)=>I+Q.sessions.length,0),[$]),D=Math.max(0,W-P);if(u.useEffect(()=>{F(dv)},[N,C]),E&&t.length===0)return s.jsx("div",{className:"px-3 py-6 text-[12px] text-muted-foreground",children:R("chat.loading")});if(t.length===0)return s.jsx("div",{className:"px-3 py-6 text-[12px] leading-5 text-muted-foreground/80",children:_??R("chat.noSessions")});const G=new Set(m),Y=new Set(f),oe=new Set(b),de=new Set(v),pe=g==="compact",le=$.findIndex(I=>I.kind==="project");return s.jsx("div",{className:"h-full min-h-0 min-w-0 overflow-x-hidden overflow-y-auto overscroll-contain scrollbar-thin scrollbar-track-transparent",children:s.jsxs("div",{className:"min-w-0 space-y-3 px-2 py-1.5",children:[$.map((I,Q)=>{const O=d1(I),ne=p1(I,x),he=W5(I,n,x),ve=Math.max(0,I.sessions.length-he.length),me=I.sessions.length>Wf;return s.jsxs("section",{"aria-label":I.label,children:[Q===le?s.jsx("div",{className:"px-2 pb-1 text-[12px] font-medium text-muted-foreground/65",children:z.projects}):null,I.kind==="project"?s.jsx(G5,{label:I.label,path:I.projectPath,collapsed:!!x[I.id],onToggle:()=>c==null?void 0:c(I.id),onRequestRename:I.projectKey&&d?()=>d(I.projectKey??"",I.label):void 0,onNewChat:I.projectPath&&p?()=>p(I.projectPath??"",I.label):void 0,actionMenuPortalContainer:A,updatedAt:k?I.updatedAt:null}):s.jsx(Y5,{label:I.label}),I.kind==="project"&&x[I.id]?null:s.jsx("ul",{className:"space-y-0.5",children:he.map(ee=>{var Ne,Je;const we=ee.key===n,je=R("chat.fallbackTitle",{id:ee.chatId.slice(0,6)}),xe=((Ne=ee.title)==null?void 0:Ne.trim())||"",Ee=m1(ee,h,R("chat.newChat")),$e=((Je=h[ee.key])==null?void 0:Je.trim())||xe||Gi(ee.preview,je),Se=G.has(ee.key),Fe=Y.has(ee.key),B=ee.preview.trim(),X=w&&B&&B!==Ee,J=k?Af(ee.updatedAt??ee.createdAt):"",ye=I.kind==="project",Ie=oe.has(ee.chatId)?"running":de.has(ee.chatId)&&!we?"updated":null;return s.jsx("li",{className:"min-w-0",children:s.jsxs("div",{className:j("group flex min-w-0 max-w-full items-center gap-2 rounded-xl px-2 text-[13px] transition-colors",pe?"min-h-7":"min-h-8",we?"bg-sidebar-accent/70 text-sidebar-accent-foreground shadow-[inset_0_0_0_1px_hsl(var(--sidebar-border)/0.28)]":"text-sidebar-foreground/82 hover:bg-sidebar-accent/50 hover:text-sidebar-foreground"),children:[s.jsxs("button",{type:"button",onClick:()=>r(ee.key),title:$e,className:j("min-w-0 flex-1 overflow-hidden text-left",pe?"py-1":"py-1.5",ye&&"pl-7"),children:[ye?s.jsxs("span",{className:"flex w-full min-w-0 items-baseline gap-2",children:[s.jsx("span",{className:"min-w-0 flex-1 truncate font-medium leading-5",children:Ee}),J?s.jsx("span",{className:"shrink-0 text-[11.5px] font-medium text-muted-foreground/58",children:J}):null]}):s.jsx("span",{className:"block w-full truncate font-medium leading-5",children:Ee}),X?s.jsx("span",{className:"block w-full truncate text-[11.5px] leading-4 text-muted-foreground/72",children:B}):null,J&&!ye?s.jsx("span",{className:"block w-full truncate text-[11px] leading-4 text-muted-foreground/58",children:J}):null]}),s.jsx(X5,{state:Ie}),s.jsxs(gn,{modal:!1,children:[s.jsx(vn,{className:j("inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-muted-foreground/75 opacity-40 transition-opacity","hover:bg-sidebar-accent hover:text-sidebar-foreground group-hover:opacity-100","focus-visible:opacity-100",we&&"opacity-100"),"aria-label":R("chat.actions",{title:Ee}),children:s.jsx(tw,{className:"h-3.5 w-3.5"})}),s.jsxs(ln,{align:"end",className:f1,portalContainer:A,onCloseAutoFocus:ue=>ue.preventDefault(),children:[s.jsxs(gt,{onSelect:()=>o(ee.key),className:Ws,children:[Se?s.jsx(pA,{className:"h-4 w-4 shrink-0"}):s.jsx(mA,{className:"h-4 w-4 shrink-0"}),R(Se?"chat.unpin":"chat.pin")]}),s.jsxs(gt,{onSelect:()=>i(ee.key,Ee),className:Ws,children:[s.jsx(fs,{className:"h-4 w-4 shrink-0"}),R("chat.rename")]}),s.jsxs(gt,{onSelect:()=>l(ee.key),className:Ws,children:[Fe?s.jsx(Bj,{className:"h-4 w-4 shrink-0"}):s.jsx(Yb,{className:"h-4 w-4 shrink-0"}),R(Fe?"chat.unarchive":"chat.archive")]}),s.jsxs(gt,{onSelect:()=>{window.setTimeout(()=>a(ee.key,Ee),0)},className:j(Ws,"text-destructive focus:text-destructive"),children:[s.jsx(ya,{className:"h-4 w-4 shrink-0"}),R("chat.delete")]})]})]})]})},ee.key)})}),O&&me?s.jsx(Q5,{folded:ne,hiddenCount:ve,onToggle:()=>c==null?void 0:c(I.id)}):null]},I.id)}),D>0?s.jsx("div",{className:"px-2 pb-2 pt-1",children:s.jsx("button",{type:"button",onClick:()=>F(I=>Math.min(W,I+K5)),className:"h-8 w-full rounded-full text-[12px] font-medium text-muted-foreground/65 transition-colors hover:bg-sidebar-accent/65 hover:text-muted-foreground",children:R("chat.showMore",{count:D})})}):null]})})});function G5({label:e,path:t,collapsed:n,onToggle:r,onRequestRename:a,onNewChat:o,actionMenuPortalContainer:i,updatedAt:l}){const{t:c}=ie();return s.jsxs("div",{title:t,className:"group flex min-w-0 items-center gap-1 px-1 pb-1 pt-1 text-[12px] font-medium text-muted-foreground/78",children:[s.jsxs("button",{type:"button","aria-expanded":!n,onClick:r,className:"flex min-w-0 flex-1 items-center gap-2 rounded-lg px-1.5 py-1 text-left transition-colors hover:bg-sidebar-accent/45 hover:text-sidebar-foreground",children:[s.jsx(Gl,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),s.jsx("span",{className:"min-w-0 flex-1 truncate",children:e})]}),l?s.jsx("span",{className:"shrink-0 text-[11px] text-muted-foreground/55",children:Af(l)}):null,a?s.jsxs(gn,{modal:!1,children:[s.jsx(vn,{className:j("inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-muted-foreground/70 opacity-40 transition-opacity","hover:bg-sidebar-accent hover:text-sidebar-foreground group-hover:opacity-100 focus-visible:opacity-100"),"aria-label":c("chat.actions",{title:e}),onClick:d=>d.stopPropagation(),children:s.jsx(tw,{className:"h-3.5 w-3.5"})}),s.jsx(ln,{align:"end",className:f1,portalContainer:i,onCloseAutoFocus:d=>d.preventDefault(),children:s.jsxs(gt,{onSelect:a,className:Ws,children:[s.jsx(fs,{className:"h-4 w-4 shrink-0"}),c("chat.rename")]})})]}):null,o?s.jsx("button",{type:"button","aria-label":c("chat.newInProject",{project:e}),title:c("chat.newInProject",{project:e}),onClick:d=>{d.stopPropagation(),o()},className:j("inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-muted-foreground/70 opacity-40 transition-opacity","hover:bg-sidebar-accent hover:text-sidebar-foreground group-hover:opacity-100 focus-visible:opacity-100"),children:s.jsx(ga,{className:"h-3.5 w-3.5"})}):null]})}function Y5({label:e}){return s.jsx("div",{className:"px-2 pb-1 text-[12px] font-medium text-muted-foreground/65",children:e})}function Q5({folded:e,hiddenCount:t,onToggle:n}){var i;const{t:r,i18n:a}=ie(),o=(i=a.resolvedLanguage)!=null&&i.startsWith("zh")?`已折叠 ${t} 个对话`:`${t} hidden chats`;return s.jsx("div",{className:"px-2 pb-1 pt-1",children:s.jsx("button",{type:"button",onClick:n,className:"h-7 w-full rounded-xl text-left text-[12px] font-medium text-muted-foreground/65 transition-colors hover:bg-sidebar-accent/50 hover:text-muted-foreground",children:s.jsx("span",{className:"px-2",children:e?r("chat.collapsed",{count:t,defaultValue:o}):r("chat.showLess")})})})}function X5({state:e}){const{t}=ie();if(e==="running"){const n=t("chat.activity.running");return s.jsx("span",{"aria-label":n,title:n,className:"grid h-4 w-4 shrink-0 place-items-center",children:s.jsx("span",{className:"h-3 w-3 animate-spin rounded-full border border-blue-500/25 border-t-blue-500 [animation-duration:1.4s] motion-reduce:animate-none dark:border-blue-400/25 dark:border-t-blue-400"})})}if(e==="updated"){const n=t("chat.activity.updated");return s.jsx("span",{"aria-label":n,title:n,className:"grid h-4 w-4 shrink-0 place-items-center",children:s.jsx("span",{className:"h-2 w-2 rounded-full bg-[#ff8a3d] shadow-[0_0_0_2px_rgba(255,138,61,0.16)]"})})}return s.jsx("span",{className:"h-4 w-4 shrink-0","aria-hidden":"true"})}const h1=u.createContext(null);function J5({client:e,token:t,modelName:n=null,children:r}){return s.jsx(h1.Provider,{value:{client:e,token:t,modelName:n},children:r})}function kr(){const e=u.useContext(h1);if(!e)throw new Error("useClient must be used within a ClientProvider");return e}const Z5={idle:{color:"text-muted-foreground"},connecting:{color:"text-amber-700 dark:text-amber-300"},open:{color:"text-emerald-700 dark:text-emerald-400"},reconnecting:{color:"text-amber-700 dark:text-amber-300"},closed:{color:"text-muted-foreground"},error:{color:"text-destructive"}};function eL(){const{t:e}=ie(),{client:t}=kr(),[n,r]=u.useState(t.status);u.useEffect(()=>t.onStatus(r),[t]);const a=Z5[n],o=n==="connecting"||n==="reconnecting"||n==="error",i=e(`connection.${n}`);return s.jsxs("span",{className:j("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full transition-colors","text-muted-foreground/70 hover:bg-sidebar-accent/65",a.color),"aria-live":"polite",role:"status",title:i,children:[s.jsxs("span",{className:"relative flex h-2 w-2","aria-hidden":!0,children:[o&&s.jsx("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-current opacity-75"}),s.jsx("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-current"})]}),s.jsx("span",{className:"sr-only",children:i})]})}var tL=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],nL=tL.reduce((e,t)=>{const n=y0(`Primitive.${t}`),r=u.forwardRef((a,o)=>{const{asChild:i,...l}=a,c=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(c,{...l,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),rL="Separator",pv="horizontal",aL=["horizontal","vertical"],g1=u.forwardRef((e,t)=>{const{decorative:n,orientation:r=pv,...a}=e,o=oL(r)?r:pv,l=n?{role:"none"}:{"aria-orientation":o==="vertical"?o:void 0,role:"separator"};return s.jsx(nL.div,{"data-orientation":o,...l,...a,ref:t})});g1.displayName=rL;function oL(e){return aL.includes(e)}var v1=g1;const x1=u.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>s.jsx(v1,{ref:a,decorative:n,orientation:t,className:j("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));x1.displayName=v1.displayName;function sL(){var n;if(typeof navigator>"u")return!1;const e=navigator.platform||"",t=((n=navigator.userAgentData)==null?void 0:n.platform)||"";return/mac|iphone|ipad|ipod/i.test(`${e} ${t}`)}function iL(){return sL()?"Cmd+Shift+O":"Ctrl+Shift+O"}function Rd(e){var l,c,d,p;const{t}=ie(),[n,r]=u.useState(null),a=!!e.collapsed,o=t("thread.header.toggleSidebar"),i=iL();return s.jsxs("nav",{ref:e.containActionMenus?r:void 0,"aria-label":t("sidebar.navigation"),className:j("flex h-full w-full min-w-0 flex-col text-sidebar-foreground",e.hostChromeInset?"bg-transparent":"bg-sidebar",!e.hostChromeInset&&"border-r border-sidebar-border/60"),children:[s.jsxs("div",{className:j("flex items-center px-3 pb-2.5",e.hostChromeInset?"pt-[2.85rem]":"pt-3",a?"w-14 justify-start":"justify-between"),children:[s.jsx("button",{type:"button","aria-label":a?o:void 0,"aria-hidden":a?void 0:!0,title:a?o:void 0,onClick:a?e.onExpand:void 0,tabIndex:a?0:-1,className:j("flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-xl transition-colors",a?"-ml-0.5 hover:bg-sidebar-accent/75":"pointer-events-none -ml-0.5"),children:s.jsx("img",{src:"/brand/nanobot_icon.png",alt:"",className:"h-8 w-8 select-none object-contain",draggable:!1})}),!a&&!e.hostChromeInset&&s.jsx(fe,{variant:"ghost",size:"icon","aria-label":t("sidebar.collapse"),onClick:e.onCollapse,className:"h-7 w-7 rounded-lg text-muted-foreground/85 hover:bg-sidebar-accent/75 hover:text-sidebar-foreground",children:s.jsx(ow,{className:"h-3.5 w-3.5"})})]}),s.jsxs("div",{className:j("space-y-1.5 px-2 pb-2",a&&"flex w-14 flex-col items-center px-0"),children:[s.jsx(Md,{collapsed:a,label:t("sidebar.newChat"),onClick:e.onNewChat,icon:s.jsx(xf,{className:"h-4 w-4"}),shortcut:i,ariaKeyShortcuts:"Meta+Shift+O Control+Shift+O"}),s.jsx(Md,{collapsed:a,label:t("sidebar.searchAria"),onClick:e.onOpenSearch,icon:s.jsx(Tt,{className:"h-4 w-4"})}),e.archivedCount?s.jsx(Md,{collapsed:a,label:e.showArchived?t("chat.hideArchived"):t("chat.showArchived"),onClick:e.onToggleArchived,icon:s.jsx(Yb,{className:"h-4 w-4"})}):null]}),s.jsx("div",{className:j("flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden transition-opacity duration-200",a&&"pointer-events-none opacity-0"),children:!a&&s.jsx(V5,{sessions:e.sessions,activeKey:e.activeKey,loading:e.loading,emptyLabel:t("chat.noSessions"),onSelect:e.onSelect,onRequestDelete:e.onRequestDelete,onTogglePin:e.onTogglePin,onRequestRename:e.onRequestRename,onToggleArchive:e.onToggleArchive,onToggleGroup:e.onToggleGroup,onRequestRenameProject:e.onRequestRenameProject,onNewChatInProject:e.onNewChatInProject,pinnedKeys:e.pinnedKeys,archivedKeys:e.archivedKeys,titleOverrides:e.titleOverrides,projectNameOverrides:e.projectNameOverrides,collapsedGroups:e.collapsedGroups,runningChatIds:e.runningChatIds,updatedChatIds:e.updatedChatIds,density:(l=e.viewState)==null?void 0:l.density,showPreviews:(c=e.viewState)==null?void 0:c.show_previews,showTimestamps:(d=e.viewState)==null?void 0:d.show_timestamps,sort:(p=e.viewState)==null?void 0:p.sort,showArchived:e.showArchived,defaultWorkspacePath:e.defaultWorkspacePath,actionMenuPortalContainer:e.containActionMenus?n:void 0})}),s.jsx(x1,{className:"bg-sidebar-border/50"}),s.jsx("div",{className:j("flex items-center gap-1 px-2.5 py-2.5 text-xs",a&&"w-14 flex-col px-0"),children:s.jsx(eL,{})})]})}function Md({collapsed:e,label:t,icon:n,onClick:r,active:a=!1,className:o,shortcut:i,ariaKeyShortcuts:l}){const c=i?`${t} (${i})`:e?t:void 0;return s.jsxs(fe,{type:"button",variant:"ghost","aria-label":t,"aria-current":a?"page":void 0,"aria-keyshortcuts":l,title:c,onClick:()=>r(),className:j("group h-8 min-w-0 gap-2 overflow-hidden rounded-full font-medium text-sidebar-foreground/85 hover:bg-sidebar-accent/75 hover:text-sidebar-foreground","transition-[width,padding,border-radius,color,background-color] duration-300 ease-out",e?"w-9 justify-center gap-0 rounded-xl px-0":"w-full justify-start gap-2 px-3 text-[12.5px]",a&&"bg-sidebar-accent text-sidebar-foreground shadow-[inset_0_0_0_1px_hsl(var(--sidebar-border)/0.55)]",o),children:[s.jsx("span",{className:j("flex shrink-0 items-center justify-center transition-transform duration-300 ease-out","translate-x-0"),"aria-hidden":!0,children:n}),s.jsx("span",{className:j("min-w-0 overflow-hidden truncate whitespace-nowrap transition-[max-width,opacity,transform] duration-200 ease-out",e?"max-w-0 -translate-x-1 opacity-0":"max-w-[12rem] translate-x-0 opacity-100"),children:t})]})}function lL({open:e,sessions:t,activeKey:n,loading:r,titleOverrides:a={},onOpenChange:o,onSelect:i}){const{t:l}=ie(),c=u.useRef(null),d=u.useRef([]),[p,m]=u.useState(""),[f,h]=u.useState(0),y=p.trim().toLowerCase(),x=u.useMemo(()=>{if(!e)return[];if(!y)return t;const C=y.split(/\s+/).filter(Boolean);return t.filter(N=>cL(N,C,a[N.key]))},[y,e,t,a]),b=x.length;u.useEffect(()=>{e&&(m(""),h(0),window.setTimeout(()=>{var C;return(C=c.current)==null?void 0:C.focus()},0))},[e]),u.useEffect(()=>{h(0)},[y]),u.useEffect(()=>{h(C=>b===0?0:Math.min(C,b-1))},[b]),u.useEffect(()=>{d.current=d.current.slice(0,b)},[b]),u.useEffect(()=>{var C;e&&((C=d.current[f])==null||C.scrollIntoView({block:"nearest",inline:"nearest"}))},[f,e]);const v=C=>{o(!1),i(C)},g=C=>{if(C.key==="ArrowDown"){C.preventDefault(),h(N=>b===0?0:(N+1)%b);return}if(C.key==="ArrowUp"){C.preventDefault(),h(N=>b===0?0:(N-1+b)%b);return}if(C.key==="Enter"){const N=x[f];if(!N)return;C.preventDefault(),v(N.key)}},w=l(y?"sidebar.noSearchResults":"chat.noSessions"),k=l(y?"sidebar.searchResults":"sidebar.recent");return e?s.jsx(Yi,{open:e,onOpenChange:o,children:s.jsxs(bs,{showCloseButton:!1,className:j("flex max-h-[min(40rem,calc(100vh-2rem))] w-[calc(100vw-2rem)] max-w-[42rem] flex-col gap-0 overflow-hidden p-0","rounded-[22px] border border-border bg-background text-foreground shadow-[0_22px_70px_rgba(0,0,0,0.22)]","dark:border-white/14 dark:bg-[#2b2b2b] dark:shadow-[0_26px_90px_rgba(0,0,0,0.44)] sm:rounded-[22px]"),children:[s.jsx(ws,{className:"sr-only",children:l("sidebar.searchAria")}),s.jsx(Ji,{className:"sr-only",children:l("sidebar.searchPlaceholder")}),s.jsxs("div",{className:"flex h-[62px] shrink-0 items-center gap-3 border-b border-border px-[18px]",children:[s.jsx(Tt,{className:"h-[18px] w-[18px] shrink-0 text-muted-foreground","aria-hidden":!0}),s.jsx("input",{ref:c,value:p,onChange:C=>m(C.target.value),onKeyDown:g,placeholder:l("sidebar.searchPlaceholder"),"aria-label":l("sidebar.searchAria"),className:"h-full min-w-0 flex-1 bg-transparent text-[19px] font-normal leading-none text-foreground outline-none placeholder:text-muted-foreground"})]}),s.jsx("div",{"data-testid":"session-search-scroll",className:"min-h-0 flex-1 overflow-y-auto overscroll-contain p-2.5 scrollbar-thin scrollbar-track-transparent",children:s.jsxs("section",{children:[s.jsx("div",{className:"px-2.5 pb-1.5 pt-1 text-[12px] font-medium text-muted-foreground",children:k}),r&&t.length===0?s.jsx("div",{className:"px-3 py-7 text-[13px] text-muted-foreground",children:l("chat.loading")}):x.length===0?s.jsx("div",{className:"px-3 py-7 text-[13px] text-muted-foreground",children:w}):s.jsx("ul",{className:"space-y-0.5",children:x.map((C,N)=>{var T,F;const S=((T=a[C.key])==null?void 0:T.trim())||((F=C.title)==null?void 0:F.trim())||Gi(C.preview,l("chat.newChat")),A=C.preview.trim(),E=A.length>0&&A.toLowerCase()!==S.trim().toLowerCase(),_=N===f,R=C.key===n;return s.jsx("li",{children:s.jsxs("button",{ref:z=>{d.current[N]=z},type:"button",onClick:()=>v(C.key),onMouseEnter:()=>h(N),"aria-current":R?"page":void 0,className:j("grid min-h-[54px] w-full min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 rounded-[11px] px-3 py-2 text-left transition-colors",_?"bg-muted text-foreground":"text-foreground hover:bg-muted"),children:[s.jsxs("span",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"block truncate text-[14px] font-medium leading-5",children:S}),E?s.jsx("span",{className:"block truncate text-[12px] leading-4 text-muted-foreground",children:A}):null]}),R?s.jsx("span",{className:"shrink-0 rounded-full bg-muted-foreground/10 px-2 py-0.5 text-[11px] font-medium text-muted-foreground",children:l("common.current",{defaultValue:"Current"})}):null]})},C.key)})})]})})]})}):null}function cL(e,t,n){const r=[n,e.title,e.preview].filter(Boolean).join(" ").toLowerCase();return t.every(a=>r.includes(a))}function uL(){const{t:e}=ie(),t=ys(),n=rT(t);return s.jsxs(gn,{children:[s.jsx(vn,{asChild:!0,children:s.jsxs(fe,{variant:"ghost",size:"sm","aria-label":e("sidebar.language.ariaLabel"),className:"h-7 gap-1.5 rounded-md px-2 text-[11px] text-muted-foreground hover:bg-sidebar-accent hover:text-sidebar-foreground",children:[s.jsx(tA,{className:"h-3.5 w-3.5"}),s.jsx("span",{className:"max-w-[7rem] truncate",children:n.nativeLabel})]})}),s.jsxs(ln,{align:"end",children:[s.jsx(l1,{children:e("sidebar.language.label")}),s.jsx(Hf,{}),s.jsx(L5,{value:t,onValueChange:r=>{RM(r)},children:Ai.map(r=>s.jsx(i1,{value:r.code,children:s.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[s.jsx("span",{children:r.nativeLabel}),r.nativeLabel!==r.label?s.jsx("span",{className:"truncate text-xs text-muted-foreground",children:r.label}):null]})},r.code))})]})]})}const qf=hu,dL=gu,y1=u.forwardRef(({className:e,...t},n)=>s.jsx(hs,{ref:n,className:j("fixed inset-0 z-50 bg-black/40 backdrop-blur-sm","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));y1.displayName=hs.displayName;const pL=b0("fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out",{variants:{side:{top:j("inset-x-0 top-0 border-b","data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top"),bottom:j("inset-x-0 bottom-0 border-t","data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom"),left:j("inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left"),right:j("inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right")}},defaultVariants:{side:"right"}}),ju=u.forwardRef(({side:e="right",className:t,children:n,showCloseButton:r=!0,...a},o)=>s.jsxs(dL,{children:[s.jsx(y1,{}),s.jsxs(gs,{ref:o,className:j(pL({side:e}),"data-[state=open]:animate-in data-[state=closed]:animate-out","duration-300",t),...a,children:[n,r?s.jsxs(Vi,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[s.jsx(xr,{className:"h-4 w-4"}),s.jsx("span",{className:"sr-only",children:"Close"})]}):null]})]}));ju.displayName=gs.displayName;const Au=u.forwardRef(({className:e,...t},n)=>s.jsx(vs,{ref:n,className:j("text-lg font-semibold text-foreground",e),...t}));Au.displayName=vs.displayName;const b1=u.forwardRef(({className:e,...t},n)=>s.jsx(Ki,{ref:n,className:j("text-sm text-muted-foreground",e),...t}));b1.displayName=Ki.displayName;const mL=2e4;async function Kf(e,t={},n=mL){if(!Number.isFinite(n)||n<=0)return fetch(e,t);const r=typeof AbortController<"u"?new AbortController:null;let a;const o=fetch(e,{...t,signal:(r==null?void 0:r.signal)??t.signal}),i=new Promise((l,c)=>{a=setTimeout(()=>{c(new Error(`Request timed out after ${n}ms`)),r==null||r.abort()},n)});try{return await Promise.race([o,i])}finally{a!==void 0&&clearTimeout(a)}}const Kt=2e4;class as extends Error{constructor(n,r){super(r);He(this,"status");this.status=n,this.name="ApiError"}}async function Ve(e,t,n,r=0){var i,l;const a=await Kf(e,{...n??{},headers:{...(n==null?void 0:n.headers)??{},Authorization:`Bearer ${t}`},credentials:"same-origin"},r);if(!a.ok){const c=typeof a.text=="function"?(await a.text()).trim():"";throw new as(a.status,c||`HTTP ${a.status}`)}const o=((l=(i=a.headers)==null?void 0:i.get)==null?void 0:l.call(i,"content-type"))??"";if(o&&!o.toLowerCase().includes("application/json")){const d=(typeof a.text=="function"?await a.text():"").trimStart().toLowerCase().startsWith("{if(r!=null){if(typeof r=="string"){const a=r.trim();a&&(t[n]=a);return}t[n]=r}}),!!Object.keys(t).length)return{"X-Nanobot-MCP-Values":JSON.stringify(t)}}function fL(e){return{"X-Nanobot-Automation-Values":encodeURIComponent(JSON.stringify(e))}}function hL(e){const t=e.indexOf(":");return t===-1?{channel:"",chatId:e}:{channel:e.slice(0,t),chatId:e.slice(t+1)}}async function gL(e,t=""){return(await Ve(`${t}/api/sessions`,e,void 0,Kt)).sessions.map(r=>({key:r.key,...hL(r.key),createdAt:r.created_at,updatedAt:r.updated_at,title:r.title??"",preview:r.preview??"",runStartedAt:r.run_started_at??null,workspaceScope:r.workspace_scope??null}))}async function mv(e,t,n,r=""){const a=typeof n=="string"?void 0:n,o=typeof n=="string"?n:r,i=new URLSearchParams;(a==null?void 0:a.limit)!==void 0&&i.set("limit",String(a.limit)),a!=null&&a.direction&&i.set("direction",a.direction),a!=null&&a.before&&i.set("before",a.before);const l=i.toString(),c=l?`?${l}`:"",d=`${o}/api/sessions/${encodeURIComponent(t)}/webui-thread${c}`,p=await Kf(d,{headers:{Authorization:`Bearer ${e}`},credentials:"same-origin"});if(p.status===404)return null;if(!p.ok)throw new as(p.status,`HTTP ${p.status}`);return await p.json()}async function vL(e,t,n,r=""){const a=new URLSearchParams;return a.set("path",n),Ve(`${r}/api/sessions/${encodeURIComponent(t)}/file-preview?${a}`,e,void 0,Kt)}async function w1(e,t,n=""){return Ve(`${n}/api/sessions/${encodeURIComponent(t)}/automations`,e,void 0,Kt)}async function fv(e,t=""){return Ve(`${t}/api/webui/automations`,e,void 0,Kt)}async function xL(e,t,n,r=""){const a=new URLSearchParams;return a.set("id",n),Ve(`${r}/api/webui/automations/${t}?${a}`,e,void 0,Kt)}async function yL(e,t,n,r=""){const a=new URLSearchParams;return a.set("id",t),Ve(`${r}/api/webui/automations/update?${a}`,e,{headers:fL(n)},Kt)}async function bL(e,t=""){return Ve(`${t}/api/webui/skills`,e,void 0,Kt)}async function wL(e,t,n=""){return Ve(`${n}/api/webui/skills/${encodeURIComponent(t)}`,e,void 0,Kt)}async function kL(e,t,n,r=""){const a=typeof n=="string"?void 0:n,o=typeof n=="string"?n:r,i=new URLSearchParams;a!=null&&a.deleteAutomations&&i.set("delete_automations","true");const l=i.toString()?`?${i}`:"";return Ve(`${o}/api/sessions/${encodeURIComponent(t)}/delete${l}`,e)}async function oi(e,t=""){return Ve(`${t}/api/settings`,e,void 0,Kt)}async function CL(e,t=""){return Ve(`${t}/api/settings/usage`,e,void 0,Kt)}async function SL(e,t=""){return Ve(`${t}/api/settings/version-check`,e,void 0,1e4)}async function NL(e,t=""){return Ve(`${t}/api/workspaces`,e,void 0,Kt)}async function jL(e,t=""){return Ve(`${t}/api/settings/cli-apps`,e,void 0,Kt)}async function AL(e,t=""){return Ve(`${t}/api/settings/cli-apps?installed_only=1`,e,void 0,Kt)}async function _L(e,t,n,r=""){const a=new URLSearchParams;return a.set("name",n),Ve(`${r}/api/settings/cli-apps/${t}?${a}`,e)}async function k1(e,t=""){return Ve(`${t}/api/settings/mcp-presets`,e,void 0,Kt)}async function PL(e,t,n=""){const r=new URLSearchParams;return r.set("provider",t),Ve(`${n}/api/settings/provider-models?${r}`,e,void 0,Kt)}async function TL(e,t,n,r={},a=""){const o=new URLSearchParams;return o.set("name",n),Ve(`${a}/api/settings/mcp-presets/${t}?${o}`,e,{headers:_u(r)})}async function RL(e,t,n=""){return Ve(`${n}/api/settings/mcp-presets/custom`,e,{headers:_u(t)})}async function ML(e,t,n=""){return Ve(`${n}/api/settings/mcp-presets/import`,e,{headers:_u({config:t})})}async function EL(e,t,n,r=""){return Ve(`${r}/api/settings/mcp-presets/tools`,e,{headers:_u({name:t,enabled_tools:n})})}async function IL(e,t=""){return(await Ve(`${t}/api/commands`,e,void 0,Kt)).commands.filter(r=>!["/stop","/restart"].includes(r.command)).map(r=>({command:r.command,title:r.title,description:r.description,icon:r.icon,argHint:r.arg_hint??""}))}async function LL(e,t=""){return Ve(`${t}/api/webui/sidebar-state`,e,void 0,Kt)}async function DL(e,t,n=""){const r=new URLSearchParams;return r.set("state",JSON.stringify(t)),Ve(`${n}/api/webui/sidebar-state/update?${r}`,e)}async function hv(e,t,n=""){const r=new URLSearchParams;return t.modelPreset!==void 0&&r.set("model_preset",t.modelPreset??"default"),t.model!==void 0&&r.set("model",t.model),t.provider!==void 0&&r.set("provider",t.provider),t.contextWindowTokens!==void 0&&r.set("context_window_tokens",String(t.contextWindowTokens)),t.timezone!==void 0&&r.set("timezone",t.timezone),t.botName!==void 0&&r.set("bot_name",t.botName),t.botIcon!==void 0&&r.set("bot_icon",t.botIcon),t.toolHintMaxLength!==void 0&&r.set("tool_hint_max_length",String(t.toolHintMaxLength)),Ve(`${n}/api/settings/update?${r}`,e)}async function OL(e,t,n=""){const r=new URLSearchParams;return t.name!==void 0&&r.set("name",t.name),r.set("label",t.label),r.set("provider",t.provider),r.set("model",t.model),Ve(`${n}/api/settings/model-configurations/create?${r}`,e)}async function FL(e,t,n=""){const r=new URLSearchParams;return r.set("name",t.name),t.label!==void 0&&r.set("label",t.label),t.provider!==void 0&&r.set("provider",t.provider),t.model!==void 0&&r.set("model",t.model),t.contextWindowTokens!==void 0&&r.set("context_window_tokens",String(t.contextWindowTokens)),Ve(`${n}/api/settings/model-configurations/update?${r}`,e)}async function zL(e,t,n=""){const r=new URLSearchParams;return r.set("provider",t.provider),t.apiKey!==void 0&&r.set("api_key",t.apiKey),t.apiBase!==void 0&&r.set("api_base",t.apiBase),t.apiType!==void 0&&r.set("api_type",t.apiType),Ve(`${n}/api/settings/provider/update?${r}`,e)}async function $L(e,t,n=""){const r=new URLSearchParams;return r.set("provider",t),Ve(`${n}/api/settings/provider/oauth-login?${r}`,e)}async function UL(e,t,n=""){const r=new URLSearchParams;return r.set("provider",t),Ve(`${n}/api/settings/provider/oauth-logout?${r}`,e)}async function BL(e,t,n=""){const r=new URLSearchParams;return r.set("provider",t.provider),t.apiKey!==void 0&&r.set("api_key",t.apiKey),t.baseUrl!==void 0&&r.set("base_url",t.baseUrl),t.maxResults!==void 0&&r.set("max_results",String(t.maxResults)),t.timeout!==void 0&&r.set("timeout",String(t.timeout)),t.useJinaReader!==void 0&&r.set("use_jina_reader",String(t.useJinaReader)),Ve(`${n}/api/settings/web-search/update?${r}`,e)}async function HL(e,t,n=""){const r=new URLSearchParams;return r.set("webui_allow_local_service_access",String(t.webuiAllowLocalServiceAccess)),r.set("webui_default_access_mode",t.webuiDefaultAccessMode),Ve(`${n}/api/settings/network-safety/update?${r}`,e)}async function WL(e,t,n=""){const r=new URLSearchParams;return r.set("enabled",String(t.enabled)),r.set("provider",t.provider),r.set("model",t.model),r.set("default_aspect_ratio",t.defaultAspectRatio),r.set("default_image_size",t.defaultImageSize),r.set("max_images_per_turn",String(t.maxImagesPerTurn)),Ve(`${n}/api/settings/image-generation/update?${r}`,e)}async function qL(e,t,n=""){const r=new URLSearchParams;return r.set("enabled",String(t.enabled)),r.set("provider",t.provider),r.set("model",t.model),r.set("language",t.language),r.set("max_duration_sec",String(t.maxDurationSec)),r.set("max_upload_mb",String(t.maxUploadMb)),Ve(`${n}/api/settings/transcription/update?${r}`,e)}function KL({skills:e}){const{t}=ie(),n=e.filter(o=>o.available).length,[r,a]=u.useState(null);return s.jsxs("div",{className:"space-y-7",children:[s.jsxs("section",{className:"flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between",children:[s.jsx("p",{className:"max-w-[680px] text-[13px] leading-5 text-muted-foreground",children:t("settings.skills.description",{defaultValue:"Review the instruction skills this agent can load during a conversation."})}),s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:t("settings.skills.caption",{available:n,total:e.length,defaultValue:"{{available}} available · {{total}} total"})})]}),s.jsxs("section",{children:[s.jsxs("div",{className:"flex items-center justify-between border-b border-border/45 pb-3",children:[s.jsx("h2",{className:"mb-2 px-1 text-[13px] font-semibold tracking-[-0.01em] text-foreground/85",children:t("settings.skills.featured",{defaultValue:"Agent skills"})}),s.jsx("span",{className:"rounded-full bg-muted px-2.5 py-1 text-[12px] font-medium text-muted-foreground",children:e.length})]}),e.length?s.jsx("div",{className:"grid gap-x-10 gap-y-1 py-3 md:grid-cols-2",children:e.map(o=>s.jsx(VL,{skill:o,onSelect:a},`${o.source}:${o.name}`))}):s.jsx("div",{className:"px-3 py-12 text-center text-sm text-muted-foreground",children:t("settings.skills.empty",{defaultValue:"No skills are available."})})]}),s.jsx(GL,{skill:r,open:r!==null,onOpenChange:o=>{o||a(null)}})]})}function VL({skill:e,onSelect:t}){const{t:n}=ie(),r=C1(e.source,n),a=e.available?Et:ja,o=e.available?n("settings.skills.statusAvailable",{defaultValue:"Available"}):n("settings.skills.statusUnavailable",{defaultValue:"Unavailable"});return s.jsxs("button",{type:"button","aria-label":n("settings.skills.openDetails",{name:e.name,defaultValue:"Open details for {{name}}"}),onClick:()=>t(e),className:j("group flex min-w-0 items-center gap-3 rounded-[16px] px-3 py-3 text-left transition-colors","hover:bg-muted/45 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",!e.available&&"opacity-65"),children:[s.jsx("div",{className:"flex h-12 w-12 shrink-0 items-center justify-center rounded-[14px] bg-muted/70 text-muted-foreground",children:s.jsx(Ga,{className:"h-5 w-5",strokeWidth:1.8,"aria-hidden":!0})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx("h3",{className:"truncate text-[15px] font-semibold leading-5 text-foreground",children:e.name}),s.jsx("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-semibold leading-none text-muted-foreground",children:r})]}),s.jsx("p",{className:"mt-1 line-clamp-2 text-[13px] leading-5 text-muted-foreground",children:e.description}),!e.available&&e.unavailable_reason?s.jsx("p",{className:"mt-1 truncate text-[12px] leading-4 text-muted-foreground/80",children:n("settings.skills.unavailableReason",{reason:e.unavailable_reason,defaultValue:"Missing: {{reason}}"})}):null]}),s.jsxs("span",{title:!e.available&&e.unavailable_reason?e.unavailable_reason:void 0,className:j("hidden shrink-0 items-center gap-1 rounded-full px-2.5 py-1 text-[12px] font-medium sm:inline-flex",e.available?"bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":"bg-muted text-muted-foreground"),children:[s.jsx(a,{className:"h-3.5 w-3.5","aria-hidden":!0}),o]})]})}function GL({skill:e,open:t,onOpenChange:n}){const{token:r}=kr(),{t:a}=ie(),[o,i]=u.useState(null),[l,c]=u.useState(!1),[d,p]=u.useState(!1);if(u.useEffect(()=>{if(!t||!e)return;let y=!1;return i(null),c(!0),p(!1),wL(r,e.name).then(x=>{y||i(x)}).catch(()=>{y||p(!0)}).finally(()=>{y||c(!1)}),()=>{y=!0}},[t,e,r]),!e)return null;const m=o??e,f=C1(m.source,a),h=m.available?a("settings.skills.statusAvailable",{defaultValue:"Available"}):a("settings.skills.statusUnavailable",{defaultValue:"Unavailable"});return s.jsx(qf,{open:t,onOpenChange:n,children:s.jsx(ju,{side:"right",className:"w-[min(34rem,calc(100vw-1rem))] max-w-none gap-0 overflow-hidden p-0 sm:max-w-none",children:s.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-5 py-5",children:[s.jsxs("div",{className:"flex items-start gap-3 pr-8",children:[s.jsx("div",{className:"flex h-12 w-12 shrink-0 items-center justify-center rounded-[15px] bg-muted/70 text-muted-foreground",children:s.jsx(Ga,{className:"h-5 w-5",strokeWidth:1.8,"aria-hidden":!0})}),s.jsxs("div",{className:"min-w-0",children:[s.jsx(Au,{className:"truncate text-[20px] font-semibold",children:m.name}),s.jsx(b1,{className:"sr-only",children:a("settings.skills.detailDescription",{name:m.name,defaultValue:"Details for {{name}}."})}),s.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-1.5 text-[12px] text-muted-foreground",children:[s.jsx(sm,{children:f}),s.jsx(sm,{tone:m.available?"success":"muted",children:h})]})]})]}),l?s.jsxs("div",{className:"mt-8 flex items-center gap-2 text-sm text-muted-foreground",children:[s.jsx(pt,{className:"h-4 w-4 animate-spin","aria-hidden":!0}),a("settings.skills.loadingDetail",{defaultValue:"Loading skill details..."})]}):d?s.jsx("div",{className:"mt-8 rounded-[16px] bg-destructive/10 px-3 py-3 text-sm text-destructive",children:a("settings.skills.loadFailed",{defaultValue:"Could not load skill details."})}):s.jsxs("div",{className:"mt-7 space-y-6",children:[s.jsx(om,{title:a("settings.skills.descriptionTitle",{defaultValue:"Description"}),children:s.jsx("p",{className:"text-[14px] leading-6 text-muted-foreground",children:m.description})}),s.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[s.jsx(gv,{label:a("settings.skills.source",{defaultValue:"Source"}),value:f}),s.jsx(gv,{label:a("settings.skills.status",{defaultValue:"Status"}),value:h})]}),!m.available&&m.unavailable_reason?s.jsx(om,{title:a("settings.skills.unavailableReasonLabel",{defaultValue:"Unavailable reason"}),children:s.jsx("p",{className:"text-[13px] leading-5 text-destructive/85",children:m.unavailable_reason})}):null,o?s.jsx(QL,{detail:o}):null,o?s.jsx(YL,{markdown:o.raw_markdown}):null]})]})})})}function YL({markdown:e}){const{t}=ie(),n=e||t("settings.skills.rawInstructionsEmpty",{defaultValue:"No raw instructions."});return s.jsxs("details",{className:"group rounded-[18px] border border-border/45 bg-muted/20 px-3 py-3",children:[s.jsx("summary",{className:"cursor-pointer select-none text-[13px] font-medium text-foreground/90 transition-colors hover:text-foreground",children:t("settings.skills.rawInstructions",{defaultValue:"Raw SKILL.md"})}),s.jsx("div",{className:"mt-3 overflow-hidden rounded-[14px] border border-border/35 bg-background/70",children:s.jsx("pre",{className:j("max-h-[min(42vh,32rem)] overflow-auto overscroll-contain px-3.5 py-3 pr-4","whitespace-pre-wrap break-words font-mono text-[12px] leading-[1.7] text-foreground/62","scrollbar-thin scrollbar-track-transparent","[&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5","[&::-webkit-scrollbar-thumb]:bg-muted-foreground/25"),children:n})})]})}function gv({label:e,value:t}){return s.jsxs("div",{className:"rounded-[16px] bg-muted/35 px-3 py-2.5",children:[s.jsx("div",{className:"text-[11px] text-muted-foreground",children:e}),s.jsx("div",{className:"mt-0.5 truncate text-[13px] font-medium text-foreground",children:t})]})}function QL({detail:e}){const{t}=ie(),{bins:n,env:r,missing_bins:a,missing_env:o}=e.requirements,i=n.length>0||r.length>0;return s.jsx(om,{title:t("settings.skills.requirements",{defaultValue:"Requirements"}),children:i?s.jsxs("div",{className:"space-y-3",children:[a.length?s.jsx(Rl,{title:t("settings.skills.missingCommands",{defaultValue:"Missing CLI"}),items:a,tone:"danger",icon:s.jsx(_c,{className:"h-3.5 w-3.5","aria-hidden":!0})}):null,o.length?s.jsx(Rl,{title:t("settings.skills.missingEnvironment",{defaultValue:"Missing ENV"}),items:o,tone:"danger",icon:s.jsx(pg,{className:"h-3.5 w-3.5","aria-hidden":!0})}):null,n.length?s.jsx(Rl,{title:t("settings.skills.commands",{defaultValue:"Commands"}),items:n,icon:s.jsx(_c,{className:"h-3.5 w-3.5","aria-hidden":!0})}):null,r.length?s.jsx(Rl,{title:t("settings.skills.environment",{defaultValue:"Environment variables"}),items:r,icon:s.jsx(pg,{className:"h-3.5 w-3.5","aria-hidden":!0})}):null]}):s.jsx("p",{className:"text-[13px] text-muted-foreground",children:t("settings.skills.noRequirements",{defaultValue:"No explicit requirements."})})})}function om({title:e,children:t}){return s.jsxs("section",{children:[s.jsx("h3",{className:"mb-2 text-[12px] font-medium text-muted-foreground",children:e}),t]})}function Rl({title:e,items:t,icon:n,tone:r="muted"}){return s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("div",{className:j("flex items-center gap-1.5 text-[12px]",r==="danger"?"text-destructive":"text-muted-foreground"),children:[n,e]}),s.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.map(a=>s.jsx(sm,{children:a},a))})]})}function sm({children:e,tone:t="muted"}){return s.jsx("span",{className:j("inline-flex max-w-full items-center rounded-full px-2 py-0.5 text-[11px] font-medium",t==="success"?"bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":"bg-muted text-muted-foreground"),children:e})}function C1(e,t){return e==="workspace"?t("settings.skills.sourceWorkspace",{defaultValue:"Custom"}):e==="builtin"?t("settings.skills.sourceBuiltin",{defaultValue:"Built-in"}):e}var XL=Symbol("radix.slottable");function JL(e){const t=({children:n})=>s.jsx(s.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=XL,t}var ZL=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),e3="VisuallyHidden",S1=u.forwardRef((e,t)=>s.jsx(xt.span,{...e,ref:t,style:{...ZL,...e.style}}));S1.displayName=e3;var t3=S1,[Pu]=Aa("Tooltip",[wu]),Tu=wu(),N1="TooltipProvider",n3=700,im="tooltip.open",[r3,Vf]=Pu(N1),j1=e=>{const{__scopeTooltip:t,delayDuration:n=n3,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:o}=e,i=u.useRef(!0),l=u.useRef(!1),c=u.useRef(0);return u.useEffect(()=>{const d=c.current;return()=>window.clearTimeout(d)},[]),s.jsx(r3,{scope:t,isOpenDelayedRef:i,delayDuration:n,onOpen:u.useCallback(()=>{window.clearTimeout(c.current),i.current=!1},[]),onClose:u.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.current=!0,r)},[r]),isPointerInTransitRef:l,onPointerInTransitChange:u.useCallback(d=>{l.current=d},[]),disableHoverableContent:a,children:o})};j1.displayName=N1;var Mi="Tooltip",[a3,rl]=Pu(Mi),A1=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:o,disableHoverableContent:i,delayDuration:l}=e,c=Vf(Mi,e.__scopeTooltip),d=Tu(t),[p,m]=u.useState(null),f=$a(),h=u.useRef(0),y=i??c.disableHoverableContent,x=l??c.delayDuration,b=u.useRef(!1),[v,g]=uu({prop:r,defaultProp:a??!1,onChange:S=>{S?(c.onOpen(),document.dispatchEvent(new CustomEvent(im))):c.onClose(),o==null||o(S)},caller:Mi}),w=u.useMemo(()=>v?b.current?"delayed-open":"instant-open":"closed",[v]),k=u.useCallback(()=>{window.clearTimeout(h.current),h.current=0,b.current=!1,g(!0)},[g]),C=u.useCallback(()=>{window.clearTimeout(h.current),h.current=0,g(!1)},[g]),N=u.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{b.current=!0,g(!0),h.current=0},x)},[x,g]);return u.useEffect(()=>()=>{h.current&&(window.clearTimeout(h.current),h.current=0)},[]),s.jsx(nk,{...d,children:s.jsx(a3,{scope:t,contentId:f,open:v,stateAttribute:w,trigger:p,onTriggerChange:m,onTriggerEnter:u.useCallback(()=>{c.isOpenDelayedRef.current?N():k()},[c.isOpenDelayedRef,N,k]),onTriggerLeave:u.useCallback(()=>{y?C():(window.clearTimeout(h.current),h.current=0)},[C,y]),onOpen:k,onClose:C,disableHoverableContent:y,children:n})})};A1.displayName=Mi;var lm="TooltipTrigger",_1=u.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=rl(lm,n),o=Vf(lm,n),i=Tu(n),l=u.useRef(null),c=wt(t,l,a.onTriggerChange),d=u.useRef(!1),p=u.useRef(!1),m=u.useCallback(()=>d.current=!1,[]);return u.useEffect(()=>()=>document.removeEventListener("pointerup",m),[m]),s.jsx(rk,{asChild:!0,...i,children:s.jsx(xt.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:c,onPointerMove:Re(e.onPointerMove,f=>{f.pointerType!=="touch"&&!p.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),p.current=!0)}),onPointerLeave:Re(e.onPointerLeave,()=>{a.onTriggerLeave(),p.current=!1}),onPointerDown:Re(e.onPointerDown,()=>{a.open&&a.onClose(),d.current=!0,document.addEventListener("pointerup",m,{once:!0})}),onFocus:Re(e.onFocus,()=>{d.current||a.onOpen()}),onBlur:Re(e.onBlur,a.onClose),onClick:Re(e.onClick,a.onClose)})})});_1.displayName=lm;var Gf="TooltipPortal",[o3,s3]=Pu(Gf,{forceMount:void 0}),P1=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,o=rl(Gf,t);return s.jsx(o3,{scope:t,forceMount:n,children:s.jsx(br,{present:n||o.open,children:s.jsx(pu,{asChild:!0,container:a,children:r})})})};P1.displayName=Gf;var os="TooltipContent",T1=u.forwardRef((e,t)=>{const n=s3(os,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...o}=e,i=rl(os,e.__scopeTooltip);return s.jsx(br,{present:r||i.open,children:i.disableHoverableContent?s.jsx(R1,{side:a,...o,ref:t}):s.jsx(i3,{side:a,...o,ref:t})})}),i3=u.forwardRef((e,t)=>{const n=rl(os,e.__scopeTooltip),r=Vf(os,e.__scopeTooltip),a=u.useRef(null),o=wt(t,a),[i,l]=u.useState(null),{trigger:c,onClose:d}=n,p=a.current,{onPointerInTransitChange:m}=r,f=u.useCallback(()=>{l(null),m(!1)},[m]),h=u.useCallback((y,x)=>{const b=y.currentTarget,v={x:y.clientX,y:y.clientY},g=p3(v,b.getBoundingClientRect()),w=m3(v,g),k=f3(x.getBoundingClientRect()),C=g3([...w,...k]);l(C),m(!0)},[m]);return u.useEffect(()=>()=>f(),[f]),u.useEffect(()=>{if(c&&p){const y=b=>h(b,p),x=b=>h(b,c);return c.addEventListener("pointerleave",y),p.addEventListener("pointerleave",x),()=>{c.removeEventListener("pointerleave",y),p.removeEventListener("pointerleave",x)}}},[c,p,h,f]),u.useEffect(()=>{if(i){const y=x=>{const b=x.target,v={x:x.clientX,y:x.clientY},g=(c==null?void 0:c.contains(b))||(p==null?void 0:p.contains(b)),w=!h3(v,i);g?f():w&&(f(),d())};return document.addEventListener("pointermove",y),()=>document.removeEventListener("pointermove",y)}},[c,p,i,d,f]),s.jsx(R1,{...e,ref:o})}),[l3,c3]=Pu(Mi,{isInside:!1}),u3=JL("TooltipContent"),R1=u.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:o,onPointerDownOutside:i,...l}=e,c=rl(os,n),d=Tu(n),{onClose:p}=c;return u.useEffect(()=>(document.addEventListener(im,p),()=>document.removeEventListener(im,p)),[p]),u.useEffect(()=>{if(c.trigger){const m=f=>{const h=f.target;h!=null&&h.contains(c.trigger)&&p()};return window.addEventListener("scroll",m,{capture:!0}),()=>window.removeEventListener("scroll",m,{capture:!0})}},[c.trigger,p]),s.jsx(du,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:i,onFocusOutside:m=>m.preventDefault(),onDismiss:p,children:s.jsxs(ak,{"data-state":c.stateAttribute,...d,...l,ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[s.jsx(u3,{children:r}),s.jsx(l3,{scope:n,isInside:!0,children:s.jsx(t3,{id:c.contentId,role:"tooltip",children:a||r})})]})})});T1.displayName=os;var M1="TooltipArrow",d3=u.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=Tu(n);return c3(M1,n).isInside?null:s.jsx(ok,{...a,...r,ref:t})});d3.displayName=M1;function p3(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,a,o)){case o:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function m3(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function f3(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function h3(e,t){const{x:n,y:r}=e;let a=!1;for(let o=0,i=t.length-1;or!=f>r&&n<(m-d)*(r-p)/(f-p)+d&&(a=!a)}return a}function g3(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),v3(t)}function v3(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],i=t[t.length-2];if((o.x-i.x)*(a.y-i.y)>=(o.y-i.y)*(a.x-i.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const o=n[n.length-1],i=n[n.length-2];if((o.x-i.x)*(a.y-i.y)>=(o.y-i.y)*(a.x-i.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var x3=j1,y3=A1,b3=_1,w3=P1,E1=T1;const Ru=x3,Ei=y3,Ii=b3,ss=u.forwardRef(({className:e,sideOffset:t=4,...n},r)=>s.jsx(w3,{children:s.jsx(E1,{ref:r,sideOffset:t,className:j("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95",e),...n})}));ss.displayName=E1.displayName;const I1=371,vv=Math.ceil(I1/7),xv=["user","api","cron","dream","system"];function Ed(e,t){const n=new Date(e);return n.setUTCDate(n.getUTCDate()+t),n}function cm(e){return e.toISOString().slice(0,10)}function k3(e){const[t,n,r]=e.split("-").map(Number);return new Date(Date.UTC(t,n-1,r))}function C3(e,t){if(!t)return cm(e);try{const n=new Intl.DateTimeFormat("en",{calendar:"gregory",numberingSystem:"latn",timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(e),r=Object.fromEntries(n.map(a=>[a.type,a.value]));if(r.year&&r.month&&r.day)return[r.year.padStart(4,"0"),r.month.padStart(2,"0"),r.day.padStart(2,"0")].join("-")}catch{}return cm(e)}function S3(e,t,n){const r=new Map((e??[]).map(d=>[d.date,d])),a=k3(C3(new Date,n)),o=Ed(a,6-a.getUTCDay()),i=Ed(o,-370),l=[];return{cells:Array.from({length:I1},(d,p)=>{const m=Ed(i,p),f=cm(m),h=r.get(f);return m.getUTCDate()===1&&l.push({label:t.format(m),column:Math.floor(p/7)+1}),{date:f,total:(h==null?void 0:h.total_tokens)??0,estimated:(h==null?void 0:h.estimated_tokens)??0,requests:(h==null?void 0:h.requests)??0,sources:(h==null?void 0:h.sources)??{},future:m>a}}),monthLabels:l}}function N3(e,t){return e==="user"?t("settings.usage.sources.user","Chat"):e==="api"?t("settings.usage.sources.api","API"):e==="cron"?t("settings.usage.sources.cron","Automations"):e==="dream"?t("settings.usage.sources.dream","Memory"):t("settings.usage.sources.system","System")}function j3(e,t){const n=xv.filter(a=>{var o;return((o=e.sources[a])==null?void 0:o.total_tokens)>0}),r=Object.keys(e.sources).filter(a=>!xv.includes(a)).filter(a=>{var o;return((o=e.sources[a])==null?void 0:o.total_tokens)>0}).sort();return[...n,...r].map(a=>{var l;const o=N3(a,t),i=L1(((l=e.sources[a])==null?void 0:l.total_tokens)??0);return`${o} ${i}`}).join(" · ")}function L1(e){return e>=1e6?`${(e/1e6).toFixed(e>=1e7?0:1)}M`:e>=1e3?`${(e/1e3).toFixed(e>=1e4?0:1)}K`:String(e)}function A3(e,t){if(e<=0||t<=0)return 0;const n=e/t;return n>=.75?4:n>=.45?3:n>=.2?2:1}function _3(e,t){return t?"bg-transparent ring-1 ring-neutral-200/70 dark:ring-white/[0.045]":e===4?"bg-sky-300 dark:bg-sky-300":e===3?"bg-sky-400/85 dark:bg-sky-500/80":e===2?"bg-sky-500/60 dark:bg-sky-700/85":e===1?"bg-sky-500/30 dark:bg-sky-900/80":"bg-neutral-200/70 ring-1 ring-black/[0.025] dark:bg-white/[0.08] dark:ring-white/[0.035]"}function P3({usage:e,timeZone:t}){const{t:n,i18n:r}=ie(),a=(d,p,m)=>n(d,{defaultValue:p,...m??{}}),o=u.useMemo(()=>new Intl.DateTimeFormat(r.language,{month:"short",timeZone:"UTC"}),[r.language]),{cells:i,monthLabels:l}=u.useMemo(()=>S3(e==null?void 0:e.days,o,t),[o,t,e==null?void 0:e.days]),c=Math.max(0,...i.map(d=>d.total));return s.jsx("div",{className:"overflow-x-auto pb-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:s.jsxs("div",{className:"mx-auto w-full min-w-0 max-w-[1054px] px-0.5 sm:min-w-[760px]",children:[s.jsx("div",{className:"mb-2 flex justify-end",children:s.jsx("span",{className:"text-[11px] font-normal leading-none text-muted-foreground/64",children:a("settings.usage.shortTitle","Token Usage")})}),s.jsx("div",{className:"relative mb-2 h-4 text-[10px] font-normal leading-4 text-muted-foreground/62","aria-hidden":!0,children:l.map(d=>s.jsx("span",{className:"absolute top-0 whitespace-nowrap",style:{left:`${(d.column-1)/vv*100}%`},children:d.label},`${d.label}-${d.column}`))}),s.jsx("div",{className:"grid grid-flow-col grid-rows-7 gap-[3px] sm:gap-1.5",style:{gridTemplateColumns:`repeat(${vv}, minmax(0, 1fr))`},"aria-label":a("settings.usage.title","Token activity"),children:s.jsx(Ru,{delayDuration:120,skipDelayDuration:80,children:i.map(d=>{const p=A3(d.total,c),m=d.future?d.date:a("settings.usage.cellTitle","{{date}}: {{tokens}} tokens, {{requests}} requests",{date:d.date,tokens:L1(d.total),requests:d.requests}),f=d.future||d.estimated<=0?m:`${m} · ${d.estimated>=d.total?a("settings.usage.estimated","estimated"):a("settings.usage.includesEstimates","includes estimates")}`,h=d.future?"":j3(d,a),y=h?`${f} · ${h}`:f;return s.jsxs(Ei,{children:[s.jsx(Ii,{asChild:!0,children:s.jsx("span",{"aria-label":y,className:j("aspect-square w-full rounded-[2px] transition-transform hover:scale-110 sm:rounded-[4px]",_3(p,d.future))})}),s.jsxs(ss,{side:"top",align:"center",className:"rounded-[10px] border-border/45 bg-popover px-2.5 py-1.5 text-[11px] font-normal text-popover-foreground shadow-lg",children:[s.jsx("span",{className:"block",children:f}),h?s.jsx("span",{className:"mt-1 block text-muted-foreground",children:h}):null]})]},d.date)})})})]})})}const Ro=u.forwardRef(({className:e,...t},n)=>s.jsx("textarea",{className:j("flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));Ro.displayName="Textarea";const D1="nanobot:cli-apps-changed";function T3(e){return!!e&&typeof e=="object"&&Array.isArray(e.apps)}function R3(e){return e.apps.filter(t=>t.installed)}function M3(e){typeof window>"u"||window.dispatchEvent(new CustomEvent(D1,{detail:e}))}const E3=0,yv=1,bv=2,Ml=3;function Ja(){return typeof window>"u"?null:window.nanobotHost??null}function wv(e){return e==="native"?"native":"browser"}function kv(e,t){const n=Ja(),r={can_export_diagnostics:!1,can_open_logs:!1,can_pick_folder:!1,can_restart_engine:!1,...t??{}},a=F1();return{surface:e,capabilities:r,socketFactory:a?O1:void 0,pickFolder:n==null?void 0:n.pickFolder,restartEngine:n==null?void 0:n.restartEngine,openLogs:n==null?void 0:n.openLogs,exportDiagnostics:n==null?void 0:n.exportDiagnostics}}function O1(e){const t=F1();if(!t)throw new Error("Host WebSocket bridge is not available");return new I3(t,e)}function F1(){const e=Ja();return!(e!=null&&e.openSocket)||!e.sendSocket||!e.closeSocket||!e.onSocketEvent?null:{closeSocket:e.closeSocket,onSocketEvent:e.onSocketEvent,openSocket:e.openSocket,sendSocket:e.sendSocket}}class I3{constructor(t,n){He(this,"binaryType","blob");He(this,"onclose",null);He(this,"onerror",null);He(this,"onmessage",null);He(this,"onopen",null);He(this,"readyState",E3);He(this,"url");He(this,"id",null);He(this,"queued",[]);He(this,"unsubscribe");this.api=t,this.url=n,this.unsubscribe=t.onSocketEvent(r=>this.handleEvent(r)),t.openSocket(n).then(r=>{this.id=r},()=>{var r,a;this.readyState=Ml,(r=this.onerror)==null||r.call(this,new Event("error")),(a=this.onclose)==null||a.call(this,Cv()),this.unsubscribe()})}close(){this.readyState===bv||this.readyState===Ml||(this.readyState=bv,this.id?this.api.closeSocket(this.id):(this.readyState=Ml,this.unsubscribe()))}send(t){if(typeof t!="string")throw new Error("Host WebSocket bridge only supports text frames");if(this.readyState===yv&&this.id){this.api.sendSocket(this.id,t);return}this.queued.push(t)}handleEvent(t){var n,r,a,o;if(!(!this.id||t.id!==this.id)){if(t.type==="open"){for(this.readyState=yv,(n=this.onopen)==null||n.call(this,new Event("open"));this.queued.length>0&&this.id;){const i=this.queued.shift();i!==void 0&&this.api.sendSocket(this.id,i)}return}if(t.type==="message"){(r=this.onmessage)==null||r.call(this,new MessageEvent("message",{data:t.data}));return}if(t.type==="error"){(a=this.onerror)==null||a.call(this,new Event("error"));return}this.readyState=Ml,(o=this.onclose)==null||o.call(this,Cv(t.code,t.reason)),this.unsubscribe()}}}function Cv(e=1006,t=""){return typeof CloseEvent<"u"?new CloseEvent("close",{code:e,reason:t}):new Event("close")}const z1="nanobot:mcp-presets-changed";function L3(e){return!!e&&typeof e=="object"&&Array.isArray(e.presets)}function D3(e){return e.presets.filter(t=>t.installed&&t.configured)}function El(e){typeof window>"u"||window.dispatchEvent(new CustomEvent(z1,{detail:e}))}function O3(e){return`https://${e}/favicon.ico`}function F3(e){return`https://icons.duckduckgo.com/ip3/${encodeURIComponent(e)}.ico`}function z3(e){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(e)}&sz=64`}function Uc(e){const t=U3(e);return[O3(t),F3(t),z3(e)]}function De(e,t,n,r=[]){const a=[...r];return Uc(e).forEach(o=>qs(a,o)),{logoUrl:a[0],logoUrls:a,color:t,initials:n}}function qs(e,t){const n=t==null?void 0:t.trim();n&&!e.includes(n)&&e.push(n)}function $3(e){if(e.startsWith("/"))return null;try{const t=new URL(e);if(!/^https?:$/.test(t.protocol))return null;const n=t.hostname.toLowerCase();if(n==="www.google.com"||n==="google.com")return t.searchParams.get("domain");if(n==="icons.duckduckgo.com"){const r=t.pathname.match(/^\/ip3\/(.+)\.ico$/);return r?decodeURIComponent(r[1]):null}return n.replace(/^www\./,"")}catch{return null}}function U3(e){var n;return((n=e.split("/")[0])==null?void 0:n.trim())||e}function oo(e){const t=e==null?void 0:e.trim();if(!t)return[];if(t.startsWith("/"))return[t];const n=[],r=$3(t),a=/^(https?:\/\/)?(www\.google\.com|google\.com|icons\.duckduckgo\.com)\//i.test(t);return r&&a?(qs(n,t),Uc(r).forEach(o=>qs(n,o)),n):(qs(n,t),r&&Uc(r).forEach(o=>qs(n,o)),n)}const B3={brave_search:"brave",byteplus_coding_plan:"byteplus",mimo:"xiaomi_mimo",minimaxAnthropic:"minimax",minimax_anthropic:"minimax",openai_codex:"openai",xiaomi:"xiaomi_mimo",volcengine_coding_plan:"volcengine"},H3={brave_search:"Brave Search",byteplus_coding_plan:"BytePlus",minimaxAnthropic:"MiniMax",minimax_anthropic:"MiniMax",openai_codex:"OpenAI",volcengine_coding_plan:"Volcengine"},W3={aihubmix:De("aihubmix.com","#111827","AH"),ant_ling:De("ant-ling.com","#7C3AED","AL"),anthropic:De("anthropic.com","#D97757","A"),assemblyai:De("assemblyai.com","#111827","AA"),atomic_chat:De("atomic.chat","#111827","AC"),azure_openai:De("azure.microsoft.com","#0078D4","AZ"),bedrock:De("aws.amazon.com","#FF9900","AWS"),bocha:De("bochaai.com","#2563EB","B"),brave:De("brave.com","#FB542B","B"),byteplus:De("byteplus.com","#325CFF","BP"),dashscope:De("dashscope.aliyun.com","#FF6A00","DS"),deepseek:De("deepseek.com","#4D6BFE","DS"),duckduckgo:De("duckduckgo.com","#DE5833","DDG"),exa:De("exa.ai","#5B5BF6","E"),gemini:De("gemini.google.com","#4285F4","G"),github_copilot:De("github.com","#24292F","GH"),groq:De("groq.com","#F55036","GQ"),huggingface:De("huggingface.co","#FF9D00","HF"),jina:De("jina.ai","#7C3AED","J"),kagi:De("kagi.com","#FFB319","K"),keenable:De("keenable.ai","#0EA5E9","K"),lm_studio:De("lmstudio.ai","#111827","LM"),longcat:De("longcatai.org","#4F8CFF","LC",["https://www.longcatai.org/favicon.svg"]),minimax:De("minimax.io","#111827","MM"),mistral:De("mistral.ai","#FA520F","M"),moonshot:De("moonshot.ai","#111827","MS"),novita:De("novita.ai","#7C3AED","N"),olostep:De("olostep.com","#111827","O"),nvidia:De("nvidia.com","#76B900","NV"),ollama:De("ollama.com","#111827","O"),openai:De("openai.com","#111827","AI"),openrouter:De("openrouter.ai","#111827","OR"),ovms:De("openvino.ai","#0071C5","OV"),qianfan:De("cloud.baidu.com","#2932E1","QF"),searxng:De("searxng.org","#3050FF","SX"),siliconflow:De("siliconflow.cn","#111827","SF"),skywork:De("skywork.ai","#5B5BF6","SW"),stepfun:De("stepfun.com","#2F6BFF","SF",["https://www.stepfun.com/step_favicon.svg"]),tavily:De("tavily.com","#111827","T"),volcengine:De("volcengine.com","#1664FF","VE"),vllm:De("vllm.ai","#2563EB","VL"),xiaomi_mimo:De("mimo.xiaomi.com","#FF6900","MI",["https://mimo.xiaomi.com/mimo-v2-pro/assets/logo.svg"]),zhipu:De("z.ai","#155EEF","Z",["https://z-cdn.chatglm.cn/z-ai/static/logo.svg","https://www.google.com/s2/favicons?domain=z.ai&sz=64"])};function al(e){if(!e)return null;const t=B3[e]??e;return W3[t]??null}function Mo(e,t){var n;return t?((n=e.find(r=>r.name===t))==null?void 0:n.label)??H3[t]??t:""}function um(e){const t=(e??"").trim().toLowerCase();if(!t)return null;const n=t.split(/[/:]/)[0];return al(n)?n:/claude|anthropic/.test(t)?"anthropic":/gpt-|^o\d|chatgpt|openai/.test(t)?"openai":/deepseek/.test(t)?"deepseek":/gemini/.test(t)?"gemini":/qwen|dashscope/.test(t)?"dashscope":/kimi|moonshot/.test(t)?"moonshot":/minimax/.test(t)?"minimax":/mistral|mixtral/.test(t)?"mistral":/skywork|skyclaw/.test(t)?"skywork":/ring-/.test(t)?"ant_ling":null}const q3=[65536,2e5,262144],K3=new Set(["aihubmix","atomic_chat","byteplus","byteplus_coding_plan","huggingface","lm_studio","novita","ollama","openrouter","ovms","siliconflow","vllm","volcengine","volcengine_coding_plan"]),V3=2,G3=2e3,Y3=30,Q3=["UTC","Asia/Shanghai","Asia/Hong_Kong","Asia/Tokyo","Asia/Seoul","Asia/Singapore","Asia/Taipei","Asia/Dubai","Asia/Kolkata","Europe/London","Europe/Paris","Europe/Berlin","Europe/Amsterdam","America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Toronto","America/Sao_Paulo","Australia/Sydney","Pacific/Auckland"],$1="nanobot-webui.settings-preferences",Sv={density:"comfortable",activityMode:"auto",codeWrap:!0,brandLogos:!0},Nv=[{value:"auto",label:"Auto"},{value:"chat_completions",label:"Chat Completions"},{value:"responses",label:"Responses"}],X3=new Map(["vllm","ollama","lm_studio","atomic_chat","ovms"].map((e,t)=>[e,t])),J3=["1:1","3:4","9:16","4:3","16:9","3:2","2:3","21:9"],Z3=["1K","2K","4K","1024x1024","1536x1024","1024x1536"],Id={runtime:!1,browser:!1,image:!1},jv={name:"",transport:"stdio",command:"",args:"",url:"",env:"",headers:"",toolTimeout:"30"};function eD(){try{const e=window.localStorage.getItem($1);if(!e)return Sv;const t=JSON.parse(e);return{density:t.density==="compact"?"compact":"comfortable",activityMode:t.activityMode==="expanded"?"expanded":"auto",codeWrap:t.codeWrap!==!1,brandLogos:t.brandLogos!==!1}}catch{return Sv}}function U1(e){return e.agent.model_preset||"default"}function Li(e){return e.model_presets.find(t=>t.is_default)??null}function Di(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:2e5}function Oi(e){const t=Li(e);return(t==null?void 0:t.provider)??e.agent.provider??e.agent.resolved_provider??""}function dm(e,t){return t?e.providers.find(n=>n.name===t)??null:null}function Mu(e,t){const n=dm(e,t);if(n)return n.configured;if(t==="auto"){const r=dm(e,e.agent.resolved_provider??e.agent.provider);if(r)return r.configured}return e.agent.has_api_key}const tD={model:"",provider:"",modelPreset:"default",presetLabel:"Default",contextWindowTokens:2e5,timezone:"UTC",botName:"nanobot",botIcon:"",toolHintMaxLength:40},nD={provider:"duckduckgo",apiKey:"",baseUrl:"",maxResults:5,timeout:30,useJinaReader:!0},rD={enabled:!1,provider:"openrouter",model:"openai/gpt-5.4-image-2",defaultAspectRatio:"1:1",defaultImageSize:"1K",maxImagesPerTurn:4},aD={enabled:!0,provider:"groq",model:"",language:"",maxDurationSec:120,maxUploadMb:25},Eu={enabled:!0,provider:"groq",provider_configured:!1,model:"whisper-large-v3",language:null,max_duration_sec:120,max_upload_mb:25,providers:[]},oD={webuiAllowLocalServiceAccess:!0,webuiDefaultAccessMode:"default"};function Av(e){const t=Li(e),n=U1(e),r=e.model_presets.find(a=>a.name===n)??t;return{model:(r==null?void 0:r.model)??e.agent.model,provider:r!=null&&r.is_default?Oi(e):(r==null?void 0:r.provider)??Oi(e),modelPreset:n,presetLabel:(r==null?void 0:r.label)??n,contextWindowTokens:Di((r==null?void 0:r.context_window_tokens)??e.agent.context_window_tokens),timezone:e.agent.timezone,botName:e.agent.bot_name,botIcon:e.agent.bot_icon,toolHintMaxLength:e.agent.tool_hint_max_length}}function _v(e,t){return{provider:e.web_search.provider,apiKey:(t==null?void 0:t.provider)===e.web_search.provider?t.apiKey??"":"",baseUrl:e.web_search.base_url??"",maxResults:e.web_search.max_results,timeout:e.web_search.timeout,useJinaReader:e.web.fetch.use_jina_reader}}function si(e){return(e==null?void 0:e.credential)==="api_key"||(e==null?void 0:e.credential)==="optional_api_key"}function B1(e){return(e==null?void 0:e.credential)==="api_key"}function Pv(e){return{enabled:e.image_generation.enabled,provider:e.image_generation.provider,model:e.image_generation.model,defaultAspectRatio:e.image_generation.default_aspect_ratio,defaultImageSize:e.image_generation.default_image_size,maxImagesPerTurn:e.image_generation.max_images_per_turn}}function Tv(e){const t=e.transcription??Eu;return{enabled:t.enabled,provider:t.provider,model:t.model,language:t.language??"",maxDurationSec:t.max_duration_sec,maxUploadMb:t.max_upload_mb}}function Rv(e){return{webuiAllowLocalServiceAccess:e.advanced.webui_allow_local_service_access??e.advanced.allow_local_preview_access??!0,webuiDefaultAccessMode:W1(e.advanced.webui_default_access_mode)}}function sD(e){const t=e.restart_required_sections??[];return{runtime:t.includes("runtime"),browser:t.includes("browser"),image:t.includes("image")}}function iD({theme:e,initialSection:t="overview",initialSettings:n=null,showSidebar:r=!0,onToggleTheme:a,onBackToChat:o,onModelNameChange:i,onSettingsChange:l,skills:c=[],onWorkspaceSettingsChange:d,onSectionChange:p,onLogout:m,onRestart:f,onNativeEngineRestart:h,isRestarting:y=!1,hostChromeInset:x=!1}){const{t:b}=ie(),{token:v}=kr(),[g,w]=u.useState(()=>n),[k,C]=u.useState(null),[N,S]=u.useState(null),[A,E]=u.useState(null),[_,R]=u.useState(()=>n===null),[T,F]=u.useState(!0),[z,K]=u.useState(!0),[$,W]=u.useState(!1),[P,D]=u.useState(!1),[G,Y]=u.useState(!1),[oe,de]=u.useState(!1),[pe,le]=u.useState({label:"",provider:"",model:""}),[I,Q]=u.useState(null),[O,ne]=u.useState(null),[he,ve]=u.useState(null),[me,ee]=u.useState(!1),[we,je]=u.useState(!1),[xe,Ee]=u.useState(!1),[$e,Se]=u.useState(!1),[Fe,B]=u.useState(!1),[X,J]=u.useState(null),[ye,Ie]=u.useState(t),[Ne,Je]=u.useState(null),[ue,Be]=u.useState(""),[ze,We]=u.useState(""),[nr,xn]=u.useState(""),[Qe,yn]=u.useState("all"),[rr,cn]=u.useState("next"),[zt,jt]=u.useState(null),[Vr,kt]=u.useState(null),[ar,Cr]=u.useState(null),[Hn,bn]=u.useState("all"),[or,Ze]=u.useState(null),[Sr,et]=u.useState(null),[$t,nt]=u.useState(null),[At,In]=u.useState(null),[wn,un]=u.useState(null),[Wn,sr]=u.useState(null),[Gr,Nr]=u.useState({}),[en,be]=u.useState(jv),[Ae,mt]=u.useState(""),[Vt,Me]=u.useState({}),[yt,tn]=u.useState({}),[Gt,It]=u.useState({}),[ft,Ct]=u.useState(Id),[Lt,ir]=u.useState(()=>eD()),[St,Ut]=u.useState(()=>n?_v(n):nD),[nn,lo]=u.useState(()=>n?Pv(n):rD),[kn,co]=u.useState(()=>n?Tv(n):aD),[H,q]=u.useState(()=>n?Rv(n):oD);u.useEffect(()=>{Ie(t)},[t]);const se=u.useCallback(M=>{Ie(M),p==null||p(M)},[p]),[ke,Le]=u.useState(!1),[Dt,jr]=u.useState(!1),[qe,Cn]=u.useState(()=>n?Av(n):tD),Ar=u.useCallback((M,V,re)=>b(M,{defaultValue:V,...re??{}}),[b]),_t=u.useCallback(M=>{w(M),Cn(Av(M)),Ut(V=>_v(M,V)),lo(Pv(M)),co(Tv(M)),q(Rv(M)),M.restart_required_sections&&Ct(sD(M)),l==null||l(M)},[l]);u.useEffect(()=>{!n||g!==null||(_t(n),R(!1))},[_t,n,g]),u.useEffect(()=>{let M=!1;const V=g===null;return V&&R(!0),oi(v).then(re=>{M||(_t(re),J(null))}).catch(re=>{!M&&V&&J(re.message)}).finally(()=>{M||R(!1)}),()=>{M=!0}},[_t,v]);const Ss=g!==null;u.useEffect(()=>{if(ye!=="overview"||!Ss)return;let M=!1;const V=()=>{CL(v).then(_e=>{M||w(lt=>lt&&{...lt,usage:_e})}).catch(()=>{})};V();const re=window.setInterval(V,5e3),ce=()=>V(),Te=()=>{document.visibilityState==="visible"&&V()};return window.addEventListener("focus",ce),document.addEventListener("visibilitychange",Te),()=>{M=!0,window.clearInterval(re),window.removeEventListener("focus",ce),document.removeEventListener("visibilitychange",Te)}},[ye,Ss,v]),u.useEffect(()=>{if(ye!=="apps")return;let M=!1,V=null,re=0;const ce=Te=>{Te&&F(!0),jL(v).then(_e=>{M||(_e.catalog_refresh_pending&&re{V=null,ce(!1)},G3)),C(_e),kt(null),F(!1))}).catch(_e=>{M||(kt(_e.message),F(!1))})};return ce(!0),()=>{M=!0,V!==null&&window.clearTimeout(V)}},[ye,v]),u.useEffect(()=>{if(ye!=="apps")return;let M=!1;return K(!0),k1(v).then(V=>{M||(S(V),et(null))}).catch(V=>{M||et(V.message)}).finally(()=>{M||K(!1)}),()=>{M=!0}},[ye,v]);const L=u.useCallback(async(M=!1)=>{M&&W(!0);try{const V=await fv(v);E(V),nt(null)}catch(V){nt(V.message)}finally{M&&W(!1)}},[v]);u.useEffect(()=>{if(ye!=="automations")return;let M=!1;const V=async(Te=!1)=>{if(!M){Te&&W(!0);try{const _e=await fv(v);if(M)return;E(_e),nt(null)}catch(_e){M||nt(_e.message)}finally{!M&&Te&&W(!1)}}};V(!0);const re=window.setInterval(()=>void V(!1),5e3),ce=()=>{document.visibilityState!=="hidden"&&V(!1)};return window.addEventListener("focus",ce),document.addEventListener("visibilitychange",ce),()=>{M=!0,window.clearInterval(re),window.removeEventListener("focus",ce),document.removeEventListener("visibilitychange",ce)}},[ye,v]),u.useEffect(()=>{try{window.localStorage.setItem($1,JSON.stringify(Lt))}catch{}},[Lt]),u.useEffect(()=>{g&&Me(M=>{var re,ce,Te;const V={...M};for(const _e of g.providers)V[_e.name]={apiKey:((re=V[_e.name])==null?void 0:re.apiKey)??"",apiBase:((ce=V[_e.name])==null?void 0:ce.apiBase)??_e.api_base??_e.default_api_base??"",apiType:((Te=V[_e.name])==null?void 0:Te.apiType)??_e.api_type??"auto"};return V})},[g]);const U=u.useMemo(()=>{if(!g)return!1;const M=U1(g),V=g.model_presets.find(ce=>ce.name===qe.modelPreset);if(!V)return qe.modelPreset!==M;const re=V.is_default?Oi(g):V.provider;return qe.modelPreset!==M||qe.model!==V.model||qe.provider!==re||qe.contextWindowTokens!==Di(V.context_window_tokens)||!V.is_default&&qe.presetLabel.trim()!==V.label},[qe,g]),Z=u.useMemo(()=>g?qe.timezone!==g.agent.timezone||qe.botName!==g.agent.bot_name||qe.botIcon!==g.agent.bot_icon:!1,[qe,g]),Ce=u.useMemo(()=>g?nn.enabled!==g.image_generation.enabled||nn.provider!==g.image_generation.provider||nn.model!==g.image_generation.model||nn.defaultAspectRatio!==g.image_generation.default_aspect_ratio||nn.defaultImageSize!==g.image_generation.default_image_size||nn.maxImagesPerTurn!==g.image_generation.max_images_per_turn:!1,[nn,g]),Ke=u.useMemo(()=>{if(!g)return!1;const M=g.transcription??Eu;return kn.enabled!==M.enabled||kn.provider!==M.provider||kn.model!==M.model||kn.language!==(M.language??"")||kn.maxDurationSec!==M.max_duration_sec||kn.maxUploadMb!==M.max_upload_mb},[g,kn]),rt=u.useMemo(()=>{if(!g)return!1;const M=g.advanced.webui_allow_local_service_access??g.advanced.allow_local_preview_access??!0,V=W1(g.advanced.webui_default_access_mode);return H.webuiAllowLocalServiceAccess!==M||H.webuiDefaultAccessMode!==V},[H,g]),Ln=u.useMemo(()=>(g==null?void 0:g.providers.filter(M=>M.configured&&M.model_selectable!==!1).map(M=>({name:M.name,label:M.label})))??[],[g]),qn=u.useMemo(()=>!!(g!=null&&g.requires_restart)||ft.runtime||ft.browser||ft.image,[ft,g==null?void 0:g.requires_restart]),Pt=u.useCallback(async()=>{var V;if(((g==null?void 0:g.surface)??(g==null?void 0:g.runtime_surface))==="native"&&((V=g==null?void 0:g.runtime_capabilities)!=null&&V.can_restart_engine)&&h){B(!0);try{const re=await h(),ce=await oi(re);_t(ce),Ct(Id),J(null)}catch(re){J(re.message)}finally{B(!1)}return}f==null||f()},[_t,h,f,g]),Sn=u.useCallback(async M=>{const V=M.surface??M.runtime_surface??(g==null?void 0:g.surface)??(g==null?void 0:g.runtime_surface),re=M.runtime_capabilities??(g==null?void 0:g.runtime_capabilities),ce=V==="native";if(!(!M.requires_restart||!ce||!(re!=null&&re.can_restart_engine)||!h)){B(!0);try{const Te=await h(),_e=await oi(Te);_t(_e),Ct(Id),J(null)}catch(Te){J(Te.message)}finally{B(!1)}}},[_t,h,g]),Ns=async()=>{var M,V;if(!(!g||!U||P)){D(!0);try{const re=g.model_presets.find(Te=>Te.name===qe.modelPreset);let ce;if(re&&!re.is_default)ce=await FL(v,{name:re.name,label:qe.presetLabel.trim(),model:qe.model,provider:qe.provider,...qe.contextWindowTokens!==re.context_window_tokens?{contextWindowTokens:qe.contextWindowTokens}:{}});else{const Te=((M=Li(g))==null?void 0:M.model)??g.agent.model,_e=Oi(g),lt=Di(((V=Li(g))==null?void 0:V.context_window_tokens)??g.agent.context_window_tokens);ce=await hv(v,{modelPreset:qe.modelPreset,...qe.model!==Te?{model:qe.model}:{},...qe.provider!==_e?{provider:qe.provider}:{},...qe.contextWindowTokens!==lt?{contextWindowTokens:qe.contextWindowTokens}:{}})}_t(ce),i(ce.agent.model||null),J(null)}catch(re){J(re.message)}finally{D(!1)}}},dS=()=>{var re,ce;if(!g)return;const M=g.agent.provider,V=((re=Ln.find(Te=>Te.name===M))==null?void 0:re.name)??((ce=Ln[0])==null?void 0:ce.name)??"";le({label:"",provider:V,model:""}),Y(!0)},pS=async()=>{if(oe)return;const M=pe.label.trim(),V=pe.provider.trim(),re=pe.model.trim();if(!(!M||!V||!re)){de(!0);try{const ce=await OL(v,{label:M,provider:V,model:re});_t(ce),i(ce.agent.model||null),Y(!1),J(null)}catch(ce){J(ce.message)}finally{de(!1)}}},mS=async()=>{if(!(!g||!Z||P)){D(!0);try{const M=await hv(v,{timezone:qe.timezone,botName:qe.botName,botIcon:qe.botIcon});_t(M),M.requires_restart&&Ct(V=>({...V,runtime:!0})),await(d==null?void 0:d()),await Sn(M),J(null)}catch(M){J(M.message)}finally{D(!1)}}},fS=async()=>{if(!(!g||!Ce||we)){je(!0);try{const M=await WL(v,nn);_t(M),M.requires_restart&&Ct(V=>({...V,image:!0})),await Sn(M),J(null)}catch(M){J(M.message)}finally{je(!1)}}},hS=async()=>{if(!(!g||!Ke||xe)){Ee(!0);try{const M=await qL(v,kn);_t(M),M.requires_restart&&Ct(V=>({...V,browser:!0})),await Sn(M),J(null)}catch(M){J(M.message)}finally{Ee(!1)}}},gS=async()=>{if(!(!g||!rt||$e)){Se(!0);try{const M=await HL(v,H);_t(M),M.requires_restart&&Ct(V=>({...V,runtime:!0})),await Sn(M),J(null)}catch(M){J(M.message)}finally{Se(!1)}}},vS=async M=>{if(he)return;const V=g==null?void 0:g.providers.find(_e=>_e.name===M);if(!V||V.auth_type==="oauth")return;const re=Vt[M]??{apiKey:"",apiBase:"",apiType:"auto"},ce=re.apiKey.trim(),Te=V.api_key_required??!0;if(!V.configured&&Te&&!ce){J(b("settings.byok.apiKeyRequired"));return}ve(M);try{const _e=await zL(v,{provider:M,apiKey:ce||void 0,apiBase:re.apiBase.trim(),apiType:re.apiType});_t(_e),_e.requires_restart&&Ct(lt=>({...lt,image:!0})),await Sn(_e),Me(lt=>({...lt,[M]:{apiKey:"",apiBase:re.apiBase.trim(),apiType:re.apiType}})),tn(lt=>({...lt,[M]:!1})),It(lt=>({...lt,[M]:!1})),J(null)}catch(_e){J(_e.message)}finally{ve(null)}},$u=async(M,V)=>{if(!he){ve(M);try{const re=V==="login"?await $L(v,M):await UL(v,M);_t(re),Je(M),J(null)}catch(re){J(re.message)}finally{ve(null)}}},xS=async()=>{var Te,_e;if(!g||me)return;const M=g.web_search.providers.find(lt=>lt.name===St.provider);if(!M)return;const V=((Te=St.apiKey)==null?void 0:Te.trim())??"",re=((_e=St.baseUrl)==null?void 0:_e.trim())??"",ce=si(M)&&St.provider===g.web_search.provider&&!!g.web_search.api_key_hint;if(B1(M)&&!V&&!ce){J(b("settings.byok.webSearch.apiKeyRequired"));return}if(M.credential==="base_url"&&!re){J(b("settings.byok.webSearch.baseUrlRequired"));return}ee(!0);try{const lt=(St.useJinaReader??g.web.fetch.use_jina_reader)!==g.web.fetch.use_jina_reader,Bu={provider:St.provider,maxResults:St.maxResults,timeout:St.timeout,useJinaReader:St.useJinaReader};si(M)&&(V||M.credential==="optional_api_key"&&Dt)&&(Bu.apiKey=V),M.credential==="base_url"&&(Bu.baseUrl=re);const Yr=await BL(v,Bu);_t(Yr),(Yr.requires_restart||lt)&&Ct(Hu=>({...Hu,browser:!0})),await Sn(Yr),Ut(Hu=>({provider:Yr.web_search.provider,apiKey:"",baseUrl:Yr.web_search.base_url??Hu.baseUrl??"",maxResults:Yr.web_search.max_results,timeout:Yr.web_search.timeout,useJinaReader:Yr.web.fetch.use_jina_reader})),Le(!1),jr(!1),J(null)}catch(lt){J(lt.message)}finally{ee(!1)}},Uu=u.useCallback(M=>{const V=g==null?void 0:g.providers.find(re=>re.name===M);V&&(Me(re=>({...re,[M]:{apiKey:"",apiBase:V.api_base??V.default_api_base??"",apiType:V.api_type??"auto"}})),tn(re=>({...re,[M]:!1})),It(re=>({...re,[M]:!1})))},[g]),yS=u.useCallback(M=>{Ne&&Uu(Ne),Je(Ne===M?null:M)},[Ne,Uu]),bS=u.useCallback(()=>{g&&(Ut({provider:g.web_search.provider,apiKey:"",baseUrl:g.web_search.base_url??"",maxResults:g.web_search.max_results,timeout:g.web_search.timeout,useJinaReader:g.web.fetch.use_jina_reader}),Le(!1),jr(!1))},[g]),wS=u.useCallback(M=>{g&&(Ut(V=>({provider:M,apiKey:"",baseUrl:M===g.web_search.provider?g.web_search.base_url??"":"",maxResults:V.maxResults??g.web_search.max_results,timeout:V.timeout??g.web_search.timeout,useJinaReader:V.useJinaReader??g.web.fetch.use_jina_reader})),Le(!1),jr(!1))},[g]),kS=M=>{const V=yt[M];tn(re=>({...re,[M]:!V}))},CS=M=>{It(V=>{const re=!V[M];return re||(Me(ce=>{var Te,_e;return{...ce,[M]:{apiKey:"",apiBase:((Te=ce[M])==null?void 0:Te.apiBase)??"",apiType:((_e=ce[M])==null?void 0:_e.apiType)??"auto"}}}),tn(ce=>({...ce,[M]:!1}))),{...V,[M]:re}})},SS=async(M,V)=>{var ce;const re=`${M}:${V}`;Q(re),jt(null),kt(null);try{const Te=await _L(v,M,V);C(Te),M!=="test"&&M3(Te),jt(((ce=Te.last_action)==null?void 0:ce.message)??null),Cr(M==="uninstall"?null:V)}catch(Te){kt(Te.message)}finally{Q(null)}},rh=async(M,V)=>{const re=`${M}:${V.id}`;In(re),nt(null);try{const ce=await xL(v,M,V.id);E(ce),M==="delete"&&un(null),M==="run"&&(window.setTimeout(()=>void L(!1),1200),window.setTimeout(()=>void L(!1),4e3))}catch(ce){nt(ce.message)}finally{In(null)}},NS=async(M,V)=>{const re=`update:${M.id}`;In(re),nt(null);try{const ce=await yL(v,M.id,V);E(ce),sr(null)}catch(ce){nt(ce.message)}finally{In(null)}},jS=async(M,V,re={})=>{var Te;const ce=`${M}:${V}`;ne(ce),Ze(null),et(null);try{const _e=await TL(v,M,V,re);S(_e),Ze(((Te=_e.last_action)==null?void 0:Te.message)??null),M!=="test"&&El(_e),_e.requires_restart&&Ct(lt=>({...lt,runtime:!0})),await Sn(_e),M==="enable"&&Nr(lt=>({...lt,[V]:{}}))}catch(_e){et(_e.message)}finally{ne(null)}},AS=async()=>{var re;const M=en.name.trim(),V=`custom:${M||"new"}`;ne(V),Ze(null),et(null);try{const ce=await RL(v,{name:M,transport:en.transport,command:en.command,args:en.args,url:en.url,env:en.env,headers:en.headers,tool_timeout:en.toolTimeout});S(ce),Ze(((re=ce.last_action)==null?void 0:re.message)??null),El(ce),ce.requires_restart&&Ct(Te=>({...Te,runtime:!0})),await Sn(ce),be(Te=>({...jv,transport:Te.transport}))}catch(ce){et(ce.message)}finally{ne(null)}},_S=async()=>{var M;ne("import"),Ze(null),et(null);try{const V=await ML(v,Ae);S(V),Ze(((M=V.last_action)==null?void 0:M.message)??null),El(V),V.requires_restart&&Ct(re=>({...re,runtime:!0})),await Sn(V),mt("")}catch(V){et(V.message)}finally{ne(null)}},PS=async(M,V)=>{var re;ne(`tools:${M}`),Ze(null),et(null);try{const ce=await EL(v,M,V);S(ce),Ze(((re=ce.last_action)==null?void 0:re.message)??null),El(ce),ce.requires_restart&&Ct(Te=>({...Te,runtime:!0})),await Sn(ce)}catch(ce){et(ce.message)}finally{ne(null)}},TS=()=>{if(!g)return null;switch(ye){case"overview":return s.jsx(uD,{settings:g,requiresRestart:qn,showBrandLogos:Lt.brandLogos,onSelectSection:se});case"appearance":return s.jsx(pD,{theme:e,onToggleTheme:a,localPrefs:Lt,onChangeLocalPrefs:ir});case"models":return s.jsxs("div",{className:"space-y-8",children:[s.jsx(fD,{token:v,form:qe,setForm:Cn,settings:g,dirty:U,saving:P,showBrandLogos:Lt.brandLogos,providerSaving:he,onProviderOAuthLogin:M=>$u(M,"login"),onSave:Ns,onCreateConfiguration:dS}),s.jsx(hD,{settings:g,expandedProvider:Ne,providerForms:Vt,visibleProviderKeys:yt,editingProviderKeys:Gt,providerSaving:he,query:ue,showBrandLogos:Lt.brandLogos,onQueryChange:Be,onToggleProvider:yS,onToggleProviderKey:kS,onToggleProviderKeyEditing:CS,onChangeProviderForm:(M,V)=>Me(re=>{var ce,Te,_e;return{...re,[M]:{apiKey:((ce=re[M])==null?void 0:ce.apiKey)??"",apiBase:((Te=re[M])==null?void 0:Te.apiBase)??"",apiType:((_e=re[M])==null?void 0:_e.apiType)??"auto",...V}}}),onSaveProvider:vS,onProviderOAuthLogin:M=>$u(M,"login"),onProviderOAuthLogout:M=>$u(M,"logout"),onResetProviderDraft:Uu,imageProviderRestartPending:ft.image,onRestart:Pt,isRestarting:y||Fe})]});case"image":return s.jsx(gD,{settings:g,form:nn,dirty:Ce,saving:we,onChangeForm:lo,onSave:fS,onOpenProviders:()=>se("models"),showBrandLogos:Lt.brandLogos,onRestart:Pt,isRestarting:y||Fe,requiresRestartPending:ft.image});case"voice":return s.jsx(vD,{settings:g,form:kn,dirty:Ke,saving:xe,onChangeForm:co,onSave:hS,onOpenProviders:()=>se("models"),showBrandLogos:Lt.brandLogos,onRestart:Pt,isRestarting:y||Fe,requiresRestartPending:ft.browser});case"browser":return s.jsx(xD,{settings:g,form:St,keyVisible:ke,keyEditing:Dt,saving:me,onChangeForm:Ut,onChangeProvider:wS,onToggleKey:()=>Le(M=>!M),onToggleKeyEditing:()=>{jr(M=>!M),Le(!1),Ut(M=>({...M,apiKey:""}))},onReset:bS,onSave:xS,showBrandLogos:Lt.brandLogos,onRestart:Pt,isRestarting:y||Fe,requiresRestartPending:ft.browser});case"apps":return s.jsx(qD,{cliApps:k,mcpPresets:N,cliAppsLoading:T,mcpPresetsLoading:z,query:ze,filter:Hn,cliActionKey:I,mcpActionKey:O,cliMessage:zt,cliError:Vr,cliFocusName:ar,mcpMessage:or,mcpError:Sr,mcpFieldValues:Gr,customMcpForm:en,mcpConfigImport:Ae,showBrandLogos:Lt.brandLogos,requiresRestartPending:ft.runtime,onQueryChange:We,onFilterChange:bn,onCliAction:SS,onMcpAction:jS,onDismissStatus:()=>{jt(null),kt(null),Ze(null),et(null)},onBackToChat:o,onMcpFieldChange:(M,V,re)=>{Nr(ce=>({...ce,[M]:{...ce[M]??{},[V]:re}}))},onCustomMcpFormChange:be,onMcpConfigImportChange:mt,onSaveCustomMcp:AS,onImportMcpConfig:_S,onMcpToolsChange:PS,onRestart:Pt,isRestarting:y||Fe});case"automations":return s.jsx(yD,{payload:A,loading:$,query:nr,filter:Qe,sort:rr,actionKey:At,error:$t,onQueryChange:xn,onFilterChange:yn,onSortChange:cn,onAction:rh,onRequestEdit:sr,onRequestDelete:un});case"skills":return s.jsx(KL,{skills:c});case"runtime":return s.jsx(ZD,{form:qe,setForm:Cn,settings:g,dirty:Z,saving:P,onSave:mS,onRestart:Pt,isRestarting:y||Fe,requiresRestartPending:ft.runtime});case"advanced":return s.jsx(e4,{form:H,dirty:rt,saving:$e,isNativeHostSurface:(g.surface??g.runtime_surface)==="native",onChangeForm:q,onSave:gS,onRestart:Pt,isRestarting:y||Fe,requiresRestartPending:ft.runtime});default:return null}};return s.jsxs("div",{className:j("flex min-h-0 flex-1 flex-col overflow-hidden md:flex-row",r?"bg-[radial-gradient(circle_at_50%_0%,hsl(var(--muted))_0%,hsl(var(--background))_42%)]":"bg-background"),children:[r?s.jsx(cD,{activeSection:ye,onSelectSection:se,onBackToChat:o,onLogout:m,hostChromeInset:x}):null,s.jsx(mD,{open:G,draft:pe,providers:Ln,saving:oe,showProviderLogos:Lt.brandLogos,onOpenChange:Y,onChangeDraft:le,onSave:pS}),s.jsx(ND,{job:wn,deleting:At===`delete:${(wn==null?void 0:wn.id)??""}`,onOpenChange:M=>{M||un(null)},onConfirm:M=>rh("delete",M)}),s.jsx(SD,{job:Wn,saving:At===`update:${(Wn==null?void 0:Wn.id)??""}`,onOpenChange:M=>{M||sr(null)},onSave:NS}),s.jsx("main",{className:"min-w-0 flex-1 overflow-y-auto [scrollbar-gutter:stable]",children:s.jsxs("div",{className:j("mx-auto w-full max-w-[920px] px-4 py-6 sm:px-8 sm:py-8 lg:py-12",x&&"pt-[4.25rem] sm:pt-[4.25rem] lg:pt-[4.75rem]"),children:[s.jsxs("div",{className:"mb-7",children:[r?null:s.jsxs("button",{type:"button",onClick:o,className:"mb-4 inline-flex items-center gap-1.5 rounded-full px-2.5 py-1.5 text-[12px] font-medium text-muted-foreground transition-colors hover:bg-muted/70 hover:text-foreground lg:hidden",children:[s.jsx(mf,{className:"h-3.5 w-3.5","aria-hidden":!0}),b("settings.backToChat")]}),r?s.jsx("p",{className:"mb-2 text-[12px] font-normal text-muted-foreground",children:b("settings.sidebar.title")}):null,s.jsx("h1",{className:"text-[24px] font-normal leading-tight tracking-normal text-foreground sm:text-[28px]",children:Ar(`settings.nav.${ye}`,lD(ye))})]}),_?s.jsxs("div",{className:"flex h-48 items-center justify-center rounded-[24px] border border-border/50 bg-card/75 text-sm text-muted-foreground shadow-[0_20px_70px_rgba(15,23,42,0.07)]",children:[s.jsx(pt,{className:"mr-2 h-4 w-4 animate-spin"}),b("settings.status.loading")]}):X&&!g?s.jsx(Ht,{children:s.jsx(Oe,{title:b("settings.status.loadError"),children:s.jsx("span",{className:"max-w-[520px] text-sm text-muted-foreground",children:X})})}):g?s.jsxs("div",{className:"space-y-5",children:[X?s.jsx("div",{className:"rounded-[18px] border border-destructive/20 bg-destructive/5 px-4 py-3 text-[13px] text-destructive",children:X}):null,TS()]}):null]})})]})}const H1=[{key:"overview",icon:Gb,fallback:"Overview"},{key:"appearance",icon:uA,fallback:"Appearance"},{key:"models",icon:sw,fallback:"Models"},{key:"image",icon:Wi,fallback:"Image"},{key:"voice",icon:gf,fallback:"Voice"},{key:"browser",icon:ew,fallback:"Web"},{key:"runtime",icon:ts,fallback:"System"},{key:"advanced",icon:gA,fallback:"Security"}];function W1(e){return e==="full"?"full":"default"}function lD(e){var t;return((t=H1.find(n=>n.key===e))==null?void 0:t.fallback)??"Settings"}function cD({activeSection:e,onSelectSection:t,onBackToChat:n,onLogout:r,hostChromeInset:a}){const{t:o}=ie();return s.jsxs("aside",{className:j("flex w-full shrink-0 flex-col border-b border-border/55 bg-card/62 px-3 pb-2 shadow-[inset_0_-1px_0_rgba(255,255,255,0.55)] backdrop-blur-xl dark:bg-card/45 dark:shadow-none md:w-[17rem] md:border-b-0 md:border-r md:px-3 md:pb-4 md:shadow-[inset_-1px_0_0_rgba(255,255,255,0.55)]",a?"pt-[4.25rem] md:pt-[4.25rem]":"pt-4 md:pt-4"),children:[s.jsxs("button",{type:"button",onClick:n,className:"mb-2 inline-flex w-fit items-center gap-1.5 rounded-full px-2.5 py-1.5 text-[12px] font-medium text-muted-foreground transition-colors hover:bg-muted/70 hover:text-foreground md:mb-3",children:[s.jsx(mf,{className:"h-3.5 w-3.5","aria-hidden":!0}),o("settings.backToChat")]}),s.jsx("div",{className:"mb-3 px-1 md:mb-4 md:px-2",children:s.jsx("h2",{className:"text-[18px] font-normal tracking-normal text-foreground",children:o("settings.sidebar.title")})}),s.jsx("nav",{"aria-label":o("settings.sidebar.ariaLabel"),className:"-mx-1 flex gap-2 overflow-x-auto px-1 pb-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden md:mx-0 md:block md:space-y-1 md:overflow-visible md:px-0 md:pb-0",children:H1.map(({key:i,icon:l,fallback:c})=>{const d=i===e;return s.jsxs("button",{type:"button","aria-current":d?"page":void 0,onClick:()=>t(i),className:j("flex h-9 w-auto shrink-0 items-center gap-2 rounded-full px-3 text-left text-[13px] font-medium transition-colors md:w-full md:rounded-[10px] md:px-2.5",d?"bg-muted/90 text-foreground shadow-[inset_0_0_0_1px_rgba(0,0,0,0.025)]":"text-muted-foreground/78 hover:bg-muted/45 hover:text-foreground"),children:[s.jsx(l,{className:"h-4 w-4 shrink-0",strokeWidth:2,"aria-hidden":!0}),s.jsx("span",{className:"truncate",children:o(`settings.nav.${i}`,{defaultValue:c})})]},i)})}),s.jsx("div",{className:"hidden md:mt-auto md:block md:pt-4",children:r&&!a?s.jsxs(fe,{type:"button",variant:"ghost",onClick:r,className:"h-9 w-full justify-start gap-2 rounded-[10px] px-2.5 text-[13px] font-medium text-muted-foreground hover:bg-destructive/8 hover:text-destructive",children:[s.jsx(lA,{className:"h-4 w-4","aria-hidden":!0}),o("app.account.logout")]}):null})]})}function uD({settings:e,requiresRestart:t,onSelectSection:n,showBrandLogos:r}){var R;const{t:a}=ie(),o=(T,F)=>a(T,{defaultValue:F}),i=e.agent.model_preset||"default",l=e.agent.resolved_provider??e.agent.provider,c=Mu(e,l),d=Mo(e.providers,l),p=c?e.agent.model:o("settings.values.notConfigured","Not configured"),m=c?`${l} · ${i}`:d||e.agent.model?[d,e.agent.model].filter(Boolean).join(" · "):o("settings.byok.noConfiguredProviders","No configured providers"),f=e.web.enable?o("settings.values.enabled","Enabled"):o("settings.values.disabled","Disabled"),h=e.web_search.providers.find(T=>T.name===e.web_search.provider)??e.web_search.providers[0],y=Mo(e.web_search.providers,e.web_search.provider),x=(h==null?void 0:h.credential)==="none"?o("settings.byok.webSearch.noCredentialRequired","No key required"):(h==null?void 0:h.credential)==="optional_api_key"?e.web_search.api_key_hint?o("settings.values.configured","Configured"):o("settings.byok.webSearch.noCredentialRequired","No key required"):(h==null?void 0:h.credential)==="base_url"?e.web_search.base_url?o("settings.values.configured","Configured"):o("settings.values.notConfigured","Not configured"):e.web_search.api_key_hint?o("settings.values.configured","Configured"):o("settings.values.notConfigured","Not configured"),b=`${y} · ${x}`,v=e.image_generation.enabled?o("settings.values.enabled","Enabled"):o("settings.values.disabled","Disabled"),g=`${Mo(e.image_generation.providers,e.image_generation.provider)} · ${e.image_generation.provider_configured?o("settings.values.configured","Configured"):o("settings.values.notConfigured","Not configured")}`,w=e.transcription??Eu,k=w.enabled?o("settings.values.enabled","Enabled"):o("settings.values.disabled","Disabled"),C=`${Mo(w.providers,w.provider)} · ${w.provider_configured?o("settings.values.configured","Configured"):o("settings.values.notConfigured","Not configured")}`,N=(e.surface??e.runtime_surface)==="native",S=c1(e.runtime.workspace_path),A=N?o("settings.rows.engine","Engine"):o("settings.rows.gateway","Gateway"),E=N?o("settings.values.privateEngine","Private engine"):`${e.runtime.gateway_host}:${e.runtime.gateway_port}`,_=N?o("settings.values.unixSocket","Unix socket"):t?o("settings.values.restartPending","Restart pending"):o("settings.values.ready","Ready");return s.jsxs("div",{className:"space-y-7",children:[s.jsx("section",{children:s.jsx(P3,{usage:e.usage,timeZone:e.agent.timezone})}),s.jsxs("section",{children:[s.jsx(Jt,{children:o("settings.sections.ai","AI")}),s.jsx(Ht,{children:s.jsx(vo,{icon:Qb,valueLogoProvider:l,title:o("settings.overview.model","Current model"),value:p,caption:m,showBrandLogos:r,onClick:()=>n("models")})})]}),s.jsxs("section",{children:[s.jsx(Jt,{children:o("settings.sections.capabilities","Capabilities")}),s.jsxs(Ht,{children:[s.jsx(vo,{icon:ew,valueLogoProvider:e.web_search.provider,title:o("settings.overview.webSearch","Web search"),value:f,caption:b,showBrandLogos:r,onClick:()=>n("browser")}),s.jsx(vo,{icon:Wi,valueLogoProvider:e.image_generation.provider,title:o("settings.overview.imageGeneration","Image generation"),value:v,caption:g,showBrandLogos:r,onClick:()=>n("image")}),s.jsx(vo,{icon:gf,valueLogoProvider:w.provider,title:o("settings.overview.voiceInput","Voice input"),value:k,caption:C,showBrandLogos:r,onClick:()=>n("voice")})]})]}),s.jsxs("section",{children:[s.jsx(Jt,{children:o("settings.sections.system","System")}),s.jsxs(Ht,{children:[s.jsx(vo,{icon:ts,title:A,value:E,caption:_,onClick:()=>n("runtime")}),s.jsx(vo,{icon:aA,title:o("settings.overview.workspace","Workspace"),value:o("settings.values.defaultWorkspace","Default workspace"),caption:S,onClick:()=>n("runtime")})]})]}),s.jsxs("section",{children:[s.jsx(Jt,{children:o("settings.sections.about","About")}),s.jsx(Ht,{children:s.jsx(dD,{currentVersion:(R=e.version)==null?void 0:R.current})})]})]})}function dD({currentVersion:e}){const{t}=ie(),n=(d,p)=>t(d,{defaultValue:p}),{token:r}=kr(),[a,o]=u.useState(!1),[i,l]=u.useState(null),c=async()=>{o(!0),l(null);try{const d=await SL(r);d.updateAvailable?l({type:"update",latestVersion:d.updateAvailable.latestVersion,pypiUrl:d.updateAvailable.pypiUrl}):l({type:"up-to-date"})}catch(d){l({type:"error",message:d.message})}finally{o(!1)}};return s.jsxs("div",{className:"flex min-h-[62px] flex-col gap-3 px-4 py-3.5 sm:flex-row sm:items-center sm:justify-between sm:px-5",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"text-[14px] font-medium leading-5 text-foreground",children:n("settings.about.version","Version")}),s.jsx("div",{className:"mt-0.5 text-[12px] leading-5 text-muted-foreground",children:e?`v${e}`:"nanobot"})]}),s.jsxs("div",{className:"flex shrink-0 flex-col items-end gap-2",children:[s.jsxs(fe,{size:"sm",variant:"outline",onClick:()=>void c(),disabled:a,className:"rounded-full",children:[a?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):s.jsx(ug,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),a?n("settings.about.checking","Checking..."):n("settings.about.checkForUpdates","Check for updates")]}),(i==null?void 0:i.type)==="up-to-date"?s.jsxs("span",{className:"inline-flex items-center gap-1.5 text-[12px] text-emerald-600 dark:text-emerald-300",children:[s.jsx(Et,{className:"h-3 w-3","aria-hidden":!0}),n("settings.about.upToDate","You're up to date")]}):null,(i==null?void 0:i.type)==="update"?s.jsxs("span",{className:"inline-flex items-center gap-1.5 text-[12px] text-blue-600 dark:text-blue-300",children:[s.jsx(ug,{className:"h-3 w-3","aria-hidden":!0}),t("settings.about.updateAvailable",{defaultValue:"Update available v{{version}}",version:i.latestVersion}),i.pypiUrl?s.jsxs("a",{href:i.pypiUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-0.5 underline-offset-2 hover:underline",children:["PyPI",s.jsx(nw,{className:"h-2.5 w-2.5","aria-hidden":!0})]}):null]}):null,(i==null?void 0:i.type)==="error"?s.jsx("span",{className:"text-[12px] text-destructive",children:i.message}):null]})]})}function pD({theme:e,onToggleTheme:t,localPrefs:n,onChangeLocalPrefs:r}){const{t:a}=ie(),o=(i,l)=>a(i,{defaultValue:l});return s.jsxs("div",{className:"space-y-7",children:[s.jsxs("section",{children:[s.jsx(Jt,{children:a("settings.sections.interface")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:a("settings.rows.theme"),description:a("settings.help.theme"),children:s.jsxs("button",{type:"button",onClick:t,className:"inline-flex h-8 items-center rounded-full bg-muted p-0.5 text-[12px] font-medium text-muted-foreground",children:[s.jsx("span",{className:j("rounded-full px-3 py-1 transition-colors",e==="light"&&"bg-background text-foreground shadow-sm"),children:a("settings.values.light")}),s.jsx("span",{className:j("rounded-full px-3 py-1 transition-colors",e==="dark"&&"bg-background text-foreground shadow-sm"),children:a("settings.values.dark")})]})}),s.jsx(Oe,{title:a("settings.rows.language"),description:a("settings.help.language"),children:s.jsx(uL,{})})]})]}),s.jsxs("section",{children:[s.jsx(Jt,{children:o("settings.sections.localPreferences","Local preferences")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:o("settings.rows.density","Density"),description:o("settings.help.density","Stored only in this browser."),children:s.jsx(eo,{value:n.density,options:[{value:"comfortable",label:o("settings.values.comfortable","Comfortable")},{value:"compact",label:o("settings.values.compact","Compact")}],onChange:i=>r(l=>({...l,density:i}))})}),s.jsx(Oe,{title:o("settings.rows.activityMode","Activity detail"),description:o("settings.help.activityMode","Choose how much agent activity chrome to show by default."),children:s.jsx(eo,{value:n.activityMode,options:[{value:"auto",label:o("settings.values.auto","Auto")},{value:"expanded",label:o("settings.values.expanded","Expanded")}],onChange:i=>r(l=>({...l,activityMode:i}))})}),s.jsx(Oe,{title:o("settings.rows.codeWrap","Code wrapping"),description:o("settings.help.codeWrap","Keep long code lines readable on smaller screens."),children:s.jsx(is,{checked:n.codeWrap,onChange:i=>r(l=>({...l,codeWrap:i})),ariaLabel:o("settings.rows.codeWrap","Code wrapping"),label:n.codeWrap?o("settings.values.on","On"):o("settings.values.off","Off")})}),s.jsx(Oe,{title:o("settings.rows.brandLogos","Brand logos"),description:o("settings.help.brandLogos","Show third-party provider and CLI logos in Settings."),children:s.jsx(is,{checked:n.brandLogos,onChange:i=>r(l=>({...l,brandLogos:i})),ariaLabel:o("settings.rows.brandLogos","Brand logos"),label:n.brandLogos?o("settings.values.on","On"):o("settings.values.off","Off")})})]})]})]})}function mD({open:e,draft:t,providers:n,saving:r,showProviderLogos:a,onOpenChange:o,onChangeDraft:i,onSave:l}){const{t:c}=ie(),d=(m,f)=>c(m,{defaultValue:f}),p=!!(t.label.trim()&&t.provider.trim()&&t.model.trim());return s.jsx(Yi,{open:e,onOpenChange:o,children:s.jsx(bs,{className:"max-w-[520px] rounded-[28px] border-border/55 bg-card/95 p-0 shadow-[0_28px_90px_rgba(15,23,42,0.20)] backdrop-blur-xl dark:border-white/10",children:s.jsxs("form",{onSubmit:m=>{m.preventDefault(),l()},children:[s.jsxs(Qi,{className:"border-b border-border/45 px-5 py-4 text-left",children:[s.jsx(ws,{className:"text-[18px] font-semibold tracking-[-0.01em]",children:d("settings.models.newConfiguration","New model configuration")}),s.jsx(Ji,{className:"text-[12.5px] leading-5",children:d("settings.models.newConfigurationHelp","Save a provider and model as a one-click option.")})]}),s.jsxs("div",{className:"space-y-4 px-5 py-5",children:[s.jsxs("label",{className:"block",children:[s.jsx("span",{className:"mb-1.5 block text-[12px] font-medium text-muted-foreground",children:d("settings.models.configurationName","Configuration name")}),s.jsx(Ye,{autoFocus:!0,value:t.label,placeholder:d("settings.models.configurationNamePlaceholder","Fast writing"),onChange:m=>i(f=>({...f,label:m.target.value})),className:"h-10 rounded-full px-4 text-[14px]"})]}),s.jsxs("div",{className:"grid gap-4 sm:grid-cols-[1fr_auto] sm:items-end",children:[s.jsxs("label",{className:"block",children:[s.jsx("span",{className:"mb-1.5 block text-[12px] font-medium text-muted-foreground",children:d("settings.rows.model","Model")}),s.jsx(Ye,{value:t.model,placeholder:"openai/gpt-4.1",onChange:m=>i(f=>({...f,model:m.target.value})),className:"h-10 rounded-full px-4 text-[14px]"})]}),s.jsxs("div",{className:"block",children:[s.jsx("span",{className:"mb-1.5 block text-[12px] font-medium text-muted-foreground",children:d("settings.rows.provider","Provider")}),s.jsx(Ua,{providers:n,value:t.provider,emptyLabel:d("settings.byok.noConfiguredProviders","No configured providers"),showProviderLogos:a,onChange:m=>i(f=>({...f,provider:m}))})]})]})]}),s.jsxs(Xi,{className:"border-t border-border/45 px-5 py-4 sm:space-x-2",children:[s.jsx(fe,{type:"button",variant:"ghost",className:"rounded-full",disabled:r,onClick:()=>o(!1),children:d("settings.actions.cancel","Cancel")}),s.jsxs(fe,{type:"submit",variant:"outline",className:"rounded-full",disabled:!p||r||n.length===0,children:[r?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):null,r?d("settings.actions.saving","Saving..."):d("settings.actions.save","Save")]})]})]})})})}function fD({token:e,form:t,setForm:n,settings:r,dirty:a,saving:o,showBrandLogos:i,providerSaving:l,onProviderOAuthLogin:c,onSave:d,onCreateConfiguration:p}){var A;const{t:m}=ie(),f=(E,_)=>m(E,{defaultValue:_}),h=r.providers.filter(E=>E.configured),y=((A=Li(r))==null?void 0:A.provider)==="auto"||t.provider==="auto",x=i4(h),b=y?[{name:"auto",label:f("settings.values.auto","Auto")},...x]:x,v=b.some(E=>E.name===t.provider)?t.provider:"",g=r.model_presets.find(E=>E.name===t.modelPreset)??null,w=r.providers.find(E=>E.name===t.provider),k=(w==null?void 0:w.auth_type)==="oauth"&&!w.configured,C=l===(w==null?void 0:w.name),N=Mu(r,t.provider),S=!t.model.trim()||!t.provider.trim()||!!(g&&!g.is_default&&!t.presetLabel.trim());return s.jsx("div",{className:"space-y-7",children:s.jsx("section",{children:s.jsxs(Ht,{children:[s.jsx(Oe,{title:f("settings.rows.currentModel","Current configuration"),description:f("settings.help.currentModel","Used for new replies."),children:s.jsx(g4,{presets:r.model_presets,value:t.modelPreset,settings:r,draftModel:t.model,draftProvider:t.provider,providerConfigured:N,showProviderLogos:i,onChange:E=>{const _=r.model_presets.find(R=>R.name===E);n(R=>({...R,modelPreset:E,model:(_==null?void 0:_.model)??R.model,provider:_!=null&&_.is_default?Oi(r):(_==null?void 0:_.provider)??R.provider,presetLabel:(_==null?void 0:_.label)??E,contextWindowTokens:Di((_==null?void 0:_.context_window_tokens)??R.contextWindowTokens)}))},onCreateConfiguration:p})}),g&&!g.is_default?s.jsx(Oe,{title:f("settings.models.configurationName","Configuration name"),description:f("settings.models.configurationNameHelp","Rename this saved model configuration."),children:s.jsx(Ye,{value:t.presetLabel,onChange:E=>n(_=>({..._,presetLabel:E.target.value})),className:"h-8 w-[min(280px,70vw)] rounded-full text-[13px]"})}):null,s.jsx(Oe,{title:m("settings.rows.provider"),description:m("settings.help.provider"),children:s.jsx(Ua,{providers:b,value:v,emptyLabel:m("settings.byok.noConfiguredProviders"),showProviderLogos:i,onChange:E=>n(_=>({..._,provider:E,model:E===_.provider?_.model:""}))})}),k?s.jsx(Oe,{title:f("settings.oauth.signInRequired","Sign in required"),description:f("settings.oauth.signInBeforeSaving","Sign in before saving this OAuth provider as the active model provider."),children:s.jsxs(fe,{size:"sm",variant:"outline",onClick:()=>w&&c(w.name),disabled:!(w!=null&&w.oauth_login_supported)||C,className:"rounded-full",children:[C?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):null,C?f("settings.oauth.signingIn","Signing in..."):f("settings.oauth.signIn","Sign in")]})}):null,s.jsx(Oe,{title:m("settings.rows.model"),description:m("settings.help.model"),children:s.jsx(n4,{token:e,settings:r,provider:t.provider,value:t.model,showProviderLogos:i,onChange:E=>n(_=>({..._,model:E}))})}),s.jsx(Oe,{title:f("settings.rows.contextWindow","Context window"),description:f("settings.help.contextWindow","Choose the default context budget for this model configuration."),children:s.jsx(eo,{value:String(t.contextWindowTokens),options:q3.map(E=>({value:String(E),label:E===262144?"256K":E===2e5?"200K":"64K"})),onChange:E=>n(_=>({..._,contextWindowTokens:Di(Number(E))}))})}),s.jsx(v4,{dirty:a,saving:o,saved:!1,disabled:k||S,message:k?f("settings.oauth.signInBeforeSaving","Sign in before saving this OAuth provider as the active model provider."):void 0,onSave:d})]})})})}function hD({settings:e,expandedProvider:t,providerForms:n,visibleProviderKeys:r,editingProviderKeys:a,providerSaving:o,query:i,showBrandLogos:l,onQueryChange:c,onToggleProvider:d,onToggleProviderKey:p,onToggleProviderKeyEditing:m,onChangeProviderForm:f,onSaveProvider:h,onProviderOAuthLogin:y,onProviderOAuthLogout:x,onResetProviderDraft:b,imageProviderRestartPending:v,onRestart:g,isRestarting:w}){const{t:k}=ie(),C=(R,T)=>k(R,{defaultValue:T}),N=e.providers.filter(R=>R.configured),S=u.useMemo(()=>s4(e.providers.filter(R=>!R.configured)),[e.providers]),A=Uv(N,i),E=Uv(S,i),_=R=>{var de;const T=t===R.name,F=n[R.name]??{apiKey:"",apiBase:R.api_base??R.default_api_base??"",apiType:R.api_type??"auto"},z=o===R.name,K=R.auth_type==="oauth",$=!!r[R.name],W=!R.configured||!!a[R.name],P=R.api_key_required??!0,D=F.apiKey.trim(),G=F.apiBase.trim(),Y=!K&&P&&!R.configured&&!D,oe=!K&&!P&&!R.configured&&!D&&!G;return s.jsxs("div",{className:"divide-y divide-border/45",children:[s.jsxs("button",{type:"button",onClick:()=>d(R.name),className:"flex min-h-[70px] w-full items-center justify-between gap-4 px-4 py-3 text-left transition-colors hover:bg-muted/35 sm:px-5",children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-3",children:[s.jsx(m4,{provider:R.name,showBrandLogos:l}),s.jsxs("span",{className:"min-w-0",children:[s.jsx("span",{className:"block truncate text-[15px] font-semibold leading-5 text-foreground",children:R.label}),s.jsx("span",{className:"block truncate text-[12px] text-muted-foreground",children:R.api_base||R.default_api_base||R.name})]})]}),s.jsx(Iu,{tone:R.configured?"success":"neutral",children:K?R.configured?C("settings.oauth.signedIn","Signed in"):C("settings.oauth.notSignedIn","Not signed in"):R.configured?k("settings.byok.configured"):k("settings.byok.notConfigured")})]}),T?s.jsx("div",{className:"space-y-3 bg-muted/18 px-4 py-4 sm:px-5",children:K?s.jsxs("div",{className:"flex flex-col gap-3 rounded-[18px] border border-border/45 bg-background/75 px-4 py-3 sm:flex-row sm:items-center sm:justify-between",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("p",{className:"text-[13px] font-semibold text-foreground",children:C("settings.oauth.authentication","OAuth authentication")}),s.jsx("p",{className:"mt-1 truncate text-[12px] text-muted-foreground",children:R.configured?k("settings.oauth.signedInAs",{account:R.oauth_account||R.label,defaultValue:"Signed in as {{account}}"}):C("settings.oauth.signInHelp","Sign in from this device; no API key is stored in config.")})]}),s.jsxs("div",{className:"flex shrink-0 justify-end gap-2",children:[R.configured?s.jsx(fe,{size:"sm",variant:"ghost",onClick:()=>x(R.name),disabled:z,className:"rounded-full",children:C("settings.oauth.signOut","Sign out")}):null,s.jsxs(fe,{size:"sm",variant:"outline",onClick:()=>y(R.name),disabled:z||!R.oauth_login_supported,className:"rounded-full",children:[z?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):null,z?C("settings.oauth.signingIn","Signing in..."):R.configured?C("settings.oauth.signInAgain","Sign in again"):C("settings.oauth.signIn","Sign in")]})]})]}):s.jsxs(s.Fragment,{children:[s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:k("settings.byok.apiKey")}),s.jsx("div",{className:"relative",children:W?s.jsxs(s.Fragment,{children:[s.jsx(Ye,{type:$?"text":"password",value:F.apiKey,onChange:pe=>f(R.name,{apiKey:pe.target.value}),placeholder:R.configured?k("settings.byok.apiKeyConfiguredPlaceholder"):k("settings.byok.apiKeyPlaceholder"),className:"h-9 rounded-full pr-11 text-[13px]"}),s.jsx(fe,{type:"button",variant:"ghost",size:"icon",onClick:()=>p(R.name),"aria-label":k($?"settings.byok.hideApiKey":"settings.byok.showApiKey"),className:"absolute right-1 top-1/2 h-7 w-7 -translate-y-1/2 rounded-full text-muted-foreground hover:bg-muted hover:text-foreground",children:$?s.jsx(rw,{className:"h-3.5 w-3.5","aria-hidden":!0}):s.jsx(aw,{className:"h-3.5 w-3.5","aria-hidden":!0})})]}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"flex h-9 items-center rounded-full border border-input bg-background px-3 pr-11 text-[13px] text-muted-foreground",children:R.api_key_hint??k("settings.byok.configuredKeyHint")}),s.jsx(fe,{type:"button",variant:"ghost",size:"icon",onClick:()=>m(R.name),"aria-label":k("settings.actions.edit"),className:"absolute right-1 top-1/2 h-7 w-7 -translate-y-1/2 rounded-full text-muted-foreground hover:bg-muted hover:text-foreground",children:s.jsx(fs,{className:"h-3.5 w-3.5","aria-hidden":!0})})]})})]}),s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:k("settings.byok.apiBase")}),s.jsx(Ye,{value:F.apiBase,onChange:pe=>f(R.name,{apiBase:pe.target.value}),placeholder:R.default_api_base??k("settings.byok.apiBasePlaceholder"),className:"h-9 rounded-full text-[13px]"})]}),R.name==="openai"?s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:C("settings.byok.apiType","API type")}),s.jsxs(gn,{children:[s.jsx(vn,{asChild:!0,children:s.jsxs(fe,{type:"button",variant:"outline",className:"h-9 w-full justify-between rounded-full px-3 text-[13px]",children:[s.jsx("span",{children:((de=Nv.find(pe=>pe.value===F.apiType))==null?void 0:de.label)??F.apiType}),s.jsx(yr,{className:"h-3.5 w-3.5 text-muted-foreground","aria-hidden":!0})]})}),s.jsx(ln,{align:"start",className:"min-w-[220px]",children:Nv.map(pe=>s.jsx(gt,{onSelect:()=>f(R.name,{apiType:pe.value}),children:pe.label},pe.value))})]})]}):null,s.jsxs("div",{className:"flex items-center justify-end gap-2",children:[s.jsx(fe,{size:"sm",variant:"ghost",onClick:()=>b(R.name),className:"rounded-full",children:k("settings.actions.cancel")}),s.jsx(fe,{size:"sm",variant:"outline",onClick:()=>h(R.name),disabled:z||Y||oe,className:"rounded-full",children:z?k("settings.actions.saving"):C("settings.providers.saveProvider","Save provider")})]})]})}):null]},R.name)};return s.jsxs("div",{className:"space-y-6",children:[s.jsx("p",{className:"max-w-[42rem] text-[13px] leading-6 text-muted-foreground",children:k("settings.byok.description")}),v&&g?s.jsxs("div",{className:"flex min-h-[48px] items-center justify-between gap-3 border-y border-border/55 py-3",children:[s.jsx("p",{className:"text-[13px] leading-5 text-muted-foreground",children:C("settings.status.imageProviderRestart","Image provider changes saved. Restart when ready.")}),s.jsx("div",{className:"shrink-0",children:s.jsxs(fe,{size:"sm",variant:"ghost",onClick:g,disabled:w,className:"rounded-full",children:[w?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):s.jsx(qi,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),k(w?"app.system.restarting":"app.system.restart")]})})]}):null,s.jsxs("div",{className:"relative",children:[s.jsx(Tt,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground","aria-hidden":!0}),s.jsx(Ye,{value:i,onChange:R=>c(R.target.value),placeholder:C("settings.providers.searchPlaceholder","Search providers"),className:"h-10 rounded-full pl-9 text-[13px]"})]}),s.jsx(zv,{title:k("settings.byok.configuredSection"),count:A.length,empty:k("settings.byok.noConfiguredProviders"),children:A.map(_)}),s.jsx(zv,{title:k("settings.byok.notConfiguredSection"),count:E.length,empty:C("settings.providers.noMatches","No providers match this search."),children:E.map(_)}),s.jsx(tC,{})]})}function gD({settings:e,form:t,dirty:n,saving:r,onChangeForm:a,onSave:o,onOpenProviders:i,showBrandLogos:l,onRestart:c,isRestarting:d,requiresRestartPending:p}){const{t:m}=ie(),f=(g,w)=>m(g,{defaultValue:w}),h=e.image_generation.providers.find(g=>g.name===t.provider)??e.image_generation.providers[0],y=!!(h!=null&&h.configured),x=t.enabled&&!y,b=Bv(J3.map(g=>({name:g,label:g})),t.defaultAspectRatio),v=Bv(Z3.map(g=>({name:g,label:g})),t.defaultImageSize);return s.jsxs("div",{className:"space-y-7",children:[s.jsxs("section",{children:[s.jsx(Jt,{children:f("settings.sections.imageGeneration","Image generation")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:f("settings.rows.imageGeneration","Image generation"),description:f("settings.help.imageGeneration","Expose generate_image in chats when a configured image provider is available."),children:s.jsx(is,{checked:t.enabled,onChange:g=>a(w=>({...w,enabled:g})),ariaLabel:f("settings.rows.imageGeneration","Image generation"),label:t.enabled?f("settings.values.on","On"):f("settings.values.off","Off")})}),s.jsx(Oe,{title:f("settings.rows.imageProvider","Image provider"),description:f("settings.help.imageProvider","Choose the registry provider used by generate_image."),children:s.jsx(Ua,{providers:e.image_generation.providers,value:t.provider,emptyLabel:f("settings.image.selectProvider","Select provider"),showProviderLogos:l,onChange:g=>a(w=>({...w,provider:g}))})}),s.jsx(Oe,{title:f("settings.rows.imageProviderStatus","Provider status"),description:f("settings.help.imageProviderStatus","Image generation reuses provider credentials from Providers."),children:s.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[s.jsx(Iu,{tone:y?"success":"neutral",children:y?f("settings.values.configured","Configured"):f("settings.values.notConfigured","Not configured")}),y?null:s.jsx(fe,{size:"sm",variant:"outline",onClick:i,className:"rounded-full",children:f("settings.image.configureProvider","Configure provider")})]})}),s.jsx(Oe,{title:f("settings.rows.imageProviderBase","Provider base"),children:s.jsx("span",{className:"max-w-[320px] truncate text-right text-[13px] text-muted-foreground",children:(h==null?void 0:h.api_base)||(h==null?void 0:h.default_api_base)||(h==null?void 0:h.name)||f("settings.values.notAvailable","Not available")})})]})]}),s.jsxs("section",{children:[s.jsx(Jt,{children:f("settings.sections.imageDefaults","Defaults")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:f("settings.rows.imageModel","Image model"),description:f("settings.help.imageModel","Model name sent to the selected image provider."),children:s.jsx(Ye,{value:t.model,onChange:g=>a(w=>({...w,model:g.target.value})),className:"h-8 w-[min(300px,70vw)] rounded-full text-[13px]"})}),s.jsx(Oe,{title:f("settings.rows.defaultAspectRatio","Default aspect"),description:f("settings.help.defaultAspectRatio","Used when the prompt does not choose an aspect ratio."),children:s.jsx(Ua,{providers:b,value:t.defaultAspectRatio,emptyLabel:f("settings.image.selectAspect","Select aspect"),onChange:g=>a(w=>({...w,defaultAspectRatio:g}))})}),s.jsx(Oe,{title:f("settings.rows.defaultImageSize","Default size"),description:f("settings.help.defaultImageSize","Size hint sent to providers that support it."),children:s.jsx(Ua,{providers:v,value:t.defaultImageSize,emptyLabel:f("settings.image.selectSize","Select size"),onChange:g=>a(w=>({...w,defaultImageSize:g}))})}),s.jsx(Oe,{title:f("settings.rows.maxImagesPerTurn","Max images per turn"),description:f("settings.help.maxImagesPerTurn","Upper bound for one generate_image request."),children:s.jsx(zi,{value:t.maxImagesPerTurn,min:1,max:8,onChange:g=>a(w=>({...w,maxImagesPerTurn:g}))})}),s.jsx(Ks,{title:f("settings.rows.imageSaveDir","Save directory"),value:e.image_generation.save_dir}),s.jsx(ol,{dirty:n,saving:r,pendingRestart:p,disabled:x,message:x?f("settings.image.missingCredential","Configure this provider before enabling image generation."):void 0,dirtyMessage:f("settings.status.restartAfterSaving","Save changes, then restart when ready."),pendingMessage:f("settings.status.savedRestartApply","Saved. Restart when ready."),onSave:o,onRestart:c,isRestarting:d})]})]})]})}function vD({settings:e,form:t,dirty:n,saving:r,onChangeForm:a,onSave:o,onOpenProviders:i,showBrandLogos:l,onRestart:c,isRestarting:d,requiresRestartPending:p}){const{t:m}=ie(),f=(b,v)=>m(b,{defaultValue:v}),h=e.transcription??Eu,y=h.providers.find(b=>b.name===t.provider)??h.providers[0],x=!!(y!=null&&y.configured);return s.jsxs("section",{children:[s.jsx(Jt,{children:f("settings.sections.voiceInput","Voice input")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:f("settings.rows.transcription","Transcription"),description:f("settings.help.transcription","Transcribe microphone input before sending it. Chat channel voice messages use the same settings."),children:s.jsx(is,{checked:t.enabled,onChange:b=>a(v=>({...v,enabled:b})),ariaLabel:f("settings.rows.transcription","Transcription"),label:t.enabled?f("settings.values.on","On"):f("settings.values.off","Off")})}),s.jsx(Oe,{title:f("settings.rows.transcriptionProvider","Provider"),description:f("settings.help.transcriptionProvider","Uses the matching provider credentials from Providers."),children:s.jsx(Ua,{providers:h.providers,value:t.provider,emptyLabel:f("settings.voice.selectProvider","Select provider"),showProviderLogos:l,onChange:b=>a(v=>({...v,provider:b}))})}),s.jsx(Oe,{title:f("settings.rows.transcriptionProviderStatus","Provider status"),description:f("settings.help.transcriptionProviderStatus","API keys stay under providers, not in transcription settings."),children:s.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[s.jsx(Iu,{tone:x?"success":"neutral",children:x?f("settings.values.configured","Configured"):f("settings.values.notConfigured","Not configured")}),x?null:s.jsx(fe,{size:"sm",variant:"outline",onClick:i,className:"rounded-full",children:f("settings.voice.configureProvider","Configure provider")})]})}),s.jsx(Oe,{title:f("settings.rows.transcriptionModel","Model"),description:f("settings.help.transcriptionModel","Leave as the resolved default unless your provider needs a custom model id."),children:s.jsx(Ye,{value:t.model,onChange:b=>a(v=>({...v,model:b.target.value})),className:"h-8 w-[min(300px,70vw)] rounded-full text-[13px]"})}),s.jsx(Oe,{title:f("settings.rows.transcriptionLanguage","Language"),description:f("settings.help.transcriptionLanguage","Optional ISO-639 hint such as en, zh, ja, or ko."),children:s.jsx(Ye,{value:t.language,onChange:b=>a(v=>({...v,language:b.target.value})),placeholder:f("settings.voice.languageAuto","Auto"),className:"h-8 w-[min(180px,60vw)] rounded-full text-[13px]"})}),s.jsx(Oe,{title:f("settings.rows.voiceLimits","Limits"),children:s.jsxs("div",{className:"flex flex-wrap justify-end gap-2",children:[s.jsx(zi,{value:t.maxDurationSec,min:1,max:600,suffix:"s",onChange:b=>a(v=>({...v,maxDurationSec:b}))}),s.jsx(zi,{value:t.maxUploadMb,min:1,max:100,suffix:"MB",onChange:b=>a(v=>({...v,maxUploadMb:b}))})]})}),s.jsx(ol,{dirty:n,saving:r,pendingRestart:p,dirtyMessage:f("settings.status.restartAfterSaving","Save changes, then restart when ready."),pendingMessage:f("settings.status.savedRestartApply","Saved. Restart when ready."),onSave:o,onRestart:c,isRestarting:d})]})]})}function xD({settings:e,form:t,keyVisible:n,keyEditing:r,saving:a,onChangeForm:o,onChangeProvider:i,onToggleKey:l,onToggleKeyEditing:c,onReset:d,onSave:p,showBrandLogos:m,onRestart:f,isRestarting:h,requiresRestartPending:y}){var _,R;const{t:x}=ie(),b=(T,F)=>x(T,{defaultValue:F}),v=e.web_search.providers.find(T=>T.name===t.provider)??e.web_search.providers[0],g=si(v)&&t.provider===e.web_search.provider&&!!e.web_search.api_key_hint,w=si(v)&&(!g||r),k=((_=t.apiKey)==null?void 0:_.trim())??"",C=((R=t.baseUrl)==null?void 0:R.trim())??"",N=t.useJinaReader??e.web.fetch.use_jina_reader,S=t.provider!==e.web_search.provider||k.length>0||C!==(e.web_search.base_url??"")||t.maxResults!==e.web_search.max_results||t.timeout!==e.web_search.timeout||N!==e.web.fetch.use_jina_reader,A=N!==e.web.fetch.use_jina_reader,E=B1(v)?!k&&!g:(v==null?void 0:v.credential)==="base_url"?!C:!1;return s.jsxs("div",{className:"space-y-7",children:[s.jsxs("section",{children:[s.jsx(Jt,{children:b("settings.sections.webSearch","Web search")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:x("settings.byok.webSearch.provider"),description:x("settings.byok.webSearch.providerHelp"),children:s.jsx(Ua,{providers:e.web_search.providers,value:t.provider,emptyLabel:x("settings.byok.webSearch.selectProvider"),showProviderLogos:m,onChange:i})}),(v==null?void 0:v.credential)==="none"?s.jsx(Oe,{title:x("settings.byok.webSearch.credentials"),description:x("settings.byok.webSearch.noCredentialHelp"),children:s.jsx(Iu,{tone:"success",children:x("settings.byok.webSearch.noCredentialRequired")})}):null,si(v)?s.jsx(Oe,{title:x("settings.byok.apiKey"),description:x("settings.byok.webSearch.apiKeyHelp"),children:s.jsx("div",{className:"relative w-[280px] max-w-full",children:w?s.jsxs(s.Fragment,{children:[s.jsx(Ye,{type:n?"text":"password",value:t.apiKey??"",onChange:T=>o(F=>({...F,apiKey:T.target.value})),placeholder:x(g?"settings.byok.apiKeyConfiguredPlaceholder":"settings.byok.apiKeyPlaceholder"),className:"h-9 rounded-full pr-11 text-[13px]"}),s.jsx(fe,{type:"button",variant:"ghost",size:"icon",onClick:l,"aria-label":x(n?"settings.byok.hideApiKey":"settings.byok.showApiKey"),className:"absolute right-1 top-1/2 h-7 w-7 -translate-y-1/2 rounded-full text-muted-foreground hover:bg-muted hover:text-foreground",children:n?s.jsx(rw,{className:"h-3.5 w-3.5","aria-hidden":!0}):s.jsx(aw,{className:"h-3.5 w-3.5","aria-hidden":!0})})]}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"flex h-9 items-center rounded-full border border-input bg-background px-3 pr-11 text-[13px] text-muted-foreground",children:e.web_search.api_key_hint??x("settings.byok.configuredKeyHint")}),s.jsx(fe,{type:"button",variant:"ghost",size:"icon",onClick:c,"aria-label":x("settings.actions.edit"),className:"absolute right-1 top-1/2 h-7 w-7 -translate-y-1/2 rounded-full text-muted-foreground hover:bg-muted hover:text-foreground",children:s.jsx(fs,{className:"h-3.5 w-3.5","aria-hidden":!0})})]})})}):null,(v==null?void 0:v.credential)==="base_url"?s.jsx(Oe,{title:x("settings.byok.webSearch.baseUrl"),description:x("settings.byok.webSearch.baseUrlHelp"),children:s.jsx(Ye,{value:t.baseUrl??"",onChange:T=>o(F=>({...F,baseUrl:T.target.value})),placeholder:x("settings.byok.webSearch.baseUrlPlaceholder"),className:"h-9 w-[280px] rounded-full text-[13px]"})}):null]})]}),s.jsxs("section",{children:[s.jsx(Jt,{children:b("settings.sections.webBehavior","Behavior")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:b("settings.rows.maxResults","Max results"),description:b("settings.help.maxResults","Results returned by each web_search call."),children:s.jsx(zi,{value:t.maxResults??e.web_search.max_results,min:1,max:10,onChange:T=>o(F=>({...F,maxResults:T}))})}),s.jsx(Oe,{title:b("settings.rows.timeout","Timeout"),description:b("settings.help.timeout","Seconds before a search provider request times out."),children:s.jsx(zi,{value:t.timeout??e.web_search.timeout,min:1,max:120,onChange:T=>o(F=>({...F,timeout:T})),suffix:"s"})}),s.jsx(Oe,{title:b("settings.rows.jinaReader","Jina reader"),description:b("settings.help.jinaReader","Use Jina Reader for web_fetch when available."),children:s.jsx(is,{checked:N,onChange:T=>o(F=>({...F,useJinaReader:T})),ariaLabel:b("settings.rows.jinaReader","Jina reader"),label:N?b("settings.values.on","On"):b("settings.values.off","Off")})}),s.jsx(ol,{dirty:S,saving:a,pendingRestart:y,disabled:E,message:E?x("settings.byok.webSearch.missingCredential"):y&&!S?b("settings.status.savedRestartApply","Saved. Restart when ready."):A?b("settings.status.restartAfterSaving","Save changes, then restart when ready."):S?x("settings.byok.webSearch.saveHint"):void 0,onSave:p,onRestart:f,onReset:d,isRestarting:h})]})]})]})}function yD({payload:e,loading:t,query:n,filter:r,sort:a,actionKey:o,error:i,onQueryChange:l,onFilterChange:c,onSortChange:d,onAction:p,onRequestEdit:m,onRequestDelete:f}){const{t:h,i18n:y}=ie(),x=(T,F,z)=>h(T,{defaultValue:F}),b=(e==null?void 0:e.jobs)??[],v=y.resolvedLanguage||y.language,[g,w]=u.useState(null),k=u.useMemo(()=>{const T=RD(n);return jD(b,a).filter(F=>FD(F,r)).filter(F=>!T.length||MD(F,T))},[r,b,n,a]),C=b.filter(T=>{const F=Za(T);return F==="active"||F==="running"}).length,N=b.filter(T=>Za(T)==="paused").length,S=b.filter(q1).length,A=b.filter(T=>T.protected).length,E=[{value:"all",label:x("settings.automations.filters.all","All"),count:b.length},{value:"active",label:x("settings.automations.filters.active","Active"),count:C},{value:"paused",label:x("settings.automations.filters.paused","Paused"),count:N},{value:"failed",label:x("settings.automations.filters.failed","Needs attention"),count:S},{value:"system",label:x("settings.automations.filters.system","System"),count:A}],_={next:x("settings.automations.sort.next","Next run"),last:x("settings.automations.sort.last","Last run"),updated:x("settings.automations.sort.updated","Updated"),name:x("settings.automations.sort.name","Name")},R=k.find(T=>T.id===g)??k[0]??null;return u.useEffect(()=>{if(!k.length){g!==null&&w(null);return}(!g||!k.some(T=>T.id===g))&&w(k[0].id)},[k,g]),s.jsxs("div",{className:"space-y-5",children:[s.jsx("section",{className:"shrink-0",children:s.jsxs("div",{className:"mx-auto flex w-full max-w-[56rem] flex-col gap-3",children:[s.jsx("div",{className:"-mx-1 overflow-x-auto px-1 pb-0.5",children:s.jsx("div",{className:"grid w-full min-w-[36rem] grid-cols-5 gap-1 rounded-[15px] bg-muted/42 p-1 shadow-[inset_0_0_0_1px_rgba(15,23,42,0.035)] dark:bg-background/30",children:E.map(T=>s.jsxs("button",{type:"button",onClick:()=>c(T.value),className:j("inline-flex h-8 min-w-0 shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-[11px] px-3 text-[12px] font-medium text-muted-foreground transition-colors",r===T.value&&"bg-background text-foreground shadow-[0_8px_20px_rgba(15,23,42,0.07)] dark:bg-background/80",zD(T.value,T.count,r===T.value)),children:[s.jsx("span",{children:T.label}),s.jsx("span",{className:j("min-w-5 shrink-0 rounded-full bg-background/75 px-1.5 py-0.5 text-center text-[11px] tabular-nums text-muted-foreground",$D(T.value,T.count)),children:T.count})]},T.value))})}),s.jsxs("div",{className:"grid min-w-0 gap-2 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center",children:[s.jsxs("div",{className:"relative min-w-0",children:[s.jsx(Tt,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground/70"}),s.jsx(Ye,{value:n,onChange:T=>l(T.target.value),placeholder:x("settings.automations.search","Search task, message, linked chat, or schedule"),className:"h-9 w-full rounded-[13px] border-border/45 bg-background/85 pl-9 text-[13px] shadow-[0_8px_22px_rgba(15,23,42,0.04)] dark:border-white/10 dark:bg-background/40"})]}),s.jsxs(gn,{children:[s.jsx(vn,{asChild:!0,children:s.jsxs("button",{type:"button",className:"inline-flex h-9 min-w-[8.5rem] items-center justify-center gap-1.5 whitespace-nowrap rounded-[13px] border border-border/45 bg-background/85 px-3 text-[12px] font-medium text-muted-foreground shadow-[0_8px_22px_rgba(15,23,42,0.04)] transition-colors hover:bg-muted/70 hover:text-foreground dark:border-white/10 dark:bg-background/40 sm:w-auto",children:[s.jsx(Wj,{className:"h-3.5 w-3.5","aria-hidden":!0}),s.jsx("span",{children:_[a]}),s.jsx(yr,{className:"h-3.5 w-3.5","aria-hidden":!0})]})}),s.jsx(ln,{align:"end",className:"min-w-40",children:Object.keys(_).map(T=>s.jsxs(gt,{onClick:()=>d(T),children:[s.jsx("span",{children:_[T]}),a===T?s.jsx(Et,{className:"ml-auto h-3.5 w-3.5","aria-hidden":!0}):null]},T))})]})]})]})}),i?s.jsxs("div",{className:"flex items-center gap-2 rounded-[18px] border border-destructive/20 bg-destructive/5 px-4 py-3 text-[13px] text-destructive",children:[s.jsx(ja,{className:"h-4 w-4 shrink-0","aria-hidden":!0}),s.jsx("span",{children:i})]}):null,t&&!e?s.jsxs("div",{className:"flex h-44 items-center justify-center rounded-[24px] border border-border/45 bg-card/80 text-[13px] text-muted-foreground shadow-[0_22px_70px_rgba(15,23,42,0.055)]",children:[s.jsx(pt,{className:"mr-2 h-4 w-4 animate-spin","aria-hidden":!0}),x("settings.automations.loading","Loading automations...")]}):k.length&&R?s.jsxs("section",{className:"grid min-h-0 overflow-hidden rounded-[22px] border border-border/45 bg-transparent shadow-none dark:border-white/10 xl:grid-cols-[minmax(16rem,18rem)_minmax(0,1fr)] xl:items-stretch",children:[s.jsxs("aside",{className:"flex min-h-0 flex-col overflow-hidden border-b border-border/35 bg-background/36 dark:border-white/10 dark:bg-background/18 xl:border-b-0 xl:border-r",children:[s.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3 px-4 py-3",children:[s.jsx("h2",{className:"text-[13px] font-semibold tracking-[-0.01em] text-foreground/85",children:x("settings.automations.queue","Queue")}),s.jsx("span",{className:"rounded-full bg-orange-100/60 px-2 py-0.5 text-[11px] text-orange-800/70 tabular-nums dark:bg-orange-300/10 dark:text-orange-200/75",children:k.length})]}),s.jsx("div",{className:"max-h-[28rem] space-y-1 overflow-y-auto overscroll-contain px-2 pb-2 xl:max-h-[calc(100vh-24rem)]",role:"list","aria-label":x("settings.automations.queue","Queue"),children:k.map(T=>s.jsx(bD,{job:T,locale:v,selected:T.id===R.id,onSelect:()=>w(T.id)},T.id))})]}),s.jsx(wD,{job:R,locale:v,actionKey:o,onAction:p,onRequestEdit:m,onRequestDelete:f})]}):s.jsxs("div",{className:"rounded-[24px] border border-border/45 bg-card/80 px-5 py-12 text-center text-[13px] text-muted-foreground shadow-[0_22px_70px_rgba(15,23,42,0.055)]",children:[s.jsx("div",{children:b.length?x("settings.automations.noMatches","No automations match this view."):x("settings.automations.empty","No automations yet.")}),b.length?null:s.jsx("div",{className:"mx-auto mt-2 max-w-[28rem] text-[12px] leading-5",children:x("settings.automations.emptyHint","Create one from where it should run so nanobot keeps the right context.")})]})]})}function bD({job:e,locale:t,selected:n,onSelect:r}){const{t:a}=ie(),o=(d,p,m)=>a(d,{defaultValue:p,...m??{}}),i=Q1(e,o),l=X1(e,o),c=Qf(e,o);return s.jsx("div",{role:"listitem",children:s.jsxs("button",{type:"button","aria-pressed":n,onClick:r,className:j("group grid w-full grid-cols-[minmax(0,1fr)_auto] gap-3 rounded-[18px] px-3 py-3.5 text-left transition-colors",n?"bg-background text-foreground shadow-[0_10px_28px_rgba(15,23,42,0.055)] ring-1 ring-border/45 dark:bg-background/45 dark:ring-white/10":"text-muted-foreground hover:bg-white/48 hover:text-foreground dark:hover:bg-background/24"),children:[s.jsxs("span",{className:"min-w-0",children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-2.5",children:[s.jsx("span",{className:j("h-2 w-2 shrink-0 rounded-full",HD(e)),"aria-hidden":!0}),s.jsx("span",{className:"truncate text-[13.5px] font-medium text-foreground",children:e.name||e.id})]}),s.jsx("span",{className:"mt-1.5 line-clamp-2 text-[12px] leading-5 text-muted-foreground",children:e.payload.message||o("settings.automations.systemTask","System-managed automation")}),s.jsxs("span",{className:"mt-2.5 flex min-w-0 items-center gap-2 text-[11.5px] leading-none text-muted-foreground",children:[s.jsx("span",{className:"truncate",title:J1(e,t,o),children:c}),s.jsx("span",{className:"h-1 w-1 shrink-0 rounded-full bg-muted-foreground/35","aria-hidden":!0}),s.jsx("span",{className:"truncate",children:l})]})]}),s.jsxs("span",{className:"flex shrink-0 flex-col items-end gap-2 pt-0.5",children:[s.jsx("span",{className:"rounded-full bg-white/65 px-2 py-0.5 text-[11px] font-medium text-muted-foreground shadow-[inset_0_0_0_1px_rgba(120,72,25,0.055)] dark:bg-background/35",children:i.label}),e.delete_after_run?s.jsx("span",{className:"rounded-full bg-background/80 px-2 py-0.5 text-[11px] font-medium text-muted-foreground",children:o("settings.automations.oneShot","One-time")}):null,s.jsx(Wr,{className:j("h-3.5 w-3.5 text-muted-foreground/55 transition-opacity",n?"opacity-100":"opacity-0 group-hover:opacity-70"),"aria-hidden":!0})]})]})})}function wD({job:e,locale:t,actionKey:n,onAction:r,onRequestEdit:a,onRequestDelete:o}){var g;const{t:i}=ie(),l=(w,k,C)=>i(w,{defaultValue:k,...C??{}}),c=Q1(e,l),d=X1(e,l),p=((g=e.origin)==null?void 0:g.channel)==="websocket"&&e.origin.session_key?`#/chat/${encodeURIComponent(e.origin.session_key)}`:null,m=e.created_at_ms?$r(e.created_at_ms,t):null,f=e.updated_at_ms?$r(e.updated_at_ms,t):null,h=e.payload.message||l("settings.automations.systemTask","System-managed automation"),y=UD(e,t,l),[x,b]=u.useState(!1),v=CD(h);return u.useEffect(()=>{b(!1)},[e.id]),s.jsxs("article",{className:"flex min-h-0 min-w-0 flex-col overflow-hidden bg-background/42 dark:bg-background/18",children:[s.jsx("div",{className:"shrink-0 border-b border-border/35 px-4 py-3.5 dark:border-white/10 sm:px-5",children:s.jsxs("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[s.jsx("h3",{className:"min-w-0 truncate text-[18px] font-medium leading-7 text-foreground",children:e.name||e.id}),s.jsx(Mv,{tone:c.tone,children:c.label}),e.delete_after_run?s.jsx(Mv,{children:l("settings.automations.oneShot","One-time")}):null]}),s.jsxs("p",{className:"mt-1 truncate text-[12.5px] leading-5 text-muted-foreground",children:[y," · ",d]})]}),s.jsx(kD,{job:e,actionKey:n,onAction:r,onRequestEdit:a,onRequestDelete:o})]})}),s.jsxs("div",{className:"grid min-h-0 min-w-0 flex-1 overflow-hidden lg:grid-cols-[minmax(0,1fr)_14.5rem]",children:[s.jsxs("div",{className:"min-h-0 min-w-0 space-y-3 overflow-y-auto overscroll-contain p-4 sm:p-5",children:[s.jsxs("section",{className:"rounded-[20px] border border-border/35 bg-background/62 px-4 py-3.5 shadow-[inset_0_1px_0_rgba(255,255,255,0.58)] dark:border-white/10 dark:bg-background/24",children:[s.jsx("div",{className:"text-[11px] font-medium leading-none text-muted-foreground/75",children:l("settings.automations.fields.message","Message")}),s.jsx("div",{className:j("mt-3 whitespace-pre-wrap break-words text-[13px] leading-6 text-foreground/85",!x&&v&&"line-clamp-6"),children:h}),v?s.jsx("button",{type:"button",className:"mt-3 inline-flex text-[12px] font-medium text-muted-foreground underline-offset-2 hover:text-foreground hover:underline",onClick:()=>b(w=>!w),children:x?l("settings.automations.message.showLess","Show less"):l("settings.automations.message.showMore","Show full message")}):null]}),s.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[s.jsx(Ld,{label:l("settings.automations.labels.next","Next"),title:J1(e,t,l),children:Qf(e,l)}),s.jsx(Ld,{label:l("settings.automations.labels.origin","Linked chat"),title:d,children:p?s.jsxs("a",{className:"inline-flex max-w-full items-center gap-1 text-foreground/80 underline-offset-2 hover:underline",href:p,children:[s.jsx("span",{className:"truncate",children:d}),s.jsx(nw,{className:"h-3 w-3 shrink-0","aria-hidden":!0})]}):d})]}),e.state.last_error?s.jsx("div",{className:"rounded-[16px] border border-destructive/20 bg-destructive/8 px-3 py-2 text-[12px] leading-5 text-destructive",children:e.state.last_error}):null]}),s.jsx("aside",{className:"min-h-0 overflow-y-auto overscroll-contain border-t border-border/35 bg-muted/20 p-4 text-[12px] text-muted-foreground dark:border-white/10 dark:bg-background/16 lg:border-l lg:border-t-0",children:s.jsxs("div",{className:"grid gap-3",children:[s.jsx(Ld,{label:l("settings.automations.labels.schedule","Schedule"),title:y,children:y}),s.jsx("div",{className:"rounded-[18px] bg-background/55 p-3",children:s.jsxs("div",{className:"grid gap-3",children:[m?s.jsxs("div",{children:[s.jsx("div",{className:"text-[11px] leading-none text-muted-foreground/75",children:l("settings.automations.labels.created","Created")}),s.jsx("div",{className:"mt-1.5 text-[12.5px] leading-5 text-foreground/80",children:m})]}):null,f?s.jsxs("div",{children:[s.jsx("div",{className:"text-[11px] leading-none text-muted-foreground/75",children:l("settings.automations.labels.updated","Updated")}),s.jsx("div",{className:"mt-1.5 text-[12.5px] leading-5 text-foreground/80",children:f})]}):null,s.jsxs("div",{children:[s.jsx("div",{className:"text-[11px] leading-none text-muted-foreground/75",children:"ID"}),s.jsx("div",{className:"mt-1.5 break-all font-mono text-[11.5px] leading-5 text-foreground/70",children:e.id})]})]})})]})})]})]})}function kD({job:e,actionKey:t,onAction:n,onRequestEdit:r,onRequestDelete:a}){const{t:o}=ie(),i=(h,y,x)=>o(h,{defaultValue:y}),l=!e.protected,c=!!e.origin,d=l&&c&&e.enabled&&!e.state.pending,p=e.enabled?"disable":"enable",m=l&&(e.enabled||c),f=t===`${p}:${e.id}`;return l?s.jsxs("div",{className:"flex shrink-0 items-center gap-1 rounded-full border border-border/35 bg-background/70 p-1 shadow-[0_10px_26px_rgba(15,23,42,0.055)] dark:border-white/10 dark:bg-background/35",children:[s.jsx(An,{ariaLabel:i("settings.automations.edit","Edit"),disabled:!!t,onClick:()=>r(e),children:s.jsx(fs,{className:"h-4 w-4","aria-hidden":!0})}),s.jsx(An,{ariaLabel:i("settings.automations.runNow","Run now"),busy:t===`run:${e.id}`,disabled:!d,onClick:()=>void n("run",e),children:s.jsx(jc,{className:"h-4 w-4","aria-hidden":!0})}),s.jsx(An,{ariaLabel:e.enabled?i("settings.automations.pause","Pause"):i("settings.automations.resume","Resume"),busy:f,disabled:!m,onClick:()=>void n(p,e),children:e.enabled?s.jsx(Gj,{className:"h-4 w-4","aria-hidden":!0}):s.jsx(jc,{className:"h-4 w-4","aria-hidden":!0})}),s.jsx(An,{ariaLabel:i("settings.automations.delete","Delete"),tone:"danger",disabled:!!t,onClick:()=>a(e),children:s.jsx(ya,{className:"h-4 w-4","aria-hidden":!0})})]}):s.jsx("span",{className:"inline-flex h-9 items-center rounded-full bg-muted px-3 text-[12px] font-medium text-muted-foreground",children:i("settings.automations.protected","Protected")})}function Mv({tone:e="neutral",children:t}){return s.jsx("span",{className:j("inline-flex h-6 items-center rounded-full px-2.5 text-[11.5px] font-medium shadow-[inset_0_0_0_1px_rgba(120,72,25,0.055)]",e==="success"&&"bg-orange-100/72 text-orange-800 dark:bg-orange-300/12 dark:text-orange-200",e==="warning"&&"bg-amber-100/80 text-amber-800 dark:bg-amber-300/14 dark:text-amber-200",e==="neutral"&&"bg-white/64 text-muted-foreground dark:bg-background/35 dark:text-muted-foreground"),children:t})}function CD(e){return e.length>360||e.split(/\r?\n/).length>6}function Ld({label:e,title:t,secondary:n,children:r}){return s.jsxs("div",{className:"min-w-0 rounded-[17px] bg-background/52 px-3 py-3 shadow-[inset_0_0_0_1px_rgba(15,23,42,0.035)] dark:bg-background/22",children:[s.jsx("div",{className:"text-[11px] font-medium leading-none text-muted-foreground/75",children:e}),s.jsxs("div",{className:"mt-1.5 min-w-0",children:[s.jsx("div",{className:"line-clamp-2 text-[13px] leading-5 text-foreground/85",title:t,children:r}),n?s.jsx("div",{className:"mt-0.5 truncate text-[11.5px] leading-4 text-muted-foreground",title:t,children:n}):null]})]})}const Yf=[{value:"second",ms:1e3},{value:"minute",ms:6e4},{value:"hour",ms:36e5},{value:"day",ms:864e5}];function SD({job:e,saving:t,onOpenChange:n,onSave:r}){const{t:a}=ie(),o=(f,h,y)=>a(f,{defaultValue:h,...y??{}}),[i,l]=u.useState(()=>Ev(null));u.useEffect(()=>{l(Ev(e))},[e]);const c=_D(i,e,o),d=[{value:"every",label:o("settings.automations.scheduleTypes.every","Interval")},{value:"cron",label:o("settings.automations.scheduleTypes.cron","Cron")},{value:"at",label:o("settings.automations.scheduleTypes.at","Once")}],p={second:o("settings.automations.everyUnits.second","Seconds"),minute:o("settings.automations.everyUnits.minute","Minutes"),hour:o("settings.automations.everyUnits.hour","Hours"),day:o("settings.automations.everyUnits.day","Days")},m=f=>{f.preventDefault();const h=PD(i,e);!e||typeof h=="string"||r(e,h)};return s.jsx(Yi,{open:!!e,onOpenChange:n,children:e?s.jsx(bs,{"aria-describedby":void 0,className:"w-[min(calc(100vw-2rem),34rem)] rounded-[26px]",children:s.jsxs("form",{className:"space-y-5",onSubmit:m,children:[s.jsx(Qi,{children:s.jsx(ws,{children:o("settings.automations.editTitle","Edit automation")})}),s.jsxs("div",{className:"space-y-4",children:[s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:o("settings.automations.fields.name","Name")}),s.jsx(Ye,{value:i.name,onChange:f=>l(h=>({...h,name:f.target.value})),className:"h-10 rounded-[12px]"})]}),s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:o("settings.automations.fields.message","Message")}),s.jsx(Ro,{value:i.message,onChange:f=>l(h=>({...h,message:f.target.value})),className:"min-h-[160px] resize-none rounded-[12px] text-[13px] leading-5"})]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:o("settings.automations.fields.scheduleType","Schedule type")}),s.jsx(eo,{value:i.scheduleKind,options:d,onChange:f=>l(h=>({...h,scheduleKind:f}))})]}),i.scheduleKind==="every"?s.jsxs("div",{className:"grid gap-2 sm:grid-cols-[minmax(0,1fr)_10rem]",children:[s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:o("settings.automations.fields.every","Every")}),s.jsx(Ye,{type:"number",min:1,step:1,value:i.everyValue,onChange:f=>l(h=>({...h,everyValue:f.target.value})),className:"h-10 rounded-[12px]"})]}),s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:o("settings.automations.fields.unit","Unit")}),s.jsx("select",{value:i.everyUnit,onChange:f=>l(h=>({...h,everyUnit:f.target.value})),className:"h-10 w-full rounded-[12px] border border-input bg-background px-3 text-[13px] text-foreground shadow-sm outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring",children:Yf.map(f=>s.jsx("option",{value:f.value,children:p[f.value]},f.value))})]})]}):null,i.scheduleKind==="cron"?s.jsxs("div",{className:"grid gap-2 sm:grid-cols-[minmax(0,1fr)_12rem]",children:[s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:o("settings.automations.fields.cronExpression","Cron expression")}),s.jsx(Ye,{value:i.cronExpr,onChange:f=>l(h=>({...h,cronExpr:f.target.value})),placeholder:"0 9 * * *",className:"h-10 rounded-[12px] font-mono text-[13px]"})]}),s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:o("settings.automations.fields.timezone","Timezone")}),s.jsx(Ye,{value:i.tz,onChange:f=>l(h=>({...h,tz:f.target.value})),placeholder:"Asia/Shanghai",className:"h-10 rounded-[12px] text-[13px]"})]})]}):null,i.scheduleKind==="at"?s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:o("settings.automations.fields.runAt","Run at")}),s.jsx(Ye,{type:"datetime-local",value:i.atLocal,onChange:f=>l(h=>({...h,atLocal:f.target.value})),className:"h-10 rounded-[12px]"})]}):null,c?s.jsx("div",{className:"rounded-[12px] bg-destructive/8 px-3 py-2 text-[12px] text-destructive",children:c}):null]}),s.jsxs(Xi,{children:[s.jsx(fe,{type:"button",variant:"ghost",onClick:()=>n(!1),disabled:t,className:"rounded-full",children:o("settings.automations.cancel","Cancel")}),s.jsxs(fe,{type:"submit",disabled:!!c||t,className:"rounded-full",children:[t?s.jsx(pt,{className:"mr-2 h-4 w-4 animate-spin","aria-hidden":!0}):null,o("settings.automations.save","Save")]})]})]})}):null})}function ND({job:e,deleting:t,onOpenChange:n,onConfirm:r}){const{t:a}=ie(),o=(i,l,c)=>a(i,{defaultValue:l,...c??{}});return s.jsx(Yi,{open:!!e,onOpenChange:n,children:s.jsxs(bs,{className:"w-[min(calc(100vw-2rem),26rem)] rounded-[26px]",children:[s.jsxs(Qi,{children:[s.jsx(ws,{children:o("settings.automations.deleteTitle","Delete automation")}),s.jsx(Ji,{children:o("settings.automations.deleteDescription","This removes {{name}} from the cron store. Past chat messages stay in the session.",{name:(e==null?void 0:e.name)||(e==null?void 0:e.id)||""})})]}),s.jsxs(Xi,{children:[s.jsx(fe,{type:"button",variant:"ghost",onClick:()=>n(!1),disabled:t,className:"rounded-full",children:o("settings.automations.cancel","Cancel")}),s.jsxs(fe,{type:"button",variant:"destructive",onClick:()=>e&&void r(e),disabled:!e||t,className:"rounded-full",children:[t?s.jsx(pt,{className:"mr-2 h-4 w-4 animate-spin","aria-hidden":!0}):null,o("settings.automations.delete","Delete")]})]})]})})}function q1(e){return e.state.last_status==="error"}function Za(e){return e.protected?"system":e.state.pending?"running":e.enabled?e.state.last_status==="error"?"failed":e.delete_after_run&&!e.state.next_run_at_ms&&e.state.last_status==="ok"?"completed":e.state.next_run_at_ms?"active":"idle":"paused"}function jD(e,t){const n=(r,a)=>(r.name||r.id).localeCompare(a.name||a.id);return[...e].sort((r,a)=>{if(t==="name")return n(r,a);if(t==="last")return(a.state.last_run_at_ms??0)-(r.state.last_run_at_ms??0)||n(r,a);if(t==="updated")return(a.updated_at_ms??0)-(r.updated_at_ms??0)||n(r,a);const o=r.state.next_run_at_ms??Number.MAX_SAFE_INTEGER,i=a.state.next_run_at_ms??Number.MAX_SAFE_INTEGER;return o-i||n(r,a)})}function Ev(e){const t=AD((e==null?void 0:e.schedule.every_ms)??36e5),n=(e==null?void 0:e.schedule.kind)==="at"||(e==null?void 0:e.schedule.kind)==="cron"?e.schedule.kind:"every";return{name:(e==null?void 0:e.name)??"",message:(e==null?void 0:e.payload.message)??"",scheduleKind:n,everyValue:t.value,everyUnit:t.unit,cronExpr:(e==null?void 0:e.schedule.expr)??"0 9 * * *",tz:(e==null?void 0:e.schedule.tz)??"",atLocal:K1((e==null?void 0:e.schedule.at_ms)??Date.now()+36e5)}}function AD(e){for(const t of[...Yf].reverse())if(e>=t.ms&&e%t.ms===0)return{value:String(e/t.ms),unit:t.value};return{value:String(Math.max(1,Math.round(e/6e4))),unit:"minute"}}function K1(e){const t=new Date(e);return Number.isFinite(t.getTime())?new Date(e-t.getTimezoneOffset()*6e4).toISOString().slice(0,16):""}function _D(e,t,n){if(!e.name.trim())return n("settings.automations.validation.nameRequired","Name is required.");if(!e.message.trim())return n("settings.automations.validation.messageRequired","Message is required.");if(e.scheduleKind==="every"){const r=Number(e.everyValue);if(!Number.isInteger(r)||r<=0)return n("settings.automations.validation.intervalRequired","Interval must be a positive number.")}if(e.scheduleKind==="cron"&&!e.cronExpr.trim())return n("settings.automations.validation.cronRequired","Cron expression is required.");if(e.scheduleKind==="at"){const r=new Date(e.atLocal).getTime();if(!Number.isFinite(r))return n("settings.automations.validation.timeRequired","Run time is required.");if(r<=Date.now()&&G1(e,t))return n("settings.automations.validation.futureRequired","Run time must be in the future.")}return null}function PD(e,t){const n=e.name.trim(),r=e.message.trim();if(!n||!r)return"invalid";const a={name:n,message:r},o=V1(e);return typeof o=="string"?o:(G1(e,t,o)&&(a.schedule=o),a)}function V1(e){if(e.scheduleKind==="every"){const t=Yf.find(r=>r.value===e.everyUnit),n=Number(e.everyValue);return!t||!Number.isInteger(n)||n<=0?"invalid":{kind:"every",every_ms:n*t.ms}}else if(e.scheduleKind==="cron"){const t=e.cronExpr.trim();return t?{kind:"cron",expr:t,...e.tz.trim()?{tz:e.tz.trim()}:{}}:"invalid"}else{const t=new Date(e.atLocal).getTime();return Number.isFinite(t)?{kind:"at",at_ms:t}:"invalid"}}function G1(e,t,n=V1(e)){return!t||typeof n=="string"||n.kind!==t.schedule.kind?!0:n.kind==="every"?n.every_ms!==t.schedule.every_ms:n.kind==="cron"?n.expr!==(t.schedule.expr??"")||(n.tz??null)!==(t.schedule.tz??null):e.atLocal!==K1(t.schedule.at_ms??NaN)}const TD=new Set(["id","name","message","chat","cron","schedule","status"]),pm={api:"API",cli:"CLI",dingtalk:"DingTalk",discord:"Discord",email:"Email",feishu:"Feishu",matrix:"Matrix",msteams:"Microsoft Teams",qq:"QQ",slack:"Slack",telegram:"Telegram",wechat:"WeChat",wecom:"WeCom",weixin:"WeChat",whatsapp:"WhatsApp"};function RD(e){return(e.match(/[^\s:]+:"[^"]+"|"[^"]+"|\S+/g)??[]).map(t=>{const n=Iv(t);if(!n)return null;const r=n.match(/^([A-Za-z]+):(.*)$/);if(!r)return{field:null,value:n.toLowerCase()};const a=r[1].toLowerCase(),o=Iv(r[2]).toLowerCase();return o?TD.has(a)?{field:a,value:o}:{field:null,value:n.toLowerCase()}:null}).filter(t=>!!t)}function Iv(e){return e.trim().replace(/^"|"$/g,"").trim()}function MD(e,t){return t.every(n=>ED(e,n.field).includes(n.value))}function ED(e,t=null){return ID(e,t).filter(Boolean).join(" ").toLowerCase()}function ID(e,t){const n=LD(e),r=DD(e);return t==="id"?[e.id]:t==="name"?[e.name,e.id]:t==="message"?[e.payload.message]:t==="chat"?n:t==="cron"||t==="schedule"?r:t==="status"?[Za(e),e.enabled?"enabled":"disabled"]:[e.id,e.name,e.payload.message,...r,Za(e),...n]}function LD(e){const t=e.origin;if(!t)return[];const n=t.channel.trim().toLowerCase();return[t.session_key,t.title,t.preview,t.channel,pm[n]]}function DD(e){const t=e.schedule,n=[t.kind,t.expr,t.tz,t.every_ms,t.at_ms];return t.kind==="cron"&&t.expr&&n.push(...OD(t.expr)),n}function OD(e){const t=e.trim().split(/\s+/);if(t.length!==5)return[];const[n,r,a,o,i]=t,l=a==="*"&&o==="*"&&i==="*",c=Bc(n,59),d=Bc(r,23);if(c===null)return[];const p=String(c).padStart(2,"0");if(d!==null)return[`${String(d).padStart(2,"0")}:${p}`,`:${p}`];if(l&&r==="*")return[`:${p}`,`hourly at :${p}`];const m=/^(\d{1,2})-(\d{1,2})$/.exec(r);if(!l||!m)return[];const f=Number(m[1]),h=Number(m[2]);if(f>23||h>23)return[];const y=`${String(f).padStart(2,"0")}-${String(h).padStart(2,"0")}`,x=`${f}-${h}`;return[y,x,`:${p}`,`${y} at :${p}`,`hourly ${y} at :${p}`]}function FD(e,t){const n=Za(e);return t==="active"?n==="active"||n==="running":t==="paused"?n==="paused":t==="failed"?q1(e):t==="system"?!!e.protected:!0}const Y1={active:{text:"text-emerald-600 dark:text-emerald-400",selectedText:"text-emerald-700 dark:text-emerald-300",count:"bg-emerald-500/10 text-emerald-700 dark:text-emerald-300"},paused:{text:"text-amber-600 dark:text-amber-400",selectedText:"text-amber-700 dark:text-amber-300",count:"bg-amber-500/10 text-amber-700 dark:text-amber-300"},failed:{text:"text-rose-600 dark:text-rose-400",selectedText:"text-rose-700 dark:text-rose-300",count:"bg-rose-500/10 text-rose-700 dark:text-rose-300"},system:{text:"text-sky-600 dark:text-sky-400",selectedText:"text-sky-700 dark:text-sky-300",count:"bg-sky-500/10 text-sky-700 dark:text-sky-300"}};function zD(e,t,n){const r=Y1[e];return t<=0||!r?"":n?r.selectedText:r.text}function $D(e,t){const n=Y1[e];return t>0&&n?n.count:""}function Q1(e,t){const n=Za(e);return n==="system"?{label:t("settings.automations.status.system","System"),tone:"neutral"}:n==="running"?{label:t("settings.automations.status.running","Running now"),tone:"warning"}:n==="paused"?{label:t("settings.automations.status.paused","Paused"),tone:"neutral"}:n==="failed"?{label:t("settings.automations.status.failed","Failed"),tone:"warning"}:n==="completed"?{label:t("settings.automations.status.completed","Completed"),tone:"neutral"}:n==="idle"?{label:t("settings.automations.status.noSchedule","No schedule"),tone:"neutral"}:{label:t("settings.automations.status.active","Active"),tone:"success"}}function X1(e,t){if(e.protected)return t("settings.automations.origin.system","System");const n=e.origin;return n?n.channel!=="websocket"?Lv(n.channel,t):n.title||n.preview||n.session_key||Lv(n.channel,t):t("settings.automations.origin.unknown","No linked chat")}function Lv(e,t){const n=e.trim().toLowerCase();return pm[n]?t(`settings.automations.channels.${n}`,pm[n]):e}function UD(e,t,n){if(e.schedule.kind==="at"&&e.schedule.at_ms)return n("settings.automations.schedule.at","At {{time}}",{time:$r(e.schedule.at_ms,t)});if(e.schedule.kind==="every"&&e.schedule.every_ms)return n("settings.automations.schedule.every","Every {{duration}}",{duration:WD(e.schedule.every_ms,t)});if(e.schedule.kind==="cron"&&e.schedule.expr){const r=BD(e.schedule.expr,n);return r?e.schedule.tz?n("settings.automations.schedule.withTz","{{summary}} · {{tz}}",{summary:r,tz:e.schedule.tz}):r:e.schedule.tz?n("settings.automations.schedule.cronWithTz","Cron {{expr}} · {{tz}}",{expr:e.schedule.expr,tz:e.schedule.tz}):n("settings.automations.schedule.cron","Cron {{expr}}",{expr:e.schedule.expr})}return n("settings.automations.schedule.custom","Custom schedule")}function BD(e,t){const n=e.trim().split(/\s+/);if(n.length!==5)return null;const[r,a,o,i,l]=n,c=Bc(r,59),d=Bc(a,23),p=o==="*"&&i==="*"&&l==="*",m=o==="*"&&i==="*"&&["1-5","MON-FRI","mon-fri"].includes(l);if(c!==null&&d!==null){const h=`${String(d).padStart(2,"0")}:${String(c).padStart(2,"0")}`;if(p)return t("settings.automations.schedule.dailyAt","Daily at {{time}}",{time:h});if(m)return t("settings.automations.schedule.weekdaysAt","Weekdays at {{time}}",{time:h})}if(p&&c!==null&&a==="*")return t("settings.automations.schedule.hourlyAt","Hourly at :{{minute}}",{minute:String(c).padStart(2,"0")});const f=/^(\d{1,2})-(\d{1,2})$/.exec(a);if(p&&c!==null&&f){const h=Number(f[1]),y=Number(f[2]);return h>23||y>23?null:t("settings.automations.schedule.hourlyWindow","Hourly {{start}}-{{end}} at :{{minute}}",{start:String(h).padStart(2,"0"),end:String(y).padStart(2,"0"),minute:String(c).padStart(2,"0")})}return null}function Bc(e,t){if(!/^\d{1,2}$/.test(e))return null;const n=Number(e);return n<=t?n:null}function Qf(e,t){return e.enabled?e.state.pending?t("settings.automations.next.pending","Running now"):e.state.next_run_at_ms?Af(e.state.next_run_at_ms):t("settings.automations.next.none","No next run"):t("settings.automations.next.paused","Paused")}function J1(e,t,n){return e.state.next_run_at_ms?$r(e.state.next_run_at_ms,t):Qf(e,n)}function HD(e){const t=Za(e);return t==="active"||t==="running"?"bg-orange-500 shadow-[0_0_0_3px_rgba(249,115,22,0.12)]":t==="failed"?"bg-amber-500 shadow-[0_0_0_3px_rgba(245,158,11,0.13)]":"bg-muted-foreground/45"}function Dv(e,t,n,r=0){return new Intl.NumberFormat(n,{style:"unit",unit:t,unitDisplay:"long",maximumFractionDigits:r}).format(e)}function WD(e,t){const n=[["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];for(const[o,i]of n)if(e>=i&&e%i===0)return Dv(e/i,o,t);const r=e<6e4?"second":"minute";return Dv(e/(r==="second"?1e3:6e4),r,t,1)}function qD({cliApps:e,mcpPresets:t,cliAppsLoading:n,mcpPresetsLoading:r,query:a,filter:o,cliActionKey:i,mcpActionKey:l,cliMessage:c,cliError:d,cliFocusName:p,mcpMessage:m,mcpError:f,mcpFieldValues:h,customMcpForm:y,mcpConfigImport:x,showBrandLogos:b,requiresRestartPending:v,onQueryChange:g,onFilterChange:w,onCliAction:k,onMcpAction:C,onDismissStatus:N,onBackToChat:S,onMcpFieldChange:A,onCustomMcpFormChange:E,onMcpConfigImportChange:_,onSaveCustomMcp:R,onImportMcpConfig:T,onMcpToolsChange:F,onRestart:z,isRestarting:K}){const{t:$}=ie(),W=(I,Q)=>$(I,{defaultValue:Q}),P=[{value:"all",label:W("settings.apps.filterAll","All")},{value:"cli",label:W("settings.apps.filterCli","App CLIs")},{value:"mcp",label:W("settings.apps.filterMcp","MCP services")}],D=a.trim().toLowerCase(),G=[...((e==null?void 0:e.apps)??[]).map(I=>({id:`cli:${I.name}`,kind:"cli",app:I})),...((t==null?void 0:t.presets)??[]).map(I=>({id:`mcp:${I.name}`,kind:"mcp",preset:I}))].filter(I=>o==="all"||I.kind===o).filter(I=>!D||GD(I).includes(D)).sort((I,Q)=>+!Fv(I)-+!Fv(Q)||Ov(I).localeCompare(Ov(Q))),Y=p?((e==null?void 0:e.apps)??[]).find(I=>I.name===p&&I.installed):null,oe=(n||r)&&!e&&!t,de=d||f||(Y?null:c||m),pe=!!(d||f),le=$("settings.apps.caption",{cli:(e==null?void 0:e.installed_count)??0,mcp:(t==null?void 0:t.installed_count)??0,defaultValue:"{{cli}} CLI · {{mcp}} MCP"});return s.jsxs("div",{className:"space-y-7",children:[s.jsxs("section",{className:"space-y-4",children:[s.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between",children:[s.jsx("p",{className:"max-w-[680px] text-[13px] leading-5 text-muted-foreground",children:W("settings.apps.description","Add local app adapters and connected tool servers that nanobot can use from chat.")}),s.jsx("span",{className:"text-[12px] font-medium text-muted-foreground",children:le})]}),s.jsxs("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-center",children:[s.jsxs("div",{className:"relative flex-1",children:[s.jsx(Tt,{className:"pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground","aria-hidden":!0}),s.jsx(Ye,{value:a,onChange:I=>g(I.target.value),placeholder:W("settings.apps.searchPlaceholder","Search Apps"),className:"h-12 rounded-[14px] border-border/70 bg-card/90 pl-11 text-[15px] shadow-sm"})]}),s.jsx(eo,{value:o,options:P,onChange:I=>w(I)})]})]}),de?s.jsxs("div",{className:j("flex items-center justify-between gap-3 rounded-[12px] border py-2.5 pl-4 pr-2 text-[13px]",pe?"border-destructive/20 bg-destructive/5 text-destructive":"border-border/55 bg-muted/35 text-muted-foreground"),children:[s.jsx("span",{className:"min-w-0",children:de}),s.jsx("button",{type:"button","aria-label":W("settings.actions.dismiss","Dismiss"),title:W("settings.actions.dismiss","Dismiss"),onClick:N,className:j("flex h-8 w-8 shrink-0 items-center justify-center rounded-full transition-colors",pe?"text-destructive/70 hover:bg-destructive/10 hover:text-destructive":"text-muted-foreground/70 hover:bg-muted hover:text-foreground"),children:s.jsx(xr,{className:"h-3.5 w-3.5","aria-hidden":!0})})]}):null,Y?s.jsx(JD,{app:Y,showBrandLogos:b,onBackToChat:S}):null,v?s.jsxs("div",{className:"flex flex-col gap-3 rounded-[12px] border border-amber-500/20 bg-amber-500/8 px-4 py-3 text-[12.5px] text-amber-800 dark:text-amber-200 sm:flex-row sm:items-center sm:justify-between",children:[s.jsx("span",{children:W("settings.mcp.restartRequired","Restart nanobot to connect updated MCP tools.")}),z?s.jsxs(fe,{type:"button",size:"sm",variant:"outline",onClick:z,disabled:K,className:"h-8 rounded-full bg-background/80 px-3 text-[12px] font-semibold",children:[K?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):s.jsx(qi,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),$(K?"app.system.restarting":"app.system.restart")]}):null]}):null,s.jsxs("section",{children:[s.jsxs("div",{className:"flex items-center justify-between border-b border-border/45 pb-3",children:[s.jsx(Jt,{children:W("settings.apps.featured","Featured")}),s.jsx("span",{className:"rounded-full bg-muted px-2.5 py-1 text-[12px] font-medium text-muted-foreground",children:G.length})]}),oe?s.jsxs("div",{className:"flex h-36 items-center justify-center text-sm text-muted-foreground",children:[s.jsx(pt,{className:"mr-2 h-4 w-4 animate-spin","aria-hidden":!0}),W("settings.apps.loading","Loading Apps...")]}):G.length?s.jsx("div",{className:"grid gap-x-10 gap-y-1 py-3 md:grid-cols-2",children:G.map(I=>I.kind==="cli"?s.jsx(KD,{app:I.app,actionKey:i,showBrandLogos:b,onAction:k},I.id):s.jsx(VD,{preset:I.preset,values:h[I.preset.name]??{},actionKey:l,showBrandLogos:b,onFieldChange:A,onAction:C,onToolsChange:F},I.id))}):s.jsx("div",{className:"px-3 py-12 text-center text-sm text-muted-foreground",children:W("settings.apps.empty","No apps match this filter.")})]}),o!=="cli"?s.jsx(YD,{form:y,configImport:x,actionKey:l,onFormChange:E,onConfigImportChange:_,onSave:R,onImportConfig:T}):null,s.jsx(tC,{})]})}function KD({app:e,actionKey:t,showBrandLogos:n,onAction:r}){const{t:a}=ie(),o=(f,h)=>a(f,{defaultValue:h}),i=t===`install:${e.name}`,l=t===`update:${e.name}`,c=t===`uninstall:${e.name}`,d=t===`test:${e.name}`,p=i||l||c||d,m=e.description||e.requires||e.entry_point||e.name;return s.jsxs("article",{className:"group flex min-w-0 items-center gap-3 rounded-[14px] px-3 py-3 transition-colors hover:bg-muted/45",children:[s.jsx(eC,{app:e,showBrandLogos:n}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex min-w-0 items-baseline gap-2",children:[s.jsx("h3",{className:"truncate text-[14px] font-semibold leading-5 text-foreground",children:e.display_name}),s.jsx(Z1,{children:o("settings.apps.cliLabel","CLI")})]}),s.jsx("p",{className:"mt-0.5 truncate text-[12.5px] leading-5 text-muted-foreground",children:m})]}),s.jsx("div",{className:"flex shrink-0 items-center gap-1",children:e.installed?s.jsxs(s.Fragment,{children:[s.jsxs(gn,{children:[s.jsx(vn,{asChild:!0,children:s.jsx(An,{ariaLabel:o("settings.cliApps.statusInstalled","CLI installed"),busy:d||l,disabled:p,tone:"installed",children:s.jsx(Et,{className:"h-4 w-4","aria-hidden":!0})})}),s.jsxs(ln,{align:"end",children:[s.jsxs(gt,{disabled:p,onClick:()=>r("test",e.name),children:[s.jsx(jc,{className:"mr-2 h-3.5 w-3.5","aria-hidden":!0}),o("settings.cliApps.test","Test CLI")]}),s.jsxs(gt,{disabled:p,onClick:()=>r("update",e.name),children:[s.jsx(qi,{className:"mr-2 h-3.5 w-3.5","aria-hidden":!0}),o("settings.cliApps.update","Update CLI")]}),s.jsxs(gt,{disabled:p,onClick:()=>r("uninstall",e.name),children:[s.jsx(ya,{className:"mr-2 h-3.5 w-3.5","aria-hidden":!0}),o("settings.cliApps.uninstall","Uninstall CLI")]})]})]}),s.jsx(An,{ariaLabel:o("settings.cliApps.uninstall","Uninstall CLI"),busy:c,disabled:p&&!c,tone:"danger",onClick:()=>r("uninstall",e.name),children:s.jsx(ya,{className:"h-4 w-4","aria-hidden":!0})})]}):e.install_supported?s.jsx(An,{ariaLabel:o("settings.cliApps.install","Install CLI"),busy:i,onClick:()=>r("install",e.name),children:s.jsx(ga,{className:"h-4 w-4","aria-hidden":!0})}):s.jsx(An,{ariaLabel:o("settings.cliApps.unavailable","Unavailable"),disabled:!0,children:s.jsx(ga,{className:"h-4 w-4","aria-hidden":!0})})})]})}function VD({preset:e,values:t,actionKey:n,showBrandLogos:r,onFieldChange:a,onAction:o,onToolsChange:i}){const{t:l}=ie(),c=(W,P)=>l(W,{defaultValue:P}),[d,p]=u.useState(!1),[m,f]=u.useState(!1),h=n===`enable:${e.name}`,y=n===`remove:${e.name}`,x=n===`test:${e.name}`,b=n===`tools:${e.name}`,v=h||y||x||b,g=e.required_fields.filter(W=>W.required&&!W.configured),w=e.required_fields.length>0,k=g.length>0,C=e.installed&&e.configured,N=e.install_supported&&(g.length===0||g.every(W=>{var P;return!!((P=t[W.name])!=null&&P.trim())})),S=e.tool_names??[],A=e.enabled_tools??["*"],E=A.includes("*"),_=new Set(E?S:A),R=e.description||e.note||e.requires||e.name,T=QD(e.status,c);u.useEffect(()=>{(e.configured||!e.install_supported)&&p(!1)},[e.configured,e.install_supported]);const F=()=>{if(k||e.installed&&!e.configured&&w){p(!0);return}o("enable",e.name,t)},z=()=>{N&&o("enable",e.name,t)},K=W=>i(e.name,W),$=W=>{const P=new Set(E?S:A);P.has(W)?P.delete(W):P.add(W);const D=Array.from(P);K(D.length===S.length?["*"]:D)};return s.jsxs("article",{className:"rounded-[14px] transition-colors hover:bg-muted/45",children:[s.jsxs("div",{className:"group flex min-w-0 items-center gap-3 px-3 py-3",children:[s.jsx(XD,{preset:e,showBrandLogos:r}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex min-w-0 items-baseline gap-2",children:[s.jsx("h3",{className:"truncate text-[14px] font-semibold leading-5 text-foreground",children:e.display_name}),s.jsx(Z1,{children:c("settings.apps.mcpLabel","MCP")})]}),s.jsx("p",{className:"mt-0.5 truncate text-[12.5px] leading-5 text-muted-foreground",children:R})]}),s.jsx("div",{className:"flex shrink-0 items-center gap-1",children:C?s.jsxs(s.Fragment,{children:[s.jsxs(gn,{children:[s.jsx(vn,{asChild:!0,children:s.jsx(An,{ariaLabel:T,busy:x||b,disabled:v,tone:"installed",children:s.jsx(Et,{className:"h-4 w-4","aria-hidden":!0})})}),s.jsxs(ln,{align:"end",children:[s.jsxs(gt,{disabled:v,onClick:()=>o("test",e.name),children:[s.jsx(jc,{className:"mr-2 h-3.5 w-3.5","aria-hidden":!0}),c("settings.mcp.test","Test")]}),S.length?s.jsxs(gt,{disabled:v,onClick:()=>f(W=>!W),children:[s.jsx(sw,{className:"mr-2 h-3.5 w-3.5","aria-hidden":!0}),c("settings.mcp.toolScope","Tools")]}):null,s.jsxs(gt,{disabled:v,onClick:()=>o("remove",e.name),children:[s.jsx(ya,{className:"mr-2 h-3.5 w-3.5","aria-hidden":!0}),c("settings.mcp.remove","Remove")]})]})]}),s.jsx(An,{ariaLabel:c("settings.mcp.remove","Remove"),busy:y,disabled:v&&!y,tone:"danger",onClick:()=>o("remove",e.name),children:s.jsx(ya,{className:"h-4 w-4","aria-hidden":!0})})]}):e.installed&&!e.configured?s.jsx(An,{ariaLabel:w?c("settings.mcp.configure","Configure"):c("settings.mcp.enable","Enable"),busy:h,onClick:()=>{w?p(!0):o("enable",e.name,t)},children:s.jsx(ga,{className:"h-4 w-4","aria-hidden":!0})}):e.install_supported?s.jsx(An,{ariaLabel:k?c("settings.mcp.setup","Set up"):c("settings.mcp.enable","Enable"),busy:h,onClick:F,children:s.jsx(ga,{className:"h-4 w-4","aria-hidden":!0})}):s.jsx(An,{ariaLabel:c("settings.mcp.comingSoon","Coming soon"),disabled:!0,children:s.jsx(ga,{className:"h-4 w-4","aria-hidden":!0})})})]}),d&&e.install_supported&&w?s.jsxs("div",{className:"mx-3 mb-3 rounded-[14px] border border-border/45 bg-card/85 p-3 shadow-sm",children:[s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"truncate text-[12.5px] font-semibold text-foreground",children:l("settings.mcp.connectTitle",{name:e.display_name,defaultValue:"Connect {{name}}"})}),s.jsx("p",{className:"mt-0.5 text-[11.5px] text-muted-foreground",children:c("settings.mcp.connectHint","Add the key from your account settings.")})]}),s.jsx(fe,{type:"button",size:"sm",variant:"ghost",disabled:v,onClick:()=>p(!1),className:"h-7 rounded-full px-2.5 text-[11.5px] font-semibold text-muted-foreground",children:c("actions.cancel","Cancel")})]}),s.jsx("div",{className:"mt-3 grid gap-2",children:e.required_fields.map(W=>s.jsxs("label",{className:"min-w-0",children:[s.jsxs("span",{className:"mb-1 block text-[11.5px] font-medium text-muted-foreground",children:[W.label,W.configured?s.jsx("span",{className:"ml-1 font-normal text-emerald-600 dark:text-emerald-300",children:c("settings.mcp.configured","configured")}):null]}),s.jsx(Ye,{type:W.secret?"password":"text",value:t[W.name]??"",onChange:P=>a(e.name,W.name,P.target.value),placeholder:W.configured?c("settings.mcp.keepExisting","Leave blank to keep existing"):W.placeholder,className:"h-9 rounded-full bg-background/80 text-[12.5px]"})]},W.name))}),s.jsx("div",{className:"mt-3 flex justify-end",children:s.jsxs(fe,{type:"button",size:"sm",disabled:v||!N,onClick:z,className:"h-8 rounded-full px-3 text-[12px] font-semibold",children:[h?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):s.jsx(Et,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),e.installed?c("settings.mcp.updateSetup","Update setup"):c("settings.mcp.saveAndEnable","Save and enable")]})})]}):null,m&&C&&S.length?s.jsxs("div",{className:"mx-3 mb-3 rounded-[14px] border border-border/45 bg-card/85 p-3 shadow-sm",children:[s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[s.jsx("div",{className:"text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.toolScope","Tools")}),s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx(fe,{type:"button",size:"sm",variant:E?"default":"outline",disabled:b,onClick:()=>K(["*"]),className:"h-7 rounded-full px-2.5 text-[11.5px] font-semibold",children:c("settings.mcp.allTools","All")}),s.jsx(fe,{type:"button",size:"sm",variant:!E&&_.size===0?"default":"outline",disabled:b,onClick:()=>K([]),className:"h-7 rounded-full px-2.5 text-[11.5px] font-semibold",children:c("settings.mcp.noTools","None")})]})]}),s.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:S.map(W=>{const P=_.has(W);return s.jsx("button",{type:"button",disabled:b,onClick:()=>$(W),className:j("max-w-full rounded-full border px-2.5 py-1 font-mono text-[11px] transition-colors",P?"border-blue-500/25 bg-blue-500/10 text-blue-700 dark:text-blue-300":"border-border/55 bg-muted/30 text-muted-foreground hover:bg-muted/60"),children:s.jsx("span",{className:"block max-w-[220px] truncate",children:W})},W)})})]}):null]})}function Z1({children:e}){return s.jsx("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-semibold uppercase leading-none tracking-[0.06em] text-muted-foreground",children:e})}const An=u.forwardRef(function({ariaLabel:t,busy:n,disabled:r,tone:a="default",onClick:o,children:i},l){return s.jsx(fe,{ref:l,type:"button",size:"icon",variant:"ghost","aria-label":t,title:t,disabled:r||n,onClick:o,className:j("h-9 w-9 rounded-full text-muted-foreground transition-colors",a==="installed"&&"bg-transparent hover:bg-muted/70 hover:text-foreground",a==="danger"&&"bg-transparent hover:bg-destructive/10 hover:text-destructive",a==="default"&&"bg-muted/70 hover:bg-muted hover:text-foreground"),children:n?s.jsx(pt,{className:"h-4 w-4 animate-spin","aria-hidden":!0}):i})});function Ov(e){return e.kind==="cli"?e.app.display_name:e.preset.display_name}function Fv(e){return e.kind==="cli"?e.app.installed:e.preset.installed&&e.preset.configured}function GD(e){if(e.kind==="cli"){const n=e.app;return[n.display_name,n.name,n.category,n.description,n.requires,n.entry_point,n.source].join(" ").toLowerCase()}const t=e.preset;return[t.display_name,t.name,t.category,t.description,t.requires,t.note,t.transport,t.source??""].join(" ").toLowerCase()}function YD({form:e,configImport:t,actionKey:n,onFormChange:r,onConfigImportChange:a,onSave:o,onImportConfig:i}){const{t:l}=ie(),c=(w,k)=>l(w,{defaultValue:k}),[d,p]=u.useState(null),[m,f]=u.useState(!1),h=(n==null?void 0:n.startsWith("custom:"))??!1,y=n==="import"||n==="import-cursor",x=e.transport!=="stdio",b=!!e.name.trim()&&(x?!!e.url.trim():!!e.command.trim()),v=(w,k)=>{r(C=>({...C,[w]:k}))},g=[{value:"stdio",label:"stdio"},{value:"streamableHttp",label:"HTTP"},{value:"sse",label:"SSE"}];return s.jsxs("section",{className:"overflow-hidden rounded-[16px] border border-border/45 bg-card/72 shadow-[0_10px_30px_rgba(15,23,42,0.045)]",children:[s.jsxs("div",{className:"flex flex-col gap-3 px-3 py-3 sm:flex-row sm:items-center sm:justify-between",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[s.jsx("span",{className:"grid h-9 w-9 shrink-0 place-items-center rounded-[11px] bg-muted text-muted-foreground",children:s.jsx(ts,{className:"h-4 w-4","aria-hidden":!0})}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("h3",{className:"text-[13px] font-semibold leading-5 text-foreground",children:c("settings.mcp.moreOptions","More MCP options")}),s.jsx("p",{className:"truncate text-[12px] text-muted-foreground",children:c("settings.mcp.moreOptionsSubtitle","Add a custom server or import mcp.json.")})]})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:flex sm:shrink-0",children:[s.jsxs(fe,{type:"button",size:"sm",variant:d==="custom"?"default":"outline",onClick:()=>p(w=>w==="custom"?null:"custom"),className:"h-8 rounded-full px-3 text-[12px] font-semibold",children:[s.jsx(ts,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),c("settings.mcp.customAction","Custom")]}),s.jsxs(fe,{type:"button",size:"sm",variant:d==="import"?"default":"outline",onClick:()=>p(w=>w==="import"?null:"import"),className:"h-8 rounded-full px-3 text-[12px] font-semibold",children:[s.jsx(Ac,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),c("settings.mcp.importAction","Import")]})]})]}),d==="custom"?s.jsxs("div",{className:"border-t border-border/35 bg-muted/18 px-3 py-3",children:[s.jsxs("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-end",children:[s.jsxs("label",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"mb-1.5 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.serverName","Server name")}),s.jsx(Ye,{value:e.name,onChange:w=>v("name",w.target.value),placeholder:"docs",className:"h-9 rounded-full bg-background/80 text-[12.5px]"})]}),s.jsxs("div",{className:"min-w-[228px]",children:[s.jsx("span",{className:"mb-1.5 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.transport","Transport")}),s.jsx(eo,{value:e.transport,options:g,onChange:w=>v("transport",w)})]}),x?s.jsxs("label",{className:"min-w-0 flex-[1.4]",children:[s.jsx("span",{className:"mb-1.5 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.serverUrl","URL")}),s.jsx(Ye,{value:e.url,onChange:w=>v("url",w.target.value),placeholder:e.transport==="sse"?"https://example.com/sse":"https://example.com/mcp",className:"h-9 rounded-full bg-background/80 text-[12.5px]"})]}):s.jsxs("label",{className:"min-w-0 flex-[1.4]",children:[s.jsx("span",{className:"mb-1.5 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.command","Command")}),s.jsx(Ye,{value:e.command,onChange:w=>v("command",w.target.value),placeholder:"npx",className:"h-9 rounded-full bg-background/80 text-[12.5px]"})]}),s.jsxs(fe,{type:"button",size:"sm",onClick:o,disabled:!b||h,className:"h-9 shrink-0 rounded-full px-4 text-[12.5px] font-semibold",children:[h?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):s.jsx(Et,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),c("settings.mcp.saveCustom","Save MCP")]})]}),s.jsxs(fe,{type:"button",size:"sm",variant:"ghost",onClick:()=>f(w=>!w),className:"mt-2 h-8 rounded-full px-2 text-[12px] font-medium text-muted-foreground hover:text-foreground",children:[s.jsx(yr,{className:j("mr-1.5 h-3.5 w-3.5 transition-transform",m?"rotate-180":""),"aria-hidden":!0}),m?c("settings.mcp.hideAdvanced","Hide advanced"):c("settings.mcp.advancedOptions","Advanced options")]}),m?s.jsxs("div",{className:"mt-2 grid gap-2 lg:grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)_180px]",children:[x?s.jsxs("label",{className:"min-w-0",children:[s.jsx("span",{className:"mb-1 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.headers","Headers JSON")}),s.jsx(Ro,{value:e.headers,onChange:w=>v("headers",w.target.value),placeholder:'{"Authorization":"Bearer ..."}',className:"min-h-[68px] resize-y rounded-[12px] bg-background/80 font-mono text-[12px]"})]}):s.jsxs("label",{className:"min-w-0",children:[s.jsx("span",{className:"mb-1 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.args","Args JSON")}),s.jsx(Ro,{value:e.args,onChange:w=>v("args",w.target.value),placeholder:'["-y", "docs-mcp"]',className:"min-h-[68px] resize-y rounded-[12px] bg-background/80 font-mono text-[12px]"})]}),s.jsxs("label",{className:"min-w-0",children:[s.jsx("span",{className:"mb-1 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.env","Env JSON")}),s.jsx(Ro,{value:e.env,onChange:w=>v("env",w.target.value),placeholder:'{"API_KEY":"..."}',className:"min-h-[68px] resize-y rounded-[12px] bg-background/80 font-mono text-[12px]"})]}),s.jsxs("label",{className:"min-w-0",children:[s.jsx("span",{className:"mb-1 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.timeout","Tool timeout")}),s.jsx(Ye,{value:e.toolTimeout,onChange:w=>v("toolTimeout",w.target.value),inputMode:"numeric",className:"h-9 rounded-full bg-background/80 text-[12.5px]"})]})]}):null]}):null,d==="import"?s.jsx("div",{className:"border-t border-border/35 bg-muted/18 px-3 py-3",children:s.jsxs("div",{className:"flex flex-col gap-2 lg:flex-row lg:items-end",children:[s.jsxs("label",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"mb-1.5 block text-[11.5px] font-medium text-muted-foreground",children:c("settings.mcp.configImport","Import mcp.json")}),s.jsx(Ro,{value:t,onChange:w=>a(w.target.value),placeholder:'{"mcpServers":{"docs":{"command":"npx","args":["-y","docs-mcp"]}}}',className:"min-h-[84px] resize-y rounded-[12px] bg-background/80 font-mono text-[12px]"})]}),s.jsxs(fe,{type:"button",size:"sm",onClick:i,disabled:!t.trim()||y,className:"h-9 shrink-0 rounded-full px-4 text-[12.5px] font-semibold",children:[y?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):s.jsx(Ac,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),c("settings.mcp.importConfig","Import")]})]})}):null]})}function QD(e,t){switch(e){case"configured":return t("settings.mcp.statusConfigured","Configured");case"missing_credentials":return t("settings.mcp.statusMissingCredentials","Needs key");case"missing_dependency":return t("settings.mcp.statusMissingDependency","Needs dependency");case"coming_soon":return t("settings.mcp.statusComingSoon","Coming soon");default:return t("settings.mcp.statusNotInstalled","Not enabled")}}function XD({preset:e,showBrandLogos:t}){const[n,r]=u.useState(0),a=e.brand_color||"hsl(var(--muted))",i=u.useMemo(()=>oo(e.logo_url),[e.logo_url])[n],l=e.display_name.split(/\s+/).filter(Boolean).slice(0,2).map(c=>{var d;return(d=c[0])==null?void 0:d.toUpperCase()}).join("")||e.name.slice(0,2).toUpperCase();return u.useEffect(()=>r(0),[e.logo_url]),t&&i?s.jsx("span",{className:"grid h-11 w-11 shrink-0 place-items-center rounded-[8px] border border-border/45 bg-background",style:{boxShadow:`inset 0 0 0 1px ${e.brand_color??"transparent"}22`},children:s.jsx("img",{src:i,alt:"",className:"h-6 w-6 object-contain",onError:()=>r(c=>c+1)})}):s.jsx("span",{className:"grid h-11 w-11 shrink-0 place-items-center rounded-[8px] text-[13px] font-semibold text-white",style:{backgroundColor:a},children:l})}function JD({app:e,showBrandLogos:t,onBackToChat:n}){const{t:r}=ie(),[a,o]=u.useState(!1),i=r("settings.cliApps.readyPrompt",{name:e.name,defaultValue:"Use @{{name}} to inspect what this CLI can do."}),l=()=>{navigator.clipboard&&navigator.clipboard.writeText(i).then(()=>{o(!0),window.setTimeout(()=>o(!1),1400)})};return s.jsx("section",{className:j("rounded-[12px] border border-border/55 bg-card/88 px-4 py-3","shadow-[0_8px_26px_rgba(15,23,42,0.055)]"),children:s.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[s.jsx(eC,{app:e,showBrandLogos:t}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[s.jsx("h3",{className:"truncate text-[14px] font-semibold leading-5 text-foreground",children:e.display_name}),s.jsxs("span",{className:"inline-flex shrink-0 items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-[10.5px] font-medium text-muted-foreground",children:[s.jsx(Et,{className:"h-3 w-3 text-emerald-600 dark:text-emerald-300","aria-hidden":!0}),r("settings.cliApps.readyStatus",{defaultValue:"Ready"})]})]}),s.jsxs("div",{className:"mt-0.5 flex min-w-0 flex-wrap items-center gap-1.5 text-[12px] text-muted-foreground",children:[s.jsxs("span",{className:"font-mono",children:["@",e.name]}),s.jsx("span",{"aria-hidden":!0,children:"·"}),s.jsx("span",{className:"truncate font-mono",children:e.entry_point||e.name}),s.jsx("span",{"aria-hidden":!0,children:"·"}),s.jsx("span",{children:e.category})]})]}),s.jsxs("div",{className:"flex shrink-0 flex-wrap gap-2",children:[s.jsxs(fe,{type:"button",size:"sm",variant:"ghost",onClick:l,className:"h-8 rounded-full px-3 text-[12px] font-medium text-muted-foreground hover:bg-muted/65 hover:text-foreground",children:[a?s.jsx(Et,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}):null,a?r("settings.cliApps.readyCopied",{defaultValue:"Copied"}):r("settings.cliApps.readyTry",{name:e.name,defaultValue:"Try @{{name}}"})]}),s.jsxs(fe,{type:"button",size:"sm",onClick:n,className:"h-8 rounded-full px-3 text-[12px] font-semibold",children:[r("settings.cliApps.openChat",{defaultValue:"Open chat"}),s.jsx(Wr,{className:"ml-1.5 h-3.5 w-3.5","aria-hidden":!0})]})]})]})})}function eC({app:e,showBrandLogos:t}){const[n,r]=u.useState(0),a=e.brand_color||"hsl(var(--muted))",i=u.useMemo(()=>oo(e.logo_url),[e.logo_url])[n],l=e.display_name.split(/\s+/).filter(Boolean).slice(0,2).map(c=>{var d;return(d=c[0])==null?void 0:d.toUpperCase()}).join("")||e.name.slice(0,2).toUpperCase();return u.useEffect(()=>r(0),[e.logo_url]),t&&i?s.jsx("span",{className:"grid h-11 w-11 shrink-0 place-items-center rounded-[8px] border border-border/45 bg-background",style:{boxShadow:`inset 0 0 0 1px ${e.brand_color??"transparent"}22`},children:s.jsx("img",{src:i,alt:"",className:"h-6 w-6 object-contain",onError:()=>r(c=>c+1)})}):s.jsx("span",{className:"grid h-11 w-11 shrink-0 place-items-center rounded-[8px] text-[13px] font-semibold text-white",style:{backgroundColor:a},children:l})}function ZD({form:e,setForm:t,settings:n,dirty:r,saving:a,onSave:o,onRestart:i,isRestarting:l,requiresRestartPending:c}){var S,A,E;const{t:d}=ie(),p=(_,R)=>d(_,{defaultValue:R}),m=Ja()!==null||(n.surface??n.runtime_surface)==="native",f=m?p("app.system.restartEngine","Restart engine"):d("app.system.restart"),h=m?p("app.system.restartingEngine","Restarting engine..."):d("app.system.restarting"),[y,x]=u.useState(null),[b,v]=u.useState(null),[g,w]=u.useState(null),k=Ja(),C=l?p("settings.values.restartingEngine","Restarting"):((S=n.apply_state)==null?void 0:S.status)==="pending"?p("settings.values.pending","Pending"):p("settings.values.ready","Ready"),N=async(_,R,T,F)=>{if(!k){v({target:_,message:p("settings.status.hostApiUnavailable","Host actions are only available inside the native app.")});return}w(_),v(null);try{const z=await R();v({target:_,message:T(z)})}catch{v({target:_,message:F})}finally{w(null)}};return s.jsxs("div",{className:"space-y-7",children:[s.jsxs("section",{children:[s.jsx(Jt,{children:p("settings.sections.identity","Identity")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:p("settings.rows.botName","Bot name"),description:p("settings.help.botName","Shown wherever nanobot uses a display name."),children:s.jsx(Ye,{value:e.botName,onChange:_=>t(R=>({...R,botName:_.target.value})),className:"h-8 w-[220px] rounded-full text-[13px]"})}),s.jsx(Oe,{title:p("settings.rows.botIcon","Bot icon"),description:p("settings.help.botIcon","Short emoji or text shown with the bot name."),children:s.jsx(Ye,{value:e.botIcon,onChange:_=>t(R=>({...R,botIcon:_.target.value})),className:"h-8 w-[120px] rounded-full text-center text-[13px]"})}),s.jsx(Oe,{title:p("settings.rows.timezone","Timezone"),description:p("settings.help.timezone","Used for schedules and time-aware replies."),children:s.jsx(t4,{value:e.timezone,onChange:_=>t(R=>({...R,timezone:_}))})}),s.jsx(ol,{dirty:r,saving:a,pendingRestart:c,dirtyMessage:m?p("settings.status.hostRestartAfterSaving","Save changes and nanobot will restart its engine."):p("settings.status.restartAfterSaving","Save changes, then restart when ready."),pendingMessage:m?p("settings.status.hostRestartPending","Saved. Restarting engine when ready."):p("settings.status.savedRestartApply","Saved. Restart when ready."),onSave:o,onRestart:i,isRestarting:l})]})]}),m?s.jsxs("section",{children:[s.jsx(Jt,{children:p("settings.sections.nativeHost","Native host")}),s.jsxs(Ht,{children:[s.jsx(Ks,{title:p("settings.rows.engine","Engine"),value:C}),(A=n.runtime_capabilities)!=null&&A.can_open_logs?s.jsx(Oe,{title:p("settings.rows.logs","Logs"),description:(b==null?void 0:b.target)==="logs"?b.message:p("settings.help.logs","Open the native engine log folder."),children:s.jsx(fe,{size:"sm",variant:"outline",onClick:()=>void N("logs",()=>k.openLogs(),()=>p("settings.status.logsOpened","Opened logs folder."),p("settings.status.logsOpenFailed","Could not open logs folder.")),disabled:g!==null,className:"rounded-full",children:g==="logs"?p("settings.actions.opening","Opening..."):p("settings.actions.open","Open")})}):null,(E=n.runtime_capabilities)!=null&&E.can_export_diagnostics?s.jsx(Oe,{title:p("settings.rows.diagnostics","Diagnostics"),description:(b==null?void 0:b.target)==="diagnostics"?b.message:y||p("settings.help.diagnostics","Export a small runtime report for support."),children:s.jsx(fe,{size:"sm",variant:"outline",onClick:()=>void N("diagnostics",async()=>{const _=await k.exportDiagnostics();return x(_),_},_=>d("settings.status.diagnosticsExported",{path:String(_??""),defaultValue:"Diagnostics exported to {{path}}."}),p("settings.status.diagnosticsExportFailed","Could not export diagnostics.")),disabled:g!==null,className:"rounded-full",children:g==="diagnostics"?p("settings.actions.exporting","Exporting..."):p("settings.actions.export","Export")})}):null]})]}):null,s.jsxs("section",{children:[s.jsx(Jt,{children:d("settings.sections.system")}),s.jsxs(Ht,{children:[m?null:s.jsx(Ks,{title:p("settings.rows.gateway","Gateway"),value:`${n.runtime.gateway_host}:${n.runtime.gateway_port}`}),s.jsx(Ks,{title:d("settings.rows.configPath"),value:n.runtime.config_path}),s.jsx(Ks,{title:p("settings.rows.workspacePath","Default workspace"),value:n.runtime.workspace_path}),i&&!c?s.jsx(Oe,{title:d("settings.rows.restart"),description:d("app.system.restartHint"),children:s.jsxs(fe,{size:"sm",variant:"outline",onClick:i,disabled:l,className:"rounded-full",children:[l?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):s.jsx(qi,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),l?h:f]})}):null]})]})]})}function e4({form:e,dirty:t,saving:n,requiresRestartPending:r,isNativeHostSurface:a,onChangeForm:o,onSave:i,onRestart:l,isRestarting:c}){const{t:d}=ie(),p=(m,f)=>d(m,{defaultValue:f});return s.jsxs("div",{className:"space-y-7",children:[s.jsxs("section",{children:[s.jsx(Jt,{children:a?p("settings.sections.hostSafety","App safety"):p("settings.sections.webuiSafety","Web safety")}),s.jsxs(Ht,{children:[s.jsx(Oe,{title:p("settings.rows.localServiceAccess","Local Service Access"),description:p(a?"settings.help.localServiceAccessNative":"settings.help.localServiceAccess",a?"Allow Full Access shell commands to reach services on this Mac.":"Allow Full Access shell commands to reach localhost services."),children:s.jsx(is,{checked:e.webuiAllowLocalServiceAccess,onChange:m=>o(f=>({...f,webuiAllowLocalServiceAccess:m})),ariaLabel:p("settings.rows.localServiceAccess","Local Service Access"),label:e.webuiAllowLocalServiceAccess?p("settings.values.on","On"):p("settings.values.off","Off")})}),s.jsx(Oe,{title:p("settings.rows.webuiDefaultAccess","Default access"),description:p(a?"settings.help.webuiDefaultAccessNative":"settings.help.webuiDefaultAccess",a?"Used by native chats without a project-specific permission.":"Used by web chats without a project-specific permission."),children:s.jsx(eo,{value:e.webuiDefaultAccessMode,options:[{value:"default",label:p("settings.values.defaultPermission","Default Permission")},{value:"full",label:p("settings.values.fullAccess","Full Access")}],onChange:m=>o(f=>({...f,webuiDefaultAccessMode:m}))})}),s.jsx(ol,{dirty:t,saving:n,pendingRestart:r,onSave:i,onRestart:l,isRestarting:c})]})]}),s.jsx("p",{className:"max-w-3xl px-1 text-sm leading-6 text-muted-foreground",children:p("settings.help.securityManagedControls","Web fetches always protect local, private, and metadata services. Core channel safety stays in config.json.")})]})}function t4({value:e,onChange:t}){const{t:n}=ie(),r=(c,d)=>n(c,{defaultValue:d}),[a,o]=u.useState(""),i=u.useMemo(()=>l4(e),[e]),l=u.useMemo(()=>u4(i,a),[i,a]);return s.jsxs(gn,{onOpenChange:c=>!c&&o(""),children:[s.jsx(vn,{asChild:!0,children:s.jsxs(fe,{type:"button",variant:"outline",className:j("h-8 w-[220px] justify-between rounded-full border-input bg-background px-3 text-[13px] font-normal shadow-none","hover:bg-accent/55 focus-visible:ring-2 focus-visible:ring-ring"),children:[s.jsx("span",{className:"truncate",children:e||r("settings.timezone.select","Select timezone")}),s.jsx(yr,{className:"ml-2 h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0})]})}),s.jsxs(ln,{align:"end",className:"w-[340px] max-w-[calc(100vw-2rem)]",children:[s.jsx("div",{className:"sticky top-0 z-10 bg-popover px-1 pb-1",children:s.jsxs("div",{className:"flex h-9 items-center gap-2 rounded-full border border-input bg-background px-3",children:[s.jsx(Tt,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0}),s.jsx(Ye,{autoFocus:!0,value:a,onChange:c=>o(c.target.value),onKeyDown:c=>c.stopPropagation(),placeholder:r("settings.timezone.search","Search timezone"),className:"h-7 border-0 bg-transparent px-0 text-[13px] shadow-none focus-visible:ring-0"})]})}),s.jsx("div",{className:"mt-1 max-h-[18rem] overflow-y-auto pr-0.5 scrollbar-thin scrollbar-track-transparent","data-testid":"timezone-picker-list",children:l.length?l.map(c=>{const d=c.name===e;return s.jsxs(gt,{onSelect:()=>t(c.name),className:j("flex h-9 cursor-default items-center justify-between gap-3 rounded-[12px] px-2.5 text-[13px]","focus:bg-muted/85 focus:text-foreground",d&&"bg-muted/80 text-foreground focus:bg-muted"),children:[s.jsx("span",{className:"min-w-0 truncate font-medium text-foreground",children:c.name}),s.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-2",children:[s.jsx("span",{className:"text-[11.5px] font-medium text-muted-foreground/80",children:c.offset}),d?s.jsx(Et,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}):null]})]},c.name)}):s.jsx("div",{className:"px-3 py-5 text-center text-[12px] text-muted-foreground",children:r("settings.timezone.empty","No matching timezones.")})})]})]})}function Ua({providers:e,value:t,emptyLabel:n,showProviderLogos:r=!1,onChange:a}){const o=e.find(l=>l.name===t)??null,i=e.length===0;return s.jsxs(gn,{modal:!1,children:[s.jsx(vn,{asChild:!0,disabled:i,children:s.jsxs(fe,{type:"button",variant:"outline",disabled:i,className:j("h-8 w-[210px] justify-between rounded-full border-input bg-background px-3 text-[13px] font-normal shadow-none","hover:bg-accent/55 focus-visible:ring-2 focus-visible:ring-ring",i&&"text-muted-foreground"),children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[o&&r?s.jsx(Fi,{provider:o.name,showBrandLogos:r}):null,s.jsx("span",{className:"truncate",children:(o==null?void 0:o.label)??n})]}),s.jsx(yr,{className:"ml-2 h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0})]})}),s.jsx(ln,{align:"end",className:"max-h-[18rem] w-[240px] overflow-y-auto scrollbar-thin scrollbar-track-transparent",children:e.map(l=>{const c=l.name===t;return s.jsxs(gt,{onSelect:()=>a(l.name),className:j("flex cursor-default items-center justify-between gap-2 rounded-[12px] px-2.5 py-2 text-[13px]","focus:bg-muted/85 focus:text-foreground",c&&"bg-muted/80 text-foreground focus:bg-muted"),children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[r?s.jsx(Fi,{provider:l.name,showBrandLogos:r}):null,s.jsx("span",{className:"truncate",children:l.label})]}),c?s.jsx(Et,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}):null]},l.name)})})]})}function n4({token:e,settings:t,provider:n,value:r,showProviderLogos:a,onChange:o}){const{t:i}=ie(),l=(I,Q)=>i(I,{defaultValue:Q}),[c,d]=u.useState(!1),[p,m]=u.useState(""),[f,h]=u.useState(null),[y,x]=u.useState(!1),[b,v]=u.useState(null),g=n==="auto"?t.agent.resolved_provider??n:n,w=!!(g&&g!=="auto"),k=dm(t,g),C=Mu(t,g),N=w&&!C,S=w&&C&&(k==null?void 0:k.auth_type)==="oauth",A=w&&C&&!S,E=p.trim().toLowerCase(),_=(f==null?void 0:f.models)??[],R=_.filter(I=>E?[I.id,I.label??"",I.owned_by??""].some(Q=>Q.toLowerCase().includes(E)):!0).slice(0,80),T=(f==null?void 0:f.catalog_kind)==="catalog",F=K3.has(g),z=E.length>=V3,K=A&&(!F||z),$=c&&A&&F&&!z,P=!!((f==null?void 0:f.status)==="available"&&f&&(!T||E)),D=p.trim(),G=!N,Y=_.some(I=>I.id===D),oe=(f==null?void 0:f.model_count)??_.length,de=!r.trim()||!C;u.useEffect(()=>{c&&m(S||!w?r:"")},[c,g,w,S,r]),u.useEffect(()=>{if(!c||!K){h(null),v(null),x(!1);return}let I=!1;return h(null),v(null),x(!0),PL(e,g).then(Q=>{I||h(Q)}).catch(Q=>{I||v(Q.message)}).finally(()=>{I||x(!1)}),()=>{I=!0}},[g,c,K,e]);const pe=I=>{o(I),d(!1)},le=(I,Q={})=>s.jsxs(gt,{onSelect:()=>pe(I.id),className:j("flex cursor-default items-center justify-between gap-2 rounded-[12px] px-2 py-1.5 text-[12px]","focus:bg-muted/85 focus:text-foreground",Q.selected&&"bg-muted/80 text-foreground focus:bg-muted"),children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[s.jsx(Fi,{provider:g,showBrandLogos:a,unconfigured:!C}),s.jsx("span",{className:"min-w-0 truncate font-medium text-foreground",children:I.label??I.id})]}),s.jsxs("span",{className:"ml-2 flex shrink-0 items-center gap-2 text-[11px] text-muted-foreground",children:[I.context_window?s.jsx("span",{children:r4(I.context_window)}):null,Q.selected?s.jsx(Et,{className:"h-3.5 w-3.5 text-foreground","aria-hidden":!0}):null]})]},I.id);return s.jsxs(gn,{open:c,onOpenChange:d,children:[s.jsx(vn,{asChild:!0,children:s.jsxs(fe,{type:"button",variant:"outline",className:j("h-9 w-[min(360px,70vw)] justify-between rounded-full border-input bg-background px-3 text-[12px] font-normal shadow-none","hover:bg-accent/55 focus-visible:ring-2 focus-visible:ring-ring"),children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[s.jsx(Fi,{provider:g,showBrandLogos:a,unconfigured:de}),s.jsx("span",{className:j("min-w-0 truncate font-medium",r?"text-foreground":"text-muted-foreground"),children:r||l("settings.models.selectModel","Select model")})]}),s.jsx(yr,{className:"ml-2 h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0})]})}),s.jsxs(ln,{align:"end",className:"w-[360px] max-w-[calc(100vw-2rem)] p-1.5",children:[s.jsx("div",{className:"p-1 pb-1.5",children:s.jsxs("div",{className:"relative",children:[s.jsx(Tt,{className:"pointer-events-none absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground","aria-hidden":!0}),s.jsx(Ye,{value:p,onChange:I=>m(I.target.value),onKeyDown:I=>I.stopPropagation(),placeholder:l("settings.models.searchModels","Search or type model ID"),className:"h-8 rounded-full pl-8 pr-3 text-[12px]"})]})}),N?s.jsx("div",{className:"px-2 py-1.5 text-[11px] leading-4 text-muted-foreground",children:l("settings.models.providerNotConfigured","Configure this provider before loading models.")}):S?s.jsx("div",{className:"px-2 py-1.5 text-[11px] leading-4 text-muted-foreground",children:l("settings.models.unsupportedModelList","Type a model ID manually.")}):A?$?s.jsx("div",{className:"px-2 py-1.5 text-[11px] leading-4 text-muted-foreground",children:l("settings.models.searchCatalog","Search provider catalog to choose a model.")}):y?s.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 text-[11px] text-muted-foreground",children:[s.jsx(pt,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),l("settings.models.loadingModels","Loading models...")]}):b||(f==null?void 0:f.status)==="error"?s.jsx("div",{className:"px-2 py-1.5 text-[11px] leading-4 text-muted-foreground",children:(f==null?void 0:f.message)||b||l("settings.models.loadFailed","Model list unavailable.")}):(f==null?void 0:f.status)==="not_configured"?s.jsx("div",{className:"px-2 py-1.5 text-[11px] leading-4 text-muted-foreground",children:l("settings.models.providerNotConfigured","Configure this provider before loading models.")}):(f==null?void 0:f.status)==="unsupported"||(f==null?void 0:f.status)==="missing_api_base"?s.jsx("div",{className:"px-2 py-1.5 text-[11px] leading-4 text-muted-foreground",children:f.message||l("settings.models.unsupportedModelList","Type a model ID manually.")}):T&&!E?s.jsxs("div",{className:"px-2 py-1.5 text-[11px] leading-4 text-muted-foreground",children:[l("settings.models.searchCatalog","Search provider catalog to choose a model."),oe?` ${oe} ${l("settings.models.modelsAvailable","available")}.`:""]}):null:s.jsx("div",{className:"px-2 py-1.5 text-[11px] leading-4 text-muted-foreground",children:l("settings.models.autoProviderCustomOnly","Auto provider mode uses custom model IDs.")}),P&&R.length?s.jsx("div",{className:"max-h-[16rem] overflow-y-auto pr-0.5 scrollbar-thin scrollbar-track-transparent",children:R.map(I=>le(I,{selected:I.id===r}))}):P?s.jsx("div",{className:"px-2 py-1.5 text-[11px] text-muted-foreground",children:l("settings.models.noModelResults","No matching models.")}):null,G&&D&&!Y&&D!==r?s.jsxs(s.Fragment,{children:[P?s.jsx(Hf,{}):null,s.jsxs(gt,{onSelect:()=>pe(D),className:"flex cursor-default items-center gap-2 rounded-[12px] px-2 py-1.5 text-[12px] focus:bg-muted/85",children:[s.jsx("span",{className:"grid h-5 w-5 shrink-0 place-items-center rounded-md bg-muted/80 text-muted-foreground",children:s.jsx(fs,{className:"h-3 w-3","aria-hidden":!0})}),s.jsxs("span",{className:"min-w-0 truncate",children:[l("settings.models.useCustomModel","Use")," ",s.jsxs("span",{className:"font-medium text-foreground",children:["“",D,"”"]})]})]})]}):null]})]})}function r4(e){if(e>=1e6){const t=e/1e6;return`${Number.isInteger(t)?t.toFixed(0):t.toFixed(1)}M`}if(e>=1e3){const t=e/1e3;return`${Number.isInteger(t)?t.toFixed(0):t.toFixed(1)}K`}return String(e)}function Fi({provider:e,showBrandLogos:t,unconfigured:n=!1}){const[r,a]=u.useState(0),o=al(e),i=nC[e]??hf,l=o==null?void 0:o.logoUrls[r];return u.useEffect(()=>a(0),[e]),n?s.jsx("span",{"data-testid":"provider-picker-unconfigured-icon",className:"grid h-5 w-5 shrink-0 place-items-center text-amber-700 dark:text-amber-200","aria-hidden":!0,children:s.jsx(ja,{className:"h-4 w-4",strokeWidth:1.8})}):t&&l?s.jsx("span",{"data-testid":`provider-picker-logo-${e}`,className:"grid h-5 w-5 shrink-0 place-items-center overflow-hidden rounded-md border border-border/35 bg-background shadow-[inset_0_0_0_1px_rgba(0,0,0,0.02)]",style:{boxShadow:`inset 0 0 0 1px ${o.color}22`},"aria-hidden":!0,children:s.jsx("img",{src:l,alt:"",className:"h-3.5 w-3.5 object-contain",onError:()=>a(c=>c+1)})}):t&&o?s.jsx("span",{"data-testid":`provider-picker-logo-fallback-${e}`,className:"grid h-5 w-5 shrink-0 place-items-center rounded-md text-[7.5px] font-semibold text-white shadow-[inset_0_0_0_1px_rgba(255,255,255,0.18)]",style:{backgroundColor:o.color},"aria-hidden":!0,children:o.initials}):s.jsx("span",{className:"grid h-5 w-5 shrink-0 place-items-center rounded-md bg-muted text-muted-foreground","aria-hidden":!0,children:s.jsx(i,{className:"h-3 w-3",strokeWidth:2})})}function zv({title:e,count:t,empty:n,children:r}){return s.jsxs("section",{className:"space-y-3",children:[s.jsx(a4,{title:e,count:t}),s.jsx("div",{className:"overflow-hidden rounded-[22px] border border-border/45 bg-card/86 shadow-[0_18px_65px_rgba(15,23,42,0.07)] backdrop-blur-xl dark:border-white/10 dark:shadow-[0_18px_65px_rgba(0,0,0,0.22)]",children:t>0?s.jsx("div",{className:"divide-y divide-border/45",children:r}):s.jsx(o4,{children:n})})]})}function a4({title:e,count:t}){return s.jsxs("div",{className:"flex items-center justify-between px-1",children:[s.jsx("h2",{className:"text-[13px] font-semibold tracking-[-0.01em] text-foreground/85",children:e}),s.jsx("span",{className:"rounded-full bg-muted px-2 py-0.5 text-[11.5px] font-medium text-muted-foreground",children:t})]})}function o4({children:e}){return s.jsx("div",{className:"rounded-[18px] border border-dashed border-border/65 bg-card/45 px-4 py-5 text-[13px] text-muted-foreground",children:e})}function tC(){const{t:e}=ie();return s.jsx("p",{className:"px-1 text-[11.5px] leading-5 text-muted-foreground/75",children:e("settings.legal.thirdPartyBrands",{defaultValue:"Product names, logos, and brands are property of their respective owners. Use is for identification only and does not imply endorsement."})})}function s4(e){return e.map((t,n)=>({provider:t,index:n})).sort((t,n)=>$v(t.provider)-$v(n.provider)||t.index-n.index).map(({provider:t})=>t)}function i4(e){const t=new Set;return e.filter(n=>t.has(n.name)?!1:(t.add(n.name),!0))}function $v(e){const t=X3.get(e.name);return t!==void 0?t:(e.api_key_required??!0)===!1?100:200}function Uv(e,t){const n=t.trim().toLowerCase();return n?e.filter(r=>`${r.name} ${r.label} ${r.api_base??""} ${r.default_api_base??""}`.toLowerCase().includes(n)):e}function l4(e){return c4(e).map(t=>{const n=d4(t);return{name:t,offset:n,searchText:`${t} ${t.replace(/_/g," ")} ${n}`.toLowerCase()}})}function c4(e){var a;const t=Intl;let n;try{n=((a=t.supportedValuesOf)==null?void 0:a.call(t,"timeZone"))??[]}catch{n=[]}const r=new Set([...Q3,...n,e].filter(Boolean));return Array.from(r).sort((o,i)=>o==="UTC"?-1:i==="UTC"?1:o.localeCompare(i))}function u4(e,t){const n=t.trim().toLowerCase();return n?e.filter(r=>r.searchText.includes(n)):e}function d4(e){var t;try{const r=(t=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"shortOffset",hour:"2-digit",minute:"2-digit"}).formatToParts(new Date).find(a=>a.type==="timeZoneName"))==null?void 0:t.value;return r?r.replace(/^GMT$/,"UTC").replace(/^GMT/,"UTC"):"UTC"}catch{return"Custom timezone"}}function Bv(e,t){return!t||e.some(n=>n.name===t)?e:[{name:t,label:t},...e]}function p4(e,t,n={}){const r=n.draftProvider??e.provider;return r==="auto"?t.agent.resolved_provider||t.agent.provider||e.provider:r}const nC={custom:hf,openrouter:$o,skywork:$o,aihubmix:bA,anthropic:Ga,openai:Qb,deepseek:kA,zhipu:nA,dashscope:po,moonshot:vf,minimax:mg,minimax_anthropic:Ga,groq:mo,huggingface:Ni,gemini:eA,mistral:cA,siliconflow:Ni,volcengine:po,volcengine_coding_plan:po,byteplus:po,byteplus_coding_plan:po,qianfan:Ac,ant_ling:$o,azure_openai:po,bedrock:Ac,bocha:Tt,brave:Tt,duckduckgo:Tt,exa:Tt,jina:Tt,kagi:Tt,olostep:Tt,searxng:Tt,tavily:Tt,vllm:mo,ollama:mo,lm_studio:mo,atomic_chat:mo,ovms:mo,nvidia:mg};function m4({provider:e,showBrandLogos:t}){const[n,r]=u.useState(0),a=al(e),o=nC[e]??hf,i=a==null?void 0:a.logoUrls[n];return u.useEffect(()=>r(0),[e]),t&&i?s.jsx("span",{"data-testid":`provider-logo-${e}`,className:"grid h-10 w-10 shrink-0 place-items-center overflow-hidden rounded-[14px] border border-border/45 bg-background shadow-[inset_0_0_0_1px_rgba(0,0,0,0.025)]",style:{boxShadow:`inset 0 0 0 1px ${a.color}22`},children:s.jsx("img",{src:i,alt:"",className:"h-6 w-6 object-contain",onError:()=>r(l=>l+1)})}):t&&a?s.jsx("span",{"data-testid":`provider-logo-fallback-${e}`,className:"grid h-10 w-10 shrink-0 place-items-center rounded-[14px] text-[11px] font-semibold text-white shadow-[inset_0_0_0_1px_rgba(255,255,255,0.18)]",style:{backgroundColor:a.color},"aria-hidden":!0,children:a.initials}):s.jsx("span",{className:"grid h-10 w-10 shrink-0 place-items-center rounded-2xl bg-muted text-foreground/82 shadow-[inset_0_0_0_1px_rgba(0,0,0,0.025)] dark:bg-muted/70",children:s.jsx(o,{className:"h-5 w-5",strokeWidth:2,"aria-hidden":!0})})}function f4({icon:e}){return s.jsx("span",{className:"grid h-9 w-9 shrink-0 place-items-center rounded-[12px] bg-muted text-foreground/82 transition-colors group-hover:bg-muted/80 dark:bg-muted/70",children:s.jsx(e,{className:"h-4 w-4","aria-hidden":!0})})}function h4({provider:e,showBrandLogos:t}){const[n,r]=u.useState(0),a=e?al(e):null,o=a==null?void 0:a.logoUrls[n];return u.useEffect(()=>r(0),[e]),!e||!t||!a?null:o?s.jsx("span",{"data-testid":`overview-logo-${e}`,className:"grid h-5 w-5 shrink-0 place-items-center overflow-hidden rounded-md border border-border/35 bg-background shadow-[inset_0_0_0_1px_rgba(0,0,0,0.02)]",style:{boxShadow:`inset 0 0 0 1px ${a.color}22`},"aria-hidden":!0,children:s.jsx("img",{src:o,alt:"",className:"h-3.5 w-3.5 object-contain",onError:()=>r(i=>i+1)})}):s.jsx("span",{"data-testid":`overview-logo-fallback-${e}`,className:"grid h-5 w-5 shrink-0 place-items-center rounded-md text-[7.5px] font-semibold text-white shadow-[inset_0_0_0_1px_rgba(255,255,255,0.18)]",style:{backgroundColor:a.color},"aria-hidden":!0,children:a.initials})}function vo({icon:e,valueLogoProvider:t,title:n,value:r,caption:a,showBrandLogos:o=!1,onClick:i}){return s.jsxs("button",{type:"button",onClick:i,className:"group flex min-h-[68px] w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-muted/30 sm:px-5",children:[s.jsx(f4,{icon:e}),s.jsxs("span",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"block text-[14px] font-medium leading-5 text-foreground",children:n}),s.jsx("span",{className:"mt-0.5 block truncate text-[12px] leading-5 text-muted-foreground",children:a})]}),s.jsxs("span",{className:"ml-auto flex min-w-0 max-w-[48%] items-center gap-2",children:[s.jsx(h4,{provider:t,showBrandLogos:o}),s.jsx("span",{className:"truncate text-right text-[13px] leading-5 text-muted-foreground",children:r}),s.jsx(Wr,{className:"h-4 w-4 shrink-0 text-muted-foreground/60 transition-transform group-hover:translate-x-0.5","aria-hidden":!0})]})]})}function Jt({children:e}){return s.jsx("h2",{className:"mb-2 px-1 text-[13px] font-semibold tracking-[-0.01em] text-foreground/85",children:e})}function Ht({children:e}){return s.jsx("div",{className:"overflow-hidden rounded-[22px] border border-border/45 bg-card/86 shadow-[0_18px_65px_rgba(15,23,42,0.075)] backdrop-blur-xl dark:border-white/10 dark:shadow-[0_18px_65px_rgba(0,0,0,0.24)]",children:s.jsx("div",{className:"divide-y divide-border/45",children:e})})}function Oe({title:e,description:t,children:n}){return s.jsxs("div",{className:"flex min-h-[62px] flex-col gap-3 px-4 py-3.5 sm:flex-row sm:items-center sm:justify-between sm:px-5",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"text-[14px] font-medium leading-5 text-foreground",children:e}),t?s.jsx("div",{className:"mt-0.5 max-w-[28rem] text-[12px] leading-5 text-muted-foreground",children:t}):null]}),n?s.jsx("div",{className:"min-w-0 sm:ml-6 sm:shrink-0",children:n}):null]})}function Ks({title:e,value:t,description:n}){return s.jsx(Oe,{title:e,description:n,children:s.jsx("span",{className:"block max-w-full truncate text-left text-[13px] text-muted-foreground sm:max-w-[320px] sm:text-right",children:t})})}function g4({presets:e,value:t,settings:n,draftModel:r,draftProvider:a,providerConfigured:o,showProviderLogos:i,onChange:l,onCreateConfiguration:c}){const{t:d}=ie(),p=(f,h)=>d(f,{defaultValue:h}),m=e.find(f=>f.name===t)??e[0]??null;return s.jsxs(gn,{modal:!1,children:[s.jsx(vn,{asChild:!0,disabled:!e.length,children:s.jsxs(fe,{type:"button",variant:"outline","aria-label":p("settings.rows.currentModel","Current configuration"),disabled:!e.length,className:j("h-12 w-[min(430px,72vw)] justify-between rounded-full border-input bg-background px-3.5 text-[13px] font-normal shadow-none","hover:bg-accent/55 focus-visible:ring-2 focus-visible:ring-ring"),children:[m?s.jsx(Hv,{preset:m,settings:n,draftModel:r,draftProvider:a,forceUnconfigured:m!=null&&m.is_default?!o:void 0,showProviderLogos:i,compact:!0}):s.jsx("span",{className:"truncate text-muted-foreground",children:p("settings.models.selectModel","Select model")}),s.jsx(yr,{className:"ml-2 h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0})]})}),s.jsxs(ln,{align:"end",className:"max-h-[20rem] w-[430px] max-w-[calc(100vw-2rem)] overflow-y-auto scrollbar-thin scrollbar-track-transparent",children:[e.map(f=>{const h=f.name===t;return s.jsxs(gt,{onSelect:()=>l(f.name),className:j("flex cursor-default items-center justify-between gap-3 rounded-[12px] px-2.5 py-2 text-[13px]","focus:bg-muted/85 focus:text-foreground",h&&"bg-muted/80 text-foreground focus:bg-muted"),children:[s.jsx(Hv,{preset:f,settings:n,draftModel:r,draftProvider:a,showProviderLogos:i}),h?s.jsx(Et,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}):null]},f.name)}),s.jsx("div",{className:"mt-1 border-t border-border/55 pt-1",children:s.jsxs(gt,{onSelect:()=>{window.setTimeout(c,0)},className:j("flex cursor-default items-center gap-2 rounded-[12px] px-2.5 py-2 text-[13px] font-medium","text-foreground focus:bg-muted/85 focus:text-foreground"),children:[s.jsx("span",{className:"grid h-5 w-5 shrink-0 place-items-center rounded-md bg-muted text-muted-foreground",children:s.jsx(ga,{className:"h-3.5 w-3.5","aria-hidden":!0})}),s.jsx("span",{children:p("settings.models.addConfiguration","Add configuration")})]})})]})]})}function Hv({preset:e,settings:t,draftModel:n,draftProvider:r,forceUnconfigured:a,showProviderLogos:o,compact:i=!1}){const{t:l}=ie(),c=(x,b)=>l(x,{defaultValue:b}),d=p4(e,t,{draftProvider:e.is_default?r:void 0}),p=e.is_default?n:e.model,m=Mo(t.providers,d),f=a===void 0?Mu(t,d):!a,h=f?p||e.label:c("settings.values.notConfigured","Not configured"),y=f?`${m}${e.label?` · ${e.label}`:""}`:m||p||e.label?[m,p||e.label].filter(Boolean).join(" · "):c("settings.byok.noConfiguredProviders","No configured providers");return s.jsxs("span",{className:"flex min-w-0 items-center gap-2.5",children:[s.jsx(Fi,{provider:d,showBrandLogos:o,unconfigured:!f}),s.jsxs("span",{className:"min-w-0 text-left leading-tight",children:[s.jsx("span",{className:j("block truncate font-medium",f?"text-foreground":"text-amber-800 dark:text-amber-200"),children:h}),s.jsx("span",{className:j("mt-0.5 block truncate text-muted-foreground",i?"text-[11.5px]":"text-[12px]"),children:y})]})]})}function ol({dirty:e,saving:t,pendingRestart:n,disabled:r=!1,message:a,dirtyMessage:o,pendingMessage:i,onSave:l,onRestart:c,onReset:d,isRestarting:p}){const{t:m}=ie(),f=(g,w)=>m(g,{defaultValue:w}),h=Ja()!==null,y=h?f("app.system.restartEngine","Restart engine"):m("app.system.restart"),x=h?f("app.system.restartingEngine","Restarting engine..."):m("app.system.restarting"),b=a??(n&&!e?i??f("settings.status.savedRestartApply","Saved. Restart when ready."):e?o??m("settings.status.unsaved"):void 0),v=r?"danger":e||n?"accent":void 0;return s.jsxs("div",{className:"flex min-h-[58px] flex-col gap-3 px-4 py-3 sm:flex-row sm:items-center sm:justify-between sm:px-5",children:[s.jsx("div",{className:"min-w-0 text-[13px] leading-5 text-muted-foreground",children:s.jsx(rC,{tone:v,children:b})}),s.jsxs("div",{className:"flex w-full shrink-0 flex-wrap justify-end gap-2 sm:w-auto",children:[n&&!e&&c?s.jsxs(fe,{size:"sm",variant:"ghost",onClick:c,disabled:p,className:"rounded-full",children:[p?s.jsx(pt,{className:"mr-1.5 h-3.5 w-3.5 animate-spin","aria-hidden":!0}):s.jsx(qi,{className:"mr-1.5 h-3.5 w-3.5","aria-hidden":!0}),p?x:y]}):null,d?s.jsx(fe,{size:"sm",variant:"ghost",onClick:d,disabled:!e||t,className:"rounded-full",children:m("settings.actions.cancel")}):null,s.jsx(fe,{size:"sm",variant:"outline",onClick:l,disabled:!e||r||t,className:"rounded-full",children:m(t?"settings.actions.saving":"settings.actions.save")})]})]})}function v4({dirty:e,saving:t,saved:n,disabled:r=!1,message:a,onSave:o}){const{t:i}=ie(),c=a??(e?i("settings.status.unsaved"):n?i("settings.status.savedRestart"):((d,p)=>i(d,{defaultValue:p}))("settings.status.upToDate","Up to date."));return s.jsxs("div",{className:"flex min-h-[58px] flex-col gap-3 px-4 py-3 sm:flex-row sm:items-center sm:justify-between sm:px-5",children:[s.jsx("div",{className:"text-[13px] text-muted-foreground",children:s.jsx(rC,{tone:r?"danger":e||n?"accent":void 0,children:c})}),s.jsx("div",{className:"flex justify-end",children:s.jsx(fe,{size:"sm",variant:"outline",onClick:o,disabled:!e||r||t,className:"rounded-full",children:i(t?"settings.actions.saving":"settings.actions.save")})})]})}function rC({children:e,tone:t}){return e?s.jsxs("span",{className:j("inline-flex items-center gap-2",t==="accent"&&"font-medium text-blue-600 dark:text-blue-300",t==="danger"&&"font-medium text-destructive"),children:[t?s.jsx("span",{className:j("h-1.5 w-1.5 shrink-0 rounded-full",t==="accent"&&"bg-blue-500 shadow-[0_0_0_3px_rgba(59,130,246,0.14)] dark:bg-blue-400 dark:shadow-[0_0_0_3px_rgba(96,165,250,0.18)]",t==="danger"&&"bg-destructive/70"),"aria-hidden":!0}):null,s.jsx("span",{children:e})]}):null}function Iu({children:e,tone:t="neutral"}){return s.jsx("span",{className:j("inline-flex max-w-[260px] items-center rounded-full px-2.5 py-1 text-[12px] font-medium",t==="success"&&"bg-emerald-500/10 text-emerald-700 dark:text-emerald-300",t==="warning"&&"bg-amber-500/10 text-amber-700 dark:text-amber-300",t==="neutral"&&"bg-muted text-muted-foreground"),children:s.jsx("span",{className:"truncate",children:e})})}function eo({value:e,options:t,onChange:n}){return s.jsx("div",{className:"inline-flex h-8 items-center rounded-full bg-muted p-0.5 text-[12px] font-medium text-muted-foreground",children:t.map(r=>s.jsx("button",{type:"button",onClick:()=>n(r.value),className:j("rounded-full px-3 py-1 transition-colors",e===r.value&&"bg-background text-foreground shadow-sm"),children:r.label},r.value))})}function is({checked:e,onChange:t,ariaLabel:n,label:r}){return s.jsxs("button",{type:"button",role:"switch","aria-checked":e,"aria-label":n??r,onClick:()=>t(!e),className:j("relative inline-flex h-[22px] w-[38px] shrink-0 items-center rounded-full p-[2px]","transition-colors duration-200 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e?"bg-[#2997FF] shadow-[inset_0_0_0_1px_rgba(0,0,0,0.035)]":"bg-muted shadow-[inset_0_0_0_1px_rgba(0,0,0,0.035)] hover:bg-muted/80"),children:[s.jsx("span",{"aria-hidden":!0,className:j("h-[18px] w-[18px] rounded-full bg-background shadow-[0_1px_2px_rgba(0,0,0,0.18),0_2px_7px_rgba(0,0,0,0.11)]","transition-transform duration-200 ease-out",e?"translate-x-[16px]":"translate-x-0")}),s.jsx("span",{className:"sr-only",children:r})]})}function zi({value:e,min:t,max:n,onChange:r,suffix:a}){return s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(Ye,{type:"number",min:t,max:n,value:e,onChange:o=>{const i=Number(o.target.value);Number.isFinite(i)&&r(i)},className:"h-8 w-24 max-w-full rounded-full text-[13px]"}),a?s.jsx("span",{className:"text-[12px] text-muted-foreground",children:a}):null]})}const aC="nanobot-webui.theme",oC=u.createContext("light");function x4(){try{const e=localStorage.getItem(aC);return e==="light"||e==="dark"?e:null}catch{return null}}function y4(e){const t=document.documentElement;e==="dark"?t.classList.add("dark"):t.classList.remove("dark")}function b4(){const[e,t]=u.useState(()=>{const a=x4();return a||(typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")});u.useEffect(()=>{y4(e);try{localStorage.setItem(aC,e)}catch{}},[e]);const n=u.useCallback(a=>t(a),[]),r=u.useCallback(()=>t(a=>a==="dark"?"light":"dark"),[]);return{theme:e,toggle:r,setTheme:n}}function w4({theme:e,children:t}){return u.createElement(oC.Provider,{value:e},t)}function k4(){return u.useContext(oC)}const C4="\x1B",ls=new RegExp(`${C4}\\[[0-?]*[ -/]*[@-~]`,"g"),mm=["#000000","#cd3131","#0dbc79","#e5e510","#2472c8","#bc3fbc","#11a8cd","#e5e5e5"],fm=["#666666","#f14c4c","#23d18b","#f5f543","#3b8eea","#d670d6","#29b8db","#ffffff"],Dd=[0,95,135,175,215,255];function S4(e){return ls.lastIndex=0,ls.test(e)}function N4(e){return ls.lastIndex=0,e.replace(ls,"")}function sC(){return{bold:!1,dim:!1,inverse:!1,italic:!1,underline:!1}}function j4(e){if(e<0||e>255)return;if(e<8)return mm[e];if(e<16)return fm[e-8];if(e<232){const n=e-16,r=Dd[Math.floor(n/36)],a=Dd[Math.floor(n%36/6)],o=Dd[n%6];return`rgb(${r}, ${a}, ${o})`}const t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}function A4(e,t,n){if(![e,t,n].some(r=>!Number.isFinite(r)||r<0||r>255))return`rgb(${e}, ${t}, ${n})`}function _4(e){if(!e.endsWith("m"))return null;const t=e.slice(2,-1).trim();return t?t.split(/[;:]/).map(n=>{const r=Number.parseInt(n||"0",10);return Number.isFinite(r)?r:0}):[0]}function Wv(e,t,n,r){const a=t[n+1];if(a===5){const o=j4(t[n+2]);return o&&(e[r]=o),n+2}if(a===2){const o=A4(t[n+2],t[n+3],t[n+4]);return o&&(e[r]=o),n+4}return n}function P4(e,t){for(let n=0;n=30&&r<=37?e.color=mm[r-30]:r>=40&&r<=47?e.backgroundColor=mm[r-40]:r>=90&&r<=97?e.color=fm[r-90]:r>=100&&r<=107?e.backgroundColor=fm[r-100]:r===38?n=Wv(e,t,n,"color"):r===48&&(n=Wv(e,t,n,"backgroundColor"))}}function qv(e){const t=e.inverse?e.backgroundColor:e.color,n=e.inverse?e.color:e.backgroundColor,r={};return t&&(r.color=t),n&&(r.backgroundColor=n),e.bold&&(r.fontWeight=700),e.dim&&(r.opacity=.72),e.italic&&(r.fontStyle="italic"),e.underline&&(r.textDecorationLine="underline"),Object.keys(r).length?r:void 0}function T4(e){const t=[],n=sC();let r=0;ls.lastIndex=0;for(const a of e.matchAll(ls)){const o=a.index??0;o>r&&t.push({text:e.slice(r,o),style:qv(n)});const i=_4(a[0]);i&&P4(n,i),r=o+a[0].length}return ra.text.length>0)}const Od=['"JetBrains Mono"','"SFMono-Regular"','"SF Mono"','"Fira Code"','"Cascadia Code"','"Source Code Pro"',"Menlo","Consolas","monospace"].join(", "),R4=new Set(["ansi","ansi-output"]),M4="#f4f4f5",E4="#27272a",I4=u.lazy(async()=>{const[{default:e},{default:t},{default:n}]=await Promise.all([Dl(()=>import("./syntax-highlight-CQw1bBY6.js").then(r=>r.p),__vite__mapDeps([0,1,2,3])),Dl(()=>import("./syntax-highlight-CQw1bBY6.js").then(r=>r.o),__vite__mapDeps([0,1,2,3])),Dl(()=>import("./syntax-highlight-CQw1bBY6.js").then(r=>r.b),__vite__mapDeps([0,1,2,3]))]);return{default({language:r,code:a,isDark:o,chrome:i,showLineNumbers:l,wrapLongLines:c}){const d=o?t:n,p=i==="none"?{...d,'pre[class*="language-"]':{...d['pre[class*="language-"]'],background:"transparent"},'code[class*="language-"]':{...d['code[class*="language-"]'],background:"transparent"}}:d;return s.jsx(e,{language:r||"text",style:p,customStyle:{background:i==="none"?"transparent":o?E4:M4,margin:0,padding:i==="none"?"0.75rem 1rem":"1rem",fontFamily:Od,fontSize:i==="none"?"13px":"0.875rem",lineHeight:i==="none"?1.55:1.6,tabSize:2},codeTagProps:{style:{background:"transparent",fontFamily:Od}},lineNumberStyle:{minWidth:"2.6em",paddingRight:"1.15rem",color:o?"rgba(212, 212, 216, 0.45)":"rgba(63, 63, 70, 0.68)",fontFamily:Od,userSelect:"none"},PreTag:"pre",showLineNumbers:l,wrapLongLines:c,children:a})}}});function L4(e){return e}function D4(e){return T4(e).map((t,n)=>s.jsx("span",{style:t.style,children:t.text},n))}function Fd({code:e,chrome:t,showLineNumbers:n,testId:r,className:a,renderText:o=L4}){const i=e.split(` -`);return s.jsx("pre",{className:j("m-0 overflow-x-auto p-4 font-mono text-sm leading-[1.6] text-foreground/90",n?"whitespace-pre":"whitespace-pre-wrap",t==="default"?"bg-zinc-100 dark:bg-zinc-800":"bg-transparent",t==="none"&&"p-3 text-[13px] leading-[1.55]",a),"data-testid":r,children:s.jsx("code",{className:"text-inherit",children:n?i.map((l,c)=>s.jsxs("span",{className:"flex min-w-max",children:[s.jsx("span",{className:"w-10 shrink-0 select-none pr-4 text-right text-muted-foreground/60",children:c+1}),s.jsx("span",{className:"whitespace-pre",children:o(l||" ")}),c{navigator.clipboard&&navigator.clipboard.writeText(f?N4(t):t).then(()=>{d(!0),setTimeout(()=>d(!1),1500)})},[t,f]);return s.jsxs("div",{className:j("not-prose overflow-hidden",m&&"rounded-lg border",m&&(p?"border-white/10":"border-black/10"),n),children:[m?s.jsxs("div",{className:j("flex items-center justify-between px-4 pb-1.5 pt-2 text-xs font-medium",p?"bg-zinc-800 text-zinc-300":"bg-zinc-100 text-zinc-600"),children:[s.jsx("span",{className:"lowercase font-mono",children:e||l("code.fallbackLanguage")}),s.jsxs("button",{type:"button",onClick:h,className:j("inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-mono transition-colors",p?"text-zinc-400 hover:bg-zinc-700 hover:text-zinc-200":"text-zinc-500 hover:bg-zinc-200 hover:text-zinc-700"),"aria-label":l("code.copyAria"),children:[c?s.jsx(Et,{className:"h-3.5 w-3.5"}):s.jsx(Zb,{className:"h-3.5 w-3.5"}),s.jsx("span",{children:l(c?"code.copied":"code.copy")})]})]}):null,f?s.jsx(Fd,{code:t,chrome:r,showLineNumbers:o,testId:"ansi-code",renderText:D4}):a?s.jsx(u.Suspense,{fallback:s.jsx(Fd,{code:t,chrome:r,showLineNumbers:o,testId:"plain-code-fallback"}),children:s.jsx(I4,{language:e,code:t,isDark:p,chrome:r,showLineNumbers:o,wrapLongLines:i})}):s.jsx(Fd,{code:t,chrome:r,showLineNumbers:o,testId:"plain-code-fallback"})]})}function Xf({path:e,tooltipPath:t,display:n="name",active:r=!1,className:a,textClassName:o,previewPath:i,onOpen:l,testId:c="inline-file-path"}){const{directory:d,name:p}=iC(e),m=$4(e),f=n==="path"?e.replace(/\\/g,"/"):p,h=t||e,y=i||t||e,x=!!l,b=g=>{l&&(g.preventDefault(),g.stopPropagation(),l(y))},v=g=>{g.key!=="Enter"&&g.key!==" "||b(g)};return s.jsx(Ru,{delayDuration:500,skipDelayDuration:100,children:s.jsxs(Ei,{children:[s.jsx(Ii,{asChild:!0,children:s.jsx("span",{className:j("not-prose inline-flex max-w-full align-baseline leading-[inherit]",a),children:s.jsxs("span",{"data-testid":c,"aria-label":h,role:x?"button":void 0,tabIndex:x?0:void 0,onClick:x?b:void 0,onKeyDown:x?v:void 0,className:j("inline-flex max-w-full items-baseline gap-[0.28em] font-medium leading-[inherit]","text-sky-600 transition-colors hover:text-sky-700","dark:text-sky-300 dark:hover:text-sky-200",x&&["cursor-pointer rounded-[5px]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-400/45"]),children:[s.jsx(U4,{kind:m}),s.jsx("span",{"data-sheen-text":r?f:void 0,className:j("min-w-0 max-w-full truncate",r&&"streaming-text-sheen file-reference-sheen",o),children:n==="path"&&d?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"text-muted-foreground/65",children:d}),s.jsx("span",{className:"font-semibold text-sky-700 dark:text-sky-200",children:p})]}):f})]})})}),s.jsx(ss,{side:"top",align:"center",sideOffset:8,collisionPadding:12,className:j("max-w-[min(38rem,calc(100vw-2rem))] rounded-[10px]","border-border/60 bg-popover/95 px-2.5 py-1.5","break-all font-mono text-[11px] leading-snug text-popover-foreground","shadow-lg backdrop-blur"),children:h})]})})}function C6(e){const t=e.trim();if(!t||t.includes(` -`)||/^[a-z][a-z0-9+.-]*:\/\//i.test(t)||z4(t)||!/[\\/]/.test(t)&&!/^(dockerfile|makefile|readme|package-lock\.json)$/i.test(t))return!1;const n=t.replace(/\\/g,"/"),r=n.split("/").filter(Boolean).pop()??n;return!r||r==="."||r===".."?!1:/^(dockerfile|makefile|readme|package-lock\.json)$/i.test(r)?!0:/\.[a-z0-9][a-z0-9_-]{0,12}$/i.test(r)}function z4(e){return/[*?[\]{}]/.test(e.trim())}function iC(e){const t=e.replace(/\\/g,"/"),n=t.lastIndexOf("/");return n<0?{directory:"",name:e}:{directory:t.slice(0,n+1),name:t.slice(n+1)||t}}function $4(e){const t=e.toLowerCase(),n=t.split(/[\\/]/).pop()??t,r=n.includes(".")?n.split(".").pop()??"":"";if(n==="dockerfile")return"default";switch(r){case"py":case"pyi":return"python";case"jsx":case"tsx":return"react";case"js":case"mjs":case"cjs":return"javascript";case"ts":case"mts":case"cts":return"typescript";case"html":case"htm":return"html";case"css":case"scss":case"sass":return"css";case"json":case"jsonl":return"json";case"md":case"mdx":return"markdown";case"ipynb":return"notebook";default:return"default"}}function U4({kind:e}){if(e==="python")return s.jsxs("svg",{"aria-hidden":!0,className:"h-[1em] w-[1em] shrink-0 translate-y-[0.12em]",viewBox:"0 0 24 24",children:[s.jsx("path",{d:"M11.9 2.3c-3 0-4.5.8-4.5 2.3v2.1h4.8v.8H5.5C4 7.5 3 8.8 3 10.8v2.1c0 1.8 1.1 3 2.7 3h1.6v-2.3c0-1.7 1.4-3.1 3.1-3.1h4.2c1.3 0 2.3-1 2.3-2.3V4.6c0-1.4-1.5-2.3-4.6-2.3h-.4Z",fill:"#3776AB"}),s.jsx("path",{d:"M12.1 21.7c3 0 4.5-.8 4.5-2.3v-2.1h-4.8v-.8h6.7c1.5 0 2.5-1.3 2.5-3.3v-2.1c0-1.8-1.1-3-2.7-3h-1.6v2.3c0 1.7-1.4 3.1-3.1 3.1H9.4c-1.3 0-2.3 1-2.3 2.3v3.6c0 1.4 1.5 2.3 4.6 2.3h.4Z",fill:"#FFD43B"}),s.jsx("circle",{cx:"9",cy:"5.1",r:"0.8",fill:"#fff"}),s.jsx("circle",{cx:"15",cy:"18.9",r:"0.8",fill:"#5C3B00",opacity:"0.85"})]});if(e==="react")return s.jsxs("svg",{"aria-hidden":!0,className:"h-[0.92em] w-[0.92em] shrink-0 translate-y-[0.11em] text-sky-500 dark:text-sky-300",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("circle",{cx:"12",cy:"12",r:"1.9",fill:"currentColor",stroke:"none"}),s.jsx("ellipse",{cx:"12",cy:"12",rx:"9",ry:"3.7"}),s.jsx("ellipse",{cx:"12",cy:"12",rx:"9",ry:"3.7",transform:"rotate(60 12 12)"}),s.jsx("ellipse",{cx:"12",cy:"12",rx:"9",ry:"3.7",transform:"rotate(120 12 12)"})]});if(e==="default")return s.jsxs("svg",{"aria-hidden":!0,className:"h-[0.92em] w-[0.92em] shrink-0 translate-y-[0.11em] text-sky-500 dark:text-sky-300",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7z"}),s.jsx("path",{d:"M14 2v5h5"})]});const t=B4(e);return s.jsxs("svg",{"aria-hidden":!0,className:"h-[0.96em] w-[0.96em] shrink-0 translate-y-[0.12em] text-sky-500 dark:text-sky-300",viewBox:"0 0 24 24",fill:"none",children:[s.jsx("path",{d:"M7 3.5h6.6L18 7.9V19a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19V5a1.5 1.5 0 0 1 1.5-1.5Z",fill:"currentColor",opacity:"0.12"}),s.jsx("path",{d:"M13.5 3.75V8h4.25M7 3.5h6.6L18 7.9V19a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19V5a1.5 1.5 0 0 1 1.5-1.5Z",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),s.jsx("text",{x:"12",y:"15.7",textAnchor:"middle",fill:"currentColor",fontSize:t.length>1?"5.8":"7.2",fontWeight:"800",letterSpacing:"-0.2",children:t})]})}function B4(e){switch(e){case"css":return"#";case"html":return"H";case"javascript":return"JS";case"json":return"{}";case"markdown":return"M";case"notebook":return"N";case"python":return"PY";case"typescript":return"TS";default:return""}}function H4(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(hover: hover) and (pointer: fine)").matches}function W4({sessionKey:e,path:t,token:n,desktopWidth:r=544,isClosing:a=!1,onResizeStart:o,onClose:i}){const{t:l}=ie(),[c,d]=u.useState({status:"loading"}),[p,m]=u.useState(!1),[f,h]=u.useState(H4);u.useEffect(()=>{const N=window.requestAnimationFrame(()=>m(!0));return()=>window.cancelAnimationFrame(N)},[]),u.useEffect(()=>{if(typeof window.matchMedia!="function")return;const N=window.matchMedia("(hover: hover) and (pointer: fine)"),S=()=>h(N.matches);return S(),typeof N.addEventListener=="function"?(N.addEventListener("change",S),()=>N.removeEventListener("change",S)):(N.addListener(S),()=>N.removeListener(S))},[]),u.useEffect(()=>{let N=!1;return d({status:"loading"}),vL(n,e,t).then(S=>{N||d({status:"ready",payload:S})}).catch(S=>{if(N)return;const A=S instanceof as?S.status===404&&/API route not found/i.test(S.message)?l("filePreview.routeMissing",{defaultValue:"File preview needs the latest gateway. Restart nanobot gateway and try again."}):S.message:l("filePreview.failed",{defaultValue:"Could not preview this file."});d({status:"error",message:A})}),()=>{N=!0}},[t,e,l,n]);const y=c.status==="ready"?c.payload.display_path:t,x=c.status==="ready"?c.payload.path:y,b=x.replace(/\\/g,"/"),v=b.startsWith("/"),{name:g}=iC(y),w=u.useMemo(()=>b.split("/").filter(Boolean),[b]),k=u.useMemo(()=>w.length>2?w.slice(-2):w,[w]),C=w.length>k.length;return s.jsx("aside",{"aria-label":l("filePreview.aria",{defaultValue:"File preview"}),style:{"--file-preview-width":`${r}px`,"--file-preview-slot-width":!p||a?"0px":`${r}px`},className:j("absolute inset-y-0 right-0 z-30 w-[min(100vw,var(--file-preview-slot-width))] overflow-hidden","transition-[width] duration-300 ease-out will-change-[width]","md:relative md:z-auto md:w-[var(--file-preview-slot-width)] md:min-w-0 md:shrink-0",a&&"pointer-events-none"),"data-testid":"file-preview-panel","data-file-preview-panel":!0,children:s.jsxs("div",{className:j("absolute inset-y-0 right-0 flex w-[min(100vw,var(--file-preview-width))] flex-col overflow-hidden pb-[env(safe-area-inset-bottom)] md:w-[var(--file-preview-width)] md:pb-0","border-l border-border/70 bg-background shadow-2xl md:shadow-none","transition-[opacity,transform] duration-300 ease-out will-change-transform",!p||a?"translate-x-full opacity-0":"translate-x-0 opacity-100","motion-reduce:translate-x-0"),children:[o?s.jsx("button",{type:"button","aria-label":l("filePreview.resize",{defaultValue:"Resize file preview"}),className:j("group absolute inset-y-0 left-0 z-20 hidden w-3 -translate-x-1/2 cursor-col-resize touch-none md:flex","items-stretch justify-center focus-visible:outline-none"),onPointerDown:o,children:s.jsx("span",{"aria-hidden":!0,className:j("h-full w-px bg-foreground/25 opacity-0 transition-opacity","group-hover:opacity-100 group-focus-visible:bg-ring group-focus-visible:opacity-100")})}):null,s.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[s.jsx("div",{className:"flex h-12 shrink-0 items-center gap-2 border-b border-border/60 px-3",children:f?s.jsxs("div",{className:j("group inline-flex max-w-full min-w-0 items-center gap-2 rounded-[12px]","bg-muted/70 px-2.5 py-1.5 text-sm font-medium"),title:g||y,children:[s.jsxs("button",{type:"button",onClick:i,className:j("relative inline-flex h-5 w-5 shrink-0 items-center justify-center overflow-hidden rounded-full","text-muted-foreground/75 transition-[background-color,color,opacity] duration-150 ease-out","group-hover:bg-foreground group-hover:text-background group-hover:opacity-100","group-focus-within:bg-foreground group-focus-within:text-background","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"aria-label":l("filePreview.close",{defaultValue:"Close file preview"}),children:[s.jsx(Jj,{className:j("absolute h-4 w-4 transition-all duration-150 ease-out","opacity-100 group-hover:scale-75 group-hover:opacity-0","group-focus-within:scale-75 group-focus-within:opacity-0"),"aria-hidden":!0}),s.jsx(xr,{className:j("absolute h-3.5 w-3.5 scale-75 opacity-0 transition-all duration-150 ease-out","group-hover:scale-100 group-hover:opacity-100","group-focus-within:scale-100 group-focus-within:opacity-100"),"aria-hidden":!0})]}),s.jsx("span",{className:"min-w-0 truncate",children:g||y})]}):s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",onClick:i,className:j("inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-full","text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"aria-label":l("filePreview.close",{defaultValue:"Close file preview"}),children:s.jsx(xr,{className:"h-5 w-5","aria-hidden":!0})}),s.jsx("span",{className:"min-w-0 truncate text-sm font-medium",children:g||y})]})}),s.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[s.jsx("div",{className:j("flex min-h-10 shrink-0 items-center gap-1.5 overflow-hidden","border-b border-border/45 px-4 text-[13px] text-muted-foreground"),title:x,children:s.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[C?s.jsx("span",{className:"shrink-0 text-muted-foreground/55",children:"..."}):v?s.jsx("span",{className:"shrink-0 text-muted-foreground/55",children:"/"}):null,k.length>0?k.map((N,S)=>s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[S>0||C||v?s.jsx(Wr,{className:"h-3 w-3 shrink-0 text-muted-foreground/40","aria-hidden":!0}):null,s.jsx("span",{className:j("min-w-0 truncate",S===k.length-1?"font-medium text-foreground":"max-w-[42vw] shrink text-muted-foreground/76"),children:N})]},`${N}-${S}`)):s.jsx("span",{className:"truncate",children:x})]})}),s.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:c.status==="loading"?s.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[s.jsx(pt,{className:"h-4 w-4 animate-spin","aria-hidden":!0}),l("filePreview.loading",{defaultValue:"Loading preview..."})]}):c.status==="error"?s.jsx("div",{className:"flex h-full items-center justify-center px-8 text-center text-sm text-muted-foreground",children:s.jsxs("div",{className:"max-w-sm",children:[s.jsx(ja,{className:"mx-auto mb-3 h-5 w-5 text-muted-foreground/70","aria-hidden":!0}),s.jsx("p",{children:c.message})]})}):s.jsxs("div",{className:"min-h-full",children:[c.payload.truncated?s.jsx("div",{className:"mx-4 mt-3 rounded-md border border-amber-500/25 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-200",children:l("filePreview.truncated",{defaultValue:"Preview is truncated because this file is large."})}):null,s.jsx(F4,{language:c.payload.language,code:c.payload.content,chrome:"none",showLineNumbers:!0,wrapLongLines:!1,className:"min-h-full"})]})})]})]})]})})}function lC(e){let t=0;return e.flatMap(n=>{if(n.role!=="user")return[];const r={id:n.id,label:q4(n.content,t),preview:K4(n.content,t),createdAt:n.createdAt,index:t};return t+=1,[r]})}function q4(e,t){const n=e.replace(/\s+/g," ").trim();return n?n.length>80?`${n.slice(0,77)}...`:n:`Prompt ${t+1}`}function K4(e,t){const n=e.replace(/\n{3,}/g,` - -`).trim();return n?n.length>320?`${n.slice(0,317)}...`:n:`Prompt ${t+1}`}function hm(e,t){if(!e||!t)return;const n=ii(e,t);n&&e.scrollTo({top:Math.max(0,Jf(e,n)-16),behavior:"smooth"})}function ii(e,t){const n=e.querySelectorAll("[data-user-prompt-id]");return Array.from(n).find(r=>r.dataset.userPromptId===t)??null}function Jf(e,t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return n.top!==0||r.top!==0?r.top-n.top+e.scrollTop:t.offsetTop}function V4({messages:e,onJumpToPrompt:t}){const{i18n:n,t:r}=ie(),a=u.useMemo(()=>lC(e),[e]),[o,i]=u.useState(!1),[l,c]=u.useState(""),d=u.useMemo(()=>{const m=l.trim().toLocaleLowerCase();return m?a.filter(f=>`${f.label} -${f.preview}`.toLocaleLowerCase().includes(m)):a},[a,l]);if(a.length===0)return null;const p=m=>{i(!1),t(m)};return s.jsxs(s.Fragment,{children:[s.jsx(fe,{type:"button",variant:"ghost",size:"icon",className:j("host-no-drag h-8 w-8 rounded-full text-muted-foreground/80","hover:bg-accent/40 hover:text-foreground"),"aria-label":r("thread.promptNavigator.open"),onClick:()=>i(!0),children:s.jsx(iA,{className:"h-4 w-4"})}),s.jsx(qf,{open:o,onOpenChange:i,children:s.jsxs(ju,{side:"right","aria-describedby":void 0,className:"w-[min(92vw,24rem)] gap-0 p-0 sm:max-w-[24rem]",children:[s.jsxs("div",{className:"border-b px-5 pb-4 pt-5",children:[s.jsx(Au,{className:"text-base font-medium",children:r("thread.promptNavigator.title")}),s.jsxs("div",{className:"relative mt-4",children:[s.jsx(Tt,{"aria-hidden":!0,className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{value:l,onChange:m=>c(m.target.value),"aria-label":r("thread.promptNavigator.search"),placeholder:r("thread.promptNavigator.search"),className:j("h-10 w-full rounded-full border border-border bg-background pl-9 pr-3 text-sm","outline-none transition focus:border-ring focus:ring-2 focus:ring-ring/20")})]})]}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 py-2",children:d.length>0?s.jsx("div",{className:"space-y-1",children:d.map(m=>s.jsx(G4,{locale:n.resolvedLanguage||n.language,prompt:m,onJump:p},m.id))}):s.jsx("div",{className:"px-3 py-10 text-center text-sm text-muted-foreground",children:r("thread.promptNavigator.noResults")})})]})})]})}function G4({locale:e,onJump:t,prompt:n}){const{t:r}=ie(),a=$r(n.createdAt,e);return s.jsxs("button",{type:"button",className:j("w-full rounded-xl px-3 py-3 text-left transition","hover:bg-accent focus-visible:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30"),"aria-label":r("thread.promptNavigator.jumpTo",{label:n.label}),onClick:()=>t(n.id),children:[s.jsx("div",{className:"max-h-20 overflow-hidden whitespace-pre-wrap break-words text-sm leading-5 text-foreground",children:n.preview}),a?s.jsx("div",{className:"mt-1 text-[10px] leading-4 text-muted-foreground/75",children:a}):null]})}const Y4=3e3;function Q4(e,t,n){const[r,a]=u.useState([]),[o,i]=u.useState(!1),[l,c]=u.useState(!1),[d,p]=u.useState(()=>Date.now());return u.useEffect(()=>{if(!e)return;let m=!1,f=!1;const h=async(b=!1)=>{b&&(i(!0),c(!1),a([]));try{const v=await w1(t,n);if(m)return;a(v.jobs),c(!1),f=!0}catch{!m&&!f&&c(!0)}finally{!m&&b&&i(!1)}};h(!0);const y=window.setInterval(()=>void h(!1),Y4),x=()=>{document.visibilityState!=="hidden"&&h(!1)};return window.addEventListener("focus",x),document.addEventListener("visibilitychange",x),()=>{m=!0,window.clearInterval(y),window.removeEventListener("focus",x),document.removeEventListener("visibilitychange",x)}},[e,n,t]),u.useEffect(()=>{if(!e)return;p(Date.now());const m=window.setInterval(()=>p(Date.now()),1e3);return()=>window.clearInterval(m)},[e]),{jobs:r,loading:o,loadFailed:l,now:d}}const X4=[[60,"second"],[60,"minute"],[24,"hour"],[7,"day"],[4.345,"week"],[12,"month"],[Number.POSITIVE_INFINITY,"year"]];function J4({sessionKey:e,token:t,title:n}){const{t:r}=ie("common"),[a,o]=u.useState(!1),{jobs:i,loading:l,loadFailed:c,now:d}=Q4(a,t,e),p=l?s.jsxs("div",{className:"flex items-center gap-2 rounded-[16px] bg-muted/45 px-3 py-3 text-[12.5px] text-muted-foreground",children:[s.jsx(fA,{className:"h-3.5 w-3.5 animate-spin"}),r("thread.sessionInfo.loading")]}):c?s.jsxs("div",{className:"flex items-center gap-2 rounded-[16px] bg-destructive/10 px-3 py-3 text-[12.5px] text-destructive",children:[s.jsx(ja,{className:"h-3.5 w-3.5"}),r("thread.sessionInfo.loadFailed")]}):i.length?s.jsx("div",{className:"space-y-1.5",children:i.map(m=>s.jsx(Z4,{job:m,now:d},m.id))}):s.jsx("div",{className:"rounded-[16px] bg-muted/35 px-3 py-3 text-[12.5px] leading-relaxed text-muted-foreground",children:r("thread.sessionInfo.empty")});return s.jsxs(gn,{modal:!1,open:a,onOpenChange:o,children:[s.jsx(vn,{asChild:!0,children:s.jsx(fe,{variant:"ghost",size:"icon","aria-label":r("thread.header.sessionInfo"),className:j("host-no-drag h-8 w-8 rounded-full text-muted-foreground/85","hover:bg-accent/40 hover:text-foreground"),children:s.jsx(sA,{className:"h-4 w-4 stroke-[1.75]"})})}),s.jsx(ln,{align:"end",sideOffset:8,className:"w-[min(23rem,calc(100vw-1.5rem))] rounded-[24px] p-0",children:s.jsxs("div",{className:"space-y-3 px-4 py-3.5",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"text-[12px] font-normal text-muted-foreground/75",children:r("thread.sessionInfo.title")}),s.jsx("div",{className:"mt-0.5 truncate text-[14px] font-medium text-foreground",children:n||r("thread.sessionInfo.untitled")})]}),s.jsx("div",{className:"h-px bg-border/45"}),s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx(Kj,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground/80"}),s.jsx("span",{className:"truncate text-[13px] font-medium text-foreground",children:r("thread.sessionInfo.automations")})]}),s.jsx("span",{className:"rounded-full bg-muted/70 px-2 py-0.5 text-[11px] text-muted-foreground",children:r("thread.sessionInfo.count",{count:i.length})})]}),p]})})]})}function Z4({job:e,now:t}){const{t:n}=ie("common"),r=eO(e,n),a=tO(e,n,t),o=e.enabled?e.state.last_status==="error"?"bg-destructive":"bg-emerald-500":"bg-muted-foreground/35";return s.jsx("div",{className:"rounded-[16px] px-3 py-2.5 transition-colors hover:bg-muted/40",children:s.jsxs("div",{className:"flex items-start gap-2.5",children:[s.jsx("span",{className:j("mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full",o)}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx("span",{className:"truncate text-[13px] font-medium text-foreground",children:e.name}),e.enabled?null:s.jsx("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10.5px] text-muted-foreground",children:n("thread.sessionInfo.disabled")})]}),s.jsx("div",{className:"mt-1 line-clamp-2 text-[12px] leading-snug text-muted-foreground",children:e.payload.message}),s.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-[11.5px] text-muted-foreground/80",children:[s.jsx("span",{children:r}),s.jsx("span",{"aria-hidden":!0,children:"·"}),s.jsx("span",{title:a.title,children:a.label})]})]})]})})}function eO(e,t){const n=ys();return e.schedule.kind==="at"&&e.schedule.at_ms?t("thread.sessionInfo.schedule.at",{time:$r(e.schedule.at_ms,n)}):e.schedule.kind==="every"&&e.schedule.every_ms?t("thread.sessionInfo.schedule.every",{duration:rO(e.schedule.every_ms,n)}):e.schedule.kind==="cron"&&e.schedule.expr?e.schedule.tz?t("thread.sessionInfo.schedule.cronWithTz",{expr:e.schedule.expr,tz:e.schedule.tz}):t("thread.sessionInfo.schedule.cron",{expr:e.schedule.expr}):t("thread.sessionInfo.schedule.unknown")}function tO(e,t,n){const r=ys();if(!e.enabled)return{label:t("thread.sessionInfo.next.disabled"),title:""};if(e.state.pending)return{label:t("thread.sessionInfo.next.pending"),title:""};const a=e.state.next_run_at_ms;return a?{label:t("thread.sessionInfo.next.label",{time:nO(a,n,r)}),title:$r(a,r)}:{label:t("thread.sessionInfo.next.none"),title:""}}function nO(e,t,n){let r=(e-t)/1e3;const a=new Intl.RelativeTimeFormat(n,{numeric:"auto"});for(const[o,i]of X4){if(Math.abs(r)=a&&e%a===0)return new Intl.NumberFormat(t,{style:"unit",unit:r,unitDisplay:"long",maximumFractionDigits:0}).format(e/a);return new Intl.NumberFormat(t,{style:"unit",unit:"minute",unitDisplay:"long",maximumFractionDigits:1}).format(e/6e4)}const cC=()=>Dl(()=>import("./MarkdownTextRenderer-Cg7UrKJ7.js"),__vite__mapDeps([4,1,0,2,3])),aO=u.lazy(cC),oO=u.memo(function({source:t,className:n,highlightCode:r,onOpenFilePreview:a}){return s.jsx(aO,{className:n,highlightCode:r,onOpenFilePreview:a,children:t})}),sO=80,iO=140,lO=220,cO=16e3;class uO extends u.Component{constructor(){super(...arguments);He(this,"state",{failed:!1})}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function Lu(){cC()}function Du({children:e,className:t,streaming:n=!1,onOpenFilePreview:r}){const a=dO(e,n),o=n?a.length<=cO:a===e;u.useEffect(()=>{n&&Lu()},[n]);const i=s.jsx("div",{className:j("whitespace-pre-wrap break-words leading-relaxed text-foreground/92",t),children:a});return s.jsx(uO,{fallback:i,children:s.jsx(u.Suspense,{fallback:i,children:s.jsx(oO,{source:a,className:t,highlightCode:o,onOpenFilePreview:r})})})}function dO(e,t){const[n,r]=u.useState(e),a=u.useRef(e),o=u.useRef(e),i=u.useRef(null),l=u.useCallback(()=>{i.current!==null&&(window.clearTimeout(i.current),i.current=null)},[]),c=u.useCallback((p,m)=>{if(o.current!==p){if(o.current=p,m){r(p);return}u.startTransition(()=>r(p))}},[]),d=u.useCallback(()=>{i.current===null&&(i.current=window.setTimeout(()=>{i.current=null,c(a.current,!1)},pO(a.current.length)))},[c]);return a.current=e,u.useLayoutEffect(()=>{a.current=e,t||(l(),c(e,!0))},[l,c,e,t]),u.useEffect(()=>{a.current=e,t&&d()},[d,e,t]),u.useEffect(()=>l,[l]),n}function pO(e){return e>24e3?lO:e>8e3?iO:sO}function uC(e){return(e.display_name||e.name).split(/\s+/).filter(Boolean).slice(0,2).map(n=>{var r;return(r=n[0])==null?void 0:r.toUpperCase()}).join("")||e.name.slice(0,2).toUpperCase()}function dC(e){return(e.display_name||e.name).split(/\s+/).filter(Boolean).slice(0,2).map(n=>{var r;return(r=n[0])==null?void 0:r.toUpperCase()}).join("")||e.name.slice(0,2).toUpperCase()}function pC(e,t,n=[]){if(!e||t.length===0&&n.length===0)return e?[{kind:"text",text:e}]:[];const r=new Map(t.filter(d=>d.installed).map(d=>[d.name.toLowerCase(),d])),a=new Map(n.filter(d=>d.installed&&d.configured).map(d=>[d.name.toLowerCase(),d]));if(r.size===0&&a.size===0)return[{kind:"text",text:e}];const o=[],i=/(^|[\s([{])@([a-z0-9_-]+)\b/gi;let l=0,c;for(;(c=i.exec(e))!==null;){const d=c[1]??"",p=c[2]??"",m=p.toLowerCase(),f=r.get(m),h=f?null:a.get(m);if(!f&&!h)continue;const y=c.index+d.length,x=y+p.length+1;y>l&&o.push({kind:"text",text:e.slice(l,y)}),f?o.push({kind:"cli",text:e.slice(y,x),app:f}):h&&o.push({kind:"mcp",text:e.slice(y,x),preset:h}),l=x}return la.kind==="cli"||a.kind==="mcp")?s.jsx(s.Fragment,{children:r.map((a,o)=>a.kind==="text"?s.jsx("span",{children:a.text},`text-${o}`):a.kind==="cli"?s.jsx(mC,{app:a.app,label:a.text,variant:"message"},`cli-${a.app.name}-${o}`):s.jsx(fC,{preset:a.preset,label:a.text,variant:"message"},`mcp-${a.preset.name}-${o}`))}):s.jsx(s.Fragment,{children:e})}function mC({app:e,label:t,variant:n,isHero:r=!1}){const[a,o]=u.useState(0),i=e.brand_color||"hsl(var(--primary))",l=t.startsWith("@")?t.slice(1):t,d=u.useMemo(()=>oo(e.logo_url),[e.logo_url])[a],p=!!d,m=n==="composer"?"composer":"message";return u.useEffect(()=>o(0),[e.logo_url]),s.jsxs("span",{"data-testid":`${m}-cli-mention-${e.name}`,title:`CLI app: ${e.display_name||e.name}`,className:"relative inline transition-[color,text-shadow] duration-150",style:{color:i,textShadow:`0 0 10px ${hC(i,24)}`},children:[s.jsxs("span",{className:j("relative inline-block",p&&"text-transparent"),style:{lineHeight:"inherit"},children:["@",p?s.jsx("span",{"data-testid":`${m}-cli-mention-logo-${e.name}`,className:j("absolute left-1/2 top-1/2 grid place-items-center overflow-hidden rounded-[3px]","-translate-x-1/2 -translate-y-1/2",r?"h-[0.74em] w-[0.74em]":"h-[0.72em] w-[0.72em]"),children:s.jsx("img",{src:d??"",alt:"",className:"h-full w-full object-contain",onError:()=>o(f=>f+1)})}):null]}),l]})}function fC({preset:e,label:t,variant:n,isHero:r=!1}){const[a,o]=u.useState(0),i=e.brand_color||"hsl(var(--primary))",l=t.startsWith("@")?t.slice(1):t,d=u.useMemo(()=>oo(e.logo_url),[e.logo_url])[a],p=!!d,m=n==="composer"?"composer":"message";return u.useEffect(()=>o(0),[e.logo_url]),s.jsxs("span",{"data-testid":`${m}-mcp-mention-${e.name}`,title:`MCP server: ${e.display_name||e.name}`,className:"relative inline transition-[color,text-shadow] duration-150",style:{color:i,textShadow:`0 0 10px ${hC(i,24)}`},children:[s.jsxs("span",{className:j("relative inline-block",p&&"text-transparent"),style:{lineHeight:"inherit"},children:["@",p?s.jsx("span",{"data-testid":`${m}-mcp-mention-logo-${e.name}`,className:j("absolute left-1/2 top-1/2 grid place-items-center overflow-hidden rounded-[3px]","-translate-x-1/2 -translate-y-1/2",r?"h-[0.74em] w-[0.74em]":"h-[0.72em] w-[0.72em]"),children:s.jsx("img",{src:d??"",alt:"",className:"h-full w-full object-contain",onError:()=>o(f=>f+1)})}):null]}),l]})}function hC(e,t){if(/^#[0-9a-f]{6}$/i.test(e)){const n=Math.round(t/100*255).toString(16).padStart(2,"0");return`${e}${n}`}return`color-mix(in srgb, ${e} ${t}%, transparent)`}function fO({isHero:e,disabled:t,scope:n,defaultScope:r,controls:a,error:o,onChange:i}){const{t:l}=ie(),[c,d]=u.useState(!1),[p,m]=u.useState(""),[f,h]=u.useState(null),[y,x]=u.useState(!1),b=U5(n,r),v=b?b.project_name||Ri(b.project_path):l("thread.composer.workspace.projectPlaceholder"),g=e&&!!r&&!!i&&(a==null?void 0:a.can_change_project)!==!1,w=Ja(),k=!!w;u.useEffect(()=>{c&&(m((b==null?void 0:b.project_path)??""),h(null))},[b==null?void 0:b.project_path,c]),u.useEffect(()=>{o&&g&&d(!0)},[o,g]);const C=u.useCallback((S,A)=>{const E=n??r,_=S.trim();if(!(!E||!i)){if(!_||!$5(_)){h(l("workspace.dialog.absolutePathRequired"));return}i({...E,project_path:_,project_name:A||Ri(_),restrict_to_workspace:E.access_mode==="restricted"}),h(null),d(!1)}},[r,i,n,l]),N=u.useCallback(async()=>{if(!(!w||t)){x(!0);try{const S=await w.pickFolder();S&&C(S)}catch(S){h(S.message)}finally{x(!1)}}},[C,t,w]);return!g||!r||!i?null:k?s.jsxs("div",{className:"flex min-w-0 items-center rounded-b-[28px] border-t border-border/25 bg-muted/60 px-3 py-1.5 dark:bg-white/[0.055] sm:px-4",children:[s.jsxs("button",{type:"button",disabled:t||y,"aria-label":l("thread.composer.workspace.projectAria"),title:b==null?void 0:b.project_path,onClick:()=>void N(),className:j("inline-flex h-7 max-w-full items-center gap-2 rounded-full px-2.5 sm:max-w-[18rem]","text-[12px] font-medium text-muted-foreground/90 transition-colors","hover:bg-background/70 hover:text-foreground disabled:pointer-events-none disabled:opacity-55",b&&"text-foreground/82"),children:[s.jsx(Gl,{className:j("h-3.5 w-3.5 shrink-0",b&&"text-primary")}),s.jsx("span",{className:"truncate",children:v})]}),f||o?s.jsx("span",{role:"alert",className:"ml-2 min-w-0 truncate text-[11.5px] font-medium text-destructive",children:f??o}):null]}):s.jsx("div",{className:"flex min-w-0 items-center rounded-b-[28px] border-t border-border/25 bg-muted/60 px-3 py-1.5 dark:bg-white/[0.055] sm:px-4",children:s.jsxs(gn,{open:c,onOpenChange:d,children:[s.jsx(vn,{asChild:!0,children:s.jsxs("button",{type:"button",disabled:t,"aria-label":l("thread.composer.workspace.projectAria"),className:j("inline-flex h-7 max-w-full items-center gap-2 rounded-full px-2.5 sm:max-w-[18rem]","text-[12px] font-medium text-muted-foreground/90 transition-colors","hover:bg-background/70 hover:text-foreground disabled:pointer-events-none disabled:opacity-55",b&&"text-foreground/82"),children:[s.jsx(Gl,{className:j("h-3.5 w-3.5 shrink-0",b&&"text-primary")}),s.jsx("span",{className:"truncate",children:v}),s.jsx(yr,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]})}),s.jsxs(ln,{align:"start",side:"bottom",sideOffset:8,className:"w-[min(25rem,calc(100vw-2rem))] rounded-[22px]",children:[s.jsxs(gt,{onSelect:()=>C(r.project_path,r.project_name),className:"flex min-h-[48px] cursor-default gap-3 rounded-[16px] px-3 py-2.5 focus:bg-muted/55",children:[s.jsx("span",{className:"grid h-8 w-8 shrink-0 place-items-center rounded-[12px] bg-muted text-foreground/80",children:s.jsx(Gl,{className:"h-4 w-4"})}),s.jsxs("span",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"block truncate text-[13px] font-semibold text-foreground",children:l("workspace.dialog.defaultProject")}),s.jsx("span",{className:"block truncate text-[11.5px] text-muted-foreground",children:c1(r.project_path)})]}),b?null:s.jsx(Et,{className:"h-4 w-4 text-foreground/80"})]}),s.jsx("div",{className:"my-1 h-px bg-border/45"}),s.jsxs("div",{className:"space-y-1.5 px-1.5 py-1.5",onKeyDown:S=>{S.key!=="Escape"&&S.stopPropagation()},children:[s.jsxs("form",{className:"flex items-center gap-2",onSubmit:S=>{S.preventDefault(),C(p)},children:[s.jsx(Ye,{value:p,disabled:t,onChange:S=>{m(S.target.value),h(null)},placeholder:l("workspace.dialog.manualPlaceholder"),"aria-label":l("workspace.dialog.manual"),className:j("h-9 rounded-full border-border/55 bg-background/80 px-3 text-[12.5px]","focus-visible:ring-1 focus-visible:ring-foreground/10 focus-visible:ring-offset-0")}),s.jsx(fe,{type:"submit",disabled:t||!p.trim(),className:"h-9 shrink-0 rounded-full px-3 text-[12px]",children:l("workspace.dialog.usePath")})]}),f||o?s.jsx("p",{role:"alert",className:"px-1 text-[11.5px] font-medium text-destructive",children:f??o}):null]})]})]})})}function hO({scope:e,disabled:t,canUseFullAccess:n,isHero:r,onChange:a}){const{t:o}=ie(),i=e.access_mode,l=i==="full",c=d=>{d==="full"&&!n||d!==i&&(a==null||a(z5(e,d)))};return s.jsxs(gn,{children:[s.jsx(vn,{asChild:!0,disabled:t||!a,children:s.jsxs(fe,{type:"button",variant:"ghost","aria-label":o("thread.composer.workspace.accessAria"),className:j("max-w-[min(12.5rem,42vw)] rounded-[10px] border border-transparent font-semibold shadow-none",r?"h-8 px-2.5 text-[12px]":"h-9 px-3 text-[12.5px]",l?"bg-transparent text-orange-600 hover:bg-orange-500/8 dark:text-orange-300 dark:hover:bg-orange-400/10":"bg-transparent text-muted-foreground hover:bg-foreground/[0.045] hover:text-foreground dark:hover:bg-white/[0.06]"),children:[l?s.jsx(Wp,{className:j("mr-1.5 shrink-0","h-3.5 w-3.5")}):s.jsx(dg,{className:j("mr-1.5 shrink-0","h-3.5 w-3.5")}),s.jsx("span",{className:"truncate",children:o(l?"thread.composer.workspace.full":"thread.composer.workspace.default")}),s.jsx(yr,{className:j("ml-1.5 shrink-0","h-3 w-3")})]})}),s.jsxs(ln,{align:"start",className:"w-56",children:[s.jsx(Kv,{icon:s.jsx(dg,{className:"h-4 w-4"}),label:o("thread.composer.workspace.default"),selected:i==="restricted",onSelect:()=>c("restricted")}),s.jsx(Kv,{icon:s.jsx(Wp,{className:"h-4 w-4"}),label:o("thread.composer.workspace.full"),selected:i==="full",disabled:!n,warning:!0,onSelect:()=>c("full")})]})]})}function Kv({icon:e,label:t,selected:n,disabled:r,warning:a,onSelect:o}){return s.jsxs(gt,{disabled:r,onSelect:o,className:j("flex h-10 items-center gap-3 rounded-xl px-3 text-[13.5px] font-semibold",a&&"text-orange-600 focus:text-orange-600 dark:text-orange-300 dark:focus:text-orange-300"),children:[s.jsx("span",{className:"grid h-5 w-5 shrink-0 place-items-center text-current","aria-hidden":!0,children:e}),s.jsx("span",{className:"min-w-0 flex-1 truncate",children:t}),n?s.jsx(Et,{className:"h-4 w-4 shrink-0","aria-hidden":!0}):null]})}const gC=6*1024*1024,gO=2048,vO=.85,xO=new Set(["image/jpeg","image/webp"]),Vv=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function yO(e){if(e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e[4]===13&&e[5]===10&&e[6]===26&&e[7]===10)return"image/png";if(e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255)return"image/jpeg";if(e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70&&e[3]===56&&e[5]===97&&(e[4]===55||e[4]===57))return"image/gif";if(e.length>=12){const t=e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70,n=e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80;if(t&&n)return"image/webp"}return null}function vC(e){const t=new Uint8Array(e);let n="";const r=32768;for(let a=0;agC)return{error:"too_large_after_normalize"};const p=await d.arrayBuffer();return{dataUrl:`data:${n};base64,${vC(p)}`,mime:n,bytes:d.size}}catch{try{r.close()}catch{}return{error:"decode_failed"}}}async function xC(e){const{id:t,file:n}=e,r=n.size;let a;try{a=await n.arrayBuffer()}catch{return{id:t,ok:!1,reason:"io"}}const o=new Uint8Array(a.slice(0,12)),i=yO(o);if(!i)return{id:t,ok:!1,reason:"magic_mismatch"};if(!Vv.has(i))return{id:t,ok:!1,reason:"invalid_mime"};if(n.type&&Vv.has(n.type)&&n.type,r<=gC){const c=`data:${i};base64,${vC(a)}`;return{id:t,ok:!0,dataUrl:c,mime:i,bytes:r,origBytes:r,normalized:!1}}const l=await wO(n,i);return"error"in l?{id:t,ok:!1,reason:l.error}:{id:t,ok:!0,dataUrl:l.dataUrl,mime:l.mime,bytes:l.bytes,origBytes:r,normalized:!0}}typeof self<"u"&&typeof self.importScripts=="function"&&self.addEventListener("message",async e=>{const t=await xC(e.data);self.postMessage(t)});let cr=null,Gv=!1;const Eo=new Map;function kO(){if(Gv)return cr;if(Gv=!0,typeof Worker>"u")return null;try{return cr=new Worker(new URL("/assets/imageEncode.worker-Cs1P3eq4.js",import.meta.url),{type:"module"}),cr.addEventListener("message",e=>{const t=Eo.get(e.data.id);t&&(Eo.delete(e.data.id),t.resolve(e.data))}),cr.addEventListener("error",e=>{for(const[,t]of Eo)t.reject(new Error(`image encoder worker error: ${e.message}`));Eo.clear(),cr==null||cr.terminate(),cr=null}),cr}catch{return cr=null,null}}function CO(){return typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`img-${Date.now()}-${Math.random().toString(36).slice(2)}`}async function SO(e){const t=CO(),n=kO();return n?new Promise((r,a)=>{Eo.set(t,{resolve:r,reject:a});try{n.postMessage({id:t,file:e})}catch(o){Eo.delete(t),a(o instanceof Error?o:new Error(String(o)))}}):xC({id:t,file:e})}const Ko=4,Yv=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function yC(e){const t=/^data:([^;,]+)[;,]/.exec(e);return(t==null?void 0:t[1])||"image/png"}function NO(e,t){const n=yC(e),r=`image.${n.split("/")[1]||"png"}`;try{const[,a=""]=e.split(",",2),o=atob(a),i=new Uint8Array(o.length);for(let l=0;l{t(f=>{const h=f.map(y=>y.id===p?{...y,...m}:y);return n.current=h,h})},[]),a=u.useCallback(p=>{const m=[],f=[];let h=Ko-n.current.length;for(const y of p){if(!Yv.has(y.type)){m.push({file:y,reason:"unsupported_type"});continue}if(h<=0){m.push({file:y,reason:"too_many_images"});continue}h-=1,f.push({id:Qv(),file:y,previewUrl:URL.createObjectURL(y),status:"encoding"})}if(f.length>0){const y=[...n.current,...f];n.current=y,t(y);for(const x of f)queueMicrotask(()=>{SO(x.file).then(b=>{b.ok?r(x.id,{status:"ready",dataUrl:b.dataUrl,encodedBytes:b.bytes,normalized:b.normalized}):r(x.id,{status:"error",error:jO(b.reason)})},()=>{r(x.id,{status:"error",error:"decode_failed"})})})}return{rejected:m}},[r]),o=u.useCallback(p=>{let m=null;return t(f=>{const h=f.findIndex(v=>v.id===p);if(h===-1)return f;const y=f[h];try{URL.revokeObjectURL(y.previewUrl)}catch{}const x=[...f.slice(0,h),...f.slice(h+1)];n.current=x;const b=x[h]??x[h-1];return m=(b==null?void 0:b.id)??null,x}),{nextFocusId:m}},[]),i=u.useCallback(()=>{t(p=>{for(const m of p)try{URL.revokeObjectURL(m.previewUrl)}catch{}return n.current=[],[]})},[]),l=u.useCallback(p=>{const m=p.filter(f=>Yv.has(yC(f.dataUrl))).slice(0,Ko).map(f=>{const h=NO(f.dataUrl,f.name);return{id:Qv(),file:h,previewUrl:f.dataUrl,status:"ready",dataUrl:f.dataUrl,encodedBytes:h.size}});t(f=>{for(const h of f)try{URL.revokeObjectURL(h.previewUrl)}catch{}return n.current=m,m})},[]);u.useEffect(()=>()=>{for(const p of n.current)try{URL.revokeObjectURL(p.previewUrl)}catch{}},[]);const c=e.some(p=>p.status==="encoding"),d=e.length>=Ko;return{images:e,enqueue:a,remove:o,clear:i,restoreReadyImages:l,encoding:c,full:d}}function _O(e){const t=e.clipboardData??e.clipboardData;if(!t)return[];const n=[];for(const r of Array.from(t.items)){if(r.kind!=="file"||!r.type.startsWith("image/"))continue;const a=r.getAsFile();a&&n.push(a)}return n}function PO(e){const t=e.dataTransfer??e.dataTransfer;if(!t)return[];const n=[];for(const r of Array.from(t.files))r.type.startsWith("image/")&&n.push(r);return n}function TO(e){const[t,n]=u.useState(!1),r=u.useRef(0),a=u.useCallback(d=>{const p=_O(d);p.length!==0&&(d.preventDefault(),e(p))},[e]),o=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),r.current+=1,n(!0))},[]),i=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),d.dataTransfer.dropEffect="copy")},[]),l=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),r.current=Math.max(0,r.current-1),r.current===0&&n(!1))},[]),c=u.useCallback(d=>{r.current=0,n(!1);const p=PO(d);p.length!==0&&(d.preventDefault(),e(p))},[e]);return{isDragging:t,onPaste:a,onDragEnter:o,onDragOver:i,onDragLeave:l,onDrop:c}}const RO=12e4,MO=650,EO=1100,IO=140,LO=64,bC=3,Xv=7,DO=34,Vo=.018,Jv=Array.from({length:LO},()=>bC),OO=["audio/webm;codecs=opus","audio/webm","audio/mp4","audio/ogg;codecs=opus"];function FO({disabled:e,onClearError:t,onError:n,onTranscript:r,onTranscribeAudio:a}){const o=u.useRef(null),i=u.useRef([]),l=u.useRef(null),c=u.useRef(null),d=u.useRef(0),p=u.useRef(null),m=u.useRef(null),f=u.useRef(null),h=u.useRef(!1),y=u.useRef(!1),x=u.useRef(!1),b=u.useRef(!1),v=u.useRef(null),g=u.useRef(!1),w=u.useRef(!1),k=u.useRef(0),C=u.useRef(!1),N=u.useRef(!1),[S,A]=u.useState("idle"),[E,_]=u.useState(0),[R,T]=u.useState(Jv),F=u.useCallback(()=>xo(m),[]),z=u.useCallback(()=>xo(v),[]),K=u.useCallback(()=>{z(),b.current=!0,v.current=setTimeout(()=>{b.current=!1,v.current=null},500)},[z]),$=u.useCallback(()=>{const O=c.current;c.current=null,O&&(O.frame!==null&&cancelAnimationFrame(O.frame),O.source.disconnect(),O.analyser.disconnect(),O.context.close().catch(()=>{}))},[]),W=u.useCallback(O=>{const ne=UO();if(ne){$(),T(Jv);try{const he=new ne,ve=he.createMediaStreamSource(O),me=he.createAnalyser();me.fftSize=256,me.smoothingTimeConstant=.68,ve.connect(me);const ee={analyser:me,context:he,data:new Uint8Array(me.fftSize),frame:null,source:ve},we=()=>{const je=c.current;if(!je)return;if(je.context.state!=="running"){je.context.resume().catch(()=>{}),je.frame=requestAnimationFrame(we);return}je.analyser.getByteTimeDomainData(je.data);const xe=BO(je.data);C.current=!0,w.current=!0,k.current=Math.max(k.current,xe),xe>=Vo&&(F(),N.current&&(N.current=!1,t())),T(Ee=>[...Ee.slice(1),HO(xe)]),je.frame=requestAnimationFrame(we)};c.current=ee,he.resume().catch(()=>{}),ee.frame=requestAnimationFrame(we)}catch{$()}}},[F,t,$]),P=u.useCallback(()=>{var O;xo(f),F(),xo(p),$(),(O=l.current)==null||O.getTracks().forEach(ne=>ne.stop()),l.current=null,o.current=null,y.current=!1,g.current=!1,N.current=!1},[F,$]),D=u.useCallback(()=>{const O=o.current;!O||O.state==="inactive"||O.stop()},[]),G=u.useCallback(()=>{const O=o.current;O&&O.state!=="inactive"?D():y.current&&(x.current=!0)},[D]),Y=u.useCallback(async()=>{var O;if(!(!a||S!=="idle"||y.current)){if(!((O=navigator.mediaDevices)!=null&&O.getUserMedia)||typeof MediaRecorder>"u"){n("unsupported");return}y.current=!0;try{const ne=await navigator.mediaDevices.getUserMedia({audio:!0}),he=new MediaRecorder(ne,zO());i.current=[],l.current=ne,o.current=he,d.current=Date.now(),w.current=!1,k.current=0,C.current=!1,N.current=!1,_(0),W(ne),he.ondataavailable=ve=>{ve.data.size>0&&i.current.push(ve.data)},he.onstop=()=>{const ve=i.current.splice(0),me=Math.max(0,Date.now()-d.current),ee=he.mimeType||"audio/webm",we=C.current&&w.current&&k.currenta(je,{durationMs:me})).then(r).catch(je=>n(qO(je))).finally(()=>A("idle"))},he.start(),A("recording"),t(),p.current=setTimeout(D,RO),m.current=setTimeout(()=>{var me;!(((me=o.current)==null?void 0:me.state)==="recording")||!C.current||!w.current||k.current>=Vo||(N.current=!0,n("noInput"))},EO)}catch{P(),A("idle"),n("permission")}}},[P,t,n,a,r,W,S,D]),oe=u.useCallback(()=>{x.current=!1,Y().then(()=>{x.current&&(x.current=!1,D())})},[Y,D]),de=u.useCallback(O=>{if(!(O.pointerType==="mouse"&&O.button!==0)&&!(!a||e||S!=="idle")){xo(f);try{O.currentTarget.setPointerCapture(O.pointerId)}catch{}f.current=setTimeout(()=>{f.current=null,h.current=!0,K(),oe()},IO)}},[e,a,oe,S,K]),pe=u.useCallback(()=>{const O=h.current;xo(f),O&&(h.current=!1,K(),G())},[G,K]),le=u.useCallback(()=>{if(b.current){z(),b.current=!1;return}S==="recording"?D():Y()},[z,Y,S,D]),I=u.useCallback(()=>{!a||e||S!=="idle"||g.current||(g.current=!0,oe())},[e,a,oe,S]),Q=u.useCallback(()=>{g.current&&(g.current=!1,G())},[G]);return u.useEffect(()=>{if(S!=="recording"){_(0);return}const O=()=>{_(Math.max(0,Date.now()-d.current))};O();const ne=window.setInterval(O,250);return()=>window.clearInterval(ne)},[S]),u.useEffect(()=>P,[P]),u.useEffect(()=>()=>z(),[z]),{beginShortcutHold:I,beginPress:de,buttonDisabled:e||S==="transcribing",elapsedLabel:$O(E),endShortcutHold:Q,endPress:pe,handleClick:le,isRecording:S==="recording",levels:R,state:S}}function xo(e){e.current!==null&&(clearTimeout(e.current),e.current=null)}function zO(){if(typeof MediaRecorder>"u")return;const e=OO.find(t=>MediaRecorder.isTypeSupported(t));return e?{mimeType:e}:void 0}function $O(e){const t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function UO(){if(!(typeof window>"u"))return window.AudioContext??window.webkitAudioContext}function BO(e){if(e.length===0)return 0;let t=0;for(let r=0;r{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?t(r.result):n(new Error("invalid_data_url"))},r.onerror=()=>n(r.error??new Error("read_failed")),r.readAsDataURL(e)})}function qO(e){const t=e instanceof Error?e.message:"";return t==="not_configured"?"notConfigured":t==="duration"?"tooLong":"failed"}const KO="image/png,image/jpeg,image/webp,image/gif",VO=".md,.txt,text/markdown,text/plain",Hc=6,Zv=2e5,wC="KeyD",GO="Control+Shift+D";function Jl(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function YO(e){return e.code===wC&&e.ctrlKey&&e.shiftKey&&!e.altKey&&!e.metaKey}function QO(e){return e.code===wC||e.key==="Control"||e.key==="Shift"}function XO(){if(typeof navigator>"u")return"other";const e=navigator.userAgentData,t=[e==null?void 0:e.platform,navigator.platform,navigator.userAgent].filter(Boolean).join(" ").toLowerCase();return navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1||/mac|iphone|ipad|ipod/.test(t)?"apple":/win/.test(t)?"windows":/cros/.test(t)?"chromeos":/linux|x11|android/.test(t)?"linux":"other"}function JO(){switch(XO()){case"apple":return"⌃⇧D";case"chromeos":case"linux":case"windows":case"other":return"Ctrl ⇧ D"}}const ZO={activity:Gb,"book-open":Bp,brain:Ga,"circle-help":ff,history:oA,"rotate-cw":hA,shield:vA,sparkles:$o,square:Hp,"square-pen":xf,"undo-2":wA},ex=8,tx=288,eF=144,kC=12,CC="nanobot.webui.slashCommandRecents",Zf=5,tF="nanobot.webui.composerQueuedGuidance.v1:",SC=20,NC=4e3;function nF({ariaLabel:e,className:t,elapsedLabel:n,isHero:r,levels:a}){return s.jsxs("div",{className:j("flex min-w-0 items-center gap-2 text-neutral-700 dark:text-white",r?"h-8":"h-9",t),"aria-live":"polite","aria-label":e,children:[s.jsx("span",{className:"flex h-5 min-w-0 flex-1 items-center justify-between overflow-hidden","aria-hidden":!0,children:a.map((o,i)=>s.jsx("span",{className:"w-[2px] rounded-full bg-current opacity-85 transition-[height] duration-75 ease-linear motion-reduce:transition-none",style:{height:o}},i))}),s.jsx("span",{className:"min-w-[2.1rem] text-right text-[12px] font-medium tabular-nums text-muted-foreground",children:n})]})}function gm(e){return e.replace(/^\//,"").replace(/-/g,"_")}function rF(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(CC),t=e?JSON.parse(e):[];return Array.isArray(t)?t.filter(n=>typeof n=="string").slice(0,Zf):[]}catch{return[]}}function aF(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CC,JSON.stringify(e.slice(0,Zf)))}catch{}}function oF(e){const t=e==null?void 0:e.trim();return t?`${tF}${t}`:null}function sF(e,t){if(!e||typeof e!="object")return null;const n=e;if(typeof n.text!="string")return null;const r=n.text.trim().slice(0,NC),a=Array.isArray(n.images)?n.images.flatMap(i=>{if(!i||typeof i!="object")return[];const l=i;return typeof l.dataUrl!="string"||!l.dataUrl.startsWith("data:image/")?[]:[{dataUrl:l.dataUrl,...typeof l.name=="string"&&l.name.trim()?{name:l.name.trim()}:{}}]}).slice(0,Ko):[];return!r&&a.length===0?null:{id:typeof n.id=="string"&&n.id.trim()?n.id:`queued-prompt-restored-${t}`,text:r,...a.length>0?{images:a}:{}}}function iF(e){if(typeof window>"u")return[];try{const t=window.localStorage.getItem(e),n=t?JSON.parse(t):[];return Array.isArray(n)?n.map((r,a)=>sF(r,a)).filter(r=>r!=null).slice(0,SC):[]}catch{return[]}}function lF(e,t){if(!(typeof window>"u"))try{if(t.length===0){window.localStorage.removeItem(e);return}window.localStorage.setItem(e,JSON.stringify(t.slice(0,SC).map(n=>{var r;return{id:n.id,text:n.text.slice(0,NC),...(r=n.images)!=null&&r.length?{images:n.images.slice(0,Ko)}:{}}})))}catch{}}function cF(e){return e.map(t=>({dataUrl:t.dataUrl,name:t.file.name}))}function nx(e){if(e!=null&&e.length)return e.map(t=>({media:{data_url:t.dataUrl,...t.name?{name:t.name}:{}},preview:{url:t.dataUrl,...t.name?{name:t.name}:{}}}))}function uF(e){var n;const t=e.text.trim();return t||((n=e.images)==null?void 0:n.map(r=>r.name).filter(Boolean).join(", "))||"Image attachment"}function dF(e){return e.name.toLowerCase().endsWith(".md")||e.type==="text/markdown"?"text/markdown":"text/plain"}async function pF(e){if(e.length>Hc)return{ok:!1,error:`最多添加 ${Hc} 个文本附件。`};const t=[];for(const n of e){const r=await n.text();if(r.length>Zv)return{ok:!1,error:`${n.name} 过大,请控制在 ${Math.round(Zv/1e3)}KB 文本以内。`};t.push({id:`${n.name}-${n.size}-${n.lastModified}`,file:n,content:r,kind:dF(n)})}return{ok:!0,attachments:t}}function mF(e){if(typeof document>"u"||typeof e.setDragImage!="function")return;const t=document.createElement("div");t.style.position="fixed",t.style.left="-9999px",t.style.top="-9999px",t.style.width="1px",t.style.height="1px",t.style.opacity="0",document.body.appendChild(t);try{e.setDragImage(t,0,0)}catch{t.remove();return}window.setTimeout(()=>t.remove(),0)}function jC(){const e=window.visualViewport;if(!e)return{top:0,bottom:window.innerHeight,height:window.innerHeight};const t=Math.max(0,e.offsetTop),n=Math.max(0,e.height);return{top:t,bottom:t+n,height:n}}function fF(e){const t=jC();let n=t.top,r=t.bottom,a=e.parentElement;for(;a;){const o=window.getComputedStyle(a);if(/(auto|scroll|hidden|clip)/.test(o.overflowY)){const i=a.getBoundingClientRect();n=Math.max(n,i.top),r=Math.min(r,i.bottom)}a=a.parentElement}return{top:n,bottom:r}}function hF(e,t){var a,o;if(!(e!=null&&e.active))return null;const n=(a=e.ui_summary)==null?void 0:a.trim();if(n)return n;const r=(o=e.objective)==null?void 0:o.trim();return r?r.length>72?`${r.slice(0,72)}…`:r:t("thread.composer.goalStateFallback")}const gF=20,vF=10,xF=112,yF=.62;function bF(e){const t=jC(),n=e-t.top-gF-vF;return Math.min(Math.max(n,xF),Math.floor(t.height*yF))}function wF(e,t){const n=e.trim(),r=t.trim();return n&&r?`${n} - ---- - -${r}`:r||n}function kF(e){return{name:e.name,display_name:e.display_name,category:e.category,entry_point:e.entry_point,logo_url:e.logo_url??null,brand_color:e.brand_color??null}}function CF(e){return{name:e.name,display_name:e.display_name,category:e.category,transport:e.transport,status:e.status,configured:e.configured,logo_url:e.logo_url??null,brand_color:e.brand_color??null}}function SF(){return s.jsxs("span",{className:"run-pulse-icon relative flex h-4 w-4 shrink-0 items-center justify-center","aria-hidden":!0,children:[s.jsx("span",{className:"run-pulse-icon__ring"}),s.jsx("span",{className:"run-pulse-icon__dot"})]})}function NF({startedAt:e,goalState:t}){var Y,oe;const{t:n}=ie(),[r,a]=u.useState(!1),o=e!=null,i=hF(t,n),l=!!(i!=null&&i.trim()),c=o||l,[d,p]=u.useState(c),[m,f]=u.useState(!1),[,h]=u.useState(0),y=u.useRef(null),x=u.useRef(null),b=u.useRef(null),v=u.useRef(null),[g,w]=u.useState(280);c&&(v.current={startedAt:e,goalState:t,stripLabel:i}),u.useEffect(()=>{if(c){p(!0),f(!1);return}if(a(!1),!d)return;f(!0);const de=window.setTimeout(()=>{p(!1),f(!1)},180);return()=>window.clearTimeout(de)},[c,d]),u.useEffect(()=>{if(e==null)return;const de=window.setInterval(()=>h(pe=>pe+1),1e3);return()=>window.clearInterval(de)},[e]);const k=c?{startedAt:e,goalState:t,stripLabel:i}:v.current,C=(k==null?void 0:k.startedAt)??null,N=k==null?void 0:k.goalState,S=(k==null?void 0:k.stripLabel)??null,A=C!=null,E=!!(S!=null&&S.trim()),_=((Y=N==null?void 0:N.objective)==null?void 0:Y.trim())??"",R=((oe=N==null?void 0:N.ui_summary)==null?void 0:oe.trim())??"",T=!!(c&&(N!=null&&N.active)&&(_||R)),F=_||R?wF(R,_):"";if(u.useLayoutEffect(()=>{if(!r)return;function de(){const I=y.current;if(!I)return;const Q=I.getBoundingClientRect().top;w(bF(Q))}de(),Lu();const pe=typeof ResizeObserver<"u"?new ResizeObserver(()=>de()):null;y.current&&pe&&pe.observe(y.current);const le=window.visualViewport;return le==null||le.addEventListener("resize",de),le==null||le.addEventListener("scroll",de),window.addEventListener("resize",de),window.addEventListener("scroll",de,!0),()=>{pe==null||pe.disconnect(),le==null||le.removeEventListener("resize",de),le==null||le.removeEventListener("scroll",de),window.removeEventListener("resize",de),window.removeEventListener("scroll",de,!0)}},[r]),u.useEffect(()=>{if(!r)return;function de(le){var Q,O;const I=le.target;I&&((Q=x.current)!=null&&Q.contains(I)||(O=b.current)!=null&&O.contains(I)||a(!1))}function pe(le){le.key==="Escape"&&a(!1)}return window.addEventListener("mousedown",de),window.addEventListener("keydown",pe),()=>{window.removeEventListener("mousedown",de),window.removeEventListener("keydown",pe)}},[r]),!d||!k)return null;const z=C!=null?Math.max(0,Math.floor(Date.now()/1e3-C)):0,K=Math.floor(z/60),$=z%60,W=K>0?`${K}:${$.toString().padStart(2,"0")}`:`${$}s`,P=A?n("thread.composer.runRuntimeTitle",{elapsed:W}):null,G=[P,E?S:null].filter(Boolean).join(" · ");return s.jsxs("div",{ref:y,className:"composer-status-strip relative z-30","data-state":m?"exit":"enter",children:[r&&T&&F?s.jsxs("div",{ref:x,id:"nanobot-goal-panel-root",role:"dialog","aria-modal":"false","aria-labelledby":"nanobot-goal-panel-title",tabIndex:-1,className:j("absolute bottom-[calc(100%+8px)] left-3 right-3 z-[50] flex max-w-none flex-col overflow-hidden","rounded-2xl border border-black/[0.08] bg-card shadow-[0_12px_40px_rgba(15,23,42,0.14)]","backdrop-blur-sm dark:border-white/[0.1] dark:shadow-[0_16px_48px_rgba(0,0,0,0.45)]"),style:{maxHeight:`${Math.round(g)}px`},children:[s.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-2 border-b border-black/[0.06] px-3 py-2 dark:border-white/[0.08]",children:[s.jsx("h2",{id:"nanobot-goal-panel-title",className:"min-w-0 truncate text-[13px] font-semibold tracking-tight text-foreground",children:n("thread.composer.goalStateSheetTitle")}),s.jsx("button",{type:"button",className:j("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full","text-muted-foreground transition-colors hover:bg-muted/65 hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"aria-label":n("thread.composer.goalStateCloseAria"),onClick:()=>a(!1),children:s.jsx(xr,{className:"h-4 w-4","aria-hidden":!0})})]}),s.jsx("div",{id:"nanobot-goal-panel-scroll",className:"min-h-0 flex-1 overflow-y-auto scrollbar-thin px-3 pb-3 pt-2",children:s.jsx(Du,{className:"max-w-none text-[13.5px] leading-relaxed text-foreground/90",children:F})})]}):null,s.jsxs("div",{className:"flex min-h-[36px] items-center gap-2 border-b border-black/[0.04] px-3 py-2 dark:border-white/[0.06]",role:"status","aria-label":G,children:[A?s.jsx(SF,{}):s.jsx(yA,{className:"h-4 w-4 shrink-0 text-primary/75","aria-hidden":!0}),s.jsxs("span",{className:"flex min-w-0 flex-1 items-center gap-1.5 text-[12px] font-medium text-foreground/75",children:[P?s.jsx("span",{className:"shrink-0",children:P}):null,P&&E?s.jsx("span",{className:"shrink-0 text-muted-foreground/45","aria-hidden":!0,children:"·"}):null,E?s.jsx("span",{className:"truncate",children:n("thread.composer.goalStateStrip",{label:S})}):null]}),T?s.jsx("button",{ref:b,type:"button",className:j("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full","text-muted-foreground transition-colors hover:bg-muted/55 hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"aria-expanded":r,"aria-controls":r?"nanobot-goal-panel-root":void 0,"aria-label":n("thread.composer.goalStateExpandAria"),title:n("thread.composer.goalStateExpandAria"),onClick:()=>a(de=>!de),children:r?s.jsx(yr,{className:"h-4 w-4","aria-hidden":!0}):s.jsx(Vj,{className:"h-4 w-4","aria-hidden":!0})}):null]})]})}function rx({onSend:e,disabled:t,placeholder:n,isStreaming:r=!1,modelLabel:a=null,modelProvider:o=null,modelProviderLabel:i=null,modelNeedsSetup:l=!1,onModelBadgeClick:c,variant:d="thread",slashCommands:p=[],cliApps:m=[],mcpPresets:f=[],onStop:h,onTranscribeAudio:y,runStartedAt:x=null,goalState:b,workspaceScope:v=null,workspaceDefaultScope:g=null,workspaceControls:w=null,workspaceScopeDisabled:k=!1,workspaceError:C=null,onWorkspaceScopeChange:N,pendingQueueKey:S=null}){const{t:A}=ie(),[E,_]=u.useState(""),[R,T]=u.useState(null),[F,z]=u.useState(!1),[K,$]=u.useState(0),[W,P]=u.useState(!1),[D,G]=u.useState(0),[Y,oe]=u.useState(0),[de,pe]=u.useState(()=>rF()),[le,I]=u.useState([]),Q=u.useRef(null),O=u.useRef(null),ne=u.useRef(null),he=u.useRef(null),ve=u.useRef(new Map),me=u.useRef(0),ee=u.useRef(null),we=u.useRef(S),je=u.useRef(r),xe=u.useRef(!1),Ee=u.useRef(!1),$e=u.useRef(!1),[Se,Fe]=u.useState([]),B=d==="hero",X=u.useMemo(JO,[]),J=u.useMemo(()=>oF(S),[S]),ye=B&&!!g&&!!N&&(w==null?void 0:w.can_change_project)!==!1;u.useEffect(()=>{Ee.current=!0,I(J?iF(J):[])},[J]),u.useEffect(()=>{if(J){if(Ee.current){Ee.current=!1;return}lF(J,le)}},[J,le]);const Ie=r?A("thread.composer.placeholderStreaming"):n??A("thread.composer.placeholderThread"),{images:Ne,enqueue:Je,remove:ue,clear:Be,restoreReadyImages:ze,encoding:We,full:nr}=AO(),xn=u.useCallback(L=>{const U=`thread.composer.imageRejected.${L}`;return A(U,{max:Ko})},[A]),Qe=u.useCallback(L=>{if(L.length===0)return;const{rejected:U}=Je(L);U.length>0?T(xn(U[0].reason)):T(null)},[Je,xn]),{isDragging:yn,onPaste:rr,onDragEnter:cn,onDragOver:zt,onDragLeave:jt,onDrop:Vr}=TO(Qe);u.useEffect(()=>{if(t)return;const L=Q.current;if(!L)return;const U=requestAnimationFrame(()=>L.focus());return()=>cancelAnimationFrame(U)},[t]);const kt=u.useMemo(()=>Ne.filter(L=>L.status==="ready"&&typeof L.dataUrl=="string"),[Ne]),ar=Ne.some(L=>L.status==="error"),Cr=E.trim().length>0||kt.length>0||Se.length>0,Hn=!t&&!l&&!We&&!ar&&Cr,bn=!!(l&&c&&!t),or=r&&!t&&!l&&!We&&!ar&&Se.length===0&&Cr&&!E.trimStart().startsWith("/"),Ze=u.useMemo(()=>{if(t||F||!E.startsWith("/"))return null;const L=E.slice(1);return/\s/.test(L)?null:L.toLowerCase()},[t,F,E]),Sr=u.useMemo(()=>{const L=p.filter(Z=>Z.command!=="/stop");return r&&h?[p.find(Z=>Z.command==="/stop")??{command:"/stop",title:"Stop current task",description:"Cancel the active agent turn for this chat.",icon:"square"},...L]:L},[r,h,p]),et=u.useMemo(()=>Ze===null?[]:Sr.filter(U=>{const Z=gm(U.command),Ce=A(`thread.composer.slash.commands.${Z}.title`,{defaultValue:U.title}),Ke=A(`thread.composer.slash.commands.${Z}.description`,{defaultValue:U.description});return[U.command,U.title,U.description,U.argHint??"",Ce,Ke].join(" ").toLowerCase().includes(Ze)}).map(U=>{const Z=gm(U.command);let Ke=A(`thread.composer.slash.commands.${Z}.description`,{defaultValue:U.description}),rt;return U.command==="/model"&&a?(Ke=a,rt=A("thread.composer.slash.badges.current")):U.command==="/goal"?Ke=b!=null&&b.active?A("thread.composer.slash.details.goalActive"):A("thread.composer.slash.details.goalReady"):U.command==="/stop"&&r?Ke=A("thread.composer.slash.details.stopRunning"):U.command==="/history"&&(Ke=A("thread.composer.slash.details.history")),{...U,detail:Ke,badge:rt,recent:de.includes(U.command)}}).sort((U,Z)=>{if(r){if(U.command==="/stop")return-1;if(Z.command==="/stop")return 1}if(Ze!=="")return 0;const Ce=de.indexOf(U.command),Ke=de.indexOf(Z.command);return Ce!==-1||Ke!==-1?Ce===-1?1:Ke===-1?-1:Ce-Ke:0}).slice(0,8),[b==null?void 0:b.active,r,a,de,Ze,A,Sr]),$t=et.length>0,nt=u.useMemo(()=>{if(t||W)return null;const L=Math.min(Math.max(Y,0),E.length),U=E.slice(0,L),Z=/(?:^|\s)@([a-z0-9_-]*)$/i.exec(U);if(!Z)return null;const Ce=Z[1].toLowerCase();return{query:Ce,start:L-Ce.length-1,end:L}},[W,Y,t,E]),At=u.useMemo(()=>{if(!nt)return[];const L=m.filter(Z=>Z.installed).filter(Z=>[Z.name,Z.display_name,Z.category,Z.description,Z.entry_point].join(" ").toLowerCase().includes(nt.query)).map(Z=>({kind:"cli",name:Z.name,app:Z})),U=f.filter(Z=>Z.installed&&Z.configured).filter(Z=>[Z.name,Z.display_name,Z.category,Z.description,Z.transport].join(" ").toLowerCase().includes(nt.query)).map(Z=>({kind:"mcp",name:Z.name,preset:Z}));return[...L,...U].slice(0,8)},[nt,m,f]),In=At.length>0,wn=$t||In,un=u.useMemo(()=>pC(E,m,f),[m,f,E]),Wn=un.some(L=>L.kind==="cli"||L.kind==="mcp"),sr=u.useMemo(()=>{const L=new Set;return un.flatMap(U=>U.kind!=="cli"||L.has(U.app.name)?[]:(L.add(U.app.name),[U.app]))},[un]),Gr=u.useMemo(()=>{const L=new Set;return un.flatMap(U=>U.kind!=="mcp"||L.has(U.preset.name)?[]:(L.add(U.preset.name),[U.preset]))},[un]),[Nr,en]=u.useState({placement:"above",maxHeight:tx});u.useEffect(()=>{$(0)},[Ze]),u.useEffect(()=>{G(0)},[nt==null?void 0:nt.query]),u.useEffect(()=>{K>=et.length&&$(0)},[et.length,K]),u.useEffect(()=>{D>=At.length&&G(0)},[At.length,D]),u.useEffect(()=>{if(!wn)return;const L=U=>{var Ce;const Z=U.target;Z instanceof Node&&((Ce=O.current)!=null&&Ce.contains(Z))||(z(!0),P(!0))};return document.addEventListener("pointerdown",L,!0),()=>{document.removeEventListener("pointerdown",L,!0)}},[wn]),u.useLayoutEffect(()=>{if(!wn)return;const L=()=>{const Z=O.current;if(!Z)return;const Ce=Z.getBoundingClientRect();if(Ce.width===0&&Ce.height===0)return;const Ke=fF(Z),rt=Math.max(0,Ce.top-Ke.top-ex),Ln=Math.max(0,Ke.bottom-Ce.bottom-ex),qn=rt>=eF||rt>=Ln?"above":"below",Sn=Math.min(tx,qn==="above"?rt:Ln);en(Ns=>Ns.placement===qn&&Ns.maxHeight===Sn?Ns:{placement:qn,maxHeight:Sn})};L();const U=window.visualViewport;return U==null||U.addEventListener("resize",L),U==null||U.addEventListener("scroll",L),window.addEventListener("resize",L),document.addEventListener("scroll",L,!0),()=>{U==null||U.removeEventListener("resize",L),U==null||U.removeEventListener("scroll",L),window.removeEventListener("resize",L),document.removeEventListener("scroll",L,!0)}},[At.length,et.length,wn]);const be=u.useCallback(()=>{requestAnimationFrame(()=>{const L=Q.current;L&&(L.style.height="auto",L.style.height=`${Math.min(L.scrollHeight,260)}px`,L.focus())})},[]);u.useLayoutEffect(()=>{we.current!==S&&(we.current=S,_(""),Fe([]),T(null),z(!1),P(!1),oe(0),Be(),requestAnimationFrame(()=>{const L=Q.current;L&&(L.style.height="auto",L.style.height=`${Math.min(L.scrollHeight,260)}px`)}))},[Be,S]);const Ae=u.useCallback(L=>{const U=L.trim();U&&(_(Z=>{if(!Z.trim())return U;const Ce=/[\s\n]$/.test(Z)?"":" ";return`${Z}${Ce}${U}`}),z(!1),P(!1),T(null),be())},[be]),mt=u.useCallback(()=>T(null),[]),Vt=u.useCallback(L=>{T(A(`thread.composer.voiceErrors.${L}`))},[A]),Me=FO({disabled:t,onClearError:mt,onError:Vt,onTranscript:Ae,onTranscribeAudio:y});u.useEffect(()=>{if(!y)return;function L(Ce){!YO(Ce)||Ce.repeat||$e.current||(Ce.preventDefault(),$e.current=!0,Me.beginShortcutHold())}function U(Ce){!$e.current||!QO(Ce)||(Ce.preventDefault(),$e.current=!1,Me.endShortcutHold())}function Z(){$e.current&&($e.current=!1,Me.endShortcutHold())}return window.addEventListener("keydown",L),window.addEventListener("keyup",U),window.addEventListener("blur",Z),()=>{window.removeEventListener("keydown",L),window.removeEventListener("keyup",U),window.removeEventListener("blur",Z)}},[y,Me.beginShortcutHold,Me.endShortcutHold]);const yt=u.useCallback(L=>{if(L.command==="/stop"&&r&&h){h(),_(""),z(!0),P(!1),T(null),be();return}const U=[L.command,...de.filter(Z=>Z!==L.command)].slice(0,Zf);pe(U),aF(U),_(L.argHint?`${L.command} `:L.command),z(!0),P(!1),T(null),be()},[r,h,de,be]),tn=u.useCallback(L=>{if(!nt)return;const U=E.slice(nt.end),Z=`@${L.name}${U.startsWith(" ")?"":" "}`,Ce=`${E.slice(0,nt.start)}${Z}${U}`,Ke=nt.start+Z.length;_(Ce),oe(Ke),P(!0),z(!1),T(null),be(),requestAnimationFrame(()=>{const rt=Q.current;rt&&(rt.focus(),rt.setSelectionRange(Ke,Ke))})},[nt,be,E]),Gt=u.useCallback(()=>{_(""),T(null),z(!1),P(!1),oe(0),be()},[be]),It=u.useCallback(()=>{const L=E.trim();if(!or||!L&&kt.length===0)return;const U=cF(kt);me.current+=1,I(Z=>[...Z,{id:`queued-prompt-${Date.now()}-${me.current}`,text:L,...U.length>0?{images:U}:{}}]),Be(),Gt()},[or,Be,Gt,kt,E]),ft=u.useCallback(L=>{I(U=>U.filter(Z=>Z.id!==L)),requestAnimationFrame(()=>{var U;return(U=Q.current)==null?void 0:U.focus()})},[]),Ct=u.useCallback(L=>{var U;I(Z=>Z.filter(Ce=>Ce.id!==L.id)),_(L.text),T(null),z(!1),P(!1),oe(L.text.length),(U=L.images)!=null&&U.length?ze(L.images):Be(),be(),requestAnimationFrame(()=>{const Z=Q.current;Z&&(Z.focus(),Z.setSelectionRange(L.text.length,L.text.length))})},[Be,be,ze]),Lt=u.useCallback((L,U)=>{L!==U&&I(Z=>{const Ce=Z.findIndex(qn=>qn.id===L),Ke=Z.findIndex(qn=>qn.id===U);if(Ce===-1||Ke===-1)return Z;const rt=[...Z],[Ln]=rt.splice(Ce,1);return rt.splice(Ke,0,Ln),rt})},[]),ir=u.useCallback(L=>{const U=L.text.trim(),Z=nx(L.images);I(Ce=>Ce.filter(Ke=>Ke.id!==L.id)),(U||Z!=null&&Z.length)&&(Z!=null&&Z.length?e(U,Z):e(U)),requestAnimationFrame(()=>{var Ce;return(Ce=Q.current)==null?void 0:Ce.focus()})},[e]),St=u.useCallback(()=>{if(le.length===0)return;const L=le.find(Z=>Z.text.trim());if(!L){I([]);return}I(Z=>Z.filter(Ce=>Ce.id!==L.id));const U=nx(L.images);U!=null&&U.length?e(L.text.trim(),U):e(L.text.trim()),requestAnimationFrame(()=>{var Z;return(Z=Q.current)==null?void 0:Z.focus()})},[e,le]);u.useEffect(()=>{const L=je.current;if(je.current=r,!(!L||r||le.length===0)){if(xe.current){xe.current=!1;return}St()}},[St,r,le.length]);const Ut=u.useCallback(()=>{le.length>0&&(xe.current=!0),h==null||h()},[h,le.length]),nn=u.useCallback(()=>{if(l){c==null||c();return}if(!Hn)return;const U=E.trim(),Z=kt.length>0?kt.map(Pt=>({media:{data_url:Pt.dataUrl,name:Pt.file.name},preview:{url:Pt.dataUrl,name:Pt.file.name}})):void 0,Ce=sr.map(kF),Ke=Gr.map(CF),rt=Se.map(Pt=>({name:Pt.file.name,content:Pt.content,kind:Pt.kind})),Ln=Se.map(Pt=>({kind:"file",name:Pt.file.name})),qn=Ce.length>0||Ke.length>0||rt.length>0?{...Ce.length>0?{cliApps:Ce}:{},...Ke.length>0?{mcpPresets:Ke}:{},...rt.length>0?{attachments:rt,attachmentMedia:Ln}:{}}:void 0;e(U,Z,qn),I([]),Fe([]),Be(),Gt()},[sr,Gr,Hn,Be,Gt,l,c,e,kt,Se,E]),lo=L=>{if(In){if(L.key==="ArrowDown"){L.preventDefault(),G(U=>(U+1)%At.length);return}if(L.key==="ArrowUp"){L.preventDefault(),G(U=>(U-1+At.length)%At.length);return}if(L.key==="Tab"||L.key==="Enter"&&!L.shiftKey){L.preventDefault(),tn(At[D]);return}if(L.key==="Escape"){L.preventDefault(),P(!0);return}}if($t){if(L.key==="ArrowDown"){L.preventDefault(),$(U=>(U+1)%et.length);return}if(L.key==="ArrowUp"){L.preventDefault(),$(U=>(U-1+et.length)%et.length);return}if(L.key==="Tab"||L.key==="Enter"&&!L.shiftKey){L.preventDefault(),yt(et[K]);return}if(L.key==="Escape"){L.preventDefault(),z(!0);return}}if(L.key==="Enter"&&!L.shiftKey&&!L.nativeEvent.isComposing){if(L.preventDefault(),or){It();return}nn()}},kn=L=>{const U=L.currentTarget;U.style.height="auto",U.style.height=`${Math.min(U.scrollHeight,260)}px`},co=L=>{const U=Array.from(L.target.files??[]);L.target.value="",Qe(U)},H=async L=>{const U=Array.from(L.target.files??[]);if(L.target.value="",U.length===0)return;const Z=await pF(U);if(!Z.ok){T(Z.error);return}Fe(Ce=>{const Ke=[...Ce];for(const rt of Z.attachments)if(!Ke.some(Ln=>Ln.id===rt.id)){if(Ke.length>=Hc)break;Ke.push(rt)}return Ke}),T(null)},q=u.useCallback(L=>{Fe(U=>U.filter(Z=>Z.id!==L)),T(null),requestAnimationFrame(()=>{var U;return(U=Q.current)==null?void 0:U.focus()})},[]),se=u.useCallback(L=>{const{nextFocusId:U}=ue(L);T(null),requestAnimationFrame(()=>{var Ce;const Z=U?ve.current.get(U):null;Z?Z.focus():(Ce=Q.current)==null||Ce.focus()})},[ue]),ke=u.useCallback(L=>U=>{(U.key==="Delete"||U.key==="Backspace"||U.key==="Enter"||U.key===" ")&&(U.preventDefault(),se(L))},[se]),Le=t||nr,Dt=!!y,jr=A("thread.composer.voice.recordingStatus",{time:Me.elapsedLabel,defaultValue:`Recording ${Me.elapsedLabel}`}),qe=Me.state==="recording"?A("thread.composer.voice.stop"):Me.state==="transcribing"?A("thread.composer.voice.transcribing"):A("thread.composer.tools.voice"),Cn=Me.state==="recording"?A("thread.composer.voice.stop"):Me.state==="transcribing"?A("thread.composer.voice.transcribing"):A("thread.composer.voice.hint"),Ar=r&&!!h,_t=B&&Ne.length===0&&!r,Ss=j("w-full resize-none bg-transparent",B?j("min-h-[78px] px-4 text-[15px] leading-6 sm:px-5",_t?"pb-2 pt-[27px]":"pb-1.5 pt-4"):"min-h-[50px] px-3.5 pb-1.5 pt-3 text-[13.5px] leading-5 sm:px-4");return s.jsxs("form",{ref:O,onSubmit:L=>{L.preventDefault(),nn()},onDragEnter:cn,onDragOver:zt,onDragLeave:jt,onDrop:Vr,className:j("relative w-full",B?"px-0":"px-1 pb-1.5 pt-1 sm:px-0"),children:[$t?s.jsx(MF,{commands:et,selectedIndex:K,layout:Nr,isHero:B,onHover:$,onChoose:yt}):null,In?s.jsx(TF,{candidates:At,selectedIndex:D,layout:Nr,isHero:B,onHover:G,onChoose:tn}):null,s.jsxs("div",{className:j("group/composer relative mx-auto flex w-full flex-col overflow-visible transition-all duration-200","after:pointer-events-none after:absolute after:inset-[-1px] after:rounded-[inherit] after:border after:border-blue-300/75 after:opacity-0 after:transition-opacity after:duration-200 focus-within:after:opacity-100 dark:after:border-blue-400/55",B?"max-w-[58rem] rounded-[28px] border border-black/[0.035] bg-card shadow-[0_20px_55px_rgba(15,23,42,0.08)] dark:border-white/[0.06] dark:shadow-[0_24px_55px_rgba(0,0,0,0.34)]":"max-w-[49.5rem] rounded-[22px] border border-black/[0.035] bg-card shadow-[0_12px_30px_rgba(15,23,42,0.07)] dark:border-white/[0.06] dark:shadow-[0_16px_34px_rgba(0,0,0,0.28)]","focus-within:border-blue-300/75 dark:focus-within:border-blue-400/55",t&&"opacity-60",yn&&"ring-2 ring-primary/40 motion-reduce:ring-0 motion-reduce:border-primary",(b==null?void 0:b.active)&&"goal-shell-glow ring-1 ring-sky-400/35 motion-reduce:ring-sky-400/25 dark:ring-sky-400/45"),children:[le.length>0?s.jsx(jF,{prompts:le,isHero:B,label:A("thread.composer.queued.label"),guideLabel:A("thread.composer.queued.guide"),deleteLabel:A("thread.composer.queued.delete"),dragLabel:A("thread.composer.queued.drag"),editLabel:A("thread.composer.queued.edit"),onGuide:ir,onDelete:ft,onEdit:Ct,onDragStart:L=>{ee.current=L},onDragEnd:()=>{ee.current=null},onDrop:L=>{const U=ee.current;U&&Lt(U,L)}}):null,Ne.length>0?s.jsx("div",{className:"flex flex-wrap gap-2 px-3 pt-3","aria-label":A("thread.composer.attachImage"),children:Ne.map(L=>s.jsx(EF,{image:L,labelRemove:A("thread.composer.remove"),labelEncoding:A("thread.composer.encoding"),normalizedHint:(U,Z)=>A("thread.composer.normalizedSizeHint",{orig:Jl(U),current:Jl(Z)}),formatError:xn,onRemove:()=>se(L.id),onKeyDown:ke(L.id),registerRef:U=>{U?ve.current.set(L.id,U):ve.current.delete(L.id)}},L.id))}):null,Se.length>0?s.jsx("div",{className:"flex flex-wrap gap-2 px-3 pt-3","aria-label":"Text attachments",children:Se.map(L=>s.jsxs("button",{type:"button",onClick:()=>q(L.id),className:j("inline-flex items-center gap-2 rounded-[12px] border border-border/70 bg-muted/55 px-3 py-2","text-left text-[12px] text-foreground/88 transition-colors hover:bg-muted/75"),title:`${L.file.name} -${Jl(L.file.size)}`,children:[s.jsx(Bp,{className:"h-4 w-4 shrink-0 text-sky-600 dark:text-sky-300"}),s.jsx("span",{className:"max-w-[16rem] truncate",children:L.file.name}),s.jsx(xr,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]},L.id))}):null,s.jsx(NF,{startedAt:x,goalState:b}),s.jsxs("div",{className:"relative",children:[Wn?s.jsx(PF,{segments:un,isHero:B,className:Ss}):null,s.jsx("textarea",{ref:Q,value:E,onChange:L=>{_(L.target.value),z(!1),P(!1),oe(L.target.selectionStart??L.target.value.length)},onInput:kn,onKeyDown:lo,onKeyUp:L=>oe(L.currentTarget.selectionStart??L.currentTarget.value.length),onSelect:L=>oe(L.currentTarget.selectionStart??L.currentTarget.value.length),onClick:L=>oe(L.currentTarget.selectionStart??L.currentTarget.value.length),onPaste:rr,rows:1,placeholder:Ie,disabled:t,"aria-label":A("thread.composer.inputAria"),className:j(Ss,"relative z-10 caret-foreground placeholder:text-muted-foreground/70","focus:outline-none focus-visible:outline-none","disabled:cursor-not-allowed",Wn&&"text-transparent selection:bg-primary/20")})]}),R?s.jsx("div",{role:"alert",className:j("mx-3 mb-1 rounded-md border border-destructive/40 bg-destructive/8 px-2.5 py-1","text-[11.5px] font-medium text-destructive"),children:R}):null,s.jsxs("div",{className:j("flex flex-wrap items-center justify-between gap-y-2",B?j("gap-x-1.5 px-3 sm:px-4",ye?"pb-1.5":"pb-3.5"):"gap-x-2 px-2.5 pb-2 sm:px-3"),children:[s.jsxs("div",{className:j("flex min-w-0 flex-1 basis-[8rem] items-center",B?"gap-1.5":"gap-2"),children:[s.jsx("input",{ref:ne,type:"file",accept:KO,multiple:!0,hidden:!0,onChange:co}),s.jsx("input",{ref:he,type:"file",accept:VO,multiple:!0,hidden:!0,onChange:H}),s.jsx(fe,{type:"button",size:"icon",variant:"ghost",disabled:Le,"aria-label":A("thread.composer.attachImage"),onClick:()=>{var L;return(L=ne.current)==null?void 0:L.click()},className:j("rounded-full text-muted-foreground hover:text-foreground",B?"h-8 w-8 border border-border/55 bg-card shadow-[0_2px_8px_rgba(15,23,42,0.05)] hover:bg-card":"h-9 w-9 border border-border/55 bg-card shadow-[0_2px_8px_rgba(15,23,42,0.05)] hover:bg-card"),children:s.jsx(ga,{className:j(B?"h-[18px] w-[18px]":"h-4 w-4")})}),s.jsx(fe,{type:"button",size:"icon",variant:"ghost",disabled:t||Se.length>=Hc,"aria-label":"Attach markdown or text",onClick:()=>{var L;return(L=he.current)==null?void 0:L.click()},className:j("rounded-full text-muted-foreground hover:text-foreground",B?"h-8 w-8 border border-border/55 bg-card shadow-[0_2px_8px_rgba(15,23,42,0.05)] hover:bg-card":"h-9 w-9 border border-border/55 bg-card shadow-[0_2px_8px_rgba(15,23,42,0.05)] hover:bg-card"),children:s.jsx(Bp,{className:j(B?"h-[17px] w-[17px]":"h-4 w-4")})}),Me.isRecording?s.jsx(nF,{ariaLabel:jr,className:"mx-1 flex-1",elapsedLabel:Me.elapsedLabel,isHero:B,levels:Me.levels}):v?s.jsx(hO,{scope:v,disabled:t||k,canUseFullAccess:(w==null?void 0:w.can_use_full_access)!==!1,isHero:B,onChange:N}):null]}),s.jsxs("div",{className:j("ml-auto flex min-w-0 shrink-0 items-center",B?"gap-1.5":"gap-2"),children:[a&&!Me.isRecording?s.jsx(_F,{label:a,provider:o,providerLabel:i,needsSetup:l,isHero:B,onClick:l?c:void 0}):null,Dt?s.jsx(Ru,{delayDuration:220,skipDelayDuration:80,children:s.jsxs(Ei,{children:[s.jsx(Ii,{asChild:!0,children:s.jsx(fe,{type:"button",size:"icon",variant:"ghost",disabled:Me.buttonDisabled,"aria-label":qe,"aria-keyshortcuts":GO,title:Cn,onPointerDown:Me.beginPress,onPointerUp:Me.endPress,onPointerCancel:Me.endPress,onClick:Me.handleClick,className:j("rounded-full border border-transparent text-muted-foreground hover:bg-muted/65 hover:text-foreground",B?"h-8 w-8":"h-9 w-9",Me.isRecording&&"bg-red-500 text-white shadow-[0_8px_20px_rgba(239,68,68,0.22)] hover:bg-red-500 hover:text-white"),children:Me.state==="transcribing"?s.jsx(pt,{className:j("h-4 w-4","animate-spin")}):Me.isRecording?s.jsx(Hp,{className:j("h-3.5 w-3.5"),fill:"currentColor"}):s.jsx(gf,{className:j("h-4 w-4")})})}),s.jsxs(ss,{side:"top",align:"center",className:"flex items-center gap-2 rounded-full border border-border/70 bg-background px-3 py-1.5 text-[13px] font-medium text-foreground shadow-[0_8px_24px_rgba(15,23,42,0.13)] dark:border-white/10 dark:bg-neutral-900 dark:text-white",children:[s.jsx("span",{children:Cn}),Me.state==="idle"?s.jsx("kbd",{className:"rounded-full bg-muted px-2 py-0.5 font-sans text-[12px] font-semibold leading-none text-muted-foreground dark:bg-white/10 dark:text-white/80",children:X}):null]})]})}):null,s.jsx(fe,{type:Ar||l?"button":"submit",size:"icon",disabled:Ar?t:!Hn&&!bn,"aria-label":Ar?A("thread.composer.stop"):l?A("thread.composer.configureModel",{defaultValue:"Configure model"}):A("thread.composer.send"),onClick:Ar?Ut:l?c:void 0,className:j("rounded-full transition-transform",Ar?"border border-border/70 bg-card text-foreground/85 shadow-[0_3px_10px_rgba(15,23,42,0.08)] hover:bg-muted/65 hover:text-foreground disabled:text-muted-foreground/50":B?"border border-foreground bg-foreground text-background shadow-[0_4px_12px_rgba(15,23,42,0.20)] hover:bg-foreground/90 disabled:border-foreground disabled:bg-foreground disabled:text-background":"border border-foreground bg-foreground text-background shadow-[0_3px_10px_rgba(15,23,42,0.18)] hover:bg-foreground/90 disabled:border-foreground disabled:bg-foreground disabled:text-background",B?"h-8 w-8":"h-9 w-9",(Hn||bn||Ar)&&"hover:scale-[1.03] active:scale-95"),children:Ar?s.jsx(Hp,{className:j("fill-current stroke-current",B?"h-3 w-3":"h-3.5 w-3.5")}):r?s.jsx(pt,{className:j("h-4 w-4","animate-spin")}):s.jsx(qj,{className:j("h-4 w-4")})})]})]}),s.jsx(fO,{isHero:B,disabled:t||k,scope:v,defaultScope:g,controls:w,error:C,onChange:N})]})]})}function jF({prompts:e,isHero:t,label:n,guideLabel:r,deleteLabel:a,dragLabel:o,editLabel:i,onGuide:l,onDelete:c,onEdit:d,onDragStart:p,onDragEnd:m,onDrop:f}){const h=Math.min(240,14+e.length*34+Math.max(0,e.length-1)*4);return s.jsx("div",{role:"group","data-state":"enter",className:j("composer-status-strip relative z-20 mx-3 mt-3 overflow-hidden rounded-[18px]","border border-black/[0.05] bg-popover/90 p-1.5","shadow-[0_10px_28px_rgba(15,23,42,0.07)] backdrop-blur-md","dark:border-white/[0.08] dark:bg-popover/90 dark:shadow-[0_14px_34px_rgba(0,0,0,0.30)]","max-w-none"),style:{"--composer-strip-max-height":`${h}px`},"aria-label":n,children:s.jsx("div",{className:"flex max-h-[216px] flex-col gap-1 overflow-y-auto",children:e.map(y=>s.jsx(AF,{prompt:y,isHero:t,guideLabel:r,deleteLabel:a,dragLabel:o,editLabel:i,onGuide:l,onDelete:c,onEdit:d,onDragStart:p,onDragEnd:m,onDrop:f},y.id))})})}function AF({prompt:e,isHero:t,guideLabel:n,deleteLabel:r,dragLabel:a,editLabel:o,onGuide:i,onDelete:l,onEdit:c,onDragStart:d,onDragEnd:p,onDrop:m}){const f=uF(e);return s.jsxs("div",{"data-queued-prompt-row":"true",onDragEnter:h=>{h.preventDefault(),m(e.id)},onDragOver:h=>{h.preventDefault(),h.dataTransfer.dropEffect="move"},onDrop:h=>{h.preventDefault(),m(e.id)},onDragEnd:p,className:j("queued-prompt-row group/queued flex min-h-8 items-center gap-1.5 rounded-[12px] px-2 py-0.5","text-[13px] transition-colors hover:bg-muted/55 dark:hover:bg-white/[0.055]",t&&"text-[13.5px]"),children:[s.jsx("span",{draggable:!0,role:"button",tabIndex:0,"aria-label":a,onDragStart:h=>{h.dataTransfer.effectAllowed="move",h.dataTransfer.setData("text/plain",e.id),mF(h.dataTransfer),d(e.id)},onDragEnd:p,className:j("inline-flex h-7 w-7 shrink-0 cursor-grab items-center justify-center rounded-lg","text-muted-foreground/45 transition-colors hover:bg-background/80 hover:text-muted-foreground","active:cursor-grabbing dark:hover:bg-white/[0.06]"),children:s.jsx(rA,{className:"pointer-events-none h-3.5 w-3.5","aria-hidden":!0})}),s.jsx("div",{className:"flex min-h-7 min-w-0 flex-1 items-center",children:s.jsx("p",{title:f,className:j("line-clamp-3 whitespace-pre-wrap break-words font-medium leading-[1.28] text-foreground/88",t&&"text-[13.5px]"),children:f})}),s.jsxs(fe,{type:"button",variant:"ghost",size:"sm",className:"h-7 shrink-0 rounded-full px-2 text-[11.5px] font-medium text-muted-foreground hover:bg-muted/70 hover:text-foreground dark:hover:bg-white/[0.07]",onClick:()=>i(e),children:[s.jsx(Xj,{className:"mr-1 h-3 w-3","aria-hidden":!0}),n]}),s.jsx(fe,{type:"button",variant:"ghost",size:"icon","aria-label":o,title:o,className:"h-7 w-7 shrink-0 rounded-full text-muted-foreground hover:bg-background/85 hover:text-foreground dark:hover:bg-white/[0.07]",onClick:()=>c(e),children:s.jsx(xf,{className:"h-3.5 w-3.5","aria-hidden":!0})}),s.jsx(fe,{type:"button",variant:"ghost",size:"icon","aria-label":r,className:"h-7 w-7 shrink-0 rounded-full text-muted-foreground hover:bg-background/85 hover:text-destructive dark:hover:bg-white/[0.07]",onClick:()=>l(e.id),children:s.jsx(ya,{className:"h-3 w-3","aria-hidden":!0})})]})}function _F({label:e,provider:t,providerLabel:n,needsSetup:r,isHero:a,onClick:o}){const i=r?null:t||um(e),l=al(i),[c,d]=u.useState(0),p=l==null?void 0:l.logoUrls[c],m=!!p,f=n?`${e} · ${n}`:e,h=!!o,y=h?"button":"span";return u.useEffect(()=>d(0),[i]),s.jsxs(y,{title:f,type:h?"button":void 0,onClick:o,className:j("inline-flex min-w-0 items-center rounded-full border border-border/55 bg-card font-medium text-foreground/82","shadow-[0_2px_8px_rgba(15,23,42,0.045)]",h&&"cursor-pointer hover:bg-accent/55 hover:text-foreground",r&&"border-amber-500/35 bg-amber-50/70 text-amber-900 dark:bg-amber-500/10 dark:text-amber-200",a?"h-8 max-w-[min(12.5rem,44vw)] gap-1.5 px-2 text-[11.5px]":"h-9 max-w-[min(12rem,44vw)] gap-2 px-2.5 text-[12px]"),children:[s.jsx("span",{"data-testid":r?"composer-model-setup-icon":i?`composer-model-logo-${i}`:"composer-model-logo",className:j("grid shrink-0 place-items-center overflow-hidden",r?"text-amber-800 dark:text-amber-200":"rounded-full border bg-background",a?"h-[18px] w-[18px]":"h-5 w-5"),style:{borderColor:!r&&l?`${l.color}28`:void 0,boxShadow:!r&&l?`inset 0 0 0 1px ${l.color}18`:void 0},"aria-hidden":!0,children:r?s.jsx(ff,{className:j(a?"h-3 w-3":"h-3.5 w-3.5"),strokeWidth:1.8}):m?s.jsx("img",{src:p,alt:"",className:j("object-contain",a?"h-3 w-3":"h-3.5 w-3.5"),onError:()=>d(x=>x+1)}):l?s.jsx("span",{className:j("grid h-full w-full place-items-center rounded-full text-white",a?"text-[7.5px]":"text-[8px]"),style:{backgroundColor:l.color},children:l.initials.slice(0,2)}):s.jsx($o,{className:j("text-muted-foreground/65","h-3 w-3")})}),s.jsx("span",{className:"truncate",children:e})]})}function PF({segments:e,isHero:t,className:n}){return s.jsx("div",{"aria-hidden":!0,className:j(n,"pointer-events-none absolute inset-0 z-0 overflow-hidden whitespace-pre-wrap break-words text-foreground"),children:e.map((r,a)=>r.kind==="text"?s.jsx("span",{children:r.text},`text-${a}`):r.kind==="cli"?s.jsx(mC,{app:r.app,label:r.text,variant:"composer",isHero:t},`cli-${r.app.name}-${a}`):s.jsx(fC,{preset:r.preset,label:r.text,variant:"composer",isHero:t},`mcp-${r.preset.name}-${a}`))})}function AC(e){const t=u.useRef(null);return u.useLayoutEffect(()=>{const n=t.current;if(!n)return;const r=n.querySelector(`[data-palette-index="${e}"]`);typeof(r==null?void 0:r.scrollIntoView)=="function"&&r.scrollIntoView({block:"nearest"})},[e]),t}function TF({candidates:e,selectedIndex:t,layout:n,isHero:r,onHover:a,onChoose:o}){const{t:i}=ie(),l=Math.max(0,n.maxHeight-kC),c=AC(t);return s.jsxs("div",{role:"listbox","aria-label":i("thread.composer.mentions.ariaLabel"),style:{maxHeight:n.maxHeight},className:j("absolute left-1/2 z-30 w-[calc(100%-0.5rem)] -translate-x-1/2 overflow-hidden rounded-[22px] border",n.placement==="above"?"bottom-full mb-2":"top-full mt-2","border-border/70 bg-popover p-2 text-popover-foreground shadow-[0_20px_60px_rgba(15,23,42,0.12)]","dark:border-white/10 dark:shadow-[0_24px_60px_rgba(0,0,0,0.42)]",r?"max-w-[58rem]":"max-w-[49.5rem]"),children:[s.jsx("div",{className:"px-2 pb-1.5 pt-0.5 text-[13px] font-semibold text-muted-foreground/78",children:i("thread.composer.mentions.label")}),s.jsx("div",{ref:c,className:"overflow-y-auto",style:{maxHeight:l},children:e.map((d,p)=>{const m=p===t,f=d.name,h=d.kind==="cli"?d.app.display_name:d.preset.display_name,y=d.kind==="cli"?i("thread.composer.mentions.cliBadge"):i("thread.composer.mentions.mcpBadge"),x=d.kind==="cli"?i("thread.composer.mentions.cliDescription",{name:f}):i("thread.composer.mentions.mcpDescription",{name:f});return s.jsxs("button",{type:"button",role:"option","data-palette-index":p,"aria-selected":m,"aria-label":`${h} @${f} ${x} ${y}`,onMouseEnter:()=>a(p),onMouseDown:b=>{b.preventDefault(),o(d)},className:j("flex min-h-10 w-full items-center gap-2.5 rounded-[13px] px-2.5 py-1.5 text-left transition-colors",m?"bg-foreground/[0.055] text-foreground":"text-foreground/90 hover:bg-foreground/[0.04]"),children:[s.jsx(RF,{candidate:d,selected:m}),s.jsxs("span",{className:"flex min-w-0 flex-1 items-baseline gap-2",children:[s.jsx("span",{className:"min-w-0 truncate text-[15px] font-medium tracking-normal text-foreground",children:h}),s.jsxs("span",{className:"truncate text-[15px] font-normal tracking-normal text-muted-foreground/72",children:["@",f]})]}),s.jsx("span",{className:j("ml-2 shrink-0 rounded-full px-2 py-0.5 text-[11px] font-semibold tracking-normal",d.kind==="cli"?"bg-orange-500/10 text-orange-600 dark:text-orange-300":"bg-sky-500/10 text-sky-600 dark:text-sky-300"),children:y})]},`${d.kind}-${f}`)})})]})}function RF({candidate:e,selected:t}){const[n,r]=u.useState(0),a=(e.kind==="cli"?e.app.brand_color:e.preset.brand_color)||"hsl(var(--primary))",o=e.kind==="cli"?e.app.logo_url:e.preset.logo_url,l=u.useMemo(()=>oo(o),[o])[n];return u.useEffect(()=>r(0),[o]),l?s.jsx("span",{className:j("flex h-5 w-5 shrink-0 items-center justify-center overflow-hidden rounded-[5px]",t?"bg-background/55":"bg-transparent"),children:s.jsx("img",{src:l,alt:"",className:"h-5 w-5 object-contain",onError:()=>r(c=>c+1)})}):s.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-[5px] text-[7.5px] font-semibold text-white",style:{backgroundColor:a},children:e.kind==="cli"?uC(e.app):dC(e.preset)})}function MF({commands:e,selectedIndex:t,layout:n,isHero:r,onHover:a,onChoose:o}){const{t:i}=ie(),l=Math.max(0,n.maxHeight-kC),c=AC(t);return s.jsx("div",{role:"listbox","aria-label":i("thread.composer.slash.ariaLabel"),style:{maxHeight:n.maxHeight},className:j("absolute left-1/2 z-30 w-[calc(100%-0.5rem)] -translate-x-1/2 overflow-hidden rounded-[18px] border",n.placement==="above"?"bottom-full mb-2":"top-full mt-2","border-border/65 bg-popover p-1.5 text-popover-foreground shadow-[0_18px_55px_rgba(15,23,42,0.16)]","dark:border-white/10 dark:shadow-[0_22px_55px_rgba(0,0,0,0.45)]",r?"max-w-[58rem]":"max-w-[49.5rem]"),children:s.jsx("div",{ref:c,className:"overflow-y-auto pr-0.5",style:{maxHeight:l},children:e.map((d,p)=>{const m=ZO[d.icon]??ff,f=p===t,h=gm(d.command),y=i(`thread.composer.slash.commands.${h}.title`,{defaultValue:d.title}),x=i(`thread.composer.slash.commands.${h}.description`,{defaultValue:d.description});return s.jsxs("button",{type:"button",role:"option","data-palette-index":p,"aria-selected":f,onMouseEnter:()=>a(p),onMouseDown:b=>{b.preventDefault(),o(d)},className:j("flex min-h-[44px] w-full items-center gap-3 rounded-[13px] px-3 py-2 text-left transition-colors",f?"bg-foreground/[0.065] text-foreground dark:bg-white/[0.09]":"text-foreground/86 hover:bg-foreground/[0.045] dark:hover:bg-white/[0.065]"),children:[s.jsx("span",{className:j("flex h-7 w-7 shrink-0 items-center justify-center text-muted-foreground transition-colors",f&&"text-foreground"),children:s.jsx(m,{className:"h-4 w-4"})}),s.jsxs("span",{className:"flex min-w-0 flex-1 flex-col gap-0.5 sm:flex-row sm:items-baseline sm:gap-2",children:[s.jsx("span",{className:"min-w-0 truncate text-[13.5px] font-semibold tracking-normal text-foreground",children:y}),s.jsx("span",{className:"min-w-0 truncate text-[13px] text-muted-foreground",children:d.detail||x})]}),s.jsxs("span",{className:"ml-2 flex max-w-[42%] shrink-0 items-center gap-1.5 sm:max-w-none",children:[d.badge||d.recent?s.jsx("span",{className:"hidden rounded-full bg-foreground/[0.055] px-2 py-1 text-[11px] font-medium text-muted-foreground sm:inline-flex",children:d.badge??i("thread.composer.slash.badges.recent")}):null,s.jsx("span",{className:"font-mono text-[12px] text-muted-foreground/60",children:d.argHint?`${d.command} ${d.argHint}`:d.command})]})]},d.command)})})})}function EF({image:e,labelRemove:t,labelEncoding:n,normalizedHint:r,formatError:a,onRemove:o,onKeyDown:i,registerRef:l}){const c=e.status==="ready"&&e.normalized&&e.encodedBytes?r(e.file.size,e.encodedBytes):Jl(e.file.size),d=e.status==="error"?"border-destructive/40 bg-destructive/5 text-destructive":"border-border/70 bg-muted/60";return s.jsxs("div",{className:j("group relative flex items-center gap-2 rounded-[12px] border px-2 py-1.5","transition-colors motion-reduce:transition-none",d),"data-testid":"composer-chip",children:[s.jsxs("div",{className:"relative h-10 w-10 overflow-hidden rounded-md bg-background",children:[e.previewUrl?s.jsx("img",{src:e.previewUrl,alt:"","aria-hidden":!0,loading:"eager",draggable:!1,className:"h-full w-full object-cover"}):s.jsx("div",{className:"flex h-full w-full items-center justify-center",children:s.jsx(Wi,{className:"h-4 w-4 text-muted-foreground","aria-hidden":!0})}),e.status==="encoding"?s.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-background/60","aria-label":n,children:s.jsx(pt,{className:"h-4 w-4 animate-spin motion-reduce:animate-none","aria-hidden":!0})}):null]}),s.jsxs("div",{className:"flex min-w-0 flex-col text-[11.5px] leading-4",children:[s.jsx("span",{className:"max-w-[min(14rem,calc(100vw-8rem))] truncate font-medium",title:e.file.name,children:e.file.name}),s.jsx("span",{className:"truncate text-muted-foreground",children:e.status==="error"&&e.error?a(e.error):c})]}),s.jsx("button",{type:"button",ref:l,onClick:o,onKeyDown:i,"aria-label":t,className:j("ml-1 grid h-5 w-5 flex-none place-items-center rounded-full","text-muted-foreground/80 hover:bg-foreground/8 hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground/30"),children:s.jsx(xr,{className:"h-3.5 w-3.5","aria-hidden":!0})})]})}function IF({title:e,onToggleSidebar:t,theme:n,onToggleTheme:r,hideSidebarToggleForHostChrome:a=!1,hostChromeTitleInset:o=!1,hideThemeButton:i=!1,minimal:l=!1,promptNavigatorAction:c,sessionInfoAction:d}){const{t:p}=ie();return s.jsxs("div",{className:j("relative z-10 flex items-center justify-between gap-3 px-3 py-2",l&&"h-11",!l&&o&&"lg:pl-[128px]"),children:[s.jsxs("div",{className:"relative flex min-w-0 items-center gap-2",children:[s.jsx(fe,{variant:"ghost",size:"icon","aria-label":p("thread.header.toggleSidebar"),onClick:t,className:j("h-7 w-7 rounded-md text-muted-foreground hover:bg-accent/35 hover:text-foreground",a&&"lg:hidden"),children:s.jsx(ow,{className:"h-3.5 w-3.5"})}),l?null:s.jsx("div",{className:"flex min-w-0 items-center rounded-md px-1.5 py-1 text-[12px] font-medium text-muted-foreground",children:s.jsx("span",{className:"max-w-[min(60vw,32rem)] truncate",children:e})})]}),s.jsxs("div",{className:"ml-auto flex shrink-0 items-center gap-1",children:[d,c,i?null:s.jsx(LF,{theme:n,onToggleTheme:r,label:p("thread.header.toggleTheme")})]}),l?null:s.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-full h-4"})]})}function LF({theme:e,onToggleTheme:t,label:n,className:r}){return s.jsx(fe,{variant:"ghost",size:"icon","aria-label":n,onClick:t,className:j("host-no-drag h-8 w-8 rounded-full text-muted-foreground/85 hover:bg-accent/40 hover:text-foreground",r),children:e==="dark"?s.jsx(iw,{className:"h-4 w-4"}):s.jsx(vf,{className:"h-4 w-4"})})}function DF({error:e,onDismiss:t}){const{t:n}=ie(),{title:r,body:a}=OF(e,n);return s.jsxs("div",{role:"alert","aria-live":"assertive",className:j("mb-2 flex items-start gap-2 rounded-lg border border-destructive/30","bg-destructive/10 px-3 py-2 text-[12px] leading-5 text-destructive","animate-in fade-in-0 slide-in-from-bottom-1"),children:[s.jsx(Wp,{className:"mt-0.5 h-4 w-4 shrink-0","aria-hidden":!0}),s.jsxs("div",{className:"flex-1",children:[s.jsx("p",{className:"font-medium",children:r}),s.jsx("p",{className:"mt-0.5 text-destructive/80",children:a})]}),s.jsx(fe,{variant:"ghost",size:"icon",onClick:t,"aria-label":n("common.dismiss"),className:"h-6 w-6 shrink-0 text-destructive hover:bg-destructive/15 hover:text-destructive",children:s.jsx(xr,{className:"h-3.5 w-3.5"})})]})}function OF(e,t){switch(e.kind){case"message_too_big":return{title:t("errors.messageTooBig.title"),body:t("errors.messageTooBig.body")};case"workspace_scope_rejected":return{title:t("errors.workspaceScopeRejected.title"),body:t("errors.workspaceScopeRejected.body")};default:return{title:String(e),body:""}}}const FF=3,zF=80,$F=30,UF=12,BF=32,HF=42,WF=9,zd=16,qF=28,KF=4,VF=1400;function GF({bottomOffset:e,messages:t,scrollRef:n}){const r=u.useRef(null),a=u.useMemo(()=>lC(t),[t]),[o,i]=u.useState([]),[l,c]=u.useState(null),[d,p]=u.useState(!1),m=u.useRef(null),f=u.useCallback(()=>{p(!0),m.current!==null&&window.clearTimeout(m.current),m.current=window.setTimeout(()=>{p(!1),m.current=null},VF)},[]),h=u.useCallback(()=>{var w;const b=n.current;if(!b||a.length{let b=0,v=KF;const g=()=>{h(),v-=1,v>0&&(b=window.requestAnimationFrame(g))};return g(),()=>window.cancelAnimationFrame(b)},[e,h]),u.useEffect(()=>{const b=n.current;if(!b)return;let v=0;const g=()=>{window.cancelAnimationFrame(v),f(),v=window.requestAnimationFrame(h)};return b.addEventListener("scroll",g,{passive:!0}),window.addEventListener("resize",g),()=>{window.cancelAnimationFrame(v),b.removeEventListener("scroll",g),window.removeEventListener("resize",g)}},[f,n,h]),u.useEffect(()=>{const b=n.current;if(!b||typeof ResizeObserver>"u")return;const v=new ResizeObserver(()=>h());return v.observe(b),b.firstElementChild&&v.observe(b.firstElementChild),()=>v.disconnect()},[n,h]),u.useEffect(()=>()=>{m.current!==null&&window.clearTimeout(m.current)},[]),o.length===0)return null;const y=Math.max(...o.map(b=>b.count)),x=o.findIndex(b=>b.ids.includes(l??""));return s.jsx("div",{ref:r,"aria-label":"User prompt navigation",className:j("group pointer-events-auto absolute right-4 top-14 z-20 hidden w-8 opacity-70 md:block","transition-opacity duration-200 hover:opacity-100","motion-safe:animate-in motion-safe:fade-in-0 motion-safe:duration-200"),style:{bottom:Math.max(80,e)},children:o.map((b,v)=>{const g=b.ids.includes(l??""),w=x<0||Math.abs(v-x)<=1;return s.jsxs("button",{type:"button","aria-label":`Jump to prompt: ${b.label}`,onClick:()=>hm(n.current,b.ids[b.ids.length-1]),className:j("group/marker absolute right-0 h-5 -translate-y-1/2 overflow-visible rounded-full","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-400/60"),style:{top:`${b.topPercent}%`,width:ZF(b.count,y,g)},children:[s.jsx("span",{"aria-hidden":!0,className:j("absolute right-0 top-1/2 h-[3px] w-full -translate-y-1/2 rounded-full","bg-foreground/20 transition-[background-color,opacity,transform,height] duration-200","group-hover/marker:bg-blue-500/70 group-hover/marker:opacity-100 group-hover/marker:scale-x-110","group-focus-visible/marker:bg-blue-500 group-focus-visible/marker:opacity-100 group-focus-visible/marker:scale-x-110",b.count>1&&"bg-foreground/30",g&&"h-1 bg-foreground/65 opacity-80 shadow-sm",!g&&w&&"opacity-25 group-hover:opacity-55",!g&&!w&&!d&&"opacity-0 group-hover:opacity-40",!g&&!w&&d&&"opacity-35")}),s.jsx("span",{"aria-hidden":!0,className:j("pointer-events-none absolute right-9 top-1/2 z-30 w-64 -translate-y-1/2 rounded-lg px-3 py-2 text-left","bg-background/95 text-xs leading-5 text-foreground shadow-lg ring-1 ring-border/80 backdrop-blur","opacity-0 translate-x-1 transition-[opacity,transform] duration-150","group-hover/marker:opacity-100 group-hover/marker:translate-x-0","group-focus-visible/marker:opacity-100 group-focus-visible/marker:translate-x-0"),children:s.jsx("span",{className:"block max-h-24 overflow-hidden whitespace-pre-wrap break-words",children:b.preview})})]},b.ids.join("|"))})})}function YF(e,t,n){return t.flatMap(r=>{const a=ii(e,r.id);if(!a)return[];const o=Math.max(0,Math.min(n,Jf(e,a)-16));return[{...r,top:o,topPercent:vm(o/n*100,2,98)}]})}function QF(e,t){if(e.length===0)return[];if(e.length>=$F)return XF(e,t);const n=t>0?WF/t*100:2,r=[];for(const a of e){const o=r[r.length-1];if(o&&a.topPercent-o.topPercent0?vm(Math.floor(t/UF),1,HF):BF,r=Array.from({length:n},()=>[]);for(const a of e){const o=vm(Math.floor(a.topPercent/100*n),0,n-1);r[o].push(a)}return r.flatMap(a=>{if(a.length===0)return[];const o=a[a.length-1],i=a.reduce((l,c)=>l+c.topPercent,0)/a.length;return[{count:a.length,ids:a.map(l=>l.id),label:a.length===1?o.label:_C(a.length,o.label),preview:a.length===1?o.preview:PC(a.length,o.preview),topPercent:i}]})}function JF(e,t){if(e.length===0)return null;let n=e[0];const r=t+96;for(const a of e){if(a.top<=r){n=a;continue}break}return n.id}function _C(e,t){return`${e} prompts, latest: ${t}`}function PC(e,t){return`${e} prompts - -${t}`}function ZF(e,t,n){if(t<=1)return n?34:zd;const r=Math.log2(e+1)/Math.log2(t+1),a=zd+(qF-zd)*r;return Math.round(n?a+4:a)}function vm(e,t,n){return Math.max(t,Math.min(n,e))}function TC({attachment:e,className:t,inline:n=!1,variant:r="default"}){const{t:a}=ie(),[o,i]=u.useState(!1),l=typeof e.url=="string"&&e.url.length>0,c=ez(e,a);if(e.kind==="image"&&l&&!o)return s.jsx(ax,{attachment:e,className:t,inline:n,variant:r,children:s.jsx("a",{href:e.url,target:"_blank",rel:"noreferrer noopener",className:"block bg-muted/20","aria-label":e.name?`Open ${e.name}`:a("lightbox.open",{defaultValue:"Open image"}),children:s.jsx("img",{src:e.url,alt:e.name??"",loading:"lazy",decoding:"async",draggable:!1,onError:()=>i(!0),className:j("block h-auto max-w-full bg-background object-contain",r==="compact"?"max-h-40":"max-h-[34rem]")})})});if(e.kind==="video"&&l)return s.jsx(ax,{attachment:e,className:t,inline:n,variant:r,children:s.jsx("video",{src:e.url,controls:!0,preload:"auto",className:j("block w-full bg-black",r==="compact"?"max-h-40":"max-h-[26rem]"),"aria-label":e.name?`${a("message.videoAttachment",{defaultValue:"Video attachment"})}: ${e.name}`:a("message.videoAttachment",{defaultValue:"Video attachment"})})});const d=e.kind==="video"?xA:e.kind==="image"?Wi:Zj,p=s.jsxs(s.Fragment,{children:[s.jsx(d,{className:"h-4 w-4 flex-none","aria-hidden":!0}),s.jsx("span",{className:"min-w-0 truncate",children:e.name??c})]});return l&&!o?s.jsx("a",{href:e.url,download:e.name??c,title:e.name??void 0,"aria-label":c,className:j("flex max-w-[18rem] items-center gap-2 rounded-[14px]","border border-border/60 bg-muted/40 px-3 py-2 text-xs text-muted-foreground","transition-colors hover:bg-muted/55 hover:text-foreground",r==="compact"&&"max-w-[14rem] rounded-xl px-2.5 py-1.5 text-[11.5px]",t),children:p}):s.jsxs("div",{className:j("flex max-w-[18rem] items-center gap-2 rounded-[14px]","border border-border/60 bg-muted/35 px-3 py-2 text-xs text-muted-foreground",r==="compact"&&"max-w-[14rem] rounded-xl px-2.5 py-1.5 text-[11.5px]",t),title:e.name??void 0,"aria-label":c,children:[p,s.jsx("span",{className:"sr-only",children:a("message.attachmentUnavailable",{defaultValue:"Attachment unavailable"})})]})}function ax({attachment:e,children:t,className:n,inline:r=!1,variant:a="default"}){const o=j("not-prose my-3 block w-fit max-w-full overflow-hidden rounded-[14px]","border border-border/60 bg-muted/40",e.kind==="image"&&"bg-background/85",e.kind==="video"?"w-[min(100%,32rem)]":"",a==="compact"&&"my-1 rounded-xl shadow-none",a==="compact"&&e.kind==="video"&&"w-[min(100%,20rem)]",n),i="block max-w-full",l=r?s.jsx("span",{className:i,children:t}):s.jsx("div",{className:i,children:t});return r?s.jsx("span",{className:o,children:l}):s.jsx("figure",{className:o,children:l})}function ez(e,t){return e.kind==="video"?t("message.videoAttachment",{defaultValue:"Video attachment"}):e.kind==="image"?t("message.imageAttachment",{defaultValue:"Image attachment"}):t("message.fileAttachment",{defaultValue:"File attachment"})}function tz({images:e,index:t,onIndexChange:n,onOpenChange:r}){const{t:a}=ie(),o=t!==null,i=e.length,l=t!==null?e[t]:null,c=u.useCallback(f=>{if(t===null||i<=1)return;const h=(t+f+i)%i;n(h)},[t,n,i]);u.useEffect(()=>{if(!o)return;const f=h=>{h.key==="ArrowLeft"?(h.preventDefault(),c(-1)):h.key==="ArrowRight"?(h.preventDefault(),c(1)):h.key==="Home"?(h.preventDefault(),n(0)):h.key==="End"&&(h.preventDefault(),n(i-1))};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[c,n,o,i]);const d=u.useMemo(()=>{if(t===null||i<=1)return[];const f=e[(t-1+i)%i],h=e[(t+1)%i];return[f,h].filter(y=>y&&y.url)},[e,t,i]);if(!l||!l.url)return null;const p=i>1,m=p?`${t+1} / ${i}`:null;return s.jsx(hu,{open:o,onOpenChange:r,children:s.jsxs(gu,{children:[s.jsx(hs,{className:j("fixed inset-0 z-50 bg-black/80 backdrop-blur-sm","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","motion-reduce:data-[state=open]:animate-none motion-reduce:data-[state=closed]:animate-none")}),s.jsxs(gs,{"aria-label":l.name??a("lightbox.title"),className:j("fixed inset-0 z-50 flex items-center justify-center","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","motion-reduce:data-[state=open]:animate-none motion-reduce:data-[state=closed]:animate-none"),children:[s.jsx(vs,{className:"sr-only",children:l.name??a("lightbox.title")}),s.jsx("div",{className:"relative flex max-h-[92vh] max-w-[94vw] items-center justify-center",style:{transform:"translate3d(0,0,0)",willChange:"transform"},children:s.jsx("img",{src:l.url,alt:l.name??"",decoding:"async",draggable:!1,className:"max-h-[92vh] max-w-[94vw] select-none rounded-[6px] object-contain shadow-2xl"},l.url)}),p?s.jsxs(s.Fragment,{children:[s.jsx(ox,{side:"left",label:a("lightbox.prev"),onClick:f=>{f.stopPropagation(),c(-1)}}),s.jsx(ox,{side:"right",label:a("lightbox.next"),onClick:f=>{f.stopPropagation(),c(1)}}),s.jsx("div",{className:"pointer-events-none absolute bottom-5 left-1/2 -translate-x-1/2 rounded-full bg-black/55 px-3 py-1 text-xs font-medium text-white/90 tabular-nums",children:m})]}):null,s.jsx(Vi,{"aria-label":a("lightbox.close"),className:j("absolute right-4 top-4 grid h-9 w-9 place-items-center rounded-full","bg-black/55 text-white/90 hover:bg-black/70 hover:text-white","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70","transition-colors motion-reduce:transition-none"),children:s.jsx(xr,{className:"h-4 w-4","aria-hidden":!0})}),s.jsx("div",{"aria-hidden":!0,className:"hidden",children:d.map((f,h)=>s.jsx("img",{src:f.url,alt:""},`${f.url}-${h}`))})]})]})})}function ox({side:e,label:t,onClick:n}){const r=e==="left"?mf:Wr;return s.jsx("button",{type:"button",onClick:n,"aria-label":t,className:j("absolute top-1/2 -translate-y-1/2 grid h-11 w-11 place-items-center rounded-full","bg-black/55 text-white/90 hover:bg-black/70 hover:text-white","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70","transition-colors motion-reduce:transition-none",e==="left"?"left-4":"right-4"),children:s.jsx(r,{className:"h-5 w-5","aria-hidden":!0})})}async function nz(e){var t;try{if((t=navigator.clipboard)!=null&&t.writeText)return await navigator.clipboard.writeText(e),!0}catch{}return rz(e)}function rz(e){if(typeof document.execCommand!="function")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select(),t.setSelectionRange(0,t.value.length);try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}const az=new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".svg",".tif",".tiff"]),oz=new Set([".mp4",".webm",".mov",".m4v",".avi",".mkv",".3gp"]);function sz(e){var t;return((t=e.split(/[?#]/,1)[0])==null?void 0:t.toLowerCase())??""}function sx(e){if(!e)return"";const t=sz(e),n=t.lastIndexOf(".");return n<0?"":t.slice(n)}function RC(e){const t=e.url??"";if(t.startsWith("data:image/"))return"image";if(t.startsWith("data:video/"))return"video";const n=sx(e.name)||sx(t);return n?az.has(n)?"image":oz.has(n)?"video":"file":null}function S6(e){return RC(e)??"file"}function cs(e){return{kind:RC(e)??e.kind??"file",url:e.url,name:e.name}}function iz({className:e}){return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:e,"aria-hidden":!0,children:[s.jsx("path",{d:"M16 3h5v5"}),s.jsx("path",{d:"M8 3H3v5"}),s.jsx("path",{d:"m21 3-7.536 7.536A5 5 0 0 0 12 14.07V21"}),s.jsx("path",{d:"m3 3 7.536 7.536A5 5 0 0 1 12 14.07V15"})]})}function lz({message:e,showAssistantCopyAction:t=!0,cliApps:n=[],mcpPresets:r=[],onOpenFilePreview:a,onForkFromHere:o}){var F,z;const{t:i}=ie(),[l,c]=u.useState(!1),d=u.useRef(null),p="animate-in fade-in-0 slide-in-from-bottom-1 duration-300",m=u.useMemo(()=>dz(n,e.cliApps),[n,e.cliApps]),f=u.useMemo(()=>uz(r,e.mcpPresets),[r,e.mcpPresets]);u.useEffect(()=>()=>{d.current!==null&&window.clearTimeout(d.current)},[]);const h=u.useCallback(()=>{nz(e.content).then(K=>{K&&(c(!0),d.current!==null&&window.clearTimeout(d.current),d.current=window.setTimeout(()=>{c(!1),d.current=null},1500))})},[e.content]);if(e.kind==="trace")return s.jsx(hz,{message:e,animClass:p});if(e.role==="user"){const K=e.images??[],$=e.media??[],W=K.length>0,P=$.length>0,D=e.content.trim().length>0;return s.jsxs("div",{className:j("group ml-auto flex max-w-[min(85%,36rem)] flex-col items-end gap-1.5",p),children:[W?s.jsx(MC,{images:K,align:"right"}):null,P?s.jsx(ix,{media:$,align:"right"}):null,D?s.jsx("p",{className:j("ml-auto w-fit rounded-[18px] bg-secondary/70 px-4 py-2","text-left text-[16px]/[1.75] whitespace-pre-wrap break-words"),children:s.jsx(mO,{text:e.content,cliApps:m,mcpPresets:f})}):null]})}const y=e.content.trim().length===0,x=e.media??[],b=e.role==="assistant"?e.reasoning??"":"",v=!!(e.role==="assistant"&&e.reasoningStreaming),g=b.length>0||v,w=((F=e.source)==null?void 0:F.kind)==="cron"?((z=e.source.label)==null?void 0:z.trim())||i("message.automationSourceFallback"):"",k=i("message.automationTriggered"),C=e.role==="assistant"&&!e.isStreaming&&!y,N=t&&C,S=C&&!!o,A=i(l?"message.copiedReply":"message.copyReply"),E=i("message.forkFromHere"),_=e.latencyMs,R=e.role==="assistant"&&_!=null&&!e.isStreaming&&(!y||g||x.length>0),T=N||S||R;return s.jsxs("div",{className:j("w-full text-[15px]",p),style:{lineHeight:"var(--cjk-line-height)"},children:[g?s.jsx(fz,{text:b,streaming:v,hasBodyBelow:!y,onOpenFilePreview:a}):null,y&&e.isStreaming&&!g?s.jsx(mz,{}):y&&e.isStreaming?null:s.jsxs(s.Fragment,{children:[w?s.jsx(cz,{label:w,triggerLabel:k}):null,s.jsx(Du,{streaming:!!e.isStreaming,onOpenFilePreview:a,children:e.content}),x.length>0?s.jsx(ix,{media:x,align:"left"}):null,T?s.jsx(Ru,{delayDuration:220,skipDelayDuration:80,children:s.jsxs("div",{className:"mt-2 flex min-h-8 flex-wrap items-center gap-x-2 gap-y-1 text-muted-foreground",children:[N?s.jsxs(Ei,{children:[s.jsx(Ii,{asChild:!0,children:s.jsx("button",{type:"button",onClick:h,"aria-label":A,className:j("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full","transition-colors hover:bg-muted/55 hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),children:l?s.jsx(Et,{className:"h-4 w-4","aria-hidden":!0}):s.jsx(Zb,{className:"h-4 w-4","aria-hidden":!0})})}),s.jsx(ss,{side:"top",align:"center",children:A})]}):null,S?s.jsxs(Ei,{children:[s.jsx(Ii,{asChild:!0,children:s.jsx("button",{type:"button",onClick:o,"aria-label":E,className:j("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full","transition-colors hover:bg-muted/55 hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),children:s.jsx(iz,{className:"h-4 w-4"})})}),s.jsx(ss,{side:"top",align:"center",children:E})]}):null,R?s.jsx("span",{className:"text-[11px] leading-none text-muted-foreground/70 tabular-nums",title:i("message.turnLatencyTitle"),children:OM(_)}):null]})}):null]})]})}function cz({label:e,triggerLabel:t}){return s.jsxs("div",{className:j("mb-2 inline-flex max-w-full items-center gap-1.5 rounded-full px-2 py-1","border border-sky-500/15 bg-sky-500/[0.06]","text-[11px] font-medium leading-none text-sky-700","dark:border-sky-300/15 dark:bg-sky-300/[0.08] dark:text-sky-200/80"),title:t,children:[s.jsx(Qj,{className:"h-3 w-3 shrink-0","aria-hidden":!0}),s.jsx("span",{className:"min-w-0 truncate",children:e}),s.jsx("span",{className:"text-current/45","aria-hidden":!0,children:"·"}),s.jsx("span",{className:"shrink-0",children:t})]})}function uz(e,t){var r;if(!(t!=null&&t.length))return e;const n=new Map(e.map(a=>[a.name.toLowerCase(),a]));for(const a of t){const o=(r=a.name)==null?void 0:r.trim();if(!o)continue;const i=n.get(o.toLowerCase());n.set(o.toLowerCase(),{name:o,display_name:a.display_name||(i==null?void 0:i.display_name)||o,category:a.category||(i==null?void 0:i.category)||"mcp",description:(i==null?void 0:i.description)||"",docs_url:(i==null?void 0:i.docs_url)||"",transport:a.transport||(i==null?void 0:i.transport)||"mcp",requires:(i==null?void 0:i.requires)||"",note:(i==null?void 0:i.note)||"",install_supported:(i==null?void 0:i.install_supported)??!0,installed:!0,configured:a.configured??(i==null?void 0:i.configured)??!0,available:(i==null?void 0:i.available)??!0,status:a.status||(i==null?void 0:i.status)||"configured",logo_url:a.logo_url??(i==null?void 0:i.logo_url)??null,brand_color:a.brand_color??(i==null?void 0:i.brand_color)??null,required_fields:(i==null?void 0:i.required_fields)||[],connection_summary:(i==null?void 0:i.connection_summary)||""})}return Array.from(n.values())}function dz(e,t){var r;if(!(t!=null&&t.length))return e;const n=new Map(e.map(a=>[a.name.toLowerCase(),a]));for(const a of t){const o=(r=a.name)==null?void 0:r.trim();if(!o)continue;const i=n.get(o.toLowerCase());n.set(o.toLowerCase(),{name:o,display_name:a.display_name||(i==null?void 0:i.display_name)||o,category:a.category||(i==null?void 0:i.category)||"cli",description:(i==null?void 0:i.description)||"",requires:(i==null?void 0:i.requires)||"",source:(i==null?void 0:i.source)||"attached",entry_point:a.entry_point||(i==null?void 0:i.entry_point)||"",install_supported:(i==null?void 0:i.install_supported)??!0,installed:!0,available:(i==null?void 0:i.available)??!0,status:(i==null?void 0:i.status)||"installed",logo_url:a.logo_url??(i==null?void 0:i.logo_url)??null,brand_color:a.brand_color??(i==null?void 0:i.brand_color)??null,skill_installed:(i==null?void 0:i.skill_installed)??!0})}return Array.from(n.values())}function ix({media:e,align:t}){if(e.length===0)return null;const n=[],r=[];for(const a of e){const o=cs(a);o.kind==="image"?n.push({url:o.url,name:o.name}):r.push(o)}return s.jsxs("div",{className:j("mt-2 flex flex-wrap gap-2",t==="right"?"justify-end":"justify-start"),children:[n.length>0?s.jsx(MC,{images:n,align:t,size:t==="left"?"large":"compact"}):null,r.map((a,o)=>s.jsx(TC,{attachment:a},`${a.url??a.name??a.kind}-${o}`))]})}function MC({images:e,align:t="right",size:n="compact"}){const{t:r}=ie(),a=[],o=new Map;for(let c=0;cs.jsx(pz,{image:c,size:n,placeholderLabel:r("message.imageAttachment"),openLabel:r("lightbox.open"),onOpen:o.has(d)?()=>l(o.get(d)):void 0},`${c.url??"placeholder"}-${d}`))}),s.jsx(tz,{images:a,index:i,onIndexChange:l,onOpenChange:c=>{c||l(null)}})]})}function pz({image:e,size:t,placeholderLabel:n,openLabel:r,onOpen:a}){const o=typeof e.url=="string"&&e.url.length>0,i=j("relative overflow-hidden border border-border/60 bg-muted/40",t==="large"?"w-[min(100%,34rem)] rounded-[20px] bg-transparent":"h-24 w-24 rounded-[14px]","shadow-[0_6px_18px_-14px_rgba(0,0,0,0.45)]");return o&&a?s.jsx("button",{type:"button",onClick:a,"aria-label":e.name?`${r}: ${e.name}`:r,className:j(i,"block cursor-zoom-in p-0 transition-transform duration-150 motion-reduce:transition-none","hover:scale-[1.01] hover:ring-2 hover:ring-primary/25","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50"),children:s.jsx("img",{src:e.url,alt:e.name??"",loading:"lazy",decoding:"async",draggable:!1,className:j("block",t==="large"?"h-auto max-h-[36rem] w-full rounded-[inherit] object-contain":"h-full w-full object-cover")})}):s.jsx("div",{className:i,title:e.name??void 0,children:s.jsxs("div",{className:"flex h-full w-full flex-col items-center justify-center gap-1 px-2 text-[11px] text-muted-foreground","aria-label":n,children:[s.jsx(Wi,{className:"h-4 w-4 flex-none","aria-hidden":!0}),s.jsx("span",{className:"line-clamp-2 text-center leading-tight",children:e.name??n})]})})}function mz(){const{t:e}=ie();return s.jsxs("span",{"aria-label":e("message.assistantTyping"),className:"inline-flex items-center gap-1 py-1",children:[s.jsx($d,{delay:"0ms"}),s.jsx($d,{delay:"150ms"}),s.jsx($d,{delay:"300ms"})]})}function $d({delay:e}){return s.jsx("span",{style:{animationDelay:e},className:j("inline-block h-1.5 w-1.5 rounded-full bg-muted-foreground/60","animate-bounce")})}function Ou({children:e,active:t,className:n}){const r=typeof e=="string"||typeof e=="number"?String(e):void 0;return s.jsx("span",{className:j("block min-w-0 overflow-hidden py-px",n),children:s.jsx("span",{"data-sheen-text":t?r:void 0,className:j("block w-fit max-w-full truncate font-medium leading-normal",t?"streaming-text-sheen":"text-muted-foreground"),children:e})})}function fz({text:e,streaming:t,hasBodyBelow:n,embeddedInCluster:r=!1,onOpenFilePreview:a}){const{t:o}=ie(),[i,l]=u.useState(!1),[c,d]=u.useState(!0),p=i?c:t,m=()=>{l(!0),d(f=>i?!f:!p)};return u.useEffect(()=>{p&&e.length>0&&Lu()},[p,e.length]),s.jsxs("div",{className:j("w-full",!r&&"animate-in fade-in-0 slide-in-from-top-1 duration-200",n&&"mb-2"),children:[s.jsxs("button",{type:"button",onClick:m,className:j("group flex w-full items-center gap-2 rounded-md px-2 py-1.5","text-xs text-muted-foreground transition-colors hover:bg-muted/45"),"aria-expanded":p,"aria-live":t?"polite":void 0,children:[s.jsx($o,{className:j("h-3.5 w-3.5",t&&"animate-pulse"),"aria-hidden":!0}),s.jsx(Ou,{active:t,className:"min-w-0 flex-1 text-left",children:t?o("message.reasoningStreaming",{defaultValue:"Thinking…"}):o("message.reasoning",{defaultValue:"Thinking"})}),s.jsx(Wr,{"aria-hidden":!0,className:j("ml-auto h-3.5 w-3.5 transition-transform duration-200",p&&"rotate-90")})]}),p&&e.length>0&&s.jsx("div",{className:j("mt-1 min-w-0 border-l border-muted-foreground/20 pl-3",!r&&"animate-in fade-in-0 slide-in-from-top-1 duration-200"),children:s.jsx(Du,{streaming:t,onOpenFilePreview:a,className:j("text-[12.5px] italic text-muted-foreground/88","prose-p:my-1.5 prose-li:my-0.5","prose-headings:mt-2 prose-headings:mb-1 prose-headings:font-medium","prose-headings:text-muted-foreground/92 prose-strong:text-muted-foreground","prose-h1:text-[15px] prose-h2:text-[13.5px] prose-h3:text-[12.5px] prose-h4:text-[12px]","prose-a:text-blue-500 prose-a:underline hover:prose-a:text-blue-600 dark:prose-a:text-blue-300 dark:hover:prose-a:text-blue-200","prose-code:text-[0.92em]"),children:e})})]})}function hz({message:e,animClass:t}){const{t:n}=ie(),r=e.traces??[e.content],a=r.length,[o,i]=u.useState(!1);return s.jsxs("div",{className:j("w-full",t),children:[s.jsxs("button",{type:"button",onClick:()=>i(l=>!l),className:j("group flex w-full items-center gap-2 rounded-md px-2 py-1.5","text-xs text-muted-foreground transition-colors hover:bg-muted/45"),"aria-expanded":o,children:[s.jsx(lw,{className:"h-3.5 w-3.5","aria-hidden":!0}),s.jsx("span",{className:"font-medium",children:a===1?n("message.toolSingle"):n("message.toolMany",{count:a})}),s.jsx(Wr,{"aria-hidden":!0,className:j("ml-auto h-3.5 w-3.5 transition-transform duration-200",o&&"rotate-90")})]}),o&&s.jsx("ul",{className:j("mt-1 space-y-0.5 border-l border-muted-foreground/20 pl-3","animate-in fade-in-0 slide-in-from-top-1 duration-200"),children:r.map((l,c)=>s.jsx("li",{className:"whitespace-pre-wrap break-words font-mono text-[11.5px] leading-relaxed text-muted-foreground/90",children:l},c))})]})}function EC({evidence:e,className:t}){return e.length===0?null:s.jsx("div",{"data-testid":"activity-evidence-preview",className:j("flex max-w-full flex-wrap items-start gap-2 pt-0.5","motion-safe:animate-in motion-safe:fade-in-0 motion-safe:slide-in-from-top-1 motion-safe:duration-200",t),children:e.slice(0,4).map(n=>s.jsx(TC,{attachment:n.attachment,variant:"compact",className:j(n.attachment.kind==="image"||n.attachment.kind==="video"?"max-w-[min(100%,20rem)]":"max-w-[14rem]")},n.id))})}function IC({title:e,icon:t,children:n,className:r}){return s.jsxs("section",{className:j("min-w-0 py-1 motion-safe:animate-in motion-safe:fade-in-0 motion-safe:slide-in-from-bottom-1 motion-safe:duration-200",r),children:[s.jsxs("div",{className:"mb-1 flex min-w-0 items-center gap-1.5 pl-0.5 text-[12px] font-medium text-muted-foreground/70",children:[t?s.jsx(t,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}):null,s.jsx("span",{className:"min-w-0 truncate",children:e})]}),s.jsx("div",{className:"min-w-0",children:n})]})}function so({as:e="div",icon:t,marker:n,label:r,detail:a,aside:o,children:i,active:l=!1,tone:c=l?"active":"neutral",title:d,className:p,contentClassName:m,markerClassName:f,style:h}){return s.jsxs(e,{className:j("group/activity-step relative grid min-w-0 grid-cols-[1.125rem_minmax(0,1fr)] gap-2 py-0.5 text-[13px] leading-5",p),title:d,style:h,children:[s.jsx("span",{className:j("relative flex h-5 w-[1.125rem] shrink-0 items-start justify-center pt-[3px]","after:absolute after:left-1/2 after:top-[1.25rem] after:h-[calc(100%+0.375rem)] after:w-px after:-translate-x-1/2 after:bg-muted-foreground/14 group-last/activity-step:after:hidden"),"aria-hidden":!0,children:n??s.jsx("span",{className:j("grid h-3.5 w-3.5 place-items-center rounded-full border bg-background transition-colors",c==="active"&&"border-muted-foreground/28 text-muted-foreground/72",c==="success"&&"border-emerald-500/28 text-emerald-500/78",c==="error"&&"border-destructive/30 text-destructive/78",c==="neutral"&&"border-muted-foreground/18 text-muted-foreground/50",f),children:t?s.jsx(t,{className:"h-2.5 w-2.5",strokeWidth:2.15}):null})}),s.jsxs("div",{className:j("min-w-0",m),children:[s.jsxs("div",{className:"flex min-w-0 items-baseline gap-1.5",children:[s.jsx(Ou,{active:l,className:j("min-w-0 shrink-0 font-medium",c==="error"?"text-destructive/78":"text-muted-foreground/85"),children:r}),a?s.jsx("span",{className:"min-w-0 break-words text-foreground/82",children:a}):null,o?s.jsx("span",{className:"ml-auto shrink-0",children:o}):null]}),i?s.jsx("div",{className:"mt-1 min-w-0",children:i}):null]})]})}function eh({added:e,deleted:t}){return s.jsxs("span",{className:"inline-flex shrink-0 items-baseline gap-1.5 leading-[inherit] tabular-nums","data-testid":"activity-diff-pair",children:[s.jsx(lx,{sign:"+",value:e,className:"text-emerald-600/75 dark:text-emerald-300/75"}),s.jsx(lx,{sign:"-",value:t,className:"text-rose-600/70 dark:text-rose-300/75"})]})}function lx({sign:e,value:t,className:n}){const r=Number.isFinite(t)?Math.max(0,Math.round(t)):0;return s.jsxs("span",{className:j("inline-flex items-baseline leading-[inherit]",n),"aria-label":`${e}${r}`,children:[s.jsxs("span",{className:"inline-flex items-baseline leading-none","aria-hidden":!0,children:[e,s.jsx(gz,{value:r})]}),s.jsxs("span",{className:"sr-only",children:[e,r]})]})}function gz({value:e}){const t=Number.isFinite(e)?Math.max(0,Math.round(e)):0,[n,r]=u.useState(0),a=u.useRef(0),o=u.useCallback(i=>{a.current=i,r(i)},[]);return u.useEffect(()=>{var h;if((h=window.matchMedia)==null?void 0:h.call(window,"(prefers-reduced-motion: reduce)").matches){o(t);return}const l=a.current,c=t-l;if(c===0){o(t);return}const d=260,p=performance.now();let m=0;const f=y=>{const x=Math.min(1,(y-p)/d),b=1-Math.pow(1-x,3);if(o(Math.round(l+c*b)),x<1){m=window.requestAnimationFrame(f);return}a.current=t};return m=window.requestAnimationFrame(f),()=>window.cancelAnimationFrame(m)},[t,o]),s.jsx(vz,{value:n})}function vz({value:e}){const t=String(e).split("");return s.jsx("span",{className:"inline-flex items-baseline leading-none","aria-hidden":!0,children:t.map((n,r)=>s.jsx(xz,{digit:Number(n)},`${t.length}-${r}`))})}function xz({digit:e}){const t=Number.isFinite(e)?Math.min(9,Math.max(0,e)):0;return s.jsxs("span",{className:"relative inline-block h-[1em] w-[0.62em] overflow-hidden align-baseline leading-none",children:[s.jsx("span",{className:"invisible block h-[1em] leading-none",children:"0"}),s.jsx("span",{className:"absolute inset-x-0 top-0 flex flex-col transition-transform duration-200 ease-out will-change-transform",style:{transform:`translateY(-${t}em)`},children:Array.from({length:10},(n,r)=>s.jsx("span",{className:"block h-[1em] leading-none",children:r},r))})]})}function LC({edits:e,onOpenFilePreview:t}){return e.length===0?null:s.jsx("ul",{className:"space-y-1",children:e.map(n=>s.jsx(yz,{edit:n,onOpenFilePreview:t},n.key))})}function yz({edit:e,onOpenFilePreview:t}){const{t:n}=ie(),r=e.status==="editing",a=e.status==="error",o=!a&&!e.binary&&DC(e),i=a?OC(e.error):"",l=a?bz(e.error)||n("message.fileEditFailedFallback",{defaultValue:"File change was not applied."}):"",c=a?s.jsx(ja,{className:"h-3 w-3","aria-hidden":!0}):r?s.jsx(Jb,{className:"h-3 w-3 animate-spin","aria-hidden":!0}):s.jsx(Xb,{className:"h-3 w-3","aria-hidden":!0});return s.jsx(so,{as:"li",marker:s.jsx("span",{className:j("grid h-3.5 w-3.5 place-items-center rounded-full border bg-background transition-colors",a&&"border-destructive/30 text-destructive/78",r&&"border-muted-foreground/24 text-muted-foreground/65",!a&&!r&&"border-emerald-500/28 text-emerald-500/78"),children:c}),active:r,tone:a?"error":r?"active":"success",className:"text-xs",contentClassName:a?"min-w-0":"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3",title:i||e.absolute_path||e.path,label:e.pending&&!e.path?n("message.fileEditPreparing",{defaultValue:"Preparing file edit…"}):s.jsx(Xf,{path:e.path,tooltipPath:e.absolute_path,previewPath:e.absolute_path||e.path,onOpen:t,display:"path",active:r,className:"min-w-0",textClassName:"text-[12px]",testId:"activity-file-reference"}),detail:null,aside:o?s.jsx(eh,{added:e.added,deleted:e.deleted}):null,children:a?s.jsx("span",{className:"block max-w-[42rem] truncate text-[11px] leading-4 text-destructive/75",children:l}):null})}function DC(e){return e.added>0||e.deleted>0}function OC(e){const t=(e||"").replace(/\s+/g," ").trim();return t?t.replace(/^Error applying patch:\s*/i,"").replace(/^Error writing file:\s*/i,"").replace(/^Error editing file:\s*/i,"").replace(/^Error:\s*/i,""):""}function bz(e){const t=OC(e);return t?/\bpermission denied\b/i.test(t)||/\boperation not permitted\b/i.test(t)?"No permission to change this location.":t.replace(/^old_text not found in (.+)$/i,"Target text was not found in $1.").replace(/^old_text appears multiple times in (.+)$/i,"Target text matched multiple places in $1.").replace(/^file to (?:update|delete) does not exist: (.+)$/i,"File does not exist: $1.").replace(/^path to (?:update|delete) is not a file: (.+)$/i,"Path is not a file: $1.").slice(0,180):""}function wz({text:e,streaming:t,onOpenFilePreview:n}){const{t:r}=ie();return u.useEffect(()=>{e.length>0&&Lu()},[e.length]),s.jsx(so,{marker:s.jsx(kz,{streaming:t}),active:t,tone:t?"active":"success",label:t?r("message.reasoningStreaming",{defaultValue:"Thinking…"}):r("message.reasoning",{defaultValue:"Thinking"}),children:e.trim()?s.jsx(Du,{streaming:t,onOpenFilePreview:n,className:j("min-w-0 text-[12.5px] italic text-muted-foreground/78","prose-p:my-1 prose-li:my-0.5","prose-headings:mt-2 prose-headings:mb-1 prose-headings:font-medium","prose-headings:text-muted-foreground/88 prose-strong:text-muted-foreground","prose-h1:text-[15px] prose-h2:text-[13.5px] prose-h3:text-[12.5px] prose-h4:text-[12px]","prose-a:text-blue-500 prose-a:underline hover:prose-a:text-blue-600 dark:prose-a:text-blue-300 dark:hover:prose-a:text-blue-200","prose-code:text-[0.92em]"),children:e}):null})}function kz({streaming:e}){const t=u.useRef(e),[n,r]=u.useState(!1);return u.useEffect(()=>{if(t.current&&!e){r(!0);const a=window.setTimeout(()=>r(!1),650);return t.current=e,()=>window.clearTimeout(a)}t.current=e},[e]),e?s.jsx(Jb,{"data-testid":"activity-reasoning-marker","data-state":"thinking",className:"h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground/55",strokeWidth:1.8,"aria-hidden":!0}):s.jsx("span",{"data-testid":"activity-reasoning-marker","data-state":"done",className:j("grid h-3.5 w-3.5 shrink-0 place-items-center rounded-full border border-emerald-500/28 text-emerald-500/78","bg-emerald-500/[0.035] transition-[border-color,background-color,box-shadow,transform] duration-300 ease-out",n&&"animate-in fade-in-0 zoom-in-75 shadow-[0_0_0_3px_rgba(16,185,129,0.10)] motion-reduce:animate-none"),"aria-hidden":!0,children:s.jsx(Et,{className:j("h-2.5 w-2.5 stroke-[2.4]",n&&"animate-in fade-in-0 zoom-in-50 duration-300 motion-reduce:animate-none")})})}function Fu(e){var t;return e.role!=="assistant"||e.kind==="trace"||e.content.trim().length>0?!1:!!((t=e.reasoning)!=null&&t.length||e.reasoningStreaming||e.isStreaming)}function Ba(e){return Fu(e)||e.kind==="trace"}function Wc(e){if(e.length===0)return!1;const t=e[e.length-1];if(!Ba(t))return!1;let n=e.length-1;for(;n>0&&Ba(e[n-1]);)n-=1;const r=e.slice(n);if(r.some(i=>i.isStreaming||i.reasoningStreaming))return!0;const a=e[n-1];if(!a||a.role!=="assistant"||Ba(a))return!0;const o=new Set(r.map(i=>i.turnId).filter(i=>typeof i=="string"&&i.length>0));return a.turnId?o.size>0&&!o.has(a.turnId):o.size>0}function Cz(e,t={}){const n=[];let r=[],a;const o=(i={})=>{if(r.length===0)return;const l=[],c=Sz(r),d=jz(c);let p=0,m=[];const f=()=>{m.length&&(Az(l,m,d.slice(p)),m=[])};for(const h of c){if(Ba(h)){m.push(h);continue}if(FC(h)){m.push(Pz(h)),f(),l.push({type:"message",message:zC(h)}),p+=1;continue}f(),l.push({type:"message",message:h}),p+=1}f(),n.push(...Nz(l,i)),r=[],a=void 0};for(const i of e){if(i.role==="user"){o(),n.push({type:"message",message:i}),a=i.turnId;continue}i.turnId&&a&&i.turnId!==a&&o(),i.turnId&&(a=i.turnId),r.push(i)}return o(t),n}function Sz(e){return e.length<2||!e.every(t=>Number.isFinite(t.turnSeq))?e:e.map((t,n)=>({message:t,index:n})).sort((t,n)=>(t.message.turnSeq??0)-(n.message.turnSeq??0)||t.index-n.index).map(({message:t})=>t)}function Nz(e,t){var a,o;if(t.preserveTrailingActivity||e.length<2||((a=e[e.length-1])==null?void 0:a.type)!=="activity")return e;let n=e.length-1;for(;n>0&&((o=e[n-1])==null?void 0:o.type)==="activity";)n-=1;const r=e[n-1];return!r||r.type!=="message"||r.message.role!=="assistant"?e:[...e.slice(0,n-1),...e.slice(n),r]}function jz(e){const t=[];for(const n of e)Ba(n)||t.push(FC(n)?zC(n):n);return t}function Az(e,t,n){let r=[],a,o;const i=()=>{r.length&&(e.push({type:"activity",messages:r,items:r.flatMap(Tz),turnLatencyMs:Rz(r,n)}),r=[],a=void 0,o=void 0)};for(const l of t){const c=_z(l)?"file":"other",d=l.activitySegmentId;(a&&c!==a||c==="file"&&a==="file"&&!!o&&!!d&&o!==d)&&i(),a=c,d&&(o=d),r.push(l)}i()}function _z(e){var t;return e.kind==="trace"&&!!((t=e.fileEdits)!=null&&t.length)}function FC(e){var t;return e.role==="assistant"&&e.kind!=="trace"&&e.content.trim().length>0&&(!!((t=e.reasoning)!=null&&t.trim())||!!e.reasoningStreaming)}function Pz(e){return{id:`${e.id}-reasoning`,role:"assistant",content:"",createdAt:e.createdAt,reasoning:e.reasoning,reasoningStreaming:e.reasoningStreaming,isStreaming:e.reasoningStreaming,activitySegmentId:e.activitySegmentId,latencyMs:e.latencyMs}}function zC(e){const t={...e};return delete t.reasoning,delete t.reasoningStreaming,t}function Tz(e){var n,r,a;if(Fu(e))return[{type:"reasoning",message:e}];if(e.kind!=="trace")return[];const t=[];(n=e.fileEdits)!=null&&n.length&&t.push({type:"file_edit",message:e});for(const o of e.toolEvents??[]){const i=String(o.name??"").toLowerCase();i==="run_cli_app"?t.push({type:"cli",message:e}):i==="mcp"?t.push({type:"mcp",message:e}):t.push({type:"tool",message:e})}return t.length===0&&((r=e.traces)!=null&&r.length||e.content.trim())&&t.push({type:"tool",message:e}),(a=e.media)!=null&&a.length&&t.push({type:"media",message:e}),t}function Rz(e,t){for(let n=t.length-1;n>=0;n-=1){const r=t[n].latencyMs;if(cx(r))return r}for(let n=e.length-1;n>=0;n-=1){const r=e[n].latencyMs;if(cx(r))return r}}function cx(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0}function Mz(e){const t=Iz(dx(e)),n=[];return[...ux(e.embeds),...ux(e.files)].forEach((a,o)=>{const i=Lz(a);i&&n.push({id:`${e.call_id||dx(e)||"tool"}:${o}:${i.url||i.name||i.kind}`,attachment:i,caption:i.name,source:t})}),n}function Ez(e){return(e.media??[]).map((t,n)=>({id:`${e.id}:media:${n}:${t.url||t.name||t.kind}`,attachment:t,caption:t.name,source:"media"}))}function ux(e){return Array.isArray(e)?e:[]}function dx(e){var t,n;return typeof((t=e.function)==null?void 0:t.name)=="string"?String((n=e.function)==null?void 0:n.name):typeof e.name=="string"?e.name:""}function Iz(e){const t=e.toLowerCase();return t.includes("browser")||t.includes("screenshot")?"browser":t.includes("web")||t.includes("search")||t.includes("fetch")||t.includes("read")?"web":t.includes("exec")||t.includes("shell")||t.includes("cli")?"shell":t.startsWith("mcp_")||t==="mcp"?"mcp":t.includes("file")||t.includes("patch")?"file":t.includes("image")||t.includes("video")||t.includes("media")?"media":"tool"}function Lz(e){if(typeof e=="string"){const i=e.trim();return i?cs({url:Oz(i)?i:void 0,name:px(i)}):null}if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e,n=Zl(t,["url","href","src","uri","signed_url","thumbnail_url"]),r=Zl(t,["path","absolute_path","file","filename"]),a=Zl(t,["name","filename","title","label"])??px(n??r??""),o=Dz(t,n,a);return cs({url:n,name:a,kind:o})}function Zl(e,t){for(const n of t){const r=e[n];if(typeof r=="string"&&r.trim())return r.trim()}}function Dz(e,t,n){var a;const r=((a=Zl(e,["kind","type","mime","mime_type","content_type"]))==null?void 0:a.toLowerCase())??"";return r.includes("image")||r.includes("screenshot")?"image":r.includes("video")||r.includes("mp4")||r.includes("quicktime")?"video":r.includes("file")||r.includes("document")?"file":cs({url:t,name:n}).kind}function Oz(e){return/^(https?:|data:|\/api\/|blob:)/i.test(e)}function px(e){return(e.split(/[?#]/,1)[0]??"").split(/[\\/]/).filter(Boolean).pop()||void 0}function sl(e){var a,o;if(!e||typeof e!="object")return null;const t=e,n=typeof((a=t.function)==null?void 0:a.name)=="string"?t.function.name:typeof t.name=="string"?t.name:"";if(!n)return null;const r=((o=t.function)==null?void 0:o.arguments)??t.arguments;return typeof r=="string"&&r.trim()?`${n}(${r})`:r&&typeof r=="object"?`${n}(${JSON.stringify(r)})`:`${n}()`}const Fz=new Set(["start","end","error"]),mx={start:1,end:2,error:3};function $C(e){var n,r;if(!Array.isArray(e))return[];const t=[];for(const a of e){if(!a||typeof a!="object")continue;const o=a,i=o.phase;if(!(i&&typeof i=="string"&&Fz.has(i)))continue;const l=typeof o.name=="string"?o.name:"",c=typeof((n=o.function)==null?void 0:n.name)=="string"?String((r=o.function)==null?void 0:r.name):"";!l&&!c||t.push(o)}return t}function fx(e){return e.call_id?`call:${e.call_id}`:sl(e)??JSON.stringify(e)}function zz(e,t){if(!(e!=null&&e.length))return t;if(!t.length)return e;const n=[...e],r=new Map(n.map((a,o)=>[fx(a),o]));for(const a of t){const o=fx(a),i=r.get(o);if(i===void 0){r.set(o,n.length),n.push(a);continue}const l=n[i],c=mx[String(a.phase)]??0,d=mx[String(l.phase)]??0;n[i]=c>=d?{...l,...a}:l}return n}function UC(e){const t=new Set,n=[];for(const r of $C(e)){const a=r.call_id;if(a&&typeof a=="string"){if(t.has(a))continue;t.add(a)}const o=sl(r);o&&n.push(o)}return n}function $z(e,t){const n=new Set(e),r=[...e];let a=!1;for(const o of t)n.has(o)||(n.add(o),r.push(o),a=!0);return{traces:r,added:a}}const Uz="max-h-52",Bz=24;function Hz(e,t,n,r){let a=0,o=0;const i=n.length,l=r.length,c=n[n.length-1],d=c==null?void 0:c.name,p=c==null?void 0:c.status,m=r[r.length-1];for(const k of e){if(Fu(k)){a+=1;continue}if(k.kind==="trace"){const C=io(k);for(const N of C)!y$(N)&&!b$(N)&&(o+=1)}}let f=0,h=0,y=!1,x=!1,b=0,v=0,g,w;for(const k of t)g=k.path,w=k.absolute_path||k.path,k.status==="editing"&&(x=!0),k.status==="error"&&(b+=1),k.operation==="delete"&&(v+=1),!(k.status==="error"||k.binary)&&DC(k)&&(y=!0,f+=k.added,h+=k.deleted);return{reasoningSteps:a,toolCalls:o,cliCount:i,mcpCount:l,fileCount:t.length,added:f,deleted:h,hasDiffStats:y,hasEditingFiles:x,hasFailedFiles:t.length>0&&b===t.length,hasDeletedFiles:t.length>0&&v===t.length,primaryFilePath:g,primaryFileTooltipPath:w,primaryCliName:d,primaryCliStatus:p,primaryMcpName:m==null?void 0:m.presetName,primaryMcpDisplayName:m==null?void 0:m.displayName,primaryMcpStatus:m==null?void 0:m.status}}function Wz({messages:e,isTurnStreaming:t,hasBodyBelow:n,turnLatencyMs:r,cliApps:a=[],mcpPresets:o=[],onOpenFilePreview:i}){const{t:l}=ie(),c=u.useMemo(()=>K$(W$(e),t),[e,t]),d=u.useMemo(()=>C$(e),[e]),p=u.useMemo(()=>j$(e),[e]),m=u.useMemo(()=>new Map(a.map(ue=>[ue.name.toLowerCase(),ue])),[a]),f=u.useMemo(()=>new Map(o.map(ue=>[ue.name.toLowerCase(),ue])),[o]),{reasoningSteps:h,toolCalls:y,cliCount:x,mcpCount:b,fileCount:v,added:g,deleted:w,hasDiffStats:k,hasEditingFiles:C,hasFailedFiles:N,hasDeletedFiles:S,primaryFilePath:A,primaryFileTooltipPath:E,primaryCliName:_,primaryCliStatus:R,primaryMcpDisplayName:T,primaryMcpStatus:F}=Hz(e,c,d,p),z=c.some(ue=>ue.pending),[K,$]=u.useState(!1),[W,P]=u.useState(!1),[D,G]=u.useState(!1),[Y,oe]=u.useState(()=>Date.now()),de=u.useRef(null),pe=u.useRef(null),le=u.useRef(!0),I=u.useRef(null),Q=u.useRef(t),O=Q.current,ne=K?W:t||D||O&&!t,he=t&&C,ve=v===1?A:void 0,me=v===1?E:void 0,ee=h>0||y>0||x>0||b>0||v>0,we=v>0&&e.every(qz),je=y>0||x>0||b>0||v>0,xe=Gz(e,t,Y,r),Ee=Yz(xe),$e=je?t?l("message.activityWorkingFor",{duration:Ee,defaultValue:"Working for {{duration}}"}):xe<=0?l("message.activityWorked",{defaultValue:"Worked"}):l("message.activityWorkedFor",{duration:Ee,defaultValue:"Worked for {{duration}}"}):t?l("message.activityThinkingFor",{duration:Ee,defaultValue:"Thinking for {{duration}}"}):xe<=0?l("message.activityThought",{defaultValue:"Thought"}):l("message.activityThoughtFor",{duration:Ee,defaultValue:"Thought for {{duration}}"}),Se=v>0?z&&!ve?l("message.fileActivityPreparing",{defaultValue:"Preparing edit…"}):ve?l(U$(he,N,S),{file:Vz(ve),defaultValue:`${ec(he,N,S)} {{file}}`}):l(B$(he,N,S),{count:v,defaultValue:`${ec(he,N,S)} {{count}} files`}):"",Fe=x>0?x===1&&_?l(P$(R,t),{name:_,defaultValue:T$(R,t)}):l(R$(d,t),{count:x,defaultValue:M$(d,t)}):"",B=b>0?b===1&&T?l(L$(F,t),{name:T,defaultValue:D$(F,t)}):l(O$(p,t),{count:b,defaultValue:F$(p,t)}):"",X=v>0?Se:x>0?Fe:b>0?B:t?h>0?l("message.agentActivityLiveSummary",{reasoning:h,tools:y,defaultValue:"Working… · {{reasoning}} steps · {{tools}} tool calls"}):y===0&&v>0?l("message.agentActivityLiveFilesOnly",{defaultValue:"Working…"}):l("message.agentActivityLiveToolsOnly",{tools:y,defaultValue:"Working… · {{tools}} tool calls"}):h>0?l("message.agentActivitySummary",{reasoning:h,tools:y,defaultValue:"{{reasoning}} steps · {{tools}} tool calls"}):y===0&&v>0?l("message.agentActivityFilesOnly",{defaultValue:"File changes"}):l("message.agentActivityToolsOnly",{tools:y,defaultValue:"{{tools}} tool calls"}),J=u.useCallback(()=>{I.current!==null&&(window.cancelAnimationFrame(I.current),I.current=null)},[]),ye=u.useCallback(()=>{const ue=de.current;ue&&(ue.scrollTop=Math.max(0,ue.scrollHeight-ue.clientHeight))},[]),Ie=u.useCallback(()=>{J(),I.current=window.requestAnimationFrame(()=>{I.current=null,ye()})},[J,ye]),Ne=()=>{const ue=K?!W:!ne;ue&&(le.current=!0),$(!0),P(ue)};u.useLayoutEffect(()=>{!ne||!le.current||Ie()},[ne,e,t,Ie]),u.useEffect(()=>{if(!ne){le.current=!0;return}const ue=pe.current;if(!ue||typeof ResizeObserver>"u")return;const Be=new ResizeObserver(()=>{le.current&&Ie()});return Be.observe(ue),()=>Be.disconnect()},[ne,Ie]),u.useEffect(()=>J,[J]),u.useEffect(()=>{if(!t)return;const ue=window.setInterval(()=>oe(Date.now()),500);return()=>window.clearInterval(ue)},[t]),u.useEffect(()=>{const ue=Q.current;if(Q.current=t,t){G(!1);return}if(!ue||K)return;G(!0);const Be=window.setTimeout(()=>G(!1),900);return()=>window.clearTimeout(Be)},[t,K]);const Je=u.useCallback(()=>{const ue=de.current;if(!ue)return;const Be=ue.scrollHeight-ue.scrollTop-ue.clientHeight;le.current=Be0&&k&&s.jsx("span",{className:"inline-flex min-w-0 items-center gap-1 text-muted-foreground/85",children:s.jsx(eh,{added:g,deleted:w})})}),s.jsx(Wr,{"aria-hidden":!0,className:j("h-3.5 w-3.5 shrink-0 transition-transform duration-200",ne&&"rotate-90")})]}),ne&&s.jsx("div",{className:j("ml-1 mt-1 overflow-hidden pl-1"),children:s.jsx("div",{ref:de,"data-testid":"agent-activity-scroll",onScroll:Je,className:j(Uz,"overflow-y-auto py-1 pr-1 scrollbar-thin scrollbar-track-transparent"),children:s.jsxs("div",{ref:pe,className:"flex flex-col gap-0.5",children:[e.map(ue=>Fu(ue)?s.jsx(wz,{text:ue.reasoning??"",streaming:t&&!!ue.reasoningStreaming,onOpenFilePreview:i},ue.id):ue.kind==="trace"?s.jsx(Jz,{message:ue,active:t,cliAppsByName:m,mcpPresetsByName:f},ue.id):null),c.length?s.jsx(LC,{edits:c,onOpenFilePreview:i}):null]})})})]}):null}function qz(e){var t;return e.kind!=="trace"||!((t=e.fileEdits)!=null&&t.length)?!1:io(e).every(n=>!n.trim()||w$(n))}function Kz({edits:e,active:t,hasBodyBelow:n,summary:r,singleFilePath:a,singleFileTooltipPath:o,hasLiveEditingFiles:i,hasFailedFiles:l,hasDeletedFiles:c,added:d,deleted:p,hasDiffStats:m,onOpenFilePreview:f}){const h=e.length>1||e.some(y=>y.status==="error"||y.pending);return s.jsxs("div",{className:j("w-full",n&&"mb-2"),"aria-label":r,children:[s.jsxs("div",{className:j("flex max-w-full items-center gap-1.5 px-1 py-1","text-[12.5px] text-muted-foreground/72"),children:[s.jsx(Ou,{active:t,className:"min-w-0",children:a?ec(i,l,c):r}),a?s.jsx(Xf,{path:a,tooltipPath:o,previewPath:o||a,onOpen:f,active:i,className:"-my-0.5 min-w-0",textClassName:"text-xs",testId:"activity-header-file-reference"}):null,m?s.jsx("span",{className:"inline-flex min-w-0 items-center gap-1 text-muted-foreground/85",children:s.jsx(eh,{added:d,deleted:p})}):null]}),h?s.jsx("div",{className:"mt-0.5 pl-4",children:s.jsx(LC,{edits:e,onOpenFilePreview:f})}):null]})}function Vz(e){return e.split(/[\\/]/).pop()||e}function Gz(e,t,n,r){if(!t&&Number.isFinite(r)&&r>=0)return Math.round(r);const a=e.map(l=>l.createdAt).filter(l=>Number.isFinite(l));if(!a.length)return 0;const o=Math.min(...a),i=t&&o>1e12?n:Math.max(...a);return Math.max(0,i-o)}function Yz(e){const t=e>0&&e<1e3?1:Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;const n=Math.floor(t/60),r=t%60;return r?`${n}m ${r}s`:`${n}m`}function io(e){var t;return(t=e.traces)!=null&&t.length?e.traces:e.content.trim()?[e.content]:[]}function BC(e){return(e.agentUi??[]).filter(t=>t.kind.startsWith("subagent_"))}function Qz(e){return BC(e).length>0}function Xz({lines:e,active:t,evidenceByLine:n}){return s.jsx("ul",{className:"space-y-1",children:e.map((r,a)=>s.jsx(e$,{line:r,active:t&&a===e.length-1,evidence:(n==null?void 0:n.get(r))??[]},`${r}-${a}`))})}function Jz({message:e,active:t,cliAppsByName:n,mcpPresetsByName:r}){if(Qz(e))return s.jsx(Zz,{message:e,active:t});const a=io(e),o=k$(e),i=N$(e),l=n$(e),c=Ez(e),d=new Set,p=[];let m=[];const f=y=>{m.length&&(p.push(s.jsx(Xz,{lines:m,active:t,evidenceByLine:l},`${e.id}:trace:${y}`)),m=[])};a.forEach((y,x)=>{const b=o.get(y)??qC(y);if(b){f(String(x)),d.add(b.key),p.push(s.jsx(yx,{runs:[b],active:t,cliAppsByName:n},`${e.id}:cli:${b.key}:${x}`));const g=l.get(y)??[];g.length&&p.push(s.jsx(Ud,{evidence:g},`${e.id}:cli-evidence:${b.key}:${x}`));return}const v=i.get(y)??tS(y);if(v){f(String(x)),d.add(v.key),p.push(s.jsx(bx,{runs:[v],active:t,mcpPresetsByName:r},`${e.id}:mcp:${v.key}:${x}`));const g=l.get(y)??[];g.length&&p.push(s.jsx(Ud,{evidence:g},`${e.id}:mcp-evidence:${v.key}:${x}`));return}m.push(y)}),f("tail");for(const y of o.values())d.has(y.key)||p.push(s.jsx(yx,{runs:[y],active:t,cliAppsByName:n},`${e.id}:cli:${y.key}:event`));for(const y of i.values())d.has(y.key)||p.push(s.jsx(bx,{runs:[y],active:t,mcpPresetsByName:r},`${e.id}:mcp:${y.key}:event`));if(c.length&&p.push(s.jsx(Ud,{evidence:c},`${e.id}:media-evidence`)),!p.length)return null;const h=a$(e,l,c);return s.jsx(IC,{title:h.title,icon:h.icon,children:p})}function Zz({message:e,active:t}){const n=BC(e),r=io(e),a=r.map((o,i)=>{const l=n[Math.min(i,Math.max(n.length-1,0))],c=(l==null?void 0:l.kind)??"subagent_status",d=typeof(l==null?void 0:l.data)=="object"&&(l!=null&&l.data)&&"phase"in l.data?String(l.data.phase??""):"",p=c==="subagent_reasoning"?"子 Agent 分析":c==="subagent_output"?"子 Agent 输出":"子 Agent 状态";return s.jsx(so,{as:"li",icon:Ga,active:t&&i===r.length-1,tone:c==="subagent_output"?"success":"active",label:p,detail:d?`${d} · ${o}`:o,className:"subagent-activity-step",contentClassName:"subagent-activity-content",markerClassName:"subagent-activity-marker"},`${e.id}:subagent:${i}`)});return s.jsx(IC,{title:"会议整理子 Agent",icon:Ga,children:s.jsx("ul",{className:"space-y-1",children:a})})}function e$({line:e,active:t,evidence:n=[]}){const r=i$(e),a=r.kind==="search"?Tt:r.kind==="done"?Xb:r.kind==="tool"?lw:Ni;return s.jsx(so,{as:"li",marker:s.jsx(s$,{trace:r,fallbackIcon:a,active:t}),active:t&&r.kind!=="done",tone:r.kind==="done"?"success":t?"active":"neutral",label:r.label,detail:r.detail,title:`${r.label}${r.detail?` ${r.detail}`:""}`,children:s.jsx(EC,{evidence:n})})}function Ud({evidence:e}){return s.jsx("ul",{className:"space-y-1",children:s.jsx(so,{as:"li",icon:Vl,tone:"success",label:t$(e),children:s.jsx(EC,{evidence:e})})})}function t$(e){var n;const t=(n=e[0])==null?void 0:n.attachment.kind;return t==="image"?e.length>1?"Found images":"Found image":t==="video"?e.length>1?"Found videos":"Found video":e.length>1?"Found files":"Found file"}function n$(e){const t=new Map;for(const n of e.toolEvents??[]){const r=Mz(n);if(!r.length)continue;const a=sl(n);if(!a)continue;const o=t.get(a)??[];t.set(a,[...o,...r])}return t}function r$(e){return[...e.values()].flat()}function a$(e,t,n){var i;const r=[...io(e).map(l=>{var c;return((c=/^([a-zA-Z0-9_.-]+)\(/.exec(l.trim()))==null?void 0:c[1])??l}),...(e.toolEvents??[]).map(o$)].map(l=>l.toLowerCase()),a=[...r$(t),...n];return a.some(l=>l.attachment.kind==="image"||l.attachment.kind==="video")&&r.some(l=>/browser|screenshot|vision|image|video/.test(l))?{title:"Vision",icon:Vl}:r.some(l=>/browser|screenshot/.test(l))?{title:"Browser",icon:Vl}:r.some(l=>/web|search|fetch|read|open/.test(l))?{title:"Web",icon:Tt}:r.some(l=>/exec|shell|terminal|bash|run_cli_app|cli_anything/.test(l))?{title:"Shell",icon:_c}:r.some(l=>/^mcp_|mcp/.test(l))?{title:"MCP",icon:ts}:(i=e.fileEdits)!=null&&i.length?{title:"Files",icon:Ni}:a.length?{title:"Media",icon:Vl}:{title:"Working",icon:Ni}}function o$(e){var t,n;return typeof((t=e.function)==null?void 0:t.name)=="string"?String((n=e.function)==null?void 0:n.name):typeof e.name=="string"?e.name:""}function s$({trace:e,fallbackIcon:t,active:n}){const[r,a]=u.useState(0),o=e.host?Uc(e.host)[r]:void 0;return u.useEffect(()=>a(0),[e.host]),e.url&&e.host&&o?s.jsx("span",{"data-testid":`activity-web-favicon-${e.host}`,className:j("grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px] border border-border/45 bg-background shadow-[inset_0_0_0_1px_rgba(0,0,0,0.02)]",n&&"animate-pulse"),"aria-hidden":!0,children:s.jsx("img",{src:o,alt:"",className:"h-3.5 w-3.5 object-contain",onError:()=>a(i=>i+1)})}):s.jsx(t,{className:j("h-3.5 w-3.5 shrink-0",e.kind==="done"?"text-emerald-500/75":n?"text-muted-foreground/75":"text-muted-foreground/45"),"aria-hidden":!0})}function i$(e){const t=e.trim(),n=/^([a-zA-Z0-9_.-]+)\((.*)\)$/.exec(t),r=(n==null?void 0:n[1])??"",a=(n==null?void 0:n[2])??"",o=h$(a,t),i=o?v$(o):"",l=!!o&&/\b(fetch(?:ing|ed)?|read(?:ing)?|opened?|opening)\b/i.test(t);return/search/i.test(r)?{kind:"search",label:"Searching",detail:gx(a,t)}:/fetch|read|open/i.test(r)||l?{kind:"tool",label:"Reading",detail:i||gx(a,t),url:o==null?void 0:o.href,host:o?WC(o.hostname):void 0}:l$(r)?{kind:"tool",label:"Command",detail:c$(a,t)}:r?{kind:"tool",label:"Using",detail:r}:/done|complete|success/i.test(t)?{kind:"done",label:"Done",detail:t}:{kind:"trace",label:"Working",detail:t}}function l$(e){const t=e.toLowerCase().split(".").pop()||e.toLowerCase();return new Set(["exec","exec_command","execute_command","run_command","run_shell","shell","terminal","bash","sh"]).has(t)}function c$(e,t){const n=u$(e)||t;return d$(n)}function u$(e){const t=e.trim();if(!t)return"";try{const n=JSON.parse(t);if(typeof n=="string")return n;if(!n||typeof n!="object"||Array.isArray(n))return"";const r=n;for(const a of["command","cmd","script","input"]){const o=r[a];if(typeof o=="string"&&o.trim())return o}}catch{return t.replace(/^["']|["']$/g,"")}return""}function d$(e){const n=p$(e.replace(/\r\n/g,` -`)).split(` -`).map(o=>o.trim()).filter(Boolean),r=m$(n[0]||"command"),a=f$(r,92);return n.length<=1?a:`${a} · script, ${n.length} lines`}function p$(e){return e.replace(/\b((?:[A-Z0-9_]*)(?:API[_-]?KEY|TOKEN|SECRET|PASSWORD|PASS|AUTH)(?:[A-Z0-9_]*))=(?:"[^"]*"|'[^']*'|[^\s]+)/gi,"$1=••••").replace(/\b(Bearer)\s+[A-Za-z0-9._~+/=-]+/gi,"$1 ••••").replace(/(--(?:api-?key|token|secret|password)(?:=|\s+))(?:"[^"]*"|'[^']*'|[^\s]+)/gi,"$1••••").replace(/([?&](?:api_?key|token|secret|password)=)[^&\s]+/gi,"$1••••")}function m$(e){return e.replace(/\/Users\/[^/\s"']+/g,"~").replace(/\/private\/tmp\/[^\s"']+/g,"/tmp/…").replace(/\/var\/folders\/[^\s"']+/g,"/var/folders/…")}function f$(e,t){if(e.length<=t)return e;const n=Math.ceil((t-1)*.62),r=Math.floor((t-1)*.38);return`${e.slice(0,n)}…${e.slice(-r)}`}function h$(e,t){var a;const n=[],r=e.trim();if(r)try{HC(JSON.parse(r),n)}catch{n.push(r.replace(/^["']|["']$/g,""))}n.push(t);for(const o of n){const i=hx(o);if(i)return i;const l=(a=o.match(/https?:\/\/[^\s"'<>),]+/i))==null?void 0:a[0];if(l){const c=hx(l);if(c)return c}}return null}function HC(e,t){if(typeof e=="string"){t.push(e);return}if(!e||typeof e!="object")return;if(Array.isArray(e)){for(const r of e.slice(0,6))HC(r,t);return}const n=e;for(const r of["url","uri","href","link"])typeof n[r]=="string"&&t.push(n[r])}function hx(e){try{const t=new URL(e);return t.protocol!=="http:"&&t.protocol!=="https:"||g$(t.hostname)?null:t}catch{return null}}function g$(e){const t=e.replace(/^\[|\]$/g,"").toLowerCase();if(!t||t==="localhost"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":"))return!0;const n=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(t);if(n){const[,r,a]=n,o=Number(r),i=Number(a);return o===0||o===10||o===127||o===100&&i>=64&&i<=127||o===169&&i===254||o===172&&i>=16&&i<=31||o===192&&i===168}return t==="::1"||t.startsWith("fc")||t.startsWith("fd")||t.startsWith("fe80:")}function WC(e){return e.replace(/^www\./i,"").toLowerCase()}function v$(e){const t=WC(e.hostname),n=e.pathname&&e.pathname!=="/"?e.pathname:"";return`${t}${n}`}function gx(e,t){const n=e.trim();if(!n)return t;try{const r=JSON.parse(n),a=ZC(r);if(a)return a}catch{}return n.replace(/^["']|["']$/g,"")}const x$=new Set(["run_cli_app","cli_anything_run"]),vx={running:1,done:2,error:3},xx={running:1,done:2,error:3},zu=/^mcp_([a-z0-9_-]+?)_(.+)$/i;function y$(e){return/^(run_cli_app|cli_anything_run)\(/.test(e.trim())}function b$(e){return zu.test(e.trim().split("(",1)[0]??"")}function w$(e){return/^(write_file|edit_file|apply_patch)\(/.test(e.trim())}function qC(e,t="running"){const n=/^(run_cli_app|cli_anything_run)\((.*)\)$/.exec(e.trim());if(!n)return null;const r=n[2].trim();let a={};if(r)try{a=JSON.parse(r)}catch{return{key:e,name:"cli",args:[r],json:!1,status:t}}return QC(a,{key:e,status:t})}function KC(e){var r;const n=((r=e.function)==null?void 0:r.arguments)??e.arguments;if(typeof n!="string")return n??{};if(!n.trim())return{};try{return JSON.parse(n)}catch{return{args:[n]}}}function VC(e){return e==="error"?"error":e==="end"?"done":"running"}function GC(e){const t=e.error;if(typeof t=="string")return t;if(t&&typeof t=="object")return JSON.stringify(t)}function YC(e){var t,n;return typeof((t=e.function)==null?void 0:t.name)=="string"?String((n=e.function)==null?void 0:n.name):typeof e.name=="string"?e.name:""}function QC(e,t){if(!e||typeof e!="object"||Array.isArray(e))return{key:t.key,name:"cli",args:[],json:!1,status:t.status,error:t.error};const n=e,r=typeof n.name=="string"&&n.name.trim()?n.name.trim():"cli",o=(Array.isArray(n.args)?n.args:[]).filter(i=>typeof i=="string");return{key:t.key,name:r,args:o,json:n.json===!0||n.json==="true",workingDir:typeof n.working_dir=="string"?n.working_dir:void 0,status:t.status,error:t.error}}function XC(e){const t=YC(e);if(!x$.has(t))return null;const n=KC(e),r=e.call_id?`call:${e.call_id}`:`${t}:${JSON.stringify(n)}`;return QC(n,{key:r,status:VC(e.phase),error:GC(e)})}function k$(e){const t=new Map;for(const n of e.toolEvents??[]){const r=XC(n);if(!r)continue;const a=sl(n);a&&t.set(a,JC(t.get(a),r))}return t}function JC(e,t){return e?vx[t.status]>=vx[e.status]?{...e,...t}:e:t}function C$(e){const t=new Map;for(const n of e){if(n.kind!=="trace")continue;let r=!1;for(const a of n.toolEvents??[]){const o=XC(a);o&&(r=!0,t.set(o.key,JC(t.get(o.key),o)))}if(!r)for(const a of io(n)){const o=qC(a);!o||t.has(o.key)||t.set(o.key,o)}}return[...t.values()]}function S$(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")||e}function Il(e){return typeof e=="string"&&e.trim()?e.trim():typeof e=="number"||typeof e=="boolean"?String(e):null}function ZC(e){if(!e||typeof e!="object"||Array.isArray(e))return Il(e)??"";const t=e;for(const r of["url","query","q","path","name","id","title","message","text"]){const a=Il(t[r]);if(a)return`${r}: ${a}`}return Object.entries(t).filter(([,r])=>Il(r)!==null).slice(0,2).map(([r,a])=>`${r}: ${Il(a)}`).join(" · ")}function eS(e,t,n){const r=zu.exec(e);if(!r)return null;const a=r[1].toLowerCase();return{key:n.key,presetName:a,displayName:S$(a),toolName:r[2],argsPreview:ZC(t),status:n.status,error:n.error}}function tS(e,t="running"){const n=/^([a-z0-9_-]+)\((.*)\)$/i.exec(e.trim());if(!n||!zu.test(n[1]))return null;const r=n[2].trim();let a={};if(r)try{a=JSON.parse(r)}catch{a=r}return eS(n[1],a,{key:e,status:t})}function nS(e){const t=YC(e);if(!zu.test(t))return null;const n=KC(e),r=e.call_id?`call:${e.call_id}`:`${t}:${JSON.stringify(n)}`;return eS(t,n,{key:r,status:VC(e.phase),error:GC(e)})}function N$(e){const t=new Map;for(const n of e.toolEvents??[]){const r=nS(n);if(!r)continue;const a=sl(n);a&&t.set(a,rS(t.get(a),r))}return t}function rS(e,t){return e?xx[t.status]>=xx[e.status]?{...e,...t}:e:t}function j$(e){const t=new Map;for(const n of e){if(n.kind!=="trace")continue;let r=!1;for(const a of n.toolEvents??[]){const o=nS(a);o&&(r=!0,t.set(o.key,rS(t.get(o.key),o)))}if(!r)for(const a of io(n)){const o=tS(a);!o||t.has(o.key)||t.set(o.key,o)}}return[...t.values()]}function A$(e){return/\s/.test(e)?JSON.stringify(e):e}function _$(e){return[...e.json?["--json"]:[],...e.args].map(A$).join(" ")}function P$(e,t){return e==="error"?"message.cliActivityFailedOne":t&&e==="running"?"message.cliActivityRunningOne":"message.cliActivityRanOne"}function T$(e,t){return e==="error"?"Failed @{{name}}":`${t&&e==="running"?"Using":"Used"} @{{name}}`}function R$(e,t){return e.some(n=>n.status==="error")?"message.cliActivityFailedMany":t&&e.some(n=>n.status==="running")?"message.cliActivityRunningMany":"message.cliActivityRanMany"}function M$(e,t){return e.some(n=>n.status==="error")?"{{count}} CLI apps failed":`${t&&e.some(n=>n.status==="running")?"Using":"Used"} {{count}} CLI apps`}function E$(e,t){return e.status==="error"?"message.cliRunFailed":t&&e.status==="running"?"message.cliRunRunning":"message.cliRunRan"}function I$(e,t){return e.status==="error"?"Failed":t&&e.status==="running"?"Using":"Used"}function L$(e,t){return e==="error"?"message.mcpActivityFailedOne":t&&e==="running"?"message.mcpActivityRunningOne":"message.mcpActivityRanOne"}function D$(e,t){return e==="error"?"Failed {{name}}":`${t&&e==="running"?"Using":"Used"} {{name}}`}function O$(e,t){return e.some(n=>n.status==="error")?"message.mcpActivityFailedMany":t&&e.some(n=>n.status==="running")?"message.mcpActivityRunningMany":"message.mcpActivityRanMany"}function F$(e,t){return e.some(n=>n.status==="error")?"{{count}} MCP calls failed":`${t&&e.some(n=>n.status==="running")?"Using":"Used"} {{count}} MCP tools`}function z$(e,t){return e.status==="error"?"message.mcpRunFailed":t&&e.status==="running"?"message.mcpRunRunning":"message.mcpRunRan"}function $$(e,t){return e.status==="error"?"Failed":t&&e.status==="running"?"Using":"Used"}function ec(e,t,n){return t?"Failed":n?e?"Deleting":"Deleted":e?"Editing":"Edited"}function U$(e,t,n){return t?"message.fileActivityFailedOne":n?e?"message.fileActivityDeletingOne":"message.fileActivityDeletedOne":e?"message.fileActivityEditingOne":"message.fileActivityEditedOne"}function B$(e,t,n){return t?"message.fileActivityFailedMany":n?e?"message.fileActivityDeletingMany":"message.fileActivityDeletedMany":e?"message.fileActivityEditingMany":"message.fileActivityEditedMany"}function H$(e){return e.call_id?`${e.call_id}|${e.tool}`:`${e.tool}|${e.path}`}function W$(e){var n;const t=[];for(const r of e)r.kind==="trace"&&((n=r.fileEdits)!=null&&n.length)&&t.push(...r.fileEdits);return t}function q$(e){const t=[],n=new Map;for(const r of e){const a=H$(r);n.has(a)||t.push(a),n.set(a,r)}return t.map(r=>n.get(r)).filter(Boolean)}function K$(e,t){const n=[],r=new Map;for(const a of q$(e)){const o=a.path||a.call_id||a.tool;let i=r.get(o);if(i||(i={key:o,path:a.path||"",absolute_path:a.absolute_path,added:0,deleted:0,approximate:!1,binary:!1,pending:!1,hasSuccessfulChange:!1,hasActiveEditing:!1,hasFailed:!1,operation:void 0},r.set(o,i),n.push(o)),a.path&&!i.path&&(i.path=a.path),a.absolute_path&&(i.absolute_path=a.absolute_path),a.operation==="delete"&&(i.operation="delete"),i.pending=i.pending||!!a.pending||!a.path,!a.path&&a.pending){t&&a.status==="editing"&&(i.hasActiveEditing=!0,i.approximate=i.approximate||!!a.approximate,a.binary||(i.added+=a.added,i.deleted+=a.deleted));continue}if(t&&a.status==="editing"){i.hasActiveEditing=!0,i.binary=i.binary||!!a.binary,i.approximate=i.approximate||!!a.approximate,a.binary||(i.added+=a.added,i.deleted+=a.deleted);continue}if(a.status==="error"){i.hasFailed=!0,i.error=a.error??i.error;continue}i.hasSuccessfulChange=!0,i.binary=i.binary||!!a.binary,i.approximate=t&&(i.approximate||!!a.approximate),a.binary||(i.added+=a.added,i.deleted+=a.deleted)}return n.flatMap(a=>{const o=r.get(a);if(!o.path&&!o.hasActiveEditing&&!o.hasSuccessfulChange&&!o.hasFailed)return[];const i=o.hasActiveEditing?"editing":o.hasSuccessfulChange?"done":o.hasFailed?"error":"done";return[{key:o.key,path:o.path,absolute_path:o.absolute_path,added:o.added,deleted:o.deleted,approximate:o.approximate,binary:o.binary,status:i,operation:o.operation,pending:o.pending&&!o.path,error:o.error}]})}function yx({runs:e,active:t,cliAppsByName:n}){return e.length===0?null:s.jsx("ul",{className:"space-y-1","data-testid":"activity-cli-runs",children:e.map(r=>s.jsx(V$,{run:r,active:t,app:n.get(r.name.toLowerCase())},r.key))})}function V$({run:e,active:t,app:n}){const{t:r}=ie(),[a,o]=u.useState(0),i=_$(e),l=e.status==="error",c=t&&e.status==="running",d=l?"#DC2626":(n==null?void 0:n.brand_color)||"#0891B2",m=u.useMemo(()=>oo(n==null?void 0:n.logo_url),[n==null?void 0:n.logo_url])[a],f=r(E$(e,t),{defaultValue:I$(e,t)});return u.useEffect(()=>o(0),[n==null?void 0:n.logo_url]),s.jsx(so,{as:"li",active:c,tone:l?"error":c?"active":e.status==="done"?"success":"neutral",title:`${f} @${e.name}${i?` ${i}`:""}${e.error?` ${e.error}`:""}`,label:f,marker:s.jsx("span",{"data-testid":`activity-cli-logo-${e.name.toLowerCase()}`,className:j("grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px] border text-[6.5px] font-semibold text-white",c&&"animate-pulse"),style:{borderColor:qc(d,22),backgroundColor:m?"hsl(var(--background))":d,boxShadow:c?`0 0 0 3px ${qc(d,9)}`:void 0},"aria-hidden":!0,children:m?s.jsx("img",{src:m,alt:"",className:"h-[78%] w-[78%] object-contain",onError:()=>o(h=>h+1)}):n?uC(n).slice(0,2):s.jsx(_c,{className:"h-3 w-3","aria-hidden":!0})}),children:s.jsxs("div",{className:"-mt-0.5 flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5",children:[s.jsxs("span",{className:"max-w-[11rem] shrink-0 truncate font-mono text-[12.5px] font-semibold text-foreground/90",children:["@",e.name]}),l?s.jsx(ja,{className:"h-3 w-3 shrink-0 translate-y-[0.16em] text-destructive/75","aria-hidden":!0}):null,i?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/36",children:"·"}),s.jsx("span",{className:"min-w-0 truncate font-mono text-[12px] text-muted-foreground/72",children:i})]}):null,e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-destructive/72",children:e.error})]}):null,e.workingDir&&!e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-muted-foreground/55",children:e.workingDir})]}):null]})})}function bx({runs:e,active:t,mcpPresetsByName:n}){return e.length===0?null:s.jsx("ul",{className:"space-y-1","data-testid":"activity-mcp-runs",children:e.map(r=>s.jsx(G$,{run:r,active:t,preset:n.get(r.presetName.toLowerCase())},r.key))})}function G$({run:e,active:t,preset:n}){const{t:r}=ie(),[a,o]=u.useState(0),i=e.status==="error",l=t&&e.status==="running",c=i?"#DC2626":(n==null?void 0:n.brand_color)||"#6D5DF6",p=u.useMemo(()=>oo(n==null?void 0:n.logo_url),[n==null?void 0:n.logo_url])[a],m=(n==null?void 0:n.display_name)||e.displayName,f=r(z$(e,t),{defaultValue:$$(e,t)});return u.useEffect(()=>o(0),[n==null?void 0:n.logo_url]),s.jsx(so,{as:"li",active:l,tone:i?"error":l?"active":e.status==="done"?"success":"neutral",title:`${f} ${m} ${e.toolName}${e.argsPreview?` ${e.argsPreview}`:""}${e.error?` ${e.error}`:""}`,label:f,marker:s.jsx("span",{"data-testid":`activity-mcp-logo-${e.presetName.toLowerCase()}`,className:j("grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px] border text-[6.5px] font-semibold text-white",l&&"animate-pulse"),style:{borderColor:qc(c,22),backgroundColor:p?"hsl(var(--background))":c,boxShadow:l?`0 0 0 3px ${qc(c,9)}`:void 0},"aria-hidden":!0,children:p?s.jsx("img",{src:p,alt:"",className:"h-[78%] w-[78%] object-contain",onError:()=>o(h=>h+1)}):n?dC(n).slice(0,2):s.jsx(ts,{className:"h-3 w-3","aria-hidden":!0})}),children:s.jsxs("div",{className:"-mt-0.5 flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5",children:[s.jsx("span",{className:"max-w-[12rem] shrink-0 truncate text-[12.5px] font-semibold text-foreground/90",children:m}),i?s.jsx(ja,{className:"h-3 w-3 shrink-0 translate-y-[0.16em] text-destructive/75","aria-hidden":!0}):null,s.jsx("span",{className:"shrink-0 text-muted-foreground/36",children:"·"}),s.jsxs("span",{className:"min-w-0 truncate font-mono text-[12px] text-muted-foreground/72",children:[e.toolName,e.argsPreview?` · ${e.argsPreview}`:""]}),e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-destructive/72",children:e.error})]}):null]})})}function qc(e,t){if(/^#[0-9a-f]{6}$/i.test(e)){const n=Math.round(t/100*255).toString(16).padStart(2,"0");return`${e}${n}`}return`color-mix(in srgb, ${e} ${t}%, transparent)`}function Y$(e,t=!1){return Cz(e,{preserveTrailingActivity:t})}function Q$(e){const t=new Array(e.length).fill(!0);let n=!1;for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.type==="message"&&a.message.role==="user"){n=!1;continue}a.type==="message"&&a.message.role==="assistant"&&(t[r]=!n),n=!0}return t}function X$({messages:e,isStreaming:t=!1,hiddenUserMessageCount:n=0,cliApps:r=[],mcpPresets:a=[],forkBoundaryMessageCount:o=null,onOpenFilePreview:i,onForkFromMessage:l}){const{t:c}=ie(),d=u.useMemo(()=>Y$(e,t),[t,e]),p=u.useMemo(()=>J$(d,o),[o,d]),m=u.useMemo(()=>Q$(d),[d]),f=u.useMemo(()=>t?e8(d):new Set,[t,d]),h=u.useMemo(()=>t8(d),[d]);let y=n;return s.jsx("div",{className:"flex w-full flex-col",children:d.map((x,b)=>{const v=d[b-1],g=b>0?r8(v):"",w=d[b+1],k=x.type==="activity"&&(w==null?void 0:w.type)==="message"&&w.message.role==="assistant",C=x.type==="message"&&x.message.role==="user"?x.message.id:void 0,N=x.type==="message"&&x.message.role==="assistant"&&m[b]?y:void 0;return x.type==="message"&&x.message.role==="user"&&(y+=1),s.jsxs(u.Fragment,{children:[s.jsx("div",{className:g,"data-user-prompt-id":C,children:x.type==="activity"?s.jsx(Wz,{messages:x.messages,isTurnStreaming:f.has(b),hasBodyBelow:k,turnLatencyMs:x.turnLatencyMs,cliApps:r,mcpPresets:a,onOpenFilePreview:i}):s.jsx(lz,{message:x.message,showAssistantCopyAction:x.message.role==="assistant"?m[b]:!0,cliApps:r,mcpPresets:a,onOpenFilePreview:i,onForkFromHere:l&&N!==void 0?()=>l(N):void 0})}),b===p?s.jsx(Z$,{label:c("thread.forkedFromHistory")}):null]},h[b])})})}function J$(e,t){if(t==null||t<=0)return null;let n=0;for(let r=0;r=t)return r}return null}function Z$({label:e}){return s.jsxs("div",{className:"my-5 flex items-center gap-3 text-[11px] text-muted-foreground/80",children:[s.jsx("span",{"aria-hidden":!0,className:"h-px flex-1 bg-border/70"}),s.jsx("span",{className:"shrink-0",children:e}),s.jsx("span",{"aria-hidden":!0,className:"h-px flex-1 bg-border/70"})]})}function e8(e){const t=new Set;let n=!1;for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.type==="activity"){n||(t.add(r),n=!0);continue}if(!(a.message.role==="assistant"&&a.message.isStreaming)&&a.message.role==="user")break}return t}function t8(e){const t=new Map;return e.map((n,r)=>{const a=n8(n,r);if(!a.startsWith("turn-")||a.endsWith("-user"))return a;const o=(t.get(a)??0)+1;return t.set(a,o),`${a}-${o}`})}function n8(e,t){if(e.type==="activity"){const r=e.messages[0],a=wx(r,"activity");if(a)return a;const o=r==null?void 0:r.id;return o!=null?`activity-${o}`:`activity-idx-${t}`}const n=wx(e.message);return n||e.message.id}function wx(e,t){if(!(e!=null&&e.turnId))return null;const n=e.turnPhase??t??e.kind??e.role;return e.role==="user"?`turn-${e.turnId}-user`:e.kind==="trace"?`turn-${e.turnId}-${n}-${e.activitySegmentId??"activity"}`:`turn-${e.turnId}-${n}`}function r8(e){if(e.type==="activity")return"mt-4";const t=e.message;return t.kind==="trace"||t.role==="assistant"&&t.content.trim().length===0&&(!!t.reasoning||!!t.reasoningStreaming)?"mt-2":"mt-5"}const kx=48,a8=96,o8=192,s8=16,i8=80,Bd=18,Cx=160,Sx=120;function l8(e,t){if(e.length<=t)return e;let n=Math.max(0,e.length-t);for(;n>0&&Ba(e[n])&&Ba(e[n-1]);)n-=1;return e.slice(n)}function xm(e){return e instanceof HTMLElement?e.isContentEditable||e instanceof HTMLTextAreaElement?!0:e instanceof HTMLInputElement?!["button","checkbox","color","file","hidden","image","radio","range","reset","submit"].includes(e.type):!1:!1}function c8(e){const t=window.visualViewport;if(!t)return 0;const n=document.activeElement;if(!xm(n)||!(e!=null&&e.contains(n)))return 0;const a=(window.innerHeight||document.documentElement.clientHeight)-t.height-t.offsetTop;return a>=i8?Math.ceil(a):0}const u8=u.forwardRef(function({messages:t,isStreaming:n,composer:r,emptyState:a,scrollToBottomSignal:o=0,scrollToLatestUserPromptSignal:i=0,conversationKey:l=null,showScrollToBottomButton:c=!0,cliApps:d=[],mcpPresets:p=[],forkBoundaryMessageCount:m=null,hasMoreBefore:f=!1,loadingOlder:h=!1,userMessageOffset:y=0,onLoadOlder:x,onOpenFilePreview:b,onForkFromMessage:v},g){const{t:w}=ie(),k=u.useRef(null),C=u.useRef(null),N=u.useRef(null),S=u.useRef(null),A=u.useRef(l),E=u.useRef(!0),_=u.useRef(null),R=u.useRef([]),T=u.useRef(null),F=u.useRef(0),z=u.useRef(null),K=u.useRef(null),$=u.useRef(!1),[W,P]=u.useState(!0),[D,G]=u.useState(0),[Y,oe]=u.useState(0),[de,pe]=u.useState(Cx),le=t.length>0,I=u.useMemo(()=>l8(t,de),[t,de]),Q=t.length-I.length,O=y+(Q>0?t.slice(0,Q).filter(B=>B.role==="user").length:0),ne=m!==null&&m>Q?m-Q:null,he=Y+(D>0?D+s8:o8),ve=Y>0?{bottom:Y}:void 0,me=u.useCallback(()=>{for(const B of R.current)window.cancelAnimationFrame(B);R.current=[]},[]),ee=u.useCallback(B=>{T.current=B},[]),we=u.useCallback((B=!1)=>{var Ie;const X=k.current,J=S.current,ye=B?"smooth":"auto";if(X){const Ne=Math.max(0,X.scrollHeight-X.clientHeight);try{(Ie=X.scrollTo)==null||Ie.call(X,{top:Ne,behavior:ye}),B||(X.scrollTop=Ne)}catch{try{X.scrollTop=Ne}catch{}}}else J&&J.scrollIntoView({block:"end",behavior:ye});$.current=!1,P(!0)},[]),je=u.useCallback(B=>{var Ne;const X=k.current;if(!X)return!1;const J=ii(X,B);if(!J)return!1;const ye=Math.max(0,Jf(X,J)-16);ee(ye);try{(Ne=X.scrollTo)==null||Ne.call(X,{top:ye,behavior:"auto"}),X.scrollTop=ye}catch{try{X.scrollTop=ye}catch{}}const Ie=X.scrollHeight-ye-X.clientHeight{const ye=(J==null?void 0:J.force)??!1;me();const Ie=()=>{!ye&&$.current||we(B)},Ne=Je=>{if(Je<=0)return;const ue=window.requestAnimationFrame(()=>{R.current=R.current.filter(Be=>Be!==ue),!(!ye&&$.current)&&(we(B),Ne(Je-1))});R.current.push(ue)};Ie(),Ne(X-1)},[me,we]),Ee=u.useCallback(()=>{const B=k.current;if(B&&(K.current={height:B.scrollHeight,top:B.scrollTop}),$.current=!0,z.current=null,P(!1),Q>0){pe(X=>Math.min(t.length,X+Sx));return}f&&x&&!h&&(pe(X=>X+Sx),x())},[f,Q,h,t.length,x]),$e=u.useCallback(()=>{const B=k.current;!B||!le||E.current||$.current&&(B.scrollTop>a8||Q<=0&&!f||Ee())},[le,f,Q,Ee]),Se=u.useCallback(B=>{const X=k.current;if(X&&ii(X,B)){hm(X,B);return}const J=t.findIndex(ye=>ye.id===B);J<0||(_.current=B,$.current=!0,z.current=null,P(!1),pe(ye=>Math.max(ye,t.length-J)))},[t]);u.useImperativeHandle(g,()=>({jumpToUserPrompt:Se}),[Se]);const Fe=u.useCallback(()=>{const B=N.current;if(!B)return;const X=B.getBoundingClientRect().height||B.offsetHeight;G(J=>Math.abs(J-X)<1?J:X)},[]);return u.useLayoutEffect(()=>{const B=()=>{const J=k.current,ye=c8(J),Ie=document.activeElement,Ne=le&&xm(Ie)&&!!(J!=null&&J.contains(Ie));oe(Je=>Math.abs(Je-ye)<1?Je:ye),Ne&&($.current=!1,xe(!1,Bd,{force:!0}))};B();const X=window.visualViewport;return X==null||X.addEventListener("resize",B),X==null||X.addEventListener("scroll",B),window.addEventListener("resize",B),document.addEventListener("focusin",B),document.addEventListener("focusout",B),()=>{X==null||X.removeEventListener("resize",B),X==null||X.removeEventListener("scroll",B),window.removeEventListener("resize",B),document.removeEventListener("focusin",B),document.removeEventListener("focusout",B)}},[le,xe]),u.useLayoutEffect(()=>{if(Y>0){$.current=!1,xe(!1,Bd,{force:!0});return}$.current||xe(!1,4)},[Y,xe]),u.useEffect(()=>{const B=k.current;if(!B)return;const X=()=>{const J=document.activeElement;!le||!xm(J)||!B.contains(J)||($.current=!1,xe(!1,Bd,{force:!0}))};return document.addEventListener("focusin",X),()=>document.removeEventListener("focusin",X)},[le,xe]),u.useEffect(()=>{o<=0||($.current=!1,xe(!1,8))},[o,xe]),u.useLayoutEffect(()=>{if(i<=F.current)return;const B=t[t.length-1];!B||B.role!=="user"||(F.current=i,me(),z.current=B.id,je(B.id)||(z.current=null))},[me,t,i,je]),u.useLayoutEffect(()=>{A.current!==l&&(A.current=l,E.current=!0,$.current=!1,z.current=null,P(!0),pe(Cx))},[l]),u.useLayoutEffect(()=>{const B=z.current;if(!B||$.current)return;const X=t.findIndex(ye=>ye.id===B);if(X<0){z.current=null;return}t.slice(X+1).some(ye=>ye.role!=="user")&&xe(!1,n?3:1)},[n,t,xe]),u.useLayoutEffect(()=>{var Ie;const B=K.current;if(!B)return;const X=k.current;if(K.current=null,!X)return;const J=X.scrollHeight-B.height,ye=B.top+J;try{X.scrollTop=ye}catch{try{(Ie=X.scrollTo)==null||Ie.call(X,{top:ye,behavior:"auto"})}catch{}}},[I.length,t.length]),u.useLayoutEffect(()=>{const B=_.current,X=k.current;if(!B||!X||!ii(X,B))return;_.current=null;const J=window.requestAnimationFrame(()=>hm(X,B));return()=>window.cancelAnimationFrame(J)},[I.length]),u.useLayoutEffect(()=>{if(E.current){if(!l){E.current=!1,xe(!1,4);return}xe(!1,8),le&&(E.current=!1)}},[l,le,t,xe]),u.useLayoutEffect(()=>{Fe()},[r,le,Fe]),u.useEffect(()=>me,[me]),u.useEffect(()=>{const B=N.current;if(!B||typeof ResizeObserver>"u")return;const X=new ResizeObserver(()=>Fe());return X.observe(B),()=>X.disconnect()},[le,Fe]),u.useEffect(()=>{const B=k.current;if(!B)return;const X=(ye=!0)=>{const Ne=B.scrollHeight-B.scrollTop-B.clientHeightX(!0);return B.addEventListener("scroll",J,{passive:!0}),()=>B.removeEventListener("scroll",J)},[$e]),s.jsxs("div",{className:"relative flex min-h-0 flex-1 overflow-hidden",children:[s.jsxs("div",{ref:k,className:j("thread-viewport-scrollbar absolute inset-0 overflow-y-auto scroll-auto scrollbar-thin","[&::-webkit-scrollbar]:w-1.5","[&::-webkit-scrollbar-thumb]:rounded-full","[&::-webkit-scrollbar-thumb]:bg-muted-foreground/30","[&::-webkit-scrollbar-track]:bg-transparent"),style:ve,children:[le?s.jsxs("div",{ref:C,className:"mx-auto flex min-h-full w-full max-w-[64rem] flex-col",children:[s.jsx("div",{"data-testid":"thread-message-region",className:"flex min-h-0 flex-1 flex-col justify-start px-3 pb-4 pt-4 sm:px-4",children:s.jsx("div",{className:"mx-auto w-full max-w-[49.5rem]",children:s.jsx(X$,{messages:I,isStreaming:n,hiddenUserMessageCount:O,cliApps:d,mcpPresets:p,forkBoundaryMessageCount:ne,onOpenFilePreview:b,onForkFromMessage:v})})}),s.jsx("div",{ref:N,"data-testid":"thread-composer-dock",className:"sticky bottom-0 z-10 bg-background",children:s.jsx("div",{className:"px-3 pb-[calc(0.75rem+env(safe-area-inset-bottom))] sm:px-4",children:r})})]}):s.jsx("div",{ref:C,className:"mx-auto flex min-h-full w-full max-w-[72rem] flex-col px-3 sm:px-4",children:s.jsx("div",{className:"flex w-full flex-1 items-center justify-center py-6 sm:py-12",children:s.jsxs("div",{className:"relative flex w-full max-w-[58rem] flex-col items-center gap-5 sm:block",children:[s.jsx("div",{className:"flex justify-center sm:absolute sm:inset-x-0 sm:bottom-[calc(100%+1.5rem)]",children:a}),s.jsx("div",{className:"w-full",children:r})]})})}),s.jsx("div",{ref:S,"aria-hidden":!0,className:"h-px"})]}),s.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 h-6 bg-gradient-to-b from-background to-transparent"}),le?s.jsx(GF,{messages:I,scrollRef:k,bottomOffset:he}):null,c&&!W&&s.jsx("div",{className:"absolute left-1/2 z-20 -translate-x-1/2",style:{bottom:he},children:s.jsx(fe,{variant:"outline",size:"icon",onClick:()=>xe(!0,1,{force:!0}),className:j("h-8 w-8 rounded-full shadow-md","bg-background/90 backdrop-blur","animate-in fade-in-0 zoom-in-95"),"aria-label":w("thread.scrollToBottom"),children:s.jsx(Hj,{className:"h-4 w-4"})})})]})}),d8=new Set(["write_file","edit_file","apply_patch"]);function Ra(e,t){const n={};typeof e.turn_id=="string"&&e.turn_id.length>0&&(n.turnId=e.turn_id);const r=e.turn_phase??t;return r&&(n.turnPhase=r),typeof e.turn_seq=="number"&&Number.isFinite(e.turn_seq)&&(n.turnSeq=e.turn_seq),n}function us(e,t){return!t.turnId||!e.turnId||e.turnId===t.turnId}function Nx(e,t,n={}){for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.kind!=="trace"){if(a.role==="assistant"&&a.isStreaming&&!t.has(a.id)&&us(a,n))return r;if(a.role==="user")break}}return null}function jx(e,t,n,r={}){for(let o=e.length-1;o>=0;o-=1){const i=e[o];if(i.role==="user"||i.kind==="trace")break;if(i.role!=="assistant")continue;if(!us(i,r))break;const l=i.activitySegmentId??(n==null?void 0:n.ensure());if(i.content.length>0)break;if(i.reasoningStreaming||i.reasoning!==void 0||i.isStreaming){const d={...i,reasoning:(i.reasoning??"")+t,reasoningStreaming:!0,...l?{activitySegmentId:l}:{},...r};return[...e.slice(0,o),d,...e.slice(o+1)]}break}const a=n==null?void 0:n.ensure();return[...e,{id:crypto.randomUUID(),role:"assistant",content:"",isStreaming:!0,reasoning:t,reasoningStreaming:!0,...a?{activitySegmentId:a}:{},...r,createdAt:Date.now()}]}function p8(e,t={}){const n=e[e.length-1];return!n||n.role!=="assistant"||n.kind==="trace"||n.content.length>0||!n.isStreaming||!us(n,t)?null:e.length-1}function Hd(e,t,n){const r=e.slice();return r[t]=n,r}function Ax(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(!n.reasoningStreaming)continue;const r=n.latencyMs===void 0&&Number.isFinite(n.createdAt)&&n.createdAt>1e12?Math.max(0,Math.round(Date.now()-n.createdAt)):n.latencyMs,a={...n,reasoningStreaming:!1,...r!==void 0?{latencyMs:r}:{}};return[...e.slice(0,t),a,...e.slice(t+1)]}return e}function aS(e){var t;return e.role==="assistant"&&e.kind!=="trace"&&e.content.trim().length===0&&!!e.reasoning&&!e.reasoningStreaming&&!((t=e.media)!=null&&t.length)}function m8(e){return(e==null?void 0:e.kind)==="trace"}function _x(e){return e.filter((t,n)=>aS(t)?m8(e[n+1]):!0)}function f8(e,t,n){for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.role==="assistant"&&a.kind!=="trace"&&(!n||!a.turnId||a.turnId===n)){const o={...a,latencyMs:t,isStreaming:!1};return[...e.slice(0,r),o,...e.slice(r+1)]}}return e}function h8(e,t){const n=e[e.length-1];return!n||!aS(n)||!us(n,t)?[...e,{id:crypto.randomUUID(),role:"assistant",createdAt:Date.now(),...t}]:[...e.slice(0,-1),{...n,...t,isStreaming:!1,reasoningStreaming:!1}]}function ds(e){return e.call_id?`${e.call_id}|${e.tool}`:`${e.tool}|${e.path}`}function th(e){const t=e.function,n=typeof e.name=="string"?e.name:typeof(t==null?void 0:t.name)=="string"?t.name:"",r=typeof e.call_id=="string"?e.call_id:"";return!n||!r||!d8.has(n)?null:`${r}|${n}`}function g8(e,t){const n=th(t);return n?e.some(r=>{var a;return(a=r.fileEdits)==null?void 0:a.some(o=>ds(o)===n)}):!1}function v8(e,t){return t.length===0?t:t.filter(n=>!g8(e,n))}function x8(e,t){var d;const n=new Set(t.map(ds)),r=e.toolEvents??[];if(!r.length||n.size===0)return e;const a=new Set,o=[];let i=!1;for(const p of r){const m=th(p);if(m&&n.has(m)){i=!0;for(const f of UC([p]))a.add(f);continue}o.push(p)}if(!i)return e;const c=((d=e.traces)!=null&&d.length?e.traces:e.content?[e.content]:[]).filter(p=>!a.has(p));return{...e,traces:c,content:c[c.length-1]??"",toolEvents:o.length?o:void 0}}function y8(e){if(!e||!e.tool||!e.path&&!e.pending)return null;const t=e.phase==="error"?"error":e.phase==="end"?"done":"editing",n={...e,call_id:e.call_id||`${e.tool}:${e.path}`,added:Number.isFinite(e.added)?Math.max(0,Math.round(e.added)):0,deleted:Number.isFinite(e.deleted)?Math.max(0,Math.round(e.deleted)):0,status:e.status==="error"||e.status==="done"||e.status==="editing"?e.status:t};return e.pending&&!e.path&&(n.pending=!0),n}function Px(e,t){const n=[...e??[]],r=new Map(n.map((a,o)=>[ds(a),o]));for(const a of t){const o=y8(a);if(!o)continue;const i=ds(o),l=r.get(i);if(l===void 0){r.set(i,n.length),n.push(o);continue}const c={...n[l],...o};o.path&&!o.pending&&delete c.pending,n[l]=c}return n}function b8(e,t,n){const r=new Set(n.map(ds));for(let a=e.length-1;a>=0;a-=1){const o=e[a];if(o.role==="user")break;if(o.kind==="trace"){if(t&&o.activitySegmentId===t)return a;for(const i of o.fileEdits??[])if(r.has(ds(i)))return a;for(const i of o.toolEvents??[]){const l=th(i);if(l&&r.has(l))return a}}}return null}function w8(e,t){const n=[...e??[]];for(const r of t??[])n.push(r);return n.length?n:void 0}function k8(e,t=[],n=!1,r){const{client:a}=kr(),[o,i]=u.useState(t),l=Wc(t),[c,d]=u.useState(l||n),[p,m]=u.useState(null),[f,h]=u.useState(void 0),[y,x]=u.useState(null),b=u.useRef(null),v=u.useRef(null),g=u.useRef(new Set),w=u.useRef(null),k=u.useRef(null),C=u.useRef(0),N=u.useRef([]),S=u.useRef(null),A=u.useRef(!1),E=u.useRef(null);u.useEffect(()=>a.onError(I=>x(I)),[a]);const _=u.useCallback(()=>x(null),[]),R=u.useCallback(()=>{S.current!==null&&(window.cancelAnimationFrame(S.current),S.current=null),N.current=[]},[]),T=u.useCallback((I=!0)=>{C.current+=1;const Q=`activity-${C.current}`;return I&&(w.current=Q),Q},[]),F=u.useCallback(()=>T(!0),[T]),z=u.useCallback(()=>T(!1),[T]),K=u.useCallback(()=>w.current?w.current:F(),[F]),$=u.useCallback(()=>{w.current=null,k.current=null},[]),W=u.useCallback(()=>{var Q,O;const I=((Q=b.current)==null?void 0:Q.messageId)??((O=v.current)==null?void 0:O.id);return I&&g.current.add(I),b.current=null,v.current=null,!!I},[]),P=u.useCallback((I,Q={})=>{const O=v.current;if(!O)return null;const ne=I[O.index];if((ne==null?void 0:ne.id)===O.id&&ne.role==="assistant"&&ne.kind!=="trace"&&ne.isStreaming&&us(ne,Q))return O.index;const he=I.findIndex(me=>me.id===O.id);if(he===-1)return v.current=null,null;const ve=I[he];return ve.role!=="assistant"||ve.kind==="trace"||!ve.isStreaming||!us(ve,Q)?(v.current=null,null):(v.current={id:O.id,index:he},he)},[]),D=u.useCallback((I,Q,O={})=>{let ne=I,he=P(ne,O);if(he===null&&(he=p8(ne,O)),he===null&&(he=Nx(ne,g.current,O)),he===null){const ee=crypto.randomUUID();ne=[...ne,{id:ee,role:"assistant",content:"",isStreaming:!0,createdAt:Date.now()}],he=ne.length-1}const ve=ne[he],me={...ve,content:ve.content+Q,isStreaming:!0,...O};return g.current.delete(me.id),v.current={id:me.id,index:he},b.current={messageId:me.id},Hd(ne,he,me)},[P]),G=u.useCallback((I,Q)=>{let O=I;for(const ne of Q)ne.kind==="delta"?O=D(O,ne.text,ne.turn):(W()&&$(),O=jx(O,ne.text,{ensure:K},ne.turn));return O},[D,$,W,K]),Y=u.useCallback(I=>{S.current!==null&&(window.cancelAnimationFrame(S.current),S.current=null);const Q=N.current,O=I==null?void 0:I.finalAnswerText,ne=(I==null?void 0:I.turn)??{};if(Q.length===0&&O===void 0){I!=null&&I.closeAnswerSegment&&W();return}N.current=[],i(he=>{let ve=Q.length>0?G(he,Q):he;if(O!==void 0){const me=P(ve,ne)??Nx(ve,g.current,ne);if(me!==null){const ee=ve[me];ve=Hd(ve,me,{...ee,content:O,isStreaming:!0,...ne})}else{const ee=crypto.randomUUID();g.current.add(ee),ve=[...ve,{id:ee,role:"assistant",content:O,isStreaming:!0,...ne,createdAt:Date.now()}]}}return I!=null&&I.closeAnswerSegment&&W(),ve})},[G,W,P]),oe=u.useCallback(()=>{S.current===null&&(S.current=window.requestAnimationFrame(()=>{S.current=null;const I=N.current;I.length!==0&&(N.current=[],i(Q=>G(Q,I)))}))},[G]);u.useEffect(()=>{i(t),d(Wc(t)||n),x(null),m(e?a.getRunStartedAt(e):null),h(e?a.getGoalState(e):void 0),b.current=null,v.current=null,g.current.clear(),$(),R(),A.current=!1,E.current!==null&&(clearTimeout(E.current),E.current=null)},[e,a,$,R]),u.useEffect(()=>{n&&d(!0)},[n]),u.useEffect(()=>{if(!e)return;const I=O=>{var he,ve;if(E.current!==null&&(clearTimeout(E.current),E.current=null),O.event==="delta"){if(A.current)return;const me=typeof O.text=="string"?O.text:"";if(!me)return;$(),d(!0),N.current.push({kind:"delta",text:me,turn:Ra(O,"answer")}),oe();return}if(O.event==="reasoning_delta"){if(A.current)return;const me=O.text;if(!me)return;k.current&&$(),d(!0),N.current.push({kind:"reasoning",text:me,turn:Ra(O,"reasoning")}),oe();return}if(O.event==="stream_end")return Y({closeAnswerSegment:!0,...typeof O.text=="string"?{finalAnswerText:O.text}:{},turn:Ra(O,"answer")}),A.current,void 0;const ne=O.event==="file_edit"||O.event==="message"&&(O.kind==="tool_hint"||O.kind==="progress");if(Y({closeAnswerSegment:ne}),O.event==="reasoning_end"){if(A.current)return;i(me=>Ax(me));return}if(O.event==="goal_state"){h(O.goal_state);return}if(O.event==="goal_status"){O.status==="running"&&typeof O.started_at=="number"?m(O.started_at):m(null);return}if(O.event==="turn_end"){"goal_state"in O&&O.goal_state!=null&&typeof O.goal_state=="object"&&h(O.goal_state),m(null),E.current!==null&&(clearTimeout(E.current),E.current=null),d(!1),i(me=>{let ee=me.map(we=>we.isStreaming?{...we,isStreaming:!1}:we);return ee=_x(ee),typeof O.latency_ms=="number"&&O.latency_ms>=0&&(ee=f8(ee,Math.round(O.latency_ms),O.turn_id)),b.current=null,v.current=null,$(),g.current.clear(),ee}),A.current=!1,r==null||r();return}if(O.event==="message"){if(A.current&&(O.kind==="tool_hint"||O.kind==="progress"||O.kind==="reasoning"))return;if(O.kind==="reasoning"){const we=O.text;if(!we)return;k.current&&$(),i(je=>Ax(jx(je,we,{ensure:K},Ra(O,"reasoning"))));return}if(O.kind==="tool_hint"||O.kind==="progress"){const we=$C(O.tool_events),je=Ra(O,"activity"),xe=O.agent_ui?[O.agent_ui]:[];i(Ee=>{var ye,Ie,Ne,Je,ue,Be;const $e=K(),Se=Ee,Fe=v8(Se,we),B=UC(Fe),X=B.length>0?B:we.length>0?[]:O.text?[O.text]:[];if(X.length===0)return Se;const J=Se[Se.length-1];if(J&&J.kind==="trace"&&!J.isStreaming&&(!J.activitySegmentId||J.activitySegmentId===$e)){const ze=(ye=J.traces)!=null&&ye.length?J.traces:J.content?[J.content]:[],We=xe.length>0&&X.length===1&&ze.length>0&&(((Ne=(Ie=xe[0])==null?void 0:Ie.kind)==null?void 0:Ne.startsWith("subagent_"))??!1)&&((ue=(Je=J.agentUi)==null?void 0:Je[J.agentUi.length-1])==null?void 0:ue.kind)===((Be=xe[0])==null?void 0:Be.kind),nr=Fe.length>0?$z(ze,B):null,xn=nr?nr.traces:We?[...ze.slice(0,-1),`${ze[ze.length-1]}${X[0]}`]:[...ze,...X],Qe={...J,traces:xn,content:xn[xn.length-1],toolEvents:Fe.length?zz(J.toolEvents,Fe):J.toolEvents,agentUi:w8(J.agentUi,xe),activitySegmentId:J.activitySegmentId??$e,...je};return[...Se.slice(0,-1),Qe]}return[...Se,{id:crypto.randomUUID(),role:"tool",kind:"trace",content:X[X.length-1],traces:X,...Fe.length?{toolEvents:Fe}:{},...xe.length?{agentUi:xe}:{},activitySegmentId:$e,...je,createdAt:Date.now()}]});return}const me=(he=O.media_urls)!=null&&he.length?O.media_urls.map(we=>cs(we)):(ve=O.media)==null?void 0:ve.map(we=>cs({url:we})),ee=!!me&&me.length>0;$(),i(we=>{var Se;const je=(Se=b.current)==null?void 0:Se.messageId;b.current=null,v.current=null;const xe=je?we.filter(Fe=>Fe.id!==je):we,Ee=O.text,$e=typeof O.latency_ms=="number"&&O.latency_ms>=0?Math.round(O.latency_ms):void 0;return h8(xe,{content:Ee,...ee?{media:me}:{},...$e!==void 0?{latencyMs:$e}:{},...O.source?{source:O.source}:{},...Ra(O,"answer")})}),ee&&(A.current=!0);return}if(O.event==="file_edit"){const me=Array.isArray(O.edits)?O.edits:[];if(me.length===0)return;const ee=Px(void 0,me);if(ee.length===0)return;const we=Ra(O,"activity"),je=ee.some(Ee=>Ee.status==="editing"||Ee.phase==="start");let xe=k.current;!xe&&je&&(xe=z(),k.current=xe),i(Ee=>{let $e=xe;const Se=Ee,Fe=b8(Se,$e,ee);if(Fe!==null){const B=Se[Fe];$e=B.activitySegmentId??$e??z(),je&&(k.current=$e);const X=x8(B,ee),J={...X,fileEdits:Px(X.fileEdits,ee),activitySegmentId:$e,...we};return Hd(Se,Fe,J)}return $e=$e??z(),je&&(k.current=$e),[...Se,{id:crypto.randomUUID(),role:"tool",kind:"trace",content:"",traces:[],fileEdits:ee,activitySegmentId:$e,...we,createdAt:Date.now()}]});return}},Q=a.onChat(e,I);return()=>{Q(),b.current=null,v.current=null,g.current.clear(),$(),R(),E.current!==null&&(clearTimeout(E.current),E.current=null)}},[e,a,$,R,z,K,Y,r,oe]);const de=u.useCallback((I,Q,O)=>{if(!e)return;const ne=!!Q&&Q.length>0;if(!ne&&!I.trim())return;Y();const he=crypto.randomUUID(),ve=ne?Q.map(ee=>ee.preview):void 0;i(ee=>{var we,je,xe;return b.current=null,v.current=null,g.current.clear(),$(),[..._x(ee),{id:crypto.randomUUID(),role:"user",content:I,turnId:he,turnPhase:"user",turnSeq:0,createdAt:Date.now(),...ve?{images:ve}:{},...(we=O==null?void 0:O.attachmentMedia)!=null&&we.length?{media:O.attachmentMedia}:{},...(je=O==null?void 0:O.cliApps)!=null&&je.length?{cliApps:O.cliApps}:{},...(xe=O==null?void 0:O.mcpPresets)!=null&&xe.length?{mcpPresets:O.mcpPresets}:{}}]}),d(!0);const me=ne?Q.map(ee=>ee.media):void 0;a.sendMessage(e,I,me,{...O,turnId:he})},[e,$,a,Y]),pe=u.useCallback(()=>{e&&(Y(),d(!1),i(I=>(b.current=null,v.current=null,g.current.clear(),$(),I.map(Q=>Q.isStreaming?{...Q,isStreaming:!1}:Q))),A.current=!1,a.sendMessage(e,"/stop"))},[e,$,a,Y]),le=u.useCallback((I,Q)=>a.transcribeAudio(I,Q),[a]);return{messages:o,isStreaming:c,runStartedAt:p,goalState:f,send:de,transcribeAudio:le,stop:pe,setMessages:i,streamError:y,dismissStreamError:_}}const Tx=[],C8=160,S8=120,Rx=6e4;function Mx(e){return e.map((t,n)=>({...t,id:t.id??`hist-${n}`,createdAt:typeof t.createdAt=="number"?t.createdAt:Date.now()}))}function N8(e,t){return typeof(e==null?void 0:e.has_pending_tool_calls)=="boolean"?e.has_pending_tool_calls:Wc(t)}function j8(){const{client:e,token:t}=kr(),[n,r]=u.useState([]),[a,o]=u.useState(!0),[i,l]=u.useState(null),c=u.useRef(t),d=u.useRef(new Set);c.current=t;const p=u.useCallback(async()=>{try{o(!0);const x=await gL(c.current),b=new Set(x.map(v=>v.key));r(v=>[...x,...v.filter(g=>d.current.has(g.key)&&!b.has(g.key))]);for(const v of Array.from(d.current))b.has(v)&&d.current.delete(v);l(null)}catch(x){const b=x instanceof as?`HTTP ${x.status}`:x.message;l(b)}finally{o(!1)}},[]);u.useEffect(()=>{p()},[p]),u.useEffect(()=>e.onSessionUpdate(()=>{p()}),[e,p]);const m=u.useCallback(async x=>{const b=await e.newChat(Rx,x),v=`websocket:${b}`;return d.current.add(v),r(g=>[{key:v,channel:"websocket",chatId:b,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),title:"",preview:"",workspaceScope:x??null},...g.filter(w=>w.key!==v)]),b},[e]),f=u.useCallback(async(x,b,v)=>{const g=await e.forkChat(x,b,v,Rx),w=`websocket:${g}`;return d.current.add(w),r(k=>[{key:w,channel:"websocket",chatId:g,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),title:v??"",preview:"",workspaceScope:null},...k.filter(C=>C.key!==w)]),g},[e]),h=u.useCallback(async(x,b)=>{const v=await kL(c.current,x,b);return v.deleted&&(d.current.delete(x),r(g=>g.filter(w=>w.key!==x))),v},[]),y=u.useCallback(async x=>(await w1(c.current,x)).jobs,[]);return{sessions:n,loading:a,error:i,refresh:p,createChat:m,forkChat:f,deleteChat:h,getSessionAutomations:y}}function A8(e){const{token:t}=kr(),n=u.useRef(!1),[r,a]=u.useState(0),o=u.useCallback(()=>{a(d=>d+1)},[]),[i,l]=u.useState({key:null,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0});u.useEffect(()=>{if(!e){l({key:null,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0});return}let d=!1;return l(p=>p.key===e?{...p,loading:!0,loadingOlder:!1,error:null}:{key:e,messages:[],loading:!0,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0}),(async()=>{var p;try{const m=await mv(t,e,{limit:C8,direction:"latest"});if(d)return;if(!((p=m==null?void 0:m.messages)!=null&&p.length)){l(x=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:x.key===e?x.version+1:1}));return}const f=Mx(m.messages),h=N8(m,f),y=typeof m.fork_boundary_message_count=="number"?Math.max(0,Math.min(m.fork_boundary_message_count,f.length)):null;l(x=>{var b,v,g;return{key:e,messages:f,loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:h,forkBoundaryMessageCount:y,beforeCursor:((b=m.page)==null?void 0:b.before_cursor)??null,hasMoreBefore:((v=m.page)==null?void 0:v.has_more_before)===!0,userMessageOffset:Math.max(0,((g=m.page)==null?void 0:g.user_message_offset)??0),version:x.key===e?x.version+1:1}})}catch(m){if(d)return;m instanceof as&&m.status===404?l(f=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:f.key===e?f.version+1:1})):l(f=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:m.message,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:f.key===e?f.version:0}))}})(),()=>{d=!0}},[e,t,r]);const c=u.useCallback(async()=>{if(!e||n.current)return;const d=i.key===e?i.beforeCursor:null;if(!(!d||!i.hasMoreBefore)){n.current=!0,l(p=>p.key===e?{...p,loadingOlder:!0,error:null}:p);try{const p=await mv(t,e,{limit:S8,before:d});l(m=>{var b,v,g,w;if(m.key!==e)return m;if(!((b=p==null?void 0:p.messages)!=null&&b.length))return{...m,loadingOlder:!1,hasMoreBefore:!1,beforeCursor:null};const f=Mx(p.messages),h=typeof p.fork_boundary_message_count=="number"?Math.max(0,Math.min(p.fork_boundary_message_count,f.length)):null,y=m.forkBoundaryMessageCount===null?null:m.forkBoundaryMessageCount+f.length,x=[...f,...m.messages];return{...m,messages:x,loadingOlder:!1,error:null,hasPendingToolCalls:Wc(x),forkBoundaryMessageCount:h??y,beforeCursor:((v=p.page)==null?void 0:v.before_cursor)??null,hasMoreBefore:((g=p.page)==null?void 0:g.has_more_before)===!0,userMessageOffset:Math.max(0,((w=p.page)==null?void 0:w.user_message_offset)??0),version:m.version+1}})}catch(p){l(m=>m.key===e?{...m,loadingOlder:!1,error:p.message}:m)}finally{n.current=!1}}},[e,i.beforeCursor,i.hasMoreBefore,i.key,t]);return e?i.key!==e?{messages:Tx,loading:!0,loadingOlder:!1,error:null,refresh:o,loadOlder:c,hasMoreBefore:!1,userMessageOffset:0,version:0,forkBoundaryMessageCount:null,hasPendingToolCalls:!1}:{messages:i.messages,loading:i.loading,loadingOlder:i.loadingOlder,error:i.error,refresh:o,loadOlder:c,hasMoreBefore:i.hasMoreBefore,userMessageOffset:i.userMessageOffset,version:i.version,forkBoundaryMessageCount:i.forkBoundaryMessageCount,hasPendingToolCalls:i.hasPendingToolCalls}:{messages:Tx,loading:!1,loadingOlder:!1,error:null,refresh:o,loadOlder:c,hasMoreBefore:!1,userMessageOffset:0,version:0,forkBoundaryMessageCount:null,hasPendingToolCalls:!1}}function _8(e){return e.map(t=>{if(t.kind!=="long_task")return t;const r=(t.content??"").trim()||"(legacy thread activity)";return{id:t.id,role:"tool",kind:"trace",content:r,traces:[r],createdAt:t.createdAt}})}const P8=800;function T8(e,t=P8){const n=e.replace(/\r\n/g,` -`).trim(),r=n.split(` -`);let a="";r.length>0&&r[0].startsWith("[Subagent")&&(a=r[0].trim());const o=n.toLowerCase();let i=` -result: -`,l=o.indexOf(i);if(l===-1&&(i=` -result:`,l=o.indexOf(i)),l===-1)return a||n;let c=n.slice(l+i.length).replace(/^\s+/,"");const p=c.toLowerCase().indexOf("summarize this naturally");p!==-1&&(c=c.slice(0,p).trimEnd());let m=c.trim();return t>0&&m.length>t&&(m=`${m.slice(0,t-1).trimEnd()}…`),a&&m?`${a} - -${m}`:a||m||n}function R8(e){return e.map(t=>{if(t.role!=="assistant"||typeof t.content!="string"||!t.content.includes("[Subagent"))return t;const n=T8(t.content);return n===t.content?t:{...t,content:n}})}function Zr(e){return R8(_8(e))}function oS(e,t){return e.role===t.role&&(e.kind??"")===(t.kind??"")&&e.content===t.content}function Ex(e){var t;return e.kind==="trace"||e.role!=="user"&&e.role!=="assistant"||e.role==="assistant"&&!e.content.trim()&&!((t=e.media)!=null&&t.length)?null:{role:e.role,kind:e.kind,content:e.content}}function M8(e,t){const n=e.map(Ex).filter(o=>o!==null);if(n.length===0)return!0;const r=t.map(Ex).filter(o=>o!==null);let a=0;for(const o of n){let i=!1;for(;a=e.length?!1:t.every((n,r)=>oS(e[r],n))}const Ix=544,sS=360,E8=860,I8=420,L8=320;function Lx(e,t){return Math.min(Math.max(e,sS),t)}function Dx(e){return Math.max(sS,Math.min(E8,e-I8))}function D8(e){if(!e)return null;const t=e.trim();return t?(t.split("/").pop()??t)||t:null}function O8(e){if(!e)return null;const t=e.agent.model_preset||"default";return e.model_presets.find(n=>n.name===t)??e.model_presets.find(n=>n.active)??null}function F8(e,t){const n=O8(e),r=(n==null?void 0:n.provider)||(e==null?void 0:e.agent.provider)||null;return r==="auto"?(e==null?void 0:e.agent.resolved_provider)||um(t)||null:r||um(t)}function z8(e,t){const n=e||(t==null?void 0:t.agent.model)||null,r=D8(n),a=F8(t,n),o=a?t==null?void 0:t.providers.find(l=>l.name===a):null,i=!!(t&&(!n||!a||!o||!o.configured));return{label:r,provider:a,providerLabel:a?Mo((t==null?void 0:t.providers)??[],a):null,needsSetup:i}}const Wd=["thread.empty.greetings.workOn","thread.empty.greetings.start","thread.empty.greetings.build","thread.empty.greetings.tackle"];function Ox(){const e=Math.floor(Math.random()*Wd.length);return Wd[e]??Wd[0]}function Fx({token:e,eventName:t,fetchPayload:n,isPayload:r,selectItems:a}){const[o,i]=u.useState([]),l=u.useCallback(async c=>{try{const d=await n(e);c!=null&&c()||i(a(d))}catch{c!=null&&c()||i([])}},[n,a,e]);return u.useEffect(()=>{let c=!1;l(()=>c);const d=()=>{document.visibilityState!=="hidden"&&l()},p=m=>{const f=m.detail;if(r(f)){i(a(f));return}l()};return window.addEventListener("focus",d),document.addEventListener("visibilitychange",d),window.addEventListener(t,p),()=>{c=!0,window.removeEventListener("focus",d),document.removeEventListener("visibilitychange",d),window.removeEventListener(t,p)}},[t,r,l,a]),o}function $8({session:e,title:t,onToggleSidebar:n,onCreateChat:r,onForkChat:a,onTurnEnd:o,theme:i="light",onToggleTheme:l=()=>{},hideSidebarToggleForHostChrome:c=!1,hostChromeTitleInset:d=!1,hideThemeButton:p=!1,hideHeader:m=!1,workspaceScope:f=null,workspaceDefaultScope:h=null,workspaceControls:y=null,workspaceScopeDisabled:x=!1,workspaceError:b=null,onWorkspaceScopeChange:v,settingsSnapshot:g=null,onOpenModelSettings:w}){const{t:k}=ie(),C=(e==null?void 0:e.chatId)??null,N=(e==null?void 0:e.key)??null,{messages:S,loading:A,loadingOlder:E,loadOlder:_,hasMoreBefore:R,userMessageOffset:T,hasPendingToolCalls:F,refresh:z,version:K,forkBoundaryMessageCount:$}=A8(N),{client:W,modelName:P,token:D}=kr(),[G,Y]=u.useState(!1),[oe,de]=u.useState([]),pe=Fx({token:D,eventName:D1,fetchPayload:AL,isPayload:T3,selectItems:R3}),le=Fx({token:D,eventName:z1,fetchPayload:k1,isPayload:L3,selectItems:D3}),[I,Q]=u.useState(g),[O,ne]=u.useState(Ox),[he,ve]=u.useState(0),[me,ee]=u.useState(0),[we,je]=u.useState(null),[xe,Ee]=u.useState(!1),[$e,Se]=u.useState(Ix),Fe=u.useRef(null),B=u.useRef(Ix),X=u.useRef(null),J=u.useRef(null),ye=u.useRef(null),Ie=u.useRef(new Map),Ne=u.useRef(null),Je=u.useRef(!1),ue=u.useRef(new Map),Be=u.useRef(new Set),ze=u.useRef(new Map),We=u.useRef(null),nr=u.useMemo(()=>C?Ie.current.get(C)??S:S,[C,S]),xn=u.useCallback(()=>{o==null||o()},[o]),{messages:Qe,isStreaming:yn,runStartedAt:rr,goalState:cn,send:zt,transcribeAudio:jt,stop:Vr,setMessages:kt,streamError:ar,dismissStreamError:Cr}=k8(C,nr,F,xn);u.useEffect(()=>{C&&N&&ze.current.set(C,N)},[C,N]),u.useEffect(()=>{B.current=$e},[$e]),u.useEffect(()=>{X.current!==null&&(window.clearTimeout(X.current),X.current=null),Ee(!1),je(null)},[N]),u.useEffect(()=>()=>{X.current!==null&&window.clearTimeout(X.current)},[]);const Hn=u.useMemo(()=>Zr(Qe),[Qe]),bn=Qe.length===0&&!A,or=u.useRef(bn),Ze=u.useMemo(()=>z8(P,I),[P,I]),Sr=Ze.needsSetup?k("thread.composer.modelNotConfigured",{defaultValue:"Model not configured"}):Ze.label;u.useEffect(()=>{bn&&!or.current&&ne(Ox()),or.current=bn},[bn]);const et=u.useCallback(be=>f?{...be??{},workspaceScope:f}:be,[f]),$t=u.useCallback(async()=>{try{Q(await oi(D))}catch{g||Q(null)}},[g,D]);u.useEffect(()=>{if(g){Q(g);return}$t()},[$t,g]),u.useEffect(()=>W.onRuntimeModelUpdate(()=>{$t()}),[W,$t]),u.useEffect(()=>{if(!C||A)return;const be=Ie.current.get(C),Ae=ue.current.get(C)??0,Vt=Be.current.has(C)&&K>Ae;kt(Me=>{const yt=Zr(S),tn=Gt=>{const It=Zr(Gt);return Ie.current.set(C,It),It};if(Vt&&S.length>0)return Ll(Me,yt)?tn(Me):(Be.current.delete(C),ue.current.set(C,K),Ie.current.set(C,yt),yt);if(be&&be.length>0){const Gt=Zr(be);return yt.length>Gt.length&&!Ll(Me,yt)?(Ie.current.set(C,yt),ue.current.set(C,K),yt):Ll(Me,Gt)?tn(Me):Gt}return Ll(Me,yt)?tn(Me):(ue.current.set(C,K),yt.length>0&&Ie.current.set(C,yt),yt)})},[A,C,S,K]),u.useEffect(()=>{if(C)return W.onSessionUpdate((be,Ae)=>{be===C&&Ae!=="metadata"&&(Be.current.add(C),z())})},[C,W,z]),u.useEffect(()=>{if(!C){We.current=null;return}A||We.current===C||(We.current=C,ve(be=>be+1))},[C,A]),u.useEffect(()=>{C||kt(Zr(S))},[C,S,kt]),u.useLayoutEffect(()=>{if(C){const be=Ne.current;be&&be!==C&&(Ie.current.set(be,Zr(Qe)),Je.current=!0),Ne.current=C}else Ne.current&&(Ie.current.set(Ne.current,Zr(Qe)),Je.current=!0),Ne.current=null},[C,Qe]),u.useEffect(()=>{if(C){if(Je.current){Je.current=!1;return}A||Ie.current.set(C,Zr(Qe))}},[C,A,Qe]),u.useEffect(()=>{if(!C)return;const be=J.current;be&&(J.current=null,ee(Ae=>Ae+1),zt(be.content,be.images,be.options),Y(!1))},[C,zt]),u.useEffect(()=>{let be=!1;return(async()=>{try{const Ae=await IL(D);be||de(Ae)}catch{be||de([])}})(),()=>{be=!0}},[D]);const nt=u.useCallback(async(be,Ae,mt)=>{if(G)return;Y(!0),J.current={content:be,images:Ae,options:et(mt)},await(r==null?void 0:r(f))||(J.current=null,Y(!1))},[G,r,et,f]),At=u.useCallback((be,Ae,mt)=>{ee(Vt=>Vt+1),zt(be,Ae,et(mt))},[zt,et]),In=u.useCallback(be=>{X.current!==null&&(window.clearTimeout(X.current),X.current=null),Ee(!1),je(be)},[]),wn=u.useCallback(()=>{!we||xe||(Ee(!0),X.current=window.setTimeout(()=>{X.current=null,je(null),Ee(!1)},L8))},[xe,we]),un=u.useCallback(be=>{var St;be.preventDefault(),be.stopPropagation();const Ae=be.currentTarget.closest("[data-file-preview-panel]"),mt=(St=Fe.current)==null?void 0:St.getBoundingClientRect(),Vt=(mt==null?void 0:mt.right)??window.innerWidth,Me=Dx((mt==null?void 0:mt.width)??window.innerWidth),yt=document.body.style.cursor,tn=document.body.style.userSelect,Gt=(Ae==null?void 0:Ae.style.transition)??"";let It=B.current,ft=null;document.body.style.cursor="col-resize",document.body.style.userSelect="none",Ae&&(Ae.style.transition="none");const Ct=Ut=>{It=Lx(Vt-Ut,Me),B.current=It,ft===null&&(ft=window.requestAnimationFrame(()=>{ft=null,Ae==null||Ae.style.setProperty("--file-preview-width",`${It}px`),Ae==null||Ae.style.setProperty("--file-preview-slot-width",`${It}px`)}))},Lt=Ut=>{Ut.preventDefault(),Ct(Ut.clientX)},ir=()=>{ft!==null&&(window.cancelAnimationFrame(ft),ft=null),Ae==null||Ae.style.setProperty("--file-preview-width",`${It}px`),Ae==null||Ae.style.setProperty("--file-preview-slot-width",`${It}px`),Ae&&(Ae.style.transition=Gt),Se(It),document.body.style.cursor=yt,document.body.style.userSelect=tn,window.removeEventListener("pointermove",Lt),window.removeEventListener("pointerup",ir),window.removeEventListener("pointercancel",ir)};Ct(be.clientX),window.addEventListener("pointermove",Lt),window.addEventListener("pointerup",ir),window.addEventListener("pointercancel",ir)},[]);u.useEffect(()=>{if(!we)return;const be=()=>{var Me;const Ae=((Me=Fe.current)==null?void 0:Me.getBoundingClientRect().width)??window.innerWidth,mt=Dx(Ae),Vt=Lx(B.current,mt);B.current=Vt,Se(Vt)};return be(),window.addEventListener("resize",be),()=>{window.removeEventListener("resize",be)}},[we]);const Wn=u.useCallback(async be=>{if(!C||!a)return;const Ae=await a(C,be);Ae&&(Ie.current.delete(Ae),ue.current.delete(Ae),Be.current.add(Ae))},[C,a]),sr=s.jsxs(s.Fragment,{children:[ar?s.jsx(DF,{error:ar,onDismiss:Cr}):null,e?s.jsx(rx,{onSend:At,disabled:!C,isStreaming:yn,placeholder:k(bn?"thread.composer.placeholderHero":"thread.composer.placeholderThread"),modelLabel:Sr,modelProvider:Ze.provider,modelProviderLabel:Ze.providerLabel,modelNeedsSetup:Ze.needsSetup,onModelBadgeClick:Ze.needsSetup?w:void 0,variant:bn?"hero":"thread",slashCommands:oe,cliApps:pe,mcpPresets:le,onStop:Vr,onTranscribeAudio:jt,runStartedAt:rr,goalState:cn,workspaceScope:f,workspaceDefaultScope:h,workspaceControls:y,workspaceScopeDisabled:x,workspaceError:b,onWorkspaceScopeChange:v,pendingQueueKey:C}):s.jsx(rx,{onSend:nt,disabled:G,isStreaming:yn,placeholder:k(G?"thread.composer.placeholderOpening":"thread.composer.placeholderHero"),modelLabel:Sr,modelProvider:Ze.provider,modelProviderLabel:Ze.providerLabel,modelNeedsSetup:Ze.needsSetup,onModelBadgeClick:Ze.needsSetup?w:void 0,variant:"hero",slashCommands:oe,cliApps:pe,mcpPresets:le,runStartedAt:rr,onTranscribeAudio:jt,goalState:cn,workspaceScope:f,workspaceDefaultScope:h,workspaceControls:y,workspaceScopeDisabled:x,workspaceError:b,onWorkspaceScopeChange:v})]}),Gr=A?s.jsx("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:k("thread.loadingConversation")}):s.jsx("div",{className:"flex w-full flex-col items-center text-center animate-in fade-in-0 slide-in-from-bottom-2 duration-500",children:s.jsx("h1",{className:"max-w-[44rem] text-balance text-[34px] font-normal leading-[1.08] tracking-normal text-foreground sm:text-[48px] sm:leading-tight",children:k(O)})}),Nr=N?s.jsx(J4,{sessionKey:N,token:D,title:t}):void 0,en=N?s.jsx(V4,{messages:Hn,onJumpToPrompt:be=>{var Ae;return(Ae=ye.current)==null?void 0:Ae.jumpToUserPrompt(be)}}):void 0;return s.jsxs("section",{ref:Fe,className:"relative flex min-h-0 flex-1 overflow-hidden",children:[s.jsxs("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[m?null:s.jsx(IF,{title:t,onToggleSidebar:n,theme:i,onToggleTheme:l,hideSidebarToggleForHostChrome:c,hostChromeTitleInset:d,hideThemeButton:p,minimal:!e&&!A,promptNavigatorAction:en,sessionInfoAction:Nr}),s.jsx(u8,{ref:ye,messages:Hn,isStreaming:yn,emptyState:Gr,composer:sr,scrollToBottomSignal:he,scrollToLatestUserPromptSignal:me,conversationKey:N,showScrollToBottomButton:!!e,cliApps:pe,mcpPresets:le,forkBoundaryMessageCount:$,hasMoreBefore:R,loadingOlder:E,userMessageOffset:T,onLoadOlder:_,onOpenFilePreview:N?In:void 0,onForkFromMessage:a?Wn:void 0})]}),we&&N?s.jsx(W4,{sessionKey:N,path:we,token:D,desktopWidth:$e,isClosing:xe,onResizeStart:un,onClose:wn}):null]})}const U8=[1e3,3e3,7e3];function qd(e){var t;return!!((t=e==null?void 0:e.title)!=null&&t.trim())}function B8(e,t,n=U8){const r=u.useRef(e),a=u.useRef([]);r.current=e;const o=u.useCallback(()=>{for(const i of a.current)clearTimeout(i);a.current=[]},[]);return u.useEffect(()=>o,[o]),u.useEffect(()=>{o()},[e==null?void 0:e.key,o]),u.useEffect(()=>{qd(e)&&o()},[e,o]),u.useCallback(()=>{t();const i=r.current;if(!(!i||qd(i))){o();for(const l of n){const c=setTimeout(()=>{const d=r.current;!d||d.key!==i.key||qd(d)||t()},l);a.current.push(c)}}},[o,t,n])}const Oa={schema_version:1,pinned_keys:[],archived_keys:[],title_overrides:{},project_name_overrides:{},tags_by_key:{},collapsed_groups:{},view:{density:"comfortable",show_previews:!1,show_timestamps:!1,show_archived:!1,sort:"updated_desc"},updated_at:null};function ym(e){if(!Array.isArray(e))return[];const t=[],n=new Set;for(const r of e){if(typeof r!="string")continue;const a=r.trim();!a||n.has(a)||(n.add(a),t.push(a))}return t}function zx(e){if(!e||typeof e!="object"||Array.isArray(e))return{};const t={};for(const[n,r]of Object.entries(e)){if(typeof r!="string")continue;const a=n.trim(),o=r.trim();!a||!o||(t[a]=o)}return t}function H8(e){if(!e||typeof e!="object"||Array.isArray(e))return{};const t={};for(const[n,r]of Object.entries(e)){const a=n.trim();if(!a)continue;const o=ym(r).slice(0,12);o.length&&(t[a]=o)}return t}function W8(e){if(!e||typeof e!="object"||Array.isArray(e))return{};const t={};for(const[n,r]of Object.entries(e)){const a=n.trim();a&&(t[a]=!!r)}return t}function Kd(e){if(!e||typeof e!="object"||Array.isArray(e))return{...Oa,view:{...Oa.view}};const t=e,n=t.view&&typeof t.view=="object"?t.view:Oa.view,r=n.density==="compact"?"compact":"comfortable",a=["updated_desc","created_desc","title_asc"].includes(n.sort)?n.sort:"updated_desc";return{schema_version:1,pinned_keys:ym(t.pinned_keys),archived_keys:ym(t.archived_keys),title_overrides:zx(t.title_overrides),project_name_overrides:zx(t.project_name_overrides),tags_by_key:H8(t.tags_by_key),collapsed_groups:W8(t.collapsed_groups),view:{density:r,show_previews:!!n.show_previews,show_timestamps:!!n.show_timestamps,show_archived:!!n.show_archived,sort:a},updated_at:typeof t.updated_at=="string"?t.updated_at:null}}function q8(e,t){const n=new Set(t.map(o=>o.key)),r=o=>o.filter(i=>n.has(i)),a=o=>{const i={};for(const[l,c]of Object.entries(o))n.has(l)&&(i[l]=c);return i};return{...e,pinned_keys:r(e.pinned_keys),archived_keys:r(e.archived_keys),title_overrides:a(e.title_overrides),tags_by_key:a(e.tags_by_key)}}function K8(e,t){return JSON.stringify(e)===JSON.stringify(t)}function V8(e,t){const{token:n}=kr(),r=u.useRef(n),a=u.useRef(Oa),o=u.useRef(0),[i,l]=u.useState(Oa),[c,d]=u.useState(!0);r.current=n,a.current=i,u.useEffect(()=>{let f=!1;return d(!0),(async()=>{try{const h=Kd(await LL(r.current));if(f)return;a.current=h,l(h)}catch{if(f)return;a.current=Oa,l(Oa)}finally{f||d(!1)}})(),()=>{f=!0}},[]);const p=u.useCallback(async f=>{const h=Kd(f(a.current)),y=o.current+1;o.current=y,a.current=h,l(h);try{const x=Kd(await DL(r.current,h));if(o.current!==y)return;a.current=x,l(x)}catch{}},[]),m=u.useMemo(()=>!t||c?i:q8(i,e),[c,e,t,i]);return u.useEffect(()=>{!t||c||K8(m,i)||p(()=>m)},[c,m,t,i,p]),{state:i,loading:c,update:p}}function G8(e){const[t,n]=u.useState([]);return u.useEffect(()=>{let r=!1;return bL(e).then(({skills:a})=>!r&&n(a)).catch(()=>!r&&n([])),()=>{r=!0}},[e]),t}const nh="nanobot-webui.bootstrap-secret";function Y8(){if(typeof window>"u")return"";try{return window.localStorage.getItem(nh)??""}catch{return""}}function Q8(e){try{window.localStorage.setItem(nh,e)}catch{}}function X8(){try{window.localStorage.removeItem(nh)}catch{}}async function $x(e="",t="",n){const r={};t&&(r["X-Nanobot-Auth"]=t);const a=await Kf(`${e}/webui/bootstrap`,{method:"GET",credentials:"same-origin",headers:r},n);if(!a.ok)throw new Error(`bootstrap failed: HTTP ${a.status}`);const o=await a.json();if(!o.token||!o.ws_path)throw new Error("bootstrap response missing token or ws_path");return o}function Ux(e,t,n){const r=`?token=${encodeURIComponent(t)}`,a=e&&e.startsWith("/")?e:`/${e||""}`;if(typeof window<"u"&&window.location.port==="5173")return`ws://${window.location.hostname.includes(":")?`[${window.location.hostname}]`:window.location.hostname}:8765${a}${r}`;if(n&&/^(wss?|nanobot-host):\/\//i.test(n)){const l=n.includes("?")?"&":"?";return`${n}${l}token=${encodeURIComponent(t)}`}if(typeof window>"u")return`ws://127.0.0.1:8765${a}${r}`;const o=window.location.protocol==="https:"?"wss":"ws",i=window.location.host;return`${o}://${i}${a}${r}`}const Bx=1,J8=2,Z8="nanobot-host://";function e6(e){return e.startsWith(Z8)?O1(e):new WebSocket(e)}function Hx(){var e;if(typeof globalThis>"u")return!1;try{const t=globalThis.localStorage,n=((e=t==null?void 0:t.getItem("nanobot_debug_ws"))==null?void 0:e.trim().toLowerCase())??"";return n==="0"||n==="false"||n==="off"||n==="no"?!1:n==="1"||n==="true"||n==="on"||n==="yes"}catch{return!1}}function t6(e){const t=e.event;if(t!=="delta"&&t!=="reasoning_delta")return e;const n={...e},r=typeof n.text=="string"?n.text:"",a=240;return r.length>a&&(n.text=`${r.slice(0,a)}… (${r.length} chars)`),n}const Kc=class Kc{constructor(t){He(this,"socket",null);He(this,"statusHandlers",new Set);He(this,"runtimeModelHandlers",new Set);He(this,"sessionUpdateHandlers",new Set);He(this,"runStatusHandlers",new Set);He(this,"errorHandlers",new Set);He(this,"chatHandlers",new Map);He(this,"pendingInboundByChat",new Map);He(this,"knownChats",new Set);He(this,"runStartedAtByChatId",new Map);He(this,"goalStateByChatId",new Map);He(this,"pendingNewChat",null);He(this,"pendingTranscriptions",new Map);He(this,"sendQueue",[]);He(this,"reconnectAttempts",0);He(this,"reconnectTimer",null);He(this,"shouldReconnect");He(this,"maxBackoffMs");He(this,"socketFactory");He(this,"currentUrl");He(this,"status_","idle");He(this,"readyChatId",null);He(this,"intentionallyClosed",!1);this.options=t,this.shouldReconnect=t.reconnect??!0,this.maxBackoffMs=t.maxBackoffMs??15e3,this.socketFactory=t.socketFactory??e6,this.currentUrl=t.url}get status(){return this.status_}get defaultChatId(){return this.readyChatId}updateUrl(t,n){this.currentUrl=t,n&&(this.socketFactory=n)}onStatus(t){return this.statusHandlers.add(t),t(this.status_),()=>{this.statusHandlers.delete(t)}}onRuntimeModelUpdate(t){return this.runtimeModelHandlers.add(t),()=>{this.runtimeModelHandlers.delete(t)}}onSessionUpdate(t){return this.sessionUpdateHandlers.add(t),()=>{this.sessionUpdateHandlers.delete(t)}}onRunStatus(t){this.runStatusHandlers.add(t);for(const[n,r]of this.runStartedAtByChatId)t(n,r);return()=>{this.runStatusHandlers.delete(t)}}onError(t){return this.errorHandlers.add(t),()=>{this.errorHandlers.delete(t)}}getRunStartedAt(t){const n=this.runStartedAtByChatId.get(t);return n===void 0?null:n}getGoalState(t){return this.goalStateByChatId.get(t)}recordGoalStatusForRunStrip(t,n){if(n.event==="turn_end"){this.runStartedAtByChatId.has(t)&&(this.runStartedAtByChatId.delete(t),this.emitRunStatus(t,null));return}if(n.event==="goal_status")if(n.status==="running"&&typeof n.started_at=="number"){const r=this.runStartedAtByChatId.get(t);this.runStartedAtByChatId.set(t,n.started_at),r!==n.started_at&&this.emitRunStatus(t,n.started_at)}else this.runStartedAtByChatId.has(t)&&(this.runStartedAtByChatId.delete(t),this.emitRunStatus(t,null))}recordGoalStateSnapshot(t,n){if(n.event==="goal_state"){this.goalStateByChatId.set(t,n.goal_state);return}n.event==="turn_end"&&n.goal_state!=null&&typeof n.goal_state=="object"&&this.goalStateByChatId.set(t,n.goal_state)}onChat(t,n){let r=this.chatHandlers.get(t);r||(r=new Set,this.chatHandlers.set(t,r)),r.add(n);const a=this.pendingInboundByChat.get(t);if(a!==void 0&&a.length>0){const o=a.splice(0);this.pendingInboundByChat.delete(t);for(const i of o)n(i)}return this.attach(t),()=>{const o=this.chatHandlers.get(t);o&&(o.delete(n),o.size===0&&this.chatHandlers.delete(t))}}connect(){if(this.socket&&this.socket.readyStatethis.handleOpen(),t.onmessage=n=>this.handleMessage(n),t.onerror=()=>this.setStatus("error"),t.onclose=n=>this.handleClose(n)}close(){this.intentionallyClosed=!0,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null);const t=this.socket;this.socket=null;try{t==null||t.close()}catch{}this.setStatus("closed")}newChat(t=5e3,n){return this.pendingNewChat?Promise.reject(new Error("newChat already in flight")):new Promise((r,a)=>{const o=setTimeout(()=>{this.pendingNewChat=null,a(new Error("newChat timed out"))},t);this.pendingNewChat={resolve:r,reject:a,timer:o},this.queueSend({type:"new_chat",...n?{workspace_scope:n}:{}})})}transcribeAudio(t,n){const r=crypto.randomUUID(),a=(n==null?void 0:n.timeoutMs)??12e4;return new Promise((o,i)=>{const l=setTimeout(()=>{this.pendingTranscriptions.delete(r),i(new Error("transcription timed out"))},a);this.pendingTranscriptions.set(r,{resolve:o,reject:i,timer:l}),this.queueSend({type:"transcribe_audio",request_id:r,data_url:t,...(n==null?void 0:n.durationMs)!==void 0?{duration_ms:n.durationMs}:{}})})}forkChat(t,n,r,a=5e3){return this.pendingNewChat?Promise.reject(new Error("newChat already in flight")):new Promise((o,i)=>{const l=setTimeout(()=>{this.pendingNewChat=null,i(new Error("forkChat timed out"))},a);this.pendingNewChat={resolve:o,reject:i,timer:l},this.queueSend({type:"fork_chat",source_chat_id:t,before_user_index:n,...r!=null&&r.trim()?{title:r.trim()}:{}})})}attach(t){var n;this.knownChats.add(t),((n=this.socket)==null?void 0:n.readyState)===Bx&&this.queueSend({type:"attach",chat_id:t})}sendMessage(t,n,r,a){var i,l,c;this.knownChats.add(t);const o={type:"message",chat_id:t,content:n,...r&&r.length>0?{media:r}:{},...(i=a==null?void 0:a.attachments)!=null&&i.length?{attachments:a.attachments}:{},...a!=null&&a.imageGeneration?{image_generation:a.imageGeneration}:{},...(l=a==null?void 0:a.cliApps)!=null&&l.length?{cli_apps:a.cliApps}:{},...(c=a==null?void 0:a.mcpPresets)!=null&&c.length?{mcp_presets:a.mcpPresets}:{},...a!=null&&a.workspaceScope?{workspace_scope:a.workspaceScope}:{},...a!=null&&a.turnId?{turn_id:a.turnId}:{},webui:!0};this.queueSend(o)}setWorkspaceScope(t,n){this.knownChats.add(t),this.queueSend({type:"set_workspace_scope",chat_id:t,workspace_scope:n})}setStatus(t){if(this.status_!==t){this.status_=t;for(const n of this.statusHandlers)n(t)}}handleOpen(){this.setStatus("open"),this.reconnectAttempts=0;for(const n of this.knownChats)this.rawSend({type:"attach",chat_id:n});const t=this.sendQueue.splice(0);for(const n of t)this.rawSend(n)}handleMessage(t){let n;try{n=JSON.parse(typeof t.data=="string"?t.data:"")}catch{if(Hx()){const a=typeof t.data=="string"?t.data:String(t.data);console.warn("[nanobot ws inbound] invalid JSON",a.length>400?`${a.slice(0,400)}… (${a.length} chars)`:a)}return}if(Hx()&&console.log("[nanobot ws inbound]",t6(n)),n.event==="ready"){this.readyChatId=n.chat_id,this.knownChats.add(n.chat_id);return}if(n.event==="attached"){this.knownChats.add(n.chat_id),this.pendingNewChat&&(clearTimeout(this.pendingNewChat.timer),this.pendingNewChat.resolve(n.chat_id),this.pendingNewChat=null),this.dispatch(n.chat_id,n);return}if(n.event==="runtime_model_updated"){this.emitRuntimeModelUpdate(n.model_name||null,n.model_preset??null);return}if(n.event==="transcription_result"){this.resolveTranscription(n.request_id,n.text);return}if(n.event==="transcription_error"){this.rejectTranscription(n.request_id,n.detail||"error");return}if(n.event==="session_updated"){this.emitSessionUpdate(n.chat_id,n.scope,n.workspace_scope);return}if(n.event==="error"&&n.detail==="workspace_scope_rejected"&&(this.emitError({kind:"workspace_scope_rejected",reason:n.reason,chatId:n.chat_id}),this.pendingNewChat&&(clearTimeout(this.pendingNewChat.timer),this.pendingNewChat.reject(new Error(`workspace_scope_rejected:${n.reason||""}`)),this.pendingNewChat=null)),n.event==="error"&&this.pendingNewChat){clearTimeout(this.pendingNewChat.timer);const a=typeof n.detail=="string"?n.detail:"server error",o=typeof n.reason=="string"&&n.reason?`:${n.reason}`:"";this.pendingNewChat.reject(new Error(`${a}${o}`)),this.pendingNewChat=null}const r=n.chat_id;r&&(this.recordGoalStatusForRunStrip(r,n),this.recordGoalStateSnapshot(r,n),this.dispatch(r,n))}emitRuntimeModelUpdate(t,n){for(const r of this.runtimeModelHandlers)r(t,n)}emitSessionUpdate(t,n,r){for(const a of this.sessionUpdateHandlers)a(t,n,r)}emitRunStatus(t,n){for(const r of this.runStatusHandlers)r(t,n)}dispatch(t,n){const r=this.chatHandlers.get(t);if(r!==void 0&&r.size>0){for(const i of r)i(n);return}let a=this.pendingInboundByChat.get(t);a||(a=[],this.pendingInboundByChat.set(t,a)),a.push(n);const o=a.length-Kc.PENDING_INBOUND_MAX;o>0&&a.splice(0,o)}handleClose(t){if(this.socket=null,this.pendingNewChat&&(clearTimeout(this.pendingNewChat.timer),this.pendingNewChat.reject(new Error("socket closed")),this.pendingNewChat=null),this.rejectAllTranscriptions("socket closed"),(t==null?void 0:t.code)===1009&&this.emitError({kind:"message_too_big"}),this.intentionallyClosed||!this.shouldReconnect){this.setStatus("closed");return}this.scheduleReconnect()}emitError(t){for(const n of this.errorHandlers)try{n(t)}catch{}}resolveTranscription(t,n){const r=this.pendingTranscriptions.get(t);r&&(clearTimeout(r.timer),this.pendingTranscriptions.delete(t),r.resolve(n))}rejectTranscription(t,n){if(!t){this.rejectAllTranscriptions(n);return}const r=this.pendingTranscriptions.get(t);r&&(clearTimeout(r.timer),this.pendingTranscriptions.delete(t),r.reject(new Error(n)))}rejectAllTranscriptions(t){for(const[n,r]of this.pendingTranscriptions)clearTimeout(r.timer),r.reject(new Error(t)),this.pendingTranscriptions.delete(n)}scheduleReconnect(){this.setStatus("reconnecting");const t=this.reconnectAttempts++,n=Math.min(500*2**t,this.maxBackoffMs);this.reconnectTimer=setTimeout(async()=>{if(this.reconnectTimer=null,this.options.onReauth)try{const r=await this.options.onReauth();r&&(this.currentUrl=r)}catch{}this.connect()},n)}queueSend(t){var n;((n=this.socket)==null?void 0:n.readyState)===Bx?this.rawSend(t):this.sendQueue.push(t)}rawSend(t){if(this.socket)try{this.socket.send(JSON.stringify(t))}catch{this.sendQueue.push(t)}}};He(Kc,"PENDING_INBOUND_MAX",2e3);let bm=Kc;const iS="nanobot-webui.sidebar",lS="nanobot-webui.sidebar.session-updates.v1",n6="nanobot-webui.sidebar.completed-runs.v1",Vd="nanobot-webui.restartStartedAt",tc=272,r6=56,Wx=`min(${tc}px, calc(100vw - 0.75rem))`,a6=3e4,o6=5e3,s6=["overview","appearance","models","image","voice","browser","apps","automations","skills","runtime","advanced"];function i6(e){return s6.includes(e)}function oa(){return{view:"chat",activeKey:null,settingsSection:"overview"}}function cS(e){return e==="apps"||e==="automations"||e==="skills"?e:"settings"}function Gd(){var l;if(typeof window>"u")return oa();const e=window.location.hash.startsWith("#")?window.location.hash.slice(1):window.location.hash;if(!e||e==="/"||e==="/new")return oa();const[t,n=""]=e.split("?",2),r=new URLSearchParams(n),a=r.get("section"),o=i6(a)?a:"overview",i=((l=r.get("chat"))==null?void 0:l.trim())||null;if(t==="/settings")return{view:cS(o),activeKey:i,settingsSection:o};if(t==="/apps")return{view:"apps",activeKey:i,settingsSection:"apps"};if(t==="/automations")return{view:"automations",activeKey:i,settingsSection:"automations"};if(t==="/skills")return{view:"skills",activeKey:i,settingsSection:"skills"};if(t.startsWith("/chat/")){const c=t.slice(6);try{const d=decodeURIComponent(c).trim();return d?{view:"chat",activeKey:d,settingsSection:"overview"}:oa()}catch{return oa()}}return oa()}function l6(e){if(e.view==="chat")return e.activeKey?`#/chat/${encodeURIComponent(e.activeKey)}`:"#/new";const t=new URLSearchParams;e.activeKey&&t.set("chat",e.activeKey),e.view==="settings"&&e.settingsSection!=="overview"&&t.set("section",e.settingsSection);const n=t.toString();return`#/${e.view}${n?`?${n}`:""}`}function c6(e,t=!1){if(typeof window>"u")return;const n=l6(e);if(window.location.hash!==n){if(t){window.history.replaceState(null,"",`${window.location.pathname}${window.location.search}${n}`);return}window.location.hash=n}}function qx(e){return Date.now()+Math.max(0,e)*1e3}function u6(e){const t=Math.max(0,e-Date.now()),n=Math.min(a6,Math.max(1e3,t/2));return Math.max(o6,t-n)}function d6({failed:e,onSecret:t}){const{t:n}=ie(),[r,a]=u.useState(""),[o,i]=u.useState(!1),l=c=>{c.preventDefault();const d=r.trim();d&&(i(!0),t(d))};return s.jsx("div",{className:"flex h-full w-full items-center justify-center px-6",children:s.jsxs("form",{onSubmit:l,className:"flex w-full max-w-sm flex-col gap-4",children:[s.jsxs("div",{className:"flex flex-col items-center gap-1 text-center",children:[s.jsx("p",{className:"text-lg font-semibold",children:n("app.auth.title")}),s.jsx("p",{className:"text-sm text-muted-foreground",children:n("app.auth.hint")})]}),e&&s.jsx("p",{className:"text-center text-sm text-destructive",children:n("app.auth.invalid")}),s.jsx(Ye,{type:"password",placeholder:n("app.auth.placeholder"),value:r,onChange:c=>a(c.target.value),disabled:o,autoFocus:!0}),s.jsx(fe,{type:"submit",className:"w-full",disabled:!r.trim()||o,children:n("app.auth.submit")})]})})}function p6(){if(typeof window>"u")return!0;try{const e=window.localStorage.getItem(iS);return e===null?!0:e==="1"}catch{return!0}}function m6(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(lS)??window.localStorage.getItem(n6),t=e?JSON.parse(e):[];return Array.isArray(t)?new Set(t.filter(n=>typeof n=="string")):new Set}catch{return new Set}}function f6(e){try{window.localStorage.setItem(lS,JSON.stringify(Array.from(e)))}catch{}}function Os(e){const t=e.access_mode==="restricted"?"restricted":"full";return{...e,project_name:e.project_name??Ri(e.project_path),access_mode:t,restrict_to_workspace:t==="restricted"}}function h6({onToggleSidebar:e,onSidebarPreviewEnter:t,onSidebarPreviewLeave:n,sidebarOpen:r=!0,rightAction:a}){const{t:o}=ie();return s.jsxs("header",{className:"host-drag-region pointer-events-none absolute inset-x-0 top-0 z-40 h-11 bg-transparent text-foreground/90",children:[e?s.jsx(fe,{type:"button",variant:"ghost",size:"icon","aria-label":o("thread.header.toggleSidebar"),"data-testid":"host-sidebar-toggle",onClick:e,onFocus:r?void 0:t,onBlur:r?void 0:n,onMouseEnter:r?void 0:t,onMouseLeave:r?void 0:n,className:"host-no-drag pointer-events-auto absolute left-[88px] top-[8px] h-7 w-7 rounded-lg bg-transparent text-muted-foreground/85 shadow-none hover:bg-transparent hover:text-foreground",children:s.jsx(dA,{className:"h-[15px] w-[15px]",strokeWidth:1.75})}):null,a?s.jsx("div",{className:"host-no-drag pointer-events-auto absolute right-3 top-2",children:a}):null]})}function g6(){const{t:e}=ie(),[t,n]=u.useState({status:"loading"}),r=u.useRef(""),a=u.useCallback(async(d,p)=>{const m=await $x("",r.current),f=Ux(m.ws_path,m.token,m.ws_url),h=m.runtime_surface?wv(m.runtime_surface):p,y=kv(h,m.runtime_capabilities),x=qx(m.expires_in);return y.socketFactory?d.updateUrl(f,y.socketFactory):d.updateUrl(f),n(b=>b.status==="ready"&&b.client===d?{...b,token:m.token,tokenExpiresAt:x,modelName:m.model_name??b.modelName,runtimeSurface:h}:b),{token:m.token,url:f}},[]),o=u.useCallback(d=>{let p=!1;return(async()=>{n({status:"loading"});try{const m=await $x("",d);if(p)return;d&&Q8(d);const f=Ux(m.ws_path,m.token,m.ws_url),h=wv(m.runtime_surface),y=kv(h,m.runtime_capabilities),x=new bm({url:f,socketFactory:y.socketFactory,onReauth:async()=>{try{return(await a(x,h)).url}catch{return null}}});r.current=d,x.connect(),n({status:"ready",client:x,token:m.token,tokenExpiresAt:qx(m.expires_in),modelName:m.model_name??null,runtimeSurface:h})}catch(m){if(p)return;const f=m.message;f.includes("HTTP 401")||f.includes("HTTP 403")?n({status:"auth",failed:!!d}):n({status:"error",message:f})}})(),()=>{p=!0}},[a]);if(u.useEffect(()=>{if(t.status!=="ready")return;const d=t.client,p=window.setTimeout(async()=>{try{await a(d,t.runtimeSurface)}catch(m){const f=m.message;(f.includes("HTTP 401")||f.includes("HTTP 403"))&&n({status:"auth",failed:!!r.current})}},u6(t.tokenExpiresAt));return()=>window.clearTimeout(p)},[a,t]),u.useEffect(()=>{const d=Y8();return o(d)},[o]),t.status==="loading")return s.jsx("div",{className:"flex h-full w-full items-center justify-center",children:s.jsx("div",{className:"flex flex-col items-center gap-3 animate-in fade-in-0 duration-300",children:s.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[s.jsxs("span",{className:"relative flex h-2 w-2",children:[s.jsx("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-foreground/40"}),s.jsx("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-foreground/60"})]}),e("app.loading.connecting")]})})});if(t.status==="auth")return s.jsx(d6,{failed:!!t.failed,onSecret:d=>o(d)});if(t.status==="error")return s.jsx("div",{className:"flex h-full w-full items-center justify-center px-4 text-center",children:s.jsxs("div",{className:"flex max-w-md flex-col items-center gap-3",children:[s.jsx("p",{className:"text-lg font-semibold",children:e("app.error.title")}),s.jsx("p",{className:"text-sm text-muted-foreground",children:t.message}),s.jsx("p",{className:"text-xs text-muted-foreground",children:e("app.error.gatewayHint")})]})});const i=d=>{n(p=>p.status==="ready"?{...p,modelName:d}:p)},l=()=>{t.status==="ready"&&t.client.close(),X8(),n({status:"auth"})},c=async()=>{const d=Ja();if(!(d!=null&&d.restartEngine))throw new Error("native engine restart is unavailable");return await d.restartEngine(),(await a(t.client,t.runtimeSurface)).token};return s.jsx(J5,{client:t.client,token:t.token,modelName:t.modelName,children:s.jsx(v6,{runtimeSurface:t.runtimeSurface,onModelNameChange:i,onLogout:l,onNativeEngineRestart:c})})}function v6({runtimeSurface:e,onModelNameChange:t,onLogout:n,onNativeEngineRestart:r}){const{t:a,i18n:o}=ie(),{client:i,token:l}=kr(),{theme:c,toggle:d}=b4(),{sessions:p,loading:m,refresh:f,createChat:h,forkChat:y,deleteChat:x,getSessionAutomations:b}=j8(),{state:v,update:g}=V8(p,!m),w=u.useRef(null);w.current||(w.current=Gd());const[k,C]=u.useState(w.current.activeKey),[N,S]=u.useState(w.current.view),[A,E]=u.useState(w.current.settingsSection),[_,R]=u.useState(p6),[T,F]=u.useState(!1),[z,K]=u.useState(!1),[$,W]=u.useState(!1),[P,D]=u.useState(null),[G,Y]=u.useState(null),[oe,de]=u.useState(null),pe=u.useRef(!1),[le,I]=u.useState(null),[Q,O]=u.useState(!1),[ne,he]=u.useState(()=>new Set),[ve,me]=u.useState(m6),[ee,we]=u.useState(null),je=G8(l),[xe,Ee]=u.useState(null),[$e,Se]=u.useState(null),[Fe,B]=u.useState(null),[X,J]=u.useState({}),ye=u.useRef(new Set),Ie=u.useRef(null),Ne=u.useRef(null),ue=((xe==null?void 0:xe.surface)??(xe==null?void 0:xe.runtime_surface)??e)==="native",Be=N!=="settings",ze=u.useCallback((H,q)=>{C(H.activeKey),S(H.view),E(H.settingsSection),c6(H,q==null?void 0:q.replace)},[]);u.useEffect(()=>{const H=()=>{const q=Gd();C(q.activeKey),S(q.view),E(q.settingsSection),Se(null),q.view==="chat"&&!q.activeKey&&B(null)};return window.addEventListener("hashchange",H),()=>window.removeEventListener("hashchange",H)},[]),u.useEffect(()=>{let H=!1;return oi(l).then(q=>{H||Ee(q)}).catch(()=>{H||Ee(null)}),()=>{H=!0}},[l]),u.useEffect(()=>{try{window.localStorage.setItem(iS,_?"1":"0")}catch{}},[_]),u.useEffect(()=>{f6(ve)},[ve]);const We=u.useMemo(()=>k?p.find(H=>H.key===k)??null:null,[p,k]),nr=u.useMemo(()=>Array.from(ne),[ne]),xn=u.useMemo(()=>Array.from(ve),[ve]),Qe=(We==null?void 0:We.chatId)??null;u.useEffect(()=>{Ie.current=Qe,Qe&&me(H=>{if(!H.has(Qe))return H;const q=new Set(H);return q.delete(Qe),q})},[Qe]);const yn=u.useMemo(()=>Qe&&X[Qe]?X[Qe]:We!=null&&We.workspaceScope?We.workspaceScope:Fe??(ee==null?void 0:ee.default_scope)??null,[Qe,We==null?void 0:We.workspaceScope,Fe,X,ee==null?void 0:ee.default_scope]),rr=Qe?ne.has(Qe):!1,cn=u.useCallback(async()=>{try{const H=await NL(l);we(H)}catch{we(null)}},[l]);u.useEffect(()=>{cn()},[cn]),u.useEffect(()=>{if(m)return;const H=new Set(p.map(q=>q.chatId));me(q=>{const se=new Set(Array.from(q).filter(ke=>H.has(ke)));return se.size===q.size?q:se}),J(q=>{const se=Object.entries(q).filter(([ke])=>H.has(ke));return se.length===Object.keys(q).length?q:Object.fromEntries(se)})},[m,p]),u.useEffect(()=>{if(m||!k||p.some(q=>q.key===k))return;const H=Gd();ze(H.view==="chat"?oa():{...H,activeKey:null},{replace:!0})},[k,m,ze,p]),u.useEffect(()=>i.onSessionUpdate((H,q,se)=>{if(q==="thread"&&me(Le=>{const Dt=new Set(Le);return Ie.current===H?Dt.delete(H):Dt.add(H),Dt.size===Le.size&&Dt.has(H)===Le.has(H)?Le:Dt}),!se)return;const ke=Os(se);J(Le=>({...Le,[H]:ke})),B(ke),Se(null),cn()}),[i,cn]),u.useEffect(()=>i.onError(H=>{H.kind==="workspace_scope_rejected"&&(Se(a("errors.workspaceScopeRejected.body")),cn())}),[i,cn,a]),u.useEffect(()=>{if(m)return;const H=p.filter(q=>typeof q.runStartedAt=="number").map(q=>q.chatId);if(H.length!==0){for(const q of H)i.attach(q);he(q=>{let se=!1;const ke=new Set(q);for(const Le of H)ke.has(Le)||(se=!0),ke.add(Le);return se?(ye.current=ke,ke):q}),me(q=>{let se=!1;const ke=new Set(q);for(const Le of H)ke.delete(Le)&&(se=!0);return se?ke:q})}},[i,m,p]);const zt=u.useCallback(()=>{Ne.current!==null&&(window.clearTimeout(Ne.current),Ne.current=null)},[]),jt=u.useCallback(()=>{zt(),F(!1)},[zt]),Vr=u.useCallback(()=>{!ue||!Be||_||(zt(),F(!0))},[zt,_,ue,Be]),kt=u.useCallback(()=>{if(zt(),!ue||!Be||_){F(!1);return}Ne.current=window.setTimeout(()=>{F(!1),Ne.current=null},160)},[zt,_,ue,Be]);u.useEffect(()=>()=>zt(),[zt]),u.useEffect(()=>{(!ue||!Be||_)&&jt()},[jt,_,ue,Be]);const ar=u.useCallback(()=>{jt(),R(!1)},[jt]),Cr=u.useCallback(()=>{jt(),R(!0)},[jt]),Hn=u.useCallback(()=>{jt(),R(H=>!H)},[jt]),bn=u.useCallback(()=>{K(!1)},[]),or=u.useCallback(()=>{typeof window<"u"&&window.matchMedia("(min-width: 1024px)").matches?(jt(),R(q=>!q)):K(q=>!q)},[jt]),Ze=u.useCallback(H=>{const q=Os(H);if(Se(null),Qe){rr||i.setWorkspaceScope(Qe,q);return}B(q)},[Qe,rr,i]),Sr=u.useCallback(async H=>{try{const q=H??yn,se=await h(q);return ze({view:"chat",activeKey:`websocket:${se}`,settingsSection:"overview"}),K(!1),q&&J(ke=>({...ke,[se]:Os(q)})),se}catch(q){return console.error("Failed to create chat",q),q instanceof Error&&q.message.startsWith("workspace_scope_rejected:")&&Se(a("errors.workspaceScopeRejected.body")),null}},[yn,h,ze,a]),et=u.useCallback(async(H,q)=>{try{const se=p.find(Dt=>Dt.chatId===H),ke=se?m1(se,v.title_overrides,a("chat.newChat")):a("chat.newChat"),Le=await y(H,q,a("chat.forkTitle",{title:ke}));return ze({view:"chat",activeKey:`websocket:${Le}`,settingsSection:"overview"}),K(!1),Le}catch(se){return console.error("Failed to fork chat",se),null}},[y,ze,p,v.title_overrides,a]),$t=u.useCallback(()=>{ze(oa()),B(null),Se(null),W(!1),K(!1)},[ze]),nt=u.useCallback((H,q)=>{const se=(ee==null?void 0:ee.default_scope)??yn,ke=H.trim();if(!se||!ke){$t();return}ze(oa()),B(Os({project_path:ke,project_name:q||Ri(ke),access_mode:se.access_mode,restrict_to_workspace:se.access_mode==="restricted"})),Se(null),K(!1)},[yn,ze,$t,ee==null?void 0:ee.default_scope]),At=u.useCallback(H=>{const q=p.find(ke=>ke.key===H),se=q==null?void 0:q.chatId;se&&me(ke=>{if(!ke.has(se))return ke;const Le=new Set(ke);return Le.delete(se),Le}),q!=null&&q.workspaceScope?B(Os(q.workspaceScope)):B(null),Se(null),ze({view:"chat",activeKey:H,settingsSection:"overview"}),K(!1)},[ze,p]),In=u.useCallback(H=>{g(q=>{const se=new Set(q.pinned_keys);return se.has(H)?se.delete(H):se.add(H),{...q,pinned_keys:Array.from(se)}})},[g]),wn=u.useCallback((H,q)=>{Y({key:H,label:q})},[]),un=u.useCallback(H=>{if(!G)return;const q=G.key;Y(null),g(se=>{const ke={...se.title_overrides},Le=H.trim();return Le?ke[q]=Le:delete ke[q],{...se,title_overrides:ke}})},[G,g]),Wn=u.useCallback(H=>{g(q=>{const se={...q.collapsed_groups};return H==="workspace:chats"||H==="date:all"?(se[H]===!1?delete se[H]:se[H]=!1,{...q,collapsed_groups:se}):(se[H]?delete se[H]:se[H]=!0,{...q,collapsed_groups:se})})},[g]),sr=u.useCallback((H,q)=>{de({key:H,label:q})},[]),Gr=u.useCallback(H=>{if(!oe)return;const q=oe.key;de(null),g(se=>{const ke={...se.project_name_overrides},Le=H.trim();return Le?ke[q]=Le:delete ke[q],{...se,project_name_overrides:ke}})},[oe,g]),Nr=u.useCallback(H=>{if(g(q=>{const se=new Set(q.archived_keys),ke=q.pinned_keys.filter(Le=>Le!==H);return se.has(H)?se.delete(H):se.add(H),{...q,pinned_keys:ke,archived_keys:Array.from(se)}}),k===H&&!v.archived_keys.includes(H)){const q=new Set([...v.archived_keys,H]),se=p.find(ke=>!q.has(ke.key));ze({view:"chat",activeKey:(se==null?void 0:se.key)??null,settingsSection:"overview"})}},[k,ze,p,v.archived_keys,g]),en=u.useCallback(()=>{g(H=>({...H,view:{...H.view,show_archived:!H.view.show_archived}}))},[g]),be=u.useCallback(()=>{K(!1),W(!0)},[]);u.useEffect(()=>{const H=q=>{if(q.defaultPrevented)return;if((q.metaKey||q.ctrlKey)&&q.shiftKey&&!q.altKey&&q.key.toLowerCase()==="o"){q.preventDefault(),$t();return}(q.metaKey||q.ctrlKey)&&!q.altKey&&!q.shiftKey&&q.key.toLowerCase()==="k"&&(q.preventDefault(),be())};return window.addEventListener("keydown",H),()=>window.removeEventListener("keydown",H)},[$t,be]);const Ae=u.useCallback(H=>{W(!1),At(H)},[At]),mt=u.useCallback((H="overview")=>{W(!1),ze({view:"settings",activeKey:k,settingsSection:H}),K(!1)},[k,ze]),Vt=u.useCallback(()=>{mt("models")},[mt]),Me=u.useCallback(()=>{W(!1),ze({view:"apps",activeKey:k,settingsSection:"apps"}),K(!1)},[k,ze]),yt=u.useCallback(()=>{W(!1),ze({view:"automations",activeKey:k,settingsSection:"automations"}),K(!1)},[k,ze]),tn=u.useCallback(()=>{W(!1),ze({view:"skills",activeKey:k,settingsSection:"skills"}),K(!1)},[k,ze]),Gt=u.useCallback(H=>{ze({view:cS(H),activeKey:k,settingsSection:H})},[k,ze]),It=u.useCallback(()=>{K(!1);const H=(()=>{var q;return k?p.some(se=>se.key===k)?k:((q=p[0])==null?void 0:q.key)??null:null})();ze({view:"chat",activeKey:H,settingsSection:"overview"})},[k,ze,p]),ft=u.useCallback(()=>{const H=(We==null?void 0:We.chatId)??i.defaultChatId;if(H){pe.current=!1,O(!0);try{window.localStorage.setItem(Vd,String(Date.now()))}catch{}i.sendMessage(H,"/restart")}},[We==null?void 0:We.chatId,i]);u.useEffect(()=>i.onRuntimeModelUpdate(H=>{t(H)}),[i,t]),u.useEffect(()=>i.onRunStatus((H,q)=>{if(q!=null){const ke=new Set(ye.current);ke.add(H),ye.current=ke,he(ke),me(Le=>{if(!Le.has(H))return Le;const Dt=new Set(Le);return Dt.delete(H),Dt});return}if(!ye.current.has(H))return;const se=new Set(ye.current);se.delete(H),ye.current=se,he(se),me(ke=>{const Le=new Set(ke);return Ie.current===H?Le.delete(H):Le.add(H),Le})}),[i]),u.useEffect(()=>i.onStatus(H=>{const q=(()=>{try{return Number(window.localStorage.getItem(Vd)??"0")}catch{return 0}})();if(!q)return;if(H!=="open"){pe.current=!0;return}const se=Date.now()-q;if(!(!pe.current&&se<1500)){try{window.localStorage.removeItem(Vd)}catch{}O(!1),I(a("app.restart.completed",{seconds:(se/1e3).toFixed(1)})),window.setTimeout(()=>I(null),3500)}}),[i,a]);const Ct=B8(We,f),Lt=u.useCallback(async()=>{var Dt,jr,qe;if(!P)return;const H=P.key,q=(((Dt=P.automations)==null?void 0:Dt.length)??0)>0,se=k===H,ke=p.findIndex(Cn=>Cn.key===H),Le=se?((jr=p[ke+1])==null?void 0:jr.key)??((qe=p[ke-1])==null?void 0:qe.key)??null:k;try{const Cn=await x(H,q?{deleteAutomations:!0}:void 0);if(Cn.blocked_by_automations){D({...P,automations:Cn.automations??[]});return}D(null),se&&ze({view:"chat",activeKey:Le,settingsSection:"overview"},{replace:!0})}catch(Cn){console.error("Failed to delete session",Cn)}},[P,x,k,ze,p]),ir=u.useCallback(async(H,q)=>{let se=[];try{se=await b(H)}catch{}D({key:H,label:q,automations:se})},[b]),St=We?v.title_overrides[We.key]||We.title||Gi(We.preview,a("chat.newChat")):a("app.brand");u.useEffect(()=>{if(N==="settings"){document.title=a("app.documentTitle.chat",{title:a("settings.sidebar.title")});return}if(N==="apps"){document.title=a("app.documentTitle.chat",{title:a("settings.nav.apps",{defaultValue:"Apps"})});return}if(N==="automations"){document.title=a("app.documentTitle.chat",{title:a("settings.nav.automations",{defaultValue:"Automations"})});return}if(N==="skills"){document.title=a("app.documentTitle.chat",{title:a("settings.nav.skills",{defaultValue:"Skills"})});return}document.title=We?a("app.documentTitle.chat",{title:St}):a("app.documentTitle.base")},[We,St,o.resolvedLanguage,a,N]);const Ut={sessions:p,activeKey:k,loading:m,onNewChat:$t,onSelect:At,onRequestDelete:ir,onTogglePin:In,onRequestRename:wn,onToggleArchive:Nr,onToggleGroup:Wn,onRequestRenameProject:sr,onNewChatInProject:nt,onOpenSettings:mt,onOpenApps:Me,onOpenAutomations:yt,onOpenSkills:tn,onOpenSearch:be,activeUtility:N==="apps"||N==="automations"||N==="skills"?N:null,onToggleArchived:en,pinnedKeys:v.pinned_keys,archivedKeys:v.archived_keys,titleOverrides:v.title_overrides,projectNameOverrides:v.project_name_overrides,collapsedGroups:v.collapsed_groups,runningChatIds:nr,updatedChatIds:xn,viewState:v.view,showArchived:v.view.show_archived,archivedCount:v.archived_keys.length,defaultWorkspacePath:(ee==null?void 0:ee.default_scope.project_path)??null},nn=ue&&!_,lo=Be&&nn&&T,kn=ue?_?tc:0:_?tc:r6,co=!ue||_;return u.useEffect(()=>(document.documentElement.classList.toggle("native-host",ue),()=>{document.documentElement.classList.remove("native-host")}),[ue]),s.jsx(w4,{theme:c,children:s.jsxs("div",{className:j("relative h-full w-full overflow-hidden",ue&&"host-window-shell"),children:[ue?s.jsx(h6,{onToggleSidebar:Be?Hn:void 0,onSidebarPreviewEnter:Vr,onSidebarPreviewLeave:kt,sidebarOpen:_,rightAction:N==="chat"?void 0:s.jsx(fe,{type:"button",variant:"ghost",size:"icon","aria-label":a("thread.header.toggleTheme"),onClick:d,className:"h-8 w-8 rounded-full text-muted-foreground/85 hover:bg-accent/40 hover:text-foreground",children:c==="dark"?s.jsx(iw,{className:"h-4 w-4"}):s.jsx(vf,{className:"h-4 w-4"})})}):null,s.jsxs("div",{className:j("relative flex h-full w-full overflow-hidden"),children:[Be?s.jsx("aside",{"data-testid":"host-sidebar-flow",className:j("relative z-20 hidden shrink-0 overflow-hidden lg:block","transition-[width] duration-300 ease-out"),style:{width:kn},children:co?s.jsx("div",{className:j("absolute inset-y-0 left-0 h-full w-full overflow-hidden",ue?"host-sidebar-glass":"bg-sidebar shadow-inner-right"),children:s.jsx(Rd,{...Ut,collapsed:!ue&&!_,hostChromeInset:ue,onCollapse:ar,onExpand:Cr})}):null}):null,lo?s.jsx("aside",{"data-testid":"host-sidebar-preview",className:"absolute inset-y-0 left-0 z-30 hidden overflow-hidden lg:block animate-in fade-in-0 slide-in-from-left-2 duration-150",style:{width:tc},onMouseEnter:Vr,onMouseLeave:kt,children:s.jsx("div",{className:"h-full w-full overflow-hidden host-sidebar-glass shadow-2xl",children:s.jsx(Rd,{...Ut,hostChromeInset:ue,onCollapse:ar,onExpand:Cr})})}):null,Be?s.jsx(qf,{open:z,onOpenChange:H=>K(H),children:s.jsxs(ju,{side:"left",showCloseButton:!1,"aria-describedby":void 0,className:"p-0 lg:hidden",style:{width:Wx,maxWidth:Wx},children:[s.jsx(Au,{className:"sr-only",children:a("sidebar.navigation")}),s.jsx(Rd,{...Ut,onCollapse:bn,containActionMenus:!0})]})}):null,s.jsx(lL,{open:$,onOpenChange:W,sessions:p,activeKey:k,loading:m,titleOverrides:v.title_overrides,onSelect:Ae}),s.jsxs("main",{className:j("relative flex h-full min-w-0 flex-1 flex-col overflow-hidden bg-background",ue&&_&&"border-l border-border/55"),children:[s.jsx("div",{className:j("absolute inset-0 flex flex-col",N!=="chat"&&"invisible pointer-events-none"),children:s.jsx($8,{session:We,title:St,onToggleSidebar:or,onNewChat:$t,onCreateChat:Sr,onForkChat:et,onTurnEnd:Ct,theme:c,onToggleTheme:d,hideSidebarToggleForHostChrome:!0,hostChromeTitleInset:nn,hideHeader:!1,workspaceScope:yn,workspaceDefaultScope:(ee==null?void 0:ee.default_scope)??null,workspaceControls:(ee==null?void 0:ee.controls)??null,workspaceScopeDisabled:rr,workspaceError:$e,onWorkspaceScopeChange:Ze,settingsSnapshot:xe,onOpenModelSettings:Vt})}),N!=="chat"&&s.jsx("div",{className:"absolute inset-0 flex flex-col",children:s.jsx(iD,{theme:c,initialSection:A,initialSettings:xe,showSidebar:N==="settings",onToggleTheme:d,onBackToChat:It,onModelNameChange:t,onSettingsChange:Ee,skills:je,onWorkspaceSettingsChange:cn,onSectionChange:Gt,onLogout:n,onRestart:ft,onNativeEngineRestart:r,isRestarting:Q,hostChromeInset:ue})})]})]}),s.jsx(FM,{open:!!P,title:(P==null?void 0:P.label)??"",automations:P==null?void 0:P.automations,onCancel:()=>D(null),onConfirm:Lt}),s.jsx(Gg,{open:!!G,title:(G==null?void 0:G.label)??"",onCancel:()=>Y(null),onConfirm:un}),s.jsx(Gg,{open:!!oe,title:(oe==null?void 0:oe.label)??"",dialogTitle:a("chat.renameProjectTitle"),description:a("chat.renameProjectDescription"),placeholder:a("chat.renameProjectPlaceholder"),onCancel:()=>de(null),onConfirm:Gr}),le?s.jsx("div",{role:"status",className:"fixed left-1/2 top-[calc(0.75rem+env(safe-area-inset-top))] z-50 max-w-[calc(100vw-1rem)] -translate-x-1/2 rounded-full border border-border/70 bg-popover px-4 py-2 text-sm font-medium text-popover-foreground shadow-lg",children:le}):null]})})}typeof globalThis.crypto<"u"&&!("randomUUID"in globalThis.crypto)&&Object.defineProperty(globalThis.crypto,"randomUUID",{value:()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)}),configurable:!0});const uS=document.getElementById("root");if(!uS)throw new Error("root element missing");Yd.createRoot(uS).render(s.jsx(g6,{}));export{TC as A,Et as C,ew as E,Xf as F,F4 as a,S6 as b,j as c,z4 as d,Uc as f,C6 as i}; diff --git a/nanobot/web/dist/assets/index-D4RlwVvi.css b/nanobot/web/dist/assets/index-D4RlwVvi.css deleted file mode 100644 index abf3ab7..0000000 --- a/nanobot/web/dist/assets/index-D4RlwVvi.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Noto Sans SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Code,Cascadia Code,Source Code Pro,Menlo,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{color-scheme:light;--background: 0 0% 100%;--foreground: 240 3% 12%;--card: 0 0% 100%;--card-foreground: 240 3% 12%;--popover: 0 0% 100%;--popover-foreground: 240 3% 12%;--primary: 240 4% 16%;--primary-foreground: 0 0% 98%;--secondary: 0 0% 96.1%;--secondary-foreground: 0 0% 9%;--muted: 0 0% 96.1%;--muted-foreground: 0 0% 45.1%;--accent: 0 0% 96.1%;--accent-foreground: 0 0% 9%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 0 0% 89.8%;--input: 0 0% 89.8%;--ring: 0 0% 3.9%;--radius: .4375rem;--sidebar: 0 0% 98.5%;--sidebar-foreground: 0 0% 3.9%;--sidebar-accent: 0 0% 95.8%;--sidebar-accent-foreground: 0 0% 9%;--sidebar-border: 0 0% 89.8%;--scrollbar-thumb: hsl(var(--muted-foreground) / .26);--scrollbar-thumb-hover: hsl(var(--muted-foreground) / .42)}.dark{color-scheme:dark;--background: 0 0% 10%;--foreground: 240 4% 96%;--card: 0 0% 12%;--card-foreground: 240 4% 96%;--popover: 0 0% 12%;--popover-foreground: 240 4% 96%;--primary: 240 5% 98%;--primary-foreground: 0 0% 9%;--secondary: 0 0% 12%;--secondary-foreground: 0 0% 98%;--muted: 0 0% 13%;--muted-foreground: 0 0% 60%;--accent: 0 0% 15%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 0 0% 18%;--input: 0 0% 18%;--ring: 0 0% 83.1%;--sidebar: 0 0% 11.5%;--sidebar-foreground: 0 0% 98%;--sidebar-accent: 0 0% 15.5%;--sidebar-accent-foreground: 0 0% 98%;--sidebar-border: 0 0% 18%;--scrollbar-thumb: hsl(var(--muted-foreground) / .28);--scrollbar-thumb-hover: hsl(var(--muted-foreground) / .44)}*{border-color:hsl(var(--border))}html,body,#root{height:100%}body{background-color:hsl(var(--background));font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Noto Sans SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:9999px}*::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}*::-webkit-scrollbar-corner{background:transparent}::-moz-selection{background-color:hsl(var(--primary) / .15)}::selection{background-color:hsl(var(--primary) / .15)}.\!container{width:100%!important;margin-right:auto!important;margin-left:auto!important;padding-right:1rem!important;padding-left:1rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:1rem;padding-left:1rem}@media (min-width: 1400px){.\!container{max-width:1400px!important}.container{max-width:1400px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-5{bottom:1.25rem}.bottom-\[calc\(100\%\+8px\)\]{bottom:calc(100% + 8px)}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\[88px\]{left:88px}.right-0{right:0}.right-1{right:.25rem}.right-3{right:.75rem}.right-4{right:1rem}.right-9{right:2.25rem}.top-0{top:0}.top-1\/2{top:50%}.top-14{top:3.5rem}.top-2{top:.5rem}.top-4{top:1rem}.top-\[8px\]{top:8px}.top-\[calc\(0\.75rem\+env\(safe-area-inset-top\)\)\]{top:calc(.75rem + env(safe-area-inset-top))}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50,.z-\[50\]{z-index:50}.m-0{margin:0}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-my-0\.5{margin-top:-.125rem;margin-bottom:-.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.-ml-0\.5{margin-left:-.125rem}.-mt-0\.5{margin-top:-.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-7{margin-bottom:1.75rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-auto{margin-right:auto}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-6{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-36{height:9rem}.h-4{height:1rem}.h-44{height:11rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[0\.72em\]{height:.72em}.h-\[0\.74em\]{height:.74em}.h-\[0\.92em\]{height:.92em}.h-\[0\.96em\]{height:.96em}.h-\[15px\]{height:15px}.h-\[17px\]{height:17px}.h-\[18px\]{height:18px}.h-\[1em\]{height:1em}.h-\[1px\]{height:1px}.h-\[22px\]{height:22px}.h-\[3px\]{height:3px}.h-\[62px\]{height:62px}.h-\[78\%\]{height:78%}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-20{max-height:5rem}.max-h-24{max-height:6rem}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-\[16rem\]{max-height:16rem}.max-h-\[18rem\]{max-height:18rem}.max-h-\[20rem\]{max-height:20rem}.max-h-\[216px\]{max-height:216px}.max-h-\[26rem\]{max-height:26rem}.max-h-\[28rem\]{max-height:28rem}.max-h-\[34rem\]{max-height:34rem}.max-h-\[36rem\]{max-height:36rem}.max-h-\[92vh\]{max-height:92vh}.max-h-\[min\(40rem\,calc\(100vh-2rem\)\)\]{max-height:min(40rem,calc(100vh - 2rem))}.max-h-\[min\(42vh\,32rem\)\]{max-height:min(42vh,32rem)}.max-h-\[min\(var\(--radix-dropdown-menu-content-available-height\)\,28rem\)\]{max-height:min(var(--radix-dropdown-menu-content-available-height),28rem)}.min-h-0{min-height:0px}.min-h-10{min-height:2.5rem}.min-h-7{min-height:1.75rem}.min-h-8{min-height:2rem}.min-h-\[160px\]{min-height:160px}.min-h-\[36px\]{min-height:36px}.min-h-\[44px\]{min-height:44px}.min-h-\[48px\]{min-height:48px}.min-h-\[50px\]{min-height:50px}.min-h-\[54px\]{min-height:54px}.min-h-\[58px\]{min-height:58px}.min-h-\[60px\]{min-height:60px}.min-h-\[62px\]{min-height:62px}.min-h-\[68px\]{min-height:68px}.min-h-\[70px\]{min-height:70px}.min-h-\[78px\]{min-height:78px}.min-h-\[84px\]{min-height:84px}.min-h-full{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[0\.62em\]{width:.62em}.w-\[0\.72em\]{width:.72em}.w-\[0\.74em\]{width:.74em}.w-\[0\.92em\]{width:.92em}.w-\[0\.96em\]{width:.96em}.w-\[1\.125rem\]{width:1.125rem}.w-\[120px\]{width:120px}.w-\[15px\]{width:15px}.w-\[17px\]{width:17px}.w-\[18px\]{width:18px}.w-\[1em\]{width:1em}.w-\[1px\]{width:1px}.w-\[210px\]{width:210px}.w-\[220px\]{width:220px}.w-\[240px\]{width:240px}.w-\[280px\]{width:280px}.w-\[2px\]{width:2px}.w-\[340px\]{width:340px}.w-\[360px\]{width:360px}.w-\[38px\]{width:38px}.w-\[430px\]{width:430px}.w-\[7\.75rem\]{width:7.75rem}.w-\[78\%\]{width:78%}.w-\[8\.5rem\]{width:8.5rem}.w-\[calc\(100\%-0\.5rem\)\]{width:calc(100% - .5rem)}.w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.w-\[min\(100\%\,20rem\)\]{width:min(100%,20rem)}.w-\[min\(100\%\,32rem\)\]{width:min(100%,32rem)}.w-\[min\(100\%\,34rem\)\]{width:min(100%,34rem)}.w-\[min\(100vw\,var\(--file-preview-slot-width\)\)\]{width:min(100vw,var(--file-preview-slot-width))}.w-\[min\(100vw\,var\(--file-preview-width\)\)\]{width:min(100vw,var(--file-preview-width))}.w-\[min\(180px\,60vw\)\]{width:min(180px,60vw)}.w-\[min\(23rem\,calc\(100vw-1\.5rem\)\)\]{width:min(23rem,calc(100vw - 1.5rem))}.w-\[min\(25rem\,calc\(100vw-2rem\)\)\]{width:min(25rem,calc(100vw - 2rem))}.w-\[min\(280px\,70vw\)\]{width:min(280px,70vw)}.w-\[min\(300px\,70vw\)\]{width:min(300px,70vw)}.w-\[min\(34rem\,calc\(100vw-1rem\)\)\]{width:min(34rem,calc(100vw - 1rem))}.w-\[min\(360px\,70vw\)\]{width:min(360px,70vw)}.w-\[min\(430px\,72vw\)\]{width:min(430px,72vw)}.w-\[min\(92vw\,24rem\)\]{width:min(92vw,24rem)}.w-\[min\(calc\(100vw-2rem\)\,24rem\)\]{width:min(calc(100vw - 2rem),24rem)}.w-\[min\(calc\(100vw-2rem\)\,26rem\)\]{width:min(calc(100vw - 2rem),26rem)}.w-\[min\(calc\(100vw-2rem\)\,34rem\)\]{width:min(calc(100vw - 2rem),34rem)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-40{min-width:10rem}.min-w-5{min-width:1.25rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[2\.1rem\]{min-width:2.1rem}.min-w-\[220px\]{min-width:220px}.min-w-\[228px\]{min-width:228px}.min-w-\[36rem\]{min-width:36rem}.min-w-\[8\.5rem\]{min-width:8.5rem}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-0{max-width:0px}.max-w-3xl{max-width:48rem}.max-w-\[1054px\]{max-width:1054px}.max-w-\[11rem\]{max-width:11rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[14rem\]{max-width:14rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[17rem\]{max-width:17rem}.max-w-\[18rem\]{max-width:18rem}.max-w-\[220px\]{max-width:220px}.max-w-\[260px\]{max-width:260px}.max-w-\[28rem\]{max-width:28rem}.max-w-\[320px\]{max-width:320px}.max-w-\[42\%\]{max-width:42%}.max-w-\[42rem\]{max-width:42rem}.max-w-\[42vw\]{max-width:42vw}.max-w-\[44rem\]{max-width:44rem}.max-w-\[48\%\]{max-width:48%}.max-w-\[49\.5rem\]{max-width:49.5rem}.max-w-\[520px\]{max-width:520px}.max-w-\[56rem\]{max-width:56rem}.max-w-\[58rem\]{max-width:58rem}.max-w-\[64rem\]{max-width:64rem}.max-w-\[680px\]{max-width:680px}.max-w-\[72rem\]{max-width:72rem}.max-w-\[7rem\]{max-width:7rem}.max-w-\[920px\]{max-width:920px}.max-w-\[94vw\]{max-width:94vw}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[min\(100\%\,20rem\)\]{max-width:min(100%,20rem)}.max-w-\[min\(12\.5rem\,42vw\)\]{max-width:min(12.5rem,42vw)}.max-w-\[min\(12\.5rem\,44vw\)\]{max-width:min(12.5rem,44vw)}.max-w-\[min\(12rem\,44vw\)\]{max-width:min(12rem,44vw)}.max-w-\[min\(14rem\,calc\(100vw-8rem\)\)\]{max-width:min(14rem,calc(100vw - 8rem))}.max-w-\[min\(38rem\,calc\(100vw-2rem\)\)\]{max-width:min(38rem,calc(100vw - 2rem))}.max-w-\[min\(60vw\,32rem\)\]{max-width:min(60vw,32rem)}.max-w-\[min\(85\%\,36rem\)\]{max-width:min(85%,36rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-\[1\.4\]{flex:1.4}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.basis-\[8rem\]{flex-basis:8rem}.origin-center{transform-origin:center}.-translate-x-1{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[16px\]{--tw-translate-x: 16px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[0\.08em\]{--tw-translate-y: .08em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[0\.11em\]{--tw-translate-y: .11em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[0\.12em\]{--tw-translate-y: .12em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[0\.16em\]{--tw-translate-y: .16em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[2px\]{--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-75{--tw-scale-x: .75;--tw-scale-y: .75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-none{list-style-type:none}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[1\.125rem_minmax\(0\,1fr\)\]{grid-template-columns:1.125rem minmax(0,1fr)}.grid-cols-\[1rem_minmax\(0\,1fr\)\]{grid-template-columns:1rem minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-rows-7{grid-template-rows:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-\[0\.28em\]{gap:.28em}.gap-\[3px\]{gap:3px}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border\/45>:not([hidden])~:not([hidden]){border-color:hsl(var(--border) / .45)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.scroll-auto{scroll-behavior:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!whitespace-normal{white-space:normal!important}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[11px\]{border-radius:11px}.rounded-\[12px\]{border-radius:12px}.rounded-\[13px\]{border-radius:13px}.rounded-\[14px\]{border-radius:14px}.rounded-\[15px\]{border-radius:15px}.rounded-\[16px\]{border-radius:16px}.rounded-\[17px\]{border-radius:17px}.rounded-\[18px\]{border-radius:18px}.rounded-\[20px\]{border-radius:20px}.rounded-\[22px\]{border-radius:22px}.rounded-\[24px\]{border-radius:24px}.rounded-\[26px\]{border-radius:26px}.rounded-\[28px\]{border-radius:28px}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-b-\[28px\]{border-bottom-right-radius:28px;border-bottom-left-radius:28px}.border{border-width:1px}.border-0{border-width:0px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/25{border-color:#f59e0b40}.border-amber-500\/35{border-color:#f59e0b59}.border-black\/10{border-color:#0000001a}.border-black\/\[0\.035\]{border-color:#00000009}.border-black\/\[0\.04\]{border-color:#0000000a}.border-black\/\[0\.05\]{border-color:#0000000d}.border-black\/\[0\.06\]{border-color:#0000000f}.border-black\/\[0\.08\]{border-color:#00000014}.border-blue-500\/25{border-color:#3b82f640}.border-border{border-color:hsl(var(--border))}.border-border\/25{border-color:hsl(var(--border) / .25)}.border-border\/35{border-color:hsl(var(--border) / .35)}.border-border\/45{border-color:hsl(var(--border) / .45)}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-border\/55{border-color:hsl(var(--border) / .55)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-border\/65{border-color:hsl(var(--border) / .65)}.border-border\/70{border-color:hsl(var(--border) / .7)}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-destructive\/40{border-color:hsl(var(--destructive) / .4)}.border-foreground{border-color:hsl(var(--foreground))}.border-foreground\/55{border-color:hsl(var(--foreground) / .55)}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/20{border-color:hsl(var(--muted-foreground) / .2)}.border-sidebar-border\/60{border-color:hsl(var(--sidebar-border) / .6)}.border-sky-500\/15{border-color:#0ea5e926}.border-transparent{border-color:transparent}.border-white\/10{border-color:#ffffff1a}.border-white\/70{border-color:#ffffffb3}.border-t-blue-500{--tw-border-opacity: 1;border-top-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.bg-\[\#2997FF\]{--tw-bg-opacity: 1;background-color:rgb(41 151 255 / var(--tw-bg-opacity, 1))}.bg-\[\#ff8a3d\]{--tw-bg-opacity: 1;background-color:rgb(255 138 61 / var(--tw-bg-opacity, 1))}.bg-amber-100\/80{background-color:#fef3c7cc}.bg-amber-50\/70{background-color:#fffbebb3}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-background{background-color:hsl(var(--background))}.bg-background\/45{background-color:hsl(var(--background) / .45)}.bg-background\/55{background-color:hsl(var(--background) / .55)}.bg-background\/60{background-color:hsl(var(--background) / .6)}.bg-background\/70{background-color:hsl(var(--background) / .7)}.bg-background\/75{background-color:hsl(var(--background) / .75)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-background\/85{background-color:hsl(var(--background) / .85)}.bg-background\/90{background-color:hsl(var(--background) / .9)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/40{background-color:#0006}.bg-black\/55{background-color:#0000008c}.bg-black\/60{background-color:#0009}.bg-black\/80{background-color:#000c}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-border{background-color:hsl(var(--border))}.bg-border\/45{background-color:hsl(var(--border) / .45)}.bg-border\/50{background-color:hsl(var(--border) / .5)}.bg-border\/70{background-color:hsl(var(--border) / .7)}.bg-card{background-color:hsl(var(--card))}.bg-card\/45{background-color:hsl(var(--card) / .45)}.bg-card\/75{background-color:hsl(var(--card) / .75)}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-card\/85{background-color:hsl(var(--card) / .85)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-card\/95{background-color:hsl(var(--card) / .95)}.bg-current{background-color:currentColor}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-destructive\/5{background-color:hsl(var(--destructive) / .05)}.bg-destructive\/70{background-color:hsl(var(--destructive) / .7)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/\[0\.035\]{background-color:#10b98109}.bg-foreground{background-color:hsl(var(--foreground))}.bg-foreground\/20{background-color:hsl(var(--foreground) / .2)}.bg-foreground\/25{background-color:hsl(var(--foreground) / .25)}.bg-foreground\/30{background-color:hsl(var(--foreground) / .3)}.bg-foreground\/40{background-color:hsl(var(--foreground) / .4)}.bg-foreground\/60{background-color:hsl(var(--foreground) / .6)}.bg-foreground\/65{background-color:hsl(var(--foreground) / .65)}.bg-foreground\/\[0\.055\]{background-color:hsl(var(--foreground) / .055)}.bg-foreground\/\[0\.065\]{background-color:hsl(var(--foreground) / .065)}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/10{background-color:hsl(var(--muted-foreground) / .1)}.bg-muted-foreground\/35{background-color:hsl(var(--muted-foreground) / .35)}.bg-muted-foreground\/45{background-color:hsl(var(--muted-foreground) / .45)}.bg-muted-foreground\/60{background-color:hsl(var(--muted-foreground) / .6)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/25{background-color:hsl(var(--muted) / .25)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/35{background-color:hsl(var(--muted) / .35)}.bg-muted\/40{background-color:hsl(var(--muted) / .4)}.bg-muted\/45{background-color:hsl(var(--muted) / .45)}.bg-muted\/55{background-color:hsl(var(--muted) / .55)}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-muted\/80{background-color:hsl(var(--muted) / .8)}.bg-muted\/90{background-color:hsl(var(--muted) / .9)}.bg-neutral-200\/70{background-color:#e5e5e5b3}.bg-orange-100\/60{background-color:#ffedd599}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-popover{background-color:hsl(var(--popover))}.bg-popover\/90{background-color:hsl(var(--popover) / .9)}.bg-popover\/95{background-color:hsl(var(--popover) / .95)}.bg-primary{background-color:hsl(var(--primary))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-rose-500\/10{background-color:#f43f5e1a}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/70{background-color:hsl(var(--secondary) / .7)}.bg-sidebar{background-color:hsl(var(--sidebar))}.bg-sidebar-accent{background-color:hsl(var(--sidebar-accent))}.bg-sidebar-accent\/70{background-color:hsl(var(--sidebar-accent) / .7)}.bg-sidebar-border\/50{background-color:hsl(var(--sidebar-border) / .5)}.bg-sky-300{--tw-bg-opacity: 1;background-color:rgb(125 211 252 / var(--tw-bg-opacity, 1))}.bg-sky-400\/85{background-color:#38bdf8d9}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-sky-500\/30{background-color:#0ea5e94d}.bg-sky-500\/60{background-color:#0ea5e999}.bg-sky-500\/\[0\.06\]{background-color:#0ea5e90f}.bg-transparent{background-color:transparent}.bg-white\/65{background-color:#ffffffa6}.bg-yellow-200\/75{background-color:#fef08abf}.bg-zinc-100{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.bg-zinc-800{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.bg-\[radial-gradient\(circle_at_50\%_0\%\,hsl\(var\(--muted\)\)_0\%\,hsl\(var\(--background\)\)_42\%\)\]{background-image:radial-gradient(circle at 50% 0%,hsl(var(--muted)),hsl(var(--background)) 42%)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-background{--tw-gradient-from: hsl(var(--background)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.stroke-\[1\.75\]{stroke-width:1.75}.stroke-\[2\.4\]{stroke-width:2.4}.stroke-\[3\]{stroke-width:3}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-\[2px\]{padding:2px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[18px\]{padding-left:18px;padding-right:18px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-3\.5{padding-bottom:.875rem}.pb-4{padding-bottom:1rem}.pb-\[calc\(0\.75rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-11{padding-left:2.75rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-11{padding-right:2.75rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-\[2\.85rem\]{padding-top:2.85rem}.pt-\[27px\]{padding-top:27px}.pt-\[3px\]{padding-top:3px}.pt-\[4\.25rem\]{padding-top:4.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.font-mono{font-family:JetBrains Mono,Fira Code,Cascadia Code,Source Code Pro,Menlo,Consolas,monospace}.font-sans{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Noto Sans SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.text-\[0\.72em\]{font-size:.72em}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.85em\]{font-size:.85em}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]\/\[1\.75\]{font-size:16px;line-height:1.75}.text-\[18px\]{font-size:18px}.text-\[19px\]{font-size:19px}.text-\[20px\]{font-size:20px}.text-\[24px\]{font-size:24px}.text-\[34px\]{font-size:34px}.text-\[6\.5px\]{font-size:6.5px}.text-\[7\.5px\]{font-size:7.5px}.text-\[8px\]{font-size:8px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-\[1\.08\]{line-height:1.08}.leading-\[1\.28\]{line-height:1.28}.leading-\[1\.55\]{line-height:1.55}.leading-\[1\.6\]{line-height:1.6}.leading-\[1\.7\]{line-height:1.7}.leading-\[inherit\]{line-height:inherit}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.02em\]{letter-spacing:-.02em}.tracking-\[0\.06em\]{letter-spacing:.06em}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-destructive\/70{color:hsl(var(--destructive) / .7)}.text-destructive\/75{color:hsl(var(--destructive) / .75)}.text-destructive\/80{color:hsl(var(--destructive) / .8)}.text-destructive\/85{color:hsl(var(--destructive) / .85)}.text-emerald-500\/75{color:#10b981bf}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-600\/75{color:#059669bf}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/75{color:hsl(var(--foreground) / .75)}.text-foreground\/80{color:hsl(var(--foreground) / .8)}.text-foreground\/85{color:hsl(var(--foreground) / .85)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-inherit{color:inherit}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/30{color:hsl(var(--muted-foreground) / .3)}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.text-muted-foreground\/45{color:hsl(var(--muted-foreground) / .45)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/55{color:hsl(var(--muted-foreground) / .55)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-muted-foreground\/65{color:hsl(var(--muted-foreground) / .65)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-muted-foreground\/75{color:hsl(var(--muted-foreground) / .75)}.text-muted-foreground\/80{color:hsl(var(--muted-foreground) / .8)}.text-muted-foreground\/85{color:hsl(var(--muted-foreground) / .85)}.text-muted-foreground\/90{color:hsl(var(--muted-foreground) / .9)}.text-neutral-700{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-800\/70{color:#9a3412b3}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/75{color:hsl(var(--primary) / .75)}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-600\/70{color:#e11d48b3}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/85{color:hsl(var(--sidebar-foreground) / .85)}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/90{color:#ffffffe6}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.caret-foreground{caret-color:hsl(var(--foreground))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_2px_rgba\(255\,138\,61\,0\.16\)\]{--tw-shadow: 0 0 0 2px rgba(255,138,61,.16);--tw-shadow-colored: 0 0 0 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(16\,185\,129\,0\.10\)\]{--tw-shadow: 0 0 0 3px rgba(16,185,129,.1);--tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(245\,158\,11\,0\.13\)\]{--tw-shadow: 0 0 0 3px rgba(245,158,11,.13);--tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(249\,115\,22\,0\.12\)\]{--tw-shadow: 0 0 0 3px rgba(249,115,22,.12);--tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(59\,130\,246\,0\.14\)\]{--tw-shadow: 0 0 0 3px rgba(59,130,246,.14);--tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_10px_25px_rgba\(239\,68\,68\,0\.28\)\]{--tw-shadow: 0 10px 25px rgba(239,68,68,.28);--tw-shadow-colored: 0 10px 25px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_10px_26px_rgba\(15\,23\,42\,0\.055\)\]{--tw-shadow: 0 10px 26px rgba(15,23,42,.055);--tw-shadow-colored: 0 10px 26px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_10px_28px_rgba\(15\,23\,42\,0\.055\)\]{--tw-shadow: 0 10px 28px rgba(15,23,42,.055);--tw-shadow-colored: 0 10px 28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_10px_28px_rgba\(15\,23\,42\,0\.07\)\]{--tw-shadow: 0 10px 28px rgba(15,23,42,.07);--tw-shadow-colored: 0 10px 28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_10px_30px_rgba\(15\,23\,42\,0\.045\)\]{--tw-shadow: 0 10px 30px rgba(15,23,42,.045);--tw-shadow-colored: 0 10px 30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_rgba\(15\,23\,42\,0\.07\)\]{--tw-shadow: 0 12px 30px rgba(15,23,42,.07);--tw-shadow-colored: 0 12px 30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_40px_rgba\(15\,23\,42\,0\.14\)\]{--tw-shadow: 0 12px 40px rgba(15,23,42,.14);--tw-shadow-colored: 0 12px 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_55px_rgba\(15\,23\,42\,0\.16\)\]{--tw-shadow: 0 18px 55px rgba(15,23,42,.16);--tw-shadow-colored: 0 18px 55px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_55px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: 0 18px 55px rgba(15,23,42,.18);--tw-shadow-colored: 0 18px 55px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_65px_rgba\(15\,23\,42\,0\.07\)\]{--tw-shadow: 0 18px 65px rgba(15,23,42,.07);--tw-shadow-colored: 0 18px 65px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_65px_rgba\(15\,23\,42\,0\.075\)\]{--tw-shadow: 0 18px 65px rgba(15,23,42,.075);--tw-shadow-colored: 0 18px 65px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.18\)\,0_2px_7px_rgba\(0\,0\,0\,0\.11\)\]{--tw-shadow: 0 1px 2px rgba(0,0,0,.18),0 2px 7px rgba(0,0,0,.11);--tw-shadow-colored: 0 1px 2px var(--tw-shadow-color), 0 2px 7px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_55px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow: 0 20px 55px rgba(15,23,42,.08);--tw-shadow-colored: 0 20px 55px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_rgba\(15\,23\,42\,0\.12\)\]{--tw-shadow: 0 20px 60px rgba(15,23,42,.12);--tw-shadow-colored: 0 20px 60px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_70px_rgba\(15\,23\,42\,0\.07\)\]{--tw-shadow: 0 20px 70px rgba(15,23,42,.07);--tw-shadow-colored: 0 20px 70px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_22px_70px_rgba\(0\,0\,0\,0\.22\)\]{--tw-shadow: 0 22px 70px rgba(0,0,0,.22);--tw-shadow-colored: 0 22px 70px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_22px_70px_rgba\(15\,23\,42\,0\.055\)\]{--tw-shadow: 0 22px 70px rgba(15,23,42,.055);--tw-shadow-colored: 0 22px 70px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_24px_80px_rgba\(15\,23\,42\,0\.20\)\]{--tw-shadow: 0 24px 80px rgba(15,23,42,.2);--tw-shadow-colored: 0 24px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_28px_90px_rgba\(15\,23\,42\,0\.20\)\]{--tw-shadow: 0 28px 90px rgba(15,23,42,.2);--tw-shadow-colored: 0 28px 90px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_8px_rgba\(15\,23\,42\,0\.045\)\]{--tw-shadow: 0 2px 8px rgba(15,23,42,.045);--tw-shadow-colored: 0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_8px_rgba\(15\,23\,42\,0\.05\)\]{--tw-shadow: 0 2px 8px rgba(15,23,42,.05);--tw-shadow-colored: 0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_3px_10px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow: 0 3px 10px rgba(15,23,42,.08);--tw-shadow-colored: 0 3px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_3px_10px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: 0 3px 10px rgba(15,23,42,.18);--tw-shadow-colored: 0 3px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_12px_rgba\(15\,23\,42\,0\.20\)\]{--tw-shadow: 0 4px 12px rgba(15,23,42,.2);--tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_6px_18px_-14px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow: 0 6px 18px -14px rgba(0,0,0,.45);--tw-shadow-colored: 0 6px 18px -14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_20px_rgba\(15\,23\,42\,0\.07\)\]{--tw-shadow: 0 8px 20px rgba(15,23,42,.07);--tw-shadow-colored: 0 8px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_20px_rgba\(239\,68\,68\,0\.22\)\]{--tw-shadow: 0 8px 20px rgba(239,68,68,.22);--tw-shadow-colored: 0 8px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_22px_rgba\(15\,23\,42\,0\.04\)\]{--tw-shadow: 0 8px 22px rgba(15,23,42,.04);--tw-shadow-colored: 0 8px 22px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_24px_rgba\(15\,23\,42\,0\.13\)\]{--tw-shadow: 0 8px 24px rgba(15,23,42,.13);--tw-shadow-colored: 0 8px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_26px_rgba\(15\,23\,42\,0\.055\)\]{--tw-shadow: 0 8px 26px rgba(15,23,42,.055);--tw-shadow-colored: 0 8px 26px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_-1px_0_rgba\(255\,255\,255\,0\.55\)\]{--tw-shadow: inset 0 -1px 0 rgba(255,255,255,.55);--tw-shadow-colored: inset 0 -1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_hsl\(var\(--sidebar-border\)\/0\.28\)\]{--tw-shadow: inset 0 0 0 1px hsl(var(--sidebar-border)/.28);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_hsl\(var\(--sidebar-border\)\/0\.55\)\]{--tw-shadow: inset 0 0 0 1px hsl(var(--sidebar-border)/.55);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow: inset 0 0 0 1px rgba(0,0,0,.02);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(0\,0\,0\,0\.025\)\]{--tw-shadow: inset 0 0 0 1px rgba(0,0,0,.025);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(0\,0\,0\,0\.035\)\]{--tw-shadow: inset 0 0 0 1px rgba(0,0,0,.035);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(120\,72\,25\,0\.055\)\]{--tw-shadow: inset 0 0 0 1px rgba(120,72,25,.055);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(15\,23\,42\,0\.035\)\]{--tw-shadow: inset 0 0 0 1px rgba(15,23,42,.035);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(255\,255\,255\,0\.18\)\]{--tw-shadow: inset 0 0 0 1px rgba(255,255,255,.18);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.58\)\]{--tw-shadow: inset 0 1px 0 rgba(255,255,255,.58);--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-black\/\[0\.025\]{--tw-ring-color: rgb(0 0 0 / .025)}.ring-border\/45{--tw-ring-color: hsl(var(--border) / .45)}.ring-border\/80{--tw-ring-color: hsl(var(--border) / .8)}.ring-neutral-200\/70{--tw-ring-color: rgb(229 229 229 / .7)}.ring-primary\/40{--tw-ring-color: hsl(var(--primary) / .4)}.ring-sky-400\/35{--tw-ring-color: rgb(56 189 248 / .35)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-\[3px\]{--tw-backdrop-blur: blur(3px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[background-color\,color\,opacity\]{transition-property:background-color,color,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[background-color\,opacity\,transform\,height\]{transition-property:background-color,opacity,transform,height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[border-color\,background-color\,box-shadow\,transform\]{transition-property:border-color,background-color,box-shadow,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[color\,text-shadow\]{transition-property:color,text-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[height\]{transition-property:height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[max-width\,opacity\,transform\]{transition-property:max-width,opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[opacity\,transform\]{transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,padding\,border-radius\,color\,background-color\]{transition-property:width,padding,border-radius,color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-75{transition-duration:75ms}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[width\]{will-change:width}.will-change-transform{will-change:transform}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in{--tw-enter-scale: 0}.zoom-in-50{--tw-enter-scale: .5}.zoom-in-75{--tw-enter-scale: .75}.zoom-in-95{--tw-enter-scale: .95}.slide-in-from-bottom-1{--tw-enter-translate-y: .25rem}.slide-in-from-bottom-2{--tw-enter-translate-y: .5rem}.slide-in-from-left-2{--tw-enter-translate-x: -.5rem}.slide-in-from-top-1{--tw-enter-translate-y: -.25rem}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-75{animation-duration:75ms}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}.host-drag-region{-webkit-app-region:drag}.host-no-drag{-webkit-app-region:no-drag}html.native-host,html.native-host body,html.native-host #root{background:transparent}html.native-host body{overflow:hidden}.host-window-shell,.host-sidebar-glass{--host-glass-spot: hsl(var(--background) / .42);--host-glass-start: hsl(var(--sidebar) / .5);--host-glass-end: hsl(var(--sidebar) / .3);background:radial-gradient(circle at 18% 0%,var(--host-glass-spot),transparent 34rem),linear-gradient(180deg,var(--host-glass-start),var(--host-glass-end));background-attachment:fixed,fixed;-webkit-backdrop-filter:saturate(185%) blur(34px);backdrop-filter:saturate(185%) blur(34px)}.host-sidebar-glass{background:hsl(var(--sidebar) / .94);-webkit-backdrop-filter:saturate(145%) blur(18px);backdrop-filter:saturate(145%) blur(18px);box-shadow:inset -1px 0 hsl(var(--border) / .32),inset 1px 0 hsl(var(--background) / .52),14px 0 32px -30px #00000038}.dark .host-window-shell,.dark .host-sidebar-glass{--host-glass-spot: hsl(var(--foreground) / .06);--host-glass-start: hsl(var(--sidebar) / .48);--host-glass-end: hsl(var(--sidebar) / .3)}.dark .host-sidebar-glass{background:hsl(var(--sidebar) / .96);box-shadow:inset -1px 0 hsl(var(--border) / .42),inset 1px 0 hsl(var(--foreground) / .05),14px 0 34px -30px #0000009e}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.host-sidebar-glass{background:hsl(var(--sidebar) / .92)}}html.native-host *{scrollbar-width:none;scrollbar-gutter:auto!important}html.native-host *::-webkit-scrollbar{display:none;width:0;height:0}.shadow-inner-right{box-shadow:inset -9px 0 6px -1px #00000005}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content{--tw-prose-body: hsl(var(--foreground));--tw-prose-headings: hsl(var(--foreground));--tw-prose-bold: hsl(var(--foreground));--tw-prose-lead: hsl(var(--foreground))}.markdown-content .contains-task-list,.markdown-content .task-list-item{list-style-type:none;padding-left:0}:lang(zh),:lang(zh-CN),:lang(zh-TW),:lang(zh-HK),:lang(ja),:lang(ko){--cjk-line-height: 1.8}:root{--cjk-line-height: 1.625}@keyframes streaming-text-sheen-ltr{0%{background-position:140% 50%}to{background-position:-40% 50%}}.streaming-text-sheen{position:relative;color:hsl(var(--muted-foreground))}.file-reference-sheen{color:inherit}.streaming-text-sheen:after{content:attr(data-sheen-text);position:absolute;top:0;right:0;bottom:0;left:0;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;color:transparent;background:linear-gradient(90deg,transparent 0%,transparent 38%,hsl(var(--foreground) / .98) 50%,transparent 62%,transparent 100%);background-size:260% 100%;background-position:140% 50%;background-repeat:no-repeat;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:streaming-text-sheen-ltr 2.8s ease-in-out infinite}.dark .streaming-text-sheen:after{background-image:linear-gradient(90deg,transparent 0%,transparent 38%,hsl(var(--foreground) / .98) 50%,transparent 62%,transparent 100%)}@media (prefers-reduced-motion: reduce){.streaming-text-sheen:after{animation:none;content:""}}@keyframes composer-status-strip-enter{0%{max-height:0;opacity:0;transform:translateY(10px) scale(.985)}72%{max-height:var(--composer-strip-max-height, 46px);opacity:1;transform:translateY(-1px) scale(1.004)}to{max-height:var(--composer-strip-max-height, 46px);opacity:1;transform:translateY(0) scale(1)}}@keyframes composer-status-strip-exit{0%{max-height:var(--composer-strip-max-height, 46px);opacity:1;transform:translateY(0) scale(1)}to{max-height:0;opacity:0;transform:translateY(8px) scale(.99)}}.composer-status-strip{transform-origin:bottom center;will-change:max-height,opacity,transform}.composer-status-strip[data-state=enter]{animation:composer-status-strip-enter .28s cubic-bezier(.16,1,.3,1) both}.composer-status-strip[data-state=exit]{animation:composer-status-strip-exit .18s ease-in both}@keyframes run-pulse-dot{0%,to{transform:scale(.9);opacity:.76}50%{transform:scale(1.08);opacity:1}}@keyframes run-pulse-ring{0%{transform:scale(.42);opacity:.34}to{transform:scale(1.28);opacity:0}}.run-pulse-icon{color:#1589d5}.run-pulse-icon__ring,.run-pulse-icon__dot{display:block;border-radius:999px;pointer-events:none}.run-pulse-icon__ring{position:absolute;height:12px;width:12px;background:#1589d538;animation:run-pulse-ring 1.55s ease-out infinite}.run-pulse-icon__dot{height:6px;width:6px;background:currentColor;box-shadow:0 0 0 1px #1589d524;animation:run-pulse-dot 1.55s ease-in-out infinite}@keyframes queued-prompt-row-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.queued-prompt-row{animation:queued-prompt-row-enter .22s cubic-bezier(.16,1,.3,1) both}@media (prefers-reduced-motion: reduce){.composer-status-strip{will-change:auto}.composer-status-strip[data-state],.run-pulse-icon,.run-pulse-icon *{animation:none}.run-pulse-icon__ring{opacity:.18;transform:scale(1)}.run-pulse-icon__dot{opacity:1;transform:scale(1)}.queued-prompt-row{animation:none}}@keyframes goal-shell-glow-breathe{0%,to{filter:drop-shadow(0 0 10px hsl(204 72% 52% / .22)) drop-shadow(0 0 24px hsl(199 80% 58% / .14))}50%{filter:drop-shadow(0 0 17px hsl(204 78% 48% / .32)) drop-shadow(0 0 38px hsl(199 85% 55% / .2))}}.goal-shell-glow{animation:goal-shell-glow-breathe 4.8s ease-in-out infinite}@keyframes goal-shell-glow-breathe-dark{0%,to{filter:drop-shadow(0 0 12px hsl(198 90% 72% / .28)) drop-shadow(0 0 28px hsl(195 95% 65% / .16))}50%{filter:drop-shadow(0 0 20px hsl(198 95% 78% / .42)) drop-shadow(0 0 42px hsl(195 100% 70% / .24))}}.dark .goal-shell-glow{animation-name:goal-shell-glow-breathe-dark}@media (prefers-reduced-motion: reduce){.goal-shell-glow{animation:none;filter:drop-shadow(0 0 14px hsl(204 70% 50% / .24))}.dark .goal-shell-glow{filter:drop-shadow(0 0 14px hsl(198 88% 70% / .32))}}@keyframes cli-app-linked-sheen{0%{transform:translate(-140%) skew(-14deg);opacity:0}18%{opacity:.7}72%,to{transform:translate(140%) skew(-14deg);opacity:0}}.dark .cli-app-linked-chip:after{background:linear-gradient(90deg,transparent 0%,hsl(var(--foreground) / .12) 46%,hsl(var(--background) / .5) 50%,hsl(var(--foreground) / .1) 54%,transparent 100%)}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:hsl(var(--muted-foreground) / .4) transparent}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:hsl(var(--muted-foreground) / .4);border-radius:9999px}.scrollbar-track-transparent{scrollbar-gutter:stable}.scrollbar-track-transparent::-webkit-scrollbar-track{background:transparent}.subagent-activity-step .streaming-text-sheen,.subagent-activity-step .text-muted-foreground{color:#1593c1}.dark .subagent-activity-step .streaming-text-sheen,.dark .subagent-activity-step .text-muted-foreground{color:#7bdef4}.subagent-activity-content{color:#24627f}.dark .subagent-activity-content{color:#b3e1ef}.subagent-activity-marker{border-color:#3eb7e057;color:#1d97c3}.dark .subagent-activity-marker{border-color:#7dddf257;color:#7dddf2}.\[animation-duration\:1\.4s\]{animation-duration:1.4s}.\[overflow-wrap\:normal\]{overflow-wrap:normal}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.\[scrollbar-width\:none\]{scrollbar-width:none}.dark\:prose-invert:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.marker\:text-muted-foreground *::marker{color:hsl(var(--muted-foreground))}.subagent-activity-step .marker\:text-muted-foreground *::marker{color:#1593c1}.dark .subagent-activity-step .marker\:text-muted-foreground *::marker{color:#7bdef4}.marker\:text-muted-foreground::marker{color:hsl(var(--muted-foreground))}.subagent-activity-step .marker\:text-muted-foreground::marker{color:#1593c1}.dark .subagent-activity-step .marker\:text-muted-foreground::marker{color:#7bdef4}.selection\:bg-primary\/20 *::-moz-selection{background-color:hsl(var(--primary) / .2)}.selection\:bg-primary\/20 *::selection{background-color:hsl(var(--primary) / .2)}.selection\:bg-primary\/20::-moz-selection{background-color:hsl(var(--primary) / .2)}.selection\:bg-primary\/20::selection{background-color:hsl(var(--primary) / .2)}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground\/70::-moz-placeholder{color:hsl(var(--muted-foreground) / .7)}.placeholder\:text-muted-foreground\/70::placeholder{color:hsl(var(--muted-foreground) / .7)}.subagent-activity-step .placeholder\:text-muted-foreground::-moz-placeholder{color:#1593c1}.subagent-activity-step .placeholder\:text-muted-foreground::placeholder{color:#1593c1}.dark .subagent-activity-step .placeholder\:text-muted-foreground::-moz-placeholder{color:#7bdef4}.dark .subagent-activity-step .placeholder\:text-muted-foreground::placeholder{color:#7bdef4}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-\[-1px\]:after{content:var(--tw-content);top:-1px;right:-1px;bottom:-1px;left:-1px}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:top-\[1\.25rem\]:after{content:var(--tw-content);top:1.25rem}.after\:h-\[calc\(100\%\+0\.375rem\)\]:after{content:var(--tw-content);height:calc(100% + .375rem)}.after\:w-px:after{content:var(--tw-content);width:1px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:rounded-\[inherit\]:after{content:var(--tw-content);border-radius:inherit}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-blue-300\/75:after{content:var(--tw-content);border-color:#93c5fdbf}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:duration-200:after{transition-duration:.2s;content:var(--tw-content);animation-duration:.2s}.open\:pb-4[open]{padding-bottom:1rem}.focus-within\:border-blue-300\/75:focus-within{border-color:#93c5fdbf}.focus-within\:after\:opacity-100:focus-within:after{content:var(--tw-content);opacity:1}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.01\]:hover{--tw-scale-x: 1.01;--tw-scale-y: 1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.03\]:hover{--tw-scale-x: 1.03;--tw-scale-y: 1.03;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/35:hover{background-color:hsl(var(--accent) / .35)}.hover\:bg-accent\/40:hover{background-color:hsl(var(--accent) / .4)}.hover\:bg-accent\/55:hover{background-color:hsl(var(--accent) / .55)}.hover\:bg-background\/70:hover{background-color:hsl(var(--background) / .7)}.hover\:bg-background\/80:hover{background-color:hsl(var(--background) / .8)}.hover\:bg-background\/85:hover{background-color:hsl(var(--background) / .85)}.hover\:bg-black\/70:hover{background-color:#000000b3}.hover\:bg-card:hover{background-color:hsl(var(--card))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-destructive\/15:hover{background-color:hsl(var(--destructive) / .15)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-foreground\/90:hover{background-color:hsl(var(--foreground) / .9)}.hover\:bg-foreground\/\[0\.045\]:hover{background-color:hsl(var(--foreground) / .045)}.hover\:bg-foreground\/\[0\.04\]:hover{background-color:hsl(var(--foreground) / .04)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/35:hover{background-color:hsl(var(--muted) / .35)}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted) / .4)}.hover\:bg-muted\/45:hover{background-color:hsl(var(--muted) / .45)}.hover\:bg-muted\/55:hover{background-color:hsl(var(--muted) / .55)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted) / .6)}.hover\:bg-muted\/65:hover{background-color:hsl(var(--muted) / .65)}.hover\:bg-muted\/70:hover{background-color:hsl(var(--muted) / .7)}.hover\:bg-muted\/75:hover{background-color:hsl(var(--muted) / .75)}.hover\:bg-muted\/80:hover{background-color:hsl(var(--muted) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-500:hover{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-sidebar-accent\/45:hover{background-color:hsl(var(--sidebar-accent) / .45)}.hover\:bg-sidebar-accent\/50:hover{background-color:hsl(var(--sidebar-accent) / .5)}.hover\:bg-sidebar-accent\/65:hover{background-color:hsl(var(--sidebar-accent) / .65)}.hover\:bg-sidebar-accent\/75:hover{background-color:hsl(var(--sidebar-accent) / .75)}.hover\:bg-transparent:hover{background-color:transparent}.hover\:bg-zinc-200:hover{--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity, 1))}.hover\:bg-zinc-700:hover{--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-sidebar-foreground:hover{color:hsl(var(--sidebar-foreground))}.hover\:text-sky-700:hover{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-zinc-200:hover{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.hover\:text-zinc-700:hover{--tw-text-opacity: 1;color:rgb(63 63 70 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-primary\/25:hover{--tw-ring-color: hsl(var(--primary) / .25)}.subagent-activity-step .hover\:text-muted-foreground:hover{color:#1593c1}.dark .subagent-activity-step .hover\:text-muted-foreground:hover{color:#7bdef4}.focus\:border-ring:focus{border-color:hsl(var(--ring))}.focus\:bg-foreground\/\[0\.055\]:focus{background-color:hsl(var(--foreground) / .055)}.focus\:bg-muted:focus{background-color:hsl(var(--muted))}.focus\:bg-muted\/55:focus{background-color:hsl(var(--muted) / .55)}.focus\:bg-muted\/85:focus{background-color:hsl(var(--muted) / .85)}.focus\:text-destructive:focus{color:hsl(var(--destructive))}.focus\:text-foreground:focus{color:hsl(var(--foreground))}.focus\:text-orange-600:focus{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-ring\/20:focus{--tw-ring-color: hsl(var(--ring) / .2)}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:bg-accent:focus-visible{background-color:hsl(var(--accent))}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-blue-400\/60:focus-visible{--tw-ring-color: rgb(96 165 250 / .6)}.focus-visible\:ring-foreground\/10:focus-visible{--tw-ring-color: hsl(var(--foreground) / .1)}.focus-visible\:ring-foreground\/30:focus-visible{--tw-ring-color: hsl(var(--foreground) / .3)}.focus-visible\:ring-primary\/50:focus-visible{--tw-ring-color: hsl(var(--primary) / .5)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-ring\/30:focus-visible{--tw-ring-color: hsl(var(--ring) / .3)}.focus-visible\:ring-sky-400\/45:focus-visible{--tw-ring-color: rgb(56 189 248 / .45)}.focus-visible\:ring-white\/70:focus-visible{--tw-ring-color: rgb(255 255 255 / .7)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width: 0px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-foreground:disabled{border-color:hsl(var(--foreground))}.disabled\:bg-foreground:disabled{background-color:hsl(var(--foreground))}.disabled\:text-background:disabled{color:hsl(var(--background))}.disabled\:text-muted-foreground\/50:disabled{color:hsl(var(--muted-foreground) / .5)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-55:disabled{opacity:.55}.group\/activity-step:last-child .group-last\/activity-step\:after\:hidden:after{content:var(--tw-content);display:none}.group:focus-within .group-focus-within\:scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:focus-within .group-focus-within\:scale-75{--tw-scale-x: .75;--tw-scale-y: .75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:focus-within .group-focus-within\:bg-foreground{background-color:hsl(var(--foreground))}.group:focus-within .group-focus-within\:text-background{color:hsl(var(--background))}.group:focus-within .group-focus-within\:opacity-0{opacity:0}.group:focus-within .group-focus-within\:opacity-100{opacity:1}.group\/marker:hover .group-hover\/marker\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-75{--tw-scale-x: .75;--tw-scale-y: .75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/marker:hover .group-hover\/marker\:scale-x-110{--tw-scale-x: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/marker:hover .group-hover\/marker\:bg-blue-500\/70{background-color:#3b82f6b3}.group:hover .group-hover\:bg-foreground{background-color:hsl(var(--foreground))}.group:hover .group-hover\:bg-muted\/80{background-color:hsl(var(--muted) / .8)}.group:hover .group-hover\:text-background{color:hsl(var(--background))}.group\/marker:hover .group-hover\/marker\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-0{opacity:0}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-40{opacity:.4}.group:hover .group-hover\:opacity-55{opacity:.55}.group:hover .group-hover\:opacity-70{opacity:.7}.group\/marker:focus-visible .group-focus-visible\/marker\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/marker:focus-visible .group-focus-visible\/marker\:scale-x-110{--tw-scale-x: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/marker:focus-visible .group-focus-visible\/marker\:bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.group:focus-visible .group-focus-visible\:bg-ring{background-color:hsl(var(--ring))}.group\/marker:focus-visible .group-focus-visible\/marker\:opacity-100{opacity:1}.group:focus-visible .group-focus-visible\:opacity-100{opacity:1}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=open\]\:bg-foreground\/\[0\.055\][data-state=open]{background-color:hsl(var(--foreground) / .055)}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.prose-headings\:mb-1 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){margin-bottom:.25rem}.prose-headings\:mb-2 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){margin-bottom:.5rem}.prose-headings\:mt-2 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.5rem}.prose-headings\:mt-4 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:1rem}.prose-headings\:font-medium :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:500}.prose-headings\:font-semibold :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:600}.prose-headings\:tracking-tight :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){letter-spacing:-.025em}.prose-h1\:text-\[15px\] :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:15px}.prose-h1\:text-lg :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.125rem;line-height:1.75rem}.prose-h2\:text-\[13\.5px\] :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:13.5px}.prose-h2\:text-base :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1rem;line-height:1.5rem}.prose-h3\:text-\[12\.5px\] :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:12.5px}.prose-h3\:text-sm :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:.875rem;line-height:1.25rem}.prose-h4\:text-\[12px\] :is(:where(h4):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:12px}.prose-h4\:text-\[13px\] :is(:where(h4):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:13px}.prose-p\:my-1 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.25rem;margin-bottom:.25rem}.prose-p\:my-1\.5 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.375rem;margin-bottom:.375rem}.prose-p\:my-2 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.5rem;margin-bottom:.5rem}.prose-a\:text-blue-500 :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.prose-a\:underline :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){text-decoration-line:underline}.prose-a\:underline-offset-2 :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){text-underline-offset:2px}.hover\:prose-a\:text-blue-600 :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))):hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.prose-blockquote\:my-3 :is(:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.75rem;margin-bottom:.75rem}.prose-blockquote\:border-l-2 :is(:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *))){border-left-width:2px}.prose-blockquote\:font-normal :is(:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:400}.prose-blockquote\:not-italic :is(:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *))){font-style:normal}.prose-blockquote\:text-foreground\/80 :is(:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *))){color:hsl(var(--foreground) / .8)}.prose-strong\:text-muted-foreground :is(:where(strong):not(:where([class~=not-prose],[class~=not-prose] *))){color:hsl(var(--muted-foreground))}.subagent-activity-step .prose-strong\:text-muted-foreground :is(:where(strong):not(:where([class~=not-prose],[class~=not-prose] *))){color:#1593c1}.dark .subagent-activity-step .prose-strong\:text-muted-foreground :is(:where(strong):not(:where([class~=not-prose],[class~=not-prose] *))){color:#7bdef4}.prose-code\:text-\[0\.92em\] :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:.92em}.prose-code\:font-normal :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:400}.prose-code\:before\:content-none :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))):before{--tw-content: none;content:var(--tw-content)}.prose-code\:after\:content-none :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))):after{--tw-content: none;content:var(--tw-content)}.prose-pre\:my-0 :is(:where(pre):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:0;margin-bottom:0}.prose-pre\:bg-transparent :is(:where(pre):not(:where([class~=not-prose],[class~=not-prose] *))){background-color:transparent}.prose-pre\:p-0 :is(:where(pre):not(:where([class~=not-prose],[class~=not-prose] *))){padding:0}.prose-ol\:my-2 :is(:where(ol):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.5rem;margin-bottom:.5rem}.prose-ul\:my-2 :is(:where(ul):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.5rem;margin-bottom:.5rem}.prose-li\:my-0\.5 :is(:where(li):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.125rem;margin-bottom:.125rem}.prose-table\:my-3 :is(:where(table):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.75rem;margin-bottom:.75rem}.prose-th\:text-left :is(:where(th):not(:where([class~=not-prose],[class~=not-prose] *))){text-align:left}.prose-th\:font-medium :is(:where(th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:500}.prose-hr\:my-6 :is(:where(hr):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:1.5rem;margin-bottom:1.5rem}@media (prefers-reduced-motion: no-preference){.motion-safe\:duration-200{transition-duration:.2s}.motion-safe\:animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.motion-safe\:fade-in-0{--tw-enter-opacity: 0}.motion-safe\:slide-in-from-bottom-1{--tw-enter-translate-y: .25rem}.motion-safe\:slide-in-from-top-1{--tw-enter-translate-y: -.25rem}.motion-safe\:duration-200{animation-duration:.2s}}@media (prefers-reduced-motion: reduce){.motion-reduce\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.motion-reduce\:animate-none{animation:none}.motion-reduce\:border-primary{border-color:hsl(var(--primary))}.motion-reduce\:ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.motion-reduce\:ring-sky-400\/25{--tw-ring-color: rgb(56 189 248 / .25)}.motion-reduce\:transition-none{transition-property:none}.motion-reduce\:data-\[state\=closed\]\:animate-none[data-state=closed],.motion-reduce\:data-\[state\=open\]\:animate-none[data-state=open]{animation:none}}.dark\:border-blue-400\/25:is(.dark *){border-color:#60a5fa40}.dark\:border-sky-300\/15:is(.dark *){border-color:#7dd3fc26}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}.dark\:border-white\/\[0\.06\]:is(.dark *){border-color:#ffffff0f}.dark\:border-white\/\[0\.08\]:is(.dark *){border-color:#ffffff14}.dark\:border-white\/\[0\.1\]:is(.dark *){border-color:#ffffff1a}.dark\:border-t-blue-400:is(.dark *){--tw-border-opacity: 1;border-top-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.dark\:bg-\[\#2b2b2b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(43 43 43 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-background\/30:is(.dark *){background-color:hsl(var(--background) / .3)}.dark\:bg-background\/35:is(.dark *){background-color:hsl(var(--background) / .35)}.dark\:bg-background\/40:is(.dark *){background-color:hsl(var(--background) / .4)}.dark\:bg-background\/45:is(.dark *){background-color:hsl(var(--background) / .45)}.dark\:bg-background\/80:is(.dark *){background-color:hsl(var(--background) / .8)}.dark\:bg-blue-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.dark\:bg-card\/45:is(.dark *){background-color:hsl(var(--card) / .45)}.dark\:bg-muted\/70:is(.dark *){background-color:hsl(var(--muted) / .7)}.dark\:bg-neutral-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-300\/10:is(.dark *){background-color:#fdba741a}.dark\:bg-popover\/90:is(.dark *){background-color:hsl(var(--popover) / .9)}.dark\:bg-sky-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(125 211 252 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-300\/\[0\.08\]:is(.dark *){background-color:#7dd3fc14}.dark\:bg-sky-500\/80:is(.dark *){background-color:#0ea5e9cc}.dark\:bg-sky-700\/85:is(.dark *){background-color:#0369a1d9}.dark\:bg-sky-900\/80:is(.dark *){background-color:#0c4a6ecc}.dark\:bg-white\/10:is(.dark *){background-color:#ffffff1a}.dark\:bg-white\/\[0\.055\]:is(.dark *){background-color:#ffffff0e}.dark\:bg-white\/\[0\.08\]:is(.dark *){background-color:#ffffff14}.dark\:bg-white\/\[0\.09\]:is(.dark *){background-color:#ffffff17}.dark\:bg-yellow-300\/25:is(.dark *){background-color:#fde04740}.dark\:bg-zinc-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300\/75:is(.dark *){color:#6ee7b7bf}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-muted-foreground:is(.dark *){color:hsl(var(--muted-foreground))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-orange-200\/75:is(.dark *){color:#fed7aabf}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-rose-300\/75:is(.dark *){color:#fda4afbf}.dark\:text-rose-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.dark\:text-sky-200:is(.dark *){--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity, 1))}.dark\:text-sky-200\/80:is(.dark *){color:#bae6fdcc}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-sky-400:is(.dark *){--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:text-white\/80:is(.dark *){color:#fffc}.dark\:shadow-\[0_0_0_3px_rgba\(96\,165\,250\,0\.18\)\]:is(.dark *){--tw-shadow: 0 0 0 3px rgba(96,165,250,.18);--tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_14px_34px_rgba\(0\,0\,0\,0\.30\)\]:is(.dark *){--tw-shadow: 0 14px 34px rgba(0,0,0,.3);--tw-shadow-colored: 0 14px 34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_16px_34px_rgba\(0\,0\,0\,0\.28\)\]:is(.dark *){--tw-shadow: 0 16px 34px rgba(0,0,0,.28);--tw-shadow-colored: 0 16px 34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_16px_48px_rgba\(0\,0\,0\,0\.45\)\]:is(.dark *){--tw-shadow: 0 16px 48px rgba(0,0,0,.45);--tw-shadow-colored: 0 16px 48px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_18px_65px_rgba\(0\,0\,0\,0\.22\)\]:is(.dark *){--tw-shadow: 0 18px 65px rgba(0,0,0,.22);--tw-shadow-colored: 0 18px 65px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_18px_65px_rgba\(0\,0\,0\,0\.24\)\]:is(.dark *){--tw-shadow: 0 18px 65px rgba(0,0,0,.24);--tw-shadow-colored: 0 18px 65px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_22px_55px_rgba\(0\,0\,0\,0\.45\)\]:is(.dark *){--tw-shadow: 0 22px 55px rgba(0,0,0,.45);--tw-shadow-colored: 0 22px 55px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_24px_55px_rgba\(0\,0\,0\,0\.34\)\]:is(.dark *){--tw-shadow: 0 24px 55px rgba(0,0,0,.34);--tw-shadow-colored: 0 24px 55px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_24px_60px_rgba\(0\,0\,0\,0\.42\)\]:is(.dark *){--tw-shadow: 0 24px 60px rgba(0,0,0,.42);--tw-shadow-colored: 0 24px 60px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_26px_90px_rgba\(0\,0\,0\,0\.44\)\]:is(.dark *){--tw-shadow: 0 26px 90px rgba(0,0,0,.44);--tw-shadow-colored: 0 26px 90px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-none:is(.dark *){--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:ring-sky-400\/45:is(.dark *){--tw-ring-color: rgb(56 189 248 / .45)}.dark\:ring-white\/10:is(.dark *){--tw-ring-color: rgb(255 255 255 / .1)}.dark\:ring-white\/\[0\.035\]:is(.dark *){--tw-ring-color: rgb(255 255 255 / .035)}.dark\:ring-white\/\[0\.045\]:is(.dark *){--tw-ring-color: rgb(255 255 255 / .045)}.subagent-activity-step .dark\:text-muted-foreground:is(.dark *){color:#1593c1}.dark .subagent-activity-step .dark\:text-muted-foreground:is(.dark *){color:#7bdef4}.dark\:after\:border-blue-400\/55:is(.dark *):after{content:var(--tw-content);border-color:#60a5fa8c}.dark\:focus-within\:border-blue-400\/55:focus-within:is(.dark *){border-color:#60a5fa8c}.dark\:hover\:bg-orange-400\/10:hover:is(.dark *){background-color:#fb923c1a}.dark\:hover\:bg-white\/\[0\.055\]:hover:is(.dark *){background-color:#ffffff0e}.dark\:hover\:bg-white\/\[0\.065\]:hover:is(.dark *){background-color:#fff1}.dark\:hover\:bg-white\/\[0\.06\]:hover:is(.dark *){background-color:#ffffff0f}.dark\:hover\:bg-white\/\[0\.07\]:hover:is(.dark *){background-color:#ffffff12}.dark\:hover\:text-blue-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-sky-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity, 1))}.dark\:focus\:bg-white\/\[0\.08\]:focus:is(.dark *){background-color:#ffffff14}.dark\:focus\:text-orange-300:focus:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:data-\[state\=open\]\:bg-white\/\[0\.08\][data-state=open]:is(.dark *){background-color:#ffffff14}.dark\:prose-a\:text-blue-300 :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))):is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:hover\:prose-a\:text-blue-200 :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))):hover:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:absolute{position:absolute}.sm\:inset-x-0{left:0;right:0}.sm\:bottom-\[calc\(100\%\+1\.5rem\)\]{bottom:calc(100% + 1.5rem)}.sm\:ml-6{margin-left:1.5rem}.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:w-auto{width:auto}.sm\:min-w-\[760px\]{min-width:760px}.sm\:max-w-\[18rem\]{max-width:18rem}.sm\:max-w-\[24rem\]{max-width:24rem}.sm\:max-w-\[320px\]{max-width:320px}.sm\:max-w-none{max-width:none}.sm\:max-w-sm{max-width:24rem}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.sm\:grid-cols-\[minmax\(0\,1fr\)_10rem\]{grid-template-columns:minmax(0,1fr) 10rem}.sm\:grid-cols-\[minmax\(0\,1fr\)_12rem\]{grid-template-columns:minmax(0,1fr) 12rem}.sm\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:items-baseline{align-items:baseline}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-2{gap:.5rem}.sm\:space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-\[22px\]{border-radius:22px}.sm\:rounded-\[28px\]{border-radius:28px}.sm\:rounded-\[4px\]{border-radius:4px}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-5{padding:1.25rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:pt-\[4\.25rem\]{padding-top:4.25rem}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}.sm\:text-\[28px\]{font-size:28px}.sm\:text-\[48px\]{font-size:48px}.sm\:leading-tight{line-height:1.25}}@media (min-width: 768px){.md\:relative{position:relative}.md\:z-auto{z-index:auto}.md\:mx-0{margin-left:0;margin-right:0}.md\:mb-3{margin-bottom:.75rem}.md\:mb-4{margin-bottom:1rem}.md\:mt-auto{margin-top:auto}.md\:block{display:block}.md\:flex{display:flex}.md\:w-\[17rem\]{width:17rem}.md\:w-\[var\(--file-preview-slot-width\)\]{width:var(--file-preview-slot-width)}.md\:w-\[var\(--file-preview-width\)\]{width:var(--file-preview-width)}.md\:w-full{width:100%}.md\:min-w-0{min-width:0px}.md\:shrink-0{flex-shrink:0}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.md\:overflow-visible{overflow:visible}.md\:rounded-\[10px\]{border-radius:10px}.md\:border-b-0{border-bottom-width:0px}.md\:border-r{border-right-width:1px}.md\:px-0{padding-left:0;padding-right:0}.md\:px-2{padding-left:.5rem;padding-right:.5rem}.md\:px-2\.5{padding-left:.625rem;padding-right:.625rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:pb-0{padding-bottom:0}.md\:pb-4{padding-bottom:1rem}.md\:pt-4{padding-top:1rem}.md\:pt-\[4\.25rem\]{padding-top:4.25rem}.md\:shadow-\[inset_-1px_0_0_rgba\(255\,255\,255\,0\.55\)\]{--tw-shadow: inset -1px 0 0 rgba(255,255,255,.55);--tw-shadow-colored: inset -1px 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.md\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_180px\]{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 180px}.lg\:grid-cols-\[minmax\(0\,1fr\)_14\.5rem\]{grid-template-columns:minmax(0,1fr) 14.5rem}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-l{border-left-width:1px}.lg\:border-t-0{border-top-width:0px}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:pl-\[128px\]{padding-left:128px}.lg\:pt-\[4\.75rem\]{padding-top:4.75rem}}@media (min-width: 1280px){.xl\:max-h-\[calc\(100vh-24rem\)\]{max-height:calc(100vh - 24rem)}.xl\:grid-cols-\[minmax\(16rem\,18rem\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(16rem,18rem) minmax(0,1fr)}.xl\:items-stretch{align-items:stretch}.xl\:border-b-0{border-bottom-width:0px}.xl\:border-r{border-right-width:1px}}.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb{border-radius:9999px}.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-muted-foreground\/25::-webkit-scrollbar-thumb{background-color:hsl(var(--muted-foreground) / .25)}.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-muted-foreground\/30::-webkit-scrollbar-thumb{background-color:hsl(var(--muted-foreground) / .3)}.\[\&\:\:-webkit-scrollbar-track\]\:bg-transparent::-webkit-scrollbar-track{background-color:transparent}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}.\[\&\:\:-webkit-scrollbar\]\:h-1\.5::-webkit-scrollbar{height:.375rem}.\[\&\:\:-webkit-scrollbar\]\:w-1\.5::-webkit-scrollbar{width:.375rem} diff --git a/nanobot/web/dist/assets/inform7-CLI_t4f3.js b/nanobot/web/dist/assets/inform7-CLI_t4f3.js deleted file mode 100644 index d826250..0000000 --- a/nanobot/web/dist/assets/inform7-CLI_t4f3.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function g(e,s){for(var t=0;tn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var a=r;r.displayName="inform7";r.aliases=[];function r(e){e.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\[\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\[\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:book|chapter|part(?! of)|section|table|volume)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},e.languages.inform7.string.inside.substitution.inside.rest=e.languages.inform7,e.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"}}const d=l(a),p=g({__proto__:null,default:d},[a]);export{p as i}; diff --git a/nanobot/web/dist/assets/ini-BKhxqWEm.js b/nanobot/web/dist/assets/ini-BKhxqWEm.js deleted file mode 100644 index c5ad223..0000000 --- a/nanobot/web/dist/assets/ini-BKhxqWEm.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(t,o){for(var r=0;re[n]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var f=a;a.displayName="ini";a.aliases=[];function a(t){t.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}const s=l(f),c=u({__proto__:null,default:s},[f]);export{c as i}; diff --git a/nanobot/web/dist/assets/io-DF7uXpIZ.js b/nanobot/web/dist/assets/io-DF7uXpIZ.js deleted file mode 100644 index 60be771..0000000 --- a/nanobot/web/dist/assets/io-DF7uXpIZ.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,a){for(var o=0;or[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=n;n.displayName="io";n.aliases=[];function n(e){e.languages.io={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*|#.*)/,lookbehind:!0,greedy:!0},"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\b/,boolean:/\b(?:false|nil|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*/%+\-^&|]=|>>?=?|<t[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="j";o.aliases=[];function o(e){e.languages.j={comment:{pattern:/\bNB\..*/,greedy:!0},string:{pattern:/'(?:''|[^'\r\n])*'/,greedy:!0},keyword:/\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,verb:{pattern:/(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:ad|ar|[ejpx])_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}const c=s(i),f=l({__proto__:null,default:c},[i]);export{f as j}; diff --git a/nanobot/web/dist/assets/java-a-3Zt0eF.js b/nanobot/web/dist/assets/java-a-3Zt0eF.js deleted file mode 100644 index ad7eb22..0000000 --- a/nanobot/web/dist/assets/java-a-3Zt0eF.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function c(n,t){for(var r=0;ra[e]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="java";o.aliases=[];function o(n){(function(t){var r=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,a=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,e={pattern:RegExp(a+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};t.languages.java=t.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[e,{pattern:RegExp(a+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:e.inside}],keyword:r,function:[t.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),t.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),t.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":e,keyword:r,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return r.source})),lookbehind:!0,inside:{punctuation:/\./}}})})(n)}const l=u(i),p=c({__proto__:null,default:l},[i]);export{i as a,p as j}; diff --git a/nanobot/web/dist/assets/javadoc-ENJAj3U_.js b/nanobot/web/dist/assets/javadoc-ENJAj3U_.js deleted file mode 100644 index 34ea996..0000000 --- a/nanobot/web/dist/assets/javadoc-ENJAj3U_.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";import{a as c}from"./java-a-3Zt0eF.js";import{a as d}from"./javadoclike-CPYkCmOi.js";function l(a,e){for(var o=0;ot[n]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var g=c,p=d,i=s;s.displayName="javadoc";s.aliases=[];function s(a){a.register(g),a.register(p),function(e){var o=/(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m,t=/#\s*\w+(?:\s*\([^()]*\))?/.source,n=/(?:\b[a-zA-Z]\w+\s*\.\s*)*\b[A-Z]\w*(?:\s*)?|/.source.replace(//g,function(){return t});e.languages.javadoc=e.languages.extend("javadoclike",{}),e.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp(/(@(?:exception|link|linkplain|see|throws|value)\s+(?:\*\s*)?)/.source+"(?:"+n+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:e.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:o,lookbehind:!0,inside:e.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:o,lookbehind:!0,inside:{tag:e.languages.markup.tag,entity:e.languages.markup.entity,code:{pattern:/.+/,inside:e.languages.java,alias:"language-java"}}}}}],tag:e.languages.markup.tag,entity:e.languages.markup.entity}),e.languages.javadoclike.addSupport("java",e.languages.javadoc)}(a)}const v=u(i),b=l({__proto__:null,default:v},[i]);export{b as j}; diff --git a/nanobot/web/dist/assets/javadoclike-CPYkCmOi.js b/nanobot/web/dist/assets/javadoclike-CPYkCmOi.js deleted file mode 100644 index c3744af..0000000 --- a/nanobot/web/dist/assets/javadoclike-CPYkCmOi.js +++ /dev/null @@ -1 +0,0 @@ -import{g as v}from"./syntax-highlight-CQw1bBY6.js";function g(p,i){for(var r=0;ro[n]})}}}return Object.freeze(Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}))}var l=d;d.displayName="javadoclike";d.aliases=[];function d(p){(function(i){var r=i.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};function o(t,s){var c="doc-comment",a=i.languages[t];if(a){var e=a[c];if(!e){var u={};u[c]={pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"},a=i.languages.insertBefore(t,"comment",u),e=a[c]}if(e instanceof RegExp&&(e=a[c]={pattern:e}),Array.isArray(e))for(var f=0,m=e.length;ft[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="javastacktrace";i.aliases=[];function i(e){e.languages.javastacktrace={summary:{pattern:/^([\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,lookbehind:!0,inside:{keyword:{pattern:/^([\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+$/,namespace:/\b[a-z]\w*\b/,punctuation:/\./}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^([\t ]*)at (?:[\w$./]|@[\w$.+-]*\/)+(?:)?\([^()]*\)/m,lookbehind:!0,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\b\d+\b/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Native Method|Unknown Source)$/}}],"class-name":/[\w$]+(?=\.(?:|[\w$]+)\()/,function:/(?:|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:\b[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^([\t ]*)\.{3} \d+ [a-z]+(?: [a-z]+)*/m,lookbehind:!0,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}}const c=u(s),l=d({__proto__:null,default:c},[s]);export{l as j}; diff --git a/nanobot/web/dist/assets/jexl-ZcTrWYeA.js b/nanobot/web/dist/assets/jexl-ZcTrWYeA.js deleted file mode 100644 index 5ba8438..0000000 --- a/nanobot/web/dist/assets/jexl-ZcTrWYeA.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function i(e,a){for(var r=0;rt[u]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="jexl";n.aliases=[];function n(e){e.languages.jexl={string:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,transform:{pattern:/(\|\s*)[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function",lookbehind:!0},function:/[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b\d+(?:\.\d+)?\b|\B\.\d+\b/,operator:/[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/,boolean:/\b(?:false|true)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}}const f=s(l),b=i({__proto__:null,default:f},[l]);export{b as j}; diff --git a/nanobot/web/dist/assets/jolie-DbpEAaCR.js b/nanobot/web/dist/assets/jolie-DbpEAaCR.js deleted file mode 100644 index 263c504..0000000 --- a/nanobot/web/dist/assets/jolie-DbpEAaCR.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,s){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var a=i;i.displayName="jolie";i.aliases=[];function i(e){e.languages.jolie=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\[\s\S]|[^"\\])*"/,lookbehind:!0,greedy:!0},"class-name":{pattern:/((?:\b(?:as|courier|embed|in|inputPort|outputPort|service)\b|@)[ \t]*)\w+/,lookbehind:!0},keyword:/\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\b/,function:/\b[a-z_]\w*(?=[ \t]*[@(])/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[?\/%^@|]/,punctuation:/[()[\]{},;.:]/,builtin:/\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\b/}),e.languages.insertBefore("jolie","keyword",{aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{keyword:/\bwith\b/,"class-name":/\w+/,punctuation:/,/}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:/,/,"class-name":/\w+/,operator:/=>/}},property:{pattern:/\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\b(?=[ \t]*:)/}})}const c=l(a),p=u({__proto__:null,default:c},[a]);export{p as j}; diff --git a/nanobot/web/dist/assets/jq-B_YVrZzq.js b/nanobot/web/dist/assets/jq-B_YVrZzq.js deleted file mode 100644 index 2e1daa1..0000000 --- a/nanobot/web/dist/assets/jq-B_YVrZzq.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(n,a){for(var r=0;rt[e]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var l=i;i.displayName="jq";i.aliases=[];function i(n){(function(a){var r=/\\\((?:[^()]|\([^()]*\))*\)/.source,t=RegExp(/(^|[^\\])"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g,function(){return r})),e={interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+r),lookbehind:!0,inside:{content:{pattern:/^(\\\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:null},punctuation:/^\\\(|\)$/}}},o=a.languages.jq={comment:/#.*/,property:{pattern:RegExp(t.source+/(?=\s*:(?!:))/.source),lookbehind:!0,greedy:!0,inside:e},string:{pattern:t,lookbehind:!0,greedy:!0,inside:e},function:{pattern:/(\bdef\s+)[a-z_]\w+/i,lookbehind:!0},variable:/\B\$\w+/,"property-literal":{pattern:/\b[a-z_]\w*(?=\s*:(?!:))/i,alias:"property"},keyword:/\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,operator:[{pattern:/\|=?/,alias:"pipe"},/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|not|or)\b/],"c-style-function":{pattern:/\b[a-z_]\w*(?=\s*\()/i,alias:"function"},punctuation:/::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,dot:{pattern:/\./,alias:"important"}};e.interpolation.inside.content.inside=o})(n)}const p=s(l),d=u({__proto__:null,default:p},[l]);export{d as j}; diff --git a/nanobot/web/dist/assets/js-extras-Dob2Q551.js b/nanobot/web/dist/assets/js-extras-Dob2Q551.js deleted file mode 100644 index ad5f195..0000000 --- a/nanobot/web/dist/assets/js-extras-Dob2Q551.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";function f(s,a){for(var r=0;rt[e]})}}}return Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}var c=i;i.displayName="jsExtras";i.aliases=[];function i(s){(function(a){a.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+a.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),a.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+a.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),a.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]});function r(p,u){return RegExp(p.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),u)}a.languages.insertBefore("javascript","keyword",{imports:{pattern:r(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:a.languages.javascript},exports:{pattern:r(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:a.languages.javascript}}),a.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),a.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),a.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:r(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var t=["function","function-variable","method","method-variable","property-access"],e=0;eg[p]})}}}return Object.freeze(Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}))}var C=O;O.displayName="jsTemplates";O.aliases=[];function O(h){(function(t){var f=t.languages.javascript["template-string"],g=f.pattern.source,p=f.inside.interpolation,j=p.inside["interpolation-punctuation"],E=p.pattern.source;function b(e,a){if(t.languages[e])return{pattern:RegExp("((?:"+a+")\\s*)"+g),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:e}}}}t.languages.javascript["template-string"]=[b("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),b("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),b("svg",/\bsvg/.source),b("markdown",/\b(?:markdown|md)/.source),b("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),b("sql",/\bsql/.source),f].filter(Boolean);function L(e,a){return"___"+a.toUpperCase()+"_"+e+"___"}function w(e,a,n){var r={code:e,grammar:a,language:n};return t.hooks.run("before-tokenize",r),r.tokens=t.tokenize(r.code,r.grammar),t.hooks.run("after-tokenize",r),r.tokens}function M(e){var a={};a["interpolation-punctuation"]=j;var n=t.tokenize(e,a);if(n.length===3){var r=[1,1];r.push.apply(r,w(n[1],t.languages.javascript,"javascript")),n.splice.apply(n,r)}return new t.Token("interpolation",n,p.alias,e)}function D(e,a,n){var r=t.tokenize(e,{interpolation:{pattern:RegExp(E),lookbehind:!0}}),c=0,v={},u=r.map(function(o){if(typeof o=="string")return o;for(var s=o.content,i;e.indexOf(i=L(c++,n))!==-1;);return v[i]=s,i}).join(""),y=w(u,a,n),m=Object.keys(v);c=0;function l(o){for(var s=0;s=m.length)return;var i=o[s];if(typeof i=="string"||typeof i.content=="string"){var k=m[c],T=typeof i=="string"?i:i.content,z=T.indexOf(k);if(z!==-1){++c;var x=T.substring(0,z),H=M(v[k]),S=T.substring(z+k.length),d=[];if(x&&d.push(x),d.push(H),S){var q=[S];l(q),d.push.apply(d,q)}typeof i=="string"?(o.splice.apply(o,[s,1].concat(d)),s+=d.length-1):i.content=d}}else{var A=i.content;Array.isArray(A)?l(A):l([A])}}}return l(y),new t.Token(n,y,"language-"+n,e)}var G={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};t.hooks.add("after-tokenize",function(e){if(!(e.language in G))return;function a(n){for(var r=0,c=n.length;rt[r]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var l=u,g=c,i=s;s.displayName="jsdoc";s.aliases=[];function s(o){o.register(l),o.register(g),function(e){var a=e.languages.javascript,t=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+t+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:a,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return t})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+t),lookbehind:!0,inside:{string:a.string,number:a.number,boolean:a.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:a,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(o)}const f=p(i),v=d({__proto__:null,default:f},[i]);export{v as j}; diff --git a/nanobot/web/dist/assets/json-B1eFyQPV.js b/nanobot/web/dist/assets/json-B1eFyQPV.js deleted file mode 100644 index 789eb39..0000000 --- a/nanobot/web/dist/assets/json-B1eFyQPV.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function g(e,s){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=a;a.displayName="json";a.aliases=["webmanifest"];function a(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},e.languages.webmanifest=e.languages.json}const i=l(u),p=g({__proto__:null,default:i},[u]);export{u as a,p as j}; diff --git a/nanobot/web/dist/assets/json5-DTZPvLr3.js b/nanobot/web/dist/assets/json5-DTZPvLr3.js deleted file mode 100644 index ca13321..0000000 --- a/nanobot/web/dist/assets/json5-DTZPvLr3.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";import{a as g}from"./json-B1eFyQPV.js";function i(e,t){for(var r=0;rn[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var p=g,u=s;s.displayName="json5";s.aliases=[];function s(e){e.register(p),function(t){var r=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;t.languages.json5=t.languages.extend("json",{property:[{pattern:RegExp(r.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:r,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(e)}const d=f(u),j=i({__proto__:null,default:d},[u]);export{j}; diff --git a/nanobot/web/dist/assets/jsonp-obVIABf6.js b/nanobot/web/dist/assets/jsonp-obVIABf6.js deleted file mode 100644 index 780252c..0000000 --- a/nanobot/web/dist/assets/jsonp-obVIABf6.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";import{a as f}from"./json-B1eFyQPV.js";function c(e,s){for(var n=0;nt[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var g=f,u=a;a.displayName="jsonp";a.aliases=[];function a(e){e.register(g),e.languages.jsonp=e.languages.extend("json",{punctuation:/[{}[\]();,.]/}),e.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/})}const i=p(u),d=c({__proto__:null,default:i},[u]);export{d as j}; diff --git a/nanobot/web/dist/assets/jsstacktrace-DMw4YB7F.js b/nanobot/web/dist/assets/jsstacktrace-DMw4YB7F.js deleted file mode 100644 index cfea6a8..0000000 --- a/nanobot/web/dist/assets/jsstacktrace-DMw4YB7F.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function c(e,o){for(var n=0;nt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=s;s.displayName="jsstacktrace";s.aliases=[];function s(e){e.languages.jsstacktrace={"error-message":{pattern:/^\S.*/m,alias:"string"},"stack-frame":{pattern:/(^[ \t]+)at[ \t].*/m,lookbehind:!0,inside:{"not-my-code":{pattern:/^at[ \t]+(?!\s)(?:node\.js||.*(?:node_modules|\(\)|\(|$|\(internal\/|\(node\.js)).*/m,alias:"comment"},filename:{pattern:/(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/,lookbehind:!0,alias:"url"},function:{pattern:/(\bat\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/,lookbehind:!0,inside:{punctuation:/\./}},punctuation:/[()]/,keyword:/\b(?:at|new)\b/,alias:{pattern:/\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/,alias:"variable"},"line-number":{pattern:/:\d+(?::\d+)?\b/,alias:"number",inside:{punctuation:/:/}}}}}}const l=u(i),m=c({__proto__:null,default:l},[i]);export{m as j}; diff --git a/nanobot/web/dist/assets/jsx-YFTIUZ3D.js b/nanobot/web/dist/assets/jsx-YFTIUZ3D.js deleted file mode 100644 index 03a67c7..0000000 --- a/nanobot/web/dist/assets/jsx-YFTIUZ3D.js +++ /dev/null @@ -1 +0,0 @@ -import{g as x}from"./syntax-highlight-CQw1bBY6.js";function S(p,t){for(var u=0;us[g]})}}}return Object.freeze(Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}))}var y=i;i.displayName="jsx";i.aliases=[];function i(p){(function(t){var u=t.util.clone(t.languages.javascript),s=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,g=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,c=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function f(e,n){return e=e.replace(//g,function(){return s}).replace(//g,function(){return g}).replace(//g,function(){return c}),RegExp(e,n)}c=f(c).source,t.languages.jsx=t.languages.extend("markup",u),t.languages.jsx.tag.pattern=f(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),t.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,t.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,t.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,t.languages.jsx.tag.inside.comment=u.comment,t.languages.insertBefore("inside","attr-name",{spread:{pattern:f(//.source),inside:t.languages.jsx}},t.languages.jsx.tag),t.languages.insertBefore("inside","special-attr",{script:{pattern:f(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:t.languages.jsx}}},t.languages.jsx.tag);var l=function(e){return e?typeof e=="string"?e:typeof e.content=="string"?e.content:e.content.map(l).join(""):""},d=function(e){for(var n=[],r=0;r0&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():a.content[a.content.length-1].content==="/>"||n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):n.length>0&&a.type==="punctuation"&&a.content==="{"?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&a.type==="punctuation"&&a.content==="}"?n[n.length-1].openedBraces--:j=!0),(j||typeof a=="string")&&n.length>0&&n[n.length-1].openedBraces===0){var o=l(a);r0&&(typeof e[r-1]=="string"||e[r-1].type==="plain-text")&&(o=l(e[r-1])+o,e.splice(r-1,1),r--),e[r]=new t.Token("plain-text",o,null,o)}a.content&&typeof a.content!="string"&&d(a.content)}};t.hooks.add("after-tokenize",function(e){e.language!=="jsx"&&e.language!=="tsx"||d(e.tokens)})})(p)}const v=x(y),A=S({__proto__:null,default:v},[y]);export{y as a,A as j}; diff --git a/nanobot/web/dist/assets/julia-OkpY0XlO.js b/nanobot/web/dist/assets/julia-OkpY0XlO.js deleted file mode 100644 index f4c2ad3..0000000 --- a/nanobot/web/dist/assets/julia-OkpY0XlO.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function s(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="julia";o.aliases=[];function o(e){e.languages.julia={comment:{pattern:/(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,lookbehind:!0},regex:{pattern:/r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/,greedy:!0},string:{pattern:/"""[\s\S]+?"""|(?:\b\w+)?"(?:\\.|[^"\\\r\n])*"|`(?:[^\\`\r\n]|\\.)*`/,greedy:!0},char:{pattern:/(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'/,lookbehind:!0,greedy:!0},keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i,operator:/&&|\|\||[-+*^%÷⊻&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,punctuation:/::?|[{}[\]();,.?]/,constant:/\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\b|[πℯ]/}}const c=u(l),p=s({__proto__:null,default:c},[l]);export{p as j}; diff --git a/nanobot/web/dist/assets/katex-BSBacQyE.js b/nanobot/web/dist/assets/katex-BSBacQyE.js deleted file mode 100644 index 51fbe7e..0000000 --- a/nanobot/web/dist/assets/katex-BSBacQyE.js +++ /dev/null @@ -1,257 +0,0 @@ -class S extends Error{constructor(e,t){var a="KaTeX parse error: "+e,n,l,u=t&&t.loc;if(u&&u.start<=u.end){var h=u.lexer.input;n=u.start,l=u.end,n===h.length?a+=" at end of input: ":a+=" at position "+(n+1)+": ";var c=h.slice(n,l).replace(/[^]/g,"$&̲"),v;n>15?v="…"+h.slice(n-15,n):v=h.slice(0,n);var g;l+15r.replace(I1,"-$1").toLowerCase(),N1={"&":"&",">":">","<":"<",'"':""","'":"'"},O1=/[&><"']/g,n0=r=>String(r).replace(O1,e=>N1[e]),De=r=>r.type==="ordgroup"||r.type==="color"?r.body.length===1?De(r.body[0]):r:r.type==="font"?De(r.body):r,H1=new Set(["mathord","textord","atom"]),C0=r=>H1.has(De(r).type),F1=r=>{var e=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(r);return e?e[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(e[1])?null:e[1].toLowerCase():"_relative"},dt={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:r=>"#"+r},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(r,e)=>(e.push(r),e)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:r=>Math.max(0,r),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:r=>Math.max(0,r),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:r=>Math.max(0,r),cli:"-e, --max-expand ",cliProcessor:r=>r==="Infinity"?1/0:parseInt(r)},globalGroup:{type:"boolean",cli:!1}};function L1(r){if("default"in r)return r.default;var e=r.type,t=Array.isArray(e)?e[0]:e;if(typeof t!="string")return t.enum[0];switch(t){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class Bt{constructor(e){e===void 0&&(e={}),e=e||{};for(var t of Object.keys(dt)){var a=dt[t],n=e[t];this[t]=n!==void 0?a.processor?a.processor(n):n:L1(a)}}reportNonstrict(e,t,a){var n=this.strict;if(typeof n=="function"&&(n=n(e,t,a)),!(!n||n==="ignore")){if(n===!0||n==="error")throw new S("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e+"]"),a);n==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]"))}}useStrictBehavior(e,t,a){var n=this.strict;if(typeof n=="function")try{n=n(e,t,a)}catch{n="error"}return!n||n==="ignore"?!1:n===!0||n==="error"?!0:n==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]")),!1)}isTrusted(e){if("url"in e&&e.url&&!e.protocol){var t=F1(e.url);if(t==null)return!1;e.protocol=t}var a=typeof this.trust=="function"?this.trust(e):this.trust;return!!a}}class O0{constructor(e,t,a){this.id=e,this.size=t,this.cramped=a}sup(){return w0[P1[this.id]]}sub(){return w0[G1[this.id]]}fracNum(){return w0[U1[this.id]]}fracDen(){return w0[V1[this.id]]}cramp(){return w0[X1[this.id]]}text(){return w0[Y1[this.id]]}isTight(){return this.size>=2}}var Dt=0,qe=1,_0=2,B0=3,he=4,g0=5,ee=6,u0=7,w0=[new O0(Dt,0,!1),new O0(qe,0,!0),new O0(_0,1,!1),new O0(B0,1,!0),new O0(he,2,!1),new O0(g0,2,!0),new O0(ee,3,!1),new O0(u0,3,!0)],P1=[he,g0,he,g0,ee,u0,ee,u0],G1=[g0,g0,g0,g0,u0,u0,u0,u0],U1=[_0,B0,he,g0,ee,u0,ee,u0],V1=[B0,B0,g0,g0,u0,u0,u0,u0],X1=[qe,qe,B0,B0,g0,g0,u0,u0],Y1=[Dt,qe,_0,B0,_0,B0,_0,B0],N={DISPLAY:w0[Dt],TEXT:w0[_0],SCRIPT:w0[he],SCRIPTSCRIPT:w0[ee]},ft=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function W1(r){for(var e=0;e=n[0]&&r<=n[1])return t.name}return null}var Ce=[];ft.forEach(r=>r.blocks.forEach(e=>Ce.push(...e)));function Cr(r){for(var e=0;e=Ce[e]&&r<=Ce[e+1])return!0;return!1}var r0=r=>r+" "+r,Q0=80,$1=function(e,t){return"M95,"+(622+e+t)+` -c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 -c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 -c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 -s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 -c69,-144,104.5,-217.7,106.5,-221 -l`+e/2.075+" -"+e+` -c5.3,-9.3,12,-14,20,-14 -H400000v`+(40+e)+`H845.2724 -s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 -c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z -M`+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},j1=function(e,t){return"M263,"+(601+e+t)+`c0.7,0,18,39.7,52,119 -c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 -c340,-704.7,510.7,-1060.3,512,-1067 -l`+e/2.084+" -"+e+` -c4.7,-7.3,11,-11,19,-11 -H40000v`+(40+e)+`H1012.3 -s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 -c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 -s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 -c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z -M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Z1=function(e,t){return"M983 "+(10+e+t)+` -l`+e/3.13+" -"+e+` -c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` -H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 -s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 -c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 -c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 -c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 -c53.7,-170.3,84.5,-266.8,92.5,-289.5z -M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},K1=function(e,t){return"M424,"+(2398+e+t)+` -c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 -c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 -s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 -s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 -l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 -v`+(40+e)+`H1014.6 -s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 -c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+t+` -h400000v`+(40+e)+"h-400000z"},J1=function(e,t){return"M473,"+(2713+e+t)+` -c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` -c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 -s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 -c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 -s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, -606zM`+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"},Q1=function(e){var t=e/2;return"M400000 "+e+" H0 L"+t+" 0 l65 45 L145 "+(e-80)+" H400000z"},_1=function(e,t,a){var n=a-54-t-e;return"M702 "+(e+t)+"H400000"+(40+e)+` -H742v`+n+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 -h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 -c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 -219 661 l218 661zM702 `+t+"H400000v"+(40+e)+"H742z"},ea=function(e,t,a){t=1e3*t;var n="";switch(e){case"sqrtMain":n=$1(t,Q0);break;case"sqrtSize1":n=j1(t,Q0);break;case"sqrtSize2":n=Z1(t,Q0);break;case"sqrtSize3":n=K1(t,Q0);break;case"sqrtSize4":n=J1(t,Q0);break;case"sqrtTall":n=_1(t,Q0,a)}return n},ta=function(e,t){switch(e){case"⎜":return r0("M291 0 H417 V"+t+" H291z");case"∣":return r0("M145 0 H188 V"+t+" H145z");case"∥":return r0("M145 0 H188 V"+t+" H145z")+r0("M367 0 H410 V"+t+" H367z");case"⎟":return r0("M457 0 H583 V"+t+" H457z");case"⎢":return r0("M319 0 H403 V"+t+" H319z");case"⎥":return r0("M263 0 H347 V"+t+" H263z");case"⎪":return r0("M384 0 H504 V"+t+" H384z");case"⏐":return r0("M312 0 H355 V"+t+" H312z");case"‖":return r0("M257 0 H300 V"+t+" H257z")+r0("M478 0 H521 V"+t+" H478z");default:return""}},Qt={doubleleftarrow:`M262 157 -l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 - 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 - 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 -c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 - 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 --86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 --2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z -m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l --10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 - 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 --33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 --17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 --13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 -c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 --107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 - 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 --5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 -c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 - 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 - 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 - l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 --45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 - 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 - 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 - 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 --331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 -H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 - 435 0h399565z`,leftgroupunder:`M400000 262 -H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 - 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 --3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 --18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 --196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 - 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 --4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 --10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z -m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 - 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 - 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 --152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 - 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 --2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 -v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 --83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 --68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 - 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:r0("M40 281 V428 H0 V94 H40 V241 H400000 v40z"),leftbracketunder:r0("M0 0 h120 V290 H399995 v120 H0z"),leftbracketover:r0("M0 440 h120 V150 H399995 v-120 H0z"),leftmapsto:r0("M40 281 V448H0V74H40V241H400000v40z"),leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 --.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 -c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 - 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:r0("M0 50 h400000 v40H0z m0 194h40000v40H0z"),midbrace:`M200428 334 -c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 --53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 - 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 - 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 -c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 - 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 - 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 --5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 --320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z -m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 -60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 --451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z -m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 -c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 --480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z -m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 -85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 --707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z -m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 -c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 --16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 - 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 - 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 --40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 --12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 - 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l --6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 -s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 -c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 - 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 --174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 - 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 - 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 --3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 --10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 - 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 --18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 - 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z -m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 - 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 --7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 --27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 - 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 - 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 --64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z -m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 - 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 --13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 - 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:r0("M399960 241 V94 h40 V428 h-40 V281 H0 v-40z"),rightbracketunder:r0("M399995 0 h-120 V290 H0 v120 H400000z"),rightbracketover:r0("M399995 440 h-120 V150 H0 v-120 H399995z"),rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 - 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 --52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 --167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 - 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 --70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 --40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 --37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 - 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 -c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 - 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 - 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 --19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 - 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 --2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 - 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 - 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 --68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 --8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 - 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 -c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 - 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 --11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 - 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 - 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 - -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 --11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 - 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 - 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 - -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 -3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 -10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 --1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 --7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 -H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 -c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 -c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, --5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 -c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 -c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 -s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 -121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 -s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 -c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z -M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 --27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 -13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 --84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 --119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 --12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 -151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 -c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 -c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 -c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 -c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z -M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 -c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, --231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 -c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 -c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, -1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, --152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z -M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 -c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, --231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 -c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},ra=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v1759 h347 v-84 -H403z M403 1759 V0 H319 V1759 v`+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v1759 H0 v84 H347z -M347 1759 V0 H263 V1759 v`+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+` v585 h43z -M367 15 v585 v`+t+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+` v1715 h263 v84 H319z -MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+` v1799 H0 v-84 H319z -MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v602 h84z -M403 1759 V0 H319 V1759 v`+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v602 h84z -M347 1759 V0 h-84 V1759 v`+t+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 -c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, --36,557 l0,`+(t+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, -949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 -c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, --544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 -l0,-`+(t+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, --210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, -63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 -c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(t+9)+` -c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 -c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 -c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 -c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 -l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, --470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class ae{constructor(e){this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return this.classes.includes(e)}toNode(){for(var e=document.createDocumentFragment(),t=0;tt.toText();return this.children.map(e).join("")}}var vt={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},aa={ex:!0,em:!0,mu:!0},qr=function(e){return typeof e!="string"&&(e=e.unit),e in vt||e in aa||e==="ex"},K=function(e,t){var a;if(e.unit in vt)a=vt[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit==="mu")a=t.fontMetrics().cssEmPerMu;else{var n;if(t.style.isTight()?n=t.havingStyle(t.style.text()):n=t,e.unit==="ex")a=n.fontMetrics().xHeight;else if(e.unit==="em")a=n.fontMetrics().quad;else throw new S("Invalid unit: '"+e.unit+"'");n!==t&&(a*=n.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*a,t.maxSize)},A=function(e){return+e.toFixed(4)+"em"},L0=function(e){return e.filter(t=>t).join(" ")},Er=function(e,t,a){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=a||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},Rr=function(e){var t=document.createElement(e);t.className=L0(this.classes);for(var a of Object.keys(this.style))t.style[a]=this.style[a];for(var n of Object.keys(this.attributes))t.setAttribute(n,this.attributes[n]);for(var l=0;l/=\x00-\x1f]/,Ir=function(e){var t="<"+e;this.classes.length&&(t+=' class="'+n0(L0(this.classes))+'"');var a="";for(var n of Object.keys(this.style))a+=Tt(n)+":"+this.style[n]+";";a&&(t+=' style="'+n0(a)+'"');for(var l of Object.keys(this.attributes)){if(na.test(l))throw new S("Invalid attribute name '"+l+"'");t+=" "+l+'="'+n0(this.attributes[l])+'"'}t+=">";for(var u=0;u",t};class ne{constructor(e,t,a,n){Er.call(this,e,a,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return Rr.call(this,"span")}toMarkup(){return Ir.call(this,"span")}}class Oe{constructor(e,t,a,n){Er.call(this,t,n),this.children=a||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return Rr.call(this,"a")}toMarkup(){return Ir.call(this,"a")}}class ia{constructor(e,t,a){this.alt=t,this.src=e,this.classes=["mord"],this.height=0,this.depth=0,this.maxFontSize=0,this.style=a}hasClass(e){return this.classes.includes(e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var t of Object.keys(this.style))e.style[t]=this.style[t];return e}toMarkup(){var e=''+n0(this.alt)+'0&&(t=document.createElement("span"),t.style.marginRight=A(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=L0(this.classes));for(var a of Object.keys(this.style))t=t||document.createElement("span"),t.style[a]=this.style[a];return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="0&&(a+="margin-right:"+A(this.italic)+";");for(var n of Object.keys(this.style))a+=Tt(n)+":"+this.style[n]+";";a&&(e=!0,t+=' style="'+n0(a)+'"');var l=n0(this.text);return e?(t+=">",t+=l,t+="",t):l}}class D0{constructor(e,t){this.children=e||[],this.attributes=t||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");for(var a of Object.keys(this.attributes))t.setAttribute(a,this.attributes[a]);for(var n=0;n':''}}class pt{constructor(e){this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"line");for(var a of Object.keys(this.attributes))t.setAttribute(a,this.attributes[a]);return t}toMarkup(){var e=" but got "+String(r)+".")}var oa=r=>r instanceof ne||r instanceof Oe||r instanceof ae,k0={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},xe={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},_t={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function ha(r,e){k0[r]=e}function Ct(r,e,t){if(!k0[e])throw new Error("Font metrics not found for font: "+e+".");var a=r.charCodeAt(0),n=k0[e][a];if(!n&&r[0]in _t&&(a=_t[r[0]].charCodeAt(0),n=k0[e][a]),!n&&t==="text"&&Cr(a)&&(n=k0[e][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var Je={};function ma(r){var e;if(r>=5?e=0:r>=3?e=1:e=2,!Je[e]){var t=Je[e]={cssEmPerMu:xe.quad[e]/18};for(var a in xe)xe.hasOwnProperty(a)&&(t[a]=xe[a][e])}return Je[e]}var ca={bin:1,close:1,inner:1,open:1,punct:1,rel:1},da={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},$={math:{},text:{}};function i(r,e,t,a,n,l){$[r][n]={font:e,group:t,replace:a},l&&a&&($[r][a]=$[r][n])}var s="math",w="text",o="main",d="ams",j="accent-token",D="bin",o0="close",ie="inner",E="mathord",e0="op-token",v0="open",ce="punct",f="rel",q0="spacing",p="textord";i(s,o,f,"≡","\\equiv",!0);i(s,o,f,"≺","\\prec",!0);i(s,o,f,"≻","\\succ",!0);i(s,o,f,"∼","\\sim",!0);i(s,o,f,"⊥","\\perp");i(s,o,f,"⪯","\\preceq",!0);i(s,o,f,"⪰","\\succeq",!0);i(s,o,f,"≃","\\simeq",!0);i(s,o,f,"∣","\\mid",!0);i(s,o,f,"≪","\\ll",!0);i(s,o,f,"≫","\\gg",!0);i(s,o,f,"≍","\\asymp",!0);i(s,o,f,"∥","\\parallel");i(s,o,f,"⋈","\\bowtie",!0);i(s,o,f,"⌣","\\smile",!0);i(s,o,f,"⊑","\\sqsubseteq",!0);i(s,o,f,"⊒","\\sqsupseteq",!0);i(s,o,f,"≐","\\doteq",!0);i(s,o,f,"⌢","\\frown",!0);i(s,o,f,"∋","\\ni",!0);i(s,o,f,"∝","\\propto",!0);i(s,o,f,"⊢","\\vdash",!0);i(s,o,f,"⊣","\\dashv",!0);i(s,o,f,"∋","\\owns");i(s,o,ce,".","\\ldotp");i(s,o,ce,"⋅","\\cdotp");i(s,o,ce,"⋅","·");i(w,o,p,"⋅","·");i(s,o,p,"#","\\#");i(w,o,p,"#","\\#");i(s,o,p,"&","\\&");i(w,o,p,"&","\\&");i(s,o,p,"ℵ","\\aleph",!0);i(s,o,p,"∀","\\forall",!0);i(s,o,p,"ℏ","\\hbar",!0);i(s,o,p,"∃","\\exists",!0);i(s,o,p,"∇","\\nabla",!0);i(s,o,p,"♭","\\flat",!0);i(s,o,p,"ℓ","\\ell",!0);i(s,o,p,"♮","\\natural",!0);i(s,o,p,"♣","\\clubsuit",!0);i(s,o,p,"℘","\\wp",!0);i(s,o,p,"♯","\\sharp",!0);i(s,o,p,"♢","\\diamondsuit",!0);i(s,o,p,"ℜ","\\Re",!0);i(s,o,p,"♡","\\heartsuit",!0);i(s,o,p,"ℑ","\\Im",!0);i(s,o,p,"♠","\\spadesuit",!0);i(s,o,p,"§","\\S",!0);i(w,o,p,"§","\\S");i(s,o,p,"¶","\\P",!0);i(w,o,p,"¶","\\P");i(s,o,p,"†","\\dag");i(w,o,p,"†","\\dag");i(w,o,p,"†","\\textdagger");i(s,o,p,"‡","\\ddag");i(w,o,p,"‡","\\ddag");i(w,o,p,"‡","\\textdaggerdbl");i(s,o,o0,"⎱","\\rmoustache",!0);i(s,o,v0,"⎰","\\lmoustache",!0);i(s,o,o0,"⟯","\\rgroup",!0);i(s,o,v0,"⟮","\\lgroup",!0);i(s,o,D,"∓","\\mp",!0);i(s,o,D,"⊖","\\ominus",!0);i(s,o,D,"⊎","\\uplus",!0);i(s,o,D,"⊓","\\sqcap",!0);i(s,o,D,"∗","\\ast");i(s,o,D,"⊔","\\sqcup",!0);i(s,o,D,"◯","\\bigcirc",!0);i(s,o,D,"∙","\\bullet",!0);i(s,o,D,"‡","\\ddagger");i(s,o,D,"≀","\\wr",!0);i(s,o,D,"⨿","\\amalg");i(s,o,D,"&","\\And");i(s,o,f,"⟵","\\longleftarrow",!0);i(s,o,f,"⇐","\\Leftarrow",!0);i(s,o,f,"⟸","\\Longleftarrow",!0);i(s,o,f,"⟶","\\longrightarrow",!0);i(s,o,f,"⇒","\\Rightarrow",!0);i(s,o,f,"⟹","\\Longrightarrow",!0);i(s,o,f,"↔","\\leftrightarrow",!0);i(s,o,f,"⟷","\\longleftrightarrow",!0);i(s,o,f,"⇔","\\Leftrightarrow",!0);i(s,o,f,"⟺","\\Longleftrightarrow",!0);i(s,o,f,"↦","\\mapsto",!0);i(s,o,f,"⟼","\\longmapsto",!0);i(s,o,f,"↗","\\nearrow",!0);i(s,o,f,"↩","\\hookleftarrow",!0);i(s,o,f,"↪","\\hookrightarrow",!0);i(s,o,f,"↘","\\searrow",!0);i(s,o,f,"↼","\\leftharpoonup",!0);i(s,o,f,"⇀","\\rightharpoonup",!0);i(s,o,f,"↙","\\swarrow",!0);i(s,o,f,"↽","\\leftharpoondown",!0);i(s,o,f,"⇁","\\rightharpoondown",!0);i(s,o,f,"↖","\\nwarrow",!0);i(s,o,f,"⇌","\\rightleftharpoons",!0);i(s,d,f,"≮","\\nless",!0);i(s,d,f,"","\\@nleqslant");i(s,d,f,"","\\@nleqq");i(s,d,f,"⪇","\\lneq",!0);i(s,d,f,"≨","\\lneqq",!0);i(s,d,f,"","\\@lvertneqq");i(s,d,f,"⋦","\\lnsim",!0);i(s,d,f,"⪉","\\lnapprox",!0);i(s,d,f,"⊀","\\nprec",!0);i(s,d,f,"⋠","\\npreceq",!0);i(s,d,f,"⋨","\\precnsim",!0);i(s,d,f,"⪹","\\precnapprox",!0);i(s,d,f,"≁","\\nsim",!0);i(s,d,f,"","\\@nshortmid");i(s,d,f,"∤","\\nmid",!0);i(s,d,f,"⊬","\\nvdash",!0);i(s,d,f,"⊭","\\nvDash",!0);i(s,d,f,"⋪","\\ntriangleleft");i(s,d,f,"⋬","\\ntrianglelefteq",!0);i(s,d,f,"⊊","\\subsetneq",!0);i(s,d,f,"","\\@varsubsetneq");i(s,d,f,"⫋","\\subsetneqq",!0);i(s,d,f,"","\\@varsubsetneqq");i(s,d,f,"≯","\\ngtr",!0);i(s,d,f,"","\\@ngeqslant");i(s,d,f,"","\\@ngeqq");i(s,d,f,"⪈","\\gneq",!0);i(s,d,f,"≩","\\gneqq",!0);i(s,d,f,"","\\@gvertneqq");i(s,d,f,"⋧","\\gnsim",!0);i(s,d,f,"⪊","\\gnapprox",!0);i(s,d,f,"⊁","\\nsucc",!0);i(s,d,f,"⋡","\\nsucceq",!0);i(s,d,f,"⋩","\\succnsim",!0);i(s,d,f,"⪺","\\succnapprox",!0);i(s,d,f,"≆","\\ncong",!0);i(s,d,f,"","\\@nshortparallel");i(s,d,f,"∦","\\nparallel",!0);i(s,d,f,"⊯","\\nVDash",!0);i(s,d,f,"⋫","\\ntriangleright");i(s,d,f,"⋭","\\ntrianglerighteq",!0);i(s,d,f,"","\\@nsupseteqq");i(s,d,f,"⊋","\\supsetneq",!0);i(s,d,f,"","\\@varsupsetneq");i(s,d,f,"⫌","\\supsetneqq",!0);i(s,d,f,"","\\@varsupsetneqq");i(s,d,f,"⊮","\\nVdash",!0);i(s,d,f,"⪵","\\precneqq",!0);i(s,d,f,"⪶","\\succneqq",!0);i(s,d,f,"","\\@nsubseteqq");i(s,d,D,"⊴","\\unlhd");i(s,d,D,"⊵","\\unrhd");i(s,d,f,"↚","\\nleftarrow",!0);i(s,d,f,"↛","\\nrightarrow",!0);i(s,d,f,"⇍","\\nLeftarrow",!0);i(s,d,f,"⇏","\\nRightarrow",!0);i(s,d,f,"↮","\\nleftrightarrow",!0);i(s,d,f,"⇎","\\nLeftrightarrow",!0);i(s,d,f,"△","\\vartriangle");i(s,d,p,"ℏ","\\hslash");i(s,d,p,"▽","\\triangledown");i(s,d,p,"◊","\\lozenge");i(s,d,p,"Ⓢ","\\circledS");i(s,d,p,"®","\\circledR");i(w,d,p,"®","\\circledR");i(s,d,p,"∡","\\measuredangle",!0);i(s,d,p,"∄","\\nexists");i(s,d,p,"℧","\\mho");i(s,d,p,"Ⅎ","\\Finv",!0);i(s,d,p,"⅁","\\Game",!0);i(s,d,p,"‵","\\backprime");i(s,d,p,"▲","\\blacktriangle");i(s,d,p,"▼","\\blacktriangledown");i(s,d,p,"■","\\blacksquare");i(s,d,p,"⧫","\\blacklozenge");i(s,d,p,"★","\\bigstar");i(s,d,p,"∢","\\sphericalangle",!0);i(s,d,p,"∁","\\complement",!0);i(s,d,p,"ð","\\eth",!0);i(w,o,p,"ð","ð");i(s,d,p,"╱","\\diagup");i(s,d,p,"╲","\\diagdown");i(s,d,p,"□","\\square");i(s,d,p,"□","\\Box");i(s,d,p,"◊","\\Diamond");i(s,d,p,"¥","\\yen",!0);i(w,d,p,"¥","\\yen",!0);i(s,d,p,"✓","\\checkmark",!0);i(w,d,p,"✓","\\checkmark");i(s,d,p,"ℶ","\\beth",!0);i(s,d,p,"ℸ","\\daleth",!0);i(s,d,p,"ℷ","\\gimel",!0);i(s,d,p,"ϝ","\\digamma",!0);i(s,d,p,"ϰ","\\varkappa");i(s,d,v0,"┌","\\@ulcorner",!0);i(s,d,o0,"┐","\\@urcorner",!0);i(s,d,v0,"└","\\@llcorner",!0);i(s,d,o0,"┘","\\@lrcorner",!0);i(s,d,f,"≦","\\leqq",!0);i(s,d,f,"⩽","\\leqslant",!0);i(s,d,f,"⪕","\\eqslantless",!0);i(s,d,f,"≲","\\lesssim",!0);i(s,d,f,"⪅","\\lessapprox",!0);i(s,d,f,"≊","\\approxeq",!0);i(s,d,D,"⋖","\\lessdot");i(s,d,f,"⋘","\\lll",!0);i(s,d,f,"≶","\\lessgtr",!0);i(s,d,f,"⋚","\\lesseqgtr",!0);i(s,d,f,"⪋","\\lesseqqgtr",!0);i(s,d,f,"≑","\\doteqdot");i(s,d,f,"≓","\\risingdotseq",!0);i(s,d,f,"≒","\\fallingdotseq",!0);i(s,d,f,"∽","\\backsim",!0);i(s,d,f,"⋍","\\backsimeq",!0);i(s,d,f,"⫅","\\subseteqq",!0);i(s,d,f,"⋐","\\Subset",!0);i(s,d,f,"⊏","\\sqsubset",!0);i(s,d,f,"≼","\\preccurlyeq",!0);i(s,d,f,"⋞","\\curlyeqprec",!0);i(s,d,f,"≾","\\precsim",!0);i(s,d,f,"⪷","\\precapprox",!0);i(s,d,f,"⊲","\\vartriangleleft");i(s,d,f,"⊴","\\trianglelefteq");i(s,d,f,"⊨","\\vDash",!0);i(s,d,f,"⊪","\\Vvdash",!0);i(s,d,f,"⌣","\\smallsmile");i(s,d,f,"⌢","\\smallfrown");i(s,d,f,"≏","\\bumpeq",!0);i(s,d,f,"≎","\\Bumpeq",!0);i(s,d,f,"≧","\\geqq",!0);i(s,d,f,"⩾","\\geqslant",!0);i(s,d,f,"⪖","\\eqslantgtr",!0);i(s,d,f,"≳","\\gtrsim",!0);i(s,d,f,"⪆","\\gtrapprox",!0);i(s,d,D,"⋗","\\gtrdot");i(s,d,f,"⋙","\\ggg",!0);i(s,d,f,"≷","\\gtrless",!0);i(s,d,f,"⋛","\\gtreqless",!0);i(s,d,f,"⪌","\\gtreqqless",!0);i(s,d,f,"≖","\\eqcirc",!0);i(s,d,f,"≗","\\circeq",!0);i(s,d,f,"≜","\\triangleq",!0);i(s,d,f,"∼","\\thicksim");i(s,d,f,"≈","\\thickapprox");i(s,d,f,"⫆","\\supseteqq",!0);i(s,d,f,"⋑","\\Supset",!0);i(s,d,f,"⊐","\\sqsupset",!0);i(s,d,f,"≽","\\succcurlyeq",!0);i(s,d,f,"⋟","\\curlyeqsucc",!0);i(s,d,f,"≿","\\succsim",!0);i(s,d,f,"⪸","\\succapprox",!0);i(s,d,f,"⊳","\\vartriangleright");i(s,d,f,"⊵","\\trianglerighteq");i(s,d,f,"⊩","\\Vdash",!0);i(s,d,f,"∣","\\shortmid");i(s,d,f,"∥","\\shortparallel");i(s,d,f,"≬","\\between",!0);i(s,d,f,"⋔","\\pitchfork",!0);i(s,d,f,"∝","\\varpropto");i(s,d,f,"◀","\\blacktriangleleft");i(s,d,f,"∴","\\therefore",!0);i(s,d,f,"∍","\\backepsilon");i(s,d,f,"▶","\\blacktriangleright");i(s,d,f,"∵","\\because",!0);i(s,d,f,"⋘","\\llless");i(s,d,f,"⋙","\\gggtr");i(s,d,D,"⊲","\\lhd");i(s,d,D,"⊳","\\rhd");i(s,d,f,"≂","\\eqsim",!0);i(s,o,f,"⋈","\\Join");i(s,d,f,"≑","\\Doteq",!0);i(s,d,D,"∔","\\dotplus",!0);i(s,d,D,"∖","\\smallsetminus");i(s,d,D,"⋒","\\Cap",!0);i(s,d,D,"⋓","\\Cup",!0);i(s,d,D,"⩞","\\doublebarwedge",!0);i(s,d,D,"⊟","\\boxminus",!0);i(s,d,D,"⊞","\\boxplus",!0);i(s,d,D,"⋇","\\divideontimes",!0);i(s,d,D,"⋉","\\ltimes",!0);i(s,d,D,"⋊","\\rtimes",!0);i(s,d,D,"⋋","\\leftthreetimes",!0);i(s,d,D,"⋌","\\rightthreetimes",!0);i(s,d,D,"⋏","\\curlywedge",!0);i(s,d,D,"⋎","\\curlyvee",!0);i(s,d,D,"⊝","\\circleddash",!0);i(s,d,D,"⊛","\\circledast",!0);i(s,d,D,"⋅","\\centerdot");i(s,d,D,"⊺","\\intercal",!0);i(s,d,D,"⋒","\\doublecap");i(s,d,D,"⋓","\\doublecup");i(s,d,D,"⊠","\\boxtimes",!0);i(s,d,f,"⇢","\\dashrightarrow",!0);i(s,d,f,"⇠","\\dashleftarrow",!0);i(s,d,f,"⇇","\\leftleftarrows",!0);i(s,d,f,"⇆","\\leftrightarrows",!0);i(s,d,f,"⇚","\\Lleftarrow",!0);i(s,d,f,"↞","\\twoheadleftarrow",!0);i(s,d,f,"↢","\\leftarrowtail",!0);i(s,d,f,"↫","\\looparrowleft",!0);i(s,d,f,"⇋","\\leftrightharpoons",!0);i(s,d,f,"↶","\\curvearrowleft",!0);i(s,d,f,"↺","\\circlearrowleft",!0);i(s,d,f,"↰","\\Lsh",!0);i(s,d,f,"⇈","\\upuparrows",!0);i(s,d,f,"↿","\\upharpoonleft",!0);i(s,d,f,"⇃","\\downharpoonleft",!0);i(s,o,f,"⊶","\\origof",!0);i(s,o,f,"⊷","\\imageof",!0);i(s,d,f,"⊸","\\multimap",!0);i(s,d,f,"↭","\\leftrightsquigarrow",!0);i(s,d,f,"⇉","\\rightrightarrows",!0);i(s,d,f,"⇄","\\rightleftarrows",!0);i(s,d,f,"↠","\\twoheadrightarrow",!0);i(s,d,f,"↣","\\rightarrowtail",!0);i(s,d,f,"↬","\\looparrowright",!0);i(s,d,f,"↷","\\curvearrowright",!0);i(s,d,f,"↻","\\circlearrowright",!0);i(s,d,f,"↱","\\Rsh",!0);i(s,d,f,"⇊","\\downdownarrows",!0);i(s,d,f,"↾","\\upharpoonright",!0);i(s,d,f,"⇂","\\downharpoonright",!0);i(s,d,f,"⇝","\\rightsquigarrow",!0);i(s,d,f,"⇝","\\leadsto");i(s,d,f,"⇛","\\Rrightarrow",!0);i(s,d,f,"↾","\\restriction");i(s,o,p,"‘","`");i(s,o,p,"$","\\$");i(w,o,p,"$","\\$");i(w,o,p,"$","\\textdollar");i(s,o,p,"%","\\%");i(w,o,p,"%","\\%");i(s,o,p,"_","\\_");i(w,o,p,"_","\\_");i(w,o,p,"_","\\textunderscore");i(s,o,p,"∠","\\angle",!0);i(s,o,p,"∞","\\infty",!0);i(s,o,p,"′","\\prime");i(s,o,p,"△","\\triangle");i(s,o,p,"Γ","\\Gamma",!0);i(s,o,p,"Δ","\\Delta",!0);i(s,o,p,"Θ","\\Theta",!0);i(s,o,p,"Λ","\\Lambda",!0);i(s,o,p,"Ξ","\\Xi",!0);i(s,o,p,"Π","\\Pi",!0);i(s,o,p,"Σ","\\Sigma",!0);i(s,o,p,"Υ","\\Upsilon",!0);i(s,o,p,"Φ","\\Phi",!0);i(s,o,p,"Ψ","\\Psi",!0);i(s,o,p,"Ω","\\Omega",!0);i(s,o,p,"A","Α");i(s,o,p,"B","Β");i(s,o,p,"E","Ε");i(s,o,p,"Z","Ζ");i(s,o,p,"H","Η");i(s,o,p,"I","Ι");i(s,o,p,"K","Κ");i(s,o,p,"M","Μ");i(s,o,p,"N","Ν");i(s,o,p,"O","Ο");i(s,o,p,"P","Ρ");i(s,o,p,"T","Τ");i(s,o,p,"X","Χ");i(s,o,p,"¬","\\neg",!0);i(s,o,p,"¬","\\lnot");i(s,o,p,"⊤","\\top");i(s,o,p,"⊥","\\bot");i(s,o,p,"∅","\\emptyset");i(s,d,p,"∅","\\varnothing");i(s,o,E,"α","\\alpha",!0);i(s,o,E,"β","\\beta",!0);i(s,o,E,"γ","\\gamma",!0);i(s,o,E,"δ","\\delta",!0);i(s,o,E,"ϵ","\\epsilon",!0);i(s,o,E,"ζ","\\zeta",!0);i(s,o,E,"η","\\eta",!0);i(s,o,E,"θ","\\theta",!0);i(s,o,E,"ι","\\iota",!0);i(s,o,E,"κ","\\kappa",!0);i(s,o,E,"λ","\\lambda",!0);i(s,o,E,"μ","\\mu",!0);i(s,o,E,"ν","\\nu",!0);i(s,o,E,"ξ","\\xi",!0);i(s,o,E,"ο","\\omicron",!0);i(s,o,E,"π","\\pi",!0);i(s,o,E,"ρ","\\rho",!0);i(s,o,E,"σ","\\sigma",!0);i(s,o,E,"τ","\\tau",!0);i(s,o,E,"υ","\\upsilon",!0);i(s,o,E,"ϕ","\\phi",!0);i(s,o,E,"χ","\\chi",!0);i(s,o,E,"ψ","\\psi",!0);i(s,o,E,"ω","\\omega",!0);i(s,o,E,"ε","\\varepsilon",!0);i(s,o,E,"ϑ","\\vartheta",!0);i(s,o,E,"ϖ","\\varpi",!0);i(s,o,E,"ϱ","\\varrho",!0);i(s,o,E,"ς","\\varsigma",!0);i(s,o,E,"φ","\\varphi",!0);i(s,o,D,"∗","*",!0);i(s,o,D,"+","+");i(s,o,D,"−","-",!0);i(s,o,D,"⋅","\\cdot",!0);i(s,o,D,"∘","\\circ",!0);i(s,o,D,"÷","\\div",!0);i(s,o,D,"±","\\pm",!0);i(s,o,D,"×","\\times",!0);i(s,o,D,"∩","\\cap",!0);i(s,o,D,"∪","\\cup",!0);i(s,o,D,"∖","\\setminus",!0);i(s,o,D,"∧","\\land");i(s,o,D,"∨","\\lor");i(s,o,D,"∧","\\wedge",!0);i(s,o,D,"∨","\\vee",!0);i(s,o,p,"√","\\surd");i(s,o,v0,"⟨","\\langle",!0);i(s,o,v0,"∣","\\lvert");i(s,o,v0,"∥","\\lVert");i(s,o,o0,"?","?");i(s,o,o0,"!","!");i(s,o,o0,"⟩","\\rangle",!0);i(s,o,o0,"∣","\\rvert");i(s,o,o0,"∥","\\rVert");i(s,o,f,"=","=");i(s,o,f,":",":");i(s,o,f,"≈","\\approx",!0);i(s,o,f,"≅","\\cong",!0);i(s,o,f,"≥","\\ge");i(s,o,f,"≥","\\geq",!0);i(s,o,f,"←","\\gets");i(s,o,f,">","\\gt",!0);i(s,o,f,"∈","\\in",!0);i(s,o,f,"","\\@not");i(s,o,f,"⊂","\\subset",!0);i(s,o,f,"⊃","\\supset",!0);i(s,o,f,"⊆","\\subseteq",!0);i(s,o,f,"⊇","\\supseteq",!0);i(s,d,f,"⊈","\\nsubseteq",!0);i(s,d,f,"⊉","\\nsupseteq",!0);i(s,o,f,"⊨","\\models");i(s,o,f,"←","\\leftarrow",!0);i(s,o,f,"≤","\\le");i(s,o,f,"≤","\\leq",!0);i(s,o,f,"<","\\lt",!0);i(s,o,f,"→","\\rightarrow",!0);i(s,o,f,"→","\\to");i(s,d,f,"≱","\\ngeq",!0);i(s,d,f,"≰","\\nleq",!0);i(s,o,q0," ","\\ ");i(s,o,q0," ","\\space");i(s,o,q0," ","\\nobreakspace");i(w,o,q0," ","\\ ");i(w,o,q0," "," ");i(w,o,q0," ","\\space");i(w,o,q0," ","\\nobreakspace");i(s,o,q0,null,"\\nobreak");i(s,o,q0,null,"\\allowbreak");i(s,o,ce,",",",");i(s,o,ce,";",";");i(s,d,D,"⊼","\\barwedge",!0);i(s,d,D,"⊻","\\veebar",!0);i(s,o,D,"⊙","\\odot",!0);i(s,o,D,"⊕","\\oplus",!0);i(s,o,D,"⊗","\\otimes",!0);i(s,o,p,"∂","\\partial",!0);i(s,o,D,"⊘","\\oslash",!0);i(s,d,D,"⊚","\\circledcirc",!0);i(s,d,D,"⊡","\\boxdot",!0);i(s,o,D,"△","\\bigtriangleup");i(s,o,D,"▽","\\bigtriangledown");i(s,o,D,"†","\\dagger");i(s,o,D,"⋄","\\diamond");i(s,o,D,"⋆","\\star");i(s,o,D,"◃","\\triangleleft");i(s,o,D,"▹","\\triangleright");i(s,o,v0,"{","\\{");i(w,o,p,"{","\\{");i(w,o,p,"{","\\textbraceleft");i(s,o,o0,"}","\\}");i(w,o,p,"}","\\}");i(w,o,p,"}","\\textbraceright");i(s,o,v0,"{","\\lbrace");i(s,o,o0,"}","\\rbrace");i(s,o,v0,"[","\\lbrack",!0);i(w,o,p,"[","\\lbrack",!0);i(s,o,o0,"]","\\rbrack",!0);i(w,o,p,"]","\\rbrack",!0);i(s,o,v0,"(","\\lparen",!0);i(s,o,o0,")","\\rparen",!0);i(w,o,p,"<","\\textless",!0);i(w,o,p,">","\\textgreater",!0);i(s,o,v0,"⌊","\\lfloor",!0);i(s,o,o0,"⌋","\\rfloor",!0);i(s,o,v0,"⌈","\\lceil",!0);i(s,o,o0,"⌉","\\rceil",!0);i(s,o,p,"\\","\\backslash");i(s,o,p,"∣","|");i(s,o,p,"∣","\\vert");i(w,o,p,"|","\\textbar",!0);i(s,o,p,"∥","\\|");i(s,o,p,"∥","\\Vert");i(w,o,p,"∥","\\textbardbl");i(w,o,p,"~","\\textasciitilde");i(w,o,p,"\\","\\textbackslash");i(w,o,p,"^","\\textasciicircum");i(s,o,f,"↑","\\uparrow",!0);i(s,o,f,"⇑","\\Uparrow",!0);i(s,o,f,"↓","\\downarrow",!0);i(s,o,f,"⇓","\\Downarrow",!0);i(s,o,f,"↕","\\updownarrow",!0);i(s,o,f,"⇕","\\Updownarrow",!0);i(s,o,e0,"∐","\\coprod");i(s,o,e0,"⋁","\\bigvee");i(s,o,e0,"⋀","\\bigwedge");i(s,o,e0,"⨄","\\biguplus");i(s,o,e0,"⋂","\\bigcap");i(s,o,e0,"⋃","\\bigcup");i(s,o,e0,"∫","\\int");i(s,o,e0,"∫","\\intop");i(s,o,e0,"∬","\\iint");i(s,o,e0,"∭","\\iiint");i(s,o,e0,"∏","\\prod");i(s,o,e0,"∑","\\sum");i(s,o,e0,"⨂","\\bigotimes");i(s,o,e0,"⨁","\\bigoplus");i(s,o,e0,"⨀","\\bigodot");i(s,o,e0,"∮","\\oint");i(s,o,e0,"∯","\\oiint");i(s,o,e0,"∰","\\oiiint");i(s,o,e0,"⨆","\\bigsqcup");i(s,o,e0,"∫","\\smallint");i(w,o,ie,"…","\\textellipsis");i(s,o,ie,"…","\\mathellipsis");i(w,o,ie,"…","\\ldots",!0);i(s,o,ie,"…","\\ldots",!0);i(s,o,ie,"⋯","\\@cdots",!0);i(s,o,ie,"⋱","\\ddots",!0);i(s,o,p,"⋮","\\varvdots");i(w,o,p,"⋮","\\varvdots");i(s,o,j,"ˊ","\\acute");i(s,o,j,"ˋ","\\grave");i(s,o,j,"¨","\\ddot");i(s,o,j,"~","\\tilde");i(s,o,j,"ˉ","\\bar");i(s,o,j,"˘","\\breve");i(s,o,j,"ˇ","\\check");i(s,o,j,"^","\\hat");i(s,o,j,"⃗","\\vec");i(s,o,j,"˙","\\dot");i(s,o,j,"˚","\\mathring");i(s,o,E,"","\\@imath");i(s,o,E,"","\\@jmath");i(s,o,p,"ı","ı");i(s,o,p,"ȷ","ȷ");i(w,o,p,"ı","\\i",!0);i(w,o,p,"ȷ","\\j",!0);i(w,o,p,"ß","\\ss",!0);i(w,o,p,"æ","\\ae",!0);i(w,o,p,"œ","\\oe",!0);i(w,o,p,"ø","\\o",!0);i(w,o,p,"Æ","\\AE",!0);i(w,o,p,"Œ","\\OE",!0);i(w,o,p,"Ø","\\O",!0);i(w,o,j,"ˊ","\\'");i(w,o,j,"ˋ","\\`");i(w,o,j,"ˆ","\\^");i(w,o,j,"˜","\\~");i(w,o,j,"ˉ","\\=");i(w,o,j,"˘","\\u");i(w,o,j,"˙","\\.");i(w,o,j,"¸","\\c");i(w,o,j,"˚","\\r");i(w,o,j,"ˇ","\\v");i(w,o,j,"¨",'\\"');i(w,o,j,"˝","\\H");i(w,o,j,"◯","\\textcircled");var Nr={"--":!0,"---":!0,"``":!0,"''":!0};i(w,o,p,"–","--",!0);i(w,o,p,"–","\\textendash");i(w,o,p,"—","---",!0);i(w,o,p,"—","\\textemdash");i(w,o,p,"‘","`",!0);i(w,o,p,"‘","\\textquoteleft");i(w,o,p,"’","'",!0);i(w,o,p,"’","\\textquoteright");i(w,o,p,"“","``",!0);i(w,o,p,"“","\\textquotedblleft");i(w,o,p,"”","''",!0);i(w,o,p,"”","\\textquotedblright");i(s,o,p,"°","\\degree",!0);i(w,o,p,"°","\\degree");i(w,o,p,"°","\\textdegree",!0);i(s,o,p,"£","\\pounds");i(s,o,p,"£","\\mathsterling",!0);i(w,o,p,"£","\\pounds");i(w,o,p,"£","\\textsterling",!0);i(s,d,p,"✠","\\maltese");i(w,d,p,"✠","\\maltese");var er='0123456789/@."';for(var Qe=0;Qe{var t=r.charCodeAt(0),a=r.charCodeAt(1),n=(t-55296)*1024+(a-56320)+65536,l=e==="math"?0:1;if(119808<=n&&n<120484){var u=Math.floor((n-119808)/26);return[Se[u][2],Se[u][l]]}else if(120782<=n&&n<=120831){var h=Math.floor((n-120782)/10);return[nr[h][2],nr[h][l]]}else{if(n===120485||n===120486)return[Se[0][2],Se[0][l]];if(1204860)return s0(l,v,n,t,u.concat(g));if(c){var b,y;if(c==="boldsymbol"){var x=va(l,n,t,u,a);b=x.fontName,y=[x.fontClass]}else h?(b=bt[c].fontName,y=[c]):(b=ze(c,t.fontWeight,t.fontShape),y=[c,t.fontWeight,t.fontShape]);if(He(l,b,n).metrics)return s0(l,b,n,t,u.concat(y));if(Nr.hasOwnProperty(l)&&b.slice(0,10)==="Typewriter"){for(var M=[],T=0;T{if(L0(r.classes)!==L0(e.classes)||r.skew!==e.skew||r.maxFontSize!==e.maxFontSize||r.italic!==0&&r.hasClass("mathnormal"))return!1;if(r.classes.length===1){var t=r.classes[0];if(t==="mbin"||t==="mord")return!1}for(var a of Object.keys(r.style))if(r.style[a]!==e.style[a])return!1;for(var n of Object.keys(e.style))if(r.style[n]!==e.style[n])return!1;return!0},Or=r=>{for(var e=0;et&&(t=u.height),u.depth>a&&(a=u.depth),u.maxFontSize>n&&(n=u.maxFontSize)}e.height=t,e.depth=a,e.maxFontSize=n},k=function(e,t,a,n){var l=new ne(e,t,a,n);return Et(l),l},G0=(r,e,t,a)=>new ne(r,e,t,a),te=function(e,t,a){var n=k([e],[],t);return n.height=Math.max(a||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=A(n.height),n.maxFontSize=1,n},ga=function(e,t,a,n){var l=new Oe(e,t,a,n);return Et(l),l},E0=function(e){var t=new ae(e);return Et(t),t},re=function(e,t){return e instanceof ae?k([],[e],t):e},ba=function(e){if(e.positionType==="individualShift"){for(var t=e.children,a=[t[0]],n=-t[0].shift-t[0].elem.depth,l=n,u=1;u{var t=k(["mspace"],[],e),a=K(r,e);return t.style.marginRight=A(a),t},ze=function(e,t,a){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}var l;return t==="textbf"&&a==="textit"?l="BoldItalic":t==="textbf"?l="Bold":t==="textit"?l="Italic":l="Regular",n+"-"+l},bt={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Fr={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Lr=function(e,t){var[a,n,l]=Fr[e],u=new P0(a),h=new D0([u],{width:A(n),height:A(l),style:"width:"+A(n),viewBox:"0 0 "+1e3*n+" "+1e3*l,preserveAspectRatio:"xMinYMin"}),c=G0(["overlay"],[h],t);return c.height=l,c.style.height=A(l),c.style.width=A(n),c},Z={number:3,unit:"mu"},W0={number:4,unit:"mu"},M0={number:5,unit:"mu"},ya={mord:{mop:Z,mbin:W0,mrel:M0,minner:Z},mop:{mord:Z,mop:Z,mrel:M0,minner:Z},mbin:{mord:W0,mop:W0,mopen:W0,minner:W0},mrel:{mord:M0,mop:M0,mopen:M0,minner:M0},mopen:{},mclose:{mop:Z,mbin:W0,mrel:M0,minner:Z},mpunct:{mord:Z,mop:Z,mrel:M0,mopen:Z,mclose:Z,mpunct:Z,minner:Z},minner:{mord:Z,mop:Z,mbin:W0,mrel:M0,mopen:Z,mpunct:Z,minner:Z}},xa={mord:{mop:Z},mop:{mord:Z,mop:Z},mbin:{},mrel:{},mopen:{},mclose:{mop:Z},mpunct:{},minner:{mop:Z}},Pr={},Re={},Ie={};function B(r){for(var{type:e,names:t,props:a,handler:n,htmlBuilder:l,mathmlBuilder:u}=r,h={type:e,numArgs:a.numArgs,argTypes:a.argTypes,allowedInArgument:!!a.allowedInArgument,allowedInText:!!a.allowedInText,allowedInMath:a.allowedInMath===void 0?!0:a.allowedInMath,numOptionalArgs:a.numOptionalArgs||0,infix:!!a.infix,primitive:!!a.primitive,handler:n},c=0;c{var C=T.classes[0],q=M.classes[0];C==="mbin"&&ka.has(q)?T.classes[0]="mord":q==="mbin"&&wa.has(C)&&(M.classes[0]="mord")},{node:b},y,x),yt(l,(M,T)=>{var C,q,I=wt(T),O=wt(M),F=I&&O?M.hasClass("mtight")?(C=xa[I])==null?void 0:C[O]:(q=ya[I])==null?void 0:q[O]:null;if(F)return Hr(F,v)},{node:b},y,x),l},yt=function(e,t,a,n,l){n&&e.push(n);for(var u=0;uy=>{e.splice(b+1,0,y),u++})(u)}n&&e.pop()},Gr=function(e){return e instanceof ae||e instanceof Oe||e instanceof ne&&e.hasClass("enclosing")?e:null},xt=function(e,t){var a=Gr(e);if(a){var n=a.children;if(n.length){if(t==="right")return xt(n[n.length-1],"right");if(t==="left")return xt(n[0],"left")}}return e},wt=function(e,t){if(!e)return null;t&&(e=xt(e,t));var a=e.classes[0];return za[a]||null},me=function(e,t){var a=["nulldelimiter"].concat(e.baseSizingClasses());return k(t.concat(a))},U=function(e,t,a){if(!e)return k();if(Re[e.type]){var n=Re[e.type](e,t);if(a&&t.size!==a.size){n=k(t.sizingClasses(a),[n],t);var l=t.sizeMultiplier/a.sizeMultiplier;n.height*=l,n.depth*=l}return n}else throw new S("Got group of unknown type: '"+e.type+"'")};function Ae(r,e){var t=k(["base"],r,e),a=k(["strut"]);return a.style.height=A(t.height+t.depth),t.depth&&(a.style.verticalAlign=A(-t.depth)),t.children.unshift(a),t}function kt(r,e){var t=null;r.length===1&&r[0].type==="tag"&&(t=r[0].tag,r=r[0].body);var a=a0(r,e,"root"),n;a.length===2&&a[1].hasClass("tag")&&(n=a.pop());for(var l=[],u=[],h=0;h0&&(l.push(Ae(u,e)),u=[]),l.push(a[h]));u.length>0&&l.push(Ae(u,e));var v;t?(v=Ae(a0(t,e,!0),e),v.classes=["tag"],l.push(v)):n&&l.push(n);var g=k(["katex-html"],l);if(g.setAttribute("aria-hidden","true"),v){var b=v.children[0];b.style.height=A(g.height+g.depth),g.depth&&(b.style.verticalAlign=A(-g.depth))}return g}function Ur(r){return new ae(r)}class z{constructor(e,t,a){this.type=e,this.attributes={},this.children=t||[],this.classes=a||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=L0(this.classes));for(var a=0;a0&&(e+=' class ="'+n0(L0(this.classes))+'"'),e+=">";for(var a=0;a",e}toText(){return this.children.map(e=>e.toText()).join("")}}class _{constructor(e){this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return n0(this.toText())}toText(){return this.text}}class Vr{constructor(e){this.width=e,e>=.05555&&e<=.05556?this.character=" ":e>=.1666&&e<=.1667?this.character=" ":e>=.2222&&e<=.2223?this.character=" ":e>=.2777&&e<=.2778?this.character="  ":e>=-.05556&&e<=-.05555?this.character=" ⁣":e>=-.1667&&e<=-.1666?this.character=" ⁣":e>=-.2223&&e<=-.2222?this.character=" ⁣":e>=-.2778&&e<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",A(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var Aa=new Set(["\\imath","\\jmath"]),Ma=new Set(["mrow","mtable"]),b0=function(e,t,a){return $[t][e]&&$[t][e].replace&&e.charCodeAt(0)!==55349&&!(Nr.hasOwnProperty(e)&&a&&(a.fontFamily&&a.fontFamily.slice(4,6)==="tt"||a.font&&a.font.slice(4,6)==="tt"))&&(e=$[t][e].replace),new _(e)},Rt=function(e){return e.length===1?e[0]:new z("mrow",e)},It=function(e,t){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold";var a=t.font;if(!a||a==="mathnormal")return null;var n=e.mode;if(a==="mathit")return"italic";if(a==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(a==="mathbf")return"bold";if(a==="mathbb")return"double-struck";if(a==="mathsfit")return"sans-serif-italic";if(a==="mathfrak")return"fraktur";if(a==="mathscr"||a==="mathcal")return"script";if(a==="mathsf")return"sans-serif";if(a==="mathtt")return"monospace";var l=e.text;if(Aa.has(l))return null;if($[n][l]){var u=$[n][l].replace;u&&(l=u)}var h=bt[a].fontName;return Ct(l,h,n)?bt[a].variant:null};function rt(r){if(!r)return!1;if(r.type==="mi"&&r.children.length===1){var e=r.children[0];return e instanceof _&&e.text==="."}else if(r.type==="mo"&&r.children.length===1&&r.getAttribute("separator")==="true"&&r.getAttribute("lspace")==="0em"&&r.getAttribute("rspace")==="0em"){var t=r.children[0];return t instanceof _&&t.text===","}else return!1}var p0=function(e,t,a){if(e.length===1){var n=Y(e[0],t);return a&&n instanceof z&&n.type==="mo"&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var l=[],u,h=0;h=1&&(u.type==="mn"||rt(u))){var v=c.children[0];v instanceof z&&v.type==="mn"&&(v.children=[...u.children,...v.children],l.pop())}else if(u.type==="mi"&&u.children.length===1){var g=u.children[0];if(g instanceof _&&g.text==="̸"&&(c.type==="mo"||c.type==="mi"||c.type==="mn")){var b=c.children[0];b instanceof _&&b.text.length>0&&(b.text=b.text.slice(0,1)+"̸"+b.text.slice(1),l.pop())}}}l.push(c),u=c}return l},U0=function(e,t,a){return Rt(p0(e,t,a))},Y=function(e,t){if(!e)return new z("mrow");if(Ie[e.type]){var a=Ie[e.type](e,t);return a}else throw new S("Got group of unknown type: '"+e.type+"'")};function ir(r,e,t,a,n){var l=p0(r,t),u;l.length===1&&l[0]instanceof z&&Ma.has(l[0].type)?u=l[0]:u=new z("mrow",l);var h=new z("annotation",[new _(e)]);h.setAttribute("encoding","application/x-tex");var c=new z("semantics",[u,h]),v=new z("math",[c]);v.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&v.setAttribute("display","block");var g=n?"katex":"katex-mathml";return k([g],[v])}var Ta=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],lr=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],sr=function(e,t){return t.size<2?e:Ta[e-1][t.size-1]};class T0{constructor(e){this.style=e.style,this.color=e.color,this.size=e.size||T0.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=lr[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};return Object.assign(t,e),new T0(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:sr(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:lr[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=sr(T0.BASESIZE,e);return this.size===t&&this.textSize===T0.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==T0.BASESIZE?["sizing","reset-size"+this.size,"size"+T0.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=ma(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}T0.BASESIZE=6;var Xr=function(e){return new T0({style:e.displayMode?N.DISPLAY:N.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Yr=function(e,t){if(t.displayMode){var a=["katex-display"];t.leqno&&a.push("leqno"),t.fleqn&&a.push("fleqn"),e=k(a,[e])}return e},Ba=function(e,t,a){var n=Xr(a),l;if(a.output==="mathml")return ir(e,t,n,a.displayMode,!0);if(a.output==="html"){var u=kt(e,n);l=k(["katex"],[u])}else{var h=ir(e,t,n,a.displayMode,!1),c=kt(e,n);l=k(["katex"],[h,c])}return Yr(l,a)},Da=function(e,t,a){var n=Xr(a),l=kt(e,n),u=k(["katex"],[l]);return Yr(u,a)},Ca={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",underbracket:"⎵",overbracket:"⎴",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},Le=function(e){var t=new z("mo",[new _(Ca[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},qa={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overbracket:[["leftbracketover","rightbracketover"],1.6,440],underbracket:[["leftbracketunder","rightbracketunder"],1.6,410],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Ea=new Set(["widehat","widecheck","widetilde","utilde"]),Pe=function(e,t){function a(){var h=4e5,c=e.label.slice(1);if(Ea.has(c)){var v=e,g=v.base.type==="ordgroup"?v.base.body.length:1,b,y,x;if(g>5)c==="widehat"||c==="widecheck"?(b=420,h=2364,x=.42,y=c+"4"):(b=312,h=2340,x=.34,y="tilde4");else{var M=[1,1,2,2,3,3][g];c==="widehat"||c==="widecheck"?(h=[0,1062,2364,2364,2364][M],b=[0,239,300,360,420][M],x=[0,.24,.3,.3,.36,.42][M],y=c+M):(h=[0,600,1033,2339,2340][M],b=[0,260,286,306,312][M],x=[0,.26,.286,.3,.306,.34][M],y="tilde"+M)}var T=new P0(y),C=new D0([T],{width:"100%",height:A(x),viewBox:"0 0 "+h+" "+b,preserveAspectRatio:"none"});return{span:G0([],[C],t),minWidth:0,height:x}}else{var q=[],I=qa[c],[O,F,V]=I,L=V/1e3,P=O.length,W,X;if(P===1){var h0=I[3];W=["hide-tail"],X=[h0]}else if(P===2)W=["halfarrow-left","halfarrow-right"],X=["xMinYMin","xMaxYMin"];else if(P===3)W=["brace-left","brace-center","brace-right"],X=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support - `+P+" children.");for(var i0=0;i00&&(n.style.minWidth=A(l)),n},Ra=function(e,t,a,n,l){var u,h=e.height+e.depth+a+n;if(/fbox|color|angl/.test(t)){if(u=k(["stretchy",t],[],l),t==="fbox"){var c=l.color&&l.getColor();c&&(u.style.borderColor=c)}}else{var v=[];/^[bx]cancel$/.test(t)&&v.push(new pt({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&v.push(new pt({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var g=new D0(v,{width:"100%",height:A(h)});u=G0([],[g],l)}return u.height=h,u.style.height=A(h),u};function H(r,e){if(!r||r.type!==e)throw new Error("Expected node of type "+e+", but got "+(r?"node of type "+r.type:String(r)));return r}function Ge(r){var e=Ue(r);if(!e)throw new Error("Expected node of symbol group type, but got "+(r?"node of type "+r.type:String(r)));return e}function Ue(r){return r&&(r.type==="atom"||da.hasOwnProperty(r.type))?r:null}var Wr=r=>{if(r instanceof f0)return r;if(oa(r)&&r.children.length===1)return Wr(r.children[0])},Nt=(r,e)=>{var t,a,n;r&&r.type==="supsub"?(a=H(r.base,"accent"),t=a.base,r.base=t,n=ua(U(r,e)),r.base=a):(a=H(r,"accent"),t=a.base);var l=U(t,e.havingCrampedStyle()),u=a.isShifty&&C0(t),h=0;if(u){var c,v;h=(c=(v=Wr(l))==null?void 0:v.skew)!=null?c:0}var g=a.label==="\\c",b=g?l.height+l.depth:Math.min(l.height,e.fontMetrics().xHeight),y;if(a.isStretchy)y=Pe(a,e),y=G({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"elem",elem:y,wrapperClasses:["svg-align"],wrapperStyle:h>0?{width:"calc(100% - "+A(2*h)+")",marginLeft:A(2*h)}:void 0}]});else{var x,M;a.label==="\\vec"?(x=Lr("vec",e),M=Fr.vec[1]):(x=Fe({mode:a.mode,text:a.label},e,"textord"),x=sa(x),x.italic=0,M=x.width,g&&(b+=x.depth)),y=k(["accent-body"],[x]);var T=a.label==="\\textcircled";T&&(y.classes.push("accent-full"),b=l.height);var C=h;T||(C-=M/2),y.style.left=A(C),a.label==="\\textcircled"&&(y.style.top=".2em"),y=G({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:-b},{type:"elem",elem:y}]})}var q=k(["mord","accent"],[y],e);return n?(n.children[0]=q,n.height=Math.max(q.height,n.height),n.classes[0]="mord",n):q},$r=(r,e)=>{var t=r.isStretchy?Le(r.label):new z("mo",[b0(r.label,r.mode)]),a=new z("mover",[Y(r.base,e),t]);return a.setAttribute("accent","true"),a},Ia=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(r=>"\\"+r).join("|"));B({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(r,e)=>{var t=Ne(e[0]),a=!Ia.test(r.funcName),n=!a||r.funcName==="\\widehat"||r.funcName==="\\widetilde"||r.funcName==="\\widecheck";return{type:"accent",mode:r.parser.mode,label:r.funcName,isStretchy:a,isShifty:n,base:t}},htmlBuilder:Nt,mathmlBuilder:$r});B({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(r,e)=>{var t=e[0],a=r.parser.mode;return a==="math"&&(r.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+r.funcName+" works only in text mode"),a="text"),{type:"accent",mode:a,label:r.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:Nt,mathmlBuilder:$r});B({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"accentUnder",mode:t.mode,label:a,base:n}},htmlBuilder:(r,e)=>{var t=U(r.base,e),a=Pe(r,e),n=r.label==="\\utilde"?.12:0,l=G({positionType:"top",positionData:t.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:t}]});return k(["mord","accentunder"],[l],e)},mathmlBuilder:(r,e)=>{var t=Le(r.label),a=new z("munder",[Y(r.base,e),t]);return a.setAttribute("accentunder","true"),a}});var Me=r=>{var e=new z("mpadded",r?[r]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};B({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:a,funcName:n}=r;return{type:"xArrow",mode:a.mode,label:n,body:e[0],below:t[0]}},htmlBuilder(r,e){var t=e.style,a=e.havingStyle(t.sup()),n=re(U(r.body,a,e),e),l=r.label.slice(0,2)==="\\x"?"x":"cd";n.classes.push(l+"-arrow-pad");var u;r.below&&(a=e.havingStyle(t.sub()),u=re(U(r.below,a,e),e),u.classes.push(l+"-arrow-pad"));var h=Pe(r,e),c=-e.fontMetrics().axisHeight+.5*h.height,v=-e.fontMetrics().axisHeight-.5*h.height-.111;(n.depth>.25||r.label==="\\xleftequilibrium")&&(v-=n.depth);var g;if(u){var b=-e.fontMetrics().axisHeight+u.height+.5*h.height+.111;g=G({positionType:"individualShift",children:[{type:"elem",elem:n,shift:v},{type:"elem",elem:h,shift:c},{type:"elem",elem:u,shift:b}]})}else g=G({positionType:"individualShift",children:[{type:"elem",elem:n,shift:v},{type:"elem",elem:h,shift:c}]});return g.children[0].children[0].children[1].classes.push("svg-align"),k(["mrel","x-arrow"],[g],e)},mathmlBuilder(r,e){var t=Le(r.label);t.setAttribute("minsize",r.label.charAt(0)==="x"?"1.75em":"3.0em");var a;if(r.body){var n=Me(Y(r.body,e));if(r.below){var l=Me(Y(r.below,e));a=new z("munderover",[t,l,n])}else a=new z("mover",[t,n])}else if(r.below){var u=Me(Y(r.below,e));a=new z("munder",[t,u])}else a=Me(),a=new z("mover",[t,a]);return a}});function jr(r,e){var t=a0(r.body,e,!0);return k([r.mclass],t,e)}function Zr(r,e){var t,a=p0(r.body,e);return r.mclass==="minner"?t=new z("mpadded",a):r.mclass==="mord"?r.isCharacterBox?(t=a[0],t.type="mi"):t=new z("mi",a):(r.isCharacterBox?(t=a[0],t.type="mo"):t=new z("mo",a),r.mclass==="mbin"?(t.attributes.lspace="0.22em",t.attributes.rspace="0.22em"):r.mclass==="mpunct"?(t.attributes.lspace="0em",t.attributes.rspace="0.17em"):r.mclass==="mopen"||r.mclass==="mclose"?(t.attributes.lspace="0em",t.attributes.rspace="0em"):r.mclass==="minner"&&(t.attributes.lspace="0.0556em",t.attributes.width="+0.1111em")),t}B({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"mclass",mode:t.mode,mclass:"m"+a.slice(5),body:Q(n),isCharacterBox:C0(n)}},htmlBuilder:jr,mathmlBuilder:Zr});var Ve=r=>{var e=r.type==="ordgroup"&&r.body.length?r.body[0]:r;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};B({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(r,e){var{parser:t}=r;return{type:"mclass",mode:t.mode,mclass:Ve(e[0]),body:Q(e[1]),isCharacterBox:C0(e[1])}}});B({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(r,e){var{parser:t,funcName:a}=r,n=e[1],l=e[0],u;a!=="\\stackrel"?u=Ve(n):u="mrel";var h={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:a!=="\\stackrel",body:Q(n)},c={type:"supsub",mode:l.mode,base:h,sup:a==="\\underset"?null:l,sub:a==="\\underset"?l:null};return{type:"mclass",mode:t.mode,mclass:u,body:[c],isCharacterBox:C0(c)}},htmlBuilder:jr,mathmlBuilder:Zr});B({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"pmb",mode:t.mode,mclass:Ve(e[0]),body:Q(e[0])}},htmlBuilder(r,e){var t=a0(r.body,e,!0),a=k([r.mclass],t,e);return a.style.textShadow="0.02em 0.01em 0.04px",a},mathmlBuilder(r,e){var t=p0(r.body,e),a=new z("mstyle",t);return a.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),a}});var Na={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},ur=()=>({type:"styling",body:[],mode:"math",style:"display"}),or=r=>r.type==="textord"&&r.text==="@",Oa=(r,e)=>(r.type==="mathord"||r.type==="atom")&&r.text===e;function Ha(r,e,t){var a=Na[r];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return t.callFunction(a,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var n=t.callFunction("\\\\cdleft",[e[0]],[]),l={type:"atom",text:a,mode:"math",family:"rel"},u=t.callFunction("\\Big",[l],[]),h=t.callFunction("\\\\cdright",[e[1]],[]),c={type:"ordgroup",mode:"math",body:[n,u,h]};return t.callFunction("\\\\cdparent",[c],[])}case"\\\\cdlongequal":return t.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var v={type:"textord",text:"\\Vert",mode:"math"};return t.callFunction("\\Big",[v],[])}default:return{type:"textord",text:" ",mode:"math"}}}function Fa(r){var e=[];for(r.gullet.beginGroup(),r.gullet.macros.set("\\cr","\\\\\\relax"),r.gullet.beginGroup();;){e.push(r.parseExpression(!1,"\\\\")),r.gullet.endGroup(),r.gullet.beginGroup();var t=r.fetch().text;if(t==="&"||t==="\\\\")r.consume();else if(t==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new S("Expected \\\\ or \\cr or \\end",r.nextToken)}for(var a=[],n=[a],l=0;lAV".includes(v))for(var b=0;b<2;b++){for(var y=!0,x=c+1;xAV=|." after @',u[c]);var M=Ha(v,g,r),T={type:"styling",body:[M],mode:"math",style:"display"};a.push(T),h=ur()}l%2===0?a.push(h):a.shift(),a=[],n.push(a)}r.gullet.endGroup(),r.gullet.endGroup();var C=new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:C,colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}B({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r;return{type:"cdlabel",mode:t.mode,side:a.slice(4),label:e[0]}},htmlBuilder(r,e){var t=e.havingStyle(e.style.sup()),a=re(U(r.label,t,e),e);return a.classes.push("cd-label-"+r.side),a.style.bottom=A(.8-a.depth),a.height=0,a.depth=0,a},mathmlBuilder(r,e){var t=new z("mrow",[Y(r.label,e)]);return t=new z("mpadded",[t]),t.setAttribute("width","0"),r.side==="left"&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),t=new z("mstyle",[t]),t.setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}});B({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(r,e){var{parser:t}=r;return{type:"cdlabelparent",mode:t.mode,fragment:e[0]}},htmlBuilder(r,e){var t=re(U(r.fragment,e),e);return t.classes.push("cd-vert-arrow"),t},mathmlBuilder(r,e){return new z("mrow",[Y(r.fragment,e)])}});B({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(r,e){for(var{parser:t}=r,a=H(e[0],"ordgroup"),n=a.body,l="",u=0;u=1114111)throw new S("\\@char with invalid code point "+l);return c<=65535?v=String.fromCharCode(c):(c-=65536,v=String.fromCharCode((c>>10)+55296,(c&1023)+56320)),{type:"textord",mode:t.mode,text:v}}});var Kr=(r,e)=>{var t=a0(r.body,e.withColor(r.color),!1);return E0(t)},Jr=(r,e)=>{var t=p0(r.body,e.withColor(r.color)),a=new z("mstyle",t);return a.setAttribute("mathcolor",r.color),a};B({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(r,e){var{parser:t}=r,a=H(e[0],"color-token").color,n=e[1];return{type:"color",mode:t.mode,color:a,body:Q(n)}},htmlBuilder:Kr,mathmlBuilder:Jr});B({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(r,e){var{parser:t,breakOnTokenText:a}=r,n=H(e[0],"color-token").color;t.gullet.macros.set("\\current@color",n);var l=t.parseExpression(!0,a);return{type:"color",mode:t.mode,color:n,body:l}},htmlBuilder:Kr,mathmlBuilder:Jr});B({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(r,e,t){var{parser:a}=r,n=a.gullet.future().text==="["?a.parseSizeGroup(!0):null,l=!a.settings.displayMode||!a.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:a.mode,newLine:l,size:n&&H(n,"size").value}},htmlBuilder(r,e){var t=k(["mspace"],[],e);return r.newLine&&(t.classes.push("newline"),r.size&&(t.style.marginTop=A(K(r.size,e)))),t},mathmlBuilder(r,e){var t=new z("mspace");return r.newLine&&(t.setAttribute("linebreak","newline"),r.size&&t.setAttribute("height",A(K(r.size,e)))),t}});var St={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Qr=r=>{var e=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new S("Expected a control sequence",r);return e},La=r=>{var e=r.gullet.popToken();return e.text==="="&&(e=r.gullet.popToken(),e.text===" "&&(e=r.gullet.popToken())),e},_r=(r,e,t,a)=>{var n=r.gullet.macros.get(t.text);n==null&&(t.noexpand=!0,n={tokens:[t],numArgs:0,unexpandable:!r.gullet.isExpandable(t.text)}),r.gullet.macros.set(e,n,a)};B({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(r){var{parser:e,funcName:t}=r;e.consumeSpaces();var a=e.fetch();if(St[a.text])return(t==="\\global"||t==="\\\\globallong")&&(a.text=St[a.text]),H(e.parseFunction(),"internal");throw new S("Invalid token after macro prefix",a)}});B({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=e.gullet.popToken(),n=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new S("Expected a control sequence",a);for(var l=0,u,h=[[]];e.gullet.future().text!=="{";)if(a=e.gullet.popToken(),a.text==="#"){if(e.gullet.future().text==="{"){u=e.gullet.future(),h[l].push("{");break}if(a=e.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new S('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==l+1)throw new S('Argument number "'+a.text+'" out of order');l++,h.push([])}else{if(a.text==="EOF")throw new S("Expected a macro definition");h[l].push(a.text)}var{tokens:c}=e.gullet.consumeArg();return u&&c.unshift(u),(t==="\\edef"||t==="\\xdef")&&(c=e.gullet.expandTokens(c),c.reverse()),e.gullet.macros.set(n,{tokens:c,numArgs:l,delimiters:h},t===St[t]),{type:"internal",mode:e.mode}}});B({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=Qr(e.gullet.popToken());e.gullet.consumeSpaces();var n=La(e);return _r(e,a,n,t==="\\\\globallet"),{type:"internal",mode:e.mode}}});B({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,a=Qr(e.gullet.popToken()),n=e.gullet.popToken(),l=e.gullet.popToken();return _r(e,a,l,t==="\\\\globalfuture"),e.gullet.pushToken(l),e.gullet.pushToken(n),{type:"internal",mode:e.mode}}});var ue=function(e,t,a){var n=$.math[e]&&$.math[e].replace,l=Ct(n||e,t,a);if(!l)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return l},Ot=function(e,t,a,n){var l=a.havingBaseStyle(t),u=k(n.concat(l.sizingClasses(a)),[e],a),h=l.sizeMultiplier/a.sizeMultiplier;return u.height*=h,u.depth*=h,u.maxFontSize=l.sizeMultiplier,u},e1=function(e,t,a){var n=t.havingBaseStyle(a),l=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=A(l),e.height-=l,e.depth+=l},Pa=function(e,t,a,n,l,u){var h=s0(e,"Main-Regular",l,n),c=Ot(h,t,n,u);return e1(c,n,t),c},Ga=function(e,t,a,n){return s0(e,"Size"+t+"-Regular",a,n)},t1=function(e,t,a,n,l,u){var h=Ga(e,t,l,n),c=Ot(k(["delimsizing","size"+t],[h],n),N.TEXT,n,u);return a&&e1(c,n,N.TEXT),c},at=function(e,t,a){var n;t==="Size1-Regular"?n="delim-size1":n="delim-size4";var l=k(["delimsizinginner",n],[k([],[s0(e,t,a)])]);return{type:"elem",elem:l}},nt=function(e,t,a){var n=k0["Size4-Regular"][e.charCodeAt(0)]?k0["Size4-Regular"][e.charCodeAt(0)][4]:k0["Size1-Regular"][e.charCodeAt(0)][4],l=new P0("inner",ta(e,Math.round(1e3*t))),u=new D0([l],{width:A(n),height:A(t),style:"width:"+A(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),h=G0([],[u],a);return h.height=t,h.style.height=A(t),h.style.width=A(n),{type:"elem",elem:h}},zt=.008,Te={type:"kern",size:-1*zt},Ua=new Set(["|","\\lvert","\\rvert","\\vert"]),Va=new Set(["\\|","\\lVert","\\rVert","\\Vert"]),r1=function(e,t,a,n,l,u){var h,c,v,g,b="",y=0;h=v=g=e,c=null;var x="Size1-Regular";e==="\\uparrow"?v=g="⏐":e==="\\Uparrow"?v=g="‖":e==="\\downarrow"?h=v="⏐":e==="\\Downarrow"?h=v="‖":e==="\\updownarrow"?(h="\\uparrow",v="⏐",g="\\downarrow"):e==="\\Updownarrow"?(h="\\Uparrow",v="‖",g="\\Downarrow"):Ua.has(e)?(v="∣",b="vert",y=333):Va.has(e)?(v="∥",b="doublevert",y=556):e==="["||e==="\\lbrack"?(h="⎡",v="⎢",g="⎣",x="Size4-Regular",b="lbrack",y=667):e==="]"||e==="\\rbrack"?(h="⎤",v="⎥",g="⎦",x="Size4-Regular",b="rbrack",y=667):e==="\\lfloor"||e==="⌊"?(v=h="⎢",g="⎣",x="Size4-Regular",b="lfloor",y=667):e==="\\lceil"||e==="⌈"?(h="⎡",v=g="⎢",x="Size4-Regular",b="lceil",y=667):e==="\\rfloor"||e==="⌋"?(v=h="⎥",g="⎦",x="Size4-Regular",b="rfloor",y=667):e==="\\rceil"||e==="⌉"?(h="⎤",v=g="⎥",x="Size4-Regular",b="rceil",y=667):e==="("||e==="\\lparen"?(h="⎛",v="⎜",g="⎝",x="Size4-Regular",b="lparen",y=875):e===")"||e==="\\rparen"?(h="⎞",v="⎟",g="⎠",x="Size4-Regular",b="rparen",y=875):e==="\\{"||e==="\\lbrace"?(h="⎧",c="⎨",g="⎩",v="⎪",x="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(h="⎫",c="⎬",g="⎭",v="⎪",x="Size4-Regular"):e==="\\lgroup"||e==="⟮"?(h="⎧",g="⎩",v="⎪",x="Size4-Regular"):e==="\\rgroup"||e==="⟯"?(h="⎫",g="⎭",v="⎪",x="Size4-Regular"):e==="\\lmoustache"||e==="⎰"?(h="⎧",g="⎭",v="⎪",x="Size4-Regular"):(e==="\\rmoustache"||e==="⎱")&&(h="⎫",g="⎩",v="⎪",x="Size4-Regular");var M=ue(h,x,l),T=M.height+M.depth,C=ue(v,x,l),q=C.height+C.depth,I=ue(g,x,l),O=I.height+I.depth,F=0,V=1;if(c!==null){var L=ue(c,x,l);F=L.height+L.depth,V=2}var P=T+O+F,W=Math.max(0,Math.ceil((t-P)/(V*q))),X=P+W*V*q,h0=n.fontMetrics().axisHeight;a&&(h0*=n.sizeMultiplier);var i0=X/2-h0,t0=[];if(b.length>0){var X0=X-T-O,m0=Math.round(X*1e3),y0=ra(b,Math.round(X0*1e3)),R0=new P0(b,y0),j0=A(y/1e3),Z0=A(m0/1e3),Ze=new D0([R0],{width:j0,height:Z0,viewBox:"0 0 "+y+" "+m0}),I0=G0([],[Ze],n);I0.height=m0/1e3,I0.style.width=j0,I0.style.height=Z0,t0.push({type:"elem",elem:I0})}else{if(t0.push(at(g,x,l)),t0.push(Te),c===null){var N0=X-T-O+2*zt;t0.push(nt(v,N0,n))}else{var se=(X-T-O-F)/2+2*zt;t0.push(nt(v,se,n)),t0.push(Te),t0.push(at(c,x,l)),t0.push(Te),t0.push(nt(v,se,n))}t0.push(Te),t0.push(at(h,x,l))}var x0=n.havingBaseStyle(N.TEXT),fe=G({positionType:"bottom",positionData:i0,children:t0});return Ot(k(["delimsizing","mult"],[fe],x0),N.TEXT,n,u)},it=80,lt=.08,st=function(e,t,a,n,l){var u=ea(e,n,a),h=new P0(e,u),c=new D0([h],{width:"400em",height:A(t),viewBox:"0 0 400000 "+a,preserveAspectRatio:"xMinYMin slice"});return G0(["hide-tail"],[c],l)},Xa=function(e,t){var a=t.havingBaseSizing(),n=s1("\\surd",e*a.sizeMultiplier,l1,a),l=a.sizeMultiplier,u=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),h,c=0,v=0,g=0,b;return n.type==="small"?(g=1e3+1e3*u+it,e<1?l=1:e<1.4&&(l=.7),c=(1+u+lt)/l,v=(1+u)/l,h=st("sqrtMain",c,g,u,t),h.style.minWidth="0.853em",b=.833/l):n.type==="large"?(g=(1e3+it)*oe[n.size],v=(oe[n.size]+u)/l,c=(oe[n.size]+u+lt)/l,h=st("sqrtSize"+n.size,c,g,u,t),h.style.minWidth="1.02em",b=1/l):(c=e+u+lt,v=e+u,g=Math.floor(1e3*e+u)+it,h=st("sqrtTall",c,g,u,t),h.style.minWidth="0.742em",b=1.056),h.height=v,h.style.height=A(c),{span:h,advanceWidth:b,ruleWidth:(t.fontMetrics().sqrtRuleThickness+u)*l}},a1=new Set(["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"]),Ya=new Set(["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"]),n1=new Set(["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"]),oe=[0,1.2,1.8,2.4,3],i1=function(e,t,a,n,l){if(e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle"),a1.has(e)||n1.has(e))return t1(e,t,!1,a,n,l);if(Ya.has(e))return r1(e,oe[t],!1,a,n,l);throw new S("Illegal delimiter: '"+e+"'")},Wa=[{type:"small",style:N.SCRIPTSCRIPT},{type:"small",style:N.SCRIPT},{type:"small",style:N.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],$a=[{type:"small",style:N.SCRIPTSCRIPT},{type:"small",style:N.SCRIPT},{type:"small",style:N.TEXT},{type:"stack"}],l1=[{type:"small",style:N.SCRIPTSCRIPT},{type:"small",style:N.SCRIPT},{type:"small",style:N.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],ja=function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";var t=e.type;throw new Error("Add support for delim type '"+t+"' here.")},s1=function(e,t,a,n){for(var l=Math.min(2,3-n.style.size),u=l;ut)return h}return a[a.length-1]},At=function(e,t,a,n,l,u){e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle");var h;n1.has(e)?h=Wa:a1.has(e)?h=l1:h=$a;var c=s1(e,t,h,n);return c.type==="small"?Pa(e,c.style,a,n,l,u):c.type==="large"?t1(e,c.size,a,n,l,u):r1(e,t,a,n,l,u)},ut=function(e,t,a,n,l,u){var h=n.fontMetrics().axisHeight*n.sizeMultiplier,c=901,v=5/n.fontMetrics().ptPerEm,g=Math.max(t-h,a+h),b=Math.max(g/500*c,2*g-v);return At(e,b,!0,n,l,u)},hr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Za=new Set(["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."]);function Xe(r,e){var t=Ue(r);if(t&&Za.has(t.text))return t;throw t?new S("Invalid delimiter '"+t.text+"' after '"+e.funcName+"'",r):new S("Invalid delimiter type '"+r.type+"'",r)}B({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(r,e)=>{var t=Xe(e[0],r);return{type:"delimsizing",mode:r.parser.mode,size:hr[r.funcName].size,mclass:hr[r.funcName].mclass,delim:t.text}},htmlBuilder:(r,e)=>r.delim==="."?k([r.mclass]):i1(r.delim,r.size,e,r.mode,[r.mclass]),mathmlBuilder:r=>{var e=[];r.delim!=="."&&e.push(b0(r.delim,r.mode));var t=new z("mo",e);r.mclass==="mopen"||r.mclass==="mclose"?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true");var a=A(oe[r.size]);return t.setAttribute("minsize",a),t.setAttribute("maxsize",a),t}});function mr(r){if(!r.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}B({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=r.parser.gullet.macros.get("\\current@color");if(t&&typeof t!="string")throw new S("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:r.parser.mode,delim:Xe(e[0],r).text,color:t}}});B({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=Xe(e[0],r),a=r.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var l=H(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:t.text,right:l.delim,rightColor:l.color}},htmlBuilder:(r,e)=>{mr(r);for(var t=a0(r.body,e,!0,["mopen","mclose"]),a=0,n=0,l=!1,u=0;u{mr(r);var t=p0(r.body,e);if(r.left!=="."){var a=new z("mo",[b0(r.left,r.mode)]);a.setAttribute("fence","true"),t.unshift(a)}if(r.right!=="."){var n=new z("mo",[b0(r.right,r.mode)]);n.setAttribute("fence","true"),r.rightColor&&n.setAttribute("mathcolor",r.rightColor),t.push(n)}return Rt(t)}});B({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=Xe(e[0],r);if(!r.parser.leftrightDepth)throw new S("\\middle without preceding \\left",t);return{type:"middle",mode:r.parser.mode,delim:t.text}},htmlBuilder:(r,e)=>{var t;if(r.delim===".")t=me(e,[]);else{t=i1(r.delim,1,e,r.mode,[]);var a={delim:r.delim,options:e};t.isMiddle=a}return t},mathmlBuilder:(r,e)=>{var t=r.delim==="\\vert"||r.delim==="|"?b0("|","text"):b0(r.delim,r.mode),a=new z("mo",[t]);return a.setAttribute("fence","true"),a.setAttribute("lspace","0.05em"),a.setAttribute("rspace","0.05em"),a}});var Ye=(r,e)=>{var t=re(U(r.body,e),e),a=r.label.slice(1),n=e.sizeMultiplier,l,u=0,h=C0(r.body);if(a==="sout")l=k(["stretchy","sout"]),l.height=e.fontMetrics().defaultRuleThickness/n,u=-.5*e.fontMetrics().xHeight;else if(a==="phase"){var c=K({number:.6,unit:"pt"},e),v=K({number:.35,unit:"ex"},e),g=e.havingBaseSizing();n=n/g.sizeMultiplier;var b=t.height+t.depth+c+v;t.style.paddingLeft=A(b/2+c);var y=Math.floor(1e3*b*n),x=Q1(y),M=new D0([new P0("phase",x)],{width:"400em",height:A(y/1e3),viewBox:"0 0 400000 "+y,preserveAspectRatio:"xMinYMin slice"});l=G0(["hide-tail"],[M],e),l.style.height=A(b),u=t.depth+c+v}else{/cancel/.test(a)?h||t.classes.push("cancel-pad"):a==="angl"?t.classes.push("anglpad"):t.classes.push("boxpad");var T=0,C=0,q=0;/box/.test(a)?(q=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),T=e.fontMetrics().fboxsep+(a==="colorbox"?0:q),C=T):a==="angl"?(q=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),T=4*q,C=Math.max(0,.25-t.depth)):(T=h?.2:0,C=T),l=Ra(t,a,T,C,e),/fbox|boxed|fcolorbox/.test(a)?(l.style.borderStyle="solid",l.style.borderWidth=A(q)):a==="angl"&&q!==.049&&(l.style.borderTopWidth=A(q),l.style.borderRightWidth=A(q)),u=t.depth+C,r.backgroundColor&&(l.style.backgroundColor=r.backgroundColor,r.borderColor&&(l.style.borderColor=r.borderColor))}var I;if(r.backgroundColor)I=G({positionType:"individualShift",children:[{type:"elem",elem:l,shift:u},{type:"elem",elem:t,shift:0}]});else{var O=/cancel|phase/.test(a)?["svg-align"]:[];I=G({positionType:"individualShift",children:[{type:"elem",elem:t,shift:0},{type:"elem",elem:l,shift:u,wrapperClasses:O}]})}return/cancel/.test(a)&&(I.height=t.height,I.depth=t.depth),/cancel/.test(a)&&!h?k(["mord","cancel-lap"],[I],e):k(["mord"],[I],e)},We=(r,e)=>{var t=0,a=new z(r.label.includes("colorbox")?"mpadded":"menclose",[Y(r.body,e)]);switch(r.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\phase":a.setAttribute("notation","phasorangle");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\angl":a.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(t=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*t+"pt"),a.setAttribute("height","+"+2*t+"pt"),a.setAttribute("lspace",t+"pt"),a.setAttribute("voffset",t+"pt"),r.label==="\\fcolorbox"){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);a.setAttribute("style","border: "+A(n)+" solid "+r.borderColor)}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return r.backgroundColor&&a.setAttribute("mathbackground",r.backgroundColor),a};B({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(r,e,t){var{parser:a,funcName:n}=r,l=H(e[0],"color-token").color,u=e[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:l,body:u}},htmlBuilder:Ye,mathmlBuilder:We});B({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(r,e,t){var{parser:a,funcName:n}=r,l=H(e[0],"color-token").color,u=H(e[1],"color-token").color,h=e[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:u,borderColor:l,body:h}},htmlBuilder:Ye,mathmlBuilder:We});B({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\fbox",body:e[0]}}});B({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\phase"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"enclose",mode:t.mode,label:a,body:n}},htmlBuilder:Ye,mathmlBuilder:We});B({type:"enclose",names:["\\sout"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t,funcName:a}=r;t.mode==="math"&&t.settings.reportNonstrict("mathVsSout","LaTeX's \\sout works only in text mode");var n=e[0];return{type:"enclose",mode:t.mode,label:a,body:n}},htmlBuilder:Ye,mathmlBuilder:We});B({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\angl",body:e[0]}}});var u1={};function S0(r){for(var{type:e,names:t,props:a,handler:n,htmlBuilder:l,mathmlBuilder:u}=r,h={type:e,numArgs:a.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},c=0;c{var e=r.parser.settings;if(!e.displayMode)throw new S("{"+r.envName+"} can be used only in display mode.")},Ka=new Set(["gather","gather*"]);function Ht(r){if(!r.includes("ed"))return!r.includes("*")}function V0(r,e,t){var{hskipBeforeAndAfter:a,addJot:n,cols:l,arraystretch:u,colSeparationType:h,autoTag:c,singleRow:v,emptySingleRow:g,maxNumCols:b,leqno:y}=e;if(r.gullet.beginGroup(),v||r.gullet.macros.set("\\cr","\\\\\\relax"),!u){var x=r.gullet.expandMacroAsText("\\arraystretch");if(x==null)u=1;else if(u=parseFloat(x),!u||u<0)throw new S("Invalid \\arraystretch: "+x)}r.gullet.beginGroup();var M=[],T=[M],C=[],q=[],I=c!=null?[]:void 0;function O(){c&&r.gullet.macros.set("\\@eqnsw","1",!0)}function F(){I&&(r.gullet.macros.get("\\df@tag")?(I.push(r.subparse([new d0("\\df@tag")])),r.gullet.macros.set("\\df@tag",void 0,!0)):I.push(!!c&&r.gullet.macros.get("\\@eqnsw")==="1"))}for(O(),q.push(cr(r));;){var V=r.parseExpression(!1,v?"\\end":"\\\\");r.gullet.endGroup(),r.gullet.beginGroup();var L={type:"ordgroup",mode:r.mode,body:V};t&&(L={type:"styling",mode:r.mode,style:t,body:[L]}),M.push(L);var P=r.fetch().text;if(P==="&"){if(b&&M.length===b){if(v||h)throw new S("Too many tab characters: &",r.nextToken);r.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}r.consume()}else if(P==="\\end"){F(),M.length===1&&L.type==="styling"&&L.body.length===1&&L.body[0].type==="ordgroup"&&L.body[0].body.length===0&&(T.length>1||!g)&&T.pop(),q.length0&&(O+=.25),v.push({pos:O,isDashed:be[ye]})}for(F(u[0]),a=0;a0&&(i0+=I,Pbe))for(a=0;a=h)){var J0=void 0;if(n>0||e.hskipBeforeAndAfter){var Yt,Wt;J0=(Yt=(Wt=x0)==null?void 0:Wt.pregap)!=null?Yt:y,J0!==0&&(y0=k(["arraycolsep"],[]),y0.style.width=A(J0),m0.push(y0))}var $t=[];for(a=0;a0){for(var C1=te("hline",t,g),q1=te("hdashline",t,g),Ke=[{type:"elem",elem:ge,shift:0}];v.length>0;){var Kt=v.pop(),Jt=Kt.pos-t0;Kt.isDashed?Ke.push({type:"elem",elem:q1,shift:Jt}):Ke.push({type:"elem",elem:C1,shift:Jt})}ge=G({positionType:"individualShift",children:Ke})}if(j0.length===0)return k(["mord"],[ge],t);var E1=G({positionType:"individualShift",children:j0}),R1=k(["tag"],[E1],t);return E0([ge,R1])},Ja={c:"center ",l:"left ",r:"right "},A0=function(e,t){for(var a=[],n=new z("mtd",[],["mtr-glue"]),l=new z("mtd",[],["mml-eqn-num"]),u=0;u0){var M=e.cols,T="",C=!1,q=0,I=M.length;M[0].type==="separator"&&(y+="top ",q=1),M[M.length-1].type==="separator"&&(y+="bottom ",I-=1);for(var O=q;O0?"left ":"",y+=X[X.length-1].length>0?"right ":"";for(var h0=1;h00&&x&&(C=1),a[M]={type:"align",align:T,pregap:C,postgap:0}}return u.colSeparationType=x?"align":"alignat",u};S0({type:"array",names:["array","darray"],props:{numArgs:1},handler(r,e){var t=Ue(e[0]),a=t?[e[0]]:H(e[0],"ordgroup").body,n=a.map(function(u){var h=Ge(u),c=h.text;if("lcr".includes(c))return{type:"align",align:c};if(c==="|")return{type:"separator",separator:"|"};if(c===":")return{type:"separator",separator:":"};throw new S("Unknown column alignment: "+c,u)}),l={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return V0(r.parser,l,Ft(r.envName))},htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(r){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[r.envName.replace("*","")],t="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:t}]};if(r.envName.charAt(r.envName.length-1)==="*"){var n=r.parser;if(n.consumeSpaces(),n.fetch().text==="["){if(n.consume(),n.consumeSpaces(),t=n.fetch().text,!"lcr".includes(t))throw new S("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),a.cols=[{type:"align",align:t}]}}var l=V0(r.parser,a,Ft(r.envName)),u=Math.max(0,...l.body.map(h=>h.length));return l.cols=new Array(u).fill({type:"align",align:t}),e?{type:"leftright",mode:r.mode,body:[l],left:e[0],right:e[1],rightColor:void 0}:l},htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(r){var e={arraystretch:.5},t=V0(r.parser,e,"script");return t.colSeparationType="small",t},htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["subarray"],props:{numArgs:1},handler(r,e){var t=Ue(e[0]),a=t?[e[0]]:H(e[0],"ordgroup").body,n=a.map(function(h){var c=Ge(h),v=c.text;if("lc".includes(v))return{type:"align",align:v};throw new S("Unknown column alignment: "+v,h)});if(n.length>1)throw new S("{subarray} can contain only one column");var l={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5},u=V0(r.parser,l,"script");if(u.body.length>0&&u.body[0].length>1)throw new S("{subarray} can contain only one column");return u},htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(r){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},t=V0(r.parser,e,Ft(r.envName));return{type:"leftright",mode:r.mode,body:[t],left:r.envName.includes("r")?".":"\\{",right:r.envName.includes("r")?"\\}":".",rightColor:void 0}},htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:h1,htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(r){Ka.has(r.envName)&&$e(r);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Ht(r.envName),emptySingleRow:!0,leqno:r.parser.settings.leqno};return V0(r.parser,e,"display")},htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:h1,htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(r){$e(r);var e={autoTag:Ht(r.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:r.parser.settings.leqno};return V0(r.parser,e,"display")},htmlBuilder:z0,mathmlBuilder:A0});S0({type:"array",names:["CD"],props:{numArgs:0},handler(r){return $e(r),Fa(r.parser)},htmlBuilder:z0,mathmlBuilder:A0});m("\\nonumber","\\gdef\\@eqnsw{0}");m("\\notag","\\nonumber");B({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(r,e){throw new S(r.funcName+" valid only within array environment")}});var dr=u1;B({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];if(n.type!=="ordgroup")throw new S("Invalid environment name",n);for(var l="",u=0;u{var t=r.font,a=e.withFont(t);return U(r.body,a)},c1=(r,e)=>{var t=r.font,a=e.withFont(t);return Y(r.body,a)},fr={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};B({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=Ne(e[0]),l=a;return l in fr&&(l=fr[l]),{type:"font",mode:t.mode,font:l.slice(1),body:n}},htmlBuilder:m1,mathmlBuilder:c1});B({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"mclass",mode:t.mode,mclass:Ve(a),body:[{type:"font",mode:t.mode,font:"boldsymbol",body:a}],isCharacterBox:C0(a)}}});B({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:a,breakOnTokenText:n}=r,{mode:l}=t,u=t.parseExpression(!0,n),h="math"+a.slice(1);return{type:"font",mode:l,font:h,body:{type:"ordgroup",mode:t.mode,body:u}}},htmlBuilder:m1,mathmlBuilder:c1});var Qa=(r,e)=>{var t=e.style,a=t.fracNum(),n=t.fracDen(),l;l=e.havingStyle(a);var u=U(r.numer,l,e);if(r.continued){var h=8.5/e.fontMetrics().ptPerEm,c=3.5/e.fontMetrics().ptPerEm;u.height=u.height0?M=3*y:M=7*y,T=e.fontMetrics().denom1):(b>0?(x=e.fontMetrics().num2,M=y):(x=e.fontMetrics().num3,M=3*y),T=e.fontMetrics().denom2);var C;if(g){var I=e.fontMetrics().axisHeight;x-u.depth-(I+.5*b){var t=new z("mfrac",[Y(r.numer,e),Y(r.denom,e)]);if(!r.hasBarLine)t.setAttribute("linethickness","0px");else if(r.barSize){var a=K(r.barSize,e);t.setAttribute("linethickness",A(a))}if(r.leftDelim!=null||r.rightDelim!=null){var n=[];if(r.leftDelim!=null){var l=new z("mo",[new _(r.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),n.push(l)}if(n.push(t),r.rightDelim!=null){var u=new z("mo",[new _(r.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),n.push(u)}return Rt(n)}return t},d1=(r,e)=>{if(!e)return r;var t={type:"styling",mode:r.mode,style:e,body:[r]};return t};B({type:"genfrac",names:["\\cfrac","\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0],l=e[1],u,h=null,c=null;switch(a){case"\\cfrac":case"\\dfrac":case"\\frac":case"\\tfrac":u=!0;break;case"\\\\atopfrac":u=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":u=!1,h="(",c=")";break;case"\\\\bracefrac":u=!1,h="\\{",c="\\}";break;case"\\\\brackfrac":u=!1,h="[",c="]";break;default:throw new Error("Unrecognized genfrac command")}var v=a==="\\cfrac",g=null;return v||a.startsWith("\\d")?g="display":a.startsWith("\\t")&&(g="text"),d1({type:"genfrac",mode:t.mode,numer:n,denom:l,continued:v,hasBarLine:u,leftDelim:h,rightDelim:c,barSize:null},g)},htmlBuilder:Qa,mathmlBuilder:_a});B({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(r){var{parser:e,funcName:t,token:a}=r,n;switch(t){case"\\over":n="\\frac";break;case"\\choose":n="\\binom";break;case"\\atop":n="\\\\atopfrac";break;case"\\brace":n="\\\\bracefrac";break;case"\\brack":n="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:n,token:a}}});var vr=["display","text","script","scriptscript"],pr=function(e){var t=null;return e.length>0&&(t=e,t=t==="."?null:t),t};B({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(r,e){var{parser:t}=r,a=e[4],n=e[5],l=Ne(e[0]),u=l.type==="atom"&&l.family==="open"?pr(l.text):null,h=Ne(e[1]),c=h.type==="atom"&&h.family==="close"?pr(h.text):null,v=H(e[2],"size"),g,b=null;v.isBlank?g=!0:(b=v.value,g=b.number>0);var y=null,x=e[3];if(x.type==="ordgroup"){if(x.body.length>0){var M=H(x.body[0],"textord");y=vr[Number(M.text)]}}else x=H(x,"textord"),y=vr[Number(x.text)];return d1({type:"genfrac",mode:t.mode,numer:a,denom:n,continued:!1,hasBarLine:g,barSize:b,leftDelim:u,rightDelim:c},y)}});B({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(r,e){var{parser:t,funcName:a,token:n}=r;return{type:"infix",mode:t.mode,replaceWith:"\\\\abovefrac",size:H(e[0],"size").value,token:n}}});B({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0],l=H(e[1],"infix").size;if(!l)throw new Error("\\\\abovefrac expected size, but got "+String(l));var u=e[2],h=l.number>0;return{type:"genfrac",mode:t.mode,numer:n,denom:u,continued:!1,hasBarLine:h,barSize:l,leftDelim:null,rightDelim:null}}});var f1=(r,e)=>{var t=e.style,a,n;r.type==="supsub"?(a=r.sup?U(r.sup,e.havingStyle(t.sup()),e):U(r.sub,e.havingStyle(t.sub()),e),n=H(r.base,"horizBrace")):n=H(r,"horizBrace");var l=U(n.base,e.havingBaseStyle(N.DISPLAY)),u=Pe(n,e),h;if(n.isOver?(h=G({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.1},{type:"elem",elem:u}]}),h.children[0].children[0].children[1].classes.push("svg-align")):(h=G({positionType:"bottom",positionData:l.depth+.1+u.height,children:[{type:"elem",elem:u},{type:"kern",size:.1},{type:"elem",elem:l}]}),h.children[0].children[0].children[0].classes.push("svg-align")),a){var c=k(["minner",n.isOver?"mover":"munder"],[h],e);n.isOver?h=G({positionType:"firstBaseline",children:[{type:"elem",elem:c},{type:"kern",size:.2},{type:"elem",elem:a}]}):h=G({positionType:"bottom",positionData:c.depth+.2+a.height+a.depth,children:[{type:"elem",elem:a},{type:"kern",size:.2},{type:"elem",elem:c}]})}return k(["minner",n.isOver?"mover":"munder"],[h],e)},e4=(r,e)=>{var t=Le(r.label);return new z(r.isOver?"mover":"munder",[Y(r.base,e),t])};B({type:"horizBrace",names:["\\overbrace","\\underbrace","\\overbracket","\\underbracket"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:a}=r;return{type:"horizBrace",mode:t.mode,label:a,isOver:a.includes("\\over"),base:e[0]}},htmlBuilder:f1,mathmlBuilder:e4});B({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[1],n=H(e[0],"url").url;return t.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:t.mode,href:n,body:Q(a)}:t.formatUnsupportedCmd("\\href")},htmlBuilder:(r,e)=>{var t=a0(r.body,e,!1);return ga(r.href,[],t,e)},mathmlBuilder:(r,e)=>{var t=U0(r.body,e);return t instanceof z||(t=new z("mrow",[t])),t.setAttribute("href",r.href),t}});B({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=H(e[0],"url").url;if(!t.settings.isTrusted({command:"\\url",url:a}))return t.formatUnsupportedCmd("\\url");for(var n=[],l=0;l{var{parser:t,funcName:a,token:n}=r,l=H(e[0],"raw").string,u=e[1];t.settings.strict&&t.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var h,c={};switch(a){case"\\htmlClass":c.class=l,h={command:"\\htmlClass",class:l};break;case"\\htmlId":c.id=l,h={command:"\\htmlId",id:l};break;case"\\htmlStyle":c.style=l,h={command:"\\htmlStyle",style:l};break;case"\\htmlData":{for(var v=l.split(","),g=0;g{var t=a0(r.body,e,!1),a=["enclosing"];r.attributes.class&&a.push(...r.attributes.class.trim().split(/\s+/));var n=k(a,t,e);for(var l in r.attributes)l!=="class"&&r.attributes.hasOwnProperty(l)&&n.setAttribute(l,r.attributes[l]);return n},mathmlBuilder:(r,e)=>U0(r.body,e)});B({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInArgument:!0,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"htmlmathml",mode:t.mode,html:Q(e[0]),mathml:Q(e[1])}},htmlBuilder:(r,e)=>{var t=a0(r.html,e,!1);return E0(t)},mathmlBuilder:(r,e)=>U0(r.mathml,e)});var ot=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new S("Invalid size: '"+e+"' in \\includegraphics");var a={number:+(t[1]+t[2]),unit:t[3]};if(!qr(a))throw new S("Invalid unit: '"+a.unit+"' in \\includegraphics.");return a};B({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(r,e,t)=>{var{parser:a}=r,n={number:0,unit:"em"},l={number:.9,unit:"em"},u={number:0,unit:"em"},h="";if(t[0])for(var c=H(t[0],"raw").string,v=c.split(","),g=0;g{var t=K(r.height,e),a=0;r.totalheight.number>0&&(a=K(r.totalheight,e)-t);var n=0;r.width.number>0&&(n=K(r.width,e));var l={height:A(t+a)};n>0&&(l.width=A(n)),a>0&&(l.verticalAlign=A(-a));var u=new ia(r.src,r.alt,l);return u.height=t,u.depth=a,u},mathmlBuilder:(r,e)=>{var t=new z("mglyph",[]);t.setAttribute("alt",r.alt);var a=K(r.height,e),n=0;if(r.totalheight.number>0&&(n=K(r.totalheight,e)-a,t.setAttribute("valign",A(-n))),t.setAttribute("height",A(a+n)),r.width.number>0){var l=K(r.width,e);t.setAttribute("width",A(l))}return t.setAttribute("src",r.src),t}});B({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:a}=r,n=H(e[0],"size");if(t.settings.strict){var l=a[1]==="m",u=n.value.unit==="mu";l?(u||t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, "+("not "+n.value.unit+" units")),t.mode!=="math"&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):u&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:t.mode,dimension:n.value}},htmlBuilder(r,e){return Hr(r.dimension,e)},mathmlBuilder(r,e){var t=K(r.dimension,e);return new Vr(t)}});B({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"lap",mode:t.mode,alignment:a.slice(5),body:n}},htmlBuilder:(r,e)=>{var t;r.alignment==="clap"?(t=k([],[U(r.body,e)]),t=k(["inner"],[t],e)):t=k(["inner"],[U(r.body,e)]);var a=k(["fix"],[]),n=k([r.alignment],[t,a],e),l=k(["strut"]);return l.style.height=A(n.height+n.depth),n.depth&&(l.style.verticalAlign=A(-n.depth)),n.children.unshift(l),n=k(["thinbox"],[n],e),k(["mord","vbox"],[n],e)},mathmlBuilder:(r,e)=>{var t=new z("mpadded",[Y(r.body,e)]);if(r.alignment!=="rlap"){var a=r.alignment==="llap"?"-1":"-0.5";t.setAttribute("lspace",a+"width")}return t.setAttribute("width","0px"),t}});B({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){var{funcName:t,parser:a}=r,n=a.mode;a.switchMode("math");var l=t==="\\("?"\\)":"$",u=a.parseExpression(!1,l);return a.expect(l),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:u}}});B({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){throw new S("Mismatched "+r.funcName)}});var gr=(r,e)=>{switch(e.style.size){case N.DISPLAY.size:return r.display;case N.TEXT.size:return r.text;case N.SCRIPT.size:return r.script;case N.SCRIPTSCRIPT.size:return r.scriptscript;default:return r.text}};B({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"mathchoice",mode:t.mode,display:Q(e[0]),text:Q(e[1]),script:Q(e[2]),scriptscript:Q(e[3])}},htmlBuilder:(r,e)=>{var t=gr(r,e),a=a0(t,e,!1);return E0(a)},mathmlBuilder:(r,e)=>{var t=gr(r,e);return U0(t,e)}});var v1=(r,e,t,a,n,l,u)=>{r=k([],[r]);var h=t&&C0(t),c,v;if(e){var g=U(e,a.havingStyle(n.sup()),a);v={elem:g,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-g.depth)}}if(t){var b=U(t,a.havingStyle(n.sub()),a);c={elem:b,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-b.height)}}var y;if(v&&c){var x=a.fontMetrics().bigOpSpacing5+c.elem.height+c.elem.depth+c.kern+r.depth+u;y=G({positionType:"bottom",positionData:x,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:c.elem,marginLeft:A(-l)},{type:"kern",size:c.kern},{type:"elem",elem:r},{type:"kern",size:v.kern},{type:"elem",elem:v.elem,marginLeft:A(l)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]})}else if(c){var M=r.height-u;y=G({positionType:"top",positionData:M,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:c.elem,marginLeft:A(-l)},{type:"kern",size:c.kern},{type:"elem",elem:r}]})}else if(v){var T=r.depth+u;y=G({positionType:"bottom",positionData:T,children:[{type:"elem",elem:r},{type:"kern",size:v.kern},{type:"elem",elem:v.elem,marginLeft:A(l)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]})}else return r;var C=[y];if(c&&l!==0&&!h){var q=k(["mspace"],[],a);q.style.marginRight=A(l),C.unshift(q)}return k(["mop","op-limits"],C,a)},p1=new Set(["\\smallint"]),le=(r,e)=>{var t,a,n=!1,l;r.type==="supsub"?(t=r.sup,a=r.sub,l=H(r.base,"op"),n=!0):l=H(r,"op");var u=e.style,h=!1;u.size===N.DISPLAY.size&&l.symbol&&!p1.has(l.name)&&(h=!0);var c;if(l.symbol){var v=h?"Size2-Regular":"Size1-Regular",g="";if((l.name==="\\oiint"||l.name==="\\oiiint")&&(g=l.name.slice(1),l.name=g==="oiint"?"\\iint":"\\iiint"),c=s0(l.name,v,"math",e,["mop","op-symbol",h?"large-op":"small-op"]),g.length>0){var b=c.italic,y=Lr(g+"Size"+(h?"2":"1"),e);c=G({positionType:"individualShift",children:[{type:"elem",elem:c,shift:0},{type:"elem",elem:y,shift:h?.08:0}]}),l.name="\\"+g,c.classes.unshift("mop"),c.italic=b}}else if(l.body){var x=a0(l.body,e,!0);x.length===1&&x[0]instanceof f0?(c=x[0],c.classes[0]="mop"):c=k(["mop"],x,e)}else{for(var M=[],T=1;T{var t;if(r.symbol)t=new z("mo",[b0(r.name,r.mode)]),p1.has(r.name)&&t.setAttribute("largeop","false");else if(r.body)t=new z("mo",p0(r.body,e));else{t=new z("mi",[new _(r.name.slice(1))]);var a=new z("mo",[b0("⁡","text")]);r.parentIsSupSub?t=new z("mrow",[t,a]):t=Ur([t,a])}return t},t4={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};B({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=a;return n.length===1&&(n=t4[n]),{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:le,mathmlBuilder:de});B({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Q(a)}},htmlBuilder:le,mathmlBuilder:de});var r4={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};B({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:le,mathmlBuilder:de});B({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:le,mathmlBuilder:de});B({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0,allowedInArgument:!0},handler(r){var{parser:e,funcName:t}=r,a=t;return a.length===1&&(a=r4[a]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:le,mathmlBuilder:de});var g1=(r,e)=>{var t,a,n=!1,l;r.type==="supsub"?(t=r.sup,a=r.sub,l=H(r.base,"operatorname"),n=!0):l=H(r,"operatorname");var u;if(l.body.length>0){for(var h=l.body.map(b=>{var y="text"in b?b.text:void 0;return typeof y=="string"?{type:"textord",mode:b.mode,text:y}:b}),c=a0(h,e.withFont("mathrm"),!0),v=0;v{for(var t=p0(r.body,e.withFont("mathrm")),a=!0,n=0;ng.toText()).join("");t=[new _(h)]}var c=new z("mi",t);c.setAttribute("mathvariant","normal");var v=new z("mo",[b0("⁡","text")]);return r.parentIsSupSub?new z("mrow",[c,v]):Ur([c,v])};B({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:a}=r,n=e[0];return{type:"operatorname",mode:t.mode,body:Q(n),alwaysHandleSupSub:a==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:g1,mathmlBuilder:a4});m("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");$0({type:"ordgroup",htmlBuilder(r,e){return r.semisimple?E0(a0(r.body,e,!1)):k(["mord"],a0(r.body,e,!0),e)},mathmlBuilder(r,e){return U0(r.body,e,!0)}});B({type:"overline",names:["\\overline"],props:{numArgs:1},handler(r,e){var{parser:t}=r,a=e[0];return{type:"overline",mode:t.mode,body:a}},htmlBuilder(r,e){var t=U(r.body,e.havingCrampedStyle()),a=te("overline-line",e),n=e.fontMetrics().defaultRuleThickness,l=G({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:3*n},{type:"elem",elem:a},{type:"kern",size:n}]});return k(["mord","overline"],[l],e)},mathmlBuilder(r,e){var t=new z("mo",[new _("‾")]);t.setAttribute("stretchy","true");var a=new z("mover",[Y(r.body,e),t]);return a.setAttribute("accent","true"),a}});B({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"phantom",mode:t.mode,body:Q(a)}},htmlBuilder:(r,e)=>{var t=a0(r.body,e.withPhantom(),!1);return E0(t)},mathmlBuilder:(r,e)=>{var t=p0(r.body,e);return new z("mphantom",t)}});m("\\hphantom","\\smash{\\phantom{#1}}");B({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,a=e[0];return{type:"vphantom",mode:t.mode,body:a}},htmlBuilder:(r,e)=>{var t=k(["inner"],[U(r.body,e.withPhantom())]),a=k(["fix"],[]);return k(["mord","rlap"],[t,a],e)},mathmlBuilder:(r,e)=>{var t=p0(Q(r.body),e),a=new z("mphantom",t),n=new z("mpadded",[a]);return n.setAttribute("width","0px"),n}});B({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r,a=H(e[0],"size").value,n=e[1];return{type:"raisebox",mode:t.mode,dy:a,body:n}},htmlBuilder(r,e){var t=U(r.body,e),a=K(r.dy,e);return G({positionType:"shift",positionData:-a,children:[{type:"elem",elem:t}]})},mathmlBuilder(r,e){var t=new z("mpadded",[Y(r.body,e)]),a=r.dy.number+r.dy.unit;return t.setAttribute("voffset",a),t}});B({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(r){var{parser:e}=r;return{type:"internal",mode:e.mode}}});B({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(r,e,t){var{parser:a}=r,n=t[0],l=H(e[0],"size"),u=H(e[1],"size");return{type:"rule",mode:a.mode,shift:n&&H(n,"size").value,width:l.value,height:u.value}},htmlBuilder(r,e){var t=k(["mord","rule"],[],e),a=K(r.width,e),n=K(r.height,e),l=r.shift?K(r.shift,e):0;return t.style.borderRightWidth=A(a),t.style.borderTopWidth=A(n),t.style.bottom=A(l),t.width=a,t.height=n+l,t.depth=-l,t.maxFontSize=n*1.125*e.sizeMultiplier,t},mathmlBuilder(r,e){var t=K(r.width,e),a=K(r.height,e),n=r.shift?K(r.shift,e):0,l=e.color&&e.getColor()||"black",u=new z("mspace");u.setAttribute("mathbackground",l),u.setAttribute("width",A(t)),u.setAttribute("height",A(a));var h=new z("mpadded",[u]);return n>=0?h.setAttribute("height",A(n)):(h.setAttribute("height",A(n)),h.setAttribute("depth",A(-n))),h.setAttribute("voffset",A(n)),h}});function b1(r,e,t){for(var a=a0(r,e,!1),n=e.sizeMultiplier/t.sizeMultiplier,l=0;l{var t=e.havingSize(r.size);return b1(r.body,t,e)};B({type:"sizing",names:br,props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{breakOnTokenText:t,funcName:a,parser:n}=r,l=n.parseExpression(!1,t);return{type:"sizing",mode:n.mode,size:br.indexOf(a)+1,body:l}},htmlBuilder:n4,mathmlBuilder:(r,e)=>{var t=e.havingSize(r.size),a=p0(r.body,t),n=new z("mstyle",a);return n.setAttribute("mathsize",A(t.sizeMultiplier)),n}});B({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(r,e,t)=>{var{parser:a}=r,n=!1,l=!1,u=t[0]&&H(t[0],"ordgroup");if(u)for(var h="",c=0;c{var t=k([],[U(r.body,e)]);if(!r.smashHeight&&!r.smashDepth)return t;if(r.smashHeight&&(t.height=0),r.smashDepth&&(t.depth=0),r.smashHeight&&r.smashDepth)return k(["mord","smash"],[t],e);if(t.children)for(var a=0;a{var t=new z("mpadded",[Y(r.body,e)]);return r.smashHeight&&t.setAttribute("height","0px"),r.smashDepth&&t.setAttribute("depth","0px"),t}});B({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:a}=r,n=t[0],l=e[0];return{type:"sqrt",mode:a.mode,body:l,index:n}},htmlBuilder(r,e){var t=U(r.body,e.havingCrampedStyle());t.height===0&&(t.height=e.fontMetrics().xHeight),t=re(t,e);var a=e.fontMetrics(),n=a.defaultRuleThickness,l=n;e.style.idt.height+t.depth+u&&(u=(u+b-t.height-t.depth)/2);var y=c.height-t.height-u-v;t.style.paddingLeft=A(g);var x=G({positionType:"firstBaseline",children:[{type:"elem",elem:t,wrapperClasses:["svg-align"]},{type:"kern",size:-(t.height+y)},{type:"elem",elem:c},{type:"kern",size:v}]});if(r.index){var M=e.havingStyle(N.SCRIPTSCRIPT),T=U(r.index,M,e),C=.6*(x.height-x.depth),q=G({positionType:"shift",positionData:-C,children:[{type:"elem",elem:T}]}),I=k(["root"],[q]);return k(["mord","sqrt"],[I,x],e)}else return k(["mord","sqrt"],[x],e)},mathmlBuilder(r,e){var{body:t,index:a}=r;return a?new z("mroot",[Y(t,e),Y(a,e)]):new z("msqrt",[Y(t,e)])}});var yr={display:N.DISPLAY,text:N.TEXT,script:N.SCRIPT,scriptscript:N.SCRIPTSCRIPT};B({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r,e){var{breakOnTokenText:t,funcName:a,parser:n}=r,l=n.parseExpression(!0,t),u=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:u,body:l}},htmlBuilder(r,e){var t=yr[r.style],a=e.havingStyle(t).withFont("");return b1(r.body,a,e)},mathmlBuilder(r,e){var t=yr[r.style],a=e.havingStyle(t),n=p0(r.body,a),l=new z("mstyle",n),u={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},h=u[r.style];return l.setAttribute("scriptlevel",h[0]),l.setAttribute("displaystyle",h[1]),l}});var i4=function(e,t){var a=e.base;if(a)if(a.type==="op"){var n=a.limits&&(t.style.size===N.DISPLAY.size||a.alwaysHandleSupSub);return n?le:null}else if(a.type==="operatorname"){var l=a.alwaysHandleSupSub&&(t.style.size===N.DISPLAY.size||a.limits);return l?g1:null}else{if(a.type==="accent")return C0(a.base)?Nt:null;if(a.type==="horizBrace"){var u=!e.sub;return u===a.isOver?f1:null}else return null}else return null};$0({type:"supsub",htmlBuilder(r,e){var t=i4(r,e);if(t)return t(r,e);var{base:a,sup:n,sub:l}=r,u=U(a,e),h,c,v=e.fontMetrics(),g=0,b=0,y=a&&C0(a);if(n){var x=e.havingStyle(e.style.sup());h=U(n,x,e),y||(g=u.height-x.fontMetrics().supDrop*x.sizeMultiplier/e.sizeMultiplier)}if(l){var M=e.havingStyle(e.style.sub());c=U(l,M,e),y||(b=u.depth+M.fontMetrics().subDrop*M.sizeMultiplier/e.sizeMultiplier)}var T;e.style===N.DISPLAY?T=v.sup1:e.style.cramped?T=v.sup3:T=v.sup2;var C=e.sizeMultiplier,q=A(.5/v.ptPerEm/C),I=null;if(c){var O=r.base&&r.base.type==="op"&&r.base.name&&(r.base.name==="\\oiint"||r.base.name==="\\oiiint");(u instanceof f0||O)&&(I=A(-u.italic))}var F;if(h&&c){g=Math.max(g,T,h.depth+.25*v.xHeight),b=Math.max(b,v.sub2);var V=v.defaultRuleThickness,L=4*V;if(g-h.depth-(c.height-b)0&&(g+=P,b-=P)}var W=[{type:"elem",elem:c,shift:b,marginRight:q,marginLeft:I},{type:"elem",elem:h,shift:-g,marginRight:q}];F=G({positionType:"individualShift",children:W})}else if(c){b=Math.max(b,v.sub1,c.height-.8*v.xHeight);var X=[{type:"elem",elem:c,marginLeft:I,marginRight:q}];F=G({positionType:"shift",positionData:b,children:X})}else if(h)g=Math.max(g,T,h.depth+.25*v.xHeight),F=G({positionType:"shift",positionData:-g,children:[{type:"elem",elem:h,marginRight:q}]});else throw new Error("supsub must have either sup or sub.");var h0=wt(u,"right")||"mord";return k([h0],[u,k(["msupsub"],[F])],e)},mathmlBuilder(r,e){var t=!1,a,n;r.base&&r.base.type==="horizBrace"&&(n=!!r.sup,n===r.base.isOver&&(t=!0,a=r.base.isOver)),r.base&&(r.base.type==="op"||r.base.type==="operatorname")&&(r.base.parentIsSupSub=!0);var l=[Y(r.base,e)];r.sub&&l.push(Y(r.sub,e)),r.sup&&l.push(Y(r.sup,e));var u;if(t)u=a?"mover":"munder";else if(r.sub)if(r.sup){var v=r.base;v&&v.type==="op"&&v.limits&&e.style===N.DISPLAY||v&&v.type==="operatorname"&&v.alwaysHandleSupSub&&(e.style===N.DISPLAY||v.limits)?u="munderover":u="msubsup"}else{var c=r.base;c&&c.type==="op"&&c.limits&&(e.style===N.DISPLAY||c.alwaysHandleSupSub)||c&&c.type==="operatorname"&&c.alwaysHandleSupSub&&(c.limits||e.style===N.DISPLAY)?u="munder":u="msub"}else{var h=r.base;h&&h.type==="op"&&h.limits&&(e.style===N.DISPLAY||h.alwaysHandleSupSub)||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(h.limits||e.style===N.DISPLAY)?u="mover":u="msup"}return new z(u,l)}});$0({type:"atom",htmlBuilder(r,e){return qt(r.text,r.mode,e,["m"+r.family])},mathmlBuilder(r,e){var t=new z("mo",[b0(r.text,r.mode)]);if(r.family==="bin"){var a=It(r,e);a==="bold-italic"&&t.setAttribute("mathvariant",a)}else r.family==="punct"?t.setAttribute("separator","true"):(r.family==="open"||r.family==="close")&&t.setAttribute("stretchy","false");return t}});var y1={mi:"italic",mn:"normal",mtext:"normal"};$0({type:"mathord",htmlBuilder(r,e){return Fe(r,e,"mathord")},mathmlBuilder(r,e){var t=new z("mi",[b0(r.text,r.mode,e)]),a=It(r,e)||"italic";return a!==y1[t.type]&&t.setAttribute("mathvariant",a),t}});$0({type:"textord",htmlBuilder(r,e){return Fe(r,e,"textord")},mathmlBuilder(r,e){var t=b0(r.text,r.mode,e),a=It(r,e)||"normal",n;return r.mode==="text"?n=new z("mtext",[t]):/[0-9]/.test(r.text)?n=new z("mn",[t]):r.text==="\\prime"?n=new z("mo",[t]):n=new z("mi",[t]),a!==y1[n.type]&&n.setAttribute("mathvariant",a),n}});var ht={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},mt={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};$0({type:"spacing",htmlBuilder(r,e){if(mt.hasOwnProperty(r.text)){var t=mt[r.text].className||"";if(r.mode==="text"){var a=Fe(r,e,"textord");return a.classes.push(t),a}else return k(["mspace",t],[qt(r.text,r.mode,e)],e)}else{if(ht.hasOwnProperty(r.text))return k(["mspace",ht[r.text]],[],e);throw new S('Unknown type of space "'+r.text+'"')}},mathmlBuilder(r,e){var t;if(mt.hasOwnProperty(r.text))t=new z("mtext",[new _(" ")]);else{if(ht.hasOwnProperty(r.text))return new z("mspace");throw new S('Unknown type of space "'+r.text+'"')}return t}});var xr=()=>{var r=new z("mtd",[]);return r.setAttribute("width","50%"),r};$0({type:"tag",mathmlBuilder(r,e){var t=new z("mtable",[new z("mtr",[xr(),new z("mtd",[U0(r.body,e)]),xr(),new z("mtd",[U0(r.tag,e)])])]);return t.setAttribute("width","100%"),t}});var wr={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},kr={"\\textbf":"textbf","\\textmd":"textmd"},l4={"\\textit":"textit","\\textup":"textup"},Sr=(r,e)=>{var t=r.font;if(t){if(wr[t])return e.withTextFontFamily(wr[t]);if(kr[t])return e.withTextFontWeight(kr[t]);if(t==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(l4[t])};B({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:a}=r,n=e[0];return{type:"text",mode:t.mode,body:Q(n),font:a}},htmlBuilder(r,e){var t=Sr(r,e),a=a0(r.body,t,!0);return k(["mord","text"],a,t)},mathmlBuilder(r,e){var t=Sr(r,e);return U0(r.body,t)}});B({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"underline",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=U(r.body,e),a=te("underline-line",e),n=e.fontMetrics().defaultRuleThickness,l=G({positionType:"top",positionData:t.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:t}]});return k(["mord","underline"],[l],e)},mathmlBuilder(r,e){var t=new z("mo",[new _("‾")]);t.setAttribute("stretchy","true");var a=new z("munder",[Y(r.body,e),t]);return a.setAttribute("accentunder","true"),a}});B({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"vcenter",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=U(r.body,e),a=e.fontMetrics().axisHeight,n=.5*(t.height-a-(t.depth+a));return G({positionType:"shift",positionData:n,children:[{type:"elem",elem:t}]})},mathmlBuilder(r,e){var t=new z("mpadded",[Y(r.body,e)],["vcenter"]);return new z("mrow",[t])}});B({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(r,e,t){throw new S("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(r,e){for(var t=zr(r),a=[],n=e.havingStyle(e.style.text()),l=0;lr.body.replace(/ /g,r.star?"␣":" "),F0=Pr,x1=`[ \r - ]`,s4="\\\\[a-zA-Z@]+",u4="\\\\[^\uD800-\uDFFF]",o4="("+s4+")"+x1+"*",h4=`\\\\( -|[ \r ]+ -?)[ \r ]*`,Mt="[̀-ͯ]",m4=new RegExp(Mt+"+$"),c4="("+x1+"+)|"+(h4+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(Mt+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(Mt+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+o4)+("|"+u4+")");class Ar{constructor(e,t){this.input=e,this.settings=t,this.tokenRegex=new RegExp(c4,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new d0("EOF",new c0(this,t,t));var a=this.tokenRegex.exec(e);if(a===null||a.index!==t)throw new S("Unexpected character: '"+e[t]+"'",new d0(e[t],new c0(this,t,t+1)));var n=a[6]||a[3]||(a[2]?"\\ ":" ");if(this.catcodes[n]===14){var l=e.indexOf(` -`,this.tokenRegex.lastIndex);return l===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=l+1,this.lex()}return new d0(n,new c0(this,t,this.tokenRegex.lastIndex))}}class d4{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new S("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(e[t]==null?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,a){if(a===void 0&&(a=!1),a){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var l=this.undefStack[this.undefStack.length-1];l&&!l.hasOwnProperty(e)&&(l[e]=this.current[e])}t==null?delete this.current[e]:this.current[e]=t}}var f4=o1;m("\\noexpand",function(r){var e=r.popToken();return r.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});m("\\expandafter",function(r){var e=r.popToken();return r.expandOnce(!0),{tokens:[e],numArgs:0}});m("\\@firstoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[0],numArgs:0}});m("\\@secondoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[1],numArgs:0}});m("\\@ifnextchar",function(r){var e=r.consumeArgs(3);r.consumeSpaces();var t=r.future();return e[0].length===1&&e[0][0].text===t.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});m("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");m("\\TextOrMath",function(r){var e=r.consumeArgs(2);return r.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var Mr={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};m("\\char",function(r){var e=r.popToken(),t,a=0;if(e.text==="'")t=8,e=r.popToken();else if(e.text==='"')t=16,e=r.popToken();else if(e.text==="`")if(e=r.popToken(),e.text[0]==="\\")a=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new S("\\char` missing argument");a=e.text.charCodeAt(0)}else t=10;if(t){if(a=Mr[e.text],a==null||a>=t)throw new S("Invalid base-"+t+" digit "+e.text);for(var n;(n=Mr[r.future().text])!=null&&n{var n=r.consumeArg().tokens;if(n.length!==1)throw new S("\\newcommand's first argument must be a macro name");var l=n[0].text,u=r.isDefined(l);if(u&&!e)throw new S("\\newcommand{"+l+"} attempting to redefine "+(l+"; use \\renewcommand"));if(!u&&!t)throw new S("\\renewcommand{"+l+"} when command "+l+" does not yet exist; use \\newcommand");var h=0;if(n=r.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var c="",v=r.expandNextToken();v.text!=="]"&&v.text!=="EOF";)c+=v.text,v=r.expandNextToken();if(!c.match(/^\s*[0-9]+\s*$/))throw new S("Invalid number of arguments: "+c);h=parseInt(c),n=r.consumeArg().tokens}return u&&a||r.macros.set(l,{tokens:n,numArgs:h}),""};m("\\newcommand",r=>Lt(r,!1,!0,!1));m("\\renewcommand",r=>Lt(r,!0,!1,!1));m("\\providecommand",r=>Lt(r,!0,!0,!0));m("\\message",r=>{var e=r.consumeArgs(1)[0];return console.log(e.reverse().map(t=>t.text).join("")),""});m("\\errmessage",r=>{var e=r.consumeArgs(1)[0];return console.error(e.reverse().map(t=>t.text).join("")),""});m("\\show",r=>{var e=r.popToken(),t=e.text;return console.log(e,r.macros.get(t),F0[t],$.math[t],$.text[t]),""});m("\\bgroup","{");m("\\egroup","}");m("~","\\nobreakspace");m("\\lq","`");m("\\rq","'");m("\\aa","\\r a");m("\\AA","\\r A");m("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");m("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");m("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");m("ℬ","\\mathscr{B}");m("ℰ","\\mathscr{E}");m("ℱ","\\mathscr{F}");m("ℋ","\\mathscr{H}");m("ℐ","\\mathscr{I}");m("ℒ","\\mathscr{L}");m("ℳ","\\mathscr{M}");m("ℛ","\\mathscr{R}");m("ℭ","\\mathfrak{C}");m("ℌ","\\mathfrak{H}");m("ℨ","\\mathfrak{Z}");m("\\Bbbk","\\Bbb{k}");m("\\llap","\\mathllap{\\textrm{#1}}");m("\\rlap","\\mathrlap{\\textrm{#1}}");m("\\clap","\\mathclap{\\textrm{#1}}");m("\\mathstrut","\\vphantom{(}");m("\\underbar","\\underline{\\text{#1}}");m("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}\\nobreak}{\\char"338}');m("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");m("\\ne","\\neq");m("≠","\\neq");m("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");m("∉","\\notin");m("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");m("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");m("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");m("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");m("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");m("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");m("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");m("⟂","\\perp");m("‼","\\mathclose{!\\mkern-0.8mu!}");m("∌","\\notni");m("⌜","\\ulcorner");m("⌝","\\urcorner");m("⌞","\\llcorner");m("⌟","\\lrcorner");m("©","\\copyright");m("®","\\textregistered");m("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');m("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');m("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');m("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');m("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");m("⋮","\\vdots");m("\\varGamma","\\mathit{\\Gamma}");m("\\varDelta","\\mathit{\\Delta}");m("\\varTheta","\\mathit{\\Theta}");m("\\varLambda","\\mathit{\\Lambda}");m("\\varXi","\\mathit{\\Xi}");m("\\varPi","\\mathit{\\Pi}");m("\\varSigma","\\mathit{\\Sigma}");m("\\varUpsilon","\\mathit{\\Upsilon}");m("\\varPhi","\\mathit{\\Phi}");m("\\varPsi","\\mathit{\\Psi}");m("\\varOmega","\\mathit{\\Omega}");m("\\substack","\\begin{subarray}{c}#1\\end{subarray}");m("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");m("\\boxed","\\fbox{$\\displaystyle{#1}$}");m("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");m("\\implies","\\DOTSB\\;\\Longrightarrow\\;");m("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");m("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");m("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var Tr={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"},v4=new Set(["bin","rel"]);m("\\dots",function(r){var e="\\dotso",t=r.expandAfterFuture().text;return t in Tr?e=Tr[t]:(t.slice(0,4)==="\\not"||t in $.math&&v4.has($.math[t].group))&&(e="\\dotsb"),e});var Pt={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};m("\\dotso",function(r){var e=r.future().text;return e in Pt?"\\ldots\\,":"\\ldots"});m("\\dotsc",function(r){var e=r.future().text;return e in Pt&&e!==","?"\\ldots\\,":"\\ldots"});m("\\cdots",function(r){var e=r.future().text;return e in Pt?"\\@cdots\\,":"\\@cdots"});m("\\dotsb","\\cdots");m("\\dotsm","\\cdots");m("\\dotsi","\\!\\cdots");m("\\dotsx","\\ldots\\,");m("\\DOTSI","\\relax");m("\\DOTSB","\\relax");m("\\DOTSX","\\relax");m("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");m("\\,","\\tmspace+{3mu}{.1667em}");m("\\thinspace","\\,");m("\\>","\\mskip{4mu}");m("\\:","\\tmspace+{4mu}{.2222em}");m("\\medspace","\\:");m("\\;","\\tmspace+{5mu}{.2777em}");m("\\thickspace","\\;");m("\\!","\\tmspace-{3mu}{.1667em}");m("\\negthinspace","\\!");m("\\negmedspace","\\tmspace-{4mu}{.2222em}");m("\\negthickspace","\\tmspace-{5mu}{.277em}");m("\\enspace","\\kern.5em ");m("\\enskip","\\hskip.5em\\relax");m("\\quad","\\hskip1em\\relax");m("\\qquad","\\hskip2em\\relax");m("\\tag","\\@ifstar\\tag@literal\\tag@paren");m("\\tag@paren","\\tag@literal{({#1})}");m("\\tag@literal",r=>{if(r.macros.get("\\df@tag"))throw new S("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});m("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");m("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");m("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");m("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");m("\\newline","\\\\\\relax");m("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var w1=A(k0["Main-Regular"][84][1]-.7*k0["Main-Regular"][65][1]);m("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+w1+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");m("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+w1+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");m("\\hspace","\\@ifstar\\@hspacer\\@hspace");m("\\@hspace","\\hskip #1\\relax");m("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");m("\\ordinarycolon",":");m("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");m("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');m("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');m("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');m("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');m("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');m("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');m("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');m("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');m("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');m("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');m("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');m("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');m("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');m("∷","\\dblcolon");m("∹","\\eqcolon");m("≔","\\coloneqq");m("≕","\\eqqcolon");m("⩴","\\Coloneqq");m("\\ratio","\\vcentcolon");m("\\coloncolon","\\dblcolon");m("\\colonequals","\\coloneqq");m("\\coloncolonequals","\\Coloneqq");m("\\equalscolon","\\eqqcolon");m("\\equalscoloncolon","\\Eqqcolon");m("\\colonminus","\\coloneq");m("\\coloncolonminus","\\Coloneq");m("\\minuscolon","\\eqcolon");m("\\minuscoloncolon","\\Eqcolon");m("\\coloncolonapprox","\\Colonapprox");m("\\coloncolonsim","\\Colonsim");m("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");m("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");m("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");m("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");m("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");m("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");m("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");m("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");m("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");m("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");m("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");m("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");m("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");m("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");m("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");m("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");m("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");m("\\nleqq","\\html@mathml{\\@nleqq}{≰}");m("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");m("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");m("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");m("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");m("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");m("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");m("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");m("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");m("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");m("\\imath","\\html@mathml{\\@imath}{ı}");m("\\jmath","\\html@mathml{\\@jmath}{ȷ}");m("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");m("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");m("⟦","\\llbracket");m("⟧","\\rrbracket");m("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");m("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");m("⦃","\\lBrace");m("⦄","\\rBrace");m("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");m("⦵","\\minuso");m("\\darr","\\downarrow");m("\\dArr","\\Downarrow");m("\\Darr","\\Downarrow");m("\\lang","\\langle");m("\\rang","\\rangle");m("\\uarr","\\uparrow");m("\\uArr","\\Uparrow");m("\\Uarr","\\Uparrow");m("\\N","\\mathbb{N}");m("\\R","\\mathbb{R}");m("\\Z","\\mathbb{Z}");m("\\alef","\\aleph");m("\\alefsym","\\aleph");m("\\Alpha","\\mathrm{A}");m("\\Beta","\\mathrm{B}");m("\\bull","\\bullet");m("\\Chi","\\mathrm{X}");m("\\clubs","\\clubsuit");m("\\cnums","\\mathbb{C}");m("\\Complex","\\mathbb{C}");m("\\Dagger","\\ddagger");m("\\diamonds","\\diamondsuit");m("\\empty","\\emptyset");m("\\Epsilon","\\mathrm{E}");m("\\Eta","\\mathrm{H}");m("\\exist","\\exists");m("\\harr","\\leftrightarrow");m("\\hArr","\\Leftrightarrow");m("\\Harr","\\Leftrightarrow");m("\\hearts","\\heartsuit");m("\\image","\\Im");m("\\infin","\\infty");m("\\Iota","\\mathrm{I}");m("\\isin","\\in");m("\\Kappa","\\mathrm{K}");m("\\larr","\\leftarrow");m("\\lArr","\\Leftarrow");m("\\Larr","\\Leftarrow");m("\\lrarr","\\leftrightarrow");m("\\lrArr","\\Leftrightarrow");m("\\Lrarr","\\Leftrightarrow");m("\\Mu","\\mathrm{M}");m("\\natnums","\\mathbb{N}");m("\\Nu","\\mathrm{N}");m("\\Omicron","\\mathrm{O}");m("\\plusmn","\\pm");m("\\rarr","\\rightarrow");m("\\rArr","\\Rightarrow");m("\\Rarr","\\Rightarrow");m("\\real","\\Re");m("\\reals","\\mathbb{R}");m("\\Reals","\\mathbb{R}");m("\\Rho","\\mathrm{P}");m("\\sdot","\\cdot");m("\\sect","\\S");m("\\spades","\\spadesuit");m("\\sub","\\subset");m("\\sube","\\subseteq");m("\\supe","\\supseteq");m("\\Tau","\\mathrm{T}");m("\\thetasym","\\vartheta");m("\\weierp","\\wp");m("\\Zeta","\\mathrm{Z}");m("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");m("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");m("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");m("\\bra","\\mathinner{\\langle{#1}|}");m("\\ket","\\mathinner{|{#1}\\rangle}");m("\\braket","\\mathinner{\\langle{#1}\\rangle}");m("\\Bra","\\left\\langle#1\\right|");m("\\Ket","\\left|#1\\right\\rangle");var k1=r=>e=>{var t=e.consumeArg().tokens,a=e.consumeArg().tokens,n=e.consumeArg().tokens,l=e.consumeArg().tokens,u=e.macros.get("|"),h=e.macros.get("\\|");e.macros.beginGroup();var c=b=>y=>{r&&(y.macros.set("|",u),n.length&&y.macros.set("\\|",h));var x=b;if(!b&&n.length){var M=y.future();M.text==="|"&&(y.popToken(),x=!0)}return{tokens:x?n:a,numArgs:0}};e.macros.set("|",c(!1)),n.length&&e.macros.set("\\|",c(!0));var v=e.consumeArg().tokens,g=e.expandTokens([...l,...v,...t]);return e.macros.endGroup(),{tokens:g.reverse(),numArgs:0}};m("\\bra@ket",k1(!1));m("\\bra@set",k1(!0));m("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");m("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");m("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");m("\\angln","{\\angl n}");m("\\blue","\\textcolor{##6495ed}{#1}");m("\\orange","\\textcolor{##ffa500}{#1}");m("\\pink","\\textcolor{##ff00af}{#1}");m("\\red","\\textcolor{##df0030}{#1}");m("\\green","\\textcolor{##28ae7b}{#1}");m("\\gray","\\textcolor{gray}{#1}");m("\\purple","\\textcolor{##9d38bd}{#1}");m("\\blueA","\\textcolor{##ccfaff}{#1}");m("\\blueB","\\textcolor{##80f6ff}{#1}");m("\\blueC","\\textcolor{##63d9ea}{#1}");m("\\blueD","\\textcolor{##11accd}{#1}");m("\\blueE","\\textcolor{##0c7f99}{#1}");m("\\tealA","\\textcolor{##94fff5}{#1}");m("\\tealB","\\textcolor{##26edd5}{#1}");m("\\tealC","\\textcolor{##01d1c1}{#1}");m("\\tealD","\\textcolor{##01a995}{#1}");m("\\tealE","\\textcolor{##208170}{#1}");m("\\greenA","\\textcolor{##b6ffb0}{#1}");m("\\greenB","\\textcolor{##8af281}{#1}");m("\\greenC","\\textcolor{##74cf70}{#1}");m("\\greenD","\\textcolor{##1fab54}{#1}");m("\\greenE","\\textcolor{##0d923f}{#1}");m("\\goldA","\\textcolor{##ffd0a9}{#1}");m("\\goldB","\\textcolor{##ffbb71}{#1}");m("\\goldC","\\textcolor{##ff9c39}{#1}");m("\\goldD","\\textcolor{##e07d10}{#1}");m("\\goldE","\\textcolor{##a75a05}{#1}");m("\\redA","\\textcolor{##fca9a9}{#1}");m("\\redB","\\textcolor{##ff8482}{#1}");m("\\redC","\\textcolor{##f9685d}{#1}");m("\\redD","\\textcolor{##e84d39}{#1}");m("\\redE","\\textcolor{##bc2612}{#1}");m("\\maroonA","\\textcolor{##ffbde0}{#1}");m("\\maroonB","\\textcolor{##ff92c6}{#1}");m("\\maroonC","\\textcolor{##ed5fa6}{#1}");m("\\maroonD","\\textcolor{##ca337c}{#1}");m("\\maroonE","\\textcolor{##9e034e}{#1}");m("\\purpleA","\\textcolor{##ddd7ff}{#1}");m("\\purpleB","\\textcolor{##c6b9fc}{#1}");m("\\purpleC","\\textcolor{##aa87ff}{#1}");m("\\purpleD","\\textcolor{##7854ab}{#1}");m("\\purpleE","\\textcolor{##543b78}{#1}");m("\\mintA","\\textcolor{##f5f9e8}{#1}");m("\\mintB","\\textcolor{##edf2df}{#1}");m("\\mintC","\\textcolor{##e0e5cc}{#1}");m("\\grayA","\\textcolor{##f6f7f7}{#1}");m("\\grayB","\\textcolor{##f0f1f2}{#1}");m("\\grayC","\\textcolor{##e3e5e6}{#1}");m("\\grayD","\\textcolor{##d6d8da}{#1}");m("\\grayE","\\textcolor{##babec2}{#1}");m("\\grayF","\\textcolor{##888d93}{#1}");m("\\grayG","\\textcolor{##626569}{#1}");m("\\grayH","\\textcolor{##3b3e40}{#1}");m("\\grayI","\\textcolor{##21242c}{#1}");m("\\kaBlue","\\textcolor{##314453}{#1}");m("\\kaGreen","\\textcolor{##71B307}{#1}");var S1={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class p4{constructor(e,t,a){this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new d4(f4,t.macros),this.mode=a,this.stack=[]}feed(e){this.lexer=new Ar(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,a,n;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;t=this.popToken(),{tokens:n,end:a}=this.consumeArg(["]"])}else({tokens:n,start:t,end:a}=this.consumeArg());return this.pushToken(new d0("EOF",a.loc)),this.pushTokens(n),new d0("",c0.range(t,a))}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var t=[],a=e&&e.length>0;a||this.consumeSpaces();var n=this.future(),l,u=0,h=0;do{if(l=this.popToken(),t.push(l),l.text==="{")++u;else if(l.text==="}"){if(--u,u===-1)throw new S("Extra }",l)}else if(l.text==="EOF")throw new S("Unexpected end of input in a macro argument, expected '"+(e&&a?e[h]:"}")+"'",l);if(e&&a)if((u===0||u===1&&e[h]==="{")&&l.text===e[h]){if(++h,h===e.length){t.splice(-h,h);break}}else h=0}while(u!==0||a);return n.text==="{"&&t[t.length-1].text==="}"&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:n,end:l}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new S("The length of delimiters doesn't match the number of args!");for(var a=t[0],n=0;nthis.settings.maxExpand)throw new S("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),a=t.text,n=t.noexpand?null:this._getExpansion(a);if(n==null||e&&n.unexpandable){if(e&&n==null&&a[0]==="\\"&&!this.isDefined(a))throw new S("Undefined control sequence: "+a);return this.pushToken(t),!1}this.countExpansion(1);var l=n.tokens,u=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs){l=l.slice();for(var h=l.length-1;h>=0;--h){var c=l[h];if(c.text==="#"){if(h===0)throw new S("Incomplete placeholder at end of macro body",c);if(c=l[--h],c.text==="#")l.splice(h+1,1);else if(/^[1-9]$/.test(c.text))l.splice(h,2,...u[+c.text-1]);else throw new S("Not a valid argument number",c)}}}return this.pushTokens(l),l.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}}expandMacro(e){return this.macros.has(e)?this.expandTokens([new d0(e)]):void 0}expandTokens(e){var t=[],a=this.stack.length;for(this.pushTokens(e);this.stack.length>a;)if(this.expandOnce(!0)===!1){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(n)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(a=>a.text).join("")}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var a=this.lexer.catcodes[e];if(a!=null&&a!==13)return}var n=typeof t=="function"?t(this):t;if(typeof n=="string"){var l=0;if(n.includes("#"))for(var u=n.replace(/##/g,"");u.includes("#"+(l+1));)++l;for(var h=new Ar(n,this.settings),c=[],v=h.lex();v.text!=="EOF";)c.push(v),v=h.lex();c.reverse();var g={tokens:c,numArgs:l};return g}return n}isDefined(e){return this.macros.has(e)||F0.hasOwnProperty(e)||$.math.hasOwnProperty(e)||$.text.hasOwnProperty(e)||S1.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return t!=null?typeof t=="string"||typeof t=="function"||!t.unexpandable:F0.hasOwnProperty(e)&&!F0[e].primitive}}var Br=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,Be=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),ct={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},Dr={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class je{constructor(e,t){this.mode="math",this.gullet=new p4(e,t,this.mode),this.settings=t,this.leftrightDepth=0,this.nextToken=null}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new S("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new d0("}")),this.gullet.pushTokens(e);var a=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,a}parseExpression(e,t){for(var a=[];;){this.mode==="math"&&this.consumeSpaces();var n=this.fetch();if(je.endOfExpression.has(n.text)||t&&n.text===t||e&&F0[n.text]&&F0[n.text].infix)break;var l=this.parseAtom(t);if(l){if(l.type==="internal")continue}else break;a.push(l)}return this.mode==="text"&&this.formLigatures(a),this.handleInfixNodes(a)}handleInfixNodes(e){for(var t=-1,a,n=0;n=128)this.settings.strict&&(Cr(t.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),e)),u={type:"textord",mode:"text",loc:c0.range(e),text:t};else return null;if(this.consume(),l)for(var b=0;b.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/nanobot/web/dist/assets/keepalived-BjtF8mfb.js b/nanobot/web/dist/assets/keepalived-BjtF8mfb.js deleted file mode 100644 index 9f7c9ad..0000000 --- a/nanobot/web/dist/assets/keepalived-BjtF8mfb.js +++ /dev/null @@ -1 +0,0 @@ -import{g as n}from"./syntax-highlight-CQw1bBY6.js";function p(e,s){for(var t=0;tr[_]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=i;i.displayName="keepalived";i.aliases=[];function i(e){e.languages.keepalived={comment:{pattern:/[#!].*/,greedy:!0},string:{pattern:/(^|[^\\])(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,lookbehind:!0,greedy:!0},ip:{pattern:RegExp(/\b(?:(?:(?:[\da-f]{1,4}:){7}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}:[\da-f]{1,4}|(?:[\da-f]{1,4}:){5}:(?:[\da-f]{1,4}:)?[\da-f]{1,4}|(?:[\da-f]{1,4}:){4}:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4}|(?:[\da-f]{1,4}:){3}:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4}|(?:[\da-f]{1,4}:){2}:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}|(?:[\da-f]{1,4}:){0,5}:|::(?:[\da-f]{1,4}:){0,5}|[\da-f]{1,4}::(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4}|::(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,7}:)(?:\/\d{1,3})?|(?:\/\d{1,2})?)\b/.source.replace(//g,function(){return/(?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d))/.source}),"i"),alias:"number"},path:{pattern:/(\s)\/(?:[^\/\s]+\/)*[^\/\s]*|\b[a-zA-Z]:\\(?:[^\\\s]+\\)*[^\\\s]*/,lookbehind:!0,alias:"string"},variable:/\$\{?\w+\}?/,email:{pattern:/[\w-]+@[\w-]+(?:\.[\w-]{2,3}){1,2}/,alias:"string"},"conditional-configuration":{pattern:/@\^?[\w-]+/,alias:"variable"},operator:/=/,property:/\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\b/,constant:/\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\b/,number:{pattern:/(^|[^\w.-])-?\d+(?:\.\d+)?/,lookbehind:!0},boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\{\}]/}}const c=n(o),f=p({__proto__:null,default:c},[o]);export{f as k}; diff --git a/nanobot/web/dist/assets/keyman-C5NvufiI.js b/nanobot/web/dist/assets/keyman-C5NvufiI.js deleted file mode 100644 index 8917394..0000000 --- a/nanobot/web/dist/assets/keyman-C5NvufiI.js +++ /dev/null @@ -1 +0,0 @@ -import{g as y}from"./syntax-highlight-CQw1bBY6.js";function l(e,s){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="keyman";o.aliases=[];function o(e){e.languages.keyman={comment:{pattern:/\bc .*/i,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},"virtual-key":{pattern:/\[\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\s+)*(?:[TKU]_[\w?]+|[A-E]\d\d?|"[^"\r\n]*"|'[^'\r\n]*')\s*\]/i,greedy:!0,alias:"function"},"header-keyword":{pattern:/&\w+/,alias:"bold"},"header-statement":{pattern:/\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\b/i,alias:"bold"},"rule-keyword":{pattern:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\b/i,alias:"keyword"},"structural-keyword":{pattern:/\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\b/i,alias:"keyword"},"compile-target":{pattern:/\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,alias:"property"},number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\$]|\.\./,punctuation:/[()=,]/}}const u=y(i),d=l({__proto__:null,default:u},[i]);export{d as k}; diff --git a/nanobot/web/dist/assets/kotlin-J7_zRHNo.js b/nanobot/web/dist/assets/kotlin-J7_zRHNo.js deleted file mode 100644 index 82bcccc..0000000 --- a/nanobot/web/dist/assets/kotlin-J7_zRHNo.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(n,e){for(var t=0;ta[i]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="kotlin";o.aliases=["kt","kts"];function o(n){(function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin})(n)}const g=s(l),d=u({__proto__:null,default:g},[l]);export{d as k}; diff --git a/nanobot/web/dist/assets/kumir-B23cJ_QC.js b/nanobot/web/dist/assets/kumir-B23cJ_QC.js deleted file mode 100644 index 1dd1f90..0000000 --- a/nanobot/web/dist/assets/kumir-B23cJ_QC.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function s(o,r){for(var t=0;te[n]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var u=d;d.displayName="kumir";d.aliases=["kum"];function d(o){(function(r){var t=/\s\x00-\x1f\x22-\x2f\x3a-\x3f\x5b-\x5e\x60\x7b-\x7e/.source;function e(n,a){return RegExp(n.replace(//g,t),a)}r.languages.kumir={comment:{pattern:/\|.*/},prolog:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^\n\r"]*"|'[^\n\r']*'/,greedy:!0},boolean:{pattern:e(/(^|[])(?:да|нет)(?=[]|$)/.source),lookbehind:!0},"operator-word":{pattern:e(/(^|[])(?:и|или|не)(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},"system-variable":{pattern:e(/(^|[])знач(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},type:[{pattern:e(/(^|[])(?:вещ|лит|лог|сим|цел)(?:\x20*таб)?(?=[]|$)/.source),lookbehind:!0,alias:"builtin"},{pattern:e(/(^|[])(?:компл|сканкод|файл|цвет)(?=[]|$)/.source),lookbehind:!0,alias:"important"}],keyword:{pattern:e(/(^|[])(?:алг|арг(?:\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\x20+|_)исп)?|кц(?:(?:\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[]|$)/.source),lookbehind:!0},name:{pattern:e(/(^|[])[^\d][^]*(?:\x20+[^]+)*(?=[]|$)/.source),lookbehind:!0},number:{pattern:e(/(^|[])(?:\B\$[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?=[]|$)/.source,"i"),lookbehind:!0},punctuation:/:=|[(),:;\[\]]/,"operator-char":{pattern:/\*\*?|<[=>]?|>=?|[-+/=]/,alias:"operator"}},r.languages.kum=r.languages.kumir})(o)}const l=i(u),c=s({__proto__:null,default:l},[u]);export{c as k}; diff --git a/nanobot/web/dist/assets/kusto-hOrF6As9.js b/nanobot/web/dist/assets/kusto-hOrF6As9.js deleted file mode 100644 index 06db2f8..0000000 --- a/nanobot/web/dist/assets/kusto-hOrF6As9.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function u(e,o){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=s;s.displayName="kusto";s.aliases=[];function s(e){e.languages.kusto={comment:{pattern:/\/\/.*/,greedy:!0},string:{pattern:/```[\s\S]*?```|[hH]?(?:"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\.)*'|@(?:"[^\r\n"]*"|'[^\r\n']*'))/,greedy:!0},verb:{pattern:/(\|\s*)[a-z][\w-]*/i,lookbehind:!0,alias:"keyword"},command:{pattern:/\.[a-z][a-z\d-]*\b/,alias:"keyword"},"class-name":/\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\b/,keyword:/\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\s+regex|nulls\s+(?:first|last))(?![\w-])/,boolean:/\b(?:false|null|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/,datetime:[{pattern:/\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\s*,\s*)?\d{1,2}(?:\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\s+|-)\d{2}\s+\d{2}:\d{2}(?::\d{2})?(?:\s*(?:\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\d{4}))?\b/,alias:"number"},{pattern:/[+-]?\b(?:\d{4}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)?|\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)Z?/,alias:"number"}],number:/\b(?:0x[0-9A-Fa-f]+|\d+(?:\.\d+)?(?:[Ee][+-]?\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\b)?|[+-]?\binf\b/,operator:/=>|[!=]~|[!=<>]=?|[-+*/%|]|\.\./,punctuation:/[()\[\]{},;.:]/}}const l=d(i),b=u({__proto__:null,default:l},[i]);export{b as k}; diff --git a/nanobot/web/dist/assets/latex-CVAjmBgr.js b/nanobot/web/dist/assets/latex-CVAjmBgr.js deleted file mode 100644 index b1f410a..0000000 --- a/nanobot/web/dist/assets/latex-CVAjmBgr.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function u(n,e){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var o=l;l.displayName="latex";l.aliases=["tex","context"];function l(n){(function(e){var a=/\\(?:[^a-z()[\]]|[a-z*]+)/i,t={"equation-command":{pattern:a,alias:"regex"}};e.languages.latex={comment:/%.*/,cdata:{pattern:/(\\begin\{((?:lstlisting|verbatim)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:t,alias:"string"},{pattern:/(\\begin\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:t,alias:"string"}],keyword:{pattern:/(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0,alias:"class-name"},function:{pattern:a,alias:"selector"},punctuation:/[[\]{}&]/},e.languages.tex=e.languages.latex,e.languages.context=e.languages.latex})(n)}const g=i(o),p=u({__proto__:null,default:g},[o]);export{p as l}; diff --git a/nanobot/web/dist/assets/latte-C97bSdfk.js b/nanobot/web/dist/assets/latte-C97bSdfk.js deleted file mode 100644 index 86f6a15..0000000 --- a/nanobot/web/dist/assets/latte-C97bSdfk.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";import{a as s}from"./markup-templating-C7tXeHgl.js";import{a as u}from"./php-ZeDnPesV.js";function g(a,t){for(var n=0;ne[r]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var f=s,d=u,p=l;l.displayName="latte";l.aliases=[];function l(a){a.register(f),a.register(d),function(t){t.languages.latte={comment:/^\{\*[\s\S]*/,"latte-tag":{pattern:/(^\{(?:\/(?=[a-z]))?)(?:[=_]|[a-z]\w*\b(?!\())/i,lookbehind:!0,alias:"important"},delimiter:{pattern:/^\{\/?|\}$/,alias:"punctuation"},php:{pattern:/\S(?:[\s\S]*\S)?/,alias:"language-php",inside:t.languages.php}};var n=t.languages.extend("markup",{});t.languages.insertBefore("inside","attr-value",{"n-attr":{pattern:/n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,inside:{"attr-name":{pattern:/^[^\s=]+/,alias:"important"},"attr-value":{pattern:/=[\s\S]+/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}],php:{pattern:/\S(?:[\s\S]*\S)?/,inside:t.languages.php}}}}}},n.tag),t.hooks.add("before-tokenize",function(e){if(e.language==="latte"){var r=/\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*\}/g;t.languages["markup-templating"].buildPlaceholders(e,"latte",r),e.grammar=n}}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"latte")})}(a)}const c=i(p),S=g({__proto__:null,default:c},[p]);export{S as l}; diff --git a/nanobot/web/dist/assets/less-MSnY9PMx.js b/nanobot/web/dist/assets/less-MSnY9PMx.js deleted file mode 100644 index 128e7d5..0000000 --- a/nanobot/web/dist/assets/less-MSnY9PMx.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function u(e,o){for(var r=0;rt[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="less";n.aliases=[];function n(e){e.languages.less=e.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),e.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}})}const p=i(l),f=u({__proto__:null,default:p},[l]);export{f as l}; diff --git a/nanobot/web/dist/assets/lilypond-p_PAaWex.js b/nanobot/web/dist/assets/lilypond-p_PAaWex.js deleted file mode 100644 index ac0f085..0000000 --- a/nanobot/web/dist/assets/lilypond-p_PAaWex.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";import{a as d}from"./scheme-95DcWLIO.js";function p(o,a){for(var e=0;en[r]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var u=d,i=s;s.displayName="lilypond";s.aliases=[];function s(o){o.register(u),function(a){for(var e=/\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|)*\)/.source,n=5,r=0;r/g,function(){return e});e=e.replace(//g,/[^\s\S]/.source);var t=a.languages.lilypond={comment:/%(?:(?!\{).*|\{[\s\S]*?%\})/,"embedded-scheme":{pattern:RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|))/.source.replace(//g,function(){return e}),"m"),lookbehind:!0,greedy:!0,inside:{scheme:{pattern:/^(#)[\s\S]+$/,lookbehind:!0,alias:"language-scheme",inside:{"embedded-lilypond":{pattern:/#\{[\s\S]*?#\}/,greedy:!0,inside:{punctuation:/^#\{|#\}$/,lilypond:{pattern:/[\s\S]+/,alias:"language-lilypond",inside:null}}},rest:a.languages.scheme}},punctuation:/#/}},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":{pattern:/(\\new\s+)[\w-]+/,lookbehind:!0},keyword:{pattern:/\\[a-z][-\w]*/i,inside:{punctuation:/^\\/}},operator:/[=|]|<<|>>/,punctuation:{pattern:/(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,lookbehind:!0},number:/\b\d+(?:\/\d+)?\b/};t["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside=t,a.languages.ly=t}(o)}const c=l(i),m=p({__proto__:null,default:c},[i]);export{m as l}; diff --git a/nanobot/web/dist/assets/liquid-B8aVMUNN.js b/nanobot/web/dist/assets/liquid-B8aVMUNN.js deleted file mode 100644 index 230deec..0000000 --- a/nanobot/web/dist/assets/liquid-B8aVMUNN.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";import{a as u}from"./markup-templating-C7tXeHgl.js";function d(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var p=u,s=i;i.displayName="liquid";i.aliases=[];function i(e){e.register(p),e.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,object:/\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:false|nil|true)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|contains(?=\s)|or)\b/,punctuation:/[.,\[\]()]/,empty:{pattern:/\bempty\b/,alias:"keyword"}},e.hooks.add("before-tokenize",function(a){var n=/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,t=!1;e.languages["markup-templating"].buildPlaceholders(a,"liquid",n,function(r){var o=/^\{%-?\s*(\w+)/.exec(r);if(o){var l=o[1];if(l==="raw"&&!t)return t=!0,!0;if(l==="endraw")return t=!1,!0}return!t})}),e.hooks.add("after-tokenize",function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"liquid")})}const m=c(s),_=d({__proto__:null,default:m},[s]);export{_ as l}; diff --git a/nanobot/web/dist/assets/lisp-DmghxcuK.js b/nanobot/web/dist/assets/lisp-DmghxcuK.js deleted file mode 100644 index a27d72e..0000000 --- a/nanobot/web/dist/assets/lisp-DmghxcuK.js +++ /dev/null @@ -1 +0,0 @@ -import{g as y}from"./syntax-highlight-CQw1bBY6.js";function k(o,t){for(var s=0;sa[e]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var m=g;g.displayName="lisp";g.aliases=[];function g(o){(function(t){function s(c){return RegExp(/(\()/.source+"(?:"+c+")"+/(?=[\s\)])/.source)}function a(c){return RegExp(/([\s([])/.source+"(?:"+c+")"+/(?=[\s)])/.source)}var e=/(?!\d)[-+*/~!@$%^=<>{}\w]+/.source,i="&"+e,n="(\\()",f="(?=\\))",b="(?=\\s)",l=/(?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\))*\))*\))*/.source,r={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:RegExp("`"+e+"'")}},"quoted-symbol":{pattern:RegExp("#?'"+e),alias:["variable","symbol"]},"lisp-property":{pattern:RegExp(":"+e),alias:"property"},splice:{pattern:RegExp(",@?"+e),alias:["symbol","variable"]},keyword:[{pattern:RegExp(n+"(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)"+b),lookbehind:!0},{pattern:RegExp(n+"(?:append|by|collect|concat|do|finally|for|in|return)"+b),lookbehind:!0}],declare:{pattern:s(/declare/.source),lookbehind:!0,alias:"keyword"},interactive:{pattern:s(/interactive/.source),lookbehind:!0,alias:"keyword"},boolean:{pattern:a(/nil|t/.source),lookbehind:!0},number:{pattern:a(/[-+]?\d+(?:\.\d*)?/.source),lookbehind:!0},defvar:{pattern:RegExp(n+"def(?:const|custom|group|var)\\s+"+e),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:RegExp(e)}},defun:{pattern:RegExp(n+/(?:cl-)?(?:defmacro|defun\*?)\s+/.source+e+/\s+\(/.source+l+/\)/.source),lookbehind:!0,greedy:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:RegExp("(^\\s)"+e),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:RegExp(n+"lambda\\s+\\(\\s*(?:&?"+e+"(?:\\s+&?"+e+")*\\s*)?\\)"),lookbehind:!0,greedy:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:RegExp(n+e),lookbehind:!0},punctuation:[/(?:['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},u={"lisp-marker":RegExp(i),varform:{pattern:RegExp(/\(/.source+e+/\s+(?=\S)/.source+l+/\)/.source),inside:r},argument:{pattern:RegExp(/(^|[\s(])/.source+e),lookbehind:!0,alias:"variable"},rest:r},p="\\S+(?:\\s+\\S+)*",d={pattern:RegExp(n+l+f),lookbehind:!0,inside:{"rest-vars":{pattern:RegExp("&(?:body|rest)\\s+"+p),inside:u},"other-marker-vars":{pattern:RegExp("&(?:aux|optional)\\s+"+p),inside:u},keys:{pattern:RegExp("&key\\s+"+p+"(?:\\s+&allow-other-keys)?"),inside:u},argument:{pattern:RegExp(e),alias:"variable"},punctuation:/[()]/}};r.lambda.inside.arguments=d,r.defun.inside.arguments=t.util.clone(d),r.defun.inside.arguments.inside.sublist=d,t.languages.lisp=r,t.languages.elisp=r,t.languages.emacs=r,t.languages["emacs-lisp"]=r})(o)}const v=y(m),E=k({__proto__:null,default:v},[m]);export{E as l}; diff --git a/nanobot/web/dist/assets/livescript-BOOF9n2n.js b/nanobot/web/dist/assets/livescript-BOOF9n2n.js deleted file mode 100644 index 79e8823..0000000 --- a/nanobot/web/dist/assets/livescript-BOOF9n2n.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function p(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="livescript";o.aliases=[];function o(e){e.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},e.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=e.languages.livescript}const d=s(l),c=p({__proto__:null,default:d},[l]);export{c as l}; diff --git a/nanobot/web/dist/assets/llvm-DnfyKmw7.js b/nanobot/web/dist/assets/llvm-DnfyKmw7.js deleted file mode 100644 index 595a1d4..0000000 --- a/nanobot/web/dist/assets/llvm-DnfyKmw7.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";function d(e,l){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var f=n;n.displayName="llvm";n.aliases=[];function n(e){(function(l){l.languages.llvm={comment:/;.*/,string:{pattern:/"[^"]*"/,greedy:!0},boolean:/\b(?:false|true)\b/,variable:/[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,type:{pattern:/\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/,alias:"class-name"},keyword:/\b[a-z_][a-z_0-9]*\b/,number:/[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/,punctuation:/[{}[\];(),.!*=<>]/}})(e)}const i=b(f),m=d({__proto__:null,default:i},[f]);export{m as l}; diff --git a/nanobot/web/dist/assets/log-BfaPYPxB.js b/nanobot/web/dist/assets/log-BfaPYPxB.js deleted file mode 100644 index 70caf3b..0000000 --- a/nanobot/web/dist/assets/log-BfaPYPxB.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";function l(a,s){for(var r=0;re[t]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="log";o.aliases=[];function o(a){a.languages.log={string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/,greedy:!0},exception:{pattern:/(^|[^\w.])[a-z][\w.]*(?:Error|Exception):.*(?:(?:\r\n?|\n)[ \t]*(?:at[ \t].+|\.{3}.*|Caused by:.*))+(?:(?:\r\n?|\n)[ \t]*\.\.\. .*)?/,lookbehind:!0,greedy:!0,alias:["javastacktrace","language-javastacktrace"],inside:a.languages.javastacktrace||{keyword:/\bat\b/,function:/[a-z_][\w$]*(?=\()/,punctuation:/[.:()]/}},level:[{pattern:/\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/,alias:["error","important"]},{pattern:/\b(?:WARN|WARNING|WRN)\b/,alias:["warning","important"]},{pattern:/\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/,alias:["info","keyword"]},{pattern:/\b(?:DBG|DEBUG|FINE)\b/,alias:["debug","keyword"]},{pattern:/\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/,alias:["trace","comment"]}],property:{pattern:/((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im,lookbehind:!0},separator:{pattern:/(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m,lookbehind:!0,alias:"comment"},url:/\b(?:file|ftp|https?):\/\/[^\s|,;'"]*[^\s|,;'">.]/,email:{pattern:/(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/,lookbehind:!0,alias:"url"},"ip-address":{pattern:/\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/,alias:"constant"},"mac-address":{pattern:/\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i,alias:"constant"},domain:{pattern:/(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/,lookbehind:!0,alias:"constant"},uuid:{pattern:/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i,alias:"constant"},hash:{pattern:/\b(?:[a-f0-9]{32}){1,2}\b/i,alias:"constant"},"file-path":{pattern:/\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i,lookbehind:!0,greedy:!0,alias:"string"},date:{pattern:RegExp(/\b\d{4}[-/]\d{2}[-/]\d{2}(?:T(?=\d{1,2}:)|(?=\s\d{1,2}:))/.source+"|"+/\b\d{1,4}[-/ ](?:\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\d{2,4}T?\b/.source+"|"+/\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\s{1,2}\d{1,2}\b/.source,"i"),alias:"number"},time:{pattern:/\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/,alias:"number"},boolean:/\b(?:false|null|true)\b/i,number:{pattern:/(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i,lookbehind:!0},operator:/[;:?<=>~/@!$%&+\-|^(){}*#]/,punctuation:/[\[\].,]/}}const u=b(i),p=l({__proto__:null,default:u},[i]);export{p as l}; diff --git a/nanobot/web/dist/assets/lolcode-DerHYECs.js b/nanobot/web/dist/assets/lolcode-DerHYECs.js deleted file mode 100644 index 5182b4c..0000000 --- a/nanobot/web/dist/assets/lolcode-DerHYECs.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function O(e,l){for(var r=0;rt[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var I=a;a.displayName="lolcode";a.aliases=[];function a(e){e.languages.lolcode={comment:[/\bOBTW\s[\s\S]*?\sTLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^":])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\?|YA RLY|YR)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:FAIL|WIN)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/}}const i=s(I),A=O({__proto__:null,default:i},[I]);export{A as l}; diff --git a/nanobot/web/dist/assets/lua-CiOFnLEM.js b/nanobot/web/dist/assets/lua-CiOFnLEM.js deleted file mode 100644 index 89adeb3..0000000 --- a/nanobot/web/dist/assets/lua-CiOFnLEM.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function s(e,l){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=o;o.displayName="lua";o.aliases=[];function o(e){e.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}const f=i(u),c=s({__proto__:null,default:f},[u]);export{u as a,c as l}; diff --git a/nanobot/web/dist/assets/magma-BB9R5GEK.js b/nanobot/web/dist/assets/magma-BB9R5GEK.js deleted file mode 100644 index e20bcd7..0000000 --- a/nanobot/web/dist/assets/magma-BB9R5GEK.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function l(e,i){for(var a=0;ar[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="magma";o.aliases=[];function o(e){e.languages.magma={output:{pattern:/^(>.*(?:\r(?:\n|(?!\n))|\n))(?!>)(?:.+|(?:\r(?:\n|(?!\n))|\n)(?!>).*)(?:(?:\r(?:\n|(?!\n))|\n)(?!>).*)*/m,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\"])"(?:[^\r\n\\"]|\\.)*"/,lookbehind:!0,greedy:!0},keyword:/\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\b/,boolean:/\b(?:false|true)\b/,generator:{pattern:/\b[a-z_]\w*(?=\s*<)/i,alias:"class-name"},function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},operator:/->|[-+*/^~!|#=]|:=|\.\./,punctuation:/[()[\]{}<>,;.:]/}}const u=d(s),m=l({__proto__:null,default:u},[s]);export{m}; diff --git a/nanobot/web/dist/assets/makefile-BbXlcAPo.js b/nanobot/web/dist/assets/makefile-BbXlcAPo.js deleted file mode 100644 index fd03654..0000000 --- a/nanobot/web/dist/assets/makefile-BbXlcAPo.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function f(e,o){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=n;n.displayName="makefile";n.aliases=[];function n(e){e.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}const d=l(s),p=f({__proto__:null,default:d},[s]);export{p as m}; diff --git a/nanobot/web/dist/assets/markdown-BmWygCF5.js b/nanobot/web/dist/assets/markdown-BmWygCF5.js deleted file mode 100644 index d5c3a6d..0000000 --- a/nanobot/web/dist/assets/markdown-BmWygCF5.js +++ /dev/null @@ -1 +0,0 @@ -import{g as x}from"./syntax-highlight-CQw1bBY6.js";function $(c,e){for(var f=0;fo[s]})}}}return Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var m=k;k.displayName="markdown";k.aliases=["md"];function k(c){(function(e){var f=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function o(t){return t=t.replace(//g,function(){return f}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+t+")")}var s=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,i=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return s}),b=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+i+b+"(?:"+i+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+i+b+")(?:"+i+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(s),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+i+")"+b+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+i+"$"),inside:{"table-header":{pattern:RegExp(s),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:o(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:o(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:o(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:o(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(t){if(t.language!=="markdown"&&t.language!=="md")return;function n(u){if(!(!u||typeof u=="string"))for(var r=0,p=u.length;r",quot:'"'},w=String.fromCodePoint||String.fromCharCode;function v(t){var n=t.replace(_,"");return n=n.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(u,r){if(r=r.toLowerCase(),r[0]==="#"){var p;return r[1]==="x"?p=parseInt(r.slice(2),16):p=Number(r.slice(1)),w(p)}else{var l=y[r];return l||u}}),n}e.languages.md=e.languages.markdown})(c)}const S=x(m),C=$({__proto__:null,default:S},[m]);export{C as m}; diff --git a/nanobot/web/dist/assets/markdown-vendor-BC7Vi29N.js b/nanobot/web/dist/assets/markdown-vendor-BC7Vi29N.js deleted file mode 100644 index c8bab85..0000000 --- a/nanobot/web/dist/assets/markdown-vendor-BC7Vi29N.js +++ /dev/null @@ -1,43 +0,0 @@ -import{r as el,c as it,g as Ar}from"./syntax-highlight-CQw1bBY6.js";import{k as xn}from"./katex-BSBacQyE.js";var Tr={exports:{}},st={};/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var tl=el,nl=Symbol.for("react.element"),rl=Symbol.for("react.fragment"),il=Object.prototype.hasOwnProperty,ll=tl.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ol={key:!0,ref:!0,__self:!0,__source:!0};function Fr(e,t,n){var r,i={},o=null,l=null;n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(l=t.ref);for(r in t)il.call(t,r)&&!ol.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)i[r]===void 0&&(i[r]=t[r]);return{$$typeof:nl,type:e,key:o,ref:l,props:i,_owner:ll.current}}st.Fragment=rl;st.jsx=Fr;st.jsxs=Fr;Tr.exports=st;var dt=Tr.exports;function kn(e){const t=[],n=String(e||"");let r=n.indexOf(","),i=0,o=!1;for(;!o;){r===-1&&(r=n.length,o=!0);const l=n.slice(i,r).trim();(l||!o)&&t.push(l),i=r+1,r=n.indexOf(",",i)}return t}function al(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const ul=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,sl=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,cl={};function bn(e,t){return(cl.jsx?sl:ul).test(e)}const fl=/[ \t\n\f\r]/g;function hl(e){return typeof e=="object"?e.type==="text"?wn(e.value):!1:wn(e)}function wn(e){return e.replace(fl,"")===""}class Ye{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Ye.prototype.normal={};Ye.prototype.property={};Ye.prototype.space=void 0;function Pr(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Ye(n,r,t)}function Ue(e){return e.toLowerCase()}class ee{constructor(t,n){this.attribute=n,this.property=t}}ee.prototype.attribute="";ee.prototype.booleanish=!1;ee.prototype.boolean=!1;ee.prototype.commaOrSpaceSeparated=!1;ee.prototype.commaSeparated=!1;ee.prototype.defined=!1;ee.prototype.mustUseProperty=!1;ee.prototype.number=!1;ee.prototype.overloadedBoolean=!1;ee.prototype.property="";ee.prototype.spaceSeparated=!1;ee.prototype.space=void 0;let pl=0;const M=Ie(),W=Ie(),Lt=Ie(),E=Ie(),U=Ie(),ve=Ie(),ne=Ie();function Ie(){return 2**++pl}const Mt=Object.freeze(Object.defineProperty({__proto__:null,boolean:M,booleanish:W,commaOrSpaceSeparated:ne,commaSeparated:ve,number:E,overloadedBoolean:Lt,spaceSeparated:U},Symbol.toStringTag,{value:"Module"})),yt=Object.keys(Mt);class Wt extends ee{constructor(t,n,r,i){let o=-1;if(super(t,n),Sn(this,"space",i),typeof r=="number")for(;++o4&&n.slice(0,4)==="data"&&xl.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(Cn,bl);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!Cn.test(o)){let l=o.replace(yl,kl);l.charAt(0)!=="-"&&(l="-"+l),t="data"+l}}i=Wt}return new i(r,t)}function kl(e){return"-"+e.toLowerCase()}function bl(e){return e.charAt(1).toUpperCase()}const Nr=Pr([zr,ml,Lr,Mr,_r],"html"),ct=Pr([zr,gl,Lr,Mr,_r],"svg");function En(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function wl(e){return e.join(" ").trim()}var Yt={},In=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,Sl=/\n/g,Cl=/^\s*/,El=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Il=/^:\s*/,Al=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Tl=/^[;\s]*/,Fl=/^\s+|\s+$/g,Pl=` -`,An="/",Tn="*",Ce="",zl="comment",Dl="declaration";function vl(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(m){var y=m.match(Sl);y&&(n+=y.length);var C=m.lastIndexOf(Pl);r=~C?m.length-C:r+m.length}function o(){var m={line:n,column:r};return function(y){return y.position=new l(m),s(),y}}function l(m){this.start=m,this.end={line:n,column:r},this.source=t.source}l.prototype.content=e;function a(m){var y=new Error(t.source+":"+n+":"+r+": "+m);if(y.reason=m,y.filename=t.source,y.line=n,y.column=r,y.source=e,!t.silent)throw y}function u(m){var y=m.exec(e);if(y){var C=y[0];return i(C),e=e.slice(C.length),y}}function s(){u(Cl)}function f(m){var y;for(m=m||[];y=c();)y!==!1&&m.push(y);return m}function c(){var m=o();if(!(An!=e.charAt(0)||Tn!=e.charAt(1))){for(var y=2;Ce!=e.charAt(y)&&(Tn!=e.charAt(y)||An!=e.charAt(y+1));)++y;if(y+=2,Ce===e.charAt(y-1))return a("End of comment missing");var C=e.slice(2,y-2);return r+=2,i(C),e=e.slice(y),r+=2,m({type:zl,comment:C})}}function p(){var m=o(),y=u(El);if(y){if(c(),!u(Il))return a("property missing ':'");var C=u(Al),x=m({type:Dl,property:Fn(y[0].replace(In,Ce)),value:C?Fn(C[0].replace(In,Ce)):Ce});return u(Tl),x}}function h(){var m=[];f(m);for(var y;y=p();)y!==!1&&(m.push(y),f(m));return m}return s(),h()}function Fn(e){return e?e.replace(Fl,Ce):Ce}var Ll=vl,Ml=it&&it.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Yt,"__esModule",{value:!0});Yt.default=Ol;const _l=Ml(Ll);function Ol(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,_l.default)(e),i=typeof t=="function";return r.forEach(o=>{if(o.type!=="declaration")return;const{property:l,value:a}=o;i?t(l,a,o):a&&(n=n||{},n[l]=a)}),n}var ft={};Object.defineProperty(ft,"__esModule",{value:!0});ft.camelCase=void 0;var Nl=/^--[a-zA-Z0-9_-]+$/,Rl=/-([a-z])/g,Bl=/^[^-]+$/,jl=/^-(webkit|moz|ms|o|khtml)-/,$l=/^-(ms)-/,Hl=function(e){return!e||Bl.test(e)||Nl.test(e)},ql=function(e,t){return t.toUpperCase()},Pn=function(e,t){return"".concat(t,"-")},Ul=function(e,t){return t===void 0&&(t={}),Hl(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace($l,Pn):e=e.replace(jl,Pn),e.replace(Rl,ql))};ft.camelCase=Ul;var Vl=it&&it.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},Wl=Vl(Yt),Yl=ft;function _t(e,t){var n={};return!e||typeof e!="string"||(0,Wl.default)(e,function(r,i){r&&i&&(n[(0,Yl.camelCase)(r,t)]=i)}),n}_t.default=_t;var Gl=_t;const Xl=Ar(Gl),Rr=Br("end"),Gt=Br("start");function Br(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function Ql(e){const t=Gt(e),n=Rr(e);if(t&&n)return{start:t,end:n}}function $e(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zn(e.position):"start"in e||"end"in e?zn(e):"line"in e||"column"in e?Ot(e):""}function Ot(e){return Dn(e&&e.line)+":"+Dn(e&&e.column)}function zn(e){return Ot(e&&e.start)+"-"+Ot(e&&e.end)}function Dn(e){return e&&typeof e=="number"?e:1}class K extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",o={},l=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?i=t:!o.cause&&t&&(l=!0,i=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof r=="string"){const u=r.indexOf(":");u===-1?o.ruleId=r:(o.source=r.slice(0,u),o.ruleId=r.slice(u+1))}if(!o.place&&o.ancestors&&o.ancestors){const u=o.ancestors[o.ancestors.length-1];u&&(o.place=u.position)}const a=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=$e(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=l&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}K.prototype.file="";K.prototype.name="";K.prototype.reason="";K.prototype.message="";K.prototype.stack="";K.prototype.column=void 0;K.prototype.line=void 0;K.prototype.ancestors=void 0;K.prototype.cause=void 0;K.prototype.fatal=void 0;K.prototype.place=void 0;K.prototype.ruleId=void 0;K.prototype.source=void 0;const Xt={}.hasOwnProperty,Kl=new Map,Jl=/[A-Z]/g,Zl=new Set(["table","tbody","thead","tfoot","tr"]),eo=new Set(["td","th"]),jr="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function to(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=so(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=uo(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?ct:Nr,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=$r(i,e,void 0);return o&&typeof o!="string"?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function $r(e,t,n){if(t.type==="element")return no(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return ro(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return lo(e,t,n);if(t.type==="mdxjsEsm")return io(e,t);if(t.type==="root")return oo(e,t,n);if(t.type==="text")return ao(e,t)}function no(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=ct,e.schema=i),e.ancestors.push(t);const o=qr(e,t.tagName,!1),l=co(e,t);let a=Kt(e,t);return Zl.has(t.tagName)&&(a=a.filter(function(u){return typeof u=="string"?!hl(u):!0})),Hr(e,l,o,t),Qt(l,a),e.ancestors.pop(),e.schema=r,e.create(t,o,l,n)}function ro(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}Ve(e,t.position)}function io(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Ve(e,t.position)}function lo(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=ct,e.schema=i),e.ancestors.push(t);const o=t.name===null?e.Fragment:qr(e,t.name,!0),l=fo(e,t),a=Kt(e,t);return Hr(e,l,o,t),Qt(l,a),e.ancestors.pop(),e.schema=r,e.create(t,o,l,n)}function oo(e,t,n){const r={};return Qt(r,Kt(e,t)),e.create(t,e.Fragment,r,n)}function ao(e,t){return t.value}function Hr(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Qt(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function uo(e,t,n){return r;function r(i,o,l,a){const s=Array.isArray(l.children)?n:t;return a?s(o,l,a):s(o,l)}}function so(e,t){return n;function n(r,i,o,l){const a=Array.isArray(o.children),u=Gt(r);return t(i,o,l,a,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function co(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&Xt.call(t.properties,i)){const o=ho(e,i,t.properties[i]);if(o){const[l,a]=o;e.tableCellAlignToStyle&&l==="align"&&typeof a=="string"&&eo.has(t.tagName)?r=a:n[l]=a}}if(r){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function fo(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const o=r.data.estree.body[0];o.type;const l=o.expression;l.type;const a=l.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else Ve(e,t.position);else{const i=r.name;let o;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,o=e.evaluater.evaluateExpression(a.expression)}else Ve(e,t.position);else o=r.value===null?!0:r.value;n[i]=o}return n}function Kt(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:Kl;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);o0?(re(e,e.length,0,t),e):t}const Mn={}.hasOwnProperty;function Vr(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function se(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const J=ke(/[A-Za-z]/),Q=ke(/[\dA-Za-z]/),So=ke(/[#-'*+\--9=?A-Z^-~]/);function lt(e){return e!==null&&(e<32||e===127)}const Nt=ke(/\d/),Co=ke(/[\dA-Fa-f]/),Eo=ke(/[!-/:-@[-`{-~]/);function T(e){return e!==null&&e<-2}function q(e){return e!==null&&(e<0||e===32)}function O(e){return e===-2||e===-1||e===32}const ht=ke(new RegExp("\\p{P}|\\p{S}","u")),Ee=ke(/\s/);function ke(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function _e(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&o<57344){const a=e.charCodeAt(n+1);o<56320&&a>56319&&a<57344?(l=String.fromCharCode(o,a),i=1):l="�"}else l=String.fromCharCode(o);l&&(t.push(e.slice(r,n),encodeURIComponent(l)),r=n+i+1,l=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function _(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return l;function l(u){return O(u)?(e.enter(n),a(u)):t(u)}function a(u){return O(u)&&o++l))return;const N=t.events.length;let j=N,L,k;for(;j--;)if(t.events[j][0]==="exit"&&t.events[j][1].type==="chunkFlow"){if(L){k=t.events[j][1].end;break}L=!0}for(x(r),S=N;SI;){const v=n[D];t.containerState=v[1],v[0].exit.call(t,e)}n.length=I}function b(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Po(e,t,n){return _(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Le(e){if(e===null||q(e)||Ee(e))return 1;if(ht(e))return 2}function pt(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const c={...e[r][1].end},p={...e[n][1].start};On(c,-u),On(p,u),l={type:u>1?"strongSequence":"emphasisSequence",start:c,end:{...e[r][1].end}},a={type:u>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:p},o={type:u>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:u>1?"strong":"emphasis",start:{...l.start},end:{...a.end}},e[r][1].end={...l.start},e[n][1].start={...a.end},s=[],e[r][1].end.offset-e[r][1].start.offset&&(s=ie(s,[["enter",e[r][1],t],["exit",e[r][1],t]])),s=ie(s,[["enter",i,t],["enter",l,t],["exit",l,t],["enter",o,t]]),s=ie(s,pt(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),s=ie(s,[["exit",o,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(f=2,s=ie(s,[["enter",e[n][1],t],["exit",e[n][1],t]])):f=0,re(e,r-1,n-r+3,s),n=r+s.length-f-2;break}}for(n=-1;++n0&&O(S)?_(e,b,"linePrefix",o+1)(S):b(S)}function b(S){return S===null||T(S)?e.check(Nn,y,D)(S):(e.enter("codeFlowValue"),I(S))}function I(S){return S===null||T(S)?(e.exit("codeFlowValue"),b(S)):(e.consume(S),I)}function D(S){return e.exit("codeFenced"),t(S)}function v(S,N,j){let L=0;return k;function k(B){return S.enter("lineEnding"),S.consume(B),S.exit("lineEnding"),F}function F(B){return S.enter("codeFencedFence"),O(B)?_(S,P,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(B):P(B)}function P(B){return B===a?(S.enter("codeFencedFenceSequence"),$(B)):j(B)}function $(B){return B===a?(L++,S.consume(B),$):L>=l?(S.exit("codeFencedFenceSequence"),O(B)?_(S,V,"whitespace")(B):V(B)):j(B)}function V(B){return B===null||T(B)?(S.exit("codeFencedFence"),N(B)):j(B)}}}function $o(e,t,n){const r=this;return i;function i(l){return l===null?n(l):(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o)}function o(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}const kt={name:"codeIndented",tokenize:qo},Ho={partial:!0,tokenize:Uo};function qo(e,t,n){const r=this;return i;function i(s){return e.enter("codeIndented"),_(e,o,"linePrefix",5)(s)}function o(s){const f=r.events[r.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?l(s):n(s)}function l(s){return s===null?u(s):T(s)?e.attempt(Ho,l,u)(s):(e.enter("codeFlowValue"),a(s))}function a(s){return s===null||T(s)?(e.exit("codeFlowValue"),l(s)):(e.consume(s),a)}function u(s){return e.exit("codeIndented"),t(s)}}function Uo(e,t,n){const r=this;return i;function i(l){return r.parser.lazy[r.now().line]?n(l):T(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i):_(e,o,"linePrefix",5)(l)}function o(l){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(l):T(l)?i(l):n(l)}}const Vo={name:"codeText",previous:Yo,resolve:Wo,tokenize:Go};function Wo(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&Be(this.left,r),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Be(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Be(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(l):e.interrupt(r.parser.constructs.flow,n,t)(l)}}function Kr(e,t,n,r,i,o,l,a,u){const s=u||Number.POSITIVE_INFINITY;let f=0;return c;function c(x){return x===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(x),e.exit(o),p):x===null||x===32||x===41||lt(x)?n(x):(e.enter(r),e.enter(l),e.enter(a),e.enter("chunkString",{contentType:"string"}),y(x))}function p(x){return x===62?(e.enter(o),e.consume(x),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(a),p(x)):x===null||x===60||T(x)?n(x):(e.consume(x),x===92?m:h)}function m(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function y(x){return!f&&(x===null||x===41||q(x))?(e.exit("chunkString"),e.exit(a),e.exit(l),e.exit(r),t(x)):f999||h===null||h===91||h===93&&!u||h===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?n(h):h===93?(e.exit(o),e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):T(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),c(h))}function c(h){return h===null||h===91||h===93||T(h)||a++>999?(e.exit("chunkString"),f(h)):(e.consume(h),u||(u=!O(h)),h===92?p:c)}function p(h){return h===91||h===92||h===93?(e.consume(h),a++,c):c(h)}}function Zr(e,t,n,r,i,o){let l;return a;function a(p){return p===34||p===39||p===40?(e.enter(r),e.enter(i),e.consume(p),e.exit(i),l=p===40?41:p,u):n(p)}function u(p){return p===l?(e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):(e.enter(o),s(p))}function s(p){return p===l?(e.exit(o),u(l)):p===null?n(p):T(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),_(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(p))}function f(p){return p===l||p===null||T(p)?(e.exit("chunkString"),s(p)):(e.consume(p),p===92?c:f)}function c(p){return p===l||p===92?(e.consume(p),f):f(p)}}function He(e,t){let n;return r;function r(i){return T(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):O(i)?_(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const na={name:"definition",tokenize:ia},ra={partial:!0,tokenize:la};function ia(e,t,n){const r=this;let i;return o;function o(h){return e.enter("definition"),l(h)}function l(h){return Jr.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return i=se(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),u):n(h)}function u(h){return q(h)?He(e,s)(h):s(h)}function s(h){return Kr(e,f,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function f(h){return e.attempt(ra,c,c)(h)}function c(h){return O(h)?_(e,p,"whitespace")(h):p(h)}function p(h){return h===null||T(h)?(e.exit("definition"),r.parser.defined.push(i),t(h)):n(h)}}function la(e,t,n){return r;function r(a){return q(a)?He(e,i)(a):n(a)}function i(a){return Zr(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function o(a){return O(a)?_(e,l,"whitespace")(a):l(a)}function l(a){return a===null||T(a)?t(a):n(a)}}const oa={name:"hardBreakEscape",tokenize:aa};function aa(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return T(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const ua={name:"headingAtx",resolve:sa,tokenize:ca};function sa(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},re(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function ca(e,t,n){let r=0;return i;function i(f){return e.enter("atxHeading"),o(f)}function o(f){return e.enter("atxHeadingSequence"),l(f)}function l(f){return f===35&&r++<6?(e.consume(f),l):f===null||q(f)?(e.exit("atxHeadingSequence"),a(f)):n(f)}function a(f){return f===35?(e.enter("atxHeadingSequence"),u(f)):f===null||T(f)?(e.exit("atxHeading"),t(f)):O(f)?_(e,a,"whitespace")(f):(e.enter("atxHeadingText"),s(f))}function u(f){return f===35?(e.consume(f),u):(e.exit("atxHeadingSequence"),a(f))}function s(f){return f===null||f===35||q(f)?(e.exit("atxHeadingText"),a(f)):(e.consume(f),s)}}const fa=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Bn=["pre","script","style","textarea"],ha={concrete:!0,name:"htmlFlow",resolveTo:ga,tokenize:da},pa={partial:!0,tokenize:xa},ma={partial:!0,tokenize:ya};function ga(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function da(e,t,n){const r=this;let i,o,l,a,u;return s;function s(d){return f(d)}function f(d){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(d),c}function c(d){return d===33?(e.consume(d),p):d===47?(e.consume(d),o=!0,y):d===63?(e.consume(d),i=3,r.interrupt?t:g):J(d)?(e.consume(d),l=String.fromCharCode(d),C):n(d)}function p(d){return d===45?(e.consume(d),i=2,h):d===91?(e.consume(d),i=5,a=0,m):J(d)?(e.consume(d),i=4,r.interrupt?t:g):n(d)}function h(d){return d===45?(e.consume(d),r.interrupt?t:g):n(d)}function m(d){const ae="CDATA[";return d===ae.charCodeAt(a++)?(e.consume(d),a===ae.length?r.interrupt?t:P:m):n(d)}function y(d){return J(d)?(e.consume(d),l=String.fromCharCode(d),C):n(d)}function C(d){if(d===null||d===47||d===62||q(d)){const ae=d===47,be=l.toLowerCase();return!ae&&!o&&Bn.includes(be)?(i=1,r.interrupt?t(d):P(d)):fa.includes(l.toLowerCase())?(i=6,ae?(e.consume(d),x):r.interrupt?t(d):P(d)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(d):o?b(d):I(d))}return d===45||Q(d)?(e.consume(d),l+=String.fromCharCode(d),C):n(d)}function x(d){return d===62?(e.consume(d),r.interrupt?t:P):n(d)}function b(d){return O(d)?(e.consume(d),b):k(d)}function I(d){return d===47?(e.consume(d),k):d===58||d===95||J(d)?(e.consume(d),D):O(d)?(e.consume(d),I):k(d)}function D(d){return d===45||d===46||d===58||d===95||Q(d)?(e.consume(d),D):v(d)}function v(d){return d===61?(e.consume(d),S):O(d)?(e.consume(d),v):I(d)}function S(d){return d===null||d===60||d===61||d===62||d===96?n(d):d===34||d===39?(e.consume(d),u=d,N):O(d)?(e.consume(d),S):j(d)}function N(d){return d===u?(e.consume(d),u=null,L):d===null||T(d)?n(d):(e.consume(d),N)}function j(d){return d===null||d===34||d===39||d===47||d===60||d===61||d===62||d===96||q(d)?v(d):(e.consume(d),j)}function L(d){return d===47||d===62||O(d)?I(d):n(d)}function k(d){return d===62?(e.consume(d),F):n(d)}function F(d){return d===null||T(d)?P(d):O(d)?(e.consume(d),F):n(d)}function P(d){return d===45&&i===2?(e.consume(d),X):d===60&&i===1?(e.consume(d),Y):d===62&&i===4?(e.consume(d),oe):d===63&&i===3?(e.consume(d),g):d===93&&i===5?(e.consume(d),he):T(d)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(pa,pe,$)(d)):d===null||T(d)?(e.exit("htmlFlowData"),$(d)):(e.consume(d),P)}function $(d){return e.check(ma,V,pe)(d)}function V(d){return e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),B}function B(d){return d===null||T(d)?$(d):(e.enter("htmlFlowData"),P(d))}function X(d){return d===45?(e.consume(d),g):P(d)}function Y(d){return d===47?(e.consume(d),l="",le):P(d)}function le(d){if(d===62){const ae=l.toLowerCase();return Bn.includes(ae)?(e.consume(d),oe):P(d)}return J(d)&&l.length<8?(e.consume(d),l+=String.fromCharCode(d),le):P(d)}function he(d){return d===93?(e.consume(d),g):P(d)}function g(d){return d===62?(e.consume(d),oe):d===45&&i===2?(e.consume(d),g):P(d)}function oe(d){return d===null||T(d)?(e.exit("htmlFlowData"),pe(d)):(e.consume(d),oe)}function pe(d){return e.exit("htmlFlow"),t(d)}}function ya(e,t,n){const r=this;return i;function i(l){return T(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o):n(l)}function o(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}function xa(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Ge,t,n)}}const ka={name:"htmlText",tokenize:ba};function ba(e,t,n){const r=this;let i,o,l;return a;function a(g){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(g),u}function u(g){return g===33?(e.consume(g),s):g===47?(e.consume(g),v):g===63?(e.consume(g),I):J(g)?(e.consume(g),j):n(g)}function s(g){return g===45?(e.consume(g),f):g===91?(e.consume(g),o=0,m):J(g)?(e.consume(g),b):n(g)}function f(g){return g===45?(e.consume(g),h):n(g)}function c(g){return g===null?n(g):g===45?(e.consume(g),p):T(g)?(l=c,Y(g)):(e.consume(g),c)}function p(g){return g===45?(e.consume(g),h):c(g)}function h(g){return g===62?X(g):g===45?p(g):c(g)}function m(g){const oe="CDATA[";return g===oe.charCodeAt(o++)?(e.consume(g),o===oe.length?y:m):n(g)}function y(g){return g===null?n(g):g===93?(e.consume(g),C):T(g)?(l=y,Y(g)):(e.consume(g),y)}function C(g){return g===93?(e.consume(g),x):y(g)}function x(g){return g===62?X(g):g===93?(e.consume(g),x):y(g)}function b(g){return g===null||g===62?X(g):T(g)?(l=b,Y(g)):(e.consume(g),b)}function I(g){return g===null?n(g):g===63?(e.consume(g),D):T(g)?(l=I,Y(g)):(e.consume(g),I)}function D(g){return g===62?X(g):I(g)}function v(g){return J(g)?(e.consume(g),S):n(g)}function S(g){return g===45||Q(g)?(e.consume(g),S):N(g)}function N(g){return T(g)?(l=N,Y(g)):O(g)?(e.consume(g),N):X(g)}function j(g){return g===45||Q(g)?(e.consume(g),j):g===47||g===62||q(g)?L(g):n(g)}function L(g){return g===47?(e.consume(g),X):g===58||g===95||J(g)?(e.consume(g),k):T(g)?(l=L,Y(g)):O(g)?(e.consume(g),L):X(g)}function k(g){return g===45||g===46||g===58||g===95||Q(g)?(e.consume(g),k):F(g)}function F(g){return g===61?(e.consume(g),P):T(g)?(l=F,Y(g)):O(g)?(e.consume(g),F):L(g)}function P(g){return g===null||g===60||g===61||g===62||g===96?n(g):g===34||g===39?(e.consume(g),i=g,$):T(g)?(l=P,Y(g)):O(g)?(e.consume(g),P):(e.consume(g),V)}function $(g){return g===i?(e.consume(g),i=void 0,B):g===null?n(g):T(g)?(l=$,Y(g)):(e.consume(g),$)}function V(g){return g===null||g===34||g===39||g===60||g===61||g===96?n(g):g===47||g===62||q(g)?L(g):(e.consume(g),V)}function B(g){return g===47||g===62||q(g)?L(g):n(g)}function X(g){return g===62?(e.consume(g),e.exit("htmlTextData"),e.exit("htmlText"),t):n(g)}function Y(g){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),le}function le(g){return O(g)?_(e,he,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(g):he(g)}function he(g){return e.enter("htmlTextData"),l(g)}}const en={name:"labelEnd",resolveAll:Ea,resolveTo:Ia,tokenize:Aa},wa={tokenize:Ta},Sa={tokenize:Fa},Ca={tokenize:Pa};function Ea(e){let t=-1;const n=[];for(;++t=3&&(s===null||T(s))?(e.exit("thematicBreak"),t(s)):n(s)}function u(s){return s===i?(e.consume(s),r++,u):(e.exit("thematicBreakSequence"),O(s)?_(e,a,"whitespace")(s):a(s))}}const Z={continuation:{tokenize:Ba},exit:$a,name:"list",tokenize:Ra},Oa={partial:!0,tokenize:Ha},Na={partial:!0,tokenize:ja};function Ra(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,l=0;return a;function a(h){const m=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Nt(h)){if(r.containerState.type||(r.containerState.type=m,e.enter(m,{_container:!0})),m==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(nt,n,s)(h):s(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(h)}return n(h)}function u(h){return Nt(h)&&++l<10?(e.consume(h),u):(!r.interrupt||l<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),s(h)):n(h)}function s(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Ge,r.interrupt?n:f,e.attempt(Oa,p,c))}function f(h){return r.containerState.initialBlankLine=!0,o++,p(h)}function c(h){return O(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),p):n(h)}function p(h){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function Ba(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Ge,i,o);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,_(e,t,"listItemIndent",r.containerState.size+1)(a)}function o(a){return r.containerState.furtherBlankLines||!O(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,l(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Na,t,l)(a))}function l(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,_(e,e.attempt(Z,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function ja(e,t,n){const r=this;return _(e,i,"listItemIndent",r.containerState.size+1);function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===r.containerState.size?t(o):n(o)}}function $a(e){e.exit(this.containerState.type)}function Ha(e,t,n){const r=this;return _(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const l=r.events[r.events.length-1];return!O(o)&&l&&l[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const jn={name:"setextUnderline",resolveTo:qa,tokenize:Ua};function qa(e,t){let n=e.length,r,i,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const l={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",l,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end={...e[o][1].end}):e[r][1]=l,e.push(["exit",l,t]),e}function Ua(e,t,n){const r=this;let i;return o;function o(s){let f=r.events.length,c;for(;f--;)if(r.events[f][1].type!=="lineEnding"&&r.events[f][1].type!=="linePrefix"&&r.events[f][1].type!=="content"){c=r.events[f][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||c)?(e.enter("setextHeadingLine"),i=s,l(s)):n(s)}function l(s){return e.enter("setextHeadingLineSequence"),a(s)}function a(s){return s===i?(e.consume(s),a):(e.exit("setextHeadingLineSequence"),O(s)?_(e,u,"lineSuffix")(s):u(s))}function u(s){return s===null||T(s)?(e.exit("setextHeadingLine"),t(s)):n(s)}}const Va={tokenize:Wa};function Wa(e){const t=this,n=e.attempt(Ge,r,e.attempt(this.parser.constructs.flowInitial,i,_(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Ko,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const Ya={resolveAll:ti()},Ga=ei("string"),Xa=ei("text");function ei(e){return{resolveAll:ti(e==="text"?Qa:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,l,a);return l;function l(f){return s(f)?o(f):a(f)}function a(f){if(f===null){n.consume(f);return}return n.enter("data"),n.consume(f),u}function u(f){return s(f)?(n.exit("data"),o(f)):(n.consume(f),u)}function s(f){if(f===null)return!0;const c=i[f];let p=-1;if(c)for(;++p-1){const a=l[0];typeof a=="string"?l[0]=a.slice(r):l.shift()}o>0&&l.push(e[i].slice(0,o))}return l}function su(e,t){let n=-1;const r=[];let i;for(;++n0){const ue=z.tokenStack[z.tokenStack.length-1];(ue[1]||Hn).call(z,void 0,ue[0])}for(A.position={start:xe(w.length>0?w[0][1].start:{line:1,column:1,offset:0}),end:xe(w.length>0?w[w.length-2][1].end:{line:1,column:1,offset:0})},H=-1;++H0&&(r.className=["language-"+i[0]]);let o={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o=e.applyData(t,o),o={type:"element",tagName:"pre",properties:{},children:[o]},e.patch(t,o),o}function Cu(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Eu(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Iu(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=_e(r.toLowerCase()),o=e.footnoteOrder.indexOf(r);let l,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),l=e.footnoteOrder.length):l=o+1,a+=1,e.footnoteCounts.set(r,a);const u={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(t,u);const s={type:"element",tagName:"sup",properties:{},children:[u]};return e.patch(t,s),e.applyData(t,s)}function Au(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Tu(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function ii(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),o=i[0];o&&o.type==="text"?o.value="["+o.value:i.unshift({type:"text",value:"["});const l=i[i.length-1];return l&&l.type==="text"?l.value+=r:i.push({type:"text",value:r}),i}function Fu(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ii(e,t);const i={src:_e(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)}function Pu(e,t){const n={src:_e(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function zu(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function Du(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ii(e,t);const i={href:_e(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function vu(e,t){const n={href:_e(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function Lu(e,t,n){const r=e.all(t),i=n?Mu(n):li(t),o={},l=[];if(typeof t.checked=="boolean"){const f=r[0];let c;f&&f.type==="element"&&f.tagName==="p"?c=f:(c={type:"element",tagName:"p",properties:{},children:[]},r.unshift(c)),c.children.length>0&&c.children.unshift({type:"text",value:" "}),c.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let a=-1;for(;++a1}function _u(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const l={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=Gt(t.children[1]),u=Rr(t.children[t.children.length-1]);a&&u&&(l.position={start:a,end:u}),i.push(l)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)}function ju(e,t,n){const r=n?n.children:void 0,o=(r?r.indexOf(t):1)===0?"th":"td",l=n&&n.type==="table"?n.align:void 0,a=l?l.length:t.children.length;let u=-1;const s=[];for(;++u0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(Vn(t.slice(i),i>0,!1)),o.join("")}function Vn(e,t,n){let r=0,i=e.length;if(t){let o=e.codePointAt(r);for(;o===qn||o===Un;)r++,o=e.codePointAt(r)}if(n){let o=e.codePointAt(i-1);for(;o===qn||o===Un;)i--,o=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function qu(e,t){const n={type:"text",value:Hu(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function Uu(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const Vu={blockquote:bu,break:wu,code:Su,delete:Cu,emphasis:Eu,footnoteReference:Iu,heading:Au,html:Tu,imageReference:Fu,image:Pu,inlineCode:zu,linkReference:Du,link:vu,listItem:Lu,list:_u,paragraph:Ou,root:Nu,strong:Ru,table:Bu,tableCell:$u,tableRow:ju,text:qu,thematicBreak:Uu,toml:Je,yaml:Je,definition:Je,footnoteDefinition:Je};function Je(){}const oi=-1,mt=0,qe=1,ot=2,tn=3,nn=4,rn=5,ln=6,ai=7,ui=8,Wn=typeof self=="object"?self:globalThis,Wu=(e,t)=>{const n=(i,o)=>(e.set(o,i),i),r=i=>{if(e.has(i))return e.get(i);const[o,l]=t[i];switch(o){case mt:case oi:return n(l,i);case qe:{const a=n([],i);for(const u of l)a.push(r(u));return a}case ot:{const a=n({},i);for(const[u,s]of l)a[r(u)]=r(s);return a}case tn:return n(new Date(l),i);case nn:{const{source:a,flags:u}=l;return n(new RegExp(a,u),i)}case rn:{const a=n(new Map,i);for(const[u,s]of l)a.set(r(u),r(s));return a}case ln:{const a=n(new Set,i);for(const u of l)a.add(r(u));return a}case ai:{const{name:a,message:u}=l;return n(new Wn[a](u),i)}case ui:return n(BigInt(l),i);case"BigInt":return n(Object(BigInt(l)),i);case"ArrayBuffer":return n(new Uint8Array(l).buffer,l);case"DataView":{const{buffer:a}=new Uint8Array(l);return n(new DataView(a),l)}}return n(new Wn[o](l),i)};return r},Yn=e=>Wu(new Map,e)(0),ze="",{toString:Yu}={},{keys:Gu}=Object,je=e=>{const t=typeof e;if(t!=="object"||!e)return[mt,t];const n=Yu.call(e).slice(8,-1);switch(n){case"Array":return[qe,ze];case"Object":return[ot,ze];case"Date":return[tn,ze];case"RegExp":return[nn,ze];case"Map":return[rn,ze];case"Set":return[ln,ze];case"DataView":return[qe,n]}return n.includes("Array")?[qe,n]:n.includes("Error")?[ai,n]:[ot,n]},Ze=([e,t])=>e===mt&&(t==="function"||t==="symbol"),Xu=(e,t,n,r)=>{const i=(l,a)=>{const u=r.push(l)-1;return n.set(a,u),u},o=l=>{if(n.has(l))return n.get(l);let[a,u]=je(l);switch(a){case mt:{let f=l;switch(u){case"bigint":a=ui,f=l.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);f=null;break;case"undefined":return i([oi],l)}return i([a,f],l)}case qe:{if(u){let p=l;return u==="DataView"?p=new Uint8Array(l.buffer):u==="ArrayBuffer"&&(p=new Uint8Array(l)),i([u,[...p]],l)}const f=[],c=i([a,f],l);for(const p of l)f.push(o(p));return c}case ot:{if(u)switch(u){case"BigInt":return i([u,l.toString()],l);case"Boolean":case"Number":case"String":return i([u,l.valueOf()],l)}if(t&&"toJSON"in l)return o(l.toJSON());const f=[],c=i([a,f],l);for(const p of Gu(l))(e||!Ze(je(l[p])))&&f.push([o(p),o(l[p])]);return c}case tn:return i([a,l.toISOString()],l);case nn:{const{source:f,flags:c}=l;return i([a,{source:f,flags:c}],l)}case rn:{const f=[],c=i([a,f],l);for(const[p,h]of l)(e||!(Ze(je(p))||Ze(je(h))))&&f.push([o(p),o(h)]);return c}case ln:{const f=[],c=i([a,f],l);for(const p of l)(e||!Ze(je(p)))&&f.push(o(p));return c}}const{message:s}=l;return i([a,{name:u,message:s}],l)};return o},Gn=(e,{json:t,lossy:n}={})=>{const r=[];return Xu(!(t||n),!!t,new Map,r)(e),r},at=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Yn(Gn(e,t)):structuredClone(e):(e,t)=>Yn(Gn(e,t));function Qu(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function Ku(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function Ju(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||Qu,r=e.options.footnoteBackLabel||Ku,i=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",l=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let u=-1;for(;++u0&&m.push({type:"text",value:" "});let b=typeof n=="string"?n:n(u,h);typeof b=="string"&&(b={type:"text",value:b}),m.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+p+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(u,h),className:["data-footnote-backref"]},children:Array.isArray(b)?b:[b]})}const C=f[f.length-1];if(C&&C.type==="element"&&C.tagName==="p"){const b=C.children[C.children.length-1];b&&b.type==="text"?b.value+=" ":C.children.push({type:"text",value:" "}),C.children.push(...m)}else f.push(...m);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+p},children:e.wrap(f,!0)};e.patch(s,x),a.push(x)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...at(l),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:` -`}]}}const Xe=function(e){if(e==null)return ns;if(typeof e=="function")return gt(e);if(typeof e=="object")return Array.isArray(e)?Zu(e):es(e);if(typeof e=="string")return ts(e);throw new Error("Expected function, string, or object as test")};function Zu(e){const t=[];let n=-1;for(;++n":""))+")"})}return p;function p(){let h=si,m,y,C;if((!t||o(u,s,f[f.length-1]||void 0))&&(h=ls(n(u,f)),h[0]===Bt))return h;if("children"in u&&u.children){const x=u;if(x.children&&h[0]!==ci)for(y=(r?x.children.length:-1)+l,C=f.concat(x);y>-1&&y0&&n.push({type:"text",value:` -`}),n}function Xn(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Qn(e,t){const n=as(e,t),r=n.one(e,void 0),i=Ju(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:` -`},i),o}function hs(e,t){return e&&"run"in e?async function(n,r){const i=Qn(n,{file:r,...t});await e.run(i,r)}:function(n,r){return Qn(n,{file:r,...e||t})}}function Kn(e){if(e)throw e}var rt=Object.prototype.hasOwnProperty,fi=Object.prototype.toString,Jn=Object.defineProperty,Zn=Object.getOwnPropertyDescriptor,er=function(t){return typeof Array.isArray=="function"?Array.isArray(t):fi.call(t)==="[object Array]"},tr=function(t){if(!t||fi.call(t)!=="[object Object]")return!1;var n=rt.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&rt.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||rt.call(t,i)},nr=function(t,n){Jn&&n.name==="__proto__"?Jn(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},rr=function(t,n){if(n==="__proto__")if(rt.call(t,n)){if(Zn)return Zn(t,n).value}else return;return t[n]},ps=function e(){var t,n,r,i,o,l,a=arguments[0],u=1,s=arguments.length,f=!1;for(typeof a=="boolean"&&(f=a,a=arguments[1]||{},u=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});ul.length;let u;a&&l.push(i);try{u=e.apply(this,l)}catch(s){const f=s;if(a&&n)throw f;return i(f)}a||(u&&u.then&&typeof u.then=="function"?u.then(o,i):u instanceof Error?i(u):o(u))}function i(l,...a){n||(n=!0,t(l,...a))}function o(l){i(null,l)}}const ce={basename:ds,dirname:ys,extname:xs,join:ks,sep:"/"};function ds(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Qe(e);let n=0,r=-1,i=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else r<0&&(o=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let l=-1,a=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else l<0&&(o=!0,l=i+1),a>-1&&(e.codePointAt(i)===t.codePointAt(a--)?a<0&&(r=i):(a=-1,r=l));return n===r?r=l:r<0&&(r=e.length),e.slice(n,r)}function ys(e){if(Qe(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function xs(e){Qe(e);let t=e.length,n=-1,r=0,i=-1,o=0,l;for(;t--;){const a=e.codePointAt(t);if(a===47){if(l){r=t+1;break}continue}n<0&&(l=!0,n=t+1),a===46?i<0?i=t:o!==1&&(o=1):i>-1&&(o=-1)}return i<0||n<0||o===0||o===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function ks(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function ws(e,t){let n="",r=0,i=-1,o=0,l=-1,a,u;for(;++l<=e.length;){if(l2){if(u=n.lastIndexOf("/"),u!==n.length-1){u<0?(n="",r=0):(n=n.slice(0,u),r=n.length-1-n.lastIndexOf("/")),i=l,o=0;continue}}else if(n.length>0){n="",r=0,i=l,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,l):n=e.slice(i+1,l),r=l-i-1;i=l,o=0}else a===46&&o>-1?o++:o=-1}return n}function Qe(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Ss={cwd:Cs};function Cs(){return"/"}function Ht(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function Es(e){if(typeof e=="string")e=new URL(e);else if(!Ht(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return Is(e)}function Is(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...m]=f;const y=r[p][1];$t(y)&&$t(h)&&(h=wt(!0,y,h)),r[p]=[s,h,...m]}}}}const Ps=new un().freeze();function It(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function At(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Tt(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function lr(e){if(!$t(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function or(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function et(e){return zs(e)?e:new hi(e)}function zs(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Ds(e){return typeof e=="string"||vs(e)}function vs(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Ls="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",ar=[],ur={allowDangerousHtml:!0},Ms=/^(https?|ircs?|mailto|xmpp)$/i,_s=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Bh(e){const t=Os(e),n=Ns(e);return Rs(t.runSync(t.parse(n),n),e)}function Os(e){const t=e.rehypePlugins||ar,n=e.remarkPlugins||ar,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...ur}:ur;return Ps().use(ku).use(n).use(hs,r).use(t)}function Ns(e){const t=e.children||"",n=new hi;return typeof t=="string"&&(n.value=t),n}function Rs(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,l=t.skipHtml,a=t.unwrapDisallowed,u=t.urlTransform||Bs;for(const f of _s)Object.hasOwn(t,f.from)&&(""+f.from+(f.to?"use `"+f.to+"` instead":"remove it")+Ls+f.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),an(e,s),to(e,{Fragment:dt.Fragment,components:i,ignoreInvalidStyle:!0,jsx:dt.jsx,jsxs:dt.jsxs,passKeys:!0,passNode:!0});function s(f,c,p){if(f.type==="raw"&&p&&typeof c=="number")return l?p.children.splice(c,1):p.children[c]={type:"text",value:f.value},c;if(f.type==="element"){let h;for(h in xt)if(Object.hasOwn(xt,h)&&Object.hasOwn(f.properties,h)){const m=f.properties[h],y=xt[h];(y===null||y.includes(f.tagName))&&(f.properties[h]=u(String(m||""),h,f))}}if(f.type==="element"){let h=n?!n.includes(f.tagName):o?o.includes(f.tagName):!1;if(!h&&r&&typeof c=="number"&&(h=!r(f,c,p)),h&&p&&typeof c=="number")return a&&f.children?p.children.splice(c,1,...f.children):p.children.splice(c,1),c}}}function Bs(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||Ms.test(e.slice(0,t))?e:""}const sr=/[#.]/g;function js(e,t){const n=e||"",r={};let i=0,o,l;for(;is&&(s=f):f&&(s!==void 0&&s>-1&&u.push(` -`.repeat(s)||" "),s=-1,u.push(f))}return u.join("")}function yi(e,t,n){return e.type==="element"?sc(e,t,n):e.type==="text"?n.whitespace==="normal"?xi(e,n):cc(e):[]}function sc(e,t,n){const r=ki(e,n),i=e.children||[];let o=-1,l=[];if(ac(e))return l;let a,u;for(Ut(e)||dr(e)&&hr(t,e,dr)?u=` -`:oc(e)?(a=2,u=2):di(e)&&(a=1,u=1);++o0?{type:"text",value:S}:void 0),S===!1?p.lastIndex=D+1:(m!==D&&b.push({type:"text",value:s.value.slice(m,D)}),Array.isArray(S)?b.push(...S):S&&b.push(S),m=D+I[0].length,x=!0),!p.global)break;I=p.exec(s.value)}return x?(m?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=yr(e,"(");let o=yr(e,")");for(;r!==-1&&i>o;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),o++;return[e,n]}function wi(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Ee(n)||ht(n))&&(!t||n!==47)}Si.peek=qc;function _c(){this.buffer()}function Oc(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function Nc(){this.buffer()}function Rc(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function Bc(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=se(this.sliceSerialize(e)).toLowerCase(),n.label=t}function jc(e){this.exit(e)}function $c(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=se(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Hc(e){this.exit(e)}function qc(){return"["}function Si(e,t,n,r){const i=n.createTracker(r);let o=i.move("[^");const l=n.enter("footnoteReference"),a=n.enter("reference");return o+=i.move(n.safe(n.associationId(e),{after:"]",before:o})),a(),l(),o+=i.move("]"),o}function Uc(){return{enter:{gfmFootnoteCallString:_c,gfmFootnoteCall:Oc,gfmFootnoteDefinitionLabelString:Nc,gfmFootnoteDefinition:Rc},exit:{gfmFootnoteCallString:Bc,gfmFootnoteCall:jc,gfmFootnoteDefinitionLabelString:$c,gfmFootnoteDefinition:Hc}}}function Vc(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:Si},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,o,l){const a=o.createTracker(l);let u=a.move("[^");const s=o.enter("footnoteDefinition"),f=o.enter("label");return u+=a.move(o.safe(o.associationId(r),{before:u,after:"]"})),f(),u+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),u+=a.move((t?` -`:" ")+o.indentLines(o.containerFlow(r,a.current()),t?Ci:Wc))),s(),u}}function Wc(e,t,n){return t===0?e:Ci(e,t,n)}function Ci(e,t,n){return(n?"":" ")+e}const Yc=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];Ei.peek=Jc;function Gc(){return{canContainEols:["delete"],enter:{strikethrough:Qc},exit:{strikethrough:Kc}}}function Xc(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:Yc}],handlers:{delete:Ei}}}function Qc(e){this.enter({type:"delete",children:[]},e)}function Kc(e){this.exit(e)}function Ei(e,t,n,r){const i=n.createTracker(r),o=n.enter("strikethrough");let l=i.move("~~");return l+=n.containerPhrasing(e,{...i.current(),before:l,after:"~"}),l+=i.move("~~"),o(),l}function Jc(){return"~"}function Zc(e){return e.length}function ef(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||Zc,o=[],l=[],a=[],u=[];let s=0,f=-1;for(;++fs&&(s=e[f].length);++xu[x])&&(u[x]=I)}y.push(b)}l[f]=y,a[f]=C}let c=-1;if(typeof r=="object"&&"length"in r)for(;++cu[c]&&(u[c]=b),h[c]=b),p[c]=I}l.splice(1,0,p),a.splice(1,0,h),f=-1;const m=[];for(;++f "),o.shift(2);const l=n.indentLines(n.containerFlow(e,o.current()),rf);return i(),l}function rf(e,t,n){return">"+(n?"":" ")+e}function lf(e,t){return kr(e,t.inConstruct,!0)&&!kr(e,t.notInConstruct,!1)}function kr(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++rl&&(l=o):o=1,i=r+t.length,r=n.indexOf(t,i);return l}function of(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function af(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function uf(e,t,n,r){const i=af(n),o=e.value||"",l=i==="`"?"GraveAccent":"Tilde";if(of(e,n)){const c=n.enter("codeIndented"),p=n.indentLines(o,sf);return c(),p}const a=n.createTracker(r),u=i.repeat(Math.max(Ii(o,i)+1,3)),s=n.enter("codeFenced");let f=a.move(u);if(e.lang){const c=n.enter(`codeFencedLang${l}`);f+=a.move(n.safe(e.lang,{before:f,after:" ",encode:["`"],...a.current()})),c()}if(e.lang&&e.meta){const c=n.enter(`codeFencedMeta${l}`);f+=a.move(" "),f+=a.move(n.safe(e.meta,{before:f,after:` -`,encode:["`"],...a.current()})),c()}return f+=a.move(` -`),o&&(f+=a.move(o+` -`)),f+=a.move(u),s(),f}function sf(e,t,n){return(n?"":" ")+e}function cn(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function cf(e,t,n,r){const i=cn(n),o=i==='"'?"Quote":"Apostrophe",l=n.enter("definition");let a=n.enter("label");const u=n.createTracker(r);let s=u.move("[");return s+=u.move(n.safe(n.associationId(e),{before:s,after:"]",...u.current()})),s+=u.move("]: "),a(),!e.url||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),s+=u.move("<"),s+=u.move(n.safe(e.url,{before:s,after:">",...u.current()})),s+=u.move(">")):(a=n.enter("destinationRaw"),s+=u.move(n.safe(e.url,{before:s,after:e.title?" ":` -`,...u.current()}))),a(),e.title&&(a=n.enter(`title${o}`),s+=u.move(" "+i),s+=u.move(n.safe(e.title,{before:s,after:i,...u.current()})),s+=u.move(i),a()),l(),s}function ff(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function We(e){return"&#x"+e.toString(16).toUpperCase()+";"}function ut(e,t,n){const r=Le(e),i=Le(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Ai.peek=hf;function Ai(e,t,n,r){const i=ff(n),o=n.enter("emphasis"),l=n.createTracker(r),a=l.move(i);let u=l.move(n.containerPhrasing(e,{after:i,before:a,...l.current()}));const s=u.charCodeAt(0),f=ut(r.before.charCodeAt(r.before.length-1),s,i);f.inside&&(u=We(s)+u.slice(1));const c=u.charCodeAt(u.length-1),p=ut(r.after.charCodeAt(0),c,i);p.inside&&(u=u.slice(0,-1)+We(c));const h=l.move(i);return o(),n.attentionEncodeSurroundingInfo={after:p.outside,before:f.outside},a+u+h}function hf(e,t,n){return n.options.emphasis||"*"}function pf(e,t){let n=!1;return an(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Bt}),!!((!e.depth||e.depth<3)&&Jt(e)&&(t.options.setext||n))}function mf(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(r);if(pf(e,n)){const f=n.enter("headingSetext"),c=n.enter("phrasing"),p=n.containerPhrasing(e,{...o.current(),before:` -`,after:` -`});return c(),f(),p+` -`+(i===1?"=":"-").repeat(p.length-(Math.max(p.lastIndexOf("\r"),p.lastIndexOf(` -`))+1))}const l="#".repeat(i),a=n.enter("headingAtx"),u=n.enter("phrasing");o.move(l+" ");let s=n.containerPhrasing(e,{before:"# ",after:` -`,...o.current()});return/^[\t ]/.test(s)&&(s=We(s.charCodeAt(0))+s.slice(1)),s=s?l+" "+s:l,n.options.closeAtx&&(s+=" "+l),u(),a(),s}Ti.peek=gf;function Ti(e){return e.value||""}function gf(){return"<"}Fi.peek=df;function Fi(e,t,n,r){const i=cn(n),o=i==='"'?"Quote":"Apostrophe",l=n.enter("image");let a=n.enter("label");const u=n.createTracker(r);let s=u.move("![");return s+=u.move(n.safe(e.alt,{before:s,after:"]",...u.current()})),s+=u.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),s+=u.move("<"),s+=u.move(n.safe(e.url,{before:s,after:">",...u.current()})),s+=u.move(">")):(a=n.enter("destinationRaw"),s+=u.move(n.safe(e.url,{before:s,after:e.title?" ":")",...u.current()}))),a(),e.title&&(a=n.enter(`title${o}`),s+=u.move(" "+i),s+=u.move(n.safe(e.title,{before:s,after:i,...u.current()})),s+=u.move(i),a()),s+=u.move(")"),l(),s}function df(){return"!"}Pi.peek=yf;function Pi(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let l=n.enter("label");const a=n.createTracker(r);let u=a.move("![");const s=n.safe(e.alt,{before:u,after:"]",...a.current()});u+=a.move(s+"]["),l();const f=n.stack;n.stack=[],l=n.enter("reference");const c=n.safe(n.associationId(e),{before:u,after:"]",...a.current()});return l(),n.stack=f,o(),i==="full"||!s||s!==c?u+=a.move(c+"]"):i==="shortcut"?u=u.slice(0,-1):u+=a.move("]"),u}function yf(){return"!"}zi.peek=xf;function zi(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o\u007F]/.test(e.url))}vi.peek=kf;function vi(e,t,n,r){const i=cn(n),o=i==='"'?"Quote":"Apostrophe",l=n.createTracker(r);let a,u;if(Di(e,n)){const f=n.stack;n.stack=[],a=n.enter("autolink");let c=l.move("<");return c+=l.move(n.containerPhrasing(e,{before:c,after:">",...l.current()})),c+=l.move(">"),a(),n.stack=f,c}a=n.enter("link"),u=n.enter("label");let s=l.move("[");return s+=l.move(n.containerPhrasing(e,{before:s,after:"](",...l.current()})),s+=l.move("]("),u(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),s+=l.move("<"),s+=l.move(n.safe(e.url,{before:s,after:">",...l.current()})),s+=l.move(">")):(u=n.enter("destinationRaw"),s+=l.move(n.safe(e.url,{before:s,after:e.title?" ":")",...l.current()}))),u(),e.title&&(u=n.enter(`title${o}`),s+=l.move(" "+i),s+=l.move(n.safe(e.title,{before:s,after:i,...l.current()})),s+=l.move(i),u()),s+=l.move(")"),a(),s}function kf(e,t,n){return Di(e,n)?"<":"["}Li.peek=bf;function Li(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let l=n.enter("label");const a=n.createTracker(r);let u=a.move("[");const s=n.containerPhrasing(e,{before:u,after:"]",...a.current()});u+=a.move(s+"]["),l();const f=n.stack;n.stack=[],l=n.enter("reference");const c=n.safe(n.associationId(e),{before:u,after:"]",...a.current()});return l(),n.stack=f,o(),i==="full"||!s||s!==c?u+=a.move(c+"]"):i==="shortcut"?u=u.slice(0,-1):u+=a.move("]"),u}function bf(){return"["}function fn(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function wf(e){const t=fn(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function Sf(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Mi(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Cf(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let l=e.ordered?Sf(n):fn(n);const a=e.ordered?l==="."?")":".":wf(n);let u=t&&n.bulletLastUsed?l===n.bulletLastUsed:!1;if(!e.ordered){const f=e.children?e.children[0]:void 0;if((l==="*"||l==="-")&&f&&(!f.children||!f.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(u=!0),Mi(n)===l&&f){let c=-1;for(;++c-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let l=o.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(l=Math.ceil(l/4)*4);const a=n.createTracker(r);a.move(o+" ".repeat(l-o.length)),a.shift(l);const u=n.enter("listItem"),s=n.indentLines(n.containerFlow(e,a.current()),f);return u(),s;function f(c,p,h){return p?(h?"":" ".repeat(l))+c:(h?o:o+" ".repeat(l-o.length))+c}}function Af(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),l=n.containerPhrasing(e,r);return o(),i(),l}const Tf=Xe(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Ff(e,t,n,r){return(e.children.some(function(l){return Tf(l)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Pf(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}_i.peek=zf;function _i(e,t,n,r){const i=Pf(n),o=n.enter("strong"),l=n.createTracker(r),a=l.move(i+i);let u=l.move(n.containerPhrasing(e,{after:i,before:a,...l.current()}));const s=u.charCodeAt(0),f=ut(r.before.charCodeAt(r.before.length-1),s,i);f.inside&&(u=We(s)+u.slice(1));const c=u.charCodeAt(u.length-1),p=ut(r.after.charCodeAt(0),c,i);p.inside&&(u=u.slice(0,-1)+We(c));const h=l.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:p.outside,before:f.outside},a+u+h}function zf(e,t,n){return n.options.strong||"*"}function Df(e,t,n,r){return n.safe(e.value,r)}function vf(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Lf(e,t,n){const r=(Mi(n)+(n.options.ruleSpaces?" ":"")).repeat(vf(n));return n.options.ruleSpaces?r.slice(0,-1):r}const Oi={blockquote:nf,break:br,code:uf,definition:cf,emphasis:Ai,hardBreak:br,heading:mf,html:Ti,image:Fi,imageReference:Pi,inlineCode:zi,link:vi,linkReference:Li,list:Cf,listItem:If,paragraph:Af,root:Ff,strong:_i,text:Df,thematicBreak:Lf};function Mf(){return{enter:{table:_f,tableData:wr,tableHeader:wr,tableRow:Nf},exit:{codeText:Rf,table:Of,tableData:vt,tableHeader:vt,tableRow:vt}}}function _f(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function Of(e){this.exit(e),this.data.inTable=void 0}function Nf(e){this.enter({type:"tableRow",children:[]},e)}function vt(e){this.exit(e)}function wr(e){this.enter({type:"tableCell",children:[]},e)}function Rf(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Bf));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Bf(e,t){return t==="|"?t:e}function jf(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:p,table:l,tableCell:u,tableRow:a}};function l(h,m,y,C){return s(f(h,y,C),h.align)}function a(h,m,y,C){const x=c(h,y,C),b=s([x]);return b.slice(0,b.indexOf(` -`))}function u(h,m,y,C){const x=y.enter("tableCell"),b=y.enter("phrasing"),I=y.containerPhrasing(h,{...C,before:o,after:o});return b(),x(),I}function s(h,m){return ef(h,{align:m,alignDelimiters:r,padding:n,stringLength:i})}function f(h,m,y){const C=h.children;let x=-1;const b=[],I=m.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const ih={tokenize:hh,partial:!0};function lh(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:sh,continuation:{tokenize:ch},exit:fh}},text:{91:{name:"gfmFootnoteCall",tokenize:uh},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:oh,resolveTo:ah}}}}function oh(e,t,n){const r=this;let i=r.events.length;const o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l;for(;i--;){const u=r.events[i][1];if(u.type==="labelImage"){l=u;break}if(u.type==="gfmFootnoteCall"||u.type==="labelLink"||u.type==="label"||u.type==="image"||u.type==="link")break}return a;function a(u){if(!l||!l._balanced)return n(u);const s=se(r.sliceSerialize({start:l.end,end:r.now()}));return s.codePointAt(0)!==94||!o.includes(s.slice(1))?n(u):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),t(u))}}function ah(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",o,t],["enter",l,t],["exit",l,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function uh(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o=0,l;return a;function a(c){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),u}function u(c){return c!==94?n(c):(e.enter("gfmFootnoteCallMarker"),e.consume(c),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",s)}function s(c){if(o>999||c===93&&!l||c===null||c===91||q(c))return n(c);if(c===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return i.includes(se(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(c)}return q(c)||(l=!0),o++,e.consume(c),c===92?f:s}function f(c){return c===91||c===92||c===93?(e.consume(c),o++,s):s(c)}}function sh(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,l=0,a;return u;function u(m){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionLabelMarker"),s}function s(m){return m===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",f):n(m)}function f(m){if(l>999||m===93&&!a||m===null||m===91||q(m))return n(m);if(m===93){e.exit("chunkString");const y=e.exit("gfmFootnoteDefinitionLabelString");return o=se(r.sliceSerialize(y)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return q(m)||(a=!0),l++,e.consume(m),m===92?c:f}function c(m){return m===91||m===92||m===93?(e.consume(m),l++,f):f(m)}function p(m){return m===58?(e.enter("definitionMarker"),e.consume(m),e.exit("definitionMarker"),i.includes(o)||i.push(o),_(e,h,"gfmFootnoteDefinitionWhitespace")):n(m)}function h(m){return t(m)}}function ch(e,t,n){return e.check(Ge,t,e.attempt(ih,t,n))}function fh(e){e.exit("gfmFootnoteDefinition")}function hh(e,t,n){const r=this;return _(e,i,"gfmFootnoteDefinitionIndent",5);function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?t(o):n(o)}}function ph(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:o,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(l,a){let u=-1;for(;++u1?u(m):(l.consume(m),c++,h);if(c<2&&!n)return u(m);const C=l.exit("strikethroughSequenceTemporary"),x=Le(m);return C._open=!x||x===2&&!!y,C._close=!y||y===2&&!!x,a(m)}}}class mh{constructor(){this.map=[]}add(t,n,r){gh(this,t,n,r)}consume(t){if(this.map.sort(function(o,l){return o[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const o of i)t.push(o);i=r.pop()}this.map.length=0}}function gh(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const V=r.events[F][1].type;if(V==="lineEnding"||V==="linePrefix")F--;else break}const P=F>-1?r.events[F][1].type:null,$=P==="tableHead"||P==="tableRow"?S:u;return $===S&&r.parser.lazy[r.now().line]?n(k):$(k)}function u(k){return e.enter("tableHead"),e.enter("tableRow"),s(k)}function s(k){return k===124||(l=!0,o+=1),f(k)}function f(k){return k===null?n(k):T(k)?o>1?(o=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),h):n(k):O(k)?_(e,f,"whitespace")(k):(o+=1,l&&(l=!1,i+=1),k===124?(e.enter("tableCellDivider"),e.consume(k),e.exit("tableCellDivider"),l=!0,f):(e.enter("data"),c(k)))}function c(k){return k===null||k===124||q(k)?(e.exit("data"),f(k)):(e.consume(k),k===92?p:c)}function p(k){return k===92||k===124?(e.consume(k),c):c(k)}function h(k){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(k):(e.enter("tableDelimiterRow"),l=!1,O(k)?_(e,m,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(k):m(k))}function m(k){return k===45||k===58?C(k):k===124?(l=!0,e.enter("tableCellDivider"),e.consume(k),e.exit("tableCellDivider"),y):v(k)}function y(k){return O(k)?_(e,C,"whitespace")(k):C(k)}function C(k){return k===58?(o+=1,l=!0,e.enter("tableDelimiterMarker"),e.consume(k),e.exit("tableDelimiterMarker"),x):k===45?(o+=1,x(k)):k===null||T(k)?D(k):v(k)}function x(k){return k===45?(e.enter("tableDelimiterFiller"),b(k)):v(k)}function b(k){return k===45?(e.consume(k),b):k===58?(l=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(k),e.exit("tableDelimiterMarker"),I):(e.exit("tableDelimiterFiller"),I(k))}function I(k){return O(k)?_(e,D,"whitespace")(k):D(k)}function D(k){return k===124?m(k):k===null||T(k)?!l||i!==o?v(k):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(k)):v(k)}function v(k){return n(k)}function S(k){return e.enter("tableRow"),N(k)}function N(k){return k===124?(e.enter("tableCellDivider"),e.consume(k),e.exit("tableCellDivider"),N):k===null||T(k)?(e.exit("tableRow"),t(k)):O(k)?_(e,N,"whitespace")(k):(e.enter("data"),j(k))}function j(k){return k===null||k===124||q(k)?(e.exit("data"),N(k)):(e.consume(k),k===92?L:j)}function L(k){return k===92||k===124?(e.consume(k),j):j(k)}}function kh(e,t){let n=-1,r=!0,i=0,o=[0,0,0,0],l=[0,0,0,0],a=!1,u=0,s,f,c;const p=new mh;for(;++nn[2]+1){const m=n[2]+1,y=n[3]-n[2]-1;e.add(m,y,[])}}e.add(n[3]+1,0,[["exit",c,t]])}return i!==void 0&&(o.end=Object.assign({},De(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function Cr(e,t,n,r,i){const o=[],l=De(t.events,n);i&&(i.end=Object.assign({},l),o.push(["exit",i,t])),r.end=Object.assign({},l),o.push(["exit",r,t]),e.add(n+1,0,o)}function De(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const bh={name:"tasklistCheck",tokenize:Sh};function wh(){return{text:{91:bh}}}function Sh(e,t,n){const r=this;return i;function i(u){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(u):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),o)}function o(u){return q(u)?(e.enter("taskListCheckValueUnchecked"),e.consume(u),e.exit("taskListCheckValueUnchecked"),l):u===88||u===120?(e.enter("taskListCheckValueChecked"),e.consume(u),e.exit("taskListCheckValueChecked"),l):n(u)}function l(u){return u===93?(e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(u)}function a(u){return T(u)?t(u):O(u)?e.check({tokenize:Ch},t,n)(u):n(u)}}function Ch(e,t,n){return _(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function Eh(e){return Vr([Xf(),lh(),ph(e),yh(),wh()])}const Ih={};function Hh(e){const t=this,n=e||Ih,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),o=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(Eh(n)),o.push(Vf()),l.push(Wf(n))}function Ah(){return{enter:{mathFlow:e,mathFlowFenceMeta:t,mathText:o},exit:{mathFlow:i,mathFlowFence:r,mathFlowFenceMeta:n,mathFlowValue:a,mathText:l,mathTextData:a}};function e(u){const s={type:"element",tagName:"code",properties:{className:["language-math","math-display"]},children:[]};this.enter({type:"math",meta:null,value:"",data:{hName:"pre",hChildren:[s]}},u)}function t(){this.buffer()}function n(){const u=this.resume(),s=this.stack[this.stack.length-1];s.type,s.meta=u}function r(){this.data.mathFlowInside||(this.buffer(),this.data.mathFlowInside=!0)}function i(u){const s=this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),f=this.stack[this.stack.length-1];f.type,this.exit(u),f.value=s;const c=f.data.hChildren[0];c.type,c.tagName,c.children.push({type:"text",value:s}),this.data.mathFlowInside=void 0}function o(u){this.enter({type:"inlineMath",value:"",data:{hName:"code",hProperties:{className:["language-math","math-inline"]},hChildren:[]}},u),this.buffer()}function l(u){const s=this.resume(),f=this.stack[this.stack.length-1];f.type,this.exit(u),f.value=s,f.data.hChildren.push({type:"text",value:s})}function a(u){this.config.enter.data.call(this,u),this.config.exit.data.call(this,u)}}function Th(e){let t=(e||{}).singleDollarTextMath;return t==null&&(t=!0),r.peek=i,{unsafe:[{character:"\r",inConstruct:"mathFlowMeta"},{character:` -`,inConstruct:"mathFlowMeta"},{character:"$",after:t?void 0:"\\$",inConstruct:"phrasing"},{character:"$",inConstruct:"mathFlowMeta"},{atBreak:!0,character:"$",after:"\\$"}],handlers:{math:n,inlineMath:r}};function n(o,l,a,u){const s=o.value||"",f=a.createTracker(u),c="$".repeat(Math.max(Ii(s,"$")+1,2)),p=a.enter("mathFlow");let h=f.move(c);if(o.meta){const m=a.enter("mathFlowMeta");h+=f.move(a.safe(o.meta,{after:` -`,before:h,encode:["$"],...f.current()})),m()}return h+=f.move(` -`),s&&(h+=f.move(s+` -`)),h+=f.move(c),p(),h}function r(o,l,a){let u=o.value||"",s=1;for(t||s++;new RegExp("(^|[^$])"+"\\$".repeat(s)+"([^$]|$)").test(u);)s++;const f="$".repeat(s);/[^ \r\n]/.test(u)&&(/^[ \r\n]/.test(u)&&/[ \r\n]$/.test(u)||/^\$|\$$/.test(u))&&(u=" "+u+" ");let c=-1;for(;++ct[r]})}}}return Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var h=y;y.displayName="markupTemplating";y.aliases=[];function y(c){(function(o){function p(t,r){return"___"+t.toUpperCase()+r+"___"}Object.defineProperties(o.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,r,e,l){if(t.language===r){var u=t.tokenStack=[];t.code=t.code.replace(e,function(n){if(typeof l=="function"&&!l(n))return n;for(var i=u.length,a;t.code.indexOf(a=p(r,i))!==-1;)++i;return u[i]=n,a}),t.grammar=o.languages.markup}}},tokenizePlaceholders:{value:function(t,r){if(t.language!==r||!t.tokenStack)return;t.grammar=o.languages[r];var e=0,l=Object.keys(t.tokenStack);function u(n){for(var i=0;i=l.length);i++){var a=n[i];if(typeof a=="string"||a.content&&typeof a.content=="string"){var d=l[e],m=t.tokenStack[d],g=typeof a=="string"?a:a.content,k=p(r,d),s=g.indexOf(k);if(s>-1){++e;var _=g.substring(0,s),v=new o.Token(r,o.tokenize(m,t.grammar),"language-"+r,m),b=g.substring(s+k.length),f=[];_&&f.push.apply(f,u([_])),f.push(v),b&&f.push.apply(f,u([b])),typeof a=="string"?n.splice.apply(n,[i,1].concat(f)):a.content=f}}else a.content&&u(a.content)}return n}u(t.tokens)}}})})(c)}const T=O(h),w=j({__proto__:null,default:T},[h]);export{h as a,w as m}; diff --git a/nanobot/web/dist/assets/matlab-Dhk2maF_.js b/nanobot/web/dist/assets/matlab-Dhk2maF_.js deleted file mode 100644 index 53552a1..0000000 --- a/nanobot/web/dist/assets/matlab-Dhk2maF_.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function l(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="matlab";o.aliases=[];function o(e){e.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/\b(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}const c=f(s),b=l({__proto__:null,default:c},[s]);export{b as m}; diff --git a/nanobot/web/dist/assets/maxscript-CbdgyYK5.js b/nanobot/web/dist/assets/maxscript-CbdgyYK5.js deleted file mode 100644 index 398674f..0000000 --- a/nanobot/web/dist/assets/maxscript-CbdgyYK5.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function u(t,n){for(var e=0;er[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="maxscript";i.aliases=[];function i(t){(function(n){var e=/\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\b/i;n.languages.maxscript={comment:{pattern:/\/\*[\s\S]*?(?:\*\/|$)|--.*/,greedy:!0},string:{pattern:/(^|[^"\\@])(?:"(?:[^"\\]|\\[\s\S])*"|@"[^"]*")/,lookbehind:!0,greedy:!0},path:{pattern:/\$(?:[\w/\\.*?]|'[^']*')*/,greedy:!0,alias:"string"},"function-call":{pattern:RegExp("((?:"+(/^/.source+"|"+/[;=<>+\-*/^({\[]/.source+"|"+/\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\b/.source)+")[ ]*)(?!"+e.source+")"+/[a-z_]\w*\b/.source+"(?=[ ]*(?:"+("(?!"+e.source+")"+/[a-z_]/.source+"|"+/\d|-\.?\d/.source+"|"+/[({'"$@#?]/.source)+"))","im"),lookbehind:!0,greedy:!0,alias:"function"},"function-definition":{pattern:/(\b(?:fn|function)\s+)\w+\b/i,lookbehind:!0,alias:"function"},argument:{pattern:/\b[a-z_]\w*(?=:)/i,alias:"attr-name"},keyword:e,boolean:/\b(?:false|true)\b/,time:{pattern:/(^|[^\w.])(?:(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?[msft])+|\d+:\d+(?:\.\d*)?)(?![\w.:])/,lookbehind:!0,alias:"number"},number:[{pattern:/(^|[^\w.])(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?|0x[a-fA-F0-9]+)(?![\w.:])/,lookbehind:!0},/\b(?:e|pi)\b/],constant:/\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\b/,color:{pattern:/\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\b/i,alias:"constant"},operator:/[-+*/<>=!]=?|[&^?]|#(?!\()/,punctuation:/[()\[\]{}.:,;]|#(?=\()|\\$/m}})(t)}const l=c(s),p=u({__proto__:null,default:l},[s]);export{p as m}; diff --git a/nanobot/web/dist/assets/mel-BFXwf8_t.js b/nanobot/web/dist/assets/mel-BFXwf8_t.js deleted file mode 100644 index fd7a7f8..0000000 --- a/nanobot/web/dist/assets/mel-BFXwf8_t.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function c(e,n){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=a;a.displayName="mel";a.aliases=[];function a(e){e.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\b\w+(?=\()|\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},e.languages.mel.code.inside.rest=e.languages.mel}const d=s(l),u=c({__proto__:null,default:d},[l]);export{u as m}; diff --git a/nanobot/web/dist/assets/mermaid-Df7jchl2.js b/nanobot/web/dist/assets/mermaid-Df7jchl2.js deleted file mode 100644 index 6ccc007..0000000 --- a/nanobot/web/dist/assets/mermaid-Df7jchl2.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function p(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="mermaid";n.aliases=[];function n(e){e.languages.mermaid={comment:{pattern:/%%.*/,greedy:!0},style:{pattern:/^([ \t]*(?:classDef|linkStyle|style)[ \t]+[\w$-]+[ \t]+)\w.*[^\s;]/m,lookbehind:!0,inside:{property:/\b\w[\w-]*(?=[ \t]*:)/,operator:/:/,punctuation:/,/}},"inter-arrow-label":{pattern:/([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \t]*(?:"[^"\r\n]*"|[^\s".=-](?:[^\r\n.=-]*[^\s.=-])?)[ \t]*(?:\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,lookbehind:!0,greedy:!0,inside:{arrow:{pattern:/(?:\.+->?|--+[->]|==+[=>])$/,alias:"operator"},label:{pattern:/^([\s\S]{2}[ \t]*)\S(?:[\s\S]*\S)?/,lookbehind:!0,alias:"property"},"arrow-head":{pattern:/^\S+/,alias:["arrow","operator"]}}},arrow:[{pattern:/(^|[^{}|o.-])[|}][|o](?:--|\.\.)[|o][|{](?![{}|o.-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>ox.=-])(?:[ox]?|(?:==+|--+|-\.*-)[>ox]|===+|---+|-\.+-)(?![<>ox.=-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\|?(?:--|\.\.)|(?:--|\.\.)\|?>|--|\.\.)(?![<>|*o.-])/,lookbehind:!0,alias:"operator"}],label:{pattern:/(^|[^|<])\|(?:[^\r\n"|]|"[^"\r\n]*")+\|/,lookbehind:!0,greedy:!0,alias:"property"},text:{pattern:/(?:[(\[{]+|\b>)(?:[^\r\n"()\[\]{}]|"[^"\r\n]*")+(?:[)\]}]+|>)/,alias:"string"},string:{pattern:/"[^"\r\n]*"/,greedy:!0},annotation:{pattern:/<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\[\[(?:choice|fork|join)\]\]/i,alias:"important"},keyword:[{pattern:/(^[ \t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\w$-])/m,lookbehind:!0,greedy:!0},{pattern:/(^[ \t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \t]+note)?|loop|opt|par|participant|rect|state|note[ \t]+(?:over|(?:left|right)[ \t]+of))(?![\w$-])/im,lookbehind:!0,greedy:!0}],entity:/#[a-z0-9]+;/,operator:{pattern:/(\w[ \t]*)&(?=[ \t]*\w)|:::|:/,lookbehind:!0},punctuation:/[(){};]/}}const u=s(l),d=p({__proto__:null,default:u},[l]);export{d as m}; diff --git a/nanobot/web/dist/assets/mizar-C4uDp-fn.js b/nanobot/web/dist/assets/mizar-C4uDp-fn.js deleted file mode 100644 index 4976bfd..0000000 --- a/nanobot/web/dist/assets/mizar-C4uDp-fn.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function d(e,n){for(var i=0;it[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var a=s;s.displayName="mizar";s.aliases=[];function s(e){e.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\b\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}}const m=c(a),f=d({__proto__:null,default:m},[a]);export{f as m}; diff --git a/nanobot/web/dist/assets/mongodb-C_Gr21b2.js b/nanobot/web/dist/assets/mongodb-C_Gr21b2.js deleted file mode 100644 index e645335..0000000 --- a/nanobot/web/dist/assets/mongodb-C_Gr21b2.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function l(a,e){for(var $=0;$t[r]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="mongodb";o.aliases=[];function o(a){(function(e){var $=["$eq","$gt","$gte","$in","$lt","$lte","$ne","$nin","$and","$not","$nor","$or","$exists","$type","$expr","$jsonSchema","$mod","$regex","$text","$where","$geoIntersects","$geoWithin","$near","$nearSphere","$all","$elemMatch","$size","$bitsAllClear","$bitsAllSet","$bitsAnyClear","$bitsAnySet","$comment","$elemMatch","$meta","$slice","$currentDate","$inc","$min","$max","$mul","$rename","$set","$setOnInsert","$unset","$addToSet","$pop","$pull","$push","$pullAll","$each","$position","$slice","$sort","$bit","$addFields","$bucket","$bucketAuto","$collStats","$count","$currentOp","$facet","$geoNear","$graphLookup","$group","$indexStats","$limit","$listLocalSessions","$listSessions","$lookup","$match","$merge","$out","$planCacheStats","$project","$redact","$replaceRoot","$replaceWith","$sample","$set","$skip","$sort","$sortByCount","$unionWith","$unset","$unwind","$setWindowFields","$abs","$accumulator","$acos","$acosh","$add","$addToSet","$allElementsTrue","$and","$anyElementTrue","$arrayElemAt","$arrayToObject","$asin","$asinh","$atan","$atan2","$atanh","$avg","$binarySize","$bsonSize","$ceil","$cmp","$concat","$concatArrays","$cond","$convert","$cos","$dateFromParts","$dateToParts","$dateFromString","$dateToString","$dayOfMonth","$dayOfWeek","$dayOfYear","$degreesToRadians","$divide","$eq","$exp","$filter","$first","$floor","$function","$gt","$gte","$hour","$ifNull","$in","$indexOfArray","$indexOfBytes","$indexOfCP","$isArray","$isNumber","$isoDayOfWeek","$isoWeek","$isoWeekYear","$last","$last","$let","$literal","$ln","$log","$log10","$lt","$lte","$ltrim","$map","$max","$mergeObjects","$meta","$min","$millisecond","$minute","$mod","$month","$multiply","$ne","$not","$objectToArray","$or","$pow","$push","$radiansToDegrees","$range","$reduce","$regexFind","$regexFindAll","$regexMatch","$replaceOne","$replaceAll","$reverseArray","$round","$rtrim","$second","$setDifference","$setEquals","$setIntersection","$setIsSubset","$setUnion","$size","$sin","$slice","$split","$sqrt","$stdDevPop","$stdDevSamp","$strcasecmp","$strLenBytes","$strLenCP","$substr","$substrBytes","$substrCP","$subtract","$sum","$switch","$tan","$toBool","$toDate","$toDecimal","$toDouble","$toInt","$toLong","$toObjectId","$toString","$toLower","$toUpper","$trim","$trunc","$type","$week","$year","$zip","$count","$dateAdd","$dateDiff","$dateSubtract","$dateTrunc","$getField","$rand","$sampleRate","$setField","$unsetField","$comment","$explain","$hint","$max","$maxTimeMS","$min","$orderby","$query","$returnKey","$showDiskLoc","$natural"],t=["ObjectId","Code","BinData","DBRef","Timestamp","NumberLong","NumberDecimal","MaxKey","MinKey","RegExp","ISODate","UUID"];$=$.map(function(n){return n.replace("$","\\$")});var r="(?:"+$.join("|")+")\\b";e.languages.mongodb=e.languages.extend("javascript",{}),e.languages.insertBefore("mongodb","string",{property:{pattern:/(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/,greedy:!0,inside:{keyword:RegExp(`^(['"])?`+r+"(?:\\1)?$")}}}),e.languages.mongodb.string.inside={url:{pattern:/https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i,greedy:!0},entity:{pattern:/\b(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d\d?|2[0-4]\d|25[0-5])\b/,greedy:!0}},e.languages.insertBefore("mongodb","constant",{builtin:{pattern:RegExp("\\b(?:"+t.join("|")+")\\b"),alias:"keyword"}})})(a)}const d=i(s),u=l({__proto__:null,default:d},[s]);export{u as m}; diff --git a/nanobot/web/dist/assets/monkey-DNJ0pv5K.js b/nanobot/web/dist/assets/monkey-DNJ0pv5K.js deleted file mode 100644 index c0c52bc..0000000 --- a/nanobot/web/dist/assets/monkey-DNJ0pv5K.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(e,l){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=a;a.displayName="monkey";a.aliases=[];function a(e){e.languages.monkey={comment:{pattern:/^#Rem\s[\s\S]*?^#End|'.+/im,greedy:!0},string:{pattern:/"[^"\r\n]*"/,greedy:!0},preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,greedy:!0,alias:"property"},function:/\b\w+(?=\()/,"type-char":{pattern:/\b[?%#$]/,alias:"class-name"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}}const c=s(i),d=u({__proto__:null,default:c},[i]);export{d as m}; diff --git a/nanobot/web/dist/assets/moonscript-CZGx5KpN.js b/nanobot/web/dist/assets/moonscript-CZGx5KpN.js deleted file mode 100644 index 852686f..0000000 --- a/nanobot/web/dist/assets/moonscript-CZGx5KpN.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function p(e,s){for(var n=0;nt[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=r;r.displayName="moonscript";r.aliases=["moon"];function r(e){e.languages.moonscript={comment:/--.*/,string:[{pattern:/'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,greedy:!0},{pattern:/"[^"]*"/,greedy:!0,inside:{interpolation:{pattern:/#\{[^{}]*\}/,inside:{moonscript:{pattern:/(^#\{)[\s\S]+(?=\})/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/#\{|\}/,alias:"punctuation"}}}}}],"class-name":[{pattern:/(\b(?:class|extends)[ \t]+)\w+/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,variable:/@@?\w*/,property:{pattern:/\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,lookbehind:!0},function:{pattern:/\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:create|resume|running|status|wrap|yield)|debug\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\b/,inside:{punctuation:/\./}},boolean:/\b(?:false|true)\b/,number:/(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,operator:/\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,punctuation:/[.,()[\]{}\\]/},e.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside=e.languages.moonscript,e.languages.moon=e.languages.moonscript}const c=l(i),d=p({__proto__:null,default:c},[i]);export{d as m}; diff --git a/nanobot/web/dist/assets/n1ql-CVVH8CTS.js b/nanobot/web/dist/assets/n1ql-CVVH8CTS.js deleted file mode 100644 index db42cec..0000000 --- a/nanobot/web/dist/assets/n1ql-CVVH8CTS.js +++ /dev/null @@ -1 +0,0 @@ -import{g as e}from"./syntax-highlight-CQw1bBY6.js";function L(E,S){for(var R=0;RT[N]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var O=I;I.displayName="n1ql";I.aliases=[];function I(E){E.languages.n1ql={comment:{pattern:/\/\*[\s\S]*?(?:$|\*\/)|--.*/,greedy:!0},string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},parameter:/\$[\w.]+/,keyword:/\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\b/i,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:FALSE|TRUE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}}const C=e(O),r=L({__proto__:null,default:C},[O]);export{r as n}; diff --git a/nanobot/web/dist/assets/n4js-gl-575aa.js b/nanobot/web/dist/assets/n4js-gl-575aa.js deleted file mode 100644 index dec9a67..0000000 --- a/nanobot/web/dist/assets/n4js-gl-575aa.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function c(e,s){for(var a=0;at[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="n4js";o.aliases=["n4jsd"];function o(e){e.languages.n4js=e.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),e.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),e.languages.n4jsd=e.languages.n4js}const u=i(l),g=c({__proto__:null,default:u},[l]);export{g as n}; diff --git a/nanobot/web/dist/assets/nand2tetris-hdl-BIrfnGTn.js b/nanobot/web/dist/assets/nand2tetris-hdl-BIrfnGTn.js deleted file mode 100644 index 4385133..0000000 --- a/nanobot/web/dist/assets/nand2tetris-hdl-BIrfnGTn.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function l(e,s){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var d=o;o.displayName="nand2tetrisHdl";o.aliases=[];function o(e){e.languages["nand2tetris-hdl"]={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,keyword:/\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\b/,boolean:/\b(?:false|true)\b/,function:/\b[A-Za-z][A-Za-z0-9]*(?=\()/,number:/\b\d+\b/,operator:/=|\.\./,punctuation:/[{}[\];(),:]/}}const f=i(d),c=l({__proto__:null,default:f},[d]);export{c as n}; diff --git a/nanobot/web/dist/assets/naniscript-KbQ2pLfF.js b/nanobot/web/dist/assets/naniscript-KbQ2pLfF.js deleted file mode 100644 index 8beab49..0000000 --- a/nanobot/web/dist/assets/naniscript-KbQ2pLfF.js +++ /dev/null @@ -1 +0,0 @@ -import{g as m}from"./syntax-highlight-CQw1bBY6.js";function g(p,r){for(var n=0;na[i]})}}}return Object.freeze(Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}))}var d=u;u.displayName="naniscript";u.aliases=[];function u(p){(function(r){var n=/\{[^\r\n\[\]{}]*\}/,a={"quoted-string":{pattern:/"(?:[^"\\]|\\.)*"/,alias:"operator"},"command-param-id":{pattern:/(\s)\w+:/,lookbehind:!0,alias:"property"},"command-param-value":[{pattern:n,alias:"selector"},{pattern:/([\t ])\S+/,lookbehind:!0,greedy:!0,alias:"operator"},{pattern:/\S(?:.*\S)?/,alias:"operator"}]};r.languages.naniscript={comment:{pattern:/^([\t ]*);.*/m,lookbehind:!0},define:{pattern:/^>.+/m,alias:"tag",inside:{value:{pattern:/(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,lookbehind:!0,alias:"operator"},key:{pattern:/(^>)\w+/,lookbehind:!0}}},label:{pattern:/^([\t ]*)#[\t ]*\w+[\t ]*$/m,lookbehind:!0,alias:"regex"},command:{pattern:/^([\t ]*)@\w+(?=[\t ]|$).*/m,lookbehind:!0,alias:"function",inside:{"command-name":/^@\w+/,expression:{pattern:n,greedy:!0,alias:"selector"},"command-params":{pattern:/\s*\S[\s\S]*/,inside:a}}},"generic-text":{pattern:/(^[ \t]*)[^#@>;\s].*/m,lookbehind:!0,alias:"punctuation",inside:{"escaped-char":/\\[{}\[\]"]/,expression:{pattern:n,greedy:!0,alias:"selector"},"inline-command":{pattern:/\[[\t ]*\w[^\r\n\[\]]*\]/,greedy:!0,alias:"function",inside:{"command-params":{pattern:/(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,lookbehind:!0,inside:a},"command-param-name":{pattern:/^(\[[\t ]*)\w+/,lookbehind:!0,alias:"name"},"start-stop-char":/[\[\]]/}}}}},r.languages.nani=r.languages.naniscript,r.hooks.add("after-tokenize",function(e){var c=e.tokens;c.forEach(function(t){if(typeof t!="string"&&t.type==="generic-text"){var s=o(t);i(s)||(t.type="bad-line",t.content=s)}})});function i(e){for(var c="[]{}",t=[],s=0;st[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=d;d.displayName="nasm";d.aliases=[];function d(e){e.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|DEFAULT|FLOAT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|(?=\$))(?:0[hx](?:\.[\da-f]+|[\da-f]+(?:\.[\da-f]+)?)(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}}const f=i(s),m=l({__proto__:null,default:f},[s]);export{m as n}; diff --git a/nanobot/web/dist/assets/neon-eg2FssYh.js b/nanobot/web/dist/assets/neon-eg2FssYh.js deleted file mode 100644 index 01e70a0..0000000 --- a/nanobot/web/dist/assets/neon-eg2FssYh.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function i(e,a){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var d=s;s.displayName="neon";s.aliases=[];function s(e){e.languages.neon={comment:{pattern:/#.*/,greedy:!0},datetime:{pattern:/(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/,lookbehind:!0,alias:"number"},key:{pattern:/(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/,lookbehind:!0,alias:"atrule"},number:{pattern:/(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/,lookbehind:!0},boolean:{pattern:/(^|[[{(=:,\s])(?:false|no|true|yes)(?=$|[\]}),:=\s])/i,lookbehind:!0},null:{pattern:/(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i,lookbehind:!0,alias:"keyword"},string:{pattern:/(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/,lookbehind:!0,greedy:!0},literal:{pattern:/(^|[[{(=:,\s])(?:[^#"',:=[\]{}()\s`-]|[:-][^"',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/,lookbehind:!0,alias:"string"},punctuation:/[,:=[\]{}()-]/}}const u=l(d),f=i({__proto__:null,default:u},[d]);export{f as n}; diff --git a/nanobot/web/dist/assets/nevod-BELI8Kl6.js b/nanobot/web/dist/assets/nevod-BELI8Kl6.js deleted file mode 100644 index 0195ecd..0000000 --- a/nanobot/web/dist/assets/nevod-BELI8Kl6.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function l(a,i){for(var n=0;ne[t]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var o=s;s.displayName="nevod";s.aliases=[];function s(a){a.languages.nevod={comment:/\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,string:{pattern:/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,greedy:!0,inside:{"string-attrs":/!$|!\*$|\*$/}},namespace:{pattern:/(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,lookbehind:!0},pattern:{pattern:/(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,lookbehind:!0,inside:{"pattern-name":{pattern:/^#?[a-zA-Z0-9\-.]+/,alias:"class-name"},fields:{pattern:/\(.*\)/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},punctuation:/[,()]/,operator:{pattern:/~/,alias:"field-hidden-mark"}}}}},search:{pattern:/(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,alias:"function",lookbehind:!0},keyword:/@(?:having|inside|namespace|outside|pattern|require|search|where)\b/,"standard-pattern":{pattern:/\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\b(?:\([a-zA-Z0-9\-.,\s+]*\))?/,inside:{"standard-pattern-name":{pattern:/^[a-zA-Z0-9\-.]+/,alias:"builtin"},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},"standard-pattern-attr":{pattern:/[a-zA-Z0-9\-.]+/,alias:"builtin"},punctuation:/[,()]/}},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},operator:[{pattern:/=/,alias:"pattern-def"},{pattern:/&/,alias:"conjunction"},{pattern:/~/,alias:"exception"},{pattern:/\?/,alias:"optionality"},{pattern:/[[\]]/,alias:"repetition"},{pattern:/[{}]/,alias:"variation"},{pattern:/[+_]/,alias:"sequence"},{pattern:/\.{2,3}/,alias:"span"}],"field-capture":[{pattern:/([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,lookbehind:!0,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}},{pattern:/[a-zA-Z0-9\-.]+\s*:/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}}],punctuation:/[:;,()]/,name:/[a-zA-Z0-9\-.]+/}}const d=p(o),c=l({__proto__:null,default:d},[o]);export{c as n}; diff --git a/nanobot/web/dist/assets/nginx-C3HgkHXq.js b/nanobot/web/dist/assets/nginx-C3HgkHXq.js deleted file mode 100644 index 0bf8519..0000000 --- a/nanobot/web/dist/assets/nginx-C3HgkHXq.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function d(t,o){for(var e=0;er[n]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="nginx";i.aliases=[];function i(t){(function(o){var e=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;o.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:e}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:e}},punctuation:/[{};]/}})(t)}const l=u(s),p=d({__proto__:null,default:l},[s]);export{p as n}; diff --git a/nanobot/web/dist/assets/nim-BzkT6EYr.js b/nanobot/web/dist/assets/nim-BzkT6EYr.js deleted file mode 100644 index 2e45dbf..0000000 --- a/nanobot/web/dist/assets/nim-BzkT6EYr.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function s(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var d=o;o.displayName="nim";o.aliases=[];function o(e){e.languages.nim={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(?:\b(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")/,greedy:!0},char:{pattern:/'(?:\\(?:\d+|x[\da-fA-F]{0,2}|.)|[^'])'/,greedy:!0},function:{pattern:/(?:(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,greedy:!0,inside:{operator:/\*$/}},identifier:{pattern:/`[^`\r\n]+`/,greedy:!0,inside:{punctuation:/`/}},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/}}const f=c(d),p=s({__proto__:null,default:f},[d]);export{p as n}; diff --git a/nanobot/web/dist/assets/nix-V4cZ9OOI.js b/nanobot/web/dist/assets/nix-V4cZ9OOI.js deleted file mode 100644 index a29c812..0000000 --- a/nanobot/web/dist/assets/nix-V4cZ9OOI.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(t,s){for(var n=0;ne[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var o=a;a.displayName="nix";a.aliases=[];function a(t){t.languages.nix={comment:{pattern:/\/\*[\s\S]*?\*\/|#.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:null}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"important"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},t.languages.nix.string.inside.interpolation.inside=t.languages.nix}const g=l(o),d=u({__proto__:null,default:g},[o]);export{d as n}; diff --git a/nanobot/web/dist/assets/nsis-BIbU4QJi.js b/nanobot/web/dist/assets/nsis-BIbU4QJi.js deleted file mode 100644 index 43aa632..0000000 --- a/nanobot/web/dist/assets/nsis-BIbU4QJi.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="nsis";i.aliases=[];function i(e){e.languages.nsis={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^[\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\b/m,lookbehind:!0},property:/\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\b/,constant:/\$\{[!\w\.:\^-]+\}|\$\([!\w\.:\^-]+\)/,variable:/\$\w[\w\.]*/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^[\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}}}const T=l(s),E=d({__proto__:null,default:T},[s]);export{E as n}; diff --git a/nanobot/web/dist/assets/objectivec-B16WFqV4.js b/nanobot/web/dist/assets/objectivec-B16WFqV4.js deleted file mode 100644 index 656ba67..0000000 --- a/nanobot/web/dist/assets/objectivec-B16WFqV4.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";import{a as l}from"./c-BCNF8Z26.js";function u(e,c){for(var r=0;rt[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var f=l,i=n;n.displayName="objectivec";n.aliases=["objc"];function n(e){e.register(f),e.languages.objectivec=e.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete e.languages.objectivec["class-name"],e.languages.objc=e.languages.objectivec}const g=s(i),d=u({__proto__:null,default:g},[i]);export{d as o}; diff --git a/nanobot/web/dist/assets/ocaml-qDk5VAmI.js b/nanobot/web/dist/assets/ocaml-qDk5VAmI.js deleted file mode 100644 index 050b4d6..0000000 --- a/nanobot/web/dist/assets/ocaml-qDk5VAmI.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function c(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="ocaml";o.aliases=[];function o(e){e.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/}}const p=s(l),d=c({__proto__:null,default:p},[l]);export{d as o}; diff --git a/nanobot/web/dist/assets/opencl-BqalvVef.js b/nanobot/web/dist/assets/opencl-BqalvVef.js deleted file mode 100644 index 7f4260c..0000000 --- a/nanobot/web/dist/assets/opencl-BqalvVef.js +++ /dev/null @@ -1 +0,0 @@ -import{g as N}from"./syntax-highlight-CQw1bBY6.js";import{a as S}from"./c-BCNF8Z26.js";function L(I,E){for(var _=0;_R[e]})}}}return Object.freeze(Object.defineProperty(I,Symbol.toStringTag,{value:"Module"}))}var t=S,T=O;O.displayName="opencl";O.aliases=[];function O(I){I.register(t),function(E){E.languages.opencl=E.languages.extend("c",{keyword:/\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i,boolean:/\b(?:false|true)\b/,"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\b/,alias:"constant"}}),E.languages.insertBefore("opencl","class-name",{"builtin-type":{pattern:/\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/,alias:"keyword"}});var _={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:FALSE|TRUE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}};E.languages.insertBefore("c","keyword",_),E.languages.cpp&&(_["type-opencl-host-cpp"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\b/,alias:"keyword"},E.languages.insertBefore("cpp","keyword",_))}(I)}const M=N(T),C=L({__proto__:null,default:M},[T]);export{C as o}; diff --git a/nanobot/web/dist/assets/openqasm-COJFRyfV.js b/nanobot/web/dist/assets/openqasm-COJFRyfV.js deleted file mode 100644 index dd5b739..0000000 --- a/nanobot/web/dist/assets/openqasm-COJFRyfV.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function u(e,s){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="openqasm";o.aliases=["qasm"];function o(e){e.languages.openqasm={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"[^"\r\n\t]*"|'[^'\r\n\t]*'/,greedy:!0},keyword:/\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\b|#pragma\b/,"class-name":/\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\b/,function:/\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\b(?=\s*\()/,constant:/\b(?:euler|pi|tau)\b|π|𝜏|ℇ/,number:{pattern:/(^|[^.\w$])(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:dt|ns|us|µs|ms|s)?/i,lookbehind:!0},operator:/->|>>=?|<<=?|&&|\|\||\+\+|--|[!=<>&|~^+\-*/%]=?|@/,punctuation:/[(){}\[\];,:.]/},e.languages.qasm=e.languages.openqasm}const c=i(l),g=u({__proto__:null,default:c},[l]);export{g as o}; diff --git a/nanobot/web/dist/assets/oz-DJ301Vvv.js b/nanobot/web/dist/assets/oz-DJ301Vvv.js deleted file mode 100644 index a8e5f7a..0000000 --- a/nanobot/web/dist/assets/oz-DJ301Vvv.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function f(e,i){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=n;n.displayName="oz";n.aliases=[];function n(e){e.languages.oz={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/\b[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*\b/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/`(?:[^`\\]|\\.)+`/,"attr-name":/\b\w+(?=[ \t]*:(?![:=]))/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}}const c=l(s),u=f({__proto__:null,default:c},[s]);export{u as o}; diff --git a/nanobot/web/dist/assets/parigp-Bdm1I2n0.js b/nanobot/web/dist/assets/parigp-Bdm1I2n0.js deleted file mode 100644 index 81eb68c..0000000 --- a/nanobot/web/dist/assets/parigp-Bdm1I2n0.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";function u(e,r){for(var t=0;to[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var a=p;p.displayName="parigp";p.aliases=[];function p(e){e.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:function(){var r=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return r=r.map(function(t){return t.split("").join(" *")}).join("|"),RegExp("\\b(?:"+r+")\\b")}(),function:/\b\w(?:[\w ]*\w)?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}}const g=f(a),s=u({__proto__:null,default:g},[a]);export{s as p}; diff --git a/nanobot/web/dist/assets/parser-kbK5Rur6.js b/nanobot/web/dist/assets/parser-kbK5Rur6.js deleted file mode 100644 index 1326c68..0000000 --- a/nanobot/web/dist/assets/parser-kbK5Rur6.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function p(r,t){for(var e=0;ea[n]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="parser";i.aliases=[];function i(r){(function(t){var e=t.languages.parser=t.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/});e=t.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:e.keyword,variable:e.variable,function:e.function,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i,escape:e.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:e.punctuation}}}),t.languages.insertBefore("inside","punctuation",{expression:e.expression,keyword:e.keyword,variable:e.variable,function:e.function,escape:e.escape,"parser-punctuation":{pattern:e.punctuation,alias:"punctuation"}},e.tag.inside["attr-value"])})(r)}const l=u(s),d=p({__proto__:null,default:l},[s]);export{d as p}; diff --git a/nanobot/web/dist/assets/pascal-jmorIOh9.js b/nanobot/web/dist/assets/pascal-jmorIOh9.js deleted file mode 100644 index 40563db..0000000 --- a/nanobot/web/dist/assets/pascal-jmorIOh9.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,i){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="pascal";o.aliases=["objectpascal"];function o(e){e.languages.pascal={directive:{pattern:/\{\$[\s\S]*?\}/,greedy:!0,alias:["marco","property"]},comment:{pattern:/\(\*[\s\S]*?\*\)|\{[\s\S]*?\}|\/\/.*/,greedy:!0},string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},asm:{pattern:/(\basm\b)[\s\S]+?(?=\bend\s*[;[])/i,lookbehind:!0,greedy:!0,inside:null},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},e.languages.pascal.asm.inside=e.languages.extend("pascal",{asm:void 0,keyword:void 0,operator:void 0}),e.languages.objectpascal=e.languages.pascal}const c=l(s),u=d({__proto__:null,default:c},[s]);export{u as p}; diff --git a/nanobot/web/dist/assets/pascaligo-BpzC8RfX.js b/nanobot/web/dist/assets/pascaligo-BpzC8RfX.js deleted file mode 100644 index 2a90afe..0000000 --- a/nanobot/web/dist/assets/pascaligo-BpzC8RfX.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function p(r,a){for(var n=0;ne[t]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var u=s;s.displayName="pascaligo";s.aliases=[];function s(r){(function(a){var n=/\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source,e=/(?:\b\w+(?:)?|)/.source.replace(//g,function(){return n}),t=a.languages.pascaligo={comment:/\(\*[\s\S]+?\*\)|\/\/.*/,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,greedy:!0},"class-name":[{pattern:RegExp(/(\btype\s+\w+\s+is\s+)/.source.replace(//g,function(){return e}),"i"),lookbehind:!0,inside:null},{pattern:RegExp(/(?=\s+is\b)/.source.replace(//g,function(){return e}),"i"),inside:null},{pattern:RegExp(/(:\s*)/.source.replace(//g,function(){return e})),lookbehind:!0,inside:null}],keyword:{pattern:/(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,lookbehind:!0},boolean:{pattern:/(^|[^&])\b(?:False|True)\b/i,lookbehind:!0},builtin:{pattern:/(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,lookbehind:!0},function:/\b\w+(?=\s*\()/,number:[/%[01]+|&[0-7]+|\$[a-f\d]+/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],operator:/->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,punctuation:/\(\.|\.\)|[()\[\]:;,.{}]/},o=["comment","keyword","builtin","operator","punctuation"].reduce(function(i,c){return i[c]=t[c],i},{});t["class-name"].forEach(function(i){i.inside=o})})(r)}const b=l(u),d=p({__proto__:null,default:b},[u]);export{d as p}; diff --git a/nanobot/web/dist/assets/pcaxis-CH6V6_cv.js b/nanobot/web/dist/assets/pcaxis-CH6V6_cv.js deleted file mode 100644 index bcccae5..0000000 --- a/nanobot/web/dist/assets/pcaxis-CH6V6_cv.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function u(e,o){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=s;s.displayName="pcaxis";s.aliases=["px"];function s(e){e.languages.pcaxis={string:/"[^"]*"/,keyword:{pattern:/((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/,lookbehind:!0,greedy:!0,inside:{keyword:/^[-A-Z\d]+/,language:{pattern:/^(\s*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/^\[|\]$/,property:/[-\w]+/}},"sub-key":{pattern:/^(\s*)\S[\s\S]*/,lookbehind:!0,inside:{parameter:{pattern:/"[^"]*"/,alias:"property"},punctuation:/^\(|\)$|,/}}}},operator:/=/,tlist:{pattern:/TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/,greedy:!0,inside:{function:/^TLIST/,property:{pattern:/^(\s*\(\s*)\w+/,lookbehind:!0},string:/"[^"]*"/,punctuation:/[(),]/,operator:/-/}},punctuation:/[;,]/,number:{pattern:/(^|\s)\d+(?:\.\d+)?(?!\S)/,lookbehind:!0},boolean:/NO|YES/},e.languages.px=e.languages.pcaxis}const c=p(i),l=u({__proto__:null,default:c},[i]);export{l as p}; diff --git a/nanobot/web/dist/assets/peoplecode-CrVpzDHi.js b/nanobot/web/dist/assets/peoplecode-CrVpzDHi.js deleted file mode 100644 index 0d90df4..0000000 --- a/nanobot/web/dist/assets/peoplecode-CrVpzDHi.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function p(e,l){for(var r=0;rt[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=a;a.displayName="peoplecode";a.aliases=["pcode"];function a(e){e.languages.peoplecode={comment:RegExp([/\/\*[\s\S]*?\*\//.source,/\bREM[^;]*;/.source,/<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,/\/\+[\s\S]*?\+\//.source].join("|")),string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},variable:/%\w+/,"function-definition":{pattern:/((?:^|[^\w-])(?:function|method)\s+)\w+/i,lookbehind:!0,alias:"function"},"class-name":{pattern:/((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,lookbehind:!0,inside:{punctuation:/:/}},keyword:/\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,"operator-keyword":{pattern:/\b(?:and|not|or)\b/i,alias:"operator"},function:/[_a-z]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/\b\d+(?:\.\d+)?\b/,operator:/<>|[<>]=?|!=|\*\*|[-+*/|=@]/,punctuation:/[:.;,()[\]]/},e.languages.pcode=e.languages.peoplecode}const i=c(s),d=p({__proto__:null,default:i},[s]);export{d as p}; diff --git a/nanobot/web/dist/assets/perl-kMvsU1Ry.js b/nanobot/web/dist/assets/perl-kMvsU1Ry.js deleted file mode 100644 index b8d90d7..0000000 --- a/nanobot/web/dist/assets/perl-kMvsU1Ry.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(r,o){for(var e=0;et[s]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var u=a;a.displayName="perl";a.aliases=[];function a(r){(function(o){var e=/(?:\((?:[^()\\]|\\[\s\S])*\)|\{(?:[^{}\\]|\\[\s\S])*\}|\[(?:[^[\]\\]|\\[\s\S])*\]|<(?:[^<>\\]|\\[\s\S])*>)/.source;o.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],string:[{pattern:RegExp(/\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,e].join("|")+")"),greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:RegExp(/\b(?:m|qr)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,e].join("|")+")"+/[msixpodualngc]*/.source),greedy:!0},{pattern:RegExp(/(^|[^-])\b(?:s|tr|y)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,/([a-zA-Z0-9])(?:(?!\3)[^\\]|\\[\s\S])*\3(?:(?!\3)[^\\]|\\[\s\S])*\3/.source,e+/\s*/.source+e].join("|")+")"+/[msixpodualngcer]*/.source),lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*?>|\b_\b/,alias:"symbol"},"v-string":{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/(\bsub[ \t]+)\w+/,lookbehind:!0},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\b/,punctuation:/[{}[\];(),:]/}})(r)}const i=l(u),p=d({__proto__:null,default:i},[u]);export{p}; diff --git a/nanobot/web/dist/assets/php-ZeDnPesV.js b/nanobot/web/dist/assets/php-ZeDnPesV.js deleted file mode 100644 index cdbb7ee..0000000 --- a/nanobot/web/dist/assets/php-ZeDnPesV.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";import{a as f}from"./markup-templating-C7tXeHgl.js";function g(n,e){for(var i=0;it[a]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var y=f,p=l;l.displayName="php";l.aliases=[];function l(n){n.register(y),function(e){var i=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,t=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],a=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,r=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,o=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:i,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:a,operator:r,punctuation:o};var u={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},d=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:u}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:u}}];e.languages.insertBefore("php","variable",{string:d,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:i,string:d,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:a,operator:r,punctuation:o}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",function(s){if(/<\?/.test(s.code)){var b=/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g;e.languages["markup-templating"].buildPlaceholders(s,"php",b)}}),e.hooks.add("after-tokenize",function(s){e.languages["markup-templating"].tokenizePlaceholders(s,"php")})}(n)}const h=c(p),w=g({__proto__:null,default:h},[p]);export{p as a,w as p}; diff --git a/nanobot/web/dist/assets/php-extras-BAOsIffO.js b/nanobot/web/dist/assets/php-extras-BAOsIffO.js deleted file mode 100644 index d7c21cc..0000000 --- a/nanobot/web/dist/assets/php-extras-BAOsIffO.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";import{a as f}from"./php-ZeDnPesV.js";function l(e,s){for(var a=0;ar[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var c=f,n=o;o.displayName="phpExtras";o.aliases=[];function o(e){e.register(c),e.languages.insertBefore("php","variable",{this:{pattern:/\$this\b/,alias:"keyword"},global:/\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/\b(?:parent|self|static)\b/,punctuation:/::|\\/}}})}const g=i(n),_=l({__proto__:null,default:g},[n]);export{_ as p}; diff --git a/nanobot/web/dist/assets/phpdoc-CSB-dsNW.js b/nanobot/web/dist/assets/phpdoc-CSB-dsNW.js deleted file mode 100644 index 78a26c5..0000000 --- a/nanobot/web/dist/assets/phpdoc-CSB-dsNW.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";import{a as s}from"./php-ZeDnPesV.js";import{a as d}from"./javadoclike-CPYkCmOi.js";function i(a,e){for(var r=0;ro[t]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var g=s,u=d,l=n;n.displayName="phpdoc";n.aliases=[];function n(a){a.register(g),a.register(u),function(e){var r=/(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source;e.languages.phpdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp("(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:"+r+"\\s+)?)\\$\\w+"),lookbehind:!0}}),e.languages.insertBefore("phpdoc","keyword",{"class-name":[{pattern:RegExp("(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)"+r),lookbehind:!0,inside:{keyword:/\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\b/,punctuation:/[|\\[\]()]/}}]}),e.languages.javadoclike.addSupport("php",e.languages.phpdoc)}(a)}const f=c(l),v=i({__proto__:null,default:f},[l]);export{v as p}; diff --git a/nanobot/web/dist/assets/plsql-YHzMzUDw.js b/nanobot/web/dist/assets/plsql-YHzMzUDw.js deleted file mode 100644 index c619e12..0000000 --- a/nanobot/web/dist/assets/plsql-YHzMzUDw.js +++ /dev/null @@ -1 +0,0 @@ -import{g as L}from"./syntax-highlight-CQw1bBY6.js";import{a as C}from"./sql-Cn07C-jv.js";function D(E,O){for(var I=0;IA[T]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var U=C,S=N;N.displayName="plsql";N.aliases=[];function N(E){E.register(U),E.languages.plsql=E.languages.extend("sql",{comment:{pattern:/\/\*[\s\S]*?\*\/|--.*/,greedy:!0},keyword:/\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\b/i,operator:/:=?|=>|[<>^~!]=|\.\.|\|\||\*\*|[-+*/%<>=@]/}),E.languages.insertBefore("plsql","operator",{label:{pattern:/<<\s*\w+\s*>>/,alias:"symbol"}})}const M=L(S),P=D({__proto__:null,default:M},[S]);export{P as p}; diff --git a/nanobot/web/dist/assets/powerquery-DVRG5VGt.js b/nanobot/web/dist/assets/powerquery-DVRG5VGt.js deleted file mode 100644 index 80ff421..0000000 --- a/nanobot/web/dist/assets/powerquery-DVRG5VGt.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";function u(e,i){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var b=o;o.displayName="powerquery";o.aliases=[];function o(e){e.languages.powerquery={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},"quoted-identifier":{pattern:/#"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},string:{pattern:/(?:#!)?"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},constant:[/\bDay\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\b/,/\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/,/\bOccurrence\.(?:All|First|Last)\b/,/\bOrder\.(?:Ascending|Descending)\b/,/\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/,/\bMissingField\.(?:Error|Ignore|UseNull)\b/,/\bQuoteStyle\.(?:Csv|None)\b/,/\bJoinKind\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\b/,/\bGroupKind\.(?:Global|Local)\b/,/\bExtraValues\.(?:Error|Ignore|List)\b/,/\bJoinAlgorithm\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\b/,/\bJoinSide\.(?:Left|Right)\b/,/\bPrecision\.(?:Decimal|Double)\b/,/\bRelativePosition\.From(?:End|Start)\b/,/\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\b/,/\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/,/\bnull\b/],boolean:/\b(?:false|true)\b/,keyword:/\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/,function:{pattern:/(^|[^#\w.])[a-z_][\w.]*(?=\s*\()/i,lookbehind:!0},"data-type":{pattern:/\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\b/,alias:"class-name"},number:{pattern:/\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i,lookbehind:!0},operator:/[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/,punctuation:/[,;\[\](){}]/},e.languages.pq=e.languages.powerquery,e.languages.mscript=e.languages.powerquery}const l=d(b),c=u({__proto__:null,default:l},[b]);export{c as p}; diff --git a/nanobot/web/dist/assets/powershell-B3lqWH4i.js b/nanobot/web/dist/assets/powershell-B3lqWH4i.js deleted file mode 100644 index a20831e..0000000 --- a/nanobot/web/dist/assets/powershell-B3lqWH4i.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function p(r,i){for(var e=0;et[o]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var a=s;s.displayName="powershell";s.aliases=[];function s(r){(function(i){var e=i.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:null},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:false|true)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/};e.string[0].inside={function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:e},boolean:e.boolean,variable:e.variable}})(r)}const c=l(a),d=p({__proto__:null,default:c},[a]);export{d as p}; diff --git a/nanobot/web/dist/assets/processing-CR-31tqS.js b/nanobot/web/dist/assets/processing-CR-31tqS.js deleted file mode 100644 index f55385a..0000000 --- a/nanobot/web/dist/assets/processing-CR-31tqS.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function l(e,a){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=s;s.displayName="processing";s.aliases=[];function s(e){e.languages.processing=e.languages.extend("clike",{keyword:/\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,function:/\b\w+(?=\s*\()/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),e.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,alias:"class-name"}})}const p=c(i),f=l({__proto__:null,default:p},[i]);export{f as p}; diff --git a/nanobot/web/dist/assets/prolog-BMVl1hPh.js b/nanobot/web/dist/assets/prolog-BMVl1hPh.js deleted file mode 100644 index 3370571..0000000 --- a/nanobot/web/dist/assets/prolog-BMVl1hPh.js +++ /dev/null @@ -1 +0,0 @@ -import{g}from"./syntax-highlight-CQw1bBY6.js";function l(e,p){for(var o=0;or[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var f=a;a.displayName="prolog";a.aliases=[];function a(e){e.languages.prolog={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1(?!\1)/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+(?:\.\d*)?/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}}const s=g(f),u=l({__proto__:null,default:s},[f]);export{u as p}; diff --git a/nanobot/web/dist/assets/promql-Breql4n_.js b/nanobot/web/dist/assets/promql-Breql4n_.js deleted file mode 100644 index 554e85b..0000000 --- a/nanobot/web/dist/assets/promql-Breql4n_.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function l(a,o){for(var r=0;rt[e]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="promql";i.aliases=[];function i(a){(function(o){var r=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"],t=["on","ignoring","group_right","group_left","by","without"],e=["offset"],n=r.concat(t,e);o.languages.promql={comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},"vector-match":{pattern:new RegExp("((?:"+t.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]+\b/,alias:"attr-name"},punctuation:/[(),]/}},"context-labels":{pattern:/\{[^{}]*\}/,inside:{"label-key":{pattern:/\b[a-z_]\w*(?=\s*(?:=|![=~]))/,alias:"attr-name"},"label-value":{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]|,/}},"context-range":[{pattern:/\[[\w\s:]+\]/,inside:{punctuation:/\[|\]|:/,"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}},{pattern:/(\boffset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}}],keyword:new RegExp("\\b(?:"+n.join("|")+")\\b","i"),function:/\b[a-z_]\w*(?=\s*\()/i,number:/[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,operator:/[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|or|unless)\b/i,punctuation:/[{};()`,.[\]]/}})(a)}const p=u(s),d=l({__proto__:null,default:p},[s]);export{d as p}; diff --git a/nanobot/web/dist/assets/properties-B6TP6l9f.js b/nanobot/web/dist/assets/properties-B6TP6l9f.js deleted file mode 100644 index 8b0c57b..0000000 --- a/nanobot/web/dist/assets/properties-B6TP6l9f.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function u(e,a){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var p=s;s.displayName="properties";s.aliases=[];function s(e){e.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?= *[=:]| )/m,punctuation:/[=:]/}}const f=i(p),c=u({__proto__:null,default:f},[p]);export{c as p}; diff --git a/nanobot/web/dist/assets/protobuf-QrCzJKsr.js b/nanobot/web/dist/assets/protobuf-QrCzJKsr.js deleted file mode 100644 index 75ce914..0000000 --- a/nanobot/web/dist/assets/protobuf-QrCzJKsr.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function p(s,e){for(var t=0;ta[o]})}}}return Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}var i=r;r.displayName="protobuf";r.aliases=[];function r(s){(function(e){var t=/\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\b/;e.languages.protobuf=e.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),e.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:t}},builtin:t,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})})(s)}const l=u(i),f=p({__proto__:null,default:l},[i]);export{f as p}; diff --git a/nanobot/web/dist/assets/psl-DqYIz3cQ.js b/nanobot/web/dist/assets/psl-DqYIz3cQ.js deleted file mode 100644 index c7355ca..0000000 --- a/nanobot/web/dist/assets/psl-DqYIz3cQ.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function c(e,a){for(var n=0;nt[_]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=r;r.displayName="psl";r.aliases=[];function r(e){e.languages.psl={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,inside:{symbol:/\\[ntrbA-Z"\\]/}},"heredoc-string":{pattern:/<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,alias:"string",greedy:!0},keyword:/\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,constant:/\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\b/,boolean:/\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\b/,variable:/\b(?:PslDebug|errno|exit_status)\b/,builtin:{pattern:/\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\b/,alias:"builtin-function"},"foreach-variable":{pattern:/(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,lookbehind:!0,greedy:!0},function:/\b[_a-z]\w*\b(?=\s*\()/i,number:/\b(?:0x[0-9a-f]+|\d+(?:\.\d+)?)\b/i,operator:/--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,punctuation:/[(){}\[\];,]/}}const l=i(o),g=c({__proto__:null,default:l},[o]);export{g as p}; diff --git a/nanobot/web/dist/assets/pug-D-vggDMU.js b/nanobot/web/dist/assets/pug-D-vggDMU.js deleted file mode 100644 index ba5cc49..0000000 --- a/nanobot/web/dist/assets/pug-D-vggDMU.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function g(i,e){for(var s=0;sn[a]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var o=l;l.displayName="pug";l.aliases=[];function l(i){(function(e){e.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ].+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:e.languages.javascript},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:/\S[\s\S]*/}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:case|default|each|else|if|unless|when|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:case|default|else|if|unless|when|while)\b/,alias:"keyword"},rest:e.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:append|block|extends|include|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:e.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]).+/m,lookbehind:!0,inside:e.languages.javascript},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:e.languages.javascript},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*(?!\s))(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:e.languages.javascript},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/,"attr-id":/#[\w\-]+/,"attr-class":/\.[\w\-]+/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:e.languages.javascript}],punctuation:/[.\-!=|]+/};for(var s=/(^([\t ]*)):(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/.source,n=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","less","livescript","markdown",{filter:"sass",language:"scss"},"stylus"],a={},r=0,u=n.length;r",function(){return t.filter}),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:{pattern:/\S[\s\S]*/,alias:[t.language,"language-"+t.language],inside:e.languages[t.language]}}})}e.languages.insertBefore("pug","filter",a)})(i)}const c=p(o),f=g({__proto__:null,default:c},[o]);export{f as p}; diff --git a/nanobot/web/dist/assets/puppet-BzbVioYO.js b/nanobot/web/dist/assets/puppet-BzbVioYO.js deleted file mode 100644 index bf98634..0000000 --- a/nanobot/web/dist/assets/puppet-BzbVioYO.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function s(n,e){for(var t=0;tr[a]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var u=o;o.displayName="puppet";o.aliases=[];function o(n){(function(e){e.languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\b\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:false|true)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/};var t=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:e.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}];e.languages.puppet.heredoc[0].inside.interpolation=t,e.languages.puppet.string.inside["double-quoted"].inside.interpolation=t})(n)}const l=p(u),b=s({__proto__:null,default:l},[u]);export{b as p}; diff --git a/nanobot/web/dist/assets/pure-C-45B2xW.js b/nanobot/web/dist/assets/pure-C-45B2xW.js deleted file mode 100644 index 7a3ce89..0000000 --- a/nanobot/web/dist/assets/pure-C-45B2xW.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function c(n,e){for(var i=0;ia[t]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="pure";o.aliases=[];function o(n){(function(e){e.languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?:[!"#$%&'*+,\-.\/:<=>?@\\^`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]|\b_+\b)+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/};var i=["c",{lang:"c++",alias:"cpp"},"fortran"],a=/%< *-\*- *\d* *-\*-[\s\S]+?%>/.source;i.forEach(function(t){var r=t;if(typeof t!="string"&&(r=t.alias,t=t.lang),e.languages[r]){var p={};p["inline-lang-"+r]={pattern:RegExp(a.replace("",t.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:e.util.clone(e.languages.pure["inline-lang"].inside)},p["inline-lang-"+r].inside.rest=e.util.clone(e.languages[r]),e.languages.insertBefore("pure","inline-lang",p)}}),e.languages.c&&(e.languages.pure["inline-lang"].inside.rest=e.util.clone(e.languages.c))})(n)}const u=s(l),f=c({__proto__:null,default:u},[l]);export{f as p}; diff --git a/nanobot/web/dist/assets/purebasic-BTrwX9MX.js b/nanobot/web/dist/assets/purebasic-BTrwX9MX.js deleted file mode 100644 index 3d7ef7e..0000000 --- a/nanobot/web/dist/assets/purebasic-BTrwX9MX.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function c(e,l){for(var t=0;tr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=n;n.displayName="purebasic";n.aliases=[];function n(e){e.languages.purebasic=e.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*/@]/}),e.languages.insertBefore("purebasic","keyword",{tag:/#\w+\$?/,asm:{pattern:/(^[\t ]*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},keyword:[/\b(?:extern|global)\b[^;\r\n]*/i,/\b(?:CPU|DEFAULT|FLOAT)\b.*/],function:{pattern:/^([\t ]*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^([\t ]*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx](?:[\da-f]*\.)?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete e.languages.purebasic["class-name"],delete e.languages.purebasic.boolean,e.languages.pbfasm=e.languages.purebasic}const s=i(o),b=c({__proto__:null,default:s},[o]);export{b as p}; diff --git a/nanobot/web/dist/assets/purescript-DEHvc7fd.js b/nanobot/web/dist/assets/purescript-DEHvc7fd.js deleted file mode 100644 index c194aaa..0000000 --- a/nanobot/web/dist/assets/purescript-DEHvc7fd.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./syntax-highlight-CQw1bBY6.js";import{a as b}from"./haskell-BZ81Xx8-.js";function n(u,c){for(var a=0;ae[f]})}}}return Object.freeze(Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}))}var i=b,d=r;r.displayName="purescript";r.aliases=["purs"];function r(u){u.register(i),u.languages.purescript=u.languages.extend("haskell",{keyword:/\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b|∀/,"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import)\b/,punctuation:/\./}},builtin:/\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/,operator:[u.languages.haskell.operator[0],u.languages.haskell.operator[2],/[\xa2-\xa6\xa8\xa9\xac\xae-\xb1\xb4\xb8\xd7\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u07fe\u07ff\u09f2\u09f3\u09fa\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u166d\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20bf\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a\u218b\u2190-\u2307\u230c-\u2328\u232b-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b97-\u2bff\u2ce5-\u2cea\u2e50\u2e51\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u309b\u309c\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720\ua721\ua789\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\uab6a\uab6b\ufb29\ufbb2-\ufbc1\ufdfc\ufdfd\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc\ufffd]/]}),u.languages.purs=u.languages.purescript}const s=o(d),g=n({__proto__:null,default:s},[d]);export{g as p}; diff --git a/nanobot/web/dist/assets/python-AeCF5TgL.js b/nanobot/web/dist/assets/python-AeCF5TgL.js deleted file mode 100644 index 086e9e4..0000000 --- a/nanobot/web/dist/assets/python-AeCF5TgL.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function p(e,i){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="python";o.aliases=["py"];function o(e){e.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python["string-interpolation"].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}const u=l(s),c=p({__proto__:null,default:u},[s]);export{c as p}; diff --git a/nanobot/web/dist/assets/q-BclXjuqa.js b/nanobot/web/dist/assets/q-BclXjuqa.js deleted file mode 100644 index c2c1561..0000000 --- a/nanobot/web/dist/assets/q-BclXjuqa.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function l(e,d){for(var s=0;st[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=n;n.displayName="q";n.aliases=[];function n(e){e.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r(?!\n)))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\da-fA-F]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?~=|$&#@^]):?|\b_\b:?/,alias:"operator"},punctuation:/[(){}\[\];.]/}}const u=i(o),m=l({__proto__:null,default:u},[o]);export{m as q}; diff --git a/nanobot/web/dist/assets/qml-GIwLzKGH.js b/nanobot/web/dist/assets/qml-GIwLzKGH.js deleted file mode 100644 index 38cb030..0000000 --- a/nanobot/web/dist/assets/qml-GIwLzKGH.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function i(a,t){for(var o=0;or[e]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var p=s;s.displayName="qml";s.aliases=[];function s(a){(function(t){for(var o=/"(?:\\.|[^\\"\r\n])*"|'(?:\\.|[^\\'\r\n])*'/.source,r=/\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\//.source,e=/(?:[^\\()[\]{}"'/]||\/(?![*/])||\(*\)|\[*\]|\{*\}|\\[\s\S])/.source.replace(//g,function(){return o}).replace(//g,function(){return r}),n=0;n<2;n++)e=e.replace(//g,function(){return e});e=e.replace(//g,"[^\\s\\S]"),t.languages.qml={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},"javascript-function":{pattern:RegExp(/((?:^|;)[ \t]*)function\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*\(*\)\s*\{*\}/.source.replace(//g,function(){return e}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:t.languages.javascript},"class-name":{pattern:/((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m,lookbehind:!0},property:[{pattern:/((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0},{pattern:/((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0,inside:{keyword:/^property/,property:/\w+(?:\.\w+)*/}}],"javascript-expression":{pattern:RegExp(/(:[ \t]*)(?![\s;}[])(?:(?!$|[;}]))+/.source.replace(//g,function(){return e}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:t.languages.javascript},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},keyword:/\b(?:as|import|on)\b/,punctuation:/[{}[\]:;,]/}})(a)}const c=u(p),g=i({__proto__:null,default:c},[p]);export{g as q}; diff --git a/nanobot/web/dist/assets/qore-DW9HlRO6.js b/nanobot/web/dist/assets/qore-DW9HlRO6.js deleted file mode 100644 index 9ab42cb..0000000 --- a/nanobot/web/dist/assets/qore-DW9HlRO6.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,i){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=a;a.displayName="qore";a.aliases=[];function a(e){e.languages.qore=e.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,boolean:/\b(?:false|true)\b/i,function:/\$?\b(?!\d)\w+(?=\()/,number:/\b(?:0b[01]+|0x(?:[\da-f]*\.)?[\da-fp\-]+|(?:\d+(?:\.\d+)?|\.\d+)(?:e\d+)?[df]|(?:\d+(?:\.\d+)?|\.\d+))\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},variable:/\$(?!\d)\w+\b/})}const c=l(s),b=d({__proto__:null,default:c},[s]);export{b as q}; diff --git a/nanobot/web/dist/assets/qsharp-CdWuNF_G.js b/nanobot/web/dist/assets/qsharp-CdWuNF_G.js deleted file mode 100644 index 3c1b41c..0000000 --- a/nanobot/web/dist/assets/qsharp-CdWuNF_G.js +++ /dev/null @@ -1 +0,0 @@ -import{g as w}from"./syntax-highlight-CQw1bBY6.js";function m(t,n){for(var a=0;ae[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var b=l;l.displayName="qsharp";l.aliases=["qs"];function l(t){(function(n){function a(r,s){return r.replace(/<<(\d+)>>/g,function(u,q){return"(?:"+s[+q]+")"})}function e(r,s,u){return RegExp(a(r,s),"")}function o(r,s){for(var u=0;u>/g,function(){return"(?:"+r+")"});return r.replace(/<>/g,"[^\\s\\S]")}var i={type:"Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero",other:"Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within"};function y(r){return"\\b(?:"+r.trim().replace(/ /g,"|")+")\\b"}var p=RegExp(y(i.type+" "+i.other)),h=/\b[A-Za-z_]\w*\b/.source,g=a(/<<0>>(?:\s*\.\s*<<0>>)*/.source,[h]),c={keyword:p,punctuation:/[<>()?,.:[\]]/},d=/"(?:\\.|[^\\"])*"/.source;n.languages.qsharp=n.languages.extend("clike",{comment:/\/\/.*/,string:[{pattern:e(/(^|[^$\\])<<0>>/.source,[d]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:e(/(\b(?:as|open)\s+)<<0>>(?=\s*(?:;|as\b))/.source,[g]),lookbehind:!0,inside:c},{pattern:e(/(\bnamespace\s+)<<0>>(?=\s*\{)/.source,[g]),lookbehind:!0,inside:c}],keyword:p,number:/(?:\b0(?:x[\da-f]+|b[01]+|o[0-7]+)|(?:\B\.\d+|\b\d+(?:\.\d*)?)(?:e[-+]?\d+)?)l?\b/i,operator:/\band=|\bor=|\band\b|\bnot\b|\bor\b|<[-=]|[-=]>|>>>=?|<<<=?|\^\^\^=?|\|\|\|=?|&&&=?|w\/=?|~~~|[*\/+\-^=!%]=?/,punctuation:/::|[{}[\];(),.:]/}),n.languages.insertBefore("qsharp","number",{range:{pattern:/\.\./,alias:"operator"}});var f=o(a(/\{(?:[^"{}]|<<0>>|<>)*\}/.source,[d]),2);n.languages.insertBefore("qsharp","string",{"interpolation-string":{pattern:e(/\$"(?:\\.|<<0>>|[^\\"{])*"/.source,[f]),greedy:!0,inside:{interpolation:{pattern:e(/((?:^|[^\\])(?:\\\\)*)<<0>>/.source,[f]),lookbehind:!0,inside:{punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-qsharp",inside:n.languages.qsharp}}},string:/[\s\S]+/}}})})(t),t.languages.qs=t.languages.qsharp}const v=w(b),x=m({__proto__:null,default:v},[b]);export{x as q}; diff --git a/nanobot/web/dist/assets/r-DyWBBRYD.js b/nanobot/web/dist/assets/r-DyWBBRYD.js deleted file mode 100644 index 5198778..0000000 --- a/nanobot/web/dist/assets/r-DyWBBRYD.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function p(e,i){for(var o=0;or[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=n;n.displayName="r";n.aliases=[];function n(e){e.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:FALSE|TRUE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:Inf|NaN)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}const f=l(s),u=p({__proto__:null,default:f},[s]);export{u as r}; diff --git a/nanobot/web/dist/assets/racket-Jd0pIKY3.js b/nanobot/web/dist/assets/racket-Jd0pIKY3.js deleted file mode 100644 index 471404d..0000000 --- a/nanobot/web/dist/assets/racket-Jd0pIKY3.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";import{a as l}from"./scheme-95DcWLIO.js";function f(e,c){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=l,g=o;o.displayName="racket";o.aliases=["rkt"];function o(e){e.register(u),e.languages.racket=e.languages.extend("scheme",{"lambda-parameter":{pattern:/([(\[]lambda\s+[(\[])[^()\[\]'\s]+/,lookbehind:!0}}),e.languages.insertBefore("racket","string",{lang:{pattern:/^#lang.+/m,greedy:!0,alias:"keyword"}}),e.languages.rkt=e.languages.racket}const i=s(g),k=f({__proto__:null,default:i},[g]);export{k as r}; diff --git a/nanobot/web/dist/assets/reason-lCcJwFJt.js b/nanobot/web/dist/assets/reason-lCcJwFJt.js deleted file mode 100644 index df44ffa..0000000 --- a/nanobot/web/dist/assets/reason-lCcJwFJt.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function c(e,s){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="reason";o.aliases=[];function o(e){e.languages.reason=e.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),e.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete e.languages.reason.function}const u=i(l),f=c({__proto__:null,default:u},[l]);export{f as r}; diff --git a/nanobot/web/dist/assets/regex-IOfv6Zzn.js b/nanobot/web/dist/assets/regex-IOfv6Zzn.js deleted file mode 100644 index 1bf54ae..0000000 --- a/nanobot/web/dist/assets/regex-IOfv6Zzn.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function g(t,s){for(var r=0;re[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var c=i;i.displayName="regex";i.aliases=[];function i(t){(function(s){var r={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},e=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,a={pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},n={pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},o="(?:[^\\\\-]|"+e.source+")",l=RegExp(o+"-"+o),p={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};s.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:l,inside:{escape:e,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":r,"char-set":n,escape:e}},"special-escape":r,"char-set":a,backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":p}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:e,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|t[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=a;a.displayName="rego";a.aliases=[];function a(e){e.languages.rego={comment:/#.*/,property:{pattern:/(^|[^\\.])(?:"(?:\\.|[^\\"\r\n])*"|`[^`]*`|\b[a-z_]\w*\b)(?=\s*:(?!=))/i,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:as|default|else|import|not|null|package|set(?=\s*\()|some|with)\b/,boolean:/\b(?:false|true)\b/,function:{pattern:/\b[a-z_]\w*\b(?:\s*\.\s*\b[a-z_]\w*\b)*(?=\s*\()/i,inside:{namespace:/\b\w+\b(?=\s*\.)/,punctuation:/\./}},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,operator:/[-+*/%|&]|[<>:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}}const g=b(i),p=u({__proto__:null,default:g},[i]);export{p as r}; diff --git a/nanobot/web/dist/assets/renpy-Bw2e_2lG.js b/nanobot/web/dist/assets/renpy-Bw2e_2lG.js deleted file mode 100644 index effb3e3..0000000 --- a/nanobot/web/dist/assets/renpy-Bw2e_2lG.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,r){for(var i=0;it[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="renpy";o.aliases=["rpy"];function o(e){e.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\])*\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,greedy:!0},function:/\b[a-z_]\w*(?=\()/i,property:/\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\b/,tag:/\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\b|\$/,keyword:/\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\b/,boolean:/\b(?:[Ff]alse|[Tt]rue)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:and|at|not|or|with)\b/,punctuation:/[{}[\];(),.:]/},e.languages.rpy=e.languages.renpy}const _=l(s),c=d({__proto__:null,default:_},[s]);export{c as r}; diff --git a/nanobot/web/dist/assets/rest-4EAeJ8P2.js b/nanobot/web/dist/assets/rest-4EAeJ8P2.js deleted file mode 100644 index 8a377ab..0000000 --- a/nanobot/web/dist/assets/rest-4EAeJ8P2.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function s(t,o){for(var r=0;rn[e]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var u=a;a.displayName="rest";a.aliases=[];function a(t){t.languages.rest={table:[{pattern:/(^[\t ]*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/m,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(^[\t ]*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/m,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^[\t ]*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( )(?! )[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^[\t ]*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^[\t ]*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^[\t ]*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^[\t ]*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^[\t ]*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^[\t ]*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^[\t ]*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^[\t ]*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s)(?:(?!\2).)*\S\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\[\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^[\t ]*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}}}const p=l(u),c=s({__proto__:null,default:p},[u]);export{c as r}; diff --git a/nanobot/web/dist/assets/rip-BTwDgDPX.js b/nanobot/web/dist/assets/rip-BTwDgDPX.js deleted file mode 100644 index 7094f3d..0000000 --- a/nanobot/web/dist/assets/rip-BTwDgDPX.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./syntax-highlight-CQw1bBY6.js";function b(e,s){for(var n=0;nr[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=d;d.displayName="rip";d.aliases=[];function d(e){e.languages.rip={comment:{pattern:/#.*/,greedy:!0},char:{pattern:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},keyword:/(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:false|true)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}}const u=o(i),c=b({__proto__:null,default:u},[i]);export{c as r}; diff --git a/nanobot/web/dist/assets/roboconf-w1RUqtVW.js b/nanobot/web/dist/assets/roboconf-w1RUqtVW.js deleted file mode 100644 index 9d8253a..0000000 --- a/nanobot/web/dist/assets/roboconf-w1RUqtVW.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function f(t,i){for(var r=0;re[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="roboconf";n.aliases=[];function n(t){t.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:external|import)\b|(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{))/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*(?![ \t]))[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}const p=c(l),u=f({__proto__:null,default:p},[l]);export{u as r}; diff --git a/nanobot/web/dist/assets/robotframework-7ToqP4OJ.js b/nanobot/web/dist/assets/robotframework-7ToqP4OJ.js deleted file mode 100644 index e4daa35..0000000 --- a/nanobot/web/dist/assets/robotframework-7ToqP4OJ.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";function f(i,n){for(var o=0;oe[t]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var d=c;c.displayName="robotframework";c.aliases=[];function c(i){(function(n){var o={pattern:/(^[ \t]*| {2}|\t)#.*/m,lookbehind:!0,greedy:!0},e={pattern:/((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,lookbehind:!0,inside:{punctuation:/^[$@&%]\{|\}$/}};function t(m,l){var a={};a["section-header"]={pattern:/^ ?\*{3}.+?\*{3}/,alias:"keyword"};for(var p in l)a[p]=l[p];return a.tag={pattern:/([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/\[|\]/}},a.variable=e,a.comment=o,{pattern:RegExp(/^ ?\*{3}[ \t]*[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace(//g,function(){return m}),"im"),alias:"section",inside:a}}var r={pattern:/(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},s={pattern:/([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,alias:"function",inside:{variable:e}},u={pattern:/([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,inside:{variable:e}};n.languages.robotframework={settings:t("Settings",{documentation:{pattern:/([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},property:{pattern:/([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0}}),variables:t("Variables"),"test-cases":t("Test Cases",{"test-name":s,documentation:r,property:u}),keywords:t("Keywords",{"keyword-name":s,documentation:r,property:u}),tasks:t("Tasks",{"task-name":s,documentation:r,property:u}),comment:o},n.languages.robot=n.languages.robotframework})(i)}const g=b(d),y=f({__proto__:null,default:g},[d]);export{y as r}; diff --git a/nanobot/web/dist/assets/ruby-BhDJe4uD.js b/nanobot/web/dist/assets/ruby-BhDJe4uD.js deleted file mode 100644 index 250c9a0..0000000 --- a/nanobot/web/dist/assets/ruby-BhDJe4uD.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function l(a,e){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var o=s;s.displayName="ruby";s.aliases=["rb"];function s(a){(function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===||[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var r={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var t="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",n=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+t+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:r,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:r,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+n),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+n+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+t),greedy:!0,inside:{interpolation:r,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:r,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:r,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+t),greedy:!0,inside:{interpolation:r,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:r,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby})(a)}const d=u(o),c=l({__proto__:null,default:d},[o]);export{o as a,c as r}; diff --git a/nanobot/web/dist/assets/rust-YOF3booo.js b/nanobot/web/dist/assets/rust-YOF3booo.js deleted file mode 100644 index b9dbade..0000000 --- a/nanobot/web/dist/assets/rust-YOF3booo.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function l(r,t){for(var e=0;ea[n]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var u=o;o.displayName="rust";o.aliases=[];function o(r){(function(t){for(var e=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,a=0;a<2;a++)e=e.replace(//g,function(){return e});e=e.replace(//g,function(){return/[^\s\S]/.source}),t.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+e),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},t.languages.rust["closure-params"].inside.rest=t.languages.rust,t.languages.rust.attribute.inside.string=t.languages.rust.string})(r)}const c=i(u),p=l({__proto__:null,default:c},[u]);export{p as r}; diff --git a/nanobot/web/dist/assets/sas-dX93LsRj.js b/nanobot/web/dist/assets/sas-dX93LsRj.js deleted file mode 100644 index f2905b7..0000000 --- a/nanobot/web/dist/assets/sas-dX93LsRj.js +++ /dev/null @@ -1 +0,0 @@ -import{g as h}from"./syntax-highlight-CQw1bBY6.js";function E(u,n){for(var a=0;ae[t]})}}}return Object.freeze(Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}))}var v=m;m.displayName="sas";m.aliases=[];function m(u){(function(n){var a=/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))/.source,e=/\b(?:\d[\da-f]*x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,t={pattern:RegExp(a+"[bx]"),alias:"number"},s={pattern:/&[a-z_]\w*/i},b={pattern:/((?:^|\s|=|\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\b/i,lookbehind:!0,alias:"keyword"},g={pattern:/(^|\s)(?:proc\s+\w+|data(?!=)|quit|run)\b/i,alias:"keyword",lookbehind:!0},l=[/\/\*[\s\S]*?\*\//,{pattern:/(^[ \t]*|;\s*)\*[^;]*;/m,lookbehind:!0}],i={pattern:RegExp(a),greedy:!0},r=/[$%@.(){}\[\];,\\]/,c={pattern:/%?\b\w+(?=\()/,alias:"keyword"},o={function:c,"arg-value":{pattern:/(=\s*)[A-Z\.]+/i,lookbehind:!0},operator:/=/,"macro-variable":s,arg:{pattern:/[A-Z]+/i,alias:"keyword"},number:e,"numeric-constant":t,punctuation:r,string:i},f={pattern:/\b(?:format|put)\b=?[\w'$.]+/i,inside:{keyword:/^(?:format|put)(?==)/i,equals:/=/,format:{pattern:/(?:\w|\$\d)+\.\d?/,alias:"number"}}},y={pattern:/\b(?:format|put)\s+[\w']+(?:\s+[$.\w]+)+(?=;)/i,inside:{keyword:/^(?:format|put)/i,format:{pattern:/[\w$]+\.\d?/,alias:"number"}}},d={pattern:/((?:^|\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\d?)\b/i,lookbehind:!0,alias:"keyword"},k={pattern:/(^|\s)(?:submit(?:\s+(?:load|norun|parseonly))?|endsubmit)\b/i,lookbehind:!0,alias:"keyword"},S=/aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/.source,w={pattern:RegExp(/(^|\s)(?:action\s+)?(?:)\.[a-z]+\b[^;]+/.source.replace(//g,function(){return S}),"i"),lookbehind:!0,inside:{keyword:RegExp(/(?:)\.[a-z]+\b/.source.replace(//g,function(){return S}),"i"),action:{pattern:/(?:action)/i,alias:"keyword"},comment:l,function:c,"arg-value":o["arg-value"],operator:o.operator,argument:o.arg,number:e,"numeric-constant":t,punctuation:r,string:i}},p={pattern:/((?:^|\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\s+do|then|title\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\b/i,lookbehind:!0};n.languages.sas={datalines:{pattern:/^([ \t]*)(?:cards|(?:data)?lines);[\s\S]+?^[ \t]*;/im,lookbehind:!0,alias:"string",inside:{keyword:{pattern:/^(?:cards|(?:data)?lines)/i},punctuation:/;/}},"proc-sql":{pattern:/(^proc\s+(?:fed)?sql(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{sql:{pattern:RegExp(/^[ \t]*(?:select|alter\s+table|(?:create|describe|drop)\s+(?:index|table(?:\s+constraints)?|view)|create\s+unique\s+index|insert\s+into|update)(?:|[^;"'])+;/.source.replace(//g,function(){return a}),"im"),alias:"language-sql",inside:n.languages.sql},"global-statements":d,"sql-statements":{pattern:/(^|\s)(?:disconnect\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\b/i,lookbehind:!0,alias:"keyword"},number:e,"numeric-constant":t,punctuation:r,string:i}},"proc-groovy":{pattern:/(^proc\s+groovy(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:l,groovy:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return a}),"im"),lookbehind:!0,alias:"language-groovy",inside:n.languages.groovy},keyword:p,"submit-statement":k,"global-statements":d,number:e,"numeric-constant":t,punctuation:r,string:i}},"proc-lua":{pattern:/(^proc\s+lua(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:l,lua:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return a}),"im"),lookbehind:!0,alias:"language-lua",inside:n.languages.lua},keyword:p,"submit-statement":k,"global-statements":d,number:e,"numeric-constant":t,punctuation:r,string:i}},"proc-cas":{pattern:/(^proc\s+cas(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:l,"statement-var":{pattern:/((?:^|\s)=?)saveresult\s[^;]+/im,lookbehind:!0,inside:{statement:{pattern:/^saveresult\s+\S+/i,inside:{keyword:/^(?:saveresult)/i}},rest:o}},"cas-actions":w,statement:{pattern:/((?:^|\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,lookbehind:!0,inside:o},step:g,keyword:p,function:c,format:f,altformat:y,"global-statements":d,number:e,"numeric-constant":t,punctuation:r,string:i}},"proc-args":{pattern:RegExp(/(^proc\s+\w+\s+)(?!\s)(?:[^;"']|)+;/.source.replace(//g,function(){return a}),"im"),lookbehind:!0,inside:o},"macro-keyword":b,"macro-variable":s,"macro-string-functions":{pattern:/((?:^|\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\(.*?(?:[^%]\))/i,lookbehind:!0,inside:{function:{pattern:/%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,alias:"keyword"},"macro-keyword":b,"macro-variable":s,"escaped-char":{pattern:/%['"()<>=¬^~;,#]/},punctuation:r}},"macro-declaration":{pattern:/^%macro[^;]+(?=;)/im,inside:{keyword:/%macro/i}},"macro-end":{pattern:/^%mend[^;]+(?=;)/im,inside:{keyword:/%mend/i}},macro:{pattern:/%_\w+(?=\()/,alias:"keyword"},input:{pattern:/\binput\s[-\w\s/*.$&]+;/i,inside:{input:{alias:"keyword",pattern:/^input/i},comment:l,number:e,"numeric-constant":t}},"options-args":{pattern:/(^options)[-'"|/\\<>*+=:()\w\s]*(?=;)/im,lookbehind:!0,inside:o},"cas-actions":w,comment:l,function:c,format:f,altformat:y,"numeric-constant":t,datetime:{pattern:RegExp(a+"(?:dt?|t)"),alias:"number"},string:i,step:g,keyword:p,"operator-keyword":{pattern:/\b(?:eq|ge|gt|in|le|lt|ne|not)\b/i,alias:"operator"},number:e,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?/,punctuation:r}})(u)}const T=h(v),N=E({__proto__:null,default:T},[v]);export{N as s}; diff --git a/nanobot/web/dist/assets/sass-BhhdZb3A.js b/nanobot/web/dist/assets/sass-BhhdZb3A.js deleted file mode 100644 index 400c2dc..0000000 --- a/nanobot/web/dist/assets/sass-BhhdZb3A.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function p(a,e){for(var r=0;rt[s]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="sass";o.aliases=[];function o(a){(function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var r=/\$[-\w]+|#\{\$[-\w]+\}/,t=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:r,operator:t}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:r,operator:t,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})})(a)}const g=u(l),d=p({__proto__:null,default:g},[l]);export{d as s}; diff --git a/nanobot/web/dist/assets/scala-BNNMSjN0.js b/nanobot/web/dist/assets/scala-BNNMSjN0.js deleted file mode 100644 index fb2c7aa..0000000 --- a/nanobot/web/dist/assets/scala-BNNMSjN0.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./syntax-highlight-CQw1bBY6.js";import{a as c}from"./java-a-3Zt0eF.js";function d(e,l){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var g=c,i=s;s.displayName="scala";s.aliases=[];function s(e){e.register(g),e.languages.scala=e.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),e.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.scala}}},string:/[\s\S]+/}}}),delete e.languages.scala["class-name"],delete e.languages.scala.function}const u=o(i),y=d({__proto__:null,default:u},[i]);export{y as s}; diff --git a/nanobot/web/dist/assets/scheme-95DcWLIO.js b/nanobot/web/dist/assets/scheme-95DcWLIO.js deleted file mode 100644 index 3760ee1..0000000 --- a/nanobot/web/dist/assets/scheme-95DcWLIO.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function s(t,a){for(var o=0;oe[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var c=i;i.displayName="scheme";i.aliases=[];function i(t){(function(a){a.languages.scheme={comment:/;.*|#;\s*(?:\((?:[^()]|\([^()]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\])|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()\[\]#'\s]+/,greedy:!0},char:{pattern:/#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,greedy:!0},"lambda-parameter":[{pattern:/((?:^|[^'`#])[(\[]lambda\s+)(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)/,lookbehind:!0},{pattern:/((?:^|[^'`#])[(\[]lambda\s+[(\[])[^()\[\]']+/,lookbehind:!0}],keyword:{pattern:/((?:^|[^'`#])[(\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\[\]\s]|$)/,lookbehind:!0},builtin:{pattern:/((?:^|[^'`#])[(\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\[\]\s]|$)/,lookbehind:!0},operator:{pattern:/((?:^|[^'`#])[(\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\[\]\s]|$)/,lookbehind:!0},number:{pattern:RegExp(o({"":/\d+(?:\/\d+)|(?:\d+(?:\.\d*)?|\.\d+)(?:[esfdl][+-]?\d+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/(?:#d(?:#[ei])?|#[ei](?:#d)?)?/.source,"":/[0-9a-f]+(?:\/[0-9a-f]+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/#[box](?:#[ei])?|(?:#[ei])?#[box]/.source,"":/(^|[()\[\]\s])(?:|)(?=[()\[\]\s]|$)/.source}),"i"),lookbehind:!0},boolean:{pattern:/(^|[()\[\]\s])#(?:[ft]|false|true)(?=[()\[\]\s]|$)/,lookbehind:!0},function:{pattern:/((?:^|[^'`#])[(\[])(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\[\]\s]|$)/,lookbehind:!0},identifier:{pattern:/(^|[()\[\]\s])\|(?:[^\\|]|\\.)*\|(?=[()\[\]\s]|$)/,lookbehind:!0,greedy:!0},punctuation:/[()\[\]']/};function o(e){for(var r in e)e[r]=e[r].replace(/<[\w\s]+>/g,function(n){return"(?:"+e[n].trim()+")"});return e[r]}})(t)}const l=u(c),d=s({__proto__:null,default:l},[c]);export{c as a,d as s}; diff --git a/nanobot/web/dist/assets/scss-C-CKBAM-.js b/nanobot/web/dist/assets/scss-C-CKBAM-.js deleted file mode 100644 index fe8ad59..0000000 --- a/nanobot/web/dist/assets/scss-C-CKBAM-.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function u(e,o){for(var r=0;rt[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="scss";n.aliases=[];function n(e){e.languages.scss=e.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),e.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),e.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),e.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),e.languages.scss.atrule.inside.rest=e.languages.scss}const c=i(l),d=u({__proto__:null,default:c},[l]);export{d as s}; diff --git a/nanobot/web/dist/assets/shell-session-BIbqKIr7.js b/nanobot/web/dist/assets/shell-session-BIbqKIr7.js deleted file mode 100644 index 435291b..0000000 --- a/nanobot/web/dist/assets/shell-session-BIbqKIr7.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";import{a as i}from"./bash-C03zJnEy.js";function c(s,e){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}var g=i,l=o;o.displayName="shellSession";o.aliases=[];function o(s){s.register(g),function(e){var r=[/"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,/'[^']*'/.source,/\$'(?:[^'\\]|\\[\s\S])*'/.source,/<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source].join("|");e.languages["shell-session"]={command:{pattern:RegExp(/^/.source+"(?:"+(/[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+(?::[^\0-\x1F$#%*?"<>:;|]+)?/.source+"|"+/[/~.][^\0-\x1F$#%*?"<>@:;|]*/.source)+")?"+/[$#%](?=\s)/.source+/(?:[^\\\r\n \t'"<$]|[ \t](?:(?!#)|#.*$)|\\(?:[^\r]|\r\n?)|\$(?!')|<(?!<)|<>)+/.source.replace(/<>/g,function(){return r}),"m"),greedy:!0,inside:{info:{pattern:/^[^#$%]+/,alias:"punctuation",inside:{user:/^[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+/,punctuation:/:/,path:/[\s\S]+/}},bash:{pattern:/(^[$#%]\s*)\S[\s\S]*/,lookbehind:!0,alias:"language-bash",inside:e.languages.bash},"shell-symbol":{pattern:/^[$#%]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},e.languages["sh-session"]=e.languages.shellsession=e.languages["shell-session"]}(s)}const p=u(l),h=c({__proto__:null,default:p},[l]);export{h as s}; diff --git a/nanobot/web/dist/assets/smali-BgXsYxOu.js b/nanobot/web/dist/assets/smali-BgXsYxOu.js deleted file mode 100644 index 18c7adc..0000000 --- a/nanobot/web/dist/assets/smali-BgXsYxOu.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function d(e,i){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="smali";o.aliases=[];function o(e){e.languages.smali={comment:/#.*/,string:{pattern:/"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,greedy:!0},"class-name":{pattern:/(^|[^L])L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,lookbehind:!0,inside:{"class-name":{pattern:/(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,lookbehind:!0},namespace:{pattern:/^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,lookbehind:!0,inside:{punctuation:/\//}},builtin:/^L/}},builtin:[{pattern:/([();\[])[BCDFIJSVZ]+/,lookbehind:!0},{pattern:/([\w$>]:)[BCDFIJSVZ]/,lookbehind:!0}],keyword:[{pattern:/(\.end\s+)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])\.(?!\d)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,lookbehind:!0}],function:{pattern:/(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,lookbehind:!0},field:{pattern:/[\w$]+(?=:)/,alias:"variable"},register:{pattern:/(^|[^\w.-])[vp]\d(?![\w.-])/,lookbehind:!0,alias:"variable"},boolean:{pattern:/(^|[^\w.-])(?:false|true)(?![\w.-])/,lookbehind:!0},number:{pattern:/(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,lookbehind:!0},label:{pattern:/(:)\w+/,lookbehind:!0,alias:"property"},operator:/->|\.\.|[\[=]/,punctuation:/[{}(),;:]/}}const u=s(l),b=d({__proto__:null,default:u},[l]);export{b as s}; diff --git a/nanobot/web/dist/assets/smalltalk-BqLur795.js b/nanobot/web/dist/assets/smalltalk-BqLur795.js deleted file mode 100644 index f9a5b22..0000000 --- a/nanobot/web/dist/assets/smalltalk-BqLur795.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function u(e,o){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=n;n.displayName="smalltalk";n.aliases=[];function n(e){e.languages.smalltalk={comment:{pattern:/"(?:""|[^"])*"/,greedy:!0},char:{pattern:/\$./,greedy:!0},string:{pattern:/'(?:''|[^'])*'/,greedy:!0},symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:new|nil|self|super)\b/,boolean:/\b(?:false|true)\b/,number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}}const d=i(s),b=u({__proto__:null,default:d},[s]);export{b as s}; diff --git a/nanobot/web/dist/assets/smarty-DNjIEgJ5.js b/nanobot/web/dist/assets/smarty-DNjIEgJ5.js deleted file mode 100644 index be5af9d..0000000 --- a/nanobot/web/dist/assets/smarty-DNjIEgJ5.js +++ /dev/null @@ -1 +0,0 @@ -import{g as d}from"./syntax-highlight-CQw1bBY6.js";import{a as g}from"./markup-templating-C7tXeHgl.js";function f(a,e){for(var n=0;nr[t]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var y=g,l=i;i.displayName="smarty";i.aliases=[];function i(a){a.register(y),function(e){e.languages.smarty={comment:{pattern:/^\{\*[\s\S]*?\*\}/,greedy:!0},"embedded-php":{pattern:/^\{php\}[\s\S]*?\{\/php\}/,greedy:!0,inside:{smarty:{pattern:/^\{php\}|\{\/php\}$/,inside:null},php:{pattern:/[\s\S]+/,alias:"language-php",inside:e.languages.php}}},string:[{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0,inside:{interpolation:{pattern:/\{[^{}]*\}|`[^`]*`/,inside:{"interpolation-punctuation":{pattern:/^[{`]|[`}]$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},variable:/\$\w+/}},{pattern:/'(?:\\.|[^'\\\r\n])*'/,greedy:!0}],keyword:{pattern:/(^\{\/?)[a-z_]\w*\b(?!\()/i,lookbehind:!0,greedy:!0},delimiter:{pattern:/^\{\/?|\}$/,greedy:!0,alias:"punctuation"},number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->|\w\s*=)(?!\d)\w+\b(?!\()/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:{pattern:/(\|\s*)@?[a-z_]\w*|\b[a-z_]\w*(?=\()/i,lookbehind:!0},"attr-name":/\b[a-z_]\w*(?=\s*=)/i,boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\[\](){}.,:`]|->/,operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\b/]},e.languages.smarty["embedded-php"].inside.smarty.inside=e.languages.smarty,e.languages.smarty.string[0].inside.interpolation.inside.expression.inside=e.languages.smarty;var n=/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,r=RegExp(/\{\*[\s\S]*?\*\}/.source+"|"+/\{php\}[\s\S]*?\{\/php\}/.source+"|"+/\{(?:[^{}"']||\{(?:[^{}"']||\{(?:[^{}"']|)*\})*\})*\}/.source.replace(//g,function(){return n.source}),"g");e.hooks.add("before-tokenize",function(t){var s="{literal}",u="{/literal}",o=!1;e.languages["markup-templating"].buildPlaceholders(t,"smarty",r,function(p){return p===u&&(o=!1),o?!1:(p===s&&(o=!0),!0)})}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"smarty")})}(a)}const b=d(l),h=f({__proto__:null,default:b},[l]);export{h as s}; diff --git a/nanobot/web/dist/assets/sml-Icj7X4d6.js b/nanobot/web/dist/assets/sml-Icj7X4d6.js deleted file mode 100644 index 4efce98..0000000 --- a/nanobot/web/dist/assets/sml-Icj7X4d6.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function i(n,e){for(var t=0;tr[a]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="sml";o.aliases=["smlnj"];function o(n){(function(e){var t=/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;e.languages.sml={comment:/\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,string:{pattern:/#?"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":[{pattern:RegExp(/((?:^|[^:]):\s*)(?:\s*(?:(?:\*|->)\s*|,\s*(?:(?=)|(?!)\s+)))*/.source.replace(//g,function(){return/\s*(?:[*,]|->)/.source}).replace(//g,function(){return/(?:'[\w']*||\((?:[^()]|\([^()]*\))*\)|\{(?:[^{}]|\{[^{}]*\})*\})(?:\s+)*/.source}).replace(//g,function(){return/(?!)[a-z\d_][\w'.]*/.source}).replace(//g,function(){return t.source}),"i"),lookbehind:!0,greedy:!0,inside:null},{pattern:/((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,lookbehind:!0}],function:{pattern:/((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,lookbehind:!0},keyword:t,variable:{pattern:/(^|[^\w'])'[\w']*/,lookbehind:!0},number:/~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,word:{pattern:/\b0w(?:\d+|x[\da-f]+)\b/i,alias:"constant"},boolean:/\b(?:false|true)\b/i,operator:/\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,punctuation:/[(){}\[\].:,;]/},e.languages.sml["class-name"][0].inside=e.languages.sml,e.languages.smlnj=e.languages.sml})(n)}const c=u(l),p=i({__proto__:null,default:c},[l]);export{p as s}; diff --git a/nanobot/web/dist/assets/solidity-CKvjKEsP.js b/nanobot/web/dist/assets/solidity-CKvjKEsP.js deleted file mode 100644 index 7d47764..0000000 --- a/nanobot/web/dist/assets/solidity-CKvjKEsP.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,n){for(var i=0;it[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="solidity";o.aliases=["sol"];function o(e){e.languages.solidity=e.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),e.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),e.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),e.languages.sol=e.languages.solidity}const d=l(s),g=u({__proto__:null,default:d},[s]);export{g as s}; diff --git a/nanobot/web/dist/assets/solution-file-CPU1aYeB.js b/nanobot/web/dist/assets/solution-file-CPU1aYeB.js deleted file mode 100644 index 0be1eab..0000000 --- a/nanobot/web/dist/assets/solution-file-CPU1aYeB.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function s(n,t){for(var e=0;eo[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var u=i;i.displayName="solutionFile";i.aliases=[];function i(n){(function(t){var e={pattern:/\{[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}\}/i,alias:"constant",inside:{punctuation:/[{}]/}};t.languages["solution-file"]={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0,inside:{guid:e}},object:{pattern:/^([ \t]*)(?:([A-Z]\w*)\b(?=.*(?:\r\n?|\n)(?:\1[ \t].*(?:\r\n?|\n))*\1End\2(?=[ \t]*$))|End[A-Z]\w*(?=[ \t]*$))/m,lookbehind:!0,greedy:!0,alias:"keyword"},property:{pattern:/^([ \t]*)(?!\s)[^\r\n"#=()]*[^\s"#=()](?=\s*=)/m,lookbehind:!0,inside:{guid:e}},guid:e,number:/\b\d+(?:\.\d+)*\b/,boolean:/\b(?:FALSE|TRUE)\b/,operator:/=/,punctuation:/[(),]/},t.languages.sln=t.languages["solution-file"]})(n)}const d=l(u),g=s({__proto__:null,default:d},[u]);export{g as s}; diff --git a/nanobot/web/dist/assets/soy-i1l2zpf5.js b/nanobot/web/dist/assets/soy-i1l2zpf5.js deleted file mode 100644 index 6666dc5..0000000 --- a/nanobot/web/dist/assets/soy-i1l2zpf5.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";import{a as f}from"./markup-templating-C7tXeHgl.js";function b(r,t){for(var n=0;na[e]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var g=f,u=s;s.displayName="soy";s.aliases=[];function s(r){r.register(g),function(t){var n=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,a=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;t.languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/(\{+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^\{+\/?|\/?\}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/,inside:{string:{pattern:n,greedy:!0},number:a,punctuation:/[\[\].?]/}},string:{pattern:n,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:false|true)\b/,number:a,operator:/\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},t.hooks.add("before-tokenize",function(e){var l=/\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g,p="{literal}",d="{/literal}",o=!1;t.languages["markup-templating"].buildPlaceholders(e,"soy",l,function(i){return i===d&&(o=!1),o?!1:(i===p&&(o=!0),!0)})}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"soy")})}(r)}const m=c(u),h=b({__proto__:null,default:m},[u]);export{h as s}; diff --git a/nanobot/web/dist/assets/sparql-C3NKiGGe.js b/nanobot/web/dist/assets/sparql-C3NKiGGe.js deleted file mode 100644 index 1affa02..0000000 --- a/nanobot/web/dist/assets/sparql-C3NKiGGe.js +++ /dev/null @@ -1 +0,0 @@ -import{g as R}from"./syntax-highlight-CQw1bBY6.js";import{a as N}from"./turtle-CbmRFmop.js";function O(e,a){for(var S=0;SE[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=N,T=A;A.displayName="sparql";A.aliases=["rq"];function A(e){e.register(s),e.languages.sparql=e.languages.extend("turtle",{boolean:/\b(?:false|true)\b/i,variable:{pattern:/[?$]\w+/,greedy:!0}}),e.languages.insertBefore("sparql","punctuation",{keyword:[/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,/\b(?:BASE|GRAPH|PREFIX)\b/i]}),e.languages.rq=e.languages.sparql}const I=R(T),D=O({__proto__:null,default:I},[T]);export{D as s}; diff --git a/nanobot/web/dist/assets/splunk-spl-CY7lc-HC.js b/nanobot/web/dist/assets/splunk-spl-CY7lc-HC.js deleted file mode 100644 index ba329c4..0000000 --- a/nanobot/web/dist/assets/splunk-spl-CY7lc-HC.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function p(e,n){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=s;s.displayName="splunkSpl";s.aliases=[];function s(e){e.languages["splunk-spl"]={comment:/`comment\("(?:\\.|[^\\"])*"\)`/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},keyword:/\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,"operator-word":{pattern:/\b(?:and|as|by|not|or|xor)\b/i,alias:"operator"},function:/\b\w+(?=\s*\()/,property:/\b\w+(?=\s*=(?!=))/,date:{pattern:/\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,alias:"number"},number:/\b\d+(?:\.\d+)?\b/,boolean:/\b(?:f|false|t|true)\b/i,operator:/[<>=]=?|[-+*/%|]/,punctuation:/[()[\],]/}}const c=i(l),d=p({__proto__:null,default:c},[l]);export{d as s}; diff --git a/nanobot/web/dist/assets/sqf-WSFaRCVB.js b/nanobot/web/dist/assets/sqf-WSFaRCVB.js deleted file mode 100644 index 0ba3ff7..0000000 --- a/nanobot/web/dist/assets/sqf-WSFaRCVB.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function c(e,n){for(var o=0;ot[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="sqf";i.aliases=[];function i(e){e.languages.sqf=e.languages.extend("clike",{string:{pattern:/"(?:(?:"")?[^"])*"(?!")|'(?:[^'])*'/,greedy:!0},keyword:/\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\b/i,number:/(?:\$|\b0x)[\da-f]+\b|(?:\B\.\d+|\b\d+(?:\.\d+)?)(?:e[+-]?\d+)?\b/i,operator:/##|>>|&&|\|\||[!=<>]=?|[-+*/%#^]|\b(?:and|mod|not|or)\b/i,"magic-variable":{pattern:/\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\b/i,alias:"keyword"},constant:/\bDIK(?:_[a-z\d]+)+\b/i}),e.languages.insertBefore("sqf","string",{macro:{pattern:/(^[ \t]*)#[a-z](?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{directive:{pattern:/#[a-z]+\b/i,alias:"keyword"},comment:e.languages.sqf.comment}}}),delete e.languages.sqf["class-name"]}const d=l(s),g=c({__proto__:null,default:d},[s]);export{g as s}; diff --git a/nanobot/web/dist/assets/sql-Cn07C-jv.js b/nanobot/web/dist/assets/sql-Cn07C-jv.js deleted file mode 100644 index 67fe5ab..0000000 --- a/nanobot/web/dist/assets/sql-Cn07C-jv.js +++ /dev/null @@ -1 +0,0 @@ -import{g as S}from"./syntax-highlight-CQw1bBY6.js";function C(E,A){for(var N=0;NT[I]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var L=O;O.displayName="sql";O.aliases=[];function O(E){E.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}const D=S(L),e=C({__proto__:null,default:D},[L]);export{L as a,e as s}; diff --git a/nanobot/web/dist/assets/squirrel-B5uFeazh.js b/nanobot/web/dist/assets/squirrel-B5uFeazh.js deleted file mode 100644 index e1153fe..0000000 --- a/nanobot/web/dist/assets/squirrel-B5uFeazh.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function l(e,s){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=o;o.displayName="squirrel";o.aliases=[];function o(e){e.languages.squirrel=e.languages.extend("clike",{comment:[e.languages.clike.comment[0],{pattern:/(^|[^\\:])(?:\/\/|#).*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,lookbehind:!0,greedy:!0},"class-name":{pattern:/(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,lookbehind:!0,inside:{punctuation:/\./}},keyword:/\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\b/,number:/\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,operator:/\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,punctuation:/[(){}\[\],;.]/}),e.languages.insertBefore("squirrel","string",{char:{pattern:/(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("squirrel","operator",{"attribute-punctuation":{pattern:/<\/|\/>/,alias:"important"},lambda:{pattern:/@(?=\()/,alias:"operator"}})}const c=i(u),d=l({__proto__:null,default:c},[u]);export{d as s}; diff --git a/nanobot/web/dist/assets/stan-CS7bpqn7.js b/nanobot/web/dist/assets/stan-CS7bpqn7.js deleted file mode 100644 index a17d7b4..0000000 --- a/nanobot/web/dist/assets/stan-CS7bpqn7.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function d(r,e){for(var t=0;to[a]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="stan";i.aliases=[];function i(r){(function(e){var t=/\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\b/;e.languages.stan={comment:/\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,string:{pattern:/"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,greedy:!0},directive:{pattern:/^([ \t]*)#include\b.*/m,lookbehind:!0,alias:"property"},"function-arg":{pattern:RegExp("("+t.source+/\s*\(\s*/.source+")"+/[a-zA-Z]\w*/.source),lookbehind:!0,alias:"function"},constraint:{pattern:/(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,lookbehind:!0,inside:{expression:{pattern:/(=\s*)\S(?:\S|\s+(?!\s))*?(?=\s*(?:>$|,\s*\w+\s*=))/,lookbehind:!0,inside:null},property:/\b[a-z]\w*(?=\s*=)/i,operator:/=/,punctuation:/^<|>$|,/}},keyword:[{pattern:/\bdata(?=\s*\{)|\b(?:functions|generated|model|parameters|quantities|transformed)\b/,alias:"program-block"},/\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\b/,t],function:/\b[a-z]\w*(?=\s*\()/i,number:/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:E[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,boolean:/\b(?:false|true)\b/,operator:/<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,punctuation:/[()\[\]{},;]/},e.languages.stan.constraint.inside.expression.inside=e.languages.stan})(r)}const l=c(s),_=d({__proto__:null,default:l},[s]);export{_ as s}; diff --git a/nanobot/web/dist/assets/stylus-CBW3WA3r.js b/nanobot/web/dist/assets/stylus-CBW3WA3r.js deleted file mode 100644 index 51a6756..0000000 --- a/nanobot/web/dist/assets/stylus-CBW3WA3r.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function s(n,a){for(var t=0;tr[e]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="stylus";o.aliases=[];function o(n){(function(a){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},r={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},e={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:r,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:r,punctuation:/[{}()\[\];:,]/};e.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:e}},e.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:e}},a.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:e}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:e}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:e}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:e.interpolation}},rest:e}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:e.interpolation,comment:e.comment,punctuation:/[{},]/}},func:e.func,string:e.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:e.interpolation,punctuation:/[{}()\[\];:.]/}})(n)}const d=u(l),h=s({__proto__:null,default:d},[l]);export{h as s}; diff --git a/nanobot/web/dist/assets/swift-BhCDKP2d.js b/nanobot/web/dist/assets/swift-BhCDKP2d.js deleted file mode 100644 index 669836d..0000000 --- a/nanobot/web/dist/assets/swift-BhCDKP2d.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,i){for(var r=0;rt[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="swift";o.aliases=[];function o(e){e.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+(/(?:elseif|if)\b/.source+"(?:[ ]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+")+"|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},e.languages.swift["string-literal"].forEach(function(i){i.inside.interpolation.inside=e.languages.swift})}const c=l(s),f=u({__proto__:null,default:c},[s]);export{f as s}; diff --git a/nanobot/web/dist/assets/syntax-highlight-CQw1bBY6.js b/nanobot/web/dist/assets/syntax-highlight-CQw1bBY6.js deleted file mode 100644 index 4a0506c..0000000 --- a/nanobot/web/dist/assets/syntax-highlight-CQw1bBY6.js +++ /dev/null @@ -1,22 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/apex-DK_CE0bB.js","assets/sql-Cn07C-jv.js","assets/arduino-Daolr0n0.js","assets/cpp-CRSc4Apc.js","assets/c-BCNF8Z26.js","assets/aspnet-BQ_UatgB.js","assets/csharp-7kLA39Gy.js","assets/bison-B5_vjJ8F.js","assets/chaiscript-BVgVrYsP.js","assets/crystal-D1dlICFe.js","assets/ruby-BhDJe4uD.js","assets/cshtml-Ci0gEMX4.js","assets/django-DT-tv6V8.js","assets/markup-templating-C7tXeHgl.js","assets/ejs-RvlGfVrQ.js","assets/erb-CdEw_O2i.js","assets/etlua-DaF4ktOC.js","assets/lua-CiOFnLEM.js","assets/ftl-zGG7UOGT.js","assets/glsl-B7Mu1QeB.js","assets/haml-Cz1NXEzG.js","assets/handlebars-iF9KZNoT.js","assets/hlsl-DH4aftWd.js","assets/idris-CJfsrCA2.js","assets/haskell-BZ81Xx8-.js","assets/javadoc-ENJAj3U_.js","assets/java-a-3Zt0eF.js","assets/javadoclike-CPYkCmOi.js","assets/jsdoc-wV6w1ffV.js","assets/typescript-BRwFDuXt.js","assets/json5-DTZPvLr3.js","assets/json-B1eFyQPV.js","assets/jsonp-obVIABf6.js","assets/latte-C97bSdfk.js","assets/php-ZeDnPesV.js","assets/lilypond-p_PAaWex.js","assets/scheme-95DcWLIO.js","assets/liquid-B8aVMUNN.js","assets/objectivec-B16WFqV4.js","assets/opencl-BqalvVef.js","assets/php-extras-BAOsIffO.js","assets/phpdoc-CSB-dsNW.js","assets/plsql-YHzMzUDw.js","assets/purescript-DEHvc7fd.js","assets/racket-Jd0pIKY3.js","assets/scala-BNNMSjN0.js","assets/shell-session-BIbqKIr7.js","assets/bash-C03zJnEy.js","assets/smarty-DNjIEgJ5.js","assets/soy-i1l2zpf5.js","assets/sparql-C3NKiGGe.js","assets/turtle-CbmRFmop.js","assets/t4-cs-O8UcXD4V.js","assets/t4-templating-X-Yx3m3h.js","assets/t4-vb-BOkCxIEJ.js","assets/vbnet-BoJjwAIc.js","assets/basic-FWDxey35.js","assets/tap-D_fMjbTR.js","assets/yaml-BLqseWYu.js","assets/tsx-Baizytv-.js","assets/jsx-YFTIUZ3D.js","assets/tt2-D5BP6kr7.js","assets/twig-Jm6vXHO6.js"])))=>i.map(i=>d[i]); -import{h as xn}from"./markdown-vendor-BC7Vi29N.js";function he(e,t){for(var r=0;ri[c]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var De=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Nt={exports:{}},C={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ke=Symbol.for("react.element"),Pn=Symbol.for("react.portal"),Rn=Symbol.for("react.fragment"),In=Symbol.for("react.strict_mode"),Dn=Symbol.for("react.profiler"),Vn=Symbol.for("react.provider"),Sn=Symbol.for("react.context"),jn=Symbol.for("react.forward_ref"),Cn=Symbol.for("react.suspense"),$n=Symbol.for("react.memo"),Fn=Symbol.for("react.lazy"),_t=Symbol.iterator;function Nn(e){return e===null||typeof e!="object"?null:(e=_t&&e[_t]||e["@@iterator"],typeof e=="function"?e:null)}var zt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Mt=Object.assign,qt={};function ge(e,t,r){this.props=e,this.context=t,this.refs=qt,this.updater=r||zt}ge.prototype.isReactComponent={};ge.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ge.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Gt(){}Gt.prototype=ge.prototype;function Be(e,t,r){this.props=e,this.context=t,this.refs=qt,this.updater=r||zt}var We=Be.prototype=new Gt;We.constructor=Be;Mt(We,ge.prototype);We.isPureReactComponent=!0;var gt=Array.isArray,Ht=Object.prototype.hasOwnProperty,Ye={current:null},Ut={key:!0,ref:!0,__self:!0,__source:!0};function Bt(e,t,r){var i,c={},p=null,v=null;if(t!=null)for(i in t.ref!==void 0&&(v=t.ref),t.key!==void 0&&(p=""+t.key),t)Ht.call(t,i)&&!Ut.hasOwnProperty(i)&&(c[i]=t[i]);var s=arguments.length-2;if(s===1)c.children=r;else if(10){document.getElementsByTagName("link");const v=document.querySelector("meta[property=csp-nonce]"),s=(v==null?void 0:v.nonce)||(v==null?void 0:v.getAttribute("nonce"));c=Promise.allSettled(r.map(b=>{if(b=Un(b),b in vt)return;vt[b]=!0;const y=b.endsWith(".css"),x=y?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${b}"]${x}`))return;const O=document.createElement("link");if(O.rel=y?"stylesheet":Hn,y||(O.as="script"),O.crossOrigin="",O.href=b,s&&O.setAttribute("nonce",s),document.head.appendChild(O),y)return new Promise((D,R)=>{O.addEventListener("load",D),O.addEventListener("error",()=>R(new Error(`Unable to preload CSS for ${b}`)))})}))}function p(v){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=v,window.dispatchEvent(s),!s.defaultPrevented)throw v}return c.then(v=>{for(const s of v||[])s.status==="rejected"&&p(s.reason);return t().catch(p)})};function ne(e){"@babel/helpers - typeof";return ne=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ne(e)}function bt(e,t,r,i,c,p,v){try{var s=e[p](v),b=s.value}catch(y){return void r(y)}s.done?t(b):Promise.resolve(b).then(i,c)}function Zt(e){return function(){var t=this,r=arguments;return new Promise(function(i,c){var p=e.apply(t,r);function v(b){bt(p,i,c,v,s,"next",b)}function s(b){bt(p,i,c,v,s,"throw",b)}v(void 0)})}}function Ve(){return Ve=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,i=Array(t);r=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var Fe={};function ir(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return Fe[t]||(Fe[t]=or(e)),Fe[t]}function ar(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,i=e.filter(function(p){return p!=="token"}),c=ir(i);return c.reduce(function(p,v){return fe(fe({},p),r[v])},t)}function kt(e){return e.join(" ")}function lr(e,t){var r=0;return function(i){return r+=1,i.map(function(c,p){return Xt({node:c,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(r,"-").concat(p)})})}}function Xt(e){var t=e.node,r=e.stylesheet,i=e.style,c=i===void 0?{}:i,p=e.useInlineStyles,v=e.key,s=t.properties,b=t.type,y=t.tagName,x=t.value;if(b==="text")return x;if(y){var O=lr(r,p),D;if(!p)D=fe(fe({},s),{},{className:kt(s.className)});else{var R=Object.keys(r).reduce(function(N,g){return g.split(".").forEach(function(d){N.includes(d)||N.push(d)}),N},[]),z=s.className&&s.className.includes("token")?["token"]:[],F=s.className&&z.concat(s.className.filter(function(N){return!R.includes(N)}));D=fe(fe({},s),{},{className:kt(F)||void 0,style:ar(s.className,Object.assign({},s.style,c),r)})}var P=O(t.children);return te.createElement(y,Ve({key:v},D),P)}}const ur=function(e,t){var r=e.listLanguages();return r.indexOf(t)!==-1};var cr=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function wt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable})),r.push.apply(r,i)}return r}function ie(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=0;i2&&arguments[2]!==void 0?arguments[2]:[];return Ie({children:E,lineNumber:m,lineNumberStyle:s,largestLineNumber:v,showInlineLineNumbers:c,lineProps:r,className:L,showLineNumbers:i,wrapLongLines:b,wrapLines:t})}function F(E,m){if(i&&m&&c){var L=Qt(s,m,v);E.unshift(Jt(m,L))}return E}function P(E,m){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||L.length>0?z(E,m,L):F(E,m)}for(var N=function(){var m=x[R],L=m.children[0].value,T=pr(L);if(T){var w=L.split(` -`);w.forEach(function(j,$){var U=i&&O.length+p,B={type:"text",value:"".concat(j,` -`)};if($===0){var W=x.slice(D+1,R).concat(Ie({children:[B],className:m.properties.className})),Y=P(W,U);O.push(Y)}else if($===w.length-1){var u=x[R+1]&&x[R+1].children&&x[R+1].children[0],a={type:"text",value:"".concat(j)};if(u){var l=Ie({children:[a],className:m.properties.className});x.splice(R+1,0,l)}else{var h=[a],_=P(h,U,m.properties.className);O.push(_)}}else{var f=[B],A=P(f,U,m.properties.className);O.push(A)}}),D=R}R++};R=0;--_){var f=this.tryEntries[_],A=f.completion;if(f.tryLoc==="root")return h("end");if(f.tryLoc<=this.prev){var V=i.call(f,"catchLoc"),I=i.call(f,"finallyLoc");if(V&&I){if(this.prev=0;--h){var _=this.tryEntries[h];if(_.tryLoc<=this.prev&&i.call(_,"finallyLoc")&&this.prev<_.finallyLoc){var f=_;break}}f&&(a==="break"||a==="continue")&&f.tryLoc<=l&&l<=f.finallyLoc&&(f=null);var A=f?f.completion:{};return A.type=a,A.arg=l,f?(this.method="next",this.next=f.finallyLoc,P):this.complete(A)},complete:function(a,l){if(a.type==="throw")throw a.arg;return a.type==="break"||a.type==="continue"?this.next=a.arg:a.type==="return"?(this.rval=this.arg=a.arg,this.method="return",this.next="end"):a.type==="normal"&&l&&(this.next=l),P},finish:function(a){for(var l=this.tryEntries.length-1;l>=0;--l){var h=this.tryEntries[l];if(h.finallyLoc===a)return this.complete(h.completion,h.afterLoc),B(h),P}},catch:function(a){for(var l=this.tryEntries.length-1;l>=0;--l){var h=this.tryEntries[l];if(h.tryLoc===a){var _=h.completion;if(_.type==="throw"){var f=_.arg;B(h)}return f}}throw Error("illegal catch attempt")},delegateYield:function(a,l,h){return this.delegate={iterator:Y(a),resultName:l,nextLoc:h},this.method==="next"&&(this.arg=e),P}},t}function br(e,t,r){return t=Se(t),Kn(e,nn()?Reflect.construct(t,r||[],Se(e).constructor):t.apply(e,r))}function nn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(nn=function(){return!!e})()}const yr=function(e){var t,r=e.loader,i=e.isLanguageRegistered,c=e.registerLanguage,p=e.languageLoaders,v=e.noAsyncLoadingLanguages,s=function(b){function y(){return Bn(this,y),br(this,y,arguments)}return Xn(y,b),Yn(y,[{key:"componentDidUpdate",value:function(){!y.isRegistered(this.props.language)&&p&&this.loadLanguage()}},{key:"componentDidMount",value:function(){var O=this;y.astGeneratorPromise||y.loadAstGenerator(),y.astGenerator||y.astGeneratorPromise.then(function(){O.forceUpdate()}),!y.isRegistered(this.props.language)&&p&&this.loadLanguage()}},{key:"loadLanguage",value:function(){var O=this,D=this.props.language;D!=="text"&&y.loadLanguage(D).then(function(){return O.forceUpdate()}).catch(function(){})}},{key:"normalizeLanguage",value:function(O){return y.isSupportedLanguage(O)?O:"text"}},{key:"render",value:function(){return te.createElement(y.highlightInstance,Ve({},this.props,{language:this.normalizeLanguage(this.props.language),astGenerator:y.astGenerator}))}}],[{key:"preload",value:function(){return y.loadAstGenerator()}},{key:"loadLanguage",value:function(){var x=Zt(qe().mark(function D(R){var z;return qe().wrap(function(P){for(;;)switch(P.prev=P.next){case 0:if(z=p[R],typeof z!="function"){P.next=5;break}return P.abrupt("return",z(y.registerLanguage));case 5:throw new Error("Language ".concat(R," not supported"));case 6:case"end":return P.stop()}},D)}));function O(D){return x.apply(this,arguments)}return O}()},{key:"isSupportedLanguage",value:function(O){return y.isRegistered(O)||typeof p[O]=="function"}},{key:"loadAstGenerator",value:function(){return y.astGeneratorPromise=r().then(function(O){y.astGenerator=O,c&&y.languages.forEach(function(D,R){return c(O,R,D)})}),y.astGeneratorPromise}}])}(te.PureComponent);return t=s,oe(s,"astGenerator",null),oe(s,"highlightInstance",vr(null,{})),oe(s,"astGeneratorPromise",null),oe(s,"languages",new Map),oe(s,"supportedLanguages",e.supportedLanguages||Object.keys(p||{})),oe(s,"isRegistered",function(b){if(v)return!0;if(!c)throw new Error("Current syntax highlighter doesn't support registration of languages");return t.astGenerator?i(t.astGenerator,b):t.languages.has(b)}),oe(s,"registerLanguage",function(b,y){if(!c)throw new Error("Current syntax highlighter doesn't support registration of languages");if(t.astGenerator)return c(t.astGenerator,b,y);t.languages.set(b,y)}),s};function Ge(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */Ge=function(){return t};var e,t={},r=Object.prototype,i=r.hasOwnProperty,c=Object.defineProperty||function(u,a,l){u[a]=l.value},p=typeof Symbol=="function"?Symbol:{},v=p.iterator||"@@iterator",s=p.asyncIterator||"@@asyncIterator",b=p.toStringTag||"@@toStringTag";function y(u,a,l){return Object.defineProperty(u,a,{value:l,enumerable:!0,configurable:!0,writable:!0}),u[a]}try{y({},"")}catch{y=function(l,h,_){return l[h]=_}}function x(u,a,l,h){var _=a&&a.prototype instanceof N?a:N,f=Object.create(_.prototype),A=new W(h||[]);return c(f,"_invoke",{value:j(u,l,A)}),f}function O(u,a,l){try{return{type:"normal",arg:u.call(a,l)}}catch(h){return{type:"throw",arg:h}}}t.wrap=x;var D="suspendedStart",R="suspendedYield",z="executing",F="completed",P={};function N(){}function g(){}function d(){}var k={};y(k,v,function(){return this});var E=Object.getPrototypeOf,m=E&&E(E(Y([])));m&&m!==r&&i.call(m,v)&&(k=m);var L=d.prototype=N.prototype=Object.create(k);function T(u){["next","throw","return"].forEach(function(a){y(u,a,function(l){return this._invoke(a,l)})})}function w(u,a){function l(_,f,A,V){var I=O(u[_],u,f);if(I.type!=="throw"){var q=I.arg,M=q.value;return M&&ne(M)=="object"&&i.call(M,"__await")?a.resolve(M.__await).then(function(G){l("next",G,A,V)},function(G){l("throw",G,A,V)}):a.resolve(M).then(function(G){q.value=G,A(q)},function(G){return l("throw",G,A,V)})}V(I.arg)}var h;c(this,"_invoke",{value:function(f,A){function V(){return new a(function(I,q){l(f,A,I,q)})}return h=h?h.then(V,V):V()}})}function j(u,a,l){var h=D;return function(_,f){if(h===z)throw Error("Generator is already running");if(h===F){if(_==="throw")throw f;return{value:e,done:!0}}for(l.method=_,l.arg=f;;){var A=l.delegate;if(A){var V=$(A,l);if(V){if(V===P)continue;return V}}if(l.method==="next")l.sent=l._sent=l.arg;else if(l.method==="throw"){if(h===D)throw h=F,l.arg;l.dispatchException(l.arg)}else l.method==="return"&&l.abrupt("return",l.arg);h=z;var I=O(u,a,l);if(I.type==="normal"){if(h=l.done?F:R,I.arg===P)continue;return{value:I.arg,done:l.done}}I.type==="throw"&&(h=F,l.method="throw",l.arg=I.arg)}}}function $(u,a){var l=a.method,h=u.iterator[l];if(h===e)return a.delegate=null,l==="throw"&&u.iterator.return&&(a.method="return",a.arg=e,$(u,a),a.method==="throw")||l!=="return"&&(a.method="throw",a.arg=new TypeError("The iterator does not provide a '"+l+"' method")),P;var _=O(h,u.iterator,a.arg);if(_.type==="throw")return a.method="throw",a.arg=_.arg,a.delegate=null,P;var f=_.arg;return f?f.done?(a[u.resultName]=f.value,a.next=u.nextLoc,a.method!=="return"&&(a.method="next",a.arg=e),a.delegate=null,P):f:(a.method="throw",a.arg=new TypeError("iterator result is not an object"),a.delegate=null,P)}function U(u){var a={tryLoc:u[0]};1 in u&&(a.catchLoc=u[1]),2 in u&&(a.finallyLoc=u[2],a.afterLoc=u[3]),this.tryEntries.push(a)}function B(u){var a=u.completion||{};a.type="normal",delete a.arg,u.completion=a}function W(u){this.tryEntries=[{tryLoc:"root"}],u.forEach(U,this),this.reset(!0)}function Y(u){if(u||u===""){var a=u[v];if(a)return a.call(u);if(typeof u.next=="function")return u;if(!isNaN(u.length)){var l=-1,h=function _(){for(;++l=0;--_){var f=this.tryEntries[_],A=f.completion;if(f.tryLoc==="root")return h("end");if(f.tryLoc<=this.prev){var V=i.call(f,"catchLoc"),I=i.call(f,"finallyLoc");if(V&&I){if(this.prev=0;--h){var _=this.tryEntries[h];if(_.tryLoc<=this.prev&&i.call(_,"finallyLoc")&&this.prev<_.finallyLoc){var f=_;break}}f&&(a==="break"||a==="continue")&&f.tryLoc<=l&&l<=f.finallyLoc&&(f=null);var A=f?f.completion:{};return A.type=a,A.arg=l,f?(this.method="next",this.next=f.finallyLoc,P):this.complete(A)},complete:function(a,l){if(a.type==="throw")throw a.arg;return a.type==="break"||a.type==="continue"?this.next=a.arg:a.type==="return"?(this.rval=this.arg=a.arg,this.method="return",this.next="end"):a.type==="normal"&&l&&(this.next=l),P},finish:function(a){for(var l=this.tryEntries.length-1;l>=0;--l){var h=this.tryEntries[l];if(h.finallyLoc===a)return this.complete(h.completion,h.afterLoc),B(h),P}},catch:function(a){for(var l=this.tryEntries.length-1;l>=0;--l){var h=this.tryEntries[l];if(h.tryLoc===a){var _=h.completion;if(_.type==="throw"){var f=_.arg;B(h)}return f}}throw Error("illegal catch attempt")},delegateYield:function(a,l,h){return this.delegate={iterator:Y(a),resultName:l,nextLoc:h},this.method==="next"&&(this.arg=e),P}},t}const o=function(e,t){return function(){var r=Zt(Ge().mark(function i(c){var p;return Ge().wrap(function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,t();case 2:p=s.sent,c(e,p.default||p);case 4:case"end":return s.stop()}},i)}));return function(i){return r.apply(this,arguments)}}()},Er={abap:o("abap",function(){return n(()=>import("./abap-Cdzi4CQl.js").then(e=>e.a),[])}),abnf:o("abnf",function(){return n(()=>import("./abnf-BSWYSs_Z.js").then(e=>e.a),[])}),actionscript:o("actionscript",function(){return n(()=>import("./actionscript-CB0AaI01.js").then(e=>e.a),[])}),ada:o("ada",function(){return n(()=>import("./ada-xYaa6mtE.js").then(e=>e.a),[])}),agda:o("agda",function(){return n(()=>import("./agda-BSokU1JM.js").then(e=>e.a),[])}),al:o("al",function(){return n(()=>import("./al-ByWN7NMK.js").then(e=>e.a),[])}),antlr4:o("antlr4",function(){return n(()=>import("./antlr4-Dkeeao8D.js").then(e=>e.a),[])}),apacheconf:o("apacheconf",function(){return n(()=>import("./apacheconf-BjCFfNzD.js").then(e=>e.a),[])}),apex:o("apex",function(){return n(()=>import("./apex-DK_CE0bB.js").then(e=>e.a),__vite__mapDeps([0,1]))}),apl:o("apl",function(){return n(()=>import("./apl-CR4Dfz-v.js").then(e=>e.a),[])}),applescript:o("applescript",function(){return n(()=>import("./applescript-gb57ietz.js").then(e=>e.a),[])}),aql:o("aql",function(){return n(()=>import("./aql-piuDaxlQ.js").then(e=>e.a),[])}),arduino:o("arduino",function(){return n(()=>import("./arduino-Daolr0n0.js").then(e=>e.a),__vite__mapDeps([2,3,4]))}),arff:o("arff",function(){return n(()=>import("./arff-B7k8tk8I.js").then(e=>e.a),[])}),asciidoc:o("asciidoc",function(){return n(()=>import("./asciidoc-B2SbY3o7.js").then(e=>e.a),[])}),asm6502:o("asm6502",function(){return n(()=>import("./asm6502-CNjfL6zh.js").then(e=>e.a),[])}),asmatmel:o("asmatmel",function(){return n(()=>import("./asmatmel-DW9Rf3bG.js").then(e=>e.a),[])}),aspnet:o("aspnet",function(){return n(()=>import("./aspnet-BQ_UatgB.js").then(e=>e.a),__vite__mapDeps([5,6]))}),autohotkey:o("autohotkey",function(){return n(()=>import("./autohotkey-Bq68nwKQ.js").then(e=>e.a),[])}),autoit:o("autoit",function(){return n(()=>import("./autoit-C5BIcSzo.js").then(e=>e.a),[])}),avisynth:o("avisynth",function(){return n(()=>import("./avisynth-Cyt8eJXX.js").then(e=>e.a),[])}),avroIdl:o("avroIdl",function(){return n(()=>import("./avro-idl-DWE14pZB.js").then(e=>e.a),[])}),bash:o("bash",function(){return n(()=>import("./bash-C03zJnEy.js").then(e=>e.b),[])}),basic:o("basic",function(){return n(()=>import("./basic-FWDxey35.js").then(e=>e.b),[])}),batch:o("batch",function(){return n(()=>import("./batch-B9zDLnB8.js").then(e=>e.b),[])}),bbcode:o("bbcode",function(){return n(()=>import("./bbcode-Bpla2nyU.js").then(e=>e.b),[])}),bicep:o("bicep",function(){return n(()=>import("./bicep-Dpb6ggD4.js").then(e=>e.b),[])}),birb:o("birb",function(){return n(()=>import("./birb-J3-aoGlm.js").then(e=>e.b),[])}),bison:o("bison",function(){return n(()=>import("./bison-B5_vjJ8F.js").then(e=>e.b),__vite__mapDeps([7,4]))}),bnf:o("bnf",function(){return n(()=>import("./bnf-Co0lWrDt.js").then(e=>e.b),[])}),brainfuck:o("brainfuck",function(){return n(()=>import("./brainfuck-nM_U7PGj.js").then(e=>e.b),[])}),brightscript:o("brightscript",function(){return n(()=>import("./brightscript-pnbFE2IS.js").then(e=>e.b),[])}),bro:o("bro",function(){return n(()=>import("./bro-DuDkdLOk.js").then(e=>e.b),[])}),bsl:o("bsl",function(){return n(()=>import("./bsl-UUfR09Ka.js").then(e=>e.b),[])}),c:o("c",function(){return n(()=>import("./c-BCNF8Z26.js").then(e=>e.c),[])}),cfscript:o("cfscript",function(){return n(()=>import("./cfscript-ByUh8gD3.js").then(e=>e.c),[])}),chaiscript:o("chaiscript",function(){return n(()=>import("./chaiscript-BVgVrYsP.js").then(e=>e.c),__vite__mapDeps([8,3,4]))}),cil:o("cil",function(){return n(()=>import("./cil-D-KXfxfp.js").then(e=>e.c),[])}),clike:o("clike",function(){return n(()=>Promise.resolve().then(()=>Ar),void 0)}),clojure:o("clojure",function(){return n(()=>import("./clojure-B_m_tw28.js").then(e=>e.c),[])}),cmake:o("cmake",function(){return n(()=>import("./cmake-B3wMX_y0.js").then(e=>e.c),[])}),cobol:o("cobol",function(){return n(()=>import("./cobol-BHONvlcG.js").then(e=>e.c),[])}),coffeescript:o("coffeescript",function(){return n(()=>import("./coffeescript-YYxk8tr6.js").then(e=>e.c),[])}),concurnas:o("concurnas",function(){return n(()=>import("./concurnas-CNTwC13t.js").then(e=>e.c),[])}),coq:o("coq",function(){return n(()=>import("./coq-306fs7Mb.js").then(e=>e.c),[])}),cpp:o("cpp",function(){return n(()=>import("./cpp-CRSc4Apc.js").then(e=>e.c),__vite__mapDeps([3,4]))}),crystal:o("crystal",function(){return n(()=>import("./crystal-D1dlICFe.js").then(e=>e.c),__vite__mapDeps([9,10]))}),csharp:o("csharp",function(){return n(()=>import("./csharp-7kLA39Gy.js").then(e=>e.c),[])}),cshtml:o("cshtml",function(){return n(()=>import("./cshtml-Ci0gEMX4.js").then(e=>e.c),__vite__mapDeps([11,6]))}),csp:o("csp",function(){return n(()=>import("./csp-CS-6Y5rV.js").then(e=>e.c),[])}),cssExtras:o("cssExtras",function(){return n(()=>import("./css-extras-QWPSaDSs.js").then(e=>e.c),[])}),css:o("css",function(){return n(()=>Promise.resolve().then(()=>xr),void 0)}),csv:o("csv",function(){return n(()=>import("./csv-CYRvlPLy.js").then(e=>e.c),[])}),cypher:o("cypher",function(){return n(()=>import("./cypher-HwS91afO.js").then(e=>e.c),[])}),d:o("d",function(){return n(()=>import("./d-CWnwIaRk.js").then(e=>e.d),[])}),dart:o("dart",function(){return n(()=>import("./dart-ug61qYQq.js").then(e=>e.d),[])}),dataweave:o("dataweave",function(){return n(()=>import("./dataweave-Cd0RzI6P.js").then(e=>e.d),[])}),dax:o("dax",function(){return n(()=>import("./dax-CgXL2tQ5.js").then(e=>e.d),[])}),dhall:o("dhall",function(){return n(()=>import("./dhall-ZCAX0bZP.js").then(e=>e.d),[])}),diff:o("diff",function(){return n(()=>import("./diff-C0dmbTlT.js").then(e=>e.d),[])}),django:o("django",function(){return n(()=>import("./django-DT-tv6V8.js").then(e=>e.d),__vite__mapDeps([12,13]))}),dnsZoneFile:o("dnsZoneFile",function(){return n(()=>import("./dns-zone-file-p5ciu9jQ.js").then(e=>e.d),[])}),docker:o("docker",function(){return n(()=>import("./docker-_7HsMJvS.js").then(e=>e.d),[])}),dot:o("dot",function(){return n(()=>import("./dot-DachZs3x.js").then(e=>e.d),[])}),ebnf:o("ebnf",function(){return n(()=>import("./ebnf-DNdTYV7g.js").then(e=>e.e),[])}),editorconfig:o("editorconfig",function(){return n(()=>import("./editorconfig-BcesPHUK.js").then(e=>e.e),[])}),eiffel:o("eiffel",function(){return n(()=>import("./eiffel-DYdcFPqH.js").then(e=>e.e),[])}),ejs:o("ejs",function(){return n(()=>import("./ejs-RvlGfVrQ.js").then(e=>e.e),__vite__mapDeps([14,13]))}),elixir:o("elixir",function(){return n(()=>import("./elixir-tXW383vs.js").then(e=>e.e),[])}),elm:o("elm",function(){return n(()=>import("./elm-TT8FZPv0.js").then(e=>e.e),[])}),erb:o("erb",function(){return n(()=>import("./erb-CdEw_O2i.js").then(e=>e.e),__vite__mapDeps([15,10,13]))}),erlang:o("erlang",function(){return n(()=>import("./erlang-CDY0uWBC.js").then(e=>e.e),[])}),etlua:o("etlua",function(){return n(()=>import("./etlua-DaF4ktOC.js").then(e=>e.e),__vite__mapDeps([16,17,13]))}),excelFormula:o("excelFormula",function(){return n(()=>import("./excel-formula-D92jXze4.js").then(e=>e.e),[])}),factor:o("factor",function(){return n(()=>import("./factor-eVzxi7V4.js").then(e=>e.f),[])}),falselang:o("falselang",function(){return n(()=>import("./false-D-wV2E1b.js").then(e=>e._),[])}),firestoreSecurityRules:o("firestoreSecurityRules",function(){return n(()=>import("./firestore-security-rules-D4AbNlvs.js").then(e=>e.f),[])}),flow:o("flow",function(){return n(()=>import("./flow-uvtfM3os.js").then(e=>e.f),[])}),fortran:o("fortran",function(){return n(()=>import("./fortran-BHOACl11.js").then(e=>e.f),[])}),fsharp:o("fsharp",function(){return n(()=>import("./fsharp-CxtxXbpj.js").then(e=>e.f),[])}),ftl:o("ftl",function(){return n(()=>import("./ftl-zGG7UOGT.js").then(e=>e.f),__vite__mapDeps([18,13]))}),gap:o("gap",function(){return n(()=>import("./gap-CJ6zqbax.js").then(e=>e.g),[])}),gcode:o("gcode",function(){return n(()=>import("./gcode-BkbKHNNP.js").then(e=>e.g),[])}),gdscript:o("gdscript",function(){return n(()=>import("./gdscript-DeVF3IBO.js").then(e=>e.g),[])}),gedcom:o("gedcom",function(){return n(()=>import("./gedcom-DuQJUuPq.js").then(e=>e.g),[])}),gherkin:o("gherkin",function(){return n(()=>import("./gherkin-B5DuOWCn.js").then(e=>e.g),[])}),git:o("git",function(){return n(()=>import("./git-DDInpk6l.js").then(e=>e.g),[])}),glsl:o("glsl",function(){return n(()=>import("./glsl-B7Mu1QeB.js").then(e=>e.g),__vite__mapDeps([19,4]))}),gml:o("gml",function(){return n(()=>import("./gml-ox1Gc810.js").then(e=>e.g),[])}),gn:o("gn",function(){return n(()=>import("./gn-DQQcgxRy.js").then(e=>e.g),[])}),goModule:o("goModule",function(){return n(()=>import("./go-module-CHNkhHxT.js").then(e=>e.g),[])}),go:o("go",function(){return n(()=>import("./go-2QJZRQwQ.js").then(e=>e.g),[])}),graphql:o("graphql",function(){return n(()=>import("./graphql-DauflmYW.js").then(e=>e.g),[])}),groovy:o("groovy",function(){return n(()=>import("./groovy-C0JEEe6o.js").then(e=>e.g),[])}),haml:o("haml",function(){return n(()=>import("./haml-Cz1NXEzG.js").then(e=>e.h),__vite__mapDeps([20,10]))}),handlebars:o("handlebars",function(){return n(()=>import("./handlebars-iF9KZNoT.js").then(e=>e.h),__vite__mapDeps([21,13]))}),haskell:o("haskell",function(){return n(()=>import("./haskell-BZ81Xx8-.js").then(e=>e.h),[])}),haxe:o("haxe",function(){return n(()=>import("./haxe-DWN4n611.js").then(e=>e.h),[])}),hcl:o("hcl",function(){return n(()=>import("./hcl-Dw1KvlzA.js").then(e=>e.h),[])}),hlsl:o("hlsl",function(){return n(()=>import("./hlsl-DH4aftWd.js").then(e=>e.h),__vite__mapDeps([22,4]))}),hoon:o("hoon",function(){return n(()=>import("./hoon-DKfDRkQc.js").then(e=>e.h),[])}),hpkp:o("hpkp",function(){return n(()=>import("./hpkp-D-zwIDiv.js").then(e=>e.h),[])}),hsts:o("hsts",function(){return n(()=>import("./hsts-CYPBznpg.js").then(e=>e.h),[])}),http:o("http",function(){return n(()=>import("./http-DP_aKdEF.js").then(e=>e.h),[])}),ichigojam:o("ichigojam",function(){return n(()=>import("./ichigojam-PjOTJymC.js").then(e=>e.i),[])}),icon:o("icon",function(){return n(()=>import("./icon-D1maMr91.js").then(e=>e.i),[])}),icuMessageFormat:o("icuMessageFormat",function(){return n(()=>import("./icu-message-format-C0X-5ufl.js").then(e=>e.i),[])}),idris:o("idris",function(){return n(()=>import("./idris-CJfsrCA2.js").then(e=>e.i),__vite__mapDeps([23,24]))}),iecst:o("iecst",function(){return n(()=>import("./iecst-C8T3O-tg.js").then(e=>e.i),[])}),ignore:o("ignore",function(){return n(()=>import("./ignore-BSRAq36K.js").then(e=>e.i),[])}),inform7:o("inform7",function(){return n(()=>import("./inform7-CLI_t4f3.js").then(e=>e.i),[])}),ini:o("ini",function(){return n(()=>import("./ini-BKhxqWEm.js").then(e=>e.i),[])}),io:o("io",function(){return n(()=>import("./io-DF7uXpIZ.js").then(e=>e.i),[])}),j:o("j",function(){return n(()=>import("./j-9GcUeQuL.js").then(e=>e.j),[])}),java:o("java",function(){return n(()=>import("./java-a-3Zt0eF.js").then(e=>e.j),[])}),javadoc:o("javadoc",function(){return n(()=>import("./javadoc-ENJAj3U_.js").then(e=>e.j),__vite__mapDeps([25,26,27]))}),javadoclike:o("javadoclike",function(){return n(()=>import("./javadoclike-CPYkCmOi.js").then(e=>e.j),[])}),javascript:o("javascript",function(){return n(()=>Promise.resolve().then(()=>Rr),void 0)}),javastacktrace:o("javastacktrace",function(){return n(()=>import("./javastacktrace-Dxy9k_ks.js").then(e=>e.j),[])}),jexl:o("jexl",function(){return n(()=>import("./jexl-ZcTrWYeA.js").then(e=>e.j),[])}),jolie:o("jolie",function(){return n(()=>import("./jolie-DbpEAaCR.js").then(e=>e.j),[])}),jq:o("jq",function(){return n(()=>import("./jq-B_YVrZzq.js").then(e=>e.j),[])}),jsExtras:o("jsExtras",function(){return n(()=>import("./js-extras-Dob2Q551.js").then(e=>e.j),[])}),jsTemplates:o("jsTemplates",function(){return n(()=>import("./js-templates-Da_CdiNH.js").then(e=>e.j),[])}),jsdoc:o("jsdoc",function(){return n(()=>import("./jsdoc-wV6w1ffV.js").then(e=>e.j),__vite__mapDeps([28,27,29]))}),json:o("json",function(){return n(()=>import("./json-B1eFyQPV.js").then(e=>e.j),[])}),json5:o("json5",function(){return n(()=>import("./json5-DTZPvLr3.js").then(e=>e.j),__vite__mapDeps([30,31]))}),jsonp:o("jsonp",function(){return n(()=>import("./jsonp-obVIABf6.js").then(e=>e.j),__vite__mapDeps([32,31]))}),jsstacktrace:o("jsstacktrace",function(){return n(()=>import("./jsstacktrace-DMw4YB7F.js").then(e=>e.j),[])}),jsx:o("jsx",function(){return n(()=>import("./jsx-YFTIUZ3D.js").then(e=>e.j),[])}),julia:o("julia",function(){return n(()=>import("./julia-OkpY0XlO.js").then(e=>e.j),[])}),keepalived:o("keepalived",function(){return n(()=>import("./keepalived-BjtF8mfb.js").then(e=>e.k),[])}),keyman:o("keyman",function(){return n(()=>import("./keyman-C5NvufiI.js").then(e=>e.k),[])}),kotlin:o("kotlin",function(){return n(()=>import("./kotlin-J7_zRHNo.js").then(e=>e.k),[])}),kumir:o("kumir",function(){return n(()=>import("./kumir-B23cJ_QC.js").then(e=>e.k),[])}),kusto:o("kusto",function(){return n(()=>import("./kusto-hOrF6As9.js").then(e=>e.k),[])}),latex:o("latex",function(){return n(()=>import("./latex-CVAjmBgr.js").then(e=>e.l),[])}),latte:o("latte",function(){return n(()=>import("./latte-C97bSdfk.js").then(e=>e.l),__vite__mapDeps([33,13,34]))}),less:o("less",function(){return n(()=>import("./less-MSnY9PMx.js").then(e=>e.l),[])}),lilypond:o("lilypond",function(){return n(()=>import("./lilypond-p_PAaWex.js").then(e=>e.l),__vite__mapDeps([35,36]))}),liquid:o("liquid",function(){return n(()=>import("./liquid-B8aVMUNN.js").then(e=>e.l),__vite__mapDeps([37,13]))}),lisp:o("lisp",function(){return n(()=>import("./lisp-DmghxcuK.js").then(e=>e.l),[])}),livescript:o("livescript",function(){return n(()=>import("./livescript-BOOF9n2n.js").then(e=>e.l),[])}),llvm:o("llvm",function(){return n(()=>import("./llvm-DnfyKmw7.js").then(e=>e.l),[])}),log:o("log",function(){return n(()=>import("./log-BfaPYPxB.js").then(e=>e.l),[])}),lolcode:o("lolcode",function(){return n(()=>import("./lolcode-DerHYECs.js").then(e=>e.l),[])}),lua:o("lua",function(){return n(()=>import("./lua-CiOFnLEM.js").then(e=>e.l),[])}),magma:o("magma",function(){return n(()=>import("./magma-BB9R5GEK.js").then(e=>e.m),[])}),makefile:o("makefile",function(){return n(()=>import("./makefile-BbXlcAPo.js").then(e=>e.m),[])}),markdown:o("markdown",function(){return n(()=>import("./markdown-BmWygCF5.js").then(e=>e.m),[])}),markupTemplating:o("markupTemplating",function(){return n(()=>import("./markup-templating-C7tXeHgl.js").then(e=>e.m),[])}),markup:o("markup",function(){return n(()=>Promise.resolve().then(()=>Dr),void 0)}),matlab:o("matlab",function(){return n(()=>import("./matlab-Dhk2maF_.js").then(e=>e.m),[])}),maxscript:o("maxscript",function(){return n(()=>import("./maxscript-CbdgyYK5.js").then(e=>e.m),[])}),mel:o("mel",function(){return n(()=>import("./mel-BFXwf8_t.js").then(e=>e.m),[])}),mermaid:o("mermaid",function(){return n(()=>import("./mermaid-Df7jchl2.js").then(e=>e.m),[])}),mizar:o("mizar",function(){return n(()=>import("./mizar-C4uDp-fn.js").then(e=>e.m),[])}),mongodb:o("mongodb",function(){return n(()=>import("./mongodb-C_Gr21b2.js").then(e=>e.m),[])}),monkey:o("monkey",function(){return n(()=>import("./monkey-DNJ0pv5K.js").then(e=>e.m),[])}),moonscript:o("moonscript",function(){return n(()=>import("./moonscript-CZGx5KpN.js").then(e=>e.m),[])}),n1ql:o("n1ql",function(){return n(()=>import("./n1ql-CVVH8CTS.js").then(e=>e.n),[])}),n4js:o("n4js",function(){return n(()=>import("./n4js-gl-575aa.js").then(e=>e.n),[])}),nand2tetrisHdl:o("nand2tetrisHdl",function(){return n(()=>import("./nand2tetris-hdl-BIrfnGTn.js").then(e=>e.n),[])}),naniscript:o("naniscript",function(){return n(()=>import("./naniscript-KbQ2pLfF.js").then(e=>e.n),[])}),nasm:o("nasm",function(){return n(()=>import("./nasm-C7XHYkKv.js").then(e=>e.n),[])}),neon:o("neon",function(){return n(()=>import("./neon-eg2FssYh.js").then(e=>e.n),[])}),nevod:o("nevod",function(){return n(()=>import("./nevod-BELI8Kl6.js").then(e=>e.n),[])}),nginx:o("nginx",function(){return n(()=>import("./nginx-C3HgkHXq.js").then(e=>e.n),[])}),nim:o("nim",function(){return n(()=>import("./nim-BzkT6EYr.js").then(e=>e.n),[])}),nix:o("nix",function(){return n(()=>import("./nix-V4cZ9OOI.js").then(e=>e.n),[])}),nsis:o("nsis",function(){return n(()=>import("./nsis-BIbU4QJi.js").then(e=>e.n),[])}),objectivec:o("objectivec",function(){return n(()=>import("./objectivec-B16WFqV4.js").then(e=>e.o),__vite__mapDeps([38,4]))}),ocaml:o("ocaml",function(){return n(()=>import("./ocaml-qDk5VAmI.js").then(e=>e.o),[])}),opencl:o("opencl",function(){return n(()=>import("./opencl-BqalvVef.js").then(e=>e.o),__vite__mapDeps([39,4]))}),openqasm:o("openqasm",function(){return n(()=>import("./openqasm-COJFRyfV.js").then(e=>e.o),[])}),oz:o("oz",function(){return n(()=>import("./oz-DJ301Vvv.js").then(e=>e.o),[])}),parigp:o("parigp",function(){return n(()=>import("./parigp-Bdm1I2n0.js").then(e=>e.p),[])}),parser:o("parser",function(){return n(()=>import("./parser-kbK5Rur6.js").then(e=>e.p),[])}),pascal:o("pascal",function(){return n(()=>import("./pascal-jmorIOh9.js").then(e=>e.p),[])}),pascaligo:o("pascaligo",function(){return n(()=>import("./pascaligo-BpzC8RfX.js").then(e=>e.p),[])}),pcaxis:o("pcaxis",function(){return n(()=>import("./pcaxis-CH6V6_cv.js").then(e=>e.p),[])}),peoplecode:o("peoplecode",function(){return n(()=>import("./peoplecode-CrVpzDHi.js").then(e=>e.p),[])}),perl:o("perl",function(){return n(()=>import("./perl-kMvsU1Ry.js").then(e=>e.p),[])}),phpExtras:o("phpExtras",function(){return n(()=>import("./php-extras-BAOsIffO.js").then(e=>e.p),__vite__mapDeps([40,34,13]))}),php:o("php",function(){return n(()=>import("./php-ZeDnPesV.js").then(e=>e.p),__vite__mapDeps([34,13]))}),phpdoc:o("phpdoc",function(){return n(()=>import("./phpdoc-CSB-dsNW.js").then(e=>e.p),__vite__mapDeps([41,34,13,27]))}),plsql:o("plsql",function(){return n(()=>import("./plsql-YHzMzUDw.js").then(e=>e.p),__vite__mapDeps([42,1]))}),powerquery:o("powerquery",function(){return n(()=>import("./powerquery-DVRG5VGt.js").then(e=>e.p),[])}),powershell:o("powershell",function(){return n(()=>import("./powershell-B3lqWH4i.js").then(e=>e.p),[])}),processing:o("processing",function(){return n(()=>import("./processing-CR-31tqS.js").then(e=>e.p),[])}),prolog:o("prolog",function(){return n(()=>import("./prolog-BMVl1hPh.js").then(e=>e.p),[])}),promql:o("promql",function(){return n(()=>import("./promql-Breql4n_.js").then(e=>e.p),[])}),properties:o("properties",function(){return n(()=>import("./properties-B6TP6l9f.js").then(e=>e.p),[])}),protobuf:o("protobuf",function(){return n(()=>import("./protobuf-QrCzJKsr.js").then(e=>e.p),[])}),psl:o("psl",function(){return n(()=>import("./psl-DqYIz3cQ.js").then(e=>e.p),[])}),pug:o("pug",function(){return n(()=>import("./pug-D-vggDMU.js").then(e=>e.p),[])}),puppet:o("puppet",function(){return n(()=>import("./puppet-BzbVioYO.js").then(e=>e.p),[])}),pure:o("pure",function(){return n(()=>import("./pure-C-45B2xW.js").then(e=>e.p),[])}),purebasic:o("purebasic",function(){return n(()=>import("./purebasic-BTrwX9MX.js").then(e=>e.p),[])}),purescript:o("purescript",function(){return n(()=>import("./purescript-DEHvc7fd.js").then(e=>e.p),__vite__mapDeps([43,24]))}),python:o("python",function(){return n(()=>import("./python-AeCF5TgL.js").then(e=>e.p),[])}),q:o("q",function(){return n(()=>import("./q-BclXjuqa.js").then(e=>e.q),[])}),qml:o("qml",function(){return n(()=>import("./qml-GIwLzKGH.js").then(e=>e.q),[])}),qore:o("qore",function(){return n(()=>import("./qore-DW9HlRO6.js").then(e=>e.q),[])}),qsharp:o("qsharp",function(){return n(()=>import("./qsharp-CdWuNF_G.js").then(e=>e.q),[])}),r:o("r",function(){return n(()=>import("./r-DyWBBRYD.js").then(e=>e.r),[])}),racket:o("racket",function(){return n(()=>import("./racket-Jd0pIKY3.js").then(e=>e.r),__vite__mapDeps([44,36]))}),reason:o("reason",function(){return n(()=>import("./reason-lCcJwFJt.js").then(e=>e.r),[])}),regex:o("regex",function(){return n(()=>import("./regex-IOfv6Zzn.js").then(e=>e.r),[])}),rego:o("rego",function(){return n(()=>import("./rego-BcRkRR0l.js").then(e=>e.r),[])}),renpy:o("renpy",function(){return n(()=>import("./renpy-Bw2e_2lG.js").then(e=>e.r),[])}),rest:o("rest",function(){return n(()=>import("./rest-4EAeJ8P2.js").then(e=>e.r),[])}),rip:o("rip",function(){return n(()=>import("./rip-BTwDgDPX.js").then(e=>e.r),[])}),roboconf:o("roboconf",function(){return n(()=>import("./roboconf-w1RUqtVW.js").then(e=>e.r),[])}),robotframework:o("robotframework",function(){return n(()=>import("./robotframework-7ToqP4OJ.js").then(e=>e.r),[])}),ruby:o("ruby",function(){return n(()=>import("./ruby-BhDJe4uD.js").then(e=>e.r),[])}),rust:o("rust",function(){return n(()=>import("./rust-YOF3booo.js").then(e=>e.r),[])}),sas:o("sas",function(){return n(()=>import("./sas-dX93LsRj.js").then(e=>e.s),[])}),sass:o("sass",function(){return n(()=>import("./sass-BhhdZb3A.js").then(e=>e.s),[])}),scala:o("scala",function(){return n(()=>import("./scala-BNNMSjN0.js").then(e=>e.s),__vite__mapDeps([45,26]))}),scheme:o("scheme",function(){return n(()=>import("./scheme-95DcWLIO.js").then(e=>e.s),[])}),scss:o("scss",function(){return n(()=>import("./scss-C-CKBAM-.js").then(e=>e.s),[])}),shellSession:o("shellSession",function(){return n(()=>import("./shell-session-BIbqKIr7.js").then(e=>e.s),__vite__mapDeps([46,47]))}),smali:o("smali",function(){return n(()=>import("./smali-BgXsYxOu.js").then(e=>e.s),[])}),smalltalk:o("smalltalk",function(){return n(()=>import("./smalltalk-BqLur795.js").then(e=>e.s),[])}),smarty:o("smarty",function(){return n(()=>import("./smarty-DNjIEgJ5.js").then(e=>e.s),__vite__mapDeps([48,13]))}),sml:o("sml",function(){return n(()=>import("./sml-Icj7X4d6.js").then(e=>e.s),[])}),solidity:o("solidity",function(){return n(()=>import("./solidity-CKvjKEsP.js").then(e=>e.s),[])}),solutionFile:o("solutionFile",function(){return n(()=>import("./solution-file-CPU1aYeB.js").then(e=>e.s),[])}),soy:o("soy",function(){return n(()=>import("./soy-i1l2zpf5.js").then(e=>e.s),__vite__mapDeps([49,13]))}),sparql:o("sparql",function(){return n(()=>import("./sparql-C3NKiGGe.js").then(e=>e.s),__vite__mapDeps([50,51]))}),splunkSpl:o("splunkSpl",function(){return n(()=>import("./splunk-spl-CY7lc-HC.js").then(e=>e.s),[])}),sqf:o("sqf",function(){return n(()=>import("./sqf-WSFaRCVB.js").then(e=>e.s),[])}),sql:o("sql",function(){return n(()=>import("./sql-Cn07C-jv.js").then(e=>e.s),[])}),squirrel:o("squirrel",function(){return n(()=>import("./squirrel-B5uFeazh.js").then(e=>e.s),[])}),stan:o("stan",function(){return n(()=>import("./stan-CS7bpqn7.js").then(e=>e.s),[])}),stylus:o("stylus",function(){return n(()=>import("./stylus-CBW3WA3r.js").then(e=>e.s),[])}),swift:o("swift",function(){return n(()=>import("./swift-BhCDKP2d.js").then(e=>e.s),[])}),systemd:o("systemd",function(){return n(()=>import("./systemd-Bk-cEwhn.js").then(e=>e.s),[])}),t4Cs:o("t4Cs",function(){return n(()=>import("./t4-cs-O8UcXD4V.js").then(e=>e.t),__vite__mapDeps([52,53,6]))}),t4Templating:o("t4Templating",function(){return n(()=>import("./t4-templating-X-Yx3m3h.js").then(e=>e.t),[])}),t4Vb:o("t4Vb",function(){return n(()=>import("./t4-vb-BOkCxIEJ.js").then(e=>e.t),__vite__mapDeps([54,53,55,56]))}),tap:o("tap",function(){return n(()=>import("./tap-D_fMjbTR.js").then(e=>e.t),__vite__mapDeps([57,58]))}),tcl:o("tcl",function(){return n(()=>import("./tcl-BAOCdD-Q.js").then(e=>e.t),[])}),textile:o("textile",function(){return n(()=>import("./textile-DvJ94qYY.js").then(e=>e.t),[])}),toml:o("toml",function(){return n(()=>import("./toml-CVfeGHzK.js").then(e=>e.t),[])}),tremor:o("tremor",function(){return n(()=>import("./tremor-BWB4kLD_.js").then(e=>e.t),[])}),tsx:o("tsx",function(){return n(()=>import("./tsx-Baizytv-.js").then(e=>e.t),__vite__mapDeps([59,60,29]))}),tt2:o("tt2",function(){return n(()=>import("./tt2-D5BP6kr7.js").then(e=>e.t),__vite__mapDeps([61,13]))}),turtle:o("turtle",function(){return n(()=>import("./turtle-CbmRFmop.js").then(e=>e.t),[])}),twig:o("twig",function(){return n(()=>import("./twig-Jm6vXHO6.js").then(e=>e.t),__vite__mapDeps([62,13]))}),typescript:o("typescript",function(){return n(()=>import("./typescript-BRwFDuXt.js").then(e=>e.t),[])}),typoscript:o("typoscript",function(){return n(()=>import("./typoscript-Bqot00iL.js").then(e=>e.t),[])}),unrealscript:o("unrealscript",function(){return n(()=>import("./unrealscript-CX9cLFhL.js").then(e=>e.u),[])}),uorazor:o("uorazor",function(){return n(()=>import("./uorazor-c9xqui92.js").then(e=>e.u),[])}),uri:o("uri",function(){return n(()=>import("./uri-D17lZFCz.js").then(e=>e.u),[])}),v:o("v",function(){return n(()=>import("./v-Z_LI2cxb.js").then(e=>e.v),[])}),vala:o("vala",function(){return n(()=>import("./vala-Brhs46fU.js").then(e=>e.v),[])}),vbnet:o("vbnet",function(){return n(()=>import("./vbnet-BoJjwAIc.js").then(e=>e.v),__vite__mapDeps([55,56]))}),velocity:o("velocity",function(){return n(()=>import("./velocity-DYlZxd8S.js").then(e=>e.v),[])}),verilog:o("verilog",function(){return n(()=>import("./verilog-BGJnB2DL.js").then(e=>e.v),[])}),vhdl:o("vhdl",function(){return n(()=>import("./vhdl-DfXJ6PSC.js").then(e=>e.v),[])}),vim:o("vim",function(){return n(()=>import("./vim-CqF_L221.js").then(e=>e.v),[])}),visualBasic:o("visualBasic",function(){return n(()=>import("./visual-basic-BAKKy8vq.js").then(e=>e.v),[])}),warpscript:o("warpscript",function(){return n(()=>import("./warpscript-C0IQh3Bk.js").then(e=>e.w),[])}),wasm:o("wasm",function(){return n(()=>import("./wasm-Rs1BI7rs.js").then(e=>e.w),[])}),webIdl:o("webIdl",function(){return n(()=>import("./web-idl-CuwM1s_H.js").then(e=>e.w),[])}),wiki:o("wiki",function(){return n(()=>import("./wiki-DPCeV6Gq.js").then(e=>e.w),[])}),wolfram:o("wolfram",function(){return n(()=>import("./wolfram-Bo1U6o3H.js").then(e=>e.w),[])}),wren:o("wren",function(){return n(()=>import("./wren-LUy0cXxi.js").then(e=>e.w),[])}),xeora:o("xeora",function(){return n(()=>import("./xeora-BWQDan20.js").then(e=>e.x),[])}),xmlDoc:o("xmlDoc",function(){return n(()=>import("./xml-doc-bVTKuHZA.js").then(e=>e.x),[])}),xojo:o("xojo",function(){return n(()=>import("./xojo-WND1ajKV.js").then(e=>e.x),[])}),xquery:o("xquery",function(){return n(()=>import("./xquery-CtB5kpfj.js").then(e=>e.x),[])}),yaml:o("yaml",function(){return n(()=>import("./yaml-BLqseWYu.js").then(e=>e.y),[])}),yang:o("yang",function(){return n(()=>import("./yang-BQY1h-uG.js").then(e=>e.y),[])}),zig:o("zig",function(){return n(()=>import("./zig-BSESuoBq.js").then(e=>e.z),[])})},kr=yr({loader:function(){return n(()=>Promise.resolve().then(()=>Bl),void 0).then(function(t){return t.default||t})},isLanguageRegistered:function(t,r){return t.registered(r)},languageLoaders:Er,registerLanguage:function(t,r,i){return t.register(i)}}),Zl=Object.freeze(Object.defineProperty({__proto__:null,default:kr},Symbol.toStringTag,{value:"Module"})),wr={'code[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto",borderRadius:"0.3em"},'code[class*="language-"]::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"]::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},':not(pre) > code[class*="language-"]':{padding:"0.2em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},prolog:{color:"hsl(220, 10%, 40%)"},cdata:{color:"hsl(220, 10%, 40%)"},doctype:{color:"hsl(220, 14%, 71%)"},punctuation:{color:"hsl(220, 14%, 71%)"},entity:{color:"hsl(220, 14%, 71%)",cursor:"help"},"attr-name":{color:"hsl(29, 54%, 61%)"},"class-name":{color:"hsl(29, 54%, 61%)"},boolean:{color:"hsl(29, 54%, 61%)"},constant:{color:"hsl(29, 54%, 61%)"},number:{color:"hsl(29, 54%, 61%)"},atrule:{color:"hsl(29, 54%, 61%)"},keyword:{color:"hsl(286, 60%, 67%)"},property:{color:"hsl(355, 65%, 65%)"},tag:{color:"hsl(355, 65%, 65%)"},symbol:{color:"hsl(355, 65%, 65%)"},deleted:{color:"hsl(355, 65%, 65%)"},important:{color:"hsl(355, 65%, 65%)"},selector:{color:"hsl(95, 38%, 62%)"},string:{color:"hsl(95, 38%, 62%)"},char:{color:"hsl(95, 38%, 62%)"},builtin:{color:"hsl(95, 38%, 62%)"},inserted:{color:"hsl(95, 38%, 62%)"},regex:{color:"hsl(95, 38%, 62%)"},"attr-value":{color:"hsl(95, 38%, 62%)"},"attr-value > .token.punctuation":{color:"hsl(95, 38%, 62%)"},variable:{color:"hsl(207, 82%, 66%)"},operator:{color:"hsl(207, 82%, 66%)"},function:{color:"hsl(207, 82%, 66%)"},url:{color:"hsl(187, 47%, 55%)"},"attr-value > .token.punctuation.attr-equals":{color:"hsl(220, 14%, 71%)"},"special-attr > .token.attr-value > .token.value.css":{color:"hsl(220, 14%, 71%)"},".language-css .token.selector":{color:"hsl(355, 65%, 65%)"},".language-css .token.property":{color:"hsl(220, 14%, 71%)"},".language-css .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.string.url":{color:"hsl(95, 38%, 62%)"},".language-css .token.important":{color:"hsl(286, 60%, 67%)"},".language-css .token.atrule .token.rule":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.operator":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation":{color:"hsl(5, 48%, 51%)"},".language-json .token.operator":{color:"hsl(220, 14%, 71%)"},".language-json .token.null.keyword":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.url":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.operator":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url-reference.url > .token.string":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.content":{color:"hsl(207, 82%, 66%)"},".language-markdown .token.url > .token.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.url-reference.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.blockquote.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.hr.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.code-snippet":{color:"hsl(95, 38%, 62%)"},".language-markdown .token.bold .token.content":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.italic .token.content":{color:"hsl(286, 60%, 67%)"},".language-markdown .token.strike .token.content":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.strike .token.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.list.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.title.important > .token.punctuation":{color:"hsl(355, 65%, 65%)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:"0.8"},"token.tab:not(:empty):before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.cr:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.lf:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.space:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item":{marginRight:"0.4em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},".line-highlight.line-highlight":{background:"hsla(220, 100%, 80%, 0.04)"},".line-highlight.line-highlight:before":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},".line-highlight.line-highlight[data-end]:after":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"hsla(220, 100%, 80%, 0.04)"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".command-line .command-line-prompt":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".line-numbers .line-numbers-rows > span:before":{color:"hsl(220, 14%, 45%)"},".command-line .command-line-prompt > span:before":{color:"hsl(220, 14%, 45%)"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"hsl(286, 60%, 67%)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},".prism-previewer.prism-previewer:before":{borderColor:"hsl(224, 13%, 17%)"},".prism-previewer-gradient.prism-previewer-gradient div":{borderColor:"hsl(224, 13%, 17%)",borderRadius:"0.3em"},".prism-previewer-color.prism-previewer-color:before":{borderRadius:"0.3em"},".prism-previewer-easing.prism-previewer-easing:before":{borderRadius:"0.3em"},".prism-previewer.prism-previewer:after":{borderTopColor:"hsl(224, 13%, 17%)"},".prism-previewer-flipped.prism-previewer-flipped.after":{borderBottomColor:"hsl(224, 13%, 17%)"},".prism-previewer-angle.prism-previewer-angle:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-time.prism-previewer-time:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-easing.prism-previewer-easing":{background:"hsl(219, 13%, 22%)"},".prism-previewer-angle.prism-previewer-angle circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-time.prism-previewer-time circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-easing.prism-previewer-easing circle":{stroke:"hsl(220, 14%, 71%)",fill:"transparent"},".prism-previewer-easing.prism-previewer-easing path":{stroke:"hsl(220, 14%, 71%)"},".prism-previewer-easing.prism-previewer-easing line":{stroke:"hsl(220, 14%, 71%)"}},Kl=Object.freeze(Object.defineProperty({__proto__:null,default:wr},Symbol.toStringTag,{value:"Module"})),Lr={'code[class*="language-"]':{background:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{background:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto",borderRadius:"0.3em"},'code[class*="language-"]::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"] *::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'pre[class*="language-"] *::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"]::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"] *::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'pre[class*="language-"] *::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},':not(pre) > code[class*="language-"]':{padding:"0.2em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},prolog:{color:"hsl(230, 4%, 64%)"},cdata:{color:"hsl(230, 4%, 64%)"},doctype:{color:"hsl(230, 8%, 24%)"},punctuation:{color:"hsl(230, 8%, 24%)"},entity:{color:"hsl(230, 8%, 24%)",cursor:"help"},"attr-name":{color:"hsl(35, 99%, 36%)"},"class-name":{color:"hsl(35, 99%, 36%)"},boolean:{color:"hsl(35, 99%, 36%)"},constant:{color:"hsl(35, 99%, 36%)"},number:{color:"hsl(35, 99%, 36%)"},atrule:{color:"hsl(35, 99%, 36%)"},keyword:{color:"hsl(301, 63%, 40%)"},property:{color:"hsl(5, 74%, 59%)"},tag:{color:"hsl(5, 74%, 59%)"},symbol:{color:"hsl(5, 74%, 59%)"},deleted:{color:"hsl(5, 74%, 59%)"},important:{color:"hsl(5, 74%, 59%)"},selector:{color:"hsl(119, 34%, 47%)"},string:{color:"hsl(119, 34%, 47%)"},char:{color:"hsl(119, 34%, 47%)"},builtin:{color:"hsl(119, 34%, 47%)"},inserted:{color:"hsl(119, 34%, 47%)"},regex:{color:"hsl(119, 34%, 47%)"},"attr-value":{color:"hsl(119, 34%, 47%)"},"attr-value > .token.punctuation":{color:"hsl(119, 34%, 47%)"},variable:{color:"hsl(221, 87%, 60%)"},operator:{color:"hsl(221, 87%, 60%)"},function:{color:"hsl(221, 87%, 60%)"},url:{color:"hsl(198, 99%, 37%)"},"attr-value > .token.punctuation.attr-equals":{color:"hsl(230, 8%, 24%)"},"special-attr > .token.attr-value > .token.value.css":{color:"hsl(230, 8%, 24%)"},".language-css .token.selector":{color:"hsl(5, 74%, 59%)"},".language-css .token.property":{color:"hsl(230, 8%, 24%)"},".language-css .token.function":{color:"hsl(198, 99%, 37%)"},".language-css .token.url > .token.function":{color:"hsl(198, 99%, 37%)"},".language-css .token.url > .token.string.url":{color:"hsl(119, 34%, 47%)"},".language-css .token.important":{color:"hsl(301, 63%, 40%)"},".language-css .token.atrule .token.rule":{color:"hsl(301, 63%, 40%)"},".language-javascript .token.operator":{color:"hsl(301, 63%, 40%)"},".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation":{color:"hsl(344, 84%, 43%)"},".language-json .token.operator":{color:"hsl(230, 8%, 24%)"},".language-json .token.null.keyword":{color:"hsl(35, 99%, 36%)"},".language-markdown .token.url":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url > .token.operator":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url-reference.url > .token.string":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url > .token.content":{color:"hsl(221, 87%, 60%)"},".language-markdown .token.url > .token.url":{color:"hsl(198, 99%, 37%)"},".language-markdown .token.url-reference.url":{color:"hsl(198, 99%, 37%)"},".language-markdown .token.blockquote.punctuation":{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},".language-markdown .token.hr.punctuation":{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},".language-markdown .token.code-snippet":{color:"hsl(119, 34%, 47%)"},".language-markdown .token.bold .token.content":{color:"hsl(35, 99%, 36%)"},".language-markdown .token.italic .token.content":{color:"hsl(301, 63%, 40%)"},".language-markdown .token.strike .token.content":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.strike .token.punctuation":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.list.punctuation":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.title.important > .token.punctuation":{color:"hsl(5, 74%, 59%)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:"0.8"},"token.tab:not(:empty):before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.cr:before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.lf:before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.space:before":{color:"hsla(230, 8%, 24%, 0.2)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item":{marginRight:"0.4em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},".line-highlight.line-highlight":{background:"hsla(230, 8%, 24%, 0.05)"},".line-highlight.line-highlight:before":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 8%, 24%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},".line-highlight.line-highlight[data-end]:after":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 8%, 24%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"hsla(230, 8%, 24%, 0.05)"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"hsla(230, 8%, 24%, 0.2)"},".command-line .command-line-prompt":{borderRightColor:"hsla(230, 8%, 24%, 0.2)"},".line-numbers .line-numbers-rows > span:before":{color:"hsl(230, 1%, 62%)"},".command-line .command-line-prompt > span:before":{color:"hsl(230, 1%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"hsl(301, 63%, 40%)"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"hsl(301, 63%, 40%)"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"hsl(301, 63%, 40%)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},".prism-previewer.prism-previewer:before":{borderColor:"hsl(0, 0, 95%)"},".prism-previewer-gradient.prism-previewer-gradient div":{borderColor:"hsl(0, 0, 95%)",borderRadius:"0.3em"},".prism-previewer-color.prism-previewer-color:before":{borderRadius:"0.3em"},".prism-previewer-easing.prism-previewer-easing:before":{borderRadius:"0.3em"},".prism-previewer.prism-previewer:after":{borderTopColor:"hsl(0, 0, 95%)"},".prism-previewer-flipped.prism-previewer-flipped.after":{borderBottomColor:"hsl(0, 0, 95%)"},".prism-previewer-angle.prism-previewer-angle:before":{background:"hsl(0, 0%, 100%)"},".prism-previewer-time.prism-previewer-time:before":{background:"hsl(0, 0%, 100%)"},".prism-previewer-easing.prism-previewer-easing":{background:"hsl(0, 0%, 100%)"},".prism-previewer-angle.prism-previewer-angle circle":{stroke:"hsl(230, 8%, 24%)",strokeOpacity:"1"},".prism-previewer-time.prism-previewer-time circle":{stroke:"hsl(230, 8%, 24%)",strokeOpacity:"1"},".prism-previewer-easing.prism-previewer-easing circle":{stroke:"hsl(230, 8%, 24%)",fill:"transparent"},".prism-previewer-easing.prism-previewer-easing path":{stroke:"hsl(230, 8%, 24%)"},".prism-previewer-easing.prism-previewer-easing line":{stroke:"hsl(230, 8%, 24%)"}},Xl=Object.freeze(Object.defineProperty({__proto__:null,default:Lr},Symbol.toStringTag,{value:"Module"}));var Ke=Xe;Xe.displayName="clike";Xe.aliases=[];function Xe(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}const Or=_e(Ke),Ar=he({__proto__:null,default:Or},[Ke]);var Je=Qe;Qe.displayName="css";Qe.aliases=[];function Qe(e){(function(t){var r=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+r.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+r.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+r.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:r,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css;var i=t.languages.markup;i&&(i.tag.addInlined("style","css"),i.tag.addAttribute("style","css"))})(e)}const Tr=_e(Je),xr=he({__proto__:null,default:Tr},[Je]);var et=tt;tt.displayName="javascript";tt.aliases=["js"];function tt(e){e.languages.javascript=e.languages.extend("clike",{"class-name":[e.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),e.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),e.languages.markup&&(e.languages.markup.tag.addInlined("script","javascript"),e.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),e.languages.js=e.languages.javascript}const Pr=_e(et),Rr=he({__proto__:null,default:Pr},[et]);var nt=rt;rt.displayName="markup";rt.aliases=["html","mathml","svg","xml","ssml","atom","rss"];function rt(e){e.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside["attr-value"].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside["internal-subset"].inside=e.languages.markup,e.hooks.add("wrap",function(t){t.type==="entity"&&(t.attributes.title=t.content.value.replace(/&/,"&"))}),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(r,i){var c={};c["language-"+i]={pattern:/(^$)/i,lookbehind:!0,inside:e.languages[i]},c.cdata=/^$/i;var p={"included-cdata":{pattern://i,inside:c}};p["language-"+i]={pattern:/[\s\S]+/,inside:e.languages[i]};var v={};v[r]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return r}),"i"),lookbehind:!0,greedy:!0,inside:p},e.languages.insertBefore("markup","cdata",v)}}),Object.defineProperty(e.languages.markup.tag,"addAttribute",{value:function(t,r){e.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[r,"language-"+r],inside:e.languages[r]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend("markup",{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}const Ir=_e(nt),Dr=he({__proto__:null,default:Ir},[nt]);var Vr=jr,Sr=Object.prototype.hasOwnProperty;function jr(){for(var e={},t=0;t4&&r.slice(0,4)===ut&&wo.test(t)&&(t.charAt(4)==="-"?i=Ao(t):t=To(t),c=yo),new c(i,t))}function Ao(e){var t=e.slice(5).replace(dn,Po);return ut+t.charAt(0).toUpperCase()+t.slice(1)}function To(e){var t=e.slice(4);return dn.test(t)?e:(t=t.replace(Lo,xo),t.charAt(0)!=="-"&&(t="-"+t),ut+t)}function xo(e){return"-"+e.toLowerCase()}function Po(e){return e.charAt(1).toUpperCase()}var ct={};ct.parse=Do;ct.stringify=Vo;var xt="",Ro=" ",Io=/[ \t\n\r\f]+/g;function Do(e){var t=String(e||xt).trim();return t===xt?[]:t.split(Io)}function Vo(e){return e.join(Ro).trim()}var st={};st.parse=So;st.stringify=jo;var He=",",Pt=" ",ye="";function So(e){for(var t=[],r=String(e||ye),i=r.indexOf(He),c=0,p=!1,v;!p;)i===-1&&(i=r.length,p=!0),v=r.slice(c,i).trim(),(v||!p)&&t.push(v),c=i+1,i=r.indexOf(He,c);return t}function jo(e,t){var r=t||{},i=r.padLeft===!1?ye:Pt,c=r.padRight?Pt:ye;return e[e.length-1]===ye&&(e=e.concat(ye)),e.join(c+He+i).trim()}var Co=ko,Rt=it,$o=xn,It=ct.parse,Dt=st.parse,Fo=zo,No={}.hasOwnProperty;function zo(e,t,r){var i=r?Uo(r):null;return c;function c(v,s){var b=$o(v,t),y=Array.prototype.slice.call(arguments,2),x=b.tagName.toLowerCase(),O;if(b.tagName=i&&No.call(i,x)?i[x]:x,s&&Mo(s,b)&&(y.unshift(s),s=null),s)for(O in s)p(b.properties,O,s[O]);return fn(b.children,y),b.tagName==="template"&&(b.content={type:"root",children:b.children},b.children=[]),b}function p(v,s,b){var y,x,O;b==null||b!==b||(y=Co(e,s),x=y.property,O=b,typeof O=="string"&&(y.spaceSeparated?O=It(O):y.commaSeparated?O=Dt(O):y.commaOrSpaceSeparated&&(O=It(Dt(O).join(" ")))),x==="style"&&typeof b!="string"&&(O=Ho(O)),x==="className"&&v.className&&(O=v.className.concat(O)),v[x]=Go(y,x,O))}}function Mo(e,t){return typeof e=="string"||"length"in e||qo(t.tagName,e)}function qo(e,t){var r=t.type;return e==="input"||!r||typeof r!="string"?!1:typeof t.children=="object"&&"length"in t.children?!0:(r=r.toLowerCase(),e==="button"?r!=="menu"&&r!=="submit"&&r!=="reset"&&r!=="button":"value"in t)}function fn(e,t){var r,i;if(typeof t=="string"||typeof t=="number"){e.push({type:"text",value:String(t)});return}if(typeof t=="object"&&"length"in t){for(r=-1,i=t.length;++r=48&&t<=57}var Xa=Ja;function Ja(e){var t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}var Qa=el;function el(e){var t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}var tl=Qa,nl=_n,rl=ol;function ol(e){return tl(e)||nl(e)}var xe,il=59,al=ll;function ll(e){var t="&"+e+";",r;return xe=xe||document.createElement("i"),xe.innerHTML=t,r=xe.textContent,r.charCodeAt(r.length-1)===il&&e!=="semi"||r===t?!1:r}var St=Ya,jt=Za,ul=_n,cl=Xa,gn=rl,sl=al,pl=Ll,dl={}.hasOwnProperty,pe=String.fromCharCode,fl=Function.prototype,Ct={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},hl=9,$t=10,_l=12,gl=32,Ft=38,ml=59,vl=60,bl=61,yl=35,El=88,kl=120,wl=65533,de="named",pt="hexadecimal",dt="decimal",ft={};ft[pt]=16;ft[dt]=10;var je={};je[de]=gn;je[dt]=ul;je[pt]=cl;var mn=1,vn=2,bn=3,yn=4,En=5,Ue=6,kn=7,ae={};ae[mn]="Named character references must be terminated by a semicolon";ae[vn]="Numeric character references must be terminated by a semicolon";ae[bn]="Named character references cannot be empty";ae[yn]="Numeric character references cannot be empty";ae[En]="Named character references must be known";ae[Ue]="Numeric character references cannot be disallowed";ae[kn]="Numeric character references cannot be outside the permissible Unicode range";function Ll(e,t){var r={},i,c;t||(t={});for(c in Ct)i=t[c],r[c]=i??Ct[c];return(r.position.indent||r.position.start)&&(r.indent=r.position.indent||[],r.position=r.position.start),Ol(e,r)}function Ol(e,t){var r=t.additional,i=t.nonTerminated,c=t.text,p=t.reference,v=t.warning,s=t.textContext,b=t.referenceContext,y=t.warningContext,x=t.position,O=t.indent||[],D=e.length,R=0,z=-1,F=x.column||1,P=x.line||1,N="",g=[],d,k,E,m,L,T,w,j,$,U,B,W,Y,u,a,l,h,_,f;for(typeof r=="string"&&(r=r.charCodeAt(0)),l=A(),j=v?V:fl,R--,D++;++R65535&&(T-=65536,U+=pe(T>>>10|55296),T=56320|T&1023),T=U+pe(T))):u!==de&&j(yn,_)),T?(I(),l=A(),R=f-1,F+=f-Y+1,g.push(T),h=A(),h.offset++,p&&p.call(b,T,{start:l,end:h},e.slice(Y-1,f)),l=h):(m=e.slice(Y-1,f),N+=m,F+=m.length,R=f-1)}else L===10&&(P++,z++,F=0),L===L?(N+=pe(L),F++):I();return g.join("");function A(){return{line:P,column:F,offset:R+(x.offset||0)}}function V(q,M){var G=A();G.column+=M,G.offset+=M,v.call(y,ae[q],G,q)}function I(){N&&(g.push(N),c&&c.call(s,N,{start:l,end:A()}),N="")}}function Al(e){return e>=55296&&e<=57343||e>1114111}function Tl(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}var wn={exports:{}};(function(e){var t=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** - * Prism: Lightweight, robust, elegant syntax highlighting - * - * @license MIT - * @author Lea Verou - * @namespace - * @public - */var r=function(i){var c=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,p=0,v={},s={manual:i.Prism&&i.Prism.manual,disableWorkerMessageHandler:i.Prism&&i.Prism.disableWorkerMessageHandler,util:{encode:function g(d){return d instanceof b?new b(d.type,g(d.content),d.alias):Array.isArray(d)?d.map(g):d.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(E){var g=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(E.stack)||[])[1];if(g){var d=document.getElementsByTagName("script");for(var k in d)if(d[k].src==g)return d[k]}return null}},isActive:function(g,d,k){for(var E="no-"+d;g;){var m=g.classList;if(m.contains(d))return!0;if(m.contains(E))return!1;g=g.parentElement}return!!k}},languages:{plain:v,plaintext:v,text:v,txt:v,extend:function(g,d){var k=s.util.clone(s.languages[g]);for(var E in d)k[E]=d[E];return k},insertBefore:function(g,d,k,E){E=E||s.languages;var m=E[g],L={};for(var T in m)if(m.hasOwnProperty(T)){if(T==d)for(var w in k)k.hasOwnProperty(w)&&(L[w]=k[w]);k.hasOwnProperty(T)||(L[T]=m[T])}var j=E[g];return E[g]=L,s.languages.DFS(s.languages,function($,U){U===j&&$!=g&&(this[$]=L)}),L},DFS:function g(d,k,E,m){m=m||{};var L=s.util.objId;for(var T in d)if(d.hasOwnProperty(T)){k.call(d,T,d[T],E||T);var w=d[T],j=s.util.type(w);j==="Object"&&!m[L(w)]?(m[L(w)]=!0,g(w,k,null,m)):j==="Array"&&!m[L(w)]&&(m[L(w)]=!0,g(w,k,T,m))}}},plugins:{},highlightAll:function(g,d){s.highlightAllUnder(document,g,d)},highlightAllUnder:function(g,d,k){var E={callback:k,container:g,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};s.hooks.run("before-highlightall",E),E.elements=Array.prototype.slice.apply(E.container.querySelectorAll(E.selector)),s.hooks.run("before-all-elements-highlight",E);for(var m=0,L;L=E.elements[m++];)s.highlightElement(L,d===!0,E.callback)},highlightElement:function(g,d,k){var E=s.util.getLanguage(g),m=s.languages[E];s.util.setLanguage(g,E);var L=g.parentElement;L&&L.nodeName.toLowerCase()==="pre"&&s.util.setLanguage(L,E);var T=g.textContent,w={element:g,language:E,grammar:m,code:T};function j(U){w.highlightedCode=U,s.hooks.run("before-insert",w),w.element.innerHTML=w.highlightedCode,s.hooks.run("after-highlight",w),s.hooks.run("complete",w),k&&k.call(w.element)}if(s.hooks.run("before-sanity-check",w),L=w.element.parentElement,L&&L.nodeName.toLowerCase()==="pre"&&!L.hasAttribute("tabindex")&&L.setAttribute("tabindex","0"),!w.code){s.hooks.run("complete",w),k&&k.call(w.element);return}if(s.hooks.run("before-highlight",w),!w.grammar){j(s.util.encode(w.code));return}if(d&&i.Worker){var $=new Worker(s.filename);$.onmessage=function(U){j(U.data)},$.postMessage(JSON.stringify({language:w.language,code:w.code,immediateClose:!0}))}else j(s.highlight(w.code,w.grammar,w.language))},highlight:function(g,d,k){var E={code:g,grammar:d,language:k};if(s.hooks.run("before-tokenize",E),!E.grammar)throw new Error('The language "'+E.language+'" has no grammar.');return E.tokens=s.tokenize(E.code,E.grammar),s.hooks.run("after-tokenize",E),b.stringify(s.util.encode(E.tokens),E.language)},tokenize:function(g,d){var k=d.rest;if(k){for(var E in k)d[E]=k[E];delete d.rest}var m=new O;return D(m,m.head,g),x(g,m,d,m.head,0),z(m)},hooks:{all:{},add:function(g,d){var k=s.hooks.all;k[g]=k[g]||[],k[g].push(d)},run:function(g,d){var k=s.hooks.all[g];if(!(!k||!k.length))for(var E=0,m;m=k[E++];)m(d)}},Token:b};i.Prism=s;function b(g,d,k,E){this.type=g,this.content=d,this.alias=k,this.length=(E||"").length|0}b.stringify=function g(d,k){if(typeof d=="string")return d;if(Array.isArray(d)){var E="";return d.forEach(function(j){E+=g(j,k)}),E}var m={type:d.type,content:g(d.content,k),tag:"span",classes:["token",d.type],attributes:{},language:k},L=d.alias;L&&(Array.isArray(L)?Array.prototype.push.apply(m.classes,L):m.classes.push(L)),s.hooks.run("wrap",m);var T="";for(var w in m.attributes)T+=" "+w+'="'+(m.attributes[w]||"").replace(/"/g,""")+'"';return"<"+m.tag+' class="'+m.classes.join(" ")+'"'+T+">"+m.content+""};function y(g,d,k,E){g.lastIndex=d;var m=g.exec(k);if(m&&E&&m[1]){var L=m[1].length;m.index+=L,m[0]=m[0].slice(L)}return m}function x(g,d,k,E,m,L){for(var T in k)if(!(!k.hasOwnProperty(T)||!k[T])){var w=k[T];w=Array.isArray(w)?w:[w];for(var j=0;j=L.reach);h+=l.value.length,l=l.next){var _=l.value;if(d.length>g.length)return;if(!(_ instanceof b)){var f=1,A;if(W){if(A=y(a,h,g,B),!A||A.index>=g.length)break;var M=A.index,V=A.index+A[0].length,I=h;for(I+=l.value.length;M>=I;)l=l.next,I+=l.value.length;if(I-=l.value.length,h=I,l.value instanceof b)continue;for(var q=l;q!==d.tail&&(IL.reach&&(L.reach=ve);var se=l.prev;le&&(se=D(d,se,le),h+=le.length),R(d,se,f);var Tn=new b(T,U?s.tokenize(G,U):G,Y,G);if(l=D(d,se,Tn),Oe&&D(d,l,Oe),f>1){var Ce={cause:T+","+j,reach:ve};x(g,d,k,l.prev,h,Ce),L&&Ce.reach>L.reach&&(L.reach=Ce.reach)}}}}}}function O(){var g={value:null,prev:null,next:null},d={value:null,prev:g,next:null};g.next=d,this.head=g,this.tail=d,this.length=0}function D(g,d,k){var E=d.next,m={value:k,prev:d,next:E};return d.next=m,E.prev=m,g.length++,m}function R(g,d,k){for(var E=d.next,m=0;me[n]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var u=a;a.displayName="systemd";a.aliases=[];function a(r){(function(o){var t={pattern:/^[;#].*/m,greedy:!0},e=/"(?:[^\r\n"\\]|\\(?:[^\r]|\r\n?))*"(?!\S)/.source;o.languages.systemd={comment:t,section:{pattern:/^\[[^\n\r\[\]]*\](?=[ \t]*$)/m,greedy:!0,inside:{punctuation:/^\[|\]$/,"section-name":{pattern:/[\s\S]+/,alias:"selector"}}},key:{pattern:/^[^\s=]+(?=[ \t]*=)/m,greedy:!0,alias:"attr-name"},value:{pattern:RegExp(/(=[ \t]*(?!\s))/.source+"(?:"+e+`|(?=[^"\r -]))(?:`+(/[^\s\\]/.source+'|[ ]+(?:(?![ "])|'+e+")|"+/\\[\r\n]+(?:[#;].*[\r\n]+)*(?![#;])/.source)+")*"),lookbehind:!0,greedy:!0,alias:"attr-value",inside:{comment:t,quoted:{pattern:RegExp(/(^|\s)/.source+e),lookbehind:!0,greedy:!0},punctuation:/\\$/m,boolean:{pattern:/^(?:false|no|off|on|true|yes)$/,greedy:!0}}},punctuation:/=/}})(r)}const d=c(u),l=i({__proto__:null,default:d},[u]);export{l as s}; diff --git a/nanobot/web/dist/assets/t4-cs-O8UcXD4V.js b/nanobot/web/dist/assets/t4-cs-O8UcXD4V.js deleted file mode 100644 index b91bea2..0000000 --- a/nanobot/web/dist/assets/t4-cs-O8UcXD4V.js +++ /dev/null @@ -1 +0,0 @@ -import{g as f}from"./syntax-highlight-CQw1bBY6.js";import{a as c}from"./t4-templating-X-Yx3m3h.js";import{a as l}from"./csharp-7kLA39Gy.js";function p(t,n){for(var a=0;ae[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var i=c,u=l,g=s;s.displayName="t4Cs";s.aliases=[];function s(t){t.register(i),t.register(u),t.languages.t4=t.languages["t4-cs"]=t.languages["t4-templating"].createT4("csharp")}const m=f(g),C=p({__proto__:null,default:m},[g]);export{C as t}; diff --git a/nanobot/web/dist/assets/t4-templating-X-Yx3m3h.js b/nanobot/web/dist/assets/t4-templating-X-Yx3m3h.js deleted file mode 100644 index cb83aa9..0000000 --- a/nanobot/web/dist/assets/t4-templating-X-Yx3m3h.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function p(n,i){for(var a=0;ar[e]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="t4Templating";o.aliases=[];function o(n){(function(i){function a(e,t,s){return{pattern:RegExp("<#"+e+"[\\s\\S]*?#>"),alias:"block",inside:{delimiter:{pattern:RegExp("^<#"+e+"|#>$"),alias:"important"},content:{pattern:/[\s\S]+/,inside:t,alias:s}}}}function r(e){var t=i.languages[e],s="language-"+e;return{block:{pattern:/<#[\s\S]+?#>/,inside:{directive:a("@",{"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,inside:{punctuation:/^=|^["']|["']$/}},keyword:/\b\w+(?=\s)/,"attr-name":/\b\w+/}),expression:a("=",t,s),"class-feature":a("\\+",t,s),standard:a("",t,s)}}}}i.languages["t4-templating"]=Object.defineProperty({},"createT4",{value:r})})(n)}const u=c(l),f=p({__proto__:null,default:u},[l]);export{l as a,f as t}; diff --git a/nanobot/web/dist/assets/t4-vb-BOkCxIEJ.js b/nanobot/web/dist/assets/t4-vb-BOkCxIEJ.js deleted file mode 100644 index ff52548..0000000 --- a/nanobot/web/dist/assets/t4-vb-BOkCxIEJ.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";import{a as i}from"./t4-templating-X-Yx3m3h.js";import{a as l}from"./vbnet-BoJjwAIc.js";function c(t,f){for(var a=0;ae[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var p=i,b=l,g=n;n.displayName="t4Vb";n.aliases=[];function n(t){t.register(p),t.register(b),t.languages["t4-vb"]=t.languages["t4-templating"].createT4("vbnet")}const u=s(g),v=c({__proto__:null,default:u},[g]);export{v as t}; diff --git a/nanobot/web/dist/assets/tap-D_fMjbTR.js b/nanobot/web/dist/assets/tap-D_fMjbTR.js deleted file mode 100644 index 4aad8d2..0000000 --- a/nanobot/web/dist/assets/tap-D_fMjbTR.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";import{a as p}from"./yaml-BLqseWYu.js";function u(t,i){for(var r=0;re[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var g=p,s=n;n.displayName="tap";n.aliases=[];function n(t){t.register(g),t.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\b\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,lookbehind:!0,inside:t.languages.yaml,alias:"language-yaml"}}}const f=l(s),m=u({__proto__:null,default:f},[s]);export{m as t}; diff --git a/nanobot/web/dist/assets/tcl-BAOCdD-Q.js b/nanobot/web/dist/assets/tcl-BAOCdD-Q.js deleted file mode 100644 index 3ffb4eb..0000000 --- a/nanobot/web/dist/assets/tcl-BAOCdD-Q.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function c(e,l){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=o;o.displayName="tcl";o.aliases=[];function o(e){e.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$)\{[^}]+\}/,lookbehind:!0},{pattern:/(^[\t ]*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^[\t ]*proc[ \t]+)\S+/m,lookbehind:!0},builtin:[{pattern:/(^[\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\b/m,lookbehind:!0},/\b(?:else|elseif)\b/],scope:{pattern:/(^[\t ]*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^[\t ]*|\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|in|ne|ni)\b/,punctuation:/[{}()\[\]]/}}const p=s(i),d=c({__proto__:null,default:p},[i]);export{d as t}; diff --git a/nanobot/web/dist/assets/textile-DvJ94qYY.js b/nanobot/web/dist/assets/textile-DvJ94qYY.js deleted file mode 100644 index e9ff33f..0000000 --- a/nanobot/web/dist/assets/textile-DvJ94qYY.js +++ /dev/null @@ -1 +0,0 @@ -import{g as m}from"./syntax-highlight-CQw1bBY6.js";function f(s,o){for(var u=0;ur[e]})}}}return Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}var p=l;l.displayName="textile";l.aliases=[];function l(s){(function(o){var u=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,r=/\)|\((?![^|()\n]+\))/.source;function e(k,b){return RegExp(k.replace(//g,function(){return"(?:"+u+")"}).replace(//g,function(){return"(?:"+r+")"}),b||"")}var n={css:{pattern:/\{[^{}]+\}/,inside:{rest:o.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},c=o.languages.textile=o.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:e(/^[a-z]\w*(?:||[<>=])*\./.source),inside:{modifier:{pattern:e(/(^[a-z]\w*)(?:||[<>=])+(?=\.)/.source),lookbehind:!0,inside:n},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:e(/^[*#]+*\s+\S.*/.source,"m"),inside:{modifier:{pattern:e(/(^[*#]+)+/.source),lookbehind:!0,inside:n},punctuation:/^[*#]+/}},table:{pattern:e(/^(?:(?:||[<>=^~])+\.\s*)?(?:\|(?:(?:||[<>=^~_]|[\\/]\d+)+\.|(?!(?:||[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:e(/(^|\|(?:\r?\n|\r)?)(?:||[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:n},punctuation:/\||^\./}},inline:{pattern:e(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:e(/(^(\*\*?)*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:e(/(^(__?)*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:e(/(^\?\?*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:e(/(^@*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:e(/(^\+*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:e(/(^-*).+?(?=-)/.source),lookbehind:!0},span:{pattern:e(/(^%*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:e(/(^\*\*|__|\?\?|[*_%@+\-^~])+/.source),lookbehind:!0,inside:n},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:e(/"*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:e(/(^"*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:e(/(^")+/.source),lookbehind:!0,inside:n},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:e(/!(?:||[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:e(/(^!(?:||[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:e(/(^!)(?:||[<>=])+/.source),lookbehind:!0,inside:n},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:C|R|TM)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),i=c.phrase.inside,t={inline:i.inline,link:i.link,image:i.image,footnote:i.footnote,acronym:i.acronym,mark:i.mark};c.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var d=i.inline.inside;d.bold.inside=t,d.italic.inside=t,d.inserted.inside=t,d.deleted.inside=t,d.span.inside=t;var a=i.table.inside;a.inline=t.inline,a.link=t.link,a.image=t.image,a.footnote=t.footnote,a.acronym=t.acronym,a.mark=t.mark})(s)}const g=m(p),O=f({__proto__:null,default:g},[p]);export{O as t}; diff --git a/nanobot/web/dist/assets/toml-CVfeGHzK.js b/nanobot/web/dist/assets/toml-CVfeGHzK.js deleted file mode 100644 index 35257b4..0000000 --- a/nanobot/web/dist/assets/toml-CVfeGHzK.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function l(r,a){for(var n=0;ne[t]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var d=s;s.displayName="toml";s.aliases=[];function s(r){(function(a){var n=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function e(t){return t.replace(/__/g,function(){return n})}a.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(e(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(e(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}})(r)}const i=u(d),c=l({__proto__:null,default:i},[d]);export{c as t}; diff --git a/nanobot/web/dist/assets/tremor-BWB4kLD_.js b/nanobot/web/dist/assets/tremor-BWB4kLD_.js deleted file mode 100644 index e85ad90..0000000 --- a/nanobot/web/dist/assets/tremor-BWB4kLD_.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function l(r,e){for(var t=0;tn[o]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="tremor";i.aliases=[];function i(r){(function(e){e.languages.tremor={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},"interpolated-string":null,extractor:{pattern:/\b[a-z_]\w*\|(?:[^\r\n\\|]|\\(?:\r\n|[\s\S]))*\|/i,greedy:!0,inside:{regex:{pattern:/(^re)\|[\s\S]+/,lookbehind:!0},function:/^\w+/,value:/\|[\s\S]+/}},identifier:{pattern:/`[^`]*`/,greedy:!0},function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())\b/,keyword:/\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\b/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee][+-]?[\d_]+)?)\b/,"pattern-punctuation":{pattern:/%(?=[({[])/,alias:"punctuation"},operator:/[-+*\/%~!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?>?=?|(?:absent|and|not|or|present|xor)\b/,punctuation:/::|[;\[\]()\{\},.:]/};var t=/#\{(?:[^"{}]|\{[^{}]*\}|"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*")*\}/.source;e.languages.tremor["interpolated-string"]={pattern:RegExp(/(^|[^\\])/.source+'(?:"""(?:'+/[^"\\#]|\\[\s\S]|"(?!"")|#(?!\{)/.source+"|"+t+')*"""|"(?:'+/[^"\\\r\n#]|\\(?:\r\n|[\s\S])|#(?!\{)/.source+"|"+t+')*")'),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:RegExp(t),inside:{punctuation:/^#\{|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.tremor}}},string:/[\s\S]+/}},e.languages.troy=e.languages.tremor,e.languages.trickle=e.languages.tremor})(r)}const c=u(s),g=l({__proto__:null,default:c},[s]);export{g as t}; diff --git a/nanobot/web/dist/assets/tsx-Baizytv-.js b/nanobot/web/dist/assets/tsx-Baizytv-.js deleted file mode 100644 index c75afbe..0000000 --- a/nanobot/web/dist/assets/tsx-Baizytv-.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";import{a as l}from"./jsx-YFTIUZ3D.js";import{a as c}from"./typescript-BRwFDuXt.js";function u(r,e){for(var a=0;at[o]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var f=l,i=c,g=n;n.displayName="tsx";n.aliases=[];function n(r){r.register(f),r.register(i),function(e){var a=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",a),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var t=e.languages.tsx.tag;t.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(r)}const x=p(g),b=u({__proto__:null,default:x},[g]);export{b as t}; diff --git a/nanobot/web/dist/assets/tt2-D5BP6kr7.js b/nanobot/web/dist/assets/tt2-D5BP6kr7.js deleted file mode 100644 index 0508ca0..0000000 --- a/nanobot/web/dist/assets/tt2-D5BP6kr7.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";import{a as s}from"./markup-templating-C7tXeHgl.js";function u(r,t){for(var e=0;ea[n]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var d=s,i=g;g.displayName="tt2";g.aliases=[];function g(r){r.register(d),function(t){t.languages.tt2=t.languages.extend("clike",{comment:/#.*|\[%#[\s\S]*?%\]/,keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),t.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|not|or)\b/,variable:{pattern:/\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i}}),t.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%\]$/,alias:"punctuation"}}),t.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete t.languages.tt2.string,t.hooks.add("before-tokenize",function(e){var a=/\[%[\s\S]+?%\]/g;t.languages["markup-templating"].buildPlaceholders(e,"tt2",a)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"tt2")})}(r)}const p=l(i),c=u({__proto__:null,default:p},[i]);export{c as t}; diff --git a/nanobot/web/dist/assets/turtle-CbmRFmop.js b/nanobot/web/dist/assets/turtle-CbmRFmop.js deleted file mode 100644 index f60da5d..0000000 --- a/nanobot/web/dist/assets/turtle-CbmRFmop.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function s(e,i){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=u;u.displayName="turtle";u.aliases=[];function u(e){e.languages.turtle={comment:{pattern:/#.*/,greedy:!0},"multiline-string":{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:!0,alias:"string",inside:{comment:/#.*/}},string:{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:!0},url:{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:!0,inside:{punctuation:/[<>]/}},function:{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{"local-name":{pattern:/([^:]*:)[\s\S]+/,lookbehind:!0},prefix:{pattern:/[\s\S]+/,inside:{punctuation:/:/}}}},number:/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[{}.,;()[\]]|\^\^/,boolean:/\b(?:false|true)\b/,keyword:[/(?:\ba|@prefix|@base)\b|=/,/\b(?:base|graph|prefix)\b/i],tag:{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{punctuation:/@/}}},e.languages.trig=e.languages.turtle}const d=l(o),g=s({__proto__:null,default:d},[o]);export{o as a,g as t}; diff --git a/nanobot/web/dist/assets/twig-Jm6vXHO6.js b/nanobot/web/dist/assets/twig-Jm6vXHO6.js deleted file mode 100644 index 06ad73a..0000000 --- a/nanobot/web/dist/assets/twig-Jm6vXHO6.js +++ /dev/null @@ -1 +0,0 @@ -import{g}from"./syntax-highlight-CQw1bBY6.js";import{a as l}from"./markup-templating-C7tXeHgl.js";function u(e,t){for(var a=0;ar[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var d=l,s=i;i.displayName="twig";i.aliases=[];function i(e){e.register(d),e.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},e.hooks.add("before-tokenize",function(t){if(t.language==="twig"){var a=/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g;e.languages["markup-templating"].buildPlaceholders(t,"twig",a)}}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"twig")})}const p=g(s),b=u({__proto__:null,default:p},[s]);export{b as t}; diff --git a/nanobot/web/dist/assets/typescript-BRwFDuXt.js b/nanobot/web/dist/assets/typescript-BRwFDuXt.js deleted file mode 100644 index 0a9d431..0000000 --- a/nanobot/web/dist/assets/typescript-BRwFDuXt.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./syntax-highlight-CQw1bBY6.js";function c(a,e){for(var t=0;tn[s]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var p=i;i.displayName="typescript";i.aliases=["ts"];function i(a){(function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript})(a)}const l=o(p),g=c({__proto__:null,default:l},[p]);export{p as a,g as t}; diff --git a/nanobot/web/dist/assets/typoscript-Bqot00iL.js b/nanobot/web/dist/assets/typoscript-Bqot00iL.js deleted file mode 100644 index 115f709..0000000 --- a/nanobot/web/dist/assets/typoscript-Bqot00iL.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function p(r,e){for(var t=0;tn[o]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var a=i;i.displayName="typoscript";i.aliases=["tsconfig"];function i(r){(function(e){var t=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;e.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern://,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:t}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:t,number:/^\d+$/,punctuation:/[,|:]/}},keyword:t,number:{pattern:/\b\d+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},e.languages.tsconfig=e.languages.typoscript})(r)}const T=s(a),c=p({__proto__:null,default:T},[a]);export{c as t}; diff --git a/nanobot/web/dist/assets/unrealscript-CX9cLFhL.js b/nanobot/web/dist/assets/unrealscript-CX9cLFhL.js deleted file mode 100644 index c61f22b..0000000 --- a/nanobot/web/dist/assets/unrealscript-CX9cLFhL.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function l(e,i){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=n;n.displayName="unrealscript";n.aliases=["uc","uscript"];function n(e){e.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,punctuation:/[()[\]{};,.]/},e.languages.uc=e.languages.uscript=e.languages.unrealscript}const p=c(s),d=l({__proto__:null,default:p},[s]);export{d as u}; diff --git a/nanobot/web/dist/assets/uorazor-c9xqui92.js b/nanobot/web/dist/assets/uorazor-c9xqui92.js deleted file mode 100644 index fbf3b73..0000000 --- a/nanobot/web/dist/assets/uorazor-c9xqui92.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,o){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i=n;n.displayName="uorazor";n.aliases=[];function n(e){e.languages.uorazor={"comment-hash":{pattern:/#.*/,alias:"comment",greedy:!0},"comment-slash":{pattern:/\/\/.*/,alias:"comment",greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/},greedy:!0},"source-layers":{pattern:/\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\b/i,alias:"function"},"source-commands":{pattern:/\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\b/,alias:"function"},"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},function:/\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\b/,keyword:/\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/}}const u=l(i),c=d({__proto__:null,default:u},[i]);export{c as u}; diff --git a/nanobot/web/dist/assets/uri-D17lZFCz.js b/nanobot/web/dist/assets/uri-D17lZFCz.js deleted file mode 100644 index f09c635..0000000 --- a/nanobot/web/dist/assets/uri-D17lZFCz.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./syntax-highlight-CQw1bBY6.js";function d(e,s){for(var i=0;ir[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=n;n.displayName="uri";n.aliases=["url"];function n(e){e.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+("(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|"+/[\w\-.~!$&'()*+,;=%]*/.source+")")+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},e.languages.url=e.languages.uri}const p=o(u),f=d({__proto__:null,default:p},[u]);export{f as u}; diff --git a/nanobot/web/dist/assets/v-Z_LI2cxb.js b/nanobot/web/dist/assets/v-Z_LI2cxb.js deleted file mode 100644 index 70f4983..0000000 --- a/nanobot/web/dist/assets/v-Z_LI2cxb.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(n,e){for(var t=0;ta[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="v";o.aliases=[];function o(n){(function(e){var t={pattern:/[\s\S]+/,inside:null};e.languages.v=e.languages.extend("clike",{string:{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":t}}}},"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:else|for|if)|#(?:flag|include))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),t.inside=e.languages.v,e.languages.insertBefore("v","string",{char:{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"}}),e.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),e.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:e.languages.v.generic.inside}}}})})(n)}const c=l(s),p=u({__proto__:null,default:c},[s]);export{p as v}; diff --git a/nanobot/web/dist/assets/vala-Brhs46fU.js b/nanobot/web/dist/assets/vala-Brhs46fU.js deleted file mode 100644 index b9c8a9a..0000000 --- a/nanobot/web/dist/assets/vala-Brhs46fU.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,s){for(var n=0;nt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=i;i.displayName="vala";i.aliases=[];function i(e){e.languages.vala=e.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),e.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:e.languages.vala}},string:/[\s\S]+/}}}),e.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}const c=l(o),g=u({__proto__:null,default:c},[o]);export{g as v}; diff --git a/nanobot/web/dist/assets/vbnet-BoJjwAIc.js b/nanobot/web/dist/assets/vbnet-BoJjwAIc.js deleted file mode 100644 index 89540b3..0000000 --- a/nanobot/web/dist/assets/vbnet-BoJjwAIc.js +++ /dev/null @@ -1 +0,0 @@ -import{g as L}from"./syntax-highlight-CQw1bBY6.js";import{a as e}from"./basic-FWDxey35.js";function C(E,A){for(var R=0;RT[O]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}var t=e,I=S;S.displayName="vbnet";S.aliases=[];function S(E){E.register(t),E.languages.vbnet=E.languages.extend("basic",{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}const D=L(I),a=C({__proto__:null,default:D},[I]);export{I as a,a as v}; diff --git a/nanobot/web/dist/assets/velocity-DYlZxd8S.js b/nanobot/web/dist/assets/velocity-DYlZxd8S.js deleted file mode 100644 index e162bdb..0000000 --- a/nanobot/web/dist/assets/velocity-DYlZxd8S.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function s(n,t){for(var e=0;ea[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var l=i;i.displayName="velocity";i.aliases=[];function i(n){(function(t){t.languages.velocity=t.languages.extend("markup",{});var e={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};e.variable.inside={string:e.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:e.number,boolean:e.boolean,punctuation:e.punctuation},t.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:e}},variable:e.variable}),t.languages.velocity.tag.inside["attr-value"].inside.rest=t.languages.velocity})(n)}const c=u(l),d=s({__proto__:null,default:c},[l]);export{d as v}; diff --git a/nanobot/web/dist/assets/verilog-BGJnB2DL.js b/nanobot/web/dist/assets/verilog-BGJnB2DL.js deleted file mode 100644 index f0a66ec..0000000 --- a/nanobot/web/dist/assets/verilog-BGJnB2DL.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function c(e,o){for(var t=0;tr[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=a;a.displayName="verilog";a.aliases=[];function a(e){e.languages.verilog={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"kernel-function":{pattern:/\B\$\w+\b/,alias:"property"},constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always|always_comb|always_ff|always_latch)\b(?: *@)?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/}}const d=l(s),u=c({__proto__:null,default:d},[s]);export{u as v}; diff --git a/nanobot/web/dist/assets/vhdl-DfXJ6PSC.js b/nanobot/web/dist/assets/vhdl-DfXJ6PSC.js deleted file mode 100644 index bb32385..0000000 --- a/nanobot/web/dist/assets/vhdl-DfXJ6PSC.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function u(e,i){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=o;o.displayName="vhdl";o.aliases=[];function o(e){e.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:library|use)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,punctuation:/[{}[\];(),.:]/}}const c=s(l),f=u({__proto__:null,default:c},[l]);export{f as v}; diff --git a/nanobot/web/dist/assets/vim-CqF_L221.js b/nanobot/web/dist/assets/vim-CqF_L221.js deleted file mode 100644 index b34811e..0000000 --- a/nanobot/web/dist/assets/vim-CqF_L221.js +++ /dev/null @@ -1 +0,0 @@ -import{g as r}from"./syntax-highlight-CQw1bBY6.js";function c(e,a){for(var t=0;tn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=s;s.displayName="vim";s.aliases=[];function s(e){e.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}const p=r(l),m=c({__proto__:null,default:p},[l]);export{m as v}; diff --git a/nanobot/web/dist/assets/visual-basic-BAKKy8vq.js b/nanobot/web/dist/assets/visual-basic-BAKKy8vq.js deleted file mode 100644 index 8e40a3a..0000000 --- a/nanobot/web/dist/assets/visual-basic-BAKKy8vq.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function d(e,o){for(var r=0;rt[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=i;i.displayName="visualBasic";i.aliases=[];function i(e){e.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},e.languages.vb=e.languages["visual-basic"],e.languages.vba=e.languages["visual-basic"]}const u=l(s),g=d({__proto__:null,default:u},[s]);export{g as v}; diff --git a/nanobot/web/dist/assets/warpscript-C0IQh3Bk.js b/nanobot/web/dist/assets/warpscript-C0IQh3Bk.js deleted file mode 100644 index b77c187..0000000 --- a/nanobot/web/dist/assets/warpscript-C0IQh3Bk.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function c(r,p){for(var a=0;ae[t]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var s=n;n.displayName="warpscript";n.aliases=[];function n(r){r.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:F|T|false|true)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}}const f=i(s),l=c({__proto__:null,default:f},[s]);export{l as w}; diff --git a/nanobot/web/dist/assets/wasm-Rs1BI7rs.js b/nanobot/web/dist/assets/wasm-Rs1BI7rs.js deleted file mode 100644 index e9e6657..0000000 --- a/nanobot/web/dist/assets/wasm-Rs1BI7rs.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function u(e,s){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=n;n.displayName="wasm";n.aliases=[];function n(e){e.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}const d=i(l),c=u({__proto__:null,default:d},[l]);export{c as w}; diff --git a/nanobot/web/dist/assets/web-idl-CuwM1s_H.js b/nanobot/web/dist/assets/web-idl-CuwM1s_H.js deleted file mode 100644 index 9feb136..0000000 --- a/nanobot/web/dist/assets/web-idl-CuwM1s_H.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(i,n){for(var e=0;er[t]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var o=s;s.displayName="webIdl";s.aliases=[];function s(i){(function(n){var e=/(?:\B-|\b_|\b)[A-Za-z][\w-]*(?![\w-])/.source,r="(?:"+/\b(?:unsigned\s+)?long\s+long(?![\w-])/.source+"|"+/\b(?:unrestricted|unsigned)\s+[a-z]+(?![\w-])/.source+"|"+/(?!(?:unrestricted|unsigned)\b)/.source+e+/(?:\s*<(?:[^<>]|<[^<>]*>)*>)?/.source+")"+/(?:\s*\?)?/.source,t={};n.languages["web-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"[^"]*"/,greedy:!0},namespace:{pattern:RegExp(/(\bnamespace\s+)/.source+e),lookbehind:!0},"class-name":[{pattern:/(^|[^\w-])(?:iterable|maplike|setlike)\s*<(?:[^<>]|<[^<>]*>)*>/,lookbehind:!0,inside:t},{pattern:RegExp(/(\b(?:attribute|const|deleter|getter|optional|setter)\s+)/.source+r),lookbehind:!0,inside:t},{pattern:RegExp("("+/\bcallback\s+/.source+e+/\s*=\s*/.source+")"+r),lookbehind:!0,inside:t},{pattern:RegExp(/(\btypedef\b\s*)/.source+r),lookbehind:!0,inside:t},{pattern:RegExp(/(\b(?:callback|dictionary|enum|interface(?:\s+mixin)?)\s+)(?!(?:interface|mixin)\b)/.source+e),lookbehind:!0},{pattern:RegExp(/(:\s*)/.source+e),lookbehind:!0},RegExp(e+/(?=\s+(?:implements|includes)\b)/.source),{pattern:RegExp(/(\b(?:implements|includes)\s+)/.source+e),lookbehind:!0},{pattern:RegExp(r+"(?="+/\s*(?:\.{3}\s*)?/.source+e+/\s*[(),;=]/.source+")"),inside:t}],builtin:/\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\b/,keyword:[/\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\b/,/\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\b/],boolean:/\b(?:false|true)\b/,number:{pattern:/(^|[^\w-])-?(?:0x[0-9a-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|NaN|Infinity)(?![\w-])/i,lookbehind:!0},operator:/\.{3}|[=:?<>-]/,punctuation:/[(){}[\].,;]/};for(var a in n.languages["web-idl"])a!=="class-name"&&(t[a]=n.languages["web-idl"][a]);n.languages.webidl=n.languages["web-idl"]})(i)}const b=l(o),d=u({__proto__:null,default:b},[o]);export{d as w}; diff --git a/nanobot/web/dist/assets/wiki-DPCeV6Gq.js b/nanobot/web/dist/assets/wiki-DPCeV6Gq.js deleted file mode 100644 index bf1bc20..0000000 --- a/nanobot/web/dist/assets/wiki-DPCeV6Gq.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./syntax-highlight-CQw1bBY6.js";function s(e,o){for(var a=0;at[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=r;r.displayName="wiki";r.aliases=[];function r(e){e.languages.wiki=e.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:e.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),e.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:e.languages.markup.tag.inside}}}})}const p=u(l),c=s({__proto__:null,default:p},[l]);export{c as w}; diff --git a/nanobot/web/dist/assets/wolfram-Bo1U6o3H.js b/nanobot/web/dist/assets/wolfram-Bo1U6o3H.js deleted file mode 100644 index 82ef290..0000000 --- a/nanobot/web/dist/assets/wolfram-Bo1U6o3H.js +++ /dev/null @@ -1 +0,0 @@ -import{g}from"./syntax-highlight-CQw1bBY6.js";function u(e,n){for(var r=0;ra[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=l;l.displayName="wolfram";l.aliases=["mathematica","wl","nb"];function l(e){e.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\b\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:False|True)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\^|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.mathematica=e.languages.wolfram,e.languages.wl=e.languages.wolfram,e.languages.nb=e.languages.wolfram}const f=g(s),c=u({__proto__:null,default:f},[s]);export{c as w}; diff --git a/nanobot/web/dist/assets/wren-LUy0cXxi.js b/nanobot/web/dist/assets/wren-LUy0cXxi.js deleted file mode 100644 index 1857060..0000000 --- a/nanobot/web/dist/assets/wren-LUy0cXxi.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function u(e,i){for(var n=0;nt[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var s=o;o.displayName="wren";o.aliases=[];function o(e){e.languages.wren={comment:[{pattern:/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"string-literal":null,hashbang:{pattern:/^#!\/.+/,greedy:!0,alias:"comment"},attribute:{pattern:/#!?[ \t\u3000]*\w+/,alias:"keyword"},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},/\b[A-Z][a-z\d_]*\b/],constant:/\b[A-Z][A-Z\d_]*\b/,null:{pattern:/\bnull\b/,alias:"keyword"},keyword:/\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\b/,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,function:/\b[a-z_]\w*(?=\s*[({])/i,operator:/<<|>>|[=!<>]=?|&&|\|\||[-+*/%~^&|?:]|\.{2,3}/,punctuation:/[\[\](){}.,;]/},e.languages.wren["string-literal"]={pattern:/(^|[^\\"])"(?:[^\\"%]|\\[\s\S]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/,lookbehind:!0,inside:{expression:{pattern:/^(%\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:e.languages.wren},"interpolation-punctuation":{pattern:/^%\(|\)$/,alias:"punctuation"}}},string:/[\s\S]+/}}}const p=l(s),b=u({__proto__:null,default:p},[s]);export{b as w}; diff --git a/nanobot/web/dist/assets/xeora-BWQDan20.js b/nanobot/web/dist/assets/xeora-BWQDan20.js deleted file mode 100644 index 6ef1bfd..0000000 --- a/nanobot/web/dist/assets/xeora-BWQDan20.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function c(e,t){for(var i=0;in[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var u=o;o.displayName="xeora";o.aliases=["xeoracube"];function o(e){(function(t){t.languages.xeora=t.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),t.languages.insertBefore("inside","punctuation",{variable:t.languages.xeora["function-inline"].inside.variable},t.languages.xeora["function-block"]),t.languages.xeoracube=t.languages.xeora})(e)}const s=p(u),w=c({__proto__:null,default:s},[u]);export{w as x}; diff --git a/nanobot/web/dist/assets/xml-doc-bVTKuHZA.js b/nanobot/web/dist/assets/xml-doc-bVTKuHZA.js deleted file mode 100644 index 659a9fa..0000000 --- a/nanobot/web/dist/assets/xml-doc-bVTKuHZA.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l}from"./syntax-highlight-CQw1bBY6.js";function f(a,r){for(var o=0;oe[t]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var m=c;c.displayName="xmlDoc";c.aliases=[];function c(a){(function(r){function o(s,i){r.languages[s]&&r.languages.insertBefore(s,"comment",{"doc-comment":i})}var e=r.languages.markup.tag,t={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:e}},n={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:e}};o("csharp",t),o("fsharp",t),o("vbnet",n)})(a)}const g=l(m),p=f({__proto__:null,default:g},[m]);export{p as x}; diff --git a/nanobot/web/dist/assets/xojo-WND1ajKV.js b/nanobot/web/dist/assets/xojo-WND1ajKV.js deleted file mode 100644 index 3695b10..0000000 --- a/nanobot/web/dist/assets/xojo-WND1ajKV.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./syntax-highlight-CQw1bBY6.js";function d(e,i){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var l=a;a.displayName="xojo";a.aliases=[];function a(e){e.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,greedy:!0},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],directive:{pattern:/#(?:Else|ElseIf|Endif|If|Pragma)\b/i,alias:"property"},keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\b/i,punctuation:/[.,;:()]/}}const u=s(l),f=d({__proto__:null,default:u},[l]);export{f as x}; diff --git a/nanobot/web/dist/assets/xquery-CtB5kpfj.js b/nanobot/web/dist/assets/xquery-CtB5kpfj.js deleted file mode 100644 index d69c8e5..0000000 --- a/nanobot/web/dist/assets/xquery-CtB5kpfj.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p}from"./syntax-highlight-CQw1bBY6.js";function d(l,r){for(var i=0;io[e]})}}}return Object.freeze(Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}))}var c=u;u.displayName="xquery";u.aliases=[];function u(l){(function(r){r.languages.xquery=r.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),r.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,r.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/,r.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,r.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:r.languages.xquery,alias:"language-xquery"};var i=function(e){return typeof e=="string"?e:typeof e.content=="string"?e.content:e.content.map(i).join("")},o=function(e){for(var n=[],t=0;t0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():a.content[a.content.length-1].content==="/>"||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&a.type==="punctuation"&&a.content==="{"&&(!e[t+1]||e[t+1].type!=="punctuation"||e[t+1].content!=="{")&&(!e[t-1]||e[t-1].type!=="plain-text"||e[t-1].content!=="{")?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&a.type==="punctuation"&&a.content==="}"?n[n.length-1].openedBraces--:a.type!=="comment"&&(g=!0)),(g||typeof a=="string")&&n.length>0&&n[n.length-1].openedBraces===0){var s=i(a);t0&&(typeof e[t-1]=="string"||e[t-1].type==="plain-text")&&(s=i(e[t-1])+s,e.splice(t-1,1),t--),/^\s+$/.test(s)?e[t]=s:e[t]=new r.Token("plain-text",s,null,s)}a.content&&typeof a.content!="string"&&o(a.content)}};r.hooks.add("after-tokenize",function(e){e.language==="xquery"&&o(e.tokens)})})(l)}const y=p(c),b=d({__proto__:null,default:y},[c]);export{b as x}; diff --git a/nanobot/web/dist/assets/yaml-BLqseWYu.js b/nanobot/web/dist/assets/yaml-BLqseWYu.js deleted file mode 100644 index 8fb80e0..0000000 --- a/nanobot/web/dist/assets/yaml-BLqseWYu.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./syntax-highlight-CQw1bBY6.js";function g(n,a){for(var t=0;te[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var d=s;s.displayName="yaml";s.aliases=["yml"];function s(n){(function(a){var t=/[*&][^\s[\]{},]+/,e=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+e.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+e.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function u(f,l){l=(l||"").replace(/m/g,"")+"m";var p=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return f});return RegExp(p,l)}a.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return"(?:"+o+"|"+i+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:u(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:u(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:u(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:u(i),lookbehind:!0,greedy:!0},number:{pattern:u(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:e,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},a.languages.yml=a.languages.yaml})(n)}const m=c(d),x=g({__proto__:null,default:m},[d]);export{d as a,x as y}; diff --git a/nanobot/web/dist/assets/yang-BQY1h-uG.js b/nanobot/web/dist/assets/yang-BQY1h-uG.js deleted file mode 100644 index 4be9f7c..0000000 --- a/nanobot/web/dist/assets/yang-BQY1h-uG.js +++ /dev/null @@ -1 +0,0 @@ -import{g as i}from"./syntax-highlight-CQw1bBY6.js";function u(e,s){for(var a=0;at[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var g=o;o.displayName="yang";o.aliases=[];function o(e){e.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/}}const l=i(g),p=u({__proto__:null,default:l},[g]);export{p as y}; diff --git a/nanobot/web/dist/assets/zig-BSESuoBq.js b/nanobot/web/dist/assets/zig-BSESuoBq.js deleted file mode 100644 index 412d7d1..0000000 --- a/nanobot/web/dist/assets/zig-BSESuoBq.js +++ /dev/null @@ -1 +0,0 @@ -import{g as b}from"./syntax-highlight-CQw1bBY6.js";function p(o,a){for(var e=0;er[n]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var u=i;i.displayName="zig";i.aliases=[];function i(o){(function(a){function e(s){return function(){return s}}var r=/\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,n="\\b(?!"+r.source+")(?!\\d)\\w+\\b",t=/align\s*\((?:[^()]|\([^()]*\))*\)/.source,c=/(?:\?|\bpromise->|(?:\[[^[\]]*\]|\*(?!\*)|\*\*)(?:\s*|\s*const\b|\s*volatile\b|\s*allowzero\b)*)/.source.replace(//g,e(t)),d=/(?:\bpromise\b|(?:\berror\.)?(?:\.)*(?!\s+))/.source.replace(//g,e(n)),l="(?!\\s)(?:!?\\s*(?:"+c+"\\s*)*"+d+")+";a.languages.zig={comment:[{pattern:/\/\/[/!].*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0}],char:{pattern:/(^|[^\\])'(?:[^'\\\r\n]|[\uD800-\uDFFF]{2}|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0},builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp(/(:\s*)(?=\s*(?:\s*)?[=;,)])|(?=\s*(?:\s*)?\{)/.source.replace(//g,e(l)).replace(//g,e(t))),lookbehind:!0,inside:null},{pattern:RegExp(/(\)\s*)(?=\s*(?:\s*)?;)/.source.replace(//g,e(l)).replace(//g,e(t))),lookbehind:!0,inside:null}],"builtin-type":{pattern:/\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\b/,alias:"keyword"},keyword:r,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},a.languages.zig["class-name"].forEach(function(s){s.inside===null&&(s.inside=a.languages.zig)})})(o)}const g=b(u),m=p({__proto__:null,default:g},[u]);export{m as z}; diff --git a/nanobot/web/dist/brand/nanobot_apple_touch.png b/nanobot/web/dist/brand/nanobot_apple_touch.png deleted file mode 100644 index 43ee168..0000000 Binary files a/nanobot/web/dist/brand/nanobot_apple_touch.png and /dev/null differ diff --git a/nanobot/web/dist/brand/nanobot_favicon_32.png b/nanobot/web/dist/brand/nanobot_favicon_32.png deleted file mode 100644 index 7222bbf..0000000 Binary files a/nanobot/web/dist/brand/nanobot_favicon_32.png and /dev/null differ diff --git a/nanobot/web/dist/brand/nanobot_icon.png b/nanobot/web/dist/brand/nanobot_icon.png deleted file mode 100644 index 046086e..0000000 Binary files a/nanobot/web/dist/brand/nanobot_icon.png and /dev/null differ diff --git a/nanobot/web/dist/brand/nanobot_logo.png b/nanobot/web/dist/brand/nanobot_logo.png deleted file mode 100644 index f519cbc..0000000 Binary files a/nanobot/web/dist/brand/nanobot_logo.png and /dev/null differ diff --git a/nanobot/web/dist/brand/nanobot_logo.webp b/nanobot/web/dist/brand/nanobot_logo.webp deleted file mode 100644 index cb39dc4..0000000 Binary files a/nanobot/web/dist/brand/nanobot_logo.webp and /dev/null differ diff --git a/nanobot/web/dist/index.html b/nanobot/web/dist/index.html deleted file mode 100644 index 4afb186..0000000 --- a/nanobot/web/dist/index.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - - - - - - nanobot - - - - - - - - -
-
-
- - Loading nanobot… -
-
-
- - diff --git a/webui/app.js b/webui/app.js deleted file mode 100644 index 721d121..0000000 --- a/webui/app.js +++ /dev/null @@ -1,293 +0,0 @@ -const state = { - runtime: null, - knowledgeBases: [], - activeKnowledgeBaseId: null, - conversationId: null, - isSending: false, -}; - -const elements = { - kbList: document.getElementById("knowledge-base-list"), - refreshKbs: document.getElementById("refresh-kbs"), - importKb: document.getElementById("import-kb"), - importPath: document.getElementById("import-path"), - importSubmit: document.getElementById("import-submit"), - importStatus: document.getElementById("import-status"), - runtimeMode: document.getElementById("runtime-mode"), - runtimeModel: document.getElementById("runtime-model"), - threadTitle: document.getElementById("thread-title"), - threadSubtitle: document.getElementById("thread-subtitle"), - activeKbBadge: document.getElementById("active-kb-badge"), - newThread: document.getElementById("new-thread"), - messageList: document.getElementById("message-list"), - composer: document.getElementById("composer"), - sendMessage: document.getElementById("send-message"), -}; - -function escapeHtml(text) { - return String(text) - .replaceAll("&", "&") - .replaceAll("<", "<") - .replaceAll(">", ">"); -} - -async function fetchJson(url, options) { - const response = await fetch(url, options); - if (!response.ok) { - const text = await response.text(); - throw new Error(text || `HTTP ${response.status}`); - } - return response.json(); -} - -async function bootstrap() { - const [runtime, kbPayload] = await Promise.all([ - fetchJson("/api/runtime"), - fetchJson("/api/knowledge-bases"), - ]); - state.runtime = runtime; - state.knowledgeBases = kbPayload.knowledge_bases || []; - state.activeKnowledgeBaseId = - runtime.default_knowledge_base_id || - kbPayload.default_knowledge_base_id || - state.knowledgeBases[0]?.knowledge_base_id || - null; - renderRuntime(); - renderKnowledgeBases(); - updateThreadHeader(); -} - -function renderRuntime() { - elements.runtimeMode.textContent = state.runtime?.mode || "unknown"; - elements.runtimeModel.textContent = state.runtime?.model_name || "offline"; -} - -function renderKnowledgeBases() { - const cards = state.knowledgeBases; - elements.kbList.innerHTML = ""; - if (!cards.length) { - elements.kbList.innerHTML = '
还没有知识库,先从上面导入一份会议文本。
'; - return; - } - for (const kb of cards) { - const button = document.createElement("button"); - button.type = "button"; - button.className = `kb-item${kb.knowledge_base_id === state.activeKnowledgeBaseId ? " active" : ""}`; - button.innerHTML = ` -
${escapeHtml(kb.title)}
-
最近会议:${escapeHtml(kb.last_meeting_date || "暂无")} · ${kb.meeting_count} 次导入
-
指标 ${kb.counts.metrics} · 待办 ${kb.counts.actions} · 风险 ${kb.counts.risks}
-
${escapeHtml((kb.latest_summary || []).join(" "))}
- `; - button.addEventListener("click", async () => { - state.activeKnowledgeBaseId = kb.knowledge_base_id; - state.conversationId = null; - renderKnowledgeBases(); - updateThreadHeader(); - appendSystemMessage(`已切换到知识库“${kb.knowledge_base_id}”。`); - await ensureConversation(); - }); - elements.kbList.appendChild(button); - } -} - -function updateThreadHeader() { - const active = state.knowledgeBases.find((item) => item.knowledge_base_id === state.activeKnowledgeBaseId); - if (!active) { - elements.threadTitle.textContent = "选择一个知识库开始提问"; - elements.threadSubtitle.textContent = "左侧选择知识库,右侧像 nanobot 一样按对话线程提问。"; - elements.activeKbBadge.textContent = "未选择知识库"; - return; - } - elements.threadTitle.textContent = active.title; - elements.threadSubtitle.textContent = `最近会议:${active.last_meeting_date || "暂无"},待办 ${active.counts.actions},风险 ${active.counts.risks}`; - elements.activeKbBadge.textContent = `知识库:${active.knowledge_base_id}`; - elements.importKb.value = active.knowledge_base_id; -} - -function clearHeroCard() { - const hero = elements.messageList.querySelector(".hero-card"); - if (hero) { - hero.remove(); - } -} - -function appendMessage(role, text) { - clearHeroCard(); - const article = document.createElement("article"); - article.className = `message ${role}`; - article.innerHTML = ` -
${role === "user" ? "我" : "AI"}
-
${escapeHtml(text)}
- `; - elements.messageList.appendChild(article); - elements.messageList.scrollTop = elements.messageList.scrollHeight; - return article; -} - -function appendSystemMessage(text) { - appendMessage("assistant", text); -} - -async function ensureConversation() { - if (state.conversationId) { - return state.conversationId; - } - const payload = await fetchJson("/api/conversations", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ knowledge_base_id: state.activeKnowledgeBaseId }), - }); - state.conversationId = payload.conversation_id; - return state.conversationId; -} - -async function refreshKnowledgeBases() { - const kbPayload = await fetchJson("/api/knowledge-bases"); - state.knowledgeBases = kbPayload.knowledge_bases || []; - if (!state.activeKnowledgeBaseId && state.knowledgeBases[0]) { - state.activeKnowledgeBaseId = state.knowledgeBases[0].knowledge_base_id; - } - renderKnowledgeBases(); - updateThreadHeader(); -} - -async function importTranscript() { - const knowledgeBaseId = elements.importKb.value.trim(); - const filePath = elements.importPath.value.trim(); - if (!knowledgeBaseId || !filePath) { - elements.importStatus.textContent = "请输入知识库 ID 和文本路径。"; - return; - } - elements.importStatus.textContent = "正在导入..."; - try { - const payload = await fetchJson("/api/knowledge-bases/import", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - knowledge_base_id: knowledgeBaseId, - file_path: filePath, - }), - }); - elements.importStatus.textContent = `导入完成:${payload.knowledge_base_id},meeting_id=${payload.meeting_id}`; - state.activeKnowledgeBaseId = payload.knowledge_base_id; - state.conversationId = null; - await refreshKnowledgeBases(); - appendSystemMessage(`已导入到知识库“${payload.knowledge_base_id}”,现在可以直接提问。`); - } catch (error) { - elements.importStatus.textContent = String(error.message || error); - } -} - -async function sendMessage() { - const message = elements.composer.value.trim(); - if (!message || state.isSending) { - return; - } - state.isSending = true; - elements.sendMessage.disabled = true; - appendMessage("user", message); - elements.composer.value = ""; - - const assistantCard = appendMessage("assistant", "正在思考..."); - const body = assistantCard.querySelector(".message-body"); - const activityNode = document.createElement("div"); - activityNode.className = "message-activity"; - body.appendChild(activityNode); - - try { - const conversationId = await ensureConversation(); - const response = await fetch(`/api/conversations/${conversationId}/chat`, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - message, - knowledge_base_id: state.activeKnowledgeBaseId, - }), - }); - if (!response.ok || !response.body) { - throw new Error((await response.text()) || `HTTP ${response.status}`); - } - - let finalText = ""; - const reader = response.body.getReader(); - const decoder = new TextDecoder("utf-8"); - let buffer = ""; - - while (true) { - const { done, value } = await reader.read(); - if (done) { - break; - } - buffer += decoder.decode(value, { stream: true }); - const chunks = buffer.split("\n\n"); - buffer = chunks.pop() || ""; - for (const chunk of chunks) { - const line = chunk.split("\n").find((item) => item.startsWith("data: ")); - if (!line) { - continue; - } - const payload = JSON.parse(line.slice(6)); - if (payload.type === "meta" && payload.knowledge_base_id) { - state.activeKnowledgeBaseId = payload.knowledge_base_id; - updateThreadHeader(); - renderKnowledgeBases(); - } - if (payload.type === "tool_call") { - activityNode.textContent = `工具调用:${payload.tool_name}`; - } - if (payload.type === "tool_result") { - activityNode.textContent = `工具已返回:${payload.tool_name}`; - } - if (payload.type === "final") { - finalText = payload.final_response || ""; - body.textContent = finalText; - if (activityNode.textContent) { - body.appendChild(activityNode); - } - } - } - } - if (!finalText) { - body.textContent = "这次没有拿到有效回答。"; - } - await refreshKnowledgeBases(); - } catch (error) { - body.textContent = `请求失败:${error.message || error}`; - } finally { - state.isSending = false; - elements.sendMessage.disabled = false; - elements.messageList.scrollTop = elements.messageList.scrollHeight; - } -} - -elements.refreshKbs.addEventListener("click", () => { - refreshKnowledgeBases().catch((error) => appendSystemMessage(`刷新失败:${error.message || error}`)); -}); - -elements.importSubmit.addEventListener("click", () => { - importTranscript().catch((error) => { - elements.importStatus.textContent = String(error.message || error); - }); -}); - -elements.sendMessage.addEventListener("click", () => { - sendMessage().catch((error) => appendSystemMessage(`发送失败:${error.message || error}`)); -}); - -elements.newThread.addEventListener("click", async () => { - state.conversationId = null; - await ensureConversation(); - appendSystemMessage("已新建一个对话线程。"); -}); - -elements.composer.addEventListener("keydown", (event) => { - if ((event.ctrlKey || event.metaKey) && event.key === "Enter") { - event.preventDefault(); - sendMessage().catch((error) => appendSystemMessage(`发送失败:${error.message || error}`)); - } -}); - -bootstrap().catch((error) => { - appendSystemMessage(`初始化失败:${error.message || error}`); -}); diff --git a/webui/dist/assets/MarkdownTextRenderer-CE8hfq6X.js b/webui/dist/assets/MarkdownTextRenderer-CTM5M1NW.js similarity index 99% rename from webui/dist/assets/MarkdownTextRenderer-CE8hfq6X.js rename to webui/dist/assets/MarkdownTextRenderer-CTM5M1NW.js index 3e07e06..841ff65 100644 --- a/webui/dist/assets/MarkdownTextRenderer-CE8hfq6X.js +++ b/webui/dist/assets/MarkdownTextRenderer-CTM5M1NW.js @@ -1,2 +1,2 @@ -import{j as u,M as P,r as M,a as q,b as I,c as z}from"./markdown-vendor-BC7Vi29N.js";import{r as p}from"./syntax-highlight-CQw1bBY6.js";import{A as H,C as _,c as h,F as T,a as k,i as j,b as $,E as B,d as v,f as U}from"./index-Ds4APFvF.js";import"./katex-BSBacQyE.js";const x=92,w=36,O=40,V=41,G=91,K=93,R=32,W=94,Q=95,Z=61,J=43,X=47,Y=60,ee=62,te=123,ne=125,re=124,ae={flow:{[x]:{tokenize:me,concrete:!0,name:"texMathFlow"}},text:{[x]:{tokenize:ce,name:"texMathText"},[w]:{tokenize:ue,name:"guardedDollarMathText"}}},ie=function(){const t=this.data();(t.micromarkExtensions||(t.micromarkExtensions=[])).push(ae)};function f(e){return e===-5||e===-4||e===-3}function oe(e){return e!==null&&e>=48&&e<=57}function se(e){return e===null||e===w||e===R||f(e)}function le(e){return e===x||e===W||e===Q||e===Z||e===J||e===X||e===Y||e===ee||e===te||e===ne||e===re}const F={tokenize:pe,partial:!0};function ue(e,t,r){let a=!1,o=!1,n=null,i=null;return c;function c(m){return e.enter("mathText"),e.enter("mathTextSequence"),e.consume(m),l}function l(m){return se(m)?r(m):(e.exit("mathTextSequence"),e.enter("mathTextData"),s(m))}function s(m){return m===null||f(m)?(e.exit("mathTextData"),r(m)):m===w?(e.exit("mathTextData"),e.enter("mathTextSequence"),e.consume(m),e.exit("mathTextSequence"),e.exit("mathText"),g):(b(m),m===x?d:s)}function d(m){return m===null||f(m)?(e.exit("mathTextData"),r(m)):(b(m),s)}function g(m){return!o||i===R||oe(n)&&!a?r(m):t(m)}function b(m){n??(n=m),o=!0,a||(a=le(m)),i=m,e.consume(m)}}function ce(e,t,r){let a;return o;function o(l){return e.enter("mathText"),e.enter("mathTextSequence"),e.consume(l),n}function n(l){return l!==O?r(l):(e.consume(l),e.exit("mathTextSequence"),e.enter("mathTextData"),i)}function i(l){return l===null?(e.exit("mathTextData"),r(l)):l===x?(e.exit("mathTextData"),a=e.enter("mathTextSequence"),e.consume(l),c):(e.consume(l),i)}function c(l){return l===V?(e.consume(l),e.exit("mathTextSequence"),e.exit("mathText"),t):(a&&(a.type="mathTextData"),i(l))}}function me(e,t,r){return a;function a(s){return e.enter("mathFlow"),e.enter("mathFlowFence"),e.enter("mathFlowFenceSequence"),e.consume(s),o}function o(s){return s!==G?r(s):(e.consume(s),e.exit("mathFlowFenceSequence"),e.exit("mathFlowFence"),n)}function n(s){return s===null?r(s):f(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n):s===x?e.attempt(F,l,c)(s):(e.enter("mathFlowValue"),i(s))}function i(s){return s===null?(e.exit("mathFlowValue"),r(s)):f(s)?(e.exit("mathFlowValue"),e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n):s===x?(e.exit("mathFlowValue"),e.attempt(F,l,c)(s)):(e.consume(s),i)}function c(s){return e.enter("mathFlowValue"),e.consume(s),i}function l(s){return e.exit("mathFlow"),t(s)}}function pe(e,t,r){return a;function a(n){return e.enter("mathFlowFence"),e.enter("mathFlowFenceSequence"),e.consume(n),o}function o(n){return n!==K?r(n):(e.consume(n),e.exit("mathFlowFenceSequence"),e.exit("mathFlowFence"),t)}}const he=new Set(["mark","sub","sup"]);function S(e){var n;const t=((n=e.split(/[?#]/,1)[0])==null?void 0:n.trim())??"",r=t.lastIndexOf("/"),a=r>=0?t.slice(r+1):t,o=a.lastIndexOf(".");return o>0?a.slice(o).toLowerCase():""}function xe(e,t){const r=$({url:e,name:t});return r!=="file"?r:S(t)||S(e)?"file":"image"}function de(e,t){return{type:`nanobotSafeHtml${e}`,data:{hName:e},children:t}}function ge(e){return{type:"text",value:e}}function E(e){if(e.type!=="html"||typeof e.value!="string")return null;const t=/^<\s*(\/?)\s*(mark|sub|sup)\s*>$/i.exec(e.value.trim());return t?{tag:t[2].toLowerCase(),closing:t[1]==="/"}:null}function y(e){const t=[];for(let r=0;r\s*<\s*summary\s*>([\s\S]*?)<\s*\/\s*summary\s*>$/i.exec(t);return r?{summary:r[1].trim()}:/^<\s*details\s*>$/i.test(t)?{summary:"Details"}:null}function be(e){return e.type==="html"&&typeof e.value=="string"&&/^<\s*\/\s*details\s*>$/i.test(e.value.trim())}function A(e){const t=[];for(let r=0;rl>r&&be(c));if(n===-1){t.push(a);continue}const i=y(A(e.slice(r+1,n)));t.push({type:"nanobotSafeHtmlDetails",data:{hName:"details"},children:[{type:"nanobotSafeHtmlSummary",data:{hName:"summary"},children:[ge(o.summary)]},...i]}),r=n}return t}function ye(){return e=>{e.children&&(e.children=y(A(e.children)))}}const ke=[q,I,[z,{singleDollarTextMath:!1}],ie,ye],we=[M];function C(e){return p.Children.toArray(e).map(t=>typeof t=="string"||typeof t=="number"?String(t):"").join("")}function L(e){var r,a;let t=e.trim();if(!t)return"";try{/^file:\/\//i.test(t)?t=decodeURIComponent(new URL(t).pathname):t=decodeURIComponent(t)}catch{}return t=((a=(r=t.split("?",1)[0])==null?void 0:r.split("#",1)[0])==null?void 0:a.trim())??"",/^[A-Za-z]:[\\/]/.test(t)||(t=t.replace(/:\d+(?::\d+)?$/,"")),t}function Te(e){return v(e)?!1:j(e)?!0:/^[a-z][a-z0-9+.-]*:\/\//i.test(e)||/[\\/]/.test(e)?!1:/^[^?#]+\.[a-z0-9][a-z0-9_-]{0,12}$/i.test(e)}function Fe(e){if(!e||/^https?:\/\//i.test(e)||e.startsWith("#"))return!1;const t=L(e);return!!(t&&v(t))}function Se(e){if(!e||/^https?:\/\//i.test(e)||e.startsWith("#"))return null;const t=L(e);return Te(t)?t:null}function D(e){let t="",r;for(const a of p.Children.toArray(e)){if(typeof a=="string"||typeof a=="number"){t+=String(a);continue}if(!p.isValidElement(a))continue;const o=a.props;!r&&typeof o.href=="string"&&/^https?:\/\//i.test(o.href)&&(r=o.href);const n=D(o.children);t+=n.text,r||(r=n.href)}return{text:t,href:r}}function N(e){return e.replace(/\s+/g," ").replace(/^[\s"'“”‘’]+|[\s"'“”‘’]+$/g,"").trim()}function Ee(e){const{text:t,href:r}=D(e);if(!r)return null;let a;try{a=new URL(r)}catch{return null}if(a.protocol!=="http:"&&a.protocol!=="https:")return null;const o=t.replace(/\s+/g," ").replace(r,"").replace(a.toString(),"").replace(/https?:\/\/\S+/i,"").trim();if(!o||o.length<4)return null;const n=/^(.*?)\s*(?:[—–]| - |:)\s*(.+)$/.exec(o),i=n!=null&&n[1]?N(n[1]):void 0,c=N((n==null?void 0:n[2])??o);return!c||/^https?:\/\//i.test(c)?null:{href:r,host:a.hostname,prefix:i,title:c}}function Ne({link:e}){const{favicon:t,onFaviconError:r}=je(e.host),a=e.prefix?`${e.prefix} — ${e.title}`:e.title;return u.jsxs("a",{href:e.href,target:"_blank",rel:"noreferrer noopener","aria-label":`Open link: ${a}`,className:h("not-prose inline-flex max-w-full items-center gap-2 align-baseline","text-blue-500 no-underline underline-offset-2 hover:underline dark:text-blue-300"),children:[u.jsx("span",{className:h("relative grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px]","border border-border/65 bg-background text-muted-foreground"),"aria-hidden":!0,children:t?u.jsx("img",{src:t,alt:"",className:"h-3 w-3 rounded-[2px] object-contain",loading:"lazy",onError:r}):u.jsx(B,{className:"h-3 w-3"})}),u.jsx("span",{className:"min-w-0 truncate leading-normal",children:a})]})}function je(e){const t=p.useMemo(()=>U(e),[e]),[r,a]=p.useState(0);p.useEffect(()=>{a(0)},[e]);const o=p.useCallback(()=>{a(n=>Math.min(n+1,t.length))},[t.length]);return{favicon:t[r]??null,onFaviconError:o}}function ve(e){if(!p.isValidElement(e))return!1;const t=e.props;return e.type===k||typeof t.code=="string"}function Re(e){var o;if(!p.isValidElement(e))return null;const t=e.props;if(!("children"in t))return null;const r=typeof t.className=="string"?t.className:"",a=(o=/language-([^\s]+)/.exec(r))==null?void 0:o[1];return{code:C(t.children).replace(/\n$/,""),language:a}}function Pe({children:e,className:t,highlightCode:r=!0,onOpenFilePreview:a}){const o=p.useMemo(()=>({code({className:n,children:i,...c}){const l=/language-(\w+)/.exec(n||"");if(l){const g=String(i).replace(/\n$/,"");return u.jsx(k,{language:l[1],code:g,className:"my-3",highlight:r})}const s=String(i).replace(/\n$/,"");return j(s)?u.jsx(T,{path:s,onOpen:a}):s.includes(` +import{j as u,M as P,r as M,a as q,b as I,c as z}from"./markdown-vendor-BC7Vi29N.js";import{r as p}from"./syntax-highlight-CQw1bBY6.js";import{A as H,C as _,c as h,F as T,a as k,i as j,b as $,E as B,d as v,f as U}from"./index-Tf_JW3Nl.js";import"./katex-BSBacQyE.js";const x=92,w=36,O=40,V=41,G=91,K=93,R=32,W=94,Q=95,Z=61,J=43,X=47,Y=60,ee=62,te=123,ne=125,re=124,ae={flow:{[x]:{tokenize:me,concrete:!0,name:"texMathFlow"}},text:{[x]:{tokenize:ce,name:"texMathText"},[w]:{tokenize:ue,name:"guardedDollarMathText"}}},ie=function(){const t=this.data();(t.micromarkExtensions||(t.micromarkExtensions=[])).push(ae)};function f(e){return e===-5||e===-4||e===-3}function oe(e){return e!==null&&e>=48&&e<=57}function se(e){return e===null||e===w||e===R||f(e)}function le(e){return e===x||e===W||e===Q||e===Z||e===J||e===X||e===Y||e===ee||e===te||e===ne||e===re}const F={tokenize:pe,partial:!0};function ue(e,t,r){let a=!1,o=!1,n=null,i=null;return c;function c(m){return e.enter("mathText"),e.enter("mathTextSequence"),e.consume(m),l}function l(m){return se(m)?r(m):(e.exit("mathTextSequence"),e.enter("mathTextData"),s(m))}function s(m){return m===null||f(m)?(e.exit("mathTextData"),r(m)):m===w?(e.exit("mathTextData"),e.enter("mathTextSequence"),e.consume(m),e.exit("mathTextSequence"),e.exit("mathText"),g):(b(m),m===x?d:s)}function d(m){return m===null||f(m)?(e.exit("mathTextData"),r(m)):(b(m),s)}function g(m){return!o||i===R||oe(n)&&!a?r(m):t(m)}function b(m){n??(n=m),o=!0,a||(a=le(m)),i=m,e.consume(m)}}function ce(e,t,r){let a;return o;function o(l){return e.enter("mathText"),e.enter("mathTextSequence"),e.consume(l),n}function n(l){return l!==O?r(l):(e.consume(l),e.exit("mathTextSequence"),e.enter("mathTextData"),i)}function i(l){return l===null?(e.exit("mathTextData"),r(l)):l===x?(e.exit("mathTextData"),a=e.enter("mathTextSequence"),e.consume(l),c):(e.consume(l),i)}function c(l){return l===V?(e.consume(l),e.exit("mathTextSequence"),e.exit("mathText"),t):(a&&(a.type="mathTextData"),i(l))}}function me(e,t,r){return a;function a(s){return e.enter("mathFlow"),e.enter("mathFlowFence"),e.enter("mathFlowFenceSequence"),e.consume(s),o}function o(s){return s!==G?r(s):(e.consume(s),e.exit("mathFlowFenceSequence"),e.exit("mathFlowFence"),n)}function n(s){return s===null?r(s):f(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n):s===x?e.attempt(F,l,c)(s):(e.enter("mathFlowValue"),i(s))}function i(s){return s===null?(e.exit("mathFlowValue"),r(s)):f(s)?(e.exit("mathFlowValue"),e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n):s===x?(e.exit("mathFlowValue"),e.attempt(F,l,c)(s)):(e.consume(s),i)}function c(s){return e.enter("mathFlowValue"),e.consume(s),i}function l(s){return e.exit("mathFlow"),t(s)}}function pe(e,t,r){return a;function a(n){return e.enter("mathFlowFence"),e.enter("mathFlowFenceSequence"),e.consume(n),o}function o(n){return n!==K?r(n):(e.consume(n),e.exit("mathFlowFenceSequence"),e.exit("mathFlowFence"),t)}}const he=new Set(["mark","sub","sup"]);function S(e){var n;const t=((n=e.split(/[?#]/,1)[0])==null?void 0:n.trim())??"",r=t.lastIndexOf("/"),a=r>=0?t.slice(r+1):t,o=a.lastIndexOf(".");return o>0?a.slice(o).toLowerCase():""}function xe(e,t){const r=$({url:e,name:t});return r!=="file"?r:S(t)||S(e)?"file":"image"}function de(e,t){return{type:`nanobotSafeHtml${e}`,data:{hName:e},children:t}}function ge(e){return{type:"text",value:e}}function E(e){if(e.type!=="html"||typeof e.value!="string")return null;const t=/^<\s*(\/?)\s*(mark|sub|sup)\s*>$/i.exec(e.value.trim());return t?{tag:t[2].toLowerCase(),closing:t[1]==="/"}:null}function y(e){const t=[];for(let r=0;r\s*<\s*summary\s*>([\s\S]*?)<\s*\/\s*summary\s*>$/i.exec(t);return r?{summary:r[1].trim()}:/^<\s*details\s*>$/i.test(t)?{summary:"Details"}:null}function be(e){return e.type==="html"&&typeof e.value=="string"&&/^<\s*\/\s*details\s*>$/i.test(e.value.trim())}function A(e){const t=[];for(let r=0;rl>r&&be(c));if(n===-1){t.push(a);continue}const i=y(A(e.slice(r+1,n)));t.push({type:"nanobotSafeHtmlDetails",data:{hName:"details"},children:[{type:"nanobotSafeHtmlSummary",data:{hName:"summary"},children:[ge(o.summary)]},...i]}),r=n}return t}function ye(){return e=>{e.children&&(e.children=y(A(e.children)))}}const ke=[q,I,[z,{singleDollarTextMath:!1}],ie,ye],we=[M];function C(e){return p.Children.toArray(e).map(t=>typeof t=="string"||typeof t=="number"?String(t):"").join("")}function L(e){var r,a;let t=e.trim();if(!t)return"";try{/^file:\/\//i.test(t)?t=decodeURIComponent(new URL(t).pathname):t=decodeURIComponent(t)}catch{}return t=((a=(r=t.split("?",1)[0])==null?void 0:r.split("#",1)[0])==null?void 0:a.trim())??"",/^[A-Za-z]:[\\/]/.test(t)||(t=t.replace(/:\d+(?::\d+)?$/,"")),t}function Te(e){return v(e)?!1:j(e)?!0:/^[a-z][a-z0-9+.-]*:\/\//i.test(e)||/[\\/]/.test(e)?!1:/^[^?#]+\.[a-z0-9][a-z0-9_-]{0,12}$/i.test(e)}function Fe(e){if(!e||/^https?:\/\//i.test(e)||e.startsWith("#"))return!1;const t=L(e);return!!(t&&v(t))}function Se(e){if(!e||/^https?:\/\//i.test(e)||e.startsWith("#"))return null;const t=L(e);return Te(t)?t:null}function D(e){let t="",r;for(const a of p.Children.toArray(e)){if(typeof a=="string"||typeof a=="number"){t+=String(a);continue}if(!p.isValidElement(a))continue;const o=a.props;!r&&typeof o.href=="string"&&/^https?:\/\//i.test(o.href)&&(r=o.href);const n=D(o.children);t+=n.text,r||(r=n.href)}return{text:t,href:r}}function N(e){return e.replace(/\s+/g," ").replace(/^[\s"'“”‘’]+|[\s"'“”‘’]+$/g,"").trim()}function Ee(e){const{text:t,href:r}=D(e);if(!r)return null;let a;try{a=new URL(r)}catch{return null}if(a.protocol!=="http:"&&a.protocol!=="https:")return null;const o=t.replace(/\s+/g," ").replace(r,"").replace(a.toString(),"").replace(/https?:\/\/\S+/i,"").trim();if(!o||o.length<4)return null;const n=/^(.*?)\s*(?:[—–]| - |:)\s*(.+)$/.exec(o),i=n!=null&&n[1]?N(n[1]):void 0,c=N((n==null?void 0:n[2])??o);return!c||/^https?:\/\//i.test(c)?null:{href:r,host:a.hostname,prefix:i,title:c}}function Ne({link:e}){const{favicon:t,onFaviconError:r}=je(e.host),a=e.prefix?`${e.prefix} — ${e.title}`:e.title;return u.jsxs("a",{href:e.href,target:"_blank",rel:"noreferrer noopener","aria-label":`Open link: ${a}`,className:h("not-prose inline-flex max-w-full items-center gap-2 align-baseline","text-blue-500 no-underline underline-offset-2 hover:underline dark:text-blue-300"),children:[u.jsx("span",{className:h("relative grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px]","border border-border/65 bg-background text-muted-foreground"),"aria-hidden":!0,children:t?u.jsx("img",{src:t,alt:"",className:"h-3 w-3 rounded-[2px] object-contain",loading:"lazy",onError:r}):u.jsx(B,{className:"h-3 w-3"})}),u.jsx("span",{className:"min-w-0 truncate leading-normal",children:a})]})}function je(e){const t=p.useMemo(()=>U(e),[e]),[r,a]=p.useState(0);p.useEffect(()=>{a(0)},[e]);const o=p.useCallback(()=>{a(n=>Math.min(n+1,t.length))},[t.length]);return{favicon:t[r]??null,onFaviconError:o}}function ve(e){if(!p.isValidElement(e))return!1;const t=e.props;return e.type===k||typeof t.code=="string"}function Re(e){var o;if(!p.isValidElement(e))return null;const t=e.props;if(!("children"in t))return null;const r=typeof t.className=="string"?t.className:"",a=(o=/language-([^\s]+)/.exec(r))==null?void 0:o[1];return{code:C(t.children).replace(/\n$/,""),language:a}}function Pe({children:e,className:t,highlightCode:r=!0,onOpenFilePreview:a}){const o=p.useMemo(()=>({code({className:n,children:i,...c}){const l=/language-(\w+)/.exec(n||"");if(l){const g=String(i).replace(/\n$/,"");return u.jsx(k,{language:l[1],code:g,className:"my-3",highlight:r})}const s=String(i).replace(/\n$/,"");return j(s)?u.jsx(T,{path:s,onOpen:a}):s.includes(` `)||s.length>120?u.jsx("code",{className:h("block min-w-0 whitespace-pre bg-transparent p-0 font-mono text-[0.8125rem]","leading-snug text-inherit",n),...c,children:i}):u.jsx("code",{className:h("rounded bg-muted px-1 py-0.5 font-mono text-[0.85em]",n),...c,children:i})},pre({children:n}){const i=p.Children.toArray(n),c=i.length===1?i[0]:null;if(ve(c))return u.jsx(u.Fragment,{children:n});const l=Re(c);return l?u.jsx(k,{language:l.language||"text",code:l.code,className:"my-3",highlight:r}):u.jsx("pre",{className:h("my-3 overflow-x-auto rounded-lg border border-border/60 bg-muted/35","p-3 font-mono text-[0.8125rem] leading-snug text-foreground/90","whitespace-pre [overflow-wrap:normal]"),children:n})},a({href:n,children:i,...c}){const l=Se(n);if(l){const s=C(i).trim();return u.jsx(T,{path:s||l,tooltipPath:l,previewPath:l,onOpen:a})}return Fe(n)?u.jsx(u.Fragment,{children:i}):u.jsx("a",{href:n,target:"_blank",rel:"noreferrer noopener",className:"text-blue-500 underline underline-offset-2 hover:text-blue-600 dark:text-blue-300 dark:hover:text-blue-200",...c,children:i})},li({children:n,className:i}){const c=Ee(n);return c?u.jsx("li",{className:h("list-none pl-0",i),children:u.jsx(Ne,{link:c})}):u.jsx("li",{className:i,children:n})},input({type:n,checked:i}){return n!=="checkbox"?null:u.jsx("span",{"aria-hidden":!0,"data-testid":"markdown-task-checkbox",className:h("mr-2 inline-grid h-4 w-4 translate-y-[2px] place-items-center rounded-[4px]","border border-border/70 bg-muted/55 text-background",i&&"border-foreground/55 bg-foreground/65"),children:i?u.jsx(_,{className:"h-3 w-3 stroke-[3]"}):null})},mark({children:n}){return u.jsx("mark",{className:"rounded-[5px] bg-yellow-200/75 px-1 py-0.5 text-inherit dark:bg-yellow-300/25",children:n})},sub({children:n}){return u.jsx("sub",{className:"text-[0.72em] leading-none",children:n})},sup({children:n}){return u.jsx("sup",{className:"text-[0.72em] leading-none",children:n})},details({children:n}){return u.jsx("details",{className:"my-3 rounded-xl border border-border/65 bg-muted/25 px-4 py-3 open:pb-4",children:n})},summary({children:n}){return u.jsx("summary",{className:"cursor-pointer select-none text-sm font-medium text-foreground/88 marker:text-muted-foreground",children:n})},img({src:n,alt:i,node:c,className:l,...s}){const d=typeof n=="string"?n:"";if(!d)return null;const g=typeof i=="string"?i:"",b=xe(d,g);return u.jsx(H,{attachment:{kind:b,url:d,name:g},inline:!0})}}),[r,a]);return u.jsx("div",{className:h("markdown-content prose max-w-none dark:prose-invert","prose-headings:mt-4 prose-headings:mb-2 prose-headings:font-semibold prose-headings:tracking-tight","prose-h1:text-lg prose-h2:text-base prose-h3:text-sm prose-h4:text-[13px]","prose-p:my-2","prose-ul:my-2 prose-ol:my-2 prose-li:my-0.5","prose-blockquote:my-3 prose-blockquote:border-l-2 prose-blockquote:font-normal","prose-blockquote:not-italic prose-blockquote:text-foreground/80","prose-a:text-blue-500 prose-a:underline-offset-2 hover:prose-a:text-blue-600 dark:prose-a:text-blue-300 dark:hover:prose-a:text-blue-200","prose-hr:my-6","prose-pre:my-0 prose-pre:bg-transparent prose-pre:p-0","prose-code:before:content-none prose-code:after:content-none prose-code:font-normal","prose-table:my-3 prose-th:text-left prose-th:font-medium",t),style:{lineHeight:"var(--cjk-line-height)"},children:u.jsx(P,{remarkPlugins:ke,rehypePlugins:we,components:o,children:e})})}export{Pe as default}; diff --git a/webui/dist/assets/index-Ds4APFvF.js b/webui/dist/assets/index-Tf_JW3Nl.js similarity index 97% rename from webui/dist/assets/index-Ds4APFvF.js rename to webui/dist/assets/index-Tf_JW3Nl.js index d816365..132828c 100644 --- a/webui/dist/assets/index-Ds4APFvF.js +++ b/webui/dist/assets/index-Tf_JW3Nl.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/syntax-highlight-CQw1bBY6.js","assets/markdown-vendor-BC7Vi29N.js","assets/katex-BSBacQyE.js","assets/katex-wklAmtGL.css","assets/MarkdownTextRenderer-CE8hfq6X.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/syntax-highlight-CQw1bBY6.js","assets/markdown-vendor-BC7Vi29N.js","assets/katex-BSBacQyE.js","assets/katex-wklAmtGL.css","assets/MarkdownTextRenderer-CTM5M1NW.js"])))=>i.map(i=>d[i]); var PS=Object.defineProperty;var TS=(e,t,n)=>t in e?PS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $e=(e,t,n)=>TS(e,typeof t!="symbol"?t+"":t,n);import{j as s}from"./markdown-vendor-BC7Vi29N.js";import{r as u,g as RS,R as wm,a as Pa,_ as $l}from"./syntax-highlight-CQw1bBY6.js";import"./katex-BSBacQyE.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(a){if(a.ep)return;a.ep=!0;const o=n(a);fetch(a.href,o)}})();var Xd={},Vx={exports:{}},In={},Kx={exports:{}},Gx={};/** * @license React * scheduler.production.min.js @@ -536,7 +536,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert- `)||/^[a-z][a-z0-9+.-]*:\/\//i.test(t)||F4(t)||!/[\\/]/.test(t)&&!/^(dockerfile|makefile|readme|package-lock\.json)$/i.test(t))return!1;const n=t.replace(/\\/g,"/"),r=n.split("/").filter(Boolean).pop()??n;return!r||r==="."||r===".."?!1:/^(dockerfile|makefile|readme|package-lock\.json)$/i.test(r)?!0:/\.[a-z0-9][a-z0-9_-]{0,12}$/i.test(r)}function F4(e){return/[*?[\]{}]/.test(e.trim())}function sC(e){const t=e.replace(/\\/g,"/"),n=t.lastIndexOf("/");return n<0?{directory:"",name:e}:{directory:t.slice(0,n+1),name:t.slice(n+1)||t}}function z4(e){const t=e.toLowerCase(),n=t.split(/[\\/]/).pop()??t,r=n.includes(".")?n.split(".").pop()??"":"";if(n==="dockerfile")return"default";switch(r){case"py":case"pyi":return"python";case"jsx":case"tsx":return"react";case"js":case"mjs":case"cjs":return"javascript";case"ts":case"mts":case"cts":return"typescript";case"html":case"htm":return"html";case"css":case"scss":case"sass":return"css";case"json":case"jsonl":return"json";case"md":case"mdx":return"markdown";case"ipynb":return"notebook";default:return"default"}}function $4({kind:e}){if(e==="python")return s.jsxs("svg",{"aria-hidden":!0,className:"h-[1em] w-[1em] shrink-0 translate-y-[0.12em]",viewBox:"0 0 24 24",children:[s.jsx("path",{d:"M11.9 2.3c-3 0-4.5.8-4.5 2.3v2.1h4.8v.8H5.5C4 7.5 3 8.8 3 10.8v2.1c0 1.8 1.1 3 2.7 3h1.6v-2.3c0-1.7 1.4-3.1 3.1-3.1h4.2c1.3 0 2.3-1 2.3-2.3V4.6c0-1.4-1.5-2.3-4.6-2.3h-.4Z",fill:"#3776AB"}),s.jsx("path",{d:"M12.1 21.7c3 0 4.5-.8 4.5-2.3v-2.1h-4.8v-.8h6.7c1.5 0 2.5-1.3 2.5-3.3v-2.1c0-1.8-1.1-3-2.7-3h-1.6v2.3c0 1.7-1.4 3.1-3.1 3.1H9.4c-1.3 0-2.3 1-2.3 2.3v3.6c0 1.4 1.5 2.3 4.6 2.3h.4Z",fill:"#FFD43B"}),s.jsx("circle",{cx:"9",cy:"5.1",r:"0.8",fill:"#fff"}),s.jsx("circle",{cx:"15",cy:"18.9",r:"0.8",fill:"#5C3B00",opacity:"0.85"})]});if(e==="react")return s.jsxs("svg",{"aria-hidden":!0,className:"h-[0.92em] w-[0.92em] shrink-0 translate-y-[0.11em] text-sky-500 dark:text-sky-300",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("circle",{cx:"12",cy:"12",r:"1.9",fill:"currentColor",stroke:"none"}),s.jsx("ellipse",{cx:"12",cy:"12",rx:"9",ry:"3.7"}),s.jsx("ellipse",{cx:"12",cy:"12",rx:"9",ry:"3.7",transform:"rotate(60 12 12)"}),s.jsx("ellipse",{cx:"12",cy:"12",rx:"9",ry:"3.7",transform:"rotate(120 12 12)"})]});if(e==="default")return s.jsxs("svg",{"aria-hidden":!0,className:"h-[0.92em] w-[0.92em] shrink-0 translate-y-[0.11em] text-sky-500 dark:text-sky-300",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7z"}),s.jsx("path",{d:"M14 2v5h5"})]});const t=U4(e);return s.jsxs("svg",{"aria-hidden":!0,className:"h-[0.96em] w-[0.96em] shrink-0 translate-y-[0.12em] text-sky-500 dark:text-sky-300",viewBox:"0 0 24 24",fill:"none",children:[s.jsx("path",{d:"M7 3.5h6.6L18 7.9V19a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19V5a1.5 1.5 0 0 1 1.5-1.5Z",fill:"currentColor",opacity:"0.12"}),s.jsx("path",{d:"M13.5 3.75V8h4.25M7 3.5h6.6L18 7.9V19a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19V5a1.5 1.5 0 0 1 1.5-1.5Z",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),s.jsx("text",{x:"12",y:"15.7",textAnchor:"middle",fill:"currentColor",fontSize:t.length>1?"5.8":"7.2",fontWeight:"800",letterSpacing:"-0.2",children:t})]})}function U4(e){switch(e){case"css":return"#";case"html":return"H";case"javascript":return"JS";case"json":return"{}";case"markdown":return"M";case"notebook":return"N";case"python":return"PY";case"typescript":return"TS";default:return""}}function B4(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(hover: hover) and (pointer: fine)").matches}function H4({sessionKey:e,path:t,token:n,desktopWidth:r=544,isClosing:a=!1,onResizeStart:o,onClose:i}){const{t:l}=se(),[c,d]=u.useState({status:"loading"}),[p,m]=u.useState(!1),[f,h]=u.useState(B4);u.useEffect(()=>{const j=window.requestAnimationFrame(()=>m(!0));return()=>window.cancelAnimationFrame(j)},[]),u.useEffect(()=>{if(typeof window.matchMedia!="function")return;const j=window.matchMedia("(hover: hover) and (pointer: fine)"),N=()=>h(j.matches);return N(),typeof j.addEventListener=="function"?(j.addEventListener("change",N),()=>j.removeEventListener("change",N)):(j.addListener(N),()=>j.removeListener(N))},[]),u.useEffect(()=>{let j=!1;return d({status:"loading"}),gL(n,e,t).then(N=>{j||d({status:"ready",payload:N})}).catch(N=>{if(j)return;const P=N instanceof os?N.status===404&&/API route not found/i.test(N.message)?l("filePreview.routeMissing",{defaultValue:"File preview needs the latest gateway. Restart nanobot gateway and try again."}):N.message:l("filePreview.failed",{defaultValue:"Could not preview this file."});d({status:"error",message:P})}),()=>{j=!0}},[t,e,l,n]);const y=c.status==="ready"?c.payload.display_path:t,x=c.status==="ready"?c.payload.path:y,b=x.replace(/\\/g,"/"),v=b.startsWith("/"),{name:g}=sC(y),w=u.useMemo(()=>b.split("/").filter(Boolean),[b]),k=u.useMemo(()=>w.length>2?w.slice(-2):w,[w]),C=w.length>k.length;return s.jsx("aside",{"aria-label":l("filePreview.aria",{defaultValue:"File preview"}),style:{"--file-preview-width":`${r}px`,"--file-preview-slot-width":!p||a?"0px":`${r}px`},className:A("absolute inset-y-0 right-0 z-30 w-[min(100vw,var(--file-preview-slot-width))] overflow-hidden","transition-[width] duration-300 ease-out will-change-[width]","md:relative md:z-auto md:w-[var(--file-preview-slot-width)] md:min-w-0 md:shrink-0",a&&"pointer-events-none"),"data-testid":"file-preview-panel","data-file-preview-panel":!0,children:s.jsxs("div",{className:A("absolute inset-y-0 right-0 flex w-[min(100vw,var(--file-preview-width))] flex-col overflow-hidden pb-[env(safe-area-inset-bottom)] md:w-[var(--file-preview-width)] md:pb-0","border-l border-border/70 bg-background shadow-2xl md:shadow-none","transition-[opacity,transform] duration-300 ease-out will-change-transform",!p||a?"translate-x-full opacity-0":"translate-x-0 opacity-100","motion-reduce:translate-x-0"),children:[o?s.jsx("button",{type:"button","aria-label":l("filePreview.resize",{defaultValue:"Resize file preview"}),className:A("group absolute inset-y-0 left-0 z-20 hidden w-3 -translate-x-1/2 cursor-col-resize touch-none md:flex","items-stretch justify-center focus-visible:outline-none"),onPointerDown:o,children:s.jsx("span",{"aria-hidden":!0,className:A("h-full w-px bg-foreground/25 opacity-0 transition-opacity","group-hover:opacity-100 group-focus-visible:bg-ring group-focus-visible:opacity-100")})}):null,s.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[s.jsx("div",{className:"flex h-12 shrink-0 items-center gap-2 border-b border-border/60 px-3",children:f?s.jsxs("div",{className:A("group inline-flex max-w-full min-w-0 items-center gap-2 rounded-[12px]","bg-muted/70 px-2.5 py-1.5 text-sm font-medium"),title:g||y,children:[s.jsxs("button",{type:"button",onClick:i,className:A("relative inline-flex h-5 w-5 shrink-0 items-center justify-center overflow-hidden rounded-full","text-muted-foreground/75 transition-[background-color,color,opacity] duration-150 ease-out","group-hover:bg-foreground group-hover:text-background group-hover:opacity-100","group-focus-within:bg-foreground group-focus-within:text-background","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"aria-label":l("filePreview.close",{defaultValue:"Close file preview"}),children:[s.jsx(Qj,{className:A("absolute h-4 w-4 transition-all duration-150 ease-out","opacity-100 group-hover:scale-75 group-hover:opacity-0","group-focus-within:scale-75 group-focus-within:opacity-0"),"aria-hidden":!0}),s.jsx(vr,{className:A("absolute h-3.5 w-3.5 scale-75 opacity-0 transition-all duration-150 ease-out","group-hover:scale-100 group-hover:opacity-100","group-focus-within:scale-100 group-focus-within:opacity-100"),"aria-hidden":!0})]}),s.jsx("span",{className:"min-w-0 truncate",children:g||y})]}):s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",onClick:i,className:A("inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-full","text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"aria-label":l("filePreview.close",{defaultValue:"Close file preview"}),children:s.jsx(vr,{className:"h-5 w-5","aria-hidden":!0})}),s.jsx("span",{className:"min-w-0 truncate text-sm font-medium",children:g||y})]})}),s.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[s.jsx("div",{className:A("flex min-h-10 shrink-0 items-center gap-1.5 overflow-hidden","border-b border-border/45 px-4 text-[13px] text-muted-foreground"),title:x,children:s.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[C?s.jsx("span",{className:"shrink-0 text-muted-foreground/55",children:"..."}):v?s.jsx("span",{className:"shrink-0 text-muted-foreground/55",children:"/"}):null,k.length>0?k.map((j,N)=>s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[N>0||C||v?s.jsx(xr,{className:"h-3 w-3 shrink-0 text-muted-foreground/40","aria-hidden":!0}):null,s.jsx("span",{className:A("min-w-0 truncate",N===k.length-1?"font-medium text-foreground":"max-w-[42vw] shrink text-muted-foreground/76"),children:j})]},`${j}-${N}`)):s.jsx("span",{className:"truncate",children:x})]})}),s.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:c.status==="loading"?s.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[s.jsx(vt,{className:"h-4 w-4 animate-spin","aria-hidden":!0}),l("filePreview.loading",{defaultValue:"Loading preview..."})]}):c.status==="error"?s.jsx("div",{className:"flex h-full items-center justify-center px-8 text-center text-sm text-muted-foreground",children:s.jsxs("div",{className:"max-w-sm",children:[s.jsx(ja,{className:"mx-auto mb-3 h-5 w-5 text-muted-foreground/70","aria-hidden":!0}),s.jsx("p",{children:c.message})]})}):s.jsxs("div",{className:"min-h-full",children:[c.payload.truncated?s.jsx("div",{className:"mx-4 mt-3 rounded-md border border-amber-500/25 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-200",children:l("filePreview.truncated",{defaultValue:"Preview is truncated because this file is large."})}):null,s.jsx(O4,{language:c.payload.language,code:c.payload.content,chrome:"none",showLineNumbers:!0,wrapLongLines:!1,className:"min-h-full"})]})})]})]})]})})}function iC(e){let t=0;return e.flatMap(n=>{if(n.role!=="user")return[];const r={id:n.id,label:W4(n.content,t),preview:q4(n.content,t),createdAt:n.createdAt,index:t};return t+=1,[r]})}function W4(e,t){const n=e.replace(/\s+/g," ").trim();return n?n.length>80?`${n.slice(0,77)}...`:n:`Prompt ${t+1}`}function q4(e,t){const n=e.replace(/\n{3,}/g,` `).trim();return n?n.length>320?`${n.slice(0,317)}...`:n:`Prompt ${t+1}`}function hm(e,t){if(!e||!t)return;const n=ui(e,t);n&&e.scrollTo({top:Math.max(0,Zf(e,n)-16),behavior:"smooth"})}function ui(e,t){const n=e.querySelectorAll("[data-user-prompt-id]");return Array.from(n).find(r=>r.dataset.userPromptId===t)??null}function Zf(e,t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return n.top!==0||r.top!==0?r.top-n.top+e.scrollTop:t.offsetTop}function V4({messages:e,onJumpToPrompt:t}){const{i18n:n,t:r}=se(),a=u.useMemo(()=>iC(e),[e]),[o,i]=u.useState(!1),[l,c]=u.useState(""),d=u.useMemo(()=>{const m=l.trim().toLocaleLowerCase();return m?a.filter(f=>`${f.label} -${f.preview}`.toLocaleLowerCase().includes(m)):a},[a,l]);if(a.length===0)return null;const p=m=>{i(!1),t(m)};return s.jsxs(s.Fragment,{children:[s.jsx(fe,{type:"button",variant:"ghost",size:"icon",className:A("host-no-drag h-8 w-8 rounded-full text-muted-foreground/80","hover:bg-accent/40 hover:text-foreground"),"aria-label":r("thread.promptNavigator.open"),onClick:()=>i(!0),children:s.jsx(o2,{className:"h-4 w-4"})}),s.jsx(Vf,{open:o,onOpenChange:i,children:s.jsxs(_u,{side:"right","aria-describedby":void 0,className:"w-[min(92vw,24rem)] gap-0 p-0 sm:max-w-[24rem]",children:[s.jsxs("div",{className:"border-b px-5 pb-4 pt-5",children:[s.jsx(Pu,{className:"text-base font-medium",children:r("thread.promptNavigator.title")}),s.jsxs("div",{className:"relative mt-4",children:[s.jsx(It,{"aria-hidden":!0,className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{value:l,onChange:m=>c(m.target.value),"aria-label":r("thread.promptNavigator.search"),placeholder:r("thread.promptNavigator.search"),className:A("h-10 w-full rounded-full border border-border bg-background pl-9 pr-3 text-sm","outline-none transition focus:border-ring focus:ring-2 focus:ring-ring/20")})]})]}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 py-2",children:d.length>0?s.jsx("div",{className:"space-y-1",children:d.map(m=>s.jsx(K4,{locale:n.resolvedLanguage||n.language,prompt:m,onJump:p},m.id))}):s.jsx("div",{className:"px-3 py-10 text-center text-sm text-muted-foreground",children:r("thread.promptNavigator.noResults")})})]})})]})}function K4({locale:e,onJump:t,prompt:n}){const{t:r}=se(),a=Ur(n.createdAt,e);return s.jsxs("button",{type:"button",className:A("w-full rounded-xl px-3 py-3 text-left transition","hover:bg-accent focus-visible:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30"),"aria-label":r("thread.promptNavigator.jumpTo",{label:n.label}),onClick:()=>t(n.id),children:[s.jsx("div",{className:"max-h-20 overflow-hidden whitespace-pre-wrap break-words text-sm leading-5 text-foreground",children:n.preview}),a?s.jsx("div",{className:"mt-1 text-[10px] leading-4 text-muted-foreground/75",children:a}):null]})}const G4=3e3;function Y4(e,t,n){const[r,a]=u.useState([]),[o,i]=u.useState(!1),[l,c]=u.useState(!1),[d,p]=u.useState(()=>Date.now());return u.useEffect(()=>{if(!e)return;let m=!1,f=!1;const h=async(b=!1)=>{b&&(i(!0),c(!1),a([]));try{const v=await b1(t,n);if(m)return;a(v.jobs),c(!1),f=!0}catch{!m&&!f&&c(!0)}finally{!m&&b&&i(!1)}};h(!0);const y=window.setInterval(()=>void h(!1),G4),x=()=>{document.visibilityState!=="hidden"&&h(!1)};return window.addEventListener("focus",x),document.addEventListener("visibilitychange",x),()=>{m=!0,window.clearInterval(y),window.removeEventListener("focus",x),document.removeEventListener("visibilitychange",x)}},[e,n,t]),u.useEffect(()=>{if(!e)return;p(Date.now());const m=window.setInterval(()=>p(Date.now()),1e3);return()=>window.clearInterval(m)},[e]),{jobs:r,loading:o,loadFailed:l,now:d}}const Q4=[[60,"second"],[60,"minute"],[24,"hour"],[7,"day"],[4.345,"week"],[12,"month"],[Number.POSITIVE_INFINITY,"year"]];function X4({sessionKey:e,token:t,title:n}){const{t:r}=se("common"),[a,o]=u.useState(!1),{jobs:i,loading:l,loadFailed:c,now:d}=Y4(a,t,e),p=l?s.jsxs("div",{className:"flex items-center gap-2 rounded-[16px] bg-muted/45 px-3 py-3 text-[12.5px] text-muted-foreground",children:[s.jsx(p2,{className:"h-3.5 w-3.5 animate-spin"}),r("thread.sessionInfo.loading")]}):c?s.jsxs("div",{className:"flex items-center gap-2 rounded-[16px] bg-destructive/10 px-3 py-3 text-[12.5px] text-destructive",children:[s.jsx(ja,{className:"h-3.5 w-3.5"}),r("thread.sessionInfo.loadFailed")]}):i.length?s.jsx("div",{className:"space-y-1.5",children:i.map(m=>s.jsx(J4,{job:m,now:d},m.id))}):s.jsx("div",{className:"rounded-[16px] bg-muted/35 px-3 py-3 text-[12.5px] leading-relaxed text-muted-foreground",children:r("thread.sessionInfo.empty")});return s.jsxs(mn,{modal:!1,open:a,onOpenChange:o,children:[s.jsx(fn,{asChild:!0,children:s.jsx(fe,{variant:"ghost",size:"icon","aria-label":r("thread.header.sessionInfo"),className:A("host-no-drag h-8 w-8 rounded-full text-muted-foreground/85","hover:bg-accent/40 hover:text-foreground"),children:s.jsx(a2,{className:"h-4 w-4 stroke-[1.75]"})})}),s.jsx(an,{align:"end",sideOffset:8,className:"w-[min(23rem,calc(100vw-1.5rem))] rounded-[24px] p-0",children:s.jsxs("div",{className:"space-y-3 px-4 py-3.5",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"text-[12px] font-normal text-muted-foreground/75",children:r("thread.sessionInfo.title")}),s.jsx("div",{className:"mt-0.5 truncate text-[14px] font-medium text-foreground",children:n||r("thread.sessionInfo.untitled")})]}),s.jsx("div",{className:"h-px bg-border/45"}),s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx(Wj,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground/80"}),s.jsx("span",{className:"truncate text-[13px] font-medium text-foreground",children:r("thread.sessionInfo.automations")})]}),s.jsx("span",{className:"rounded-full bg-muted/70 px-2 py-0.5 text-[11px] text-muted-foreground",children:r("thread.sessionInfo.count",{count:i.length})})]}),p]})})]})}function J4({job:e,now:t}){const{t:n}=se("common"),r=Z4(e,n),a=eO(e,n,t),o=e.enabled?e.state.last_status==="error"?"bg-destructive":"bg-emerald-500":"bg-muted-foreground/35";return s.jsx("div",{className:"rounded-[16px] px-3 py-2.5 transition-colors hover:bg-muted/40",children:s.jsxs("div",{className:"flex items-start gap-2.5",children:[s.jsx("span",{className:A("mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full",o)}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx("span",{className:"truncate text-[13px] font-medium text-foreground",children:e.name}),e.enabled?null:s.jsx("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10.5px] text-muted-foreground",children:n("thread.sessionInfo.disabled")})]}),s.jsx("div",{className:"mt-1 line-clamp-2 text-[12px] leading-snug text-muted-foreground",children:e.payload.message}),s.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-[11.5px] text-muted-foreground/80",children:[s.jsx("span",{children:r}),s.jsx("span",{"aria-hidden":!0,children:"·"}),s.jsx("span",{title:a.title,children:a.label})]})]})]})})}function Z4(e,t){const n=bs();return e.schedule.kind==="at"&&e.schedule.at_ms?t("thread.sessionInfo.schedule.at",{time:Ur(e.schedule.at_ms,n)}):e.schedule.kind==="every"&&e.schedule.every_ms?t("thread.sessionInfo.schedule.every",{duration:nO(e.schedule.every_ms,n)}):e.schedule.kind==="cron"&&e.schedule.expr?e.schedule.tz?t("thread.sessionInfo.schedule.cronWithTz",{expr:e.schedule.expr,tz:e.schedule.tz}):t("thread.sessionInfo.schedule.cron",{expr:e.schedule.expr}):t("thread.sessionInfo.schedule.unknown")}function eO(e,t,n){const r=bs();if(!e.enabled)return{label:t("thread.sessionInfo.next.disabled"),title:""};if(e.state.pending)return{label:t("thread.sessionInfo.next.pending"),title:""};const a=e.state.next_run_at_ms;return a?{label:t("thread.sessionInfo.next.label",{time:tO(a,n,r)}),title:Ur(a,r)}:{label:t("thread.sessionInfo.next.none"),title:""}}function tO(e,t,n){let r=(e-t)/1e3;const a=new Intl.RelativeTimeFormat(n,{numeric:"auto"});for(const[o,i]of Q4){if(Math.abs(r)=a&&e%a===0)return new Intl.NumberFormat(t,{style:"unit",unit:r,unitDisplay:"long",maximumFractionDigits:0}).format(e/a);return new Intl.NumberFormat(t,{style:"unit",unit:"minute",unitDisplay:"long",maximumFractionDigits:1}).format(e/6e4)}const lC=()=>$l(()=>import("./MarkdownTextRenderer-CE8hfq6X.js"),__vite__mapDeps([4,1,0,2,3])),rO=u.lazy(lC),aO=u.memo(function({source:t,className:n,highlightCode:r,onOpenFilePreview:a}){return s.jsx(rO,{className:n,highlightCode:r,onOpenFilePreview:a,children:t})}),oO=80,sO=140,iO=220,lO=16e3;class cO extends u.Component{constructor(){super(...arguments);$e(this,"state",{failed:!1})}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function Ou(){lC()}function Fu({children:e,className:t,streaming:n=!1,onOpenFilePreview:r}){const a=uO(e,n),o=n?a.length<=lO:a===e;u.useEffect(()=>{n&&Ou()},[n]);const i=s.jsx("div",{className:A("whitespace-pre-wrap break-words leading-relaxed text-foreground/92",t),children:a});return s.jsx(cO,{fallback:i,children:s.jsx(u.Suspense,{fallback:i,children:s.jsx(aO,{source:a,className:t,highlightCode:o,onOpenFilePreview:r})})})}function uO(e,t){const[n,r]=u.useState(e),a=u.useRef(e),o=u.useRef(e),i=u.useRef(null),l=u.useCallback(()=>{i.current!==null&&(window.clearTimeout(i.current),i.current=null)},[]),c=u.useCallback((p,m)=>{if(o.current!==p){if(o.current=p,m){r(p);return}u.startTransition(()=>r(p))}},[]),d=u.useCallback(()=>{i.current===null&&(i.current=window.setTimeout(()=>{i.current=null,c(a.current,!1)},dO(a.current.length)))},[c]);return a.current=e,u.useLayoutEffect(()=>{a.current=e,t||(l(),c(e,!0))},[l,c,e,t]),u.useEffect(()=>{a.current=e,t&&d()},[d,e,t]),u.useEffect(()=>l,[l]),n}function dO(e){return e>24e3?iO:e>8e3?sO:oO}function cC(e){return(e.display_name||e.name).split(/\s+/).filter(Boolean).slice(0,2).map(n=>{var r;return(r=n[0])==null?void 0:r.toUpperCase()}).join("")||e.name.slice(0,2).toUpperCase()}function uC(e){return(e.display_name||e.name).split(/\s+/).filter(Boolean).slice(0,2).map(n=>{var r;return(r=n[0])==null?void 0:r.toUpperCase()}).join("")||e.name.slice(0,2).toUpperCase()}function dC(e,t,n=[]){if(!e||t.length===0&&n.length===0)return e?[{kind:"text",text:e}]:[];const r=new Map(t.filter(d=>d.installed).map(d=>[d.name.toLowerCase(),d])),a=new Map(n.filter(d=>d.installed&&d.configured).map(d=>[d.name.toLowerCase(),d]));if(r.size===0&&a.size===0)return[{kind:"text",text:e}];const o=[],i=/(^|[\s([{])@([a-z0-9_-]+)\b/gi;let l=0,c;for(;(c=i.exec(e))!==null;){const d=c[1]??"",p=c[2]??"",m=p.toLowerCase(),f=r.get(m),h=f?null:a.get(m);if(!f&&!h)continue;const y=c.index+d.length,x=y+p.length+1;y>l&&o.push({kind:"text",text:e.slice(l,y)}),f?o.push({kind:"cli",text:e.slice(y,x),app:f}):h&&o.push({kind:"mcp",text:e.slice(y,x),preset:h}),l=x}return la.kind==="cli"||a.kind==="mcp")?s.jsx(s.Fragment,{children:r.map((a,o)=>a.kind==="text"?s.jsx("span",{children:a.text},`text-${o}`):a.kind==="cli"?s.jsx(pC,{app:a.app,label:a.text,variant:"message"},`cli-${a.app.name}-${o}`):s.jsx(mC,{preset:a.preset,label:a.text,variant:"message"},`mcp-${a.preset.name}-${o}`))}):s.jsx(s.Fragment,{children:e})}function pC({app:e,label:t,variant:n,isHero:r=!1}){const[a,o]=u.useState(0),i=e.brand_color||"hsl(var(--primary))",l=t.startsWith("@")?t.slice(1):t,d=u.useMemo(()=>ao(e.logo_url),[e.logo_url])[a],p=!!d,m=n==="composer"?"composer":"message";return u.useEffect(()=>o(0),[e.logo_url]),s.jsxs("span",{"data-testid":`${m}-cli-mention-${e.name}`,title:`CLI app: ${e.display_name||e.name}`,className:"relative inline transition-[color,text-shadow] duration-150",style:{color:i,textShadow:`0 0 10px ${fC(i,24)}`},children:[s.jsxs("span",{className:A("relative inline-block",p&&"text-transparent"),style:{lineHeight:"inherit"},children:["@",p?s.jsx("span",{"data-testid":`${m}-cli-mention-logo-${e.name}`,className:A("absolute left-1/2 top-1/2 grid place-items-center overflow-hidden rounded-[3px]","-translate-x-1/2 -translate-y-1/2",r?"h-[0.74em] w-[0.74em]":"h-[0.72em] w-[0.72em]"),children:s.jsx("img",{src:d??"",alt:"",className:"h-full w-full object-contain",onError:()=>o(f=>f+1)})}):null]}),l]})}function mC({preset:e,label:t,variant:n,isHero:r=!1}){const[a,o]=u.useState(0),i=e.brand_color||"hsl(var(--primary))",l=t.startsWith("@")?t.slice(1):t,d=u.useMemo(()=>ao(e.logo_url),[e.logo_url])[a],p=!!d,m=n==="composer"?"composer":"message";return u.useEffect(()=>o(0),[e.logo_url]),s.jsxs("span",{"data-testid":`${m}-mcp-mention-${e.name}`,title:`MCP server: ${e.display_name||e.name}`,className:"relative inline transition-[color,text-shadow] duration-150",style:{color:i,textShadow:`0 0 10px ${fC(i,24)}`},children:[s.jsxs("span",{className:A("relative inline-block",p&&"text-transparent"),style:{lineHeight:"inherit"},children:["@",p?s.jsx("span",{"data-testid":`${m}-mcp-mention-logo-${e.name}`,className:A("absolute left-1/2 top-1/2 grid place-items-center overflow-hidden rounded-[3px]","-translate-x-1/2 -translate-y-1/2",r?"h-[0.74em] w-[0.74em]":"h-[0.72em] w-[0.72em]"),children:s.jsx("img",{src:d??"",alt:"",className:"h-full w-full object-contain",onError:()=>o(f=>f+1)})}):null]}),l]})}function fC(e,t){if(/^#[0-9a-f]{6}$/i.test(e)){const n=Math.round(t/100*255).toString(16).padStart(2,"0");return`${e}${n}`}return`color-mix(in srgb, ${e} ${t}%, transparent)`}function mO({isHero:e,disabled:t,scope:n,defaultScope:r,controls:a,error:o,onChange:i}){const{t:l}=se(),[c,d]=u.useState(!1),[p,m]=u.useState(""),[f,h]=u.useState(null),[y,x]=u.useState(!1),b=z5(n,r),v=b?b.project_name||Vo(b.project_path):l("thread.composer.workspace.projectPlaceholder"),g=e&&!!r&&!!i&&(a==null?void 0:a.can_change_project)!==!1,w=ka(),k=!!w;u.useEffect(()=>{c&&(m((b==null?void 0:b.project_path)??""),h(null))},[b==null?void 0:b.project_path,c]),u.useEffect(()=>{o&&g&&d(!0)},[o,g]);const C=u.useCallback((N,P)=>{const L=n??r,_=N.trim();if(!(!L||!i)){if(!_||!F5(_)){h(l("workspace.dialog.absolutePathRequired"));return}i({...L,project_path:_,project_name:P||Vo(_),restrict_to_workspace:L.access_mode==="restricted"}),h(null),d(!1)}},[r,i,n,l]),j=u.useCallback(async()=>{if(!(!w||t)){x(!0);try{const N=await w.pickFolder();N&&C(N)}catch(N){h(N.message)}finally{x(!1)}}},[C,t,w]);return!g||!r||!i?null:k?s.jsxs("div",{className:"flex min-w-0 items-center rounded-b-[28px] border-t border-border/25 bg-muted/60 px-3 py-1.5 dark:bg-white/[0.055] sm:px-4",children:[s.jsxs("button",{type:"button",disabled:t||y,"aria-label":l("thread.composer.workspace.projectAria"),title:b==null?void 0:b.project_path,onClick:()=>void j(),className:A("inline-flex h-7 max-w-full items-center gap-2 rounded-full px-2.5 sm:max-w-[18rem]","text-[12px] font-medium text-muted-foreground/90 transition-colors","hover:bg-background/70 hover:text-foreground disabled:pointer-events-none disabled:opacity-55",b&&"text-foreground/82"),children:[s.jsx(ai,{className:A("h-3.5 w-3.5 shrink-0",b&&"text-primary")}),s.jsx("span",{className:"truncate",children:v})]}),f||o?s.jsx("span",{role:"alert",className:"ml-2 min-w-0 truncate text-[11.5px] font-medium text-destructive",children:f??o}):null]}):s.jsx("div",{className:"flex min-w-0 items-center rounded-b-[28px] border-t border-border/25 bg-muted/60 px-3 py-1.5 dark:bg-white/[0.055] sm:px-4",children:s.jsxs(mn,{open:c,onOpenChange:d,children:[s.jsx(fn,{asChild:!0,children:s.jsxs("button",{type:"button",disabled:t,"aria-label":l("thread.composer.workspace.projectAria"),className:A("inline-flex h-7 max-w-full items-center gap-2 rounded-full px-2.5 sm:max-w-[18rem]","text-[12px] font-medium text-muted-foreground/90 transition-colors","hover:bg-background/70 hover:text-foreground disabled:pointer-events-none disabled:opacity-55",b&&"text-foreground/82"),children:[s.jsx(ai,{className:A("h-3.5 w-3.5 shrink-0",b&&"text-primary")}),s.jsx("span",{className:"truncate",children:v}),s.jsx(rr,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]})}),s.jsxs(an,{align:"start",side:"bottom",sideOffset:8,className:"w-[min(25rem,calc(100vw-2rem))] rounded-[22px]",children:[s.jsxs(ut,{onSelect:()=>C(r.project_path,r.project_name),className:"flex min-h-[48px] cursor-default gap-3 rounded-[16px] px-3 py-2.5 focus:bg-muted/55",children:[s.jsx("span",{className:"grid h-8 w-8 shrink-0 place-items-center rounded-[12px] bg-muted text-foreground/80",children:s.jsx(ai,{className:"h-4 w-4"})}),s.jsxs("span",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"block truncate text-[13px] font-semibold text-foreground",children:l("workspace.dialog.defaultProject")}),s.jsx("span",{className:"block truncate text-[11.5px] text-muted-foreground",children:c1(r.project_path)})]}),b?null:s.jsx(jt,{className:"h-4 w-4 text-foreground/80"})]}),s.jsx("div",{className:"my-1 h-px bg-border/45"}),s.jsxs("div",{className:"space-y-1.5 px-1.5 py-1.5",onKeyDown:N=>{N.key!=="Escape"&&N.stopPropagation()},children:[s.jsxs("form",{className:"flex items-center gap-2",onSubmit:N=>{N.preventDefault(),C(p)},children:[s.jsx(qe,{value:p,disabled:t,onChange:N=>{m(N.target.value),h(null)},placeholder:l("workspace.dialog.manualPlaceholder"),"aria-label":l("workspace.dialog.manual"),className:A("h-9 rounded-full border-border/55 bg-background/80 px-3 text-[12.5px]","focus-visible:ring-1 focus-visible:ring-foreground/10 focus-visible:ring-offset-0")}),s.jsx(fe,{type:"submit",disabled:t||!p.trim(),className:"h-9 shrink-0 rounded-full px-3 text-[12px]",children:l("workspace.dialog.usePath")})]}),f||o?s.jsx("p",{role:"alert",className:"px-1 text-[11.5px] font-medium text-destructive",children:f??o}):null]})]})]})})}function fO({scope:e,disabled:t,canUseFullAccess:n,isHero:r,onChange:a}){const{t:o}=se(),i=e.access_mode,l=i==="full",c=d=>{d==="full"&&!n||d!==i&&(a==null||a(O5(e,d)))};return s.jsxs(mn,{children:[s.jsx(fn,{asChild:!0,disabled:t||!a,children:s.jsxs(fe,{type:"button",variant:"ghost","aria-label":o("thread.composer.workspace.accessAria"),className:A("max-w-[min(12.5rem,42vw)] rounded-[10px] border border-transparent font-semibold shadow-none",r?"h-8 px-2.5 text-[12px]":"h-9 px-3 text-[12.5px]",l?"bg-transparent text-orange-600 hover:bg-orange-500/8 dark:text-orange-300 dark:hover:bg-orange-400/10":"bg-transparent text-muted-foreground hover:bg-foreground/[0.045] hover:text-foreground dark:hover:bg-white/[0.06]"),children:[l?s.jsx(qp,{className:A("mr-1.5 shrink-0","h-3.5 w-3.5")}):s.jsx(pg,{className:A("mr-1.5 shrink-0","h-3.5 w-3.5")}),s.jsx("span",{className:"truncate",children:o(l?"thread.composer.workspace.full":"thread.composer.workspace.default")}),s.jsx(rr,{className:A("ml-1.5 shrink-0","h-3 w-3")})]})}),s.jsxs(an,{align:"start",className:"w-56",children:[s.jsx(Vv,{icon:s.jsx(pg,{className:"h-4 w-4"}),label:o("thread.composer.workspace.default"),selected:i==="restricted",onSelect:()=>c("restricted")}),s.jsx(Vv,{icon:s.jsx(qp,{className:"h-4 w-4"}),label:o("thread.composer.workspace.full"),selected:i==="full",disabled:!n,warning:!0,onSelect:()=>c("full")})]})]})}function hO({knowledgeBases:e,selectedKnowledgeBaseId:t,disabled:n,onChange:r}){const{t:a}=se(),o=e.find(l=>l.knowledge_base_id===t)??null,i=(o==null?void 0:o.title)||(o==null?void 0:o.knowledge_base_id)||a("thread.composer.knowledgeBase.all",{defaultValue:"Knowledge Base"});return s.jsxs(mn,{children:[s.jsx(fn,{asChild:!0,disabled:n||!r,children:s.jsxs(fe,{type:"button",variant:"ghost","aria-label":a("thread.composer.knowledgeBase.aria",{defaultValue:"Select knowledge base"}),className:"h-8 max-w-[min(14rem,42vw)] rounded-[10px] border border-transparent px-2.5 text-[12px] font-semibold text-muted-foreground shadow-none hover:bg-foreground/[0.045] hover:text-foreground dark:hover:bg-white/[0.06]",children:[s.jsx(ri,{className:"mr-1.5 h-3.5 w-3.5 shrink-0"}),s.jsx("span",{className:"truncate",children:i}),s.jsx(rr,{className:"ml-1.5 h-3 w-3 shrink-0"})]})}),s.jsxs(an,{align:"start",className:"w-72",children:[s.jsxs(ut,{onSelect:()=>r==null?void 0:r(null),className:"flex min-h-[42px] items-center gap-3 rounded-xl px-3 text-[13px] font-medium",children:[s.jsx(ri,{className:"h-4 w-4 shrink-0"}),s.jsx("span",{className:"min-w-0 flex-1 truncate",children:a("thread.composer.knowledgeBase.all",{defaultValue:"No knowledge base"})}),t?null:s.jsx(jt,{className:"h-4 w-4 shrink-0"})]}),e.map(l=>s.jsxs(ut,{onSelect:()=>r==null?void 0:r(l.knowledge_base_id),className:"flex min-h-[42px] items-center gap-3 rounded-xl px-3 text-[13px] font-medium",children:[s.jsx(ri,{className:"h-4 w-4 shrink-0"}),s.jsxs("span",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"block truncate",children:l.title||l.knowledge_base_id}),s.jsxs("span",{className:"block truncate text-[11px] text-muted-foreground",children:[l.meeting_count," meetings"]})]}),t===l.knowledge_base_id?s.jsx(jt,{className:"h-4 w-4 shrink-0"}):null]},l.knowledge_base_id))]})]})}function Vv({icon:e,label:t,selected:n,disabled:r,warning:a,onSelect:o}){return s.jsxs(ut,{disabled:r,onSelect:o,className:A("flex h-10 items-center gap-3 rounded-xl px-3 text-[13.5px] font-semibold",a&&"text-orange-600 focus:text-orange-600 dark:text-orange-300 dark:focus:text-orange-300"),children:[s.jsx("span",{className:"grid h-5 w-5 shrink-0 place-items-center text-current","aria-hidden":!0,children:e}),s.jsx("span",{className:"min-w-0 flex-1 truncate",children:t}),n?s.jsx(jt,{className:"h-4 w-4 shrink-0","aria-hidden":!0}):null]})}const hC=6*1024*1024,gO=2048,vO=.85,xO=new Set(["image/jpeg","image/webp"]),Kv=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function yO(e){if(e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e[4]===13&&e[5]===10&&e[6]===26&&e[7]===10)return"image/png";if(e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255)return"image/jpeg";if(e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70&&e[3]===56&&e[5]===97&&(e[4]===55||e[4]===57))return"image/gif";if(e.length>=12){const t=e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70,n=e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80;if(t&&n)return"image/webp"}return null}function gC(e){const t=new Uint8Array(e);let n="";const r=32768;for(let a=0;ahC)return{error:"too_large_after_normalize"};const p=await d.arrayBuffer();return{dataUrl:`data:${n};base64,${gC(p)}`,mime:n,bytes:d.size}}catch{try{r.close()}catch{}return{error:"decode_failed"}}}async function vC(e){const{id:t,file:n}=e,r=n.size;let a;try{a=await n.arrayBuffer()}catch{return{id:t,ok:!1,reason:"io"}}const o=new Uint8Array(a.slice(0,12)),i=yO(o);if(!i)return{id:t,ok:!1,reason:"magic_mismatch"};if(!Kv.has(i))return{id:t,ok:!1,reason:"invalid_mime"};if(n.type&&Kv.has(n.type)&&n.type,r<=hC){const c=`data:${i};base64,${gC(a)}`;return{id:t,ok:!0,dataUrl:c,mime:i,bytes:r,origBytes:r,normalized:!1}}const l=await wO(n,i);return"error"in l?{id:t,ok:!1,reason:l.error}:{id:t,ok:!0,dataUrl:l.dataUrl,mime:l.mime,bytes:l.bytes,origBytes:r,normalized:!0}}typeof self<"u"&&typeof self.importScripts=="function"&&self.addEventListener("message",async e=>{const t=await vC(e.data);self.postMessage(t)});let lr=null,Gv=!1;const Eo=new Map;function kO(){if(Gv)return lr;if(Gv=!0,typeof Worker>"u")return null;try{return lr=new Worker(new URL("/assets/imageEncode.worker-Cs1P3eq4.js",import.meta.url),{type:"module"}),lr.addEventListener("message",e=>{const t=Eo.get(e.data.id);t&&(Eo.delete(e.data.id),t.resolve(e.data))}),lr.addEventListener("error",e=>{for(const[,t]of Eo)t.reject(new Error(`image encoder worker error: ${e.message}`));Eo.clear(),lr==null||lr.terminate(),lr=null}),lr}catch{return lr=null,null}}function CO(){return typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`img-${Date.now()}-${Math.random().toString(36).slice(2)}`}async function SO(e){const t=CO(),n=kO();return n?new Promise((r,a)=>{Eo.set(t,{resolve:r,reject:a});try{n.postMessage({id:t,file:e})}catch(o){Eo.delete(t),a(o instanceof Error?o:new Error(String(o)))}}):vC({id:t,file:e})}const Ko=4,Yv=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function xC(e){const t=/^data:([^;,]+)[;,]/.exec(e);return(t==null?void 0:t[1])||"image/png"}function NO(e,t){const n=xC(e),r=`image.${n.split("/")[1]||"png"}`;try{const[,a=""]=e.split(",",2),o=atob(a),i=new Uint8Array(o.length);for(let l=0;l{t(f=>{const h=f.map(y=>y.id===p?{...y,...m}:y);return n.current=h,h})},[]),a=u.useCallback(p=>{const m=[],f=[];let h=Ko-n.current.length;for(const y of p){if(!Yv.has(y.type)){m.push({file:y,reason:"unsupported_type"});continue}if(h<=0){m.push({file:y,reason:"too_many_images"});continue}h-=1,f.push({id:Qv(),file:y,previewUrl:URL.createObjectURL(y),status:"encoding"})}if(f.length>0){const y=[...n.current,...f];n.current=y,t(y);for(const x of f)queueMicrotask(()=>{SO(x.file).then(b=>{b.ok?r(x.id,{status:"ready",dataUrl:b.dataUrl,encodedBytes:b.bytes,normalized:b.normalized}):r(x.id,{status:"error",error:jO(b.reason)})},()=>{r(x.id,{status:"error",error:"decode_failed"})})})}return{rejected:m}},[r]),o=u.useCallback(p=>{let m=null;return t(f=>{const h=f.findIndex(v=>v.id===p);if(h===-1)return f;const y=f[h];try{URL.revokeObjectURL(y.previewUrl)}catch{}const x=[...f.slice(0,h),...f.slice(h+1)];n.current=x;const b=x[h]??x[h-1];return m=(b==null?void 0:b.id)??null,x}),{nextFocusId:m}},[]),i=u.useCallback(()=>{t(p=>{for(const m of p)try{URL.revokeObjectURL(m.previewUrl)}catch{}return n.current=[],[]})},[]),l=u.useCallback(p=>{const m=p.filter(f=>Yv.has(xC(f.dataUrl))).slice(0,Ko).map(f=>{const h=NO(f.dataUrl,f.name);return{id:Qv(),file:h,previewUrl:f.dataUrl,status:"ready",dataUrl:f.dataUrl,encodedBytes:h.size}});t(f=>{for(const h of f)try{URL.revokeObjectURL(h.previewUrl)}catch{}return n.current=m,m})},[]);u.useEffect(()=>()=>{for(const p of n.current)try{URL.revokeObjectURL(p.previewUrl)}catch{}},[]);const c=e.some(p=>p.status==="encoding"),d=e.length>=Ko;return{images:e,enqueue:a,remove:o,clear:i,restoreReadyImages:l,encoding:c,full:d}}function _O(e){const t=e.clipboardData??e.clipboardData;if(!t)return[];const n=[];for(const r of Array.from(t.items)){if(r.kind!=="file"||!r.type.startsWith("image/"))continue;const a=r.getAsFile();a&&n.push(a)}return n}function PO(e){const t=e.dataTransfer??e.dataTransfer;if(!t)return[];const n=[];for(const r of Array.from(t.files))r.type.startsWith("image/")&&n.push(r);return n}function TO(e){const[t,n]=u.useState(!1),r=u.useRef(0),a=u.useCallback(d=>{const p=_O(d);p.length!==0&&(d.preventDefault(),e(p))},[e]),o=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),r.current+=1,n(!0))},[]),i=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),d.dataTransfer.dropEffect="copy")},[]),l=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),r.current=Math.max(0,r.current-1),r.current===0&&n(!1))},[]),c=u.useCallback(d=>{r.current=0,n(!1);const p=PO(d);p.length!==0&&(d.preventDefault(),e(p))},[e]);return{isDragging:t,onPaste:a,onDragEnter:o,onDragOver:i,onDragLeave:l,onDrop:c}}const RO=12e4,MO=650,EO=1100,IO=140,LO=64,yC=3,Xv=7,DO=34,Go=.018,Jv=Array.from({length:LO},()=>yC),OO=["audio/webm;codecs=opus","audio/webm","audio/mp4","audio/ogg;codecs=opus"];function FO({disabled:e,onClearError:t,onError:n,onTranscript:r,onTranscribeAudio:a}){const o=u.useRef(null),i=u.useRef([]),l=u.useRef(null),c=u.useRef(null),d=u.useRef(0),p=u.useRef(null),m=u.useRef(null),f=u.useRef(null),h=u.useRef(!1),y=u.useRef(!1),x=u.useRef(!1),b=u.useRef(!1),v=u.useRef(null),g=u.useRef(!1),w=u.useRef(!1),k=u.useRef(0),C=u.useRef(!1),j=u.useRef(!1),[N,P]=u.useState("idle"),[L,_]=u.useState(0),[T,R]=u.useState(Jv),D=u.useCallback(()=>xo(m),[]),K=u.useCallback(()=>xo(v),[]),G=u.useCallback(()=>{K(),b.current=!0,v.current=setTimeout(()=>{b.current=!1,v.current=null},500)},[K]),W=u.useCallback(()=>{const O=c.current;c.current=null,O&&(O.frame!==null&&cancelAnimationFrame(O.frame),O.source.disconnect(),O.analyser.disconnect(),O.context.close().catch(()=>{}))},[]),H=u.useCallback(O=>{const te=UO();if(te){W(),R(Jv);try{const ie=new te,ve=ie.createMediaStreamSource(O),me=ie.createAnalyser();me.fftSize=256,me.smoothingTimeConstant=.68,ve.connect(me);const Z={analyser:me,context:ie,data:new Uint8Array(me.fftSize),frame:null,source:ve},ke=()=>{const ye=c.current;if(!ye)return;if(ye.context.state!=="running"){ye.context.resume().catch(()=>{}),ye.frame=requestAnimationFrame(ke);return}ye.analyser.getByteTimeDomainData(ye.data);const be=BO(ye.data);C.current=!0,w.current=!0,k.current=Math.max(k.current,be),be>=Go&&(D(),j.current&&(j.current=!1,t())),R(Ie=>[...Ie.slice(1),HO(be)]),ye.frame=requestAnimationFrame(ke)};c.current=Z,ie.resume().catch(()=>{}),Z.frame=requestAnimationFrame(ke)}catch{W()}}},[D,t,W]),E=u.useCallback(()=>{var O;xo(f),D(),xo(p),W(),(O=l.current)==null||O.getTracks().forEach(te=>te.stop()),l.current=null,o.current=null,y.current=!1,g.current=!1,j.current=!1},[D,W]),F=u.useCallback(()=>{const O=o.current;!O||O.state==="inactive"||O.stop()},[]),X=u.useCallback(()=>{const O=o.current;O&&O.state!=="inactive"?F():y.current&&(x.current=!0)},[F]),Q=u.useCallback(async()=>{var O;if(!(!a||N!=="idle"||y.current)){if(!((O=navigator.mediaDevices)!=null&&O.getUserMedia)||typeof MediaRecorder>"u"){n("unsupported");return}y.current=!0;try{const te=await navigator.mediaDevices.getUserMedia({audio:!0}),ie=new MediaRecorder(te,zO());i.current=[],l.current=te,o.current=ie,d.current=Date.now(),w.current=!1,k.current=0,C.current=!1,j.current=!1,_(0),H(te),ie.ondataavailable=ve=>{ve.data.size>0&&i.current.push(ve.data)},ie.onstop=()=>{const ve=i.current.splice(0),me=Math.max(0,Date.now()-d.current),Z=ie.mimeType||"audio/webm",ke=C.current&&w.current&&k.currenta(ye,{durationMs:me})).then(r).catch(ye=>n(qO(ye))).finally(()=>P("idle"))},ie.start(),P("recording"),t(),p.current=setTimeout(F,RO),m.current=setTimeout(()=>{var me;!(((me=o.current)==null?void 0:me.state)==="recording")||!C.current||!w.current||k.current>=Go||(j.current=!0,n("noInput"))},EO)}catch{E(),P("idle"),n("permission")}}},[E,t,n,a,r,H,N,F]),re=u.useCallback(()=>{x.current=!1,Q().then(()=>{x.current&&(x.current=!1,F())})},[Q,F]),ue=u.useCallback(O=>{if(!(O.pointerType==="mouse"&&O.button!==0)&&!(!a||e||N!=="idle")){xo(f);try{O.currentTarget.setPointerCapture(O.pointerId)}catch{}f.current=setTimeout(()=>{f.current=null,h.current=!0,G(),re()},IO)}},[e,a,re,N,G]),pe=u.useCallback(()=>{const O=h.current;xo(f),O&&(h.current=!1,G(),X())},[X,G]),ce=u.useCallback(()=>{if(b.current){K(),b.current=!1;return}N==="recording"?F():Q()},[K,Q,N,F]),z=u.useCallback(()=>{!a||e||N!=="idle"||g.current||(g.current=!0,re())},[e,a,re,N]),q=u.useCallback(()=>{g.current&&(g.current=!1,X())},[X]);return u.useEffect(()=>{if(N!=="recording"){_(0);return}const O=()=>{_(Math.max(0,Date.now()-d.current))};O();const te=window.setInterval(O,250);return()=>window.clearInterval(te)},[N]),u.useEffect(()=>E,[E]),u.useEffect(()=>()=>K(),[K]),{beginShortcutHold:z,beginPress:ue,buttonDisabled:e||N==="transcribing",elapsedLabel:$O(L),endShortcutHold:q,endPress:pe,handleClick:ce,isRecording:N==="recording",levels:T,state:N}}function xo(e){e.current!==null&&(clearTimeout(e.current),e.current=null)}function zO(){if(typeof MediaRecorder>"u")return;const e=OO.find(t=>MediaRecorder.isTypeSupported(t));return e?{mimeType:e}:void 0}function $O(e){const t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function UO(){if(!(typeof window>"u"))return window.AudioContext??window.webkitAudioContext}function BO(e){if(e.length===0)return 0;let t=0;for(let r=0;r{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?t(r.result):n(new Error("invalid_data_url"))},r.onerror=()=>n(r.error??new Error("read_failed")),r.readAsDataURL(e)})}function qO(e){const t=e instanceof Error?e.message:"";return t==="not_configured"?"notConfigured":t==="duration"?"tooLong":"failed"}const VO="image/png,image/jpeg,image/webp,image/gif,.md,.txt,text/markdown,text/plain",gm=6,Zv=2e5,bC="KeyD",KO="Control+Shift+D";function tc(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function GO(e){return e.code===bC&&e.ctrlKey&&e.shiftKey&&!e.altKey&&!e.metaKey}function YO(e){return e.code===bC||e.key==="Control"||e.key==="Shift"}function QO(){if(typeof navigator>"u")return"other";const e=navigator.userAgentData,t=[e==null?void 0:e.platform,navigator.platform,navigator.userAgent].filter(Boolean).join(" ").toLowerCase();return navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1||/mac|iphone|ipad|ipod/.test(t)?"apple":/win/.test(t)?"windows":/cros/.test(t)?"chromeos":/linux|x11|android/.test(t)?"linux":"other"}function XO(){switch(QO()){case"apple":return"⌃⇧D";case"chromeos":case"linux":case"windows":case"other":return"Ctrl ⇧ D"}}const JO={activity:Gb,"book-open":ri,brain:Ga,"circle-help":ff,history:r2,"rotate-cw":m2,shield:h2,sparkles:$o,square:Wp,"square-pen":xf,"undo-2":y2},ex=8,tx=288,ZO=144,wC=12,kC="nanobot.webui.slashCommandRecents",eh=5,eF="nanobot.webui.composerQueuedGuidance.v1:",CC=20,SC=4e3;function tF({ariaLabel:e,className:t,elapsedLabel:n,isHero:r,levels:a}){return s.jsxs("div",{className:A("flex min-w-0 items-center gap-2 text-neutral-700 dark:text-white",r?"h-8":"h-9",t),"aria-live":"polite","aria-label":e,children:[s.jsx("span",{className:"flex h-5 min-w-0 flex-1 items-center justify-between overflow-hidden","aria-hidden":!0,children:a.map((o,i)=>s.jsx("span",{className:"w-[2px] rounded-full bg-current opacity-85 transition-[height] duration-75 ease-linear motion-reduce:transition-none",style:{height:o}},i))}),s.jsx("span",{className:"min-w-[2.1rem] text-right text-[12px] font-medium tabular-nums text-muted-foreground",children:n})]})}function vm(e){return e.replace(/^\//,"").replace(/-/g,"_")}function nF(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(kC),t=e?JSON.parse(e):[];return Array.isArray(t)?t.filter(n=>typeof n=="string").slice(0,eh):[]}catch{return[]}}function rF(e){if(!(typeof window>"u"))try{window.localStorage.setItem(kC,JSON.stringify(e.slice(0,eh)))}catch{}}function aF(e){const t=e==null?void 0:e.trim();return t?`${eF}${t}`:null}function oF(e,t){if(!e||typeof e!="object")return null;const n=e;if(typeof n.text!="string")return null;const r=n.text.trim().slice(0,SC),a=Array.isArray(n.images)?n.images.flatMap(i=>{if(!i||typeof i!="object")return[];const l=i;return typeof l.dataUrl!="string"||!l.dataUrl.startsWith("data:image/")?[]:[{dataUrl:l.dataUrl,...typeof l.name=="string"&&l.name.trim()?{name:l.name.trim()}:{}}]}).slice(0,Ko):[];return!r&&a.length===0?null:{id:typeof n.id=="string"&&n.id.trim()?n.id:`queued-prompt-restored-${t}`,text:r,...a.length>0?{images:a}:{}}}function sF(e){if(typeof window>"u")return[];try{const t=window.localStorage.getItem(e),n=t?JSON.parse(t):[];return Array.isArray(n)?n.map((r,a)=>oF(r,a)).filter(r=>r!=null).slice(0,CC):[]}catch{return[]}}function iF(e,t){if(!(typeof window>"u"))try{if(t.length===0){window.localStorage.removeItem(e);return}window.localStorage.setItem(e,JSON.stringify(t.slice(0,CC).map(n=>{var r;return{id:n.id,text:n.text.slice(0,SC),...(r=n.images)!=null&&r.length?{images:n.images.slice(0,Ko)}:{}}})))}catch{}}function lF(e){return e.map(t=>({dataUrl:t.dataUrl,name:t.file.name}))}function nx(e){if(e!=null&&e.length)return e.map(t=>({media:{data_url:t.dataUrl,...t.name?{name:t.name}:{}},preview:{url:t.dataUrl,...t.name?{name:t.name}:{}}}))}function cF(e){var n;const t=e.text.trim();return t||((n=e.images)==null?void 0:n.map(r=>r.name).filter(Boolean).join(", "))||"Image attachment"}function NC(e){return e.name.toLowerCase().endsWith(".md")||e.type==="text/markdown"?"text/markdown":"text/plain"}async function uF(e){if(e.length>gm)return{ok:!1,error:`最多添加 ${gm} 个文本附件。`};const t=[];for(const n of e){const r=await n.text();if(r.length>Zv)return{ok:!1,error:`${n.name} 过大,请控制在 ${Math.round(Zv/1e3)}KB 文本以内。`};t.push({id:`${n.name}-${n.size}-${n.lastModified}`,file:n,content:r,kind:NC(n)})}return{ok:!0,attachments:t}}function dF(e){if(typeof document>"u"||typeof e.setDragImage!="function")return;const t=document.createElement("div");t.style.position="fixed",t.style.left="-9999px",t.style.top="-9999px",t.style.width="1px",t.style.height="1px",t.style.opacity="0",document.body.appendChild(t);try{e.setDragImage(t,0,0)}catch{t.remove();return}window.setTimeout(()=>t.remove(),0)}function jC(){const e=window.visualViewport;if(!e)return{top:0,bottom:window.innerHeight,height:window.innerHeight};const t=Math.max(0,e.offsetTop),n=Math.max(0,e.height);return{top:t,bottom:t+n,height:n}}function pF(e){const t=jC();let n=t.top,r=t.bottom,a=e.parentElement;for(;a;){const o=window.getComputedStyle(a);if(/(auto|scroll|hidden|clip)/.test(o.overflowY)){const i=a.getBoundingClientRect();n=Math.max(n,i.top),r=Math.min(r,i.bottom)}a=a.parentElement}return{top:n,bottom:r}}function mF(e,t){var a,o;if(!(e!=null&&e.active))return null;const n=(a=e.ui_summary)==null?void 0:a.trim();if(n)return n;const r=(o=e.objective)==null?void 0:o.trim();return r?r.length>72?`${r.slice(0,72)}…`:r:t("thread.composer.goalStateFallback")}const fF=20,hF=10,gF=112,vF=.62;function xF(e){const t=jC(),n=e-t.top-fF-hF;return Math.min(Math.max(n,gF),Math.floor(t.height*vF))}function yF(e,t){const n=e.trim(),r=t.trim();return n&&r?`${n} +${f.preview}`.toLocaleLowerCase().includes(m)):a},[a,l]);if(a.length===0)return null;const p=m=>{i(!1),t(m)};return s.jsxs(s.Fragment,{children:[s.jsx(fe,{type:"button",variant:"ghost",size:"icon",className:A("host-no-drag h-8 w-8 rounded-full text-muted-foreground/80","hover:bg-accent/40 hover:text-foreground"),"aria-label":r("thread.promptNavigator.open"),onClick:()=>i(!0),children:s.jsx(o2,{className:"h-4 w-4"})}),s.jsx(Vf,{open:o,onOpenChange:i,children:s.jsxs(_u,{side:"right","aria-describedby":void 0,className:"w-[min(92vw,24rem)] gap-0 p-0 sm:max-w-[24rem]",children:[s.jsxs("div",{className:"border-b px-5 pb-4 pt-5",children:[s.jsx(Pu,{className:"text-base font-medium",children:r("thread.promptNavigator.title")}),s.jsxs("div",{className:"relative mt-4",children:[s.jsx(It,{"aria-hidden":!0,className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{value:l,onChange:m=>c(m.target.value),"aria-label":r("thread.promptNavigator.search"),placeholder:r("thread.promptNavigator.search"),className:A("h-10 w-full rounded-full border border-border bg-background pl-9 pr-3 text-sm","outline-none transition focus:border-ring focus:ring-2 focus:ring-ring/20")})]})]}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 py-2",children:d.length>0?s.jsx("div",{className:"space-y-1",children:d.map(m=>s.jsx(K4,{locale:n.resolvedLanguage||n.language,prompt:m,onJump:p},m.id))}):s.jsx("div",{className:"px-3 py-10 text-center text-sm text-muted-foreground",children:r("thread.promptNavigator.noResults")})})]})})]})}function K4({locale:e,onJump:t,prompt:n}){const{t:r}=se(),a=Ur(n.createdAt,e);return s.jsxs("button",{type:"button",className:A("w-full rounded-xl px-3 py-3 text-left transition","hover:bg-accent focus-visible:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30"),"aria-label":r("thread.promptNavigator.jumpTo",{label:n.label}),onClick:()=>t(n.id),children:[s.jsx("div",{className:"max-h-20 overflow-hidden whitespace-pre-wrap break-words text-sm leading-5 text-foreground",children:n.preview}),a?s.jsx("div",{className:"mt-1 text-[10px] leading-4 text-muted-foreground/75",children:a}):null]})}const G4=3e3;function Y4(e,t,n){const[r,a]=u.useState([]),[o,i]=u.useState(!1),[l,c]=u.useState(!1),[d,p]=u.useState(()=>Date.now());return u.useEffect(()=>{if(!e)return;let m=!1,f=!1;const h=async(b=!1)=>{b&&(i(!0),c(!1),a([]));try{const v=await b1(t,n);if(m)return;a(v.jobs),c(!1),f=!0}catch{!m&&!f&&c(!0)}finally{!m&&b&&i(!1)}};h(!0);const y=window.setInterval(()=>void h(!1),G4),x=()=>{document.visibilityState!=="hidden"&&h(!1)};return window.addEventListener("focus",x),document.addEventListener("visibilitychange",x),()=>{m=!0,window.clearInterval(y),window.removeEventListener("focus",x),document.removeEventListener("visibilitychange",x)}},[e,n,t]),u.useEffect(()=>{if(!e)return;p(Date.now());const m=window.setInterval(()=>p(Date.now()),1e3);return()=>window.clearInterval(m)},[e]),{jobs:r,loading:o,loadFailed:l,now:d}}const Q4=[[60,"second"],[60,"minute"],[24,"hour"],[7,"day"],[4.345,"week"],[12,"month"],[Number.POSITIVE_INFINITY,"year"]];function X4({sessionKey:e,token:t,title:n}){const{t:r}=se("common"),[a,o]=u.useState(!1),{jobs:i,loading:l,loadFailed:c,now:d}=Y4(a,t,e),p=l?s.jsxs("div",{className:"flex items-center gap-2 rounded-[16px] bg-muted/45 px-3 py-3 text-[12.5px] text-muted-foreground",children:[s.jsx(p2,{className:"h-3.5 w-3.5 animate-spin"}),r("thread.sessionInfo.loading")]}):c?s.jsxs("div",{className:"flex items-center gap-2 rounded-[16px] bg-destructive/10 px-3 py-3 text-[12.5px] text-destructive",children:[s.jsx(ja,{className:"h-3.5 w-3.5"}),r("thread.sessionInfo.loadFailed")]}):i.length?s.jsx("div",{className:"space-y-1.5",children:i.map(m=>s.jsx(J4,{job:m,now:d},m.id))}):s.jsx("div",{className:"rounded-[16px] bg-muted/35 px-3 py-3 text-[12.5px] leading-relaxed text-muted-foreground",children:r("thread.sessionInfo.empty")});return s.jsxs(mn,{modal:!1,open:a,onOpenChange:o,children:[s.jsx(fn,{asChild:!0,children:s.jsx(fe,{variant:"ghost",size:"icon","aria-label":r("thread.header.sessionInfo"),className:A("host-no-drag h-8 w-8 rounded-full text-muted-foreground/85","hover:bg-accent/40 hover:text-foreground"),children:s.jsx(a2,{className:"h-4 w-4 stroke-[1.75]"})})}),s.jsx(an,{align:"end",sideOffset:8,className:"w-[min(23rem,calc(100vw-1.5rem))] rounded-[24px] p-0",children:s.jsxs("div",{className:"space-y-3 px-4 py-3.5",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"text-[12px] font-normal text-muted-foreground/75",children:r("thread.sessionInfo.title")}),s.jsx("div",{className:"mt-0.5 truncate text-[14px] font-medium text-foreground",children:n||r("thread.sessionInfo.untitled")})]}),s.jsx("div",{className:"h-px bg-border/45"}),s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx(Wj,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground/80"}),s.jsx("span",{className:"truncate text-[13px] font-medium text-foreground",children:r("thread.sessionInfo.automations")})]}),s.jsx("span",{className:"rounded-full bg-muted/70 px-2 py-0.5 text-[11px] text-muted-foreground",children:r("thread.sessionInfo.count",{count:i.length})})]}),p]})})]})}function J4({job:e,now:t}){const{t:n}=se("common"),r=Z4(e,n),a=eO(e,n,t),o=e.enabled?e.state.last_status==="error"?"bg-destructive":"bg-emerald-500":"bg-muted-foreground/35";return s.jsx("div",{className:"rounded-[16px] px-3 py-2.5 transition-colors hover:bg-muted/40",children:s.jsxs("div",{className:"flex items-start gap-2.5",children:[s.jsx("span",{className:A("mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full",o)}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx("span",{className:"truncate text-[13px] font-medium text-foreground",children:e.name}),e.enabled?null:s.jsx("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10.5px] text-muted-foreground",children:n("thread.sessionInfo.disabled")})]}),s.jsx("div",{className:"mt-1 line-clamp-2 text-[12px] leading-snug text-muted-foreground",children:e.payload.message}),s.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-[11.5px] text-muted-foreground/80",children:[s.jsx("span",{children:r}),s.jsx("span",{"aria-hidden":!0,children:"·"}),s.jsx("span",{title:a.title,children:a.label})]})]})]})})}function Z4(e,t){const n=bs();return e.schedule.kind==="at"&&e.schedule.at_ms?t("thread.sessionInfo.schedule.at",{time:Ur(e.schedule.at_ms,n)}):e.schedule.kind==="every"&&e.schedule.every_ms?t("thread.sessionInfo.schedule.every",{duration:nO(e.schedule.every_ms,n)}):e.schedule.kind==="cron"&&e.schedule.expr?e.schedule.tz?t("thread.sessionInfo.schedule.cronWithTz",{expr:e.schedule.expr,tz:e.schedule.tz}):t("thread.sessionInfo.schedule.cron",{expr:e.schedule.expr}):t("thread.sessionInfo.schedule.unknown")}function eO(e,t,n){const r=bs();if(!e.enabled)return{label:t("thread.sessionInfo.next.disabled"),title:""};if(e.state.pending)return{label:t("thread.sessionInfo.next.pending"),title:""};const a=e.state.next_run_at_ms;return a?{label:t("thread.sessionInfo.next.label",{time:tO(a,n,r)}),title:Ur(a,r)}:{label:t("thread.sessionInfo.next.none"),title:""}}function tO(e,t,n){let r=(e-t)/1e3;const a=new Intl.RelativeTimeFormat(n,{numeric:"auto"});for(const[o,i]of Q4){if(Math.abs(r)=a&&e%a===0)return new Intl.NumberFormat(t,{style:"unit",unit:r,unitDisplay:"long",maximumFractionDigits:0}).format(e/a);return new Intl.NumberFormat(t,{style:"unit",unit:"minute",unitDisplay:"long",maximumFractionDigits:1}).format(e/6e4)}const lC=()=>$l(()=>import("./MarkdownTextRenderer-CTM5M1NW.js"),__vite__mapDeps([4,1,0,2,3])),rO=u.lazy(lC),aO=u.memo(function({source:t,className:n,highlightCode:r,onOpenFilePreview:a}){return s.jsx(rO,{className:n,highlightCode:r,onOpenFilePreview:a,children:t})}),oO=80,sO=140,iO=220,lO=16e3;class cO extends u.Component{constructor(){super(...arguments);$e(this,"state",{failed:!1})}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function Ou(){lC()}function Fu({children:e,className:t,streaming:n=!1,onOpenFilePreview:r}){const a=uO(e,n),o=n?a.length<=lO:a===e;u.useEffect(()=>{n&&Ou()},[n]);const i=s.jsx("div",{className:A("whitespace-pre-wrap break-words leading-relaxed text-foreground/92",t),children:a});return s.jsx(cO,{fallback:i,children:s.jsx(u.Suspense,{fallback:i,children:s.jsx(aO,{source:a,className:t,highlightCode:o,onOpenFilePreview:r})})})}function uO(e,t){const[n,r]=u.useState(e),a=u.useRef(e),o=u.useRef(e),i=u.useRef(null),l=u.useCallback(()=>{i.current!==null&&(window.clearTimeout(i.current),i.current=null)},[]),c=u.useCallback((p,m)=>{if(o.current!==p){if(o.current=p,m){r(p);return}u.startTransition(()=>r(p))}},[]),d=u.useCallback(()=>{i.current===null&&(i.current=window.setTimeout(()=>{i.current=null,c(a.current,!1)},dO(a.current.length)))},[c]);return a.current=e,u.useLayoutEffect(()=>{a.current=e,t||(l(),c(e,!0))},[l,c,e,t]),u.useEffect(()=>{a.current=e,t&&d()},[d,e,t]),u.useEffect(()=>l,[l]),n}function dO(e){return e>24e3?iO:e>8e3?sO:oO}function cC(e){return(e.display_name||e.name).split(/\s+/).filter(Boolean).slice(0,2).map(n=>{var r;return(r=n[0])==null?void 0:r.toUpperCase()}).join("")||e.name.slice(0,2).toUpperCase()}function uC(e){return(e.display_name||e.name).split(/\s+/).filter(Boolean).slice(0,2).map(n=>{var r;return(r=n[0])==null?void 0:r.toUpperCase()}).join("")||e.name.slice(0,2).toUpperCase()}function dC(e,t,n=[]){if(!e||t.length===0&&n.length===0)return e?[{kind:"text",text:e}]:[];const r=new Map(t.filter(d=>d.installed).map(d=>[d.name.toLowerCase(),d])),a=new Map(n.filter(d=>d.installed&&d.configured).map(d=>[d.name.toLowerCase(),d]));if(r.size===0&&a.size===0)return[{kind:"text",text:e}];const o=[],i=/(^|[\s([{])@([a-z0-9_-]+)\b/gi;let l=0,c;for(;(c=i.exec(e))!==null;){const d=c[1]??"",p=c[2]??"",m=p.toLowerCase(),f=r.get(m),h=f?null:a.get(m);if(!f&&!h)continue;const y=c.index+d.length,x=y+p.length+1;y>l&&o.push({kind:"text",text:e.slice(l,y)}),f?o.push({kind:"cli",text:e.slice(y,x),app:f}):h&&o.push({kind:"mcp",text:e.slice(y,x),preset:h}),l=x}return la.kind==="cli"||a.kind==="mcp")?s.jsx(s.Fragment,{children:r.map((a,o)=>a.kind==="text"?s.jsx("span",{children:a.text},`text-${o}`):a.kind==="cli"?s.jsx(pC,{app:a.app,label:a.text,variant:"message"},`cli-${a.app.name}-${o}`):s.jsx(mC,{preset:a.preset,label:a.text,variant:"message"},`mcp-${a.preset.name}-${o}`))}):s.jsx(s.Fragment,{children:e})}function pC({app:e,label:t,variant:n,isHero:r=!1}){const[a,o]=u.useState(0),i=e.brand_color||"hsl(var(--primary))",l=t.startsWith("@")?t.slice(1):t,d=u.useMemo(()=>ao(e.logo_url),[e.logo_url])[a],p=!!d,m=n==="composer"?"composer":"message";return u.useEffect(()=>o(0),[e.logo_url]),s.jsxs("span",{"data-testid":`${m}-cli-mention-${e.name}`,title:`CLI app: ${e.display_name||e.name}`,className:"relative inline transition-[color,text-shadow] duration-150",style:{color:i,textShadow:`0 0 10px ${fC(i,24)}`},children:[s.jsxs("span",{className:A("relative inline-block",p&&"text-transparent"),style:{lineHeight:"inherit"},children:["@",p?s.jsx("span",{"data-testid":`${m}-cli-mention-logo-${e.name}`,className:A("absolute left-1/2 top-1/2 grid place-items-center overflow-hidden rounded-[3px]","-translate-x-1/2 -translate-y-1/2",r?"h-[0.74em] w-[0.74em]":"h-[0.72em] w-[0.72em]"),children:s.jsx("img",{src:d??"",alt:"",className:"h-full w-full object-contain",onError:()=>o(f=>f+1)})}):null]}),l]})}function mC({preset:e,label:t,variant:n,isHero:r=!1}){const[a,o]=u.useState(0),i=e.brand_color||"hsl(var(--primary))",l=t.startsWith("@")?t.slice(1):t,d=u.useMemo(()=>ao(e.logo_url),[e.logo_url])[a],p=!!d,m=n==="composer"?"composer":"message";return u.useEffect(()=>o(0),[e.logo_url]),s.jsxs("span",{"data-testid":`${m}-mcp-mention-${e.name}`,title:`MCP server: ${e.display_name||e.name}`,className:"relative inline transition-[color,text-shadow] duration-150",style:{color:i,textShadow:`0 0 10px ${fC(i,24)}`},children:[s.jsxs("span",{className:A("relative inline-block",p&&"text-transparent"),style:{lineHeight:"inherit"},children:["@",p?s.jsx("span",{"data-testid":`${m}-mcp-mention-logo-${e.name}`,className:A("absolute left-1/2 top-1/2 grid place-items-center overflow-hidden rounded-[3px]","-translate-x-1/2 -translate-y-1/2",r?"h-[0.74em] w-[0.74em]":"h-[0.72em] w-[0.72em]"),children:s.jsx("img",{src:d??"",alt:"",className:"h-full w-full object-contain",onError:()=>o(f=>f+1)})}):null]}),l]})}function fC(e,t){if(/^#[0-9a-f]{6}$/i.test(e)){const n=Math.round(t/100*255).toString(16).padStart(2,"0");return`${e}${n}`}return`color-mix(in srgb, ${e} ${t}%, transparent)`}function mO({isHero:e,disabled:t,scope:n,defaultScope:r,controls:a,error:o,onChange:i}){const{t:l}=se(),[c,d]=u.useState(!1),[p,m]=u.useState(""),[f,h]=u.useState(null),[y,x]=u.useState(!1),b=z5(n,r),v=b?b.project_name||Vo(b.project_path):l("thread.composer.workspace.projectPlaceholder"),g=e&&!!r&&!!i&&(a==null?void 0:a.can_change_project)!==!1,w=ka(),k=!!w;u.useEffect(()=>{c&&(m((b==null?void 0:b.project_path)??""),h(null))},[b==null?void 0:b.project_path,c]),u.useEffect(()=>{o&&g&&d(!0)},[o,g]);const C=u.useCallback((N,P)=>{const L=n??r,_=N.trim();if(!(!L||!i)){if(!_||!F5(_)){h(l("workspace.dialog.absolutePathRequired"));return}i({...L,project_path:_,project_name:P||Vo(_),restrict_to_workspace:L.access_mode==="restricted"}),h(null),d(!1)}},[r,i,n,l]),j=u.useCallback(async()=>{if(!(!w||t)){x(!0);try{const N=await w.pickFolder();N&&C(N)}catch(N){h(N.message)}finally{x(!1)}}},[C,t,w]);return!g||!r||!i?null:k?s.jsxs("div",{className:"flex min-w-0 items-center rounded-b-[28px] border-t border-border/25 bg-muted/60 px-3 py-1.5 dark:bg-white/[0.055] sm:px-4",children:[s.jsxs("button",{type:"button",disabled:t||y,"aria-label":l("thread.composer.workspace.projectAria"),title:b==null?void 0:b.project_path,onClick:()=>void j(),className:A("inline-flex h-7 max-w-full items-center gap-2 rounded-full px-2.5 sm:max-w-[18rem]","text-[12px] font-medium text-muted-foreground/90 transition-colors","hover:bg-background/70 hover:text-foreground disabled:pointer-events-none disabled:opacity-55",b&&"text-foreground/82"),children:[s.jsx(ai,{className:A("h-3.5 w-3.5 shrink-0",b&&"text-primary")}),s.jsx("span",{className:"truncate",children:v})]}),f||o?s.jsx("span",{role:"alert",className:"ml-2 min-w-0 truncate text-[11.5px] font-medium text-destructive",children:f??o}):null]}):s.jsx("div",{className:"flex min-w-0 items-center rounded-b-[28px] border-t border-border/25 bg-muted/60 px-3 py-1.5 dark:bg-white/[0.055] sm:px-4",children:s.jsxs(mn,{open:c,onOpenChange:d,children:[s.jsx(fn,{asChild:!0,children:s.jsxs("button",{type:"button",disabled:t,"aria-label":l("thread.composer.workspace.projectAria"),className:A("inline-flex h-7 max-w-full items-center gap-2 rounded-full px-2.5 sm:max-w-[18rem]","text-[12px] font-medium text-muted-foreground/90 transition-colors","hover:bg-background/70 hover:text-foreground disabled:pointer-events-none disabled:opacity-55",b&&"text-foreground/82"),children:[s.jsx(ai,{className:A("h-3.5 w-3.5 shrink-0",b&&"text-primary")}),s.jsx("span",{className:"truncate",children:v}),s.jsx(rr,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]})}),s.jsxs(an,{align:"start",side:"bottom",sideOffset:8,className:"w-[min(25rem,calc(100vw-2rem))] rounded-[22px]",children:[s.jsxs(ut,{onSelect:()=>C(r.project_path,r.project_name),className:"flex min-h-[48px] cursor-default gap-3 rounded-[16px] px-3 py-2.5 focus:bg-muted/55",children:[s.jsx("span",{className:"grid h-8 w-8 shrink-0 place-items-center rounded-[12px] bg-muted text-foreground/80",children:s.jsx(ai,{className:"h-4 w-4"})}),s.jsxs("span",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"block truncate text-[13px] font-semibold text-foreground",children:l("workspace.dialog.defaultProject")}),s.jsx("span",{className:"block truncate text-[11.5px] text-muted-foreground",children:c1(r.project_path)})]}),b?null:s.jsx(jt,{className:"h-4 w-4 text-foreground/80"})]}),s.jsx("div",{className:"my-1 h-px bg-border/45"}),s.jsxs("div",{className:"space-y-1.5 px-1.5 py-1.5",onKeyDown:N=>{N.key!=="Escape"&&N.stopPropagation()},children:[s.jsxs("form",{className:"flex items-center gap-2",onSubmit:N=>{N.preventDefault(),C(p)},children:[s.jsx(qe,{value:p,disabled:t,onChange:N=>{m(N.target.value),h(null)},placeholder:l("workspace.dialog.manualPlaceholder"),"aria-label":l("workspace.dialog.manual"),className:A("h-9 rounded-full border-border/55 bg-background/80 px-3 text-[12.5px]","focus-visible:ring-1 focus-visible:ring-foreground/10 focus-visible:ring-offset-0")}),s.jsx(fe,{type:"submit",disabled:t||!p.trim(),className:"h-9 shrink-0 rounded-full px-3 text-[12px]",children:l("workspace.dialog.usePath")})]}),f||o?s.jsx("p",{role:"alert",className:"px-1 text-[11.5px] font-medium text-destructive",children:f??o}):null]})]})]})})}function fO({scope:e,disabled:t,canUseFullAccess:n,isHero:r,onChange:a}){const{t:o}=se(),i=e.access_mode,l=i==="full",c=d=>{d==="full"&&!n||d!==i&&(a==null||a(O5(e,d)))};return s.jsxs(mn,{children:[s.jsx(fn,{asChild:!0,disabled:t||!a,children:s.jsxs(fe,{type:"button",variant:"ghost","aria-label":o("thread.composer.workspace.accessAria"),className:A("max-w-[min(12.5rem,42vw)] rounded-[10px] border border-transparent font-semibold shadow-none",r?"h-8 px-2.5 text-[12px]":"h-9 px-3 text-[12.5px]",l?"bg-transparent text-orange-600 hover:bg-orange-500/8 dark:text-orange-300 dark:hover:bg-orange-400/10":"bg-transparent text-muted-foreground hover:bg-foreground/[0.045] hover:text-foreground dark:hover:bg-white/[0.06]"),children:[l?s.jsx(qp,{className:A("mr-1.5 shrink-0","h-3.5 w-3.5")}):s.jsx(pg,{className:A("mr-1.5 shrink-0","h-3.5 w-3.5")}),s.jsx("span",{className:"truncate",children:o(l?"thread.composer.workspace.full":"thread.composer.workspace.default")}),s.jsx(rr,{className:A("ml-1.5 shrink-0","h-3 w-3")})]})}),s.jsxs(an,{align:"start",className:"w-56",children:[s.jsx(Vv,{icon:s.jsx(pg,{className:"h-4 w-4"}),label:o("thread.composer.workspace.default"),selected:i==="restricted",onSelect:()=>c("restricted")}),s.jsx(Vv,{icon:s.jsx(qp,{className:"h-4 w-4"}),label:o("thread.composer.workspace.full"),selected:i==="full",disabled:!n,warning:!0,onSelect:()=>c("full")})]})]})}function hO({knowledgeBases:e,selectedKnowledgeBaseId:t,disabled:n,onChange:r}){const{t:a}=se(),o=e.find(l=>l.knowledge_base_id===t)??null,i=(o==null?void 0:o.title)||(o==null?void 0:o.knowledge_base_id)||a("thread.composer.knowledgeBase.all",{defaultValue:"Knowledge Base"});return s.jsxs(mn,{children:[s.jsx(fn,{asChild:!0,disabled:n||!r,children:s.jsxs(fe,{type:"button",variant:"ghost","aria-label":a("thread.composer.knowledgeBase.aria",{defaultValue:"Select knowledge base"}),className:"h-8 max-w-[min(14rem,42vw)] rounded-[10px] border border-transparent px-2.5 text-[12px] font-semibold text-muted-foreground shadow-none hover:bg-foreground/[0.045] hover:text-foreground dark:hover:bg-white/[0.06]",children:[s.jsx(ri,{className:"mr-1.5 h-3.5 w-3.5 shrink-0"}),s.jsx("span",{className:"truncate",children:i}),s.jsx(rr,{className:"ml-1.5 h-3 w-3 shrink-0"})]})}),s.jsxs(an,{align:"start",className:"w-72",children:[s.jsxs(ut,{onSelect:()=>r==null?void 0:r(null),className:"flex min-h-[42px] items-center gap-3 rounded-xl px-3 text-[13px] font-medium",children:[s.jsx(ri,{className:"h-4 w-4 shrink-0"}),s.jsx("span",{className:"min-w-0 flex-1 truncate",children:a("thread.composer.knowledgeBase.all",{defaultValue:"No knowledge base"})}),t?null:s.jsx(jt,{className:"h-4 w-4 shrink-0"})]}),e.map(l=>s.jsxs(ut,{onSelect:()=>r==null?void 0:r(l.knowledge_base_id),className:"flex min-h-[42px] items-center gap-3 rounded-xl px-3 text-[13px] font-medium",children:[s.jsx(ri,{className:"h-4 w-4 shrink-0"}),s.jsxs("span",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:"block truncate",children:l.title||l.knowledge_base_id}),s.jsxs("span",{className:"block truncate text-[11px] text-muted-foreground",children:[l.meeting_count," meetings"]})]}),t===l.knowledge_base_id?s.jsx(jt,{className:"h-4 w-4 shrink-0"}):null]},l.knowledge_base_id))]})]})}function Vv({icon:e,label:t,selected:n,disabled:r,warning:a,onSelect:o}){return s.jsxs(ut,{disabled:r,onSelect:o,className:A("flex h-10 items-center gap-3 rounded-xl px-3 text-[13.5px] font-semibold",a&&"text-orange-600 focus:text-orange-600 dark:text-orange-300 dark:focus:text-orange-300"),children:[s.jsx("span",{className:"grid h-5 w-5 shrink-0 place-items-center text-current","aria-hidden":!0,children:e}),s.jsx("span",{className:"min-w-0 flex-1 truncate",children:t}),n?s.jsx(jt,{className:"h-4 w-4 shrink-0","aria-hidden":!0}):null]})}const hC=6*1024*1024,gO=2048,vO=.85,xO=new Set(["image/jpeg","image/webp"]),Kv=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function yO(e){if(e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e[4]===13&&e[5]===10&&e[6]===26&&e[7]===10)return"image/png";if(e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255)return"image/jpeg";if(e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70&&e[3]===56&&e[5]===97&&(e[4]===55||e[4]===57))return"image/gif";if(e.length>=12){const t=e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70,n=e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80;if(t&&n)return"image/webp"}return null}function gC(e){const t=new Uint8Array(e);let n="";const r=32768;for(let a=0;ahC)return{error:"too_large_after_normalize"};const p=await d.arrayBuffer();return{dataUrl:`data:${n};base64,${gC(p)}`,mime:n,bytes:d.size}}catch{try{r.close()}catch{}return{error:"decode_failed"}}}async function vC(e){const{id:t,file:n}=e,r=n.size;let a;try{a=await n.arrayBuffer()}catch{return{id:t,ok:!1,reason:"io"}}const o=new Uint8Array(a.slice(0,12)),i=yO(o);if(!i)return{id:t,ok:!1,reason:"magic_mismatch"};if(!Kv.has(i))return{id:t,ok:!1,reason:"invalid_mime"};if(n.type&&Kv.has(n.type)&&n.type,r<=hC){const c=`data:${i};base64,${gC(a)}`;return{id:t,ok:!0,dataUrl:c,mime:i,bytes:r,origBytes:r,normalized:!1}}const l=await wO(n,i);return"error"in l?{id:t,ok:!1,reason:l.error}:{id:t,ok:!0,dataUrl:l.dataUrl,mime:l.mime,bytes:l.bytes,origBytes:r,normalized:!0}}typeof self<"u"&&typeof self.importScripts=="function"&&self.addEventListener("message",async e=>{const t=await vC(e.data);self.postMessage(t)});let lr=null,Gv=!1;const Eo=new Map;function kO(){if(Gv)return lr;if(Gv=!0,typeof Worker>"u")return null;try{return lr=new Worker(new URL("/assets/imageEncode.worker-Cs1P3eq4.js",import.meta.url),{type:"module"}),lr.addEventListener("message",e=>{const t=Eo.get(e.data.id);t&&(Eo.delete(e.data.id),t.resolve(e.data))}),lr.addEventListener("error",e=>{for(const[,t]of Eo)t.reject(new Error(`image encoder worker error: ${e.message}`));Eo.clear(),lr==null||lr.terminate(),lr=null}),lr}catch{return lr=null,null}}function CO(){return typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`img-${Date.now()}-${Math.random().toString(36).slice(2)}`}async function SO(e){const t=CO(),n=kO();return n?new Promise((r,a)=>{Eo.set(t,{resolve:r,reject:a});try{n.postMessage({id:t,file:e})}catch(o){Eo.delete(t),a(o instanceof Error?o:new Error(String(o)))}}):vC({id:t,file:e})}const Ko=4,Yv=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function xC(e){const t=/^data:([^;,]+)[;,]/.exec(e);return(t==null?void 0:t[1])||"image/png"}function NO(e,t){const n=xC(e),r=`image.${n.split("/")[1]||"png"}`;try{const[,a=""]=e.split(",",2),o=atob(a),i=new Uint8Array(o.length);for(let l=0;l{t(f=>{const h=f.map(y=>y.id===p?{...y,...m}:y);return n.current=h,h})},[]),a=u.useCallback(p=>{const m=[],f=[];let h=Ko-n.current.length;for(const y of p){if(!Yv.has(y.type)){m.push({file:y,reason:"unsupported_type"});continue}if(h<=0){m.push({file:y,reason:"too_many_images"});continue}h-=1,f.push({id:Qv(),file:y,previewUrl:URL.createObjectURL(y),status:"encoding"})}if(f.length>0){const y=[...n.current,...f];n.current=y,t(y);for(const x of f)queueMicrotask(()=>{SO(x.file).then(b=>{b.ok?r(x.id,{status:"ready",dataUrl:b.dataUrl,encodedBytes:b.bytes,normalized:b.normalized}):r(x.id,{status:"error",error:jO(b.reason)})},()=>{r(x.id,{status:"error",error:"decode_failed"})})})}return{rejected:m}},[r]),o=u.useCallback(p=>{let m=null;return t(f=>{const h=f.findIndex(v=>v.id===p);if(h===-1)return f;const y=f[h];try{URL.revokeObjectURL(y.previewUrl)}catch{}const x=[...f.slice(0,h),...f.slice(h+1)];n.current=x;const b=x[h]??x[h-1];return m=(b==null?void 0:b.id)??null,x}),{nextFocusId:m}},[]),i=u.useCallback(()=>{t(p=>{for(const m of p)try{URL.revokeObjectURL(m.previewUrl)}catch{}return n.current=[],[]})},[]),l=u.useCallback(p=>{const m=p.filter(f=>Yv.has(xC(f.dataUrl))).slice(0,Ko).map(f=>{const h=NO(f.dataUrl,f.name);return{id:Qv(),file:h,previewUrl:f.dataUrl,status:"ready",dataUrl:f.dataUrl,encodedBytes:h.size}});t(f=>{for(const h of f)try{URL.revokeObjectURL(h.previewUrl)}catch{}return n.current=m,m})},[]);u.useEffect(()=>()=>{for(const p of n.current)try{URL.revokeObjectURL(p.previewUrl)}catch{}},[]);const c=e.some(p=>p.status==="encoding"),d=e.length>=Ko;return{images:e,enqueue:a,remove:o,clear:i,restoreReadyImages:l,encoding:c,full:d}}function _O(e){const t=e.clipboardData??e.clipboardData;if(!t)return[];const n=[];for(const r of Array.from(t.items)){if(r.kind!=="file"||!r.type.startsWith("image/"))continue;const a=r.getAsFile();a&&n.push(a)}return n}function PO(e){const t=e.dataTransfer??e.dataTransfer;if(!t)return[];const n=[];for(const r of Array.from(t.files))r.type.startsWith("image/")&&n.push(r);return n}function TO(e){const[t,n]=u.useState(!1),r=u.useRef(0),a=u.useCallback(d=>{const p=_O(d);p.length!==0&&(d.preventDefault(),e(p))},[e]),o=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),r.current+=1,n(!0))},[]),i=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),d.dataTransfer.dropEffect="copy")},[]),l=u.useCallback(d=>{Array.from(d.dataTransfer.types??[]).includes("Files")&&(d.preventDefault(),r.current=Math.max(0,r.current-1),r.current===0&&n(!1))},[]),c=u.useCallback(d=>{r.current=0,n(!1);const p=PO(d);p.length!==0&&(d.preventDefault(),e(p))},[e]);return{isDragging:t,onPaste:a,onDragEnter:o,onDragOver:i,onDragLeave:l,onDrop:c}}const RO=12e4,MO=650,EO=1100,IO=140,LO=64,yC=3,Xv=7,DO=34,Go=.018,Jv=Array.from({length:LO},()=>yC),OO=["audio/webm;codecs=opus","audio/webm","audio/mp4","audio/ogg;codecs=opus"];function FO({disabled:e,onClearError:t,onError:n,onTranscript:r,onTranscribeAudio:a}){const o=u.useRef(null),i=u.useRef([]),l=u.useRef(null),c=u.useRef(null),d=u.useRef(0),p=u.useRef(null),m=u.useRef(null),f=u.useRef(null),h=u.useRef(!1),y=u.useRef(!1),x=u.useRef(!1),b=u.useRef(!1),v=u.useRef(null),g=u.useRef(!1),w=u.useRef(!1),k=u.useRef(0),C=u.useRef(!1),j=u.useRef(!1),[N,P]=u.useState("idle"),[L,_]=u.useState(0),[T,R]=u.useState(Jv),D=u.useCallback(()=>xo(m),[]),K=u.useCallback(()=>xo(v),[]),G=u.useCallback(()=>{K(),b.current=!0,v.current=setTimeout(()=>{b.current=!1,v.current=null},500)},[K]),W=u.useCallback(()=>{const O=c.current;c.current=null,O&&(O.frame!==null&&cancelAnimationFrame(O.frame),O.source.disconnect(),O.analyser.disconnect(),O.context.close().catch(()=>{}))},[]),H=u.useCallback(O=>{const te=UO();if(te){W(),R(Jv);try{const ie=new te,ve=ie.createMediaStreamSource(O),me=ie.createAnalyser();me.fftSize=256,me.smoothingTimeConstant=.68,ve.connect(me);const Z={analyser:me,context:ie,data:new Uint8Array(me.fftSize),frame:null,source:ve},ke=()=>{const ye=c.current;if(!ye)return;if(ye.context.state!=="running"){ye.context.resume().catch(()=>{}),ye.frame=requestAnimationFrame(ke);return}ye.analyser.getByteTimeDomainData(ye.data);const be=BO(ye.data);C.current=!0,w.current=!0,k.current=Math.max(k.current,be),be>=Go&&(D(),j.current&&(j.current=!1,t())),R(Ie=>[...Ie.slice(1),HO(be)]),ye.frame=requestAnimationFrame(ke)};c.current=Z,ie.resume().catch(()=>{}),Z.frame=requestAnimationFrame(ke)}catch{W()}}},[D,t,W]),E=u.useCallback(()=>{var O;xo(f),D(),xo(p),W(),(O=l.current)==null||O.getTracks().forEach(te=>te.stop()),l.current=null,o.current=null,y.current=!1,g.current=!1,j.current=!1},[D,W]),F=u.useCallback(()=>{const O=o.current;!O||O.state==="inactive"||O.stop()},[]),X=u.useCallback(()=>{const O=o.current;O&&O.state!=="inactive"?F():y.current&&(x.current=!0)},[F]),Q=u.useCallback(async()=>{var O;if(!(!a||N!=="idle"||y.current)){if(!((O=navigator.mediaDevices)!=null&&O.getUserMedia)||typeof MediaRecorder>"u"){n("unsupported");return}y.current=!0;try{const te=await navigator.mediaDevices.getUserMedia({audio:!0}),ie=new MediaRecorder(te,zO());i.current=[],l.current=te,o.current=ie,d.current=Date.now(),w.current=!1,k.current=0,C.current=!1,j.current=!1,_(0),H(te),ie.ondataavailable=ve=>{ve.data.size>0&&i.current.push(ve.data)},ie.onstop=()=>{const ve=i.current.splice(0),me=Math.max(0,Date.now()-d.current),Z=ie.mimeType||"audio/webm",ke=C.current&&w.current&&k.currenta(ye,{durationMs:me})).then(r).catch(ye=>n(qO(ye))).finally(()=>P("idle"))},ie.start(),P("recording"),t(),p.current=setTimeout(F,RO),m.current=setTimeout(()=>{var me;!(((me=o.current)==null?void 0:me.state)==="recording")||!C.current||!w.current||k.current>=Go||(j.current=!0,n("noInput"))},EO)}catch{E(),P("idle"),n("permission")}}},[E,t,n,a,r,H,N,F]),re=u.useCallback(()=>{x.current=!1,Q().then(()=>{x.current&&(x.current=!1,F())})},[Q,F]),ue=u.useCallback(O=>{if(!(O.pointerType==="mouse"&&O.button!==0)&&!(!a||e||N!=="idle")){xo(f);try{O.currentTarget.setPointerCapture(O.pointerId)}catch{}f.current=setTimeout(()=>{f.current=null,h.current=!0,G(),re()},IO)}},[e,a,re,N,G]),pe=u.useCallback(()=>{const O=h.current;xo(f),O&&(h.current=!1,G(),X())},[X,G]),ce=u.useCallback(()=>{if(b.current){K(),b.current=!1;return}N==="recording"?F():Q()},[K,Q,N,F]),z=u.useCallback(()=>{!a||e||N!=="idle"||g.current||(g.current=!0,re())},[e,a,re,N]),q=u.useCallback(()=>{g.current&&(g.current=!1,X())},[X]);return u.useEffect(()=>{if(N!=="recording"){_(0);return}const O=()=>{_(Math.max(0,Date.now()-d.current))};O();const te=window.setInterval(O,250);return()=>window.clearInterval(te)},[N]),u.useEffect(()=>E,[E]),u.useEffect(()=>()=>K(),[K]),{beginShortcutHold:z,beginPress:ue,buttonDisabled:e||N==="transcribing",elapsedLabel:$O(L),endShortcutHold:q,endPress:pe,handleClick:ce,isRecording:N==="recording",levels:T,state:N}}function xo(e){e.current!==null&&(clearTimeout(e.current),e.current=null)}function zO(){if(typeof MediaRecorder>"u")return;const e=OO.find(t=>MediaRecorder.isTypeSupported(t));return e?{mimeType:e}:void 0}function $O(e){const t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function UO(){if(!(typeof window>"u"))return window.AudioContext??window.webkitAudioContext}function BO(e){if(e.length===0)return 0;let t=0;for(let r=0;r{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?t(r.result):n(new Error("invalid_data_url"))},r.onerror=()=>n(r.error??new Error("read_failed")),r.readAsDataURL(e)})}function qO(e){const t=e instanceof Error?e.message:"";return t==="not_configured"?"notConfigured":t==="duration"?"tooLong":"failed"}const VO="image/png,image/jpeg,image/webp,image/gif,.md,.txt,text/markdown,text/plain",gm=6,Zv=2e5,bC="KeyD",KO="Control+Shift+D";function tc(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function GO(e){return e.code===bC&&e.ctrlKey&&e.shiftKey&&!e.altKey&&!e.metaKey}function YO(e){return e.code===bC||e.key==="Control"||e.key==="Shift"}function QO(){if(typeof navigator>"u")return"other";const e=navigator.userAgentData,t=[e==null?void 0:e.platform,navigator.platform,navigator.userAgent].filter(Boolean).join(" ").toLowerCase();return navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1||/mac|iphone|ipad|ipod/.test(t)?"apple":/win/.test(t)?"windows":/cros/.test(t)?"chromeos":/linux|x11|android/.test(t)?"linux":"other"}function XO(){switch(QO()){case"apple":return"⌃⇧D";case"chromeos":case"linux":case"windows":case"other":return"Ctrl ⇧ D"}}const JO={activity:Gb,"book-open":ri,brain:Ga,"circle-help":ff,history:r2,"rotate-cw":m2,shield:h2,sparkles:$o,square:Wp,"square-pen":xf,"undo-2":y2},ex=8,tx=288,ZO=144,wC=12,kC="nanobot.webui.slashCommandRecents",eh=5,eF="nanobot.webui.composerQueuedGuidance.v1:",CC=20,SC=4e3;function tF({ariaLabel:e,className:t,elapsedLabel:n,isHero:r,levels:a}){return s.jsxs("div",{className:A("flex min-w-0 items-center gap-2 text-neutral-700 dark:text-white",r?"h-8":"h-9",t),"aria-live":"polite","aria-label":e,children:[s.jsx("span",{className:"flex h-5 min-w-0 flex-1 items-center justify-between overflow-hidden","aria-hidden":!0,children:a.map((o,i)=>s.jsx("span",{className:"w-[2px] rounded-full bg-current opacity-85 transition-[height] duration-75 ease-linear motion-reduce:transition-none",style:{height:o}},i))}),s.jsx("span",{className:"min-w-[2.1rem] text-right text-[12px] font-medium tabular-nums text-muted-foreground",children:n})]})}function vm(e){return e.replace(/^\//,"").replace(/-/g,"_")}function nF(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(kC),t=e?JSON.parse(e):[];return Array.isArray(t)?t.filter(n=>typeof n=="string").slice(0,eh):[]}catch{return[]}}function rF(e){if(!(typeof window>"u"))try{window.localStorage.setItem(kC,JSON.stringify(e.slice(0,eh)))}catch{}}function aF(e){const t=e==null?void 0:e.trim();return t?`${eF}${t}`:null}function oF(e,t){if(!e||typeof e!="object")return null;const n=e;if(typeof n.text!="string")return null;const r=n.text.trim().slice(0,SC),a=Array.isArray(n.images)?n.images.flatMap(i=>{if(!i||typeof i!="object")return[];const l=i;return typeof l.dataUrl!="string"||!l.dataUrl.startsWith("data:image/")?[]:[{dataUrl:l.dataUrl,...typeof l.name=="string"&&l.name.trim()?{name:l.name.trim()}:{}}]}).slice(0,Ko):[];return!r&&a.length===0?null:{id:typeof n.id=="string"&&n.id.trim()?n.id:`queued-prompt-restored-${t}`,text:r,...a.length>0?{images:a}:{}}}function sF(e){if(typeof window>"u")return[];try{const t=window.localStorage.getItem(e),n=t?JSON.parse(t):[];return Array.isArray(n)?n.map((r,a)=>oF(r,a)).filter(r=>r!=null).slice(0,CC):[]}catch{return[]}}function iF(e,t){if(!(typeof window>"u"))try{if(t.length===0){window.localStorage.removeItem(e);return}window.localStorage.setItem(e,JSON.stringify(t.slice(0,CC).map(n=>{var r;return{id:n.id,text:n.text.slice(0,SC),...(r=n.images)!=null&&r.length?{images:n.images.slice(0,Ko)}:{}}})))}catch{}}function lF(e){return e.map(t=>({dataUrl:t.dataUrl,name:t.file.name}))}function nx(e){if(e!=null&&e.length)return e.map(t=>({media:{data_url:t.dataUrl,...t.name?{name:t.name}:{}},preview:{url:t.dataUrl,...t.name?{name:t.name}:{}}}))}function cF(e){var n;const t=e.text.trim();return t||((n=e.images)==null?void 0:n.map(r=>r.name).filter(Boolean).join(", "))||"Image attachment"}function NC(e){return e.name.toLowerCase().endsWith(".md")||e.type==="text/markdown"?"text/markdown":"text/plain"}async function uF(e){if(e.length>gm)return{ok:!1,error:`最多添加 ${gm} 个文本附件。`};const t=[];for(const n of e){const r=await n.text();if(r.length>Zv)return{ok:!1,error:`${n.name} 过大,请控制在 ${Math.round(Zv/1e3)}KB 文本以内。`};t.push({id:`${n.name}-${n.size}-${n.lastModified}`,file:n,content:r,kind:NC(n)})}return{ok:!0,attachments:t}}function dF(e){if(typeof document>"u"||typeof e.setDragImage!="function")return;const t=document.createElement("div");t.style.position="fixed",t.style.left="-9999px",t.style.top="-9999px",t.style.width="1px",t.style.height="1px",t.style.opacity="0",document.body.appendChild(t);try{e.setDragImage(t,0,0)}catch{t.remove();return}window.setTimeout(()=>t.remove(),0)}function jC(){const e=window.visualViewport;if(!e)return{top:0,bottom:window.innerHeight,height:window.innerHeight};const t=Math.max(0,e.offsetTop),n=Math.max(0,e.height);return{top:t,bottom:t+n,height:n}}function pF(e){const t=jC();let n=t.top,r=t.bottom,a=e.parentElement;for(;a;){const o=window.getComputedStyle(a);if(/(auto|scroll|hidden|clip)/.test(o.overflowY)){const i=a.getBoundingClientRect();n=Math.max(n,i.top),r=Math.min(r,i.bottom)}a=a.parentElement}return{top:n,bottom:r}}function mF(e,t){var a,o;if(!(e!=null&&e.active))return null;const n=(a=e.ui_summary)==null?void 0:a.trim();if(n)return n;const r=(o=e.objective)==null?void 0:o.trim();return r?r.length>72?`${r.slice(0,72)}…`:r:t("thread.composer.goalStateFallback")}const fF=20,hF=10,gF=112,vF=.62;function xF(e){const t=jC(),n=e-t.top-fF-hF;return Math.min(Math.max(n,gF),Math.floor(t.height*vF))}function yF(e,t){const n=e.trim(),r=t.trim();return n&&r?`${n} --- @@ -545,7 +545,7 @@ ${tc(S.file.size)}`,children:[s.jsx(ri,{className:"h-4 w-4 shrink-0 text-sky-600 ${t}`}function XF(e,t,n){if(t<=1)return n?34:Ud;const r=Math.log2(e+1)/Math.log2(t+1),a=Ud+(HF-Ud)*r;return Math.round(n?a+4:a)}function xm(e,t,n){return Math.max(t,Math.min(n,e))}function TC({attachment:e,className:t,inline:n=!1,variant:r="default"}){const{t:a}=se(),[o,i]=u.useState(!1),l=typeof e.url=="string"&&e.url.length>0,c=JF(e,a);if(e.kind==="image"&&l&&!o)return s.jsx(ax,{attachment:e,className:t,inline:n,variant:r,children:s.jsx("a",{href:e.url,target:"_blank",rel:"noreferrer noopener",className:"block bg-muted/20","aria-label":e.name?`Open ${e.name}`:a("lightbox.open",{defaultValue:"Open image"}),children:s.jsx("img",{src:e.url,alt:e.name??"",loading:"lazy",decoding:"async",draggable:!1,onError:()=>i(!0),className:A("block h-auto max-w-full bg-background object-contain",r==="compact"?"max-h-40":"max-h-[34rem]")})})});if(e.kind==="video"&&l)return s.jsx(ax,{attachment:e,className:t,inline:n,variant:r,children:s.jsx("video",{src:e.url,controls:!0,preload:"auto",className:A("block w-full bg-black",r==="compact"?"max-h-40":"max-h-[26rem]"),"aria-label":e.name?`${a("message.videoAttachment",{defaultValue:"Video attachment"})}: ${e.name}`:a("message.videoAttachment",{defaultValue:"Video attachment"})})});const d=e.kind==="video"?g2:e.kind==="image"?Vi:Xj,p=s.jsxs(s.Fragment,{children:[s.jsx(d,{className:"h-4 w-4 flex-none","aria-hidden":!0}),s.jsx("span",{className:"min-w-0 truncate",children:e.name??c})]});return l&&!o?s.jsx("a",{href:e.url,download:e.name??c,title:e.name??void 0,"aria-label":c,className:A("flex max-w-[18rem] items-center gap-2 rounded-[14px]","border border-border/60 bg-muted/40 px-3 py-2 text-xs text-muted-foreground","transition-colors hover:bg-muted/55 hover:text-foreground",r==="compact"&&"max-w-[14rem] rounded-xl px-2.5 py-1.5 text-[11.5px]",t),children:p}):s.jsxs("div",{className:A("flex max-w-[18rem] items-center gap-2 rounded-[14px]","border border-border/60 bg-muted/35 px-3 py-2 text-xs text-muted-foreground",r==="compact"&&"max-w-[14rem] rounded-xl px-2.5 py-1.5 text-[11.5px]",t),title:e.name??void 0,"aria-label":c,children:[p,s.jsx("span",{className:"sr-only",children:a("message.attachmentUnavailable",{defaultValue:"Attachment unavailable"})})]})}function ax({attachment:e,children:t,className:n,inline:r=!1,variant:a="default"}){const o=A("not-prose my-3 block w-fit max-w-full overflow-hidden rounded-[14px]","border border-border/60 bg-muted/40",e.kind==="image"&&"bg-background/85",e.kind==="video"?"w-[min(100%,32rem)]":"",a==="compact"&&"my-1 rounded-xl shadow-none",a==="compact"&&e.kind==="video"&&"w-[min(100%,20rem)]",n),i="block max-w-full",l=r?s.jsx("span",{className:i,children:t}):s.jsx("div",{className:i,children:t});return r?s.jsx("span",{className:o,children:l}):s.jsx("figure",{className:o,children:l})}function JF(e,t){return e.kind==="video"?t("message.videoAttachment",{defaultValue:"Video attachment"}):e.kind==="image"?t("message.imageAttachment",{defaultValue:"Image attachment"}):t("message.fileAttachment",{defaultValue:"File attachment"})}function ZF({images:e,index:t,onIndexChange:n,onOpenChange:r}){const{t:a}=se(),o=t!==null,i=e.length,l=t!==null?e[t]:null,c=u.useCallback(f=>{if(t===null||i<=1)return;const h=(t+f+i)%i;n(h)},[t,n,i]);u.useEffect(()=>{if(!o)return;const f=h=>{h.key==="ArrowLeft"?(h.preventDefault(),c(-1)):h.key==="ArrowRight"?(h.preventDefault(),c(1)):h.key==="Home"?(h.preventDefault(),n(0)):h.key==="End"&&(h.preventDefault(),n(i-1))};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[c,n,o,i]);const d=u.useMemo(()=>{if(t===null||i<=1)return[];const f=e[(t-1+i)%i],h=e[(t+1)%i];return[f,h].filter(y=>y&&y.url)},[e,t,i]);if(!l||!l.url)return null;const p=i>1,m=p?`${t+1} / ${i}`:null;return s.jsx(vu,{open:o,onOpenChange:r,children:s.jsxs(xu,{children:[s.jsx(gs,{className:A("fixed inset-0 z-50 bg-black/80 backdrop-blur-sm","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","motion-reduce:data-[state=open]:animate-none motion-reduce:data-[state=closed]:animate-none")}),s.jsxs(vs,{"aria-label":l.name??a("lightbox.title"),className:A("fixed inset-0 z-50 flex items-center justify-center","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","motion-reduce:data-[state=open]:animate-none motion-reduce:data-[state=closed]:animate-none"),children:[s.jsx(xs,{className:"sr-only",children:l.name??a("lightbox.title")}),s.jsx("div",{className:"relative flex max-h-[92vh] max-w-[94vw] items-center justify-center",style:{transform:"translate3d(0,0,0)",willChange:"transform"},children:s.jsx("img",{src:l.url,alt:l.name??"",decoding:"async",draggable:!1,className:"max-h-[92vh] max-w-[94vw] select-none rounded-[6px] object-contain shadow-2xl"},l.url)}),p?s.jsxs(s.Fragment,{children:[s.jsx(ox,{side:"left",label:a("lightbox.prev"),onClick:f=>{f.stopPropagation(),c(-1)}}),s.jsx(ox,{side:"right",label:a("lightbox.next"),onClick:f=>{f.stopPropagation(),c(1)}}),s.jsx("div",{className:"pointer-events-none absolute bottom-5 left-1/2 -translate-x-1/2 rounded-full bg-black/55 px-3 py-1 text-xs font-medium text-white/90 tabular-nums",children:m})]}):null,s.jsx(Yi,{"aria-label":a("lightbox.close"),className:A("absolute right-4 top-4 grid h-9 w-9 place-items-center rounded-full","bg-black/55 text-white/90 hover:bg-black/70 hover:text-white","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70","transition-colors motion-reduce:transition-none"),children:s.jsx(vr,{className:"h-4 w-4","aria-hidden":!0})}),s.jsx("div",{"aria-hidden":!0,className:"hidden",children:d.map((f,h)=>s.jsx("img",{src:f.url,alt:""},`${f.url}-${h}`))})]})]})})}function ox({side:e,label:t,onClick:n}){const r=e==="left"?mf:xr;return s.jsx("button",{type:"button",onClick:n,"aria-label":t,className:A("absolute top-1/2 -translate-y-1/2 grid h-11 w-11 place-items-center rounded-full","bg-black/55 text-white/90 hover:bg-black/70 hover:text-white","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70","transition-colors motion-reduce:transition-none",e==="left"?"left-4":"right-4"),children:s.jsx(r,{className:"h-5 w-5","aria-hidden":!0})})}async function ez(e){var t;try{if((t=navigator.clipboard)!=null&&t.writeText)return await navigator.clipboard.writeText(e),!0}catch{}return tz(e)}function tz(e){if(typeof document.execCommand!="function")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select(),t.setSelectionRange(0,t.value.length);try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}const nz=new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".svg",".tif",".tiff"]),rz=new Set([".mp4",".webm",".mov",".m4v",".avi",".mkv",".3gp"]);function az(e){var t;return((t=e.split(/[?#]/,1)[0])==null?void 0:t.toLowerCase())??""}function sx(e){if(!e)return"";const t=az(e),n=t.lastIndexOf(".");return n<0?"":t.slice(n)}function RC(e){const t=e.url??"";if(t.startsWith("data:image/"))return"image";if(t.startsWith("data:video/"))return"video";const n=sx(e.name)||sx(t);return n?nz.has(n)?"image":rz.has(n)?"video":"file":null}function C6(e){return RC(e)??"file"}function us(e){return{kind:RC(e)??e.kind??"file",url:e.url,name:e.name}}function oz({className:e}){return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:e,"aria-hidden":!0,children:[s.jsx("path",{d:"M16 3h5v5"}),s.jsx("path",{d:"M8 3H3v5"}),s.jsx("path",{d:"m21 3-7.536 7.536A5 5 0 0 0 12 14.07V21"}),s.jsx("path",{d:"m3 3 7.536 7.536A5 5 0 0 1 12 14.07V15"})]})}function sz({message:e,showAssistantCopyAction:t=!0,cliApps:n=[],mcpPresets:r=[],onOpenFilePreview:a,onForkFromHere:o}){var D,K;const{t:i}=se(),[l,c]=u.useState(!1),d=u.useRef(null),p="animate-in fade-in-0 slide-in-from-bottom-1 duration-300",m=u.useMemo(()=>cz(n,e.cliApps),[n,e.cliApps]),f=u.useMemo(()=>lz(r,e.mcpPresets),[r,e.mcpPresets]);u.useEffect(()=>()=>{d.current!==null&&window.clearTimeout(d.current)},[]);const h=u.useCallback(()=>{ez(e.content).then(G=>{G&&(c(!0),d.current!==null&&window.clearTimeout(d.current),d.current=window.setTimeout(()=>{c(!1),d.current=null},1500))})},[e.content]);if(e.kind==="trace")return s.jsx(mz,{message:e,animClass:p});if(e.role==="user"){const G=e.images??[],W=e.media??[],H=G.length>0,E=W.length>0,F=e.content.trim().length>0;return s.jsxs("div",{className:A("group ml-auto flex max-w-[min(85%,36rem)] flex-col items-end gap-1.5",p),children:[H?s.jsx(MC,{images:G,align:"right"}):null,E?s.jsx(ix,{media:W,align:"right"}):null,F?s.jsx("p",{className:A("ml-auto w-fit rounded-[18px] bg-secondary/70 px-4 py-2","text-left text-[16px]/[1.75] whitespace-pre-wrap break-words"),children:s.jsx(pO,{text:e.content,cliApps:m,mcpPresets:f})}):null]})}const y=e.content.trim().length===0,x=e.media??[],b=e.role==="assistant"?e.reasoning??"":"",v=!!(e.role==="assistant"&&e.reasoningStreaming),g=b.length>0||v,w=((D=e.source)==null?void 0:D.kind)==="cron"?((K=e.source.label)==null?void 0:K.trim())||i("message.automationSourceFallback"):"",k=i("message.automationTriggered"),C=e.role==="assistant"&&!e.isStreaming&&!y,j=t&&C,N=C&&!!o,P=i(l?"message.copiedReply":"message.copyReply"),L=i("message.forkFromHere"),_=e.latencyMs,T=e.role==="assistant"&&_!=null&&!e.isStreaming&&(!y||g||x.length>0),R=j||N||T;return s.jsxs("div",{className:A("w-full text-[15px]",p),style:{lineHeight:"var(--cjk-line-height)"},children:[g?s.jsx(pz,{text:b,streaming:v,hasBodyBelow:!y,onOpenFilePreview:a}):null,y&&e.isStreaming&&!g?s.jsx(dz,{}):y&&e.isStreaming?null:s.jsxs(s.Fragment,{children:[w?s.jsx(iz,{label:w,triggerLabel:k}):null,s.jsx(Fu,{streaming:!!e.isStreaming,onOpenFilePreview:a,children:e.content}),x.length>0?s.jsx(ix,{media:x,align:"left"}):null,R?s.jsx(Eu,{delayDuration:220,skipDelayDuration:80,children:s.jsxs("div",{className:"mt-2 flex min-h-8 flex-wrap items-center gap-x-2 gap-y-1 text-muted-foreground",children:[j?s.jsxs(Li,{children:[s.jsx(Di,{asChild:!0,children:s.jsx("button",{type:"button",onClick:h,"aria-label":P,className:A("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full","transition-colors hover:bg-muted/55 hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),children:l?s.jsx(jt,{className:"h-4 w-4","aria-hidden":!0}):s.jsx(Zb,{className:"h-4 w-4","aria-hidden":!0})})}),s.jsx(is,{side:"top",align:"center",children:P})]}):null,N?s.jsxs(Li,{children:[s.jsx(Di,{asChild:!0,children:s.jsx("button",{type:"button",onClick:o,"aria-label":L,className:A("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full","transition-colors hover:bg-muted/55 hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),children:s.jsx(oz,{className:"h-4 w-4"})})}),s.jsx(is,{side:"top",align:"center",children:L})]}):null,T?s.jsx("span",{className:"text-[11px] leading-none text-muted-foreground/70 tabular-nums",title:i("message.turnLatencyTitle"),children:LM(_)}):null]})}):null]})]})}function iz({label:e,triggerLabel:t}){return s.jsxs("div",{className:A("mb-2 inline-flex max-w-full items-center gap-1.5 rounded-full px-2 py-1","border border-sky-500/15 bg-sky-500/[0.06]","text-[11px] font-medium leading-none text-sky-700","dark:border-sky-300/15 dark:bg-sky-300/[0.08] dark:text-sky-200/80"),title:t,children:[s.jsx(Gj,{className:"h-3 w-3 shrink-0","aria-hidden":!0}),s.jsx("span",{className:"min-w-0 truncate",children:e}),s.jsx("span",{className:"text-current/45","aria-hidden":!0,children:"·"}),s.jsx("span",{className:"shrink-0",children:t})]})}function lz(e,t){var r;if(!(t!=null&&t.length))return e;const n=new Map(e.map(a=>[a.name.toLowerCase(),a]));for(const a of t){const o=(r=a.name)==null?void 0:r.trim();if(!o)continue;const i=n.get(o.toLowerCase());n.set(o.toLowerCase(),{name:o,display_name:a.display_name||(i==null?void 0:i.display_name)||o,category:a.category||(i==null?void 0:i.category)||"mcp",description:(i==null?void 0:i.description)||"",docs_url:(i==null?void 0:i.docs_url)||"",transport:a.transport||(i==null?void 0:i.transport)||"mcp",requires:(i==null?void 0:i.requires)||"",note:(i==null?void 0:i.note)||"",install_supported:(i==null?void 0:i.install_supported)??!0,installed:!0,configured:a.configured??(i==null?void 0:i.configured)??!0,available:(i==null?void 0:i.available)??!0,status:a.status||(i==null?void 0:i.status)||"configured",logo_url:a.logo_url??(i==null?void 0:i.logo_url)??null,brand_color:a.brand_color??(i==null?void 0:i.brand_color)??null,required_fields:(i==null?void 0:i.required_fields)||[],connection_summary:(i==null?void 0:i.connection_summary)||""})}return Array.from(n.values())}function cz(e,t){var r;if(!(t!=null&&t.length))return e;const n=new Map(e.map(a=>[a.name.toLowerCase(),a]));for(const a of t){const o=(r=a.name)==null?void 0:r.trim();if(!o)continue;const i=n.get(o.toLowerCase());n.set(o.toLowerCase(),{name:o,display_name:a.display_name||(i==null?void 0:i.display_name)||o,category:a.category||(i==null?void 0:i.category)||"cli",description:(i==null?void 0:i.description)||"",requires:(i==null?void 0:i.requires)||"",source:(i==null?void 0:i.source)||"attached",entry_point:a.entry_point||(i==null?void 0:i.entry_point)||"",install_supported:(i==null?void 0:i.install_supported)??!0,installed:!0,available:(i==null?void 0:i.available)??!0,status:(i==null?void 0:i.status)||"installed",logo_url:a.logo_url??(i==null?void 0:i.logo_url)??null,brand_color:a.brand_color??(i==null?void 0:i.brand_color)??null,skill_installed:(i==null?void 0:i.skill_installed)??!0})}return Array.from(n.values())}function ix({media:e,align:t}){if(e.length===0)return null;const n=[],r=[];for(const a of e){const o=us(a);o.kind==="image"?n.push({url:o.url,name:o.name}):r.push(o)}return s.jsxs("div",{className:A("mt-2 flex flex-wrap gap-2",t==="right"?"justify-end":"justify-start"),children:[n.length>0?s.jsx(MC,{images:n,align:t,size:t==="left"?"large":"compact"}):null,r.map((a,o)=>s.jsx(TC,{attachment:a},`${a.url??a.name??a.kind}-${o}`))]})}function MC({images:e,align:t="right",size:n="compact"}){const{t:r}=se(),a=[],o=new Map;for(let c=0;cs.jsx(uz,{image:c,size:n,placeholderLabel:r("message.imageAttachment"),openLabel:r("lightbox.open"),onOpen:o.has(d)?()=>l(o.get(d)):void 0},`${c.url??"placeholder"}-${d}`))}),s.jsx(ZF,{images:a,index:i,onIndexChange:l,onOpenChange:c=>{c||l(null)}})]})}function uz({image:e,size:t,placeholderLabel:n,openLabel:r,onOpen:a}){const o=typeof e.url=="string"&&e.url.length>0,i=A("relative overflow-hidden border border-border/60 bg-muted/40",t==="large"?"w-[min(100%,34rem)] rounded-[20px] bg-transparent":"h-24 w-24 rounded-[14px]","shadow-[0_6px_18px_-14px_rgba(0,0,0,0.45)]");return o&&a?s.jsx("button",{type:"button",onClick:a,"aria-label":e.name?`${r}: ${e.name}`:r,className:A(i,"block cursor-zoom-in p-0 transition-transform duration-150 motion-reduce:transition-none","hover:scale-[1.01] hover:ring-2 hover:ring-primary/25","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50"),children:s.jsx("img",{src:e.url,alt:e.name??"",loading:"lazy",decoding:"async",draggable:!1,className:A("block",t==="large"?"h-auto max-h-[36rem] w-full rounded-[inherit] object-contain":"h-full w-full object-cover")})}):s.jsx("div",{className:i,title:e.name??void 0,children:s.jsxs("div",{className:"flex h-full w-full flex-col items-center justify-center gap-1 px-2 text-[11px] text-muted-foreground","aria-label":n,children:[s.jsx(Vi,{className:"h-4 w-4 flex-none","aria-hidden":!0}),s.jsx("span",{className:"line-clamp-2 text-center leading-tight",children:e.name??n})]})})}function dz(){const{t:e}=se();return s.jsxs("span",{"aria-label":e("message.assistantTyping"),className:"inline-flex items-center gap-1 py-1",children:[s.jsx(Bd,{delay:"0ms"}),s.jsx(Bd,{delay:"150ms"}),s.jsx(Bd,{delay:"300ms"})]})}function Bd({delay:e}){return s.jsx("span",{style:{animationDelay:e},className:A("inline-block h-1.5 w-1.5 rounded-full bg-muted-foreground/60","animate-bounce")})}function zu({children:e,active:t,className:n}){const r=typeof e=="string"||typeof e=="number"?String(e):void 0;return s.jsx("span",{className:A("block min-w-0 overflow-hidden py-px",n),children:s.jsx("span",{"data-sheen-text":t?r:void 0,className:A("block w-fit max-w-full truncate font-medium leading-normal",t?"streaming-text-sheen":"text-muted-foreground"),children:e})})}function pz({text:e,streaming:t,hasBodyBelow:n,embeddedInCluster:r=!1,onOpenFilePreview:a}){const{t:o}=se(),[i,l]=u.useState(!1),[c,d]=u.useState(!0),p=i?c:t,m=()=>{l(!0),d(f=>i?!f:!p)};return u.useEffect(()=>{p&&e.length>0&&Ou()},[p,e.length]),s.jsxs("div",{className:A("w-full",!r&&"animate-in fade-in-0 slide-in-from-top-1 duration-200",n&&"mb-2"),children:[s.jsxs("button",{type:"button",onClick:m,className:A("group flex w-full items-center gap-2 rounded-md px-2 py-1.5","text-xs text-muted-foreground transition-colors hover:bg-muted/45"),"aria-expanded":p,"aria-live":t?"polite":void 0,children:[s.jsx($o,{className:A("h-3.5 w-3.5",t&&"animate-pulse"),"aria-hidden":!0}),s.jsx(zu,{active:t,className:"min-w-0 flex-1 text-left",children:t?o("message.reasoningStreaming",{defaultValue:"Thinking…"}):o("message.reasoning",{defaultValue:"Thinking"})}),s.jsx(xr,{"aria-hidden":!0,className:A("ml-auto h-3.5 w-3.5 transition-transform duration-200",p&&"rotate-90")})]}),p&&e.length>0&&s.jsx("div",{className:A("mt-1 min-w-0 border-l border-muted-foreground/20 pl-3",!r&&"animate-in fade-in-0 slide-in-from-top-1 duration-200"),children:s.jsx(Fu,{streaming:t,onOpenFilePreview:a,className:A("text-[12.5px] italic text-muted-foreground/88","prose-p:my-1.5 prose-li:my-0.5","prose-headings:mt-2 prose-headings:mb-1 prose-headings:font-medium","prose-headings:text-muted-foreground/92 prose-strong:text-muted-foreground","prose-h1:text-[15px] prose-h2:text-[13.5px] prose-h3:text-[12.5px] prose-h4:text-[12px]","prose-a:text-blue-500 prose-a:underline hover:prose-a:text-blue-600 dark:prose-a:text-blue-300 dark:hover:prose-a:text-blue-200","prose-code:text-[0.92em]"),children:e})})]})}function mz({message:e,animClass:t}){const{t:n}=se(),r=e.traces??[e.content],a=r.length,[o,i]=u.useState(!1);return s.jsxs("div",{className:A("w-full",t),children:[s.jsxs("button",{type:"button",onClick:()=>i(l=>!l),className:A("group flex w-full items-center gap-2 rounded-md px-2 py-1.5","text-xs text-muted-foreground transition-colors hover:bg-muted/45"),"aria-expanded":o,children:[s.jsx(lw,{className:"h-3.5 w-3.5","aria-hidden":!0}),s.jsx("span",{className:"font-medium",children:a===1?n("message.toolSingle"):n("message.toolMany",{count:a})}),s.jsx(xr,{"aria-hidden":!0,className:A("ml-auto h-3.5 w-3.5 transition-transform duration-200",o&&"rotate-90")})]}),o&&s.jsx("ul",{className:A("mt-1 space-y-0.5 border-l border-muted-foreground/20 pl-3","animate-in fade-in-0 slide-in-from-top-1 duration-200"),children:r.map((l,c)=>s.jsx("li",{className:"whitespace-pre-wrap break-words font-mono text-[11.5px] leading-relaxed text-muted-foreground/90",children:l},c))})]})}function EC({evidence:e,className:t}){return e.length===0?null:s.jsx("div",{"data-testid":"activity-evidence-preview",className:A("flex max-w-full flex-wrap items-start gap-2 pt-0.5","motion-safe:animate-in motion-safe:fade-in-0 motion-safe:slide-in-from-top-1 motion-safe:duration-200",t),children:e.slice(0,4).map(n=>s.jsx(TC,{attachment:n.attachment,variant:"compact",className:A(n.attachment.kind==="image"||n.attachment.kind==="video"?"max-w-[min(100%,20rem)]":"max-w-[14rem]")},n.id))})}function IC({title:e,icon:t,children:n,className:r}){return s.jsxs("section",{className:A("min-w-0 py-1 motion-safe:animate-in motion-safe:fade-in-0 motion-safe:slide-in-from-bottom-1 motion-safe:duration-200",r),children:[s.jsxs("div",{className:"mb-1 flex min-w-0 items-center gap-1.5 pl-0.5 text-[12px] font-medium text-muted-foreground/70",children:[t?s.jsx(t,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}):null,s.jsx("span",{className:"min-w-0 truncate",children:e})]}),s.jsx("div",{className:"min-w-0",children:n})]})}function oo({as:e="div",icon:t,marker:n,label:r,detail:a,aside:o,children:i,active:l=!1,tone:c=l?"active":"neutral",title:d,className:p,contentClassName:m,markerClassName:f,style:h}){return s.jsxs(e,{className:A("group/activity-step relative grid min-w-0 grid-cols-[1.125rem_minmax(0,1fr)] gap-2 py-0.5 text-[13px] leading-5",p),title:d,style:h,children:[s.jsx("span",{className:A("relative flex h-5 w-[1.125rem] shrink-0 items-start justify-center pt-[3px]","after:absolute after:left-1/2 after:top-[1.25rem] after:h-[calc(100%+0.375rem)] after:w-px after:-translate-x-1/2 after:bg-muted-foreground/14 group-last/activity-step:after:hidden"),"aria-hidden":!0,children:n??s.jsx("span",{className:A("grid h-3.5 w-3.5 place-items-center rounded-full border bg-background transition-colors",c==="active"&&"border-muted-foreground/28 text-muted-foreground/72",c==="success"&&"border-emerald-500/28 text-emerald-500/78",c==="error"&&"border-destructive/30 text-destructive/78",c==="neutral"&&"border-muted-foreground/18 text-muted-foreground/50",f),children:t?s.jsx(t,{className:"h-2.5 w-2.5",strokeWidth:2.15}):null})}),s.jsxs("div",{className:A("min-w-0",m),children:[s.jsxs("div",{className:"flex min-w-0 items-baseline gap-1.5",children:[s.jsx(zu,{active:l,className:A("min-w-0 shrink-0 font-medium",c==="error"?"text-destructive/78":"text-muted-foreground/85"),children:r}),a?s.jsx("span",{className:"min-w-0 break-words text-foreground/82",children:a}):null,o?s.jsx("span",{className:"ml-auto shrink-0",children:o}):null]}),i?s.jsx("div",{className:"mt-1 min-w-0",children:i}):null]})]})}function th({added:e,deleted:t}){return s.jsxs("span",{className:"inline-flex shrink-0 items-baseline gap-1.5 leading-[inherit] tabular-nums","data-testid":"activity-diff-pair",children:[s.jsx(lx,{sign:"+",value:e,className:"text-emerald-600/75 dark:text-emerald-300/75"}),s.jsx(lx,{sign:"-",value:t,className:"text-rose-600/70 dark:text-rose-300/75"})]})}function lx({sign:e,value:t,className:n}){const r=Number.isFinite(t)?Math.max(0,Math.round(t)):0;return s.jsxs("span",{className:A("inline-flex items-baseline leading-[inherit]",n),"aria-label":`${e}${r}`,children:[s.jsxs("span",{className:"inline-flex items-baseline leading-none","aria-hidden":!0,children:[e,s.jsx(fz,{value:r})]}),s.jsxs("span",{className:"sr-only",children:[e,r]})]})}function fz({value:e}){const t=Number.isFinite(e)?Math.max(0,Math.round(e)):0,[n,r]=u.useState(0),a=u.useRef(0),o=u.useCallback(i=>{a.current=i,r(i)},[]);return u.useEffect(()=>{var h;if((h=window.matchMedia)==null?void 0:h.call(window,"(prefers-reduced-motion: reduce)").matches){o(t);return}const l=a.current,c=t-l;if(c===0){o(t);return}const d=260,p=performance.now();let m=0;const f=y=>{const x=Math.min(1,(y-p)/d),b=1-Math.pow(1-x,3);if(o(Math.round(l+c*b)),x<1){m=window.requestAnimationFrame(f);return}a.current=t};return m=window.requestAnimationFrame(f),()=>window.cancelAnimationFrame(m)},[t,o]),s.jsx(hz,{value:n})}function hz({value:e}){const t=String(e).split("");return s.jsx("span",{className:"inline-flex items-baseline leading-none","aria-hidden":!0,children:t.map((n,r)=>s.jsx(gz,{digit:Number(n)},`${t.length}-${r}`))})}function gz({digit:e}){const t=Number.isFinite(e)?Math.min(9,Math.max(0,e)):0;return s.jsxs("span",{className:"relative inline-block h-[1em] w-[0.62em] overflow-hidden align-baseline leading-none",children:[s.jsx("span",{className:"invisible block h-[1em] leading-none",children:"0"}),s.jsx("span",{className:"absolute inset-x-0 top-0 flex flex-col transition-transform duration-200 ease-out will-change-transform",style:{transform:`translateY(-${t}em)`},children:Array.from({length:10},(n,r)=>s.jsx("span",{className:"block h-[1em] leading-none",children:r},r))})]})}function LC({edits:e,onOpenFilePreview:t}){return e.length===0?null:s.jsx("ul",{className:"space-y-1",children:e.map(n=>s.jsx(vz,{edit:n,onOpenFilePreview:t},n.key))})}function vz({edit:e,onOpenFilePreview:t}){const{t:n}=se(),r=e.status==="editing",a=e.status==="error",o=!a&&!e.binary&&DC(e),i=a?OC(e.error):"",l=a?xz(e.error)||n("message.fileEditFailedFallback",{defaultValue:"File change was not applied."}):"",c=a?s.jsx(ja,{className:"h-3 w-3","aria-hidden":!0}):r?s.jsx(Jb,{className:"h-3 w-3 animate-spin","aria-hidden":!0}):s.jsx(Xb,{className:"h-3 w-3","aria-hidden":!0});return s.jsx(oo,{as:"li",marker:s.jsx("span",{className:A("grid h-3.5 w-3.5 place-items-center rounded-full border bg-background transition-colors",a&&"border-destructive/30 text-destructive/78",r&&"border-muted-foreground/24 text-muted-foreground/65",!a&&!r&&"border-emerald-500/28 text-emerald-500/78"),children:c}),active:r,tone:a?"error":r?"active":"success",className:"text-xs",contentClassName:a?"min-w-0":"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3",title:i||e.absolute_path||e.path,label:e.pending&&!e.path?n("message.fileEditPreparing",{defaultValue:"Preparing file edit…"}):s.jsx(Jf,{path:e.path,tooltipPath:e.absolute_path,previewPath:e.absolute_path||e.path,onOpen:t,display:"path",active:r,className:"min-w-0",textClassName:"text-[12px]",testId:"activity-file-reference"}),detail:null,aside:o?s.jsx(th,{added:e.added,deleted:e.deleted}):null,children:a?s.jsx("span",{className:"block max-w-[42rem] truncate text-[11px] leading-4 text-destructive/75",children:l}):null})}function DC(e){return e.added>0||e.deleted>0}function OC(e){const t=(e||"").replace(/\s+/g," ").trim();return t?t.replace(/^Error applying patch:\s*/i,"").replace(/^Error writing file:\s*/i,"").replace(/^Error editing file:\s*/i,"").replace(/^Error:\s*/i,""):""}function xz(e){const t=OC(e);return t?/\bpermission denied\b/i.test(t)||/\boperation not permitted\b/i.test(t)?"No permission to change this location.":t.replace(/^old_text not found in (.+)$/i,"Target text was not found in $1.").replace(/^old_text appears multiple times in (.+)$/i,"Target text matched multiple places in $1.").replace(/^file to (?:update|delete) does not exist: (.+)$/i,"File does not exist: $1.").replace(/^path to (?:update|delete) is not a file: (.+)$/i,"Path is not a file: $1.").slice(0,180):""}function yz({text:e,streaming:t,onOpenFilePreview:n}){const{t:r}=se();return u.useEffect(()=>{e.length>0&&Ou()},[e.length]),s.jsx(oo,{marker:s.jsx(bz,{streaming:t}),active:t,tone:t?"active":"success",label:t?r("message.reasoningStreaming",{defaultValue:"Thinking…"}):r("message.reasoning",{defaultValue:"Thinking"}),children:e.trim()?s.jsx(Fu,{streaming:t,onOpenFilePreview:n,className:A("min-w-0 text-[12.5px] italic text-muted-foreground/78","prose-p:my-1 prose-li:my-0.5","prose-headings:mt-2 prose-headings:mb-1 prose-headings:font-medium","prose-headings:text-muted-foreground/88 prose-strong:text-muted-foreground","prose-h1:text-[15px] prose-h2:text-[13.5px] prose-h3:text-[12.5px] prose-h4:text-[12px]","prose-a:text-blue-500 prose-a:underline hover:prose-a:text-blue-600 dark:prose-a:text-blue-300 dark:hover:prose-a:text-blue-200","prose-code:text-[0.92em]"),children:e}):null})}function bz({streaming:e}){const t=u.useRef(e),[n,r]=u.useState(!1);return u.useEffect(()=>{if(t.current&&!e){r(!0);const a=window.setTimeout(()=>r(!1),650);return t.current=e,()=>window.clearTimeout(a)}t.current=e},[e]),e?s.jsx(Jb,{"data-testid":"activity-reasoning-marker","data-state":"thinking",className:"h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground/55",strokeWidth:1.8,"aria-hidden":!0}):s.jsx("span",{"data-testid":"activity-reasoning-marker","data-state":"done",className:A("grid h-3.5 w-3.5 shrink-0 place-items-center rounded-full border border-emerald-500/28 text-emerald-500/78","bg-emerald-500/[0.035] transition-[border-color,background-color,box-shadow,transform] duration-300 ease-out",n&&"animate-in fade-in-0 zoom-in-75 shadow-[0_0_0_3px_rgba(16,185,129,0.10)] motion-reduce:animate-none"),"aria-hidden":!0,children:s.jsx(jt,{className:A("h-2.5 w-2.5 stroke-[2.4]",n&&"animate-in fade-in-0 zoom-in-50 duration-300 motion-reduce:animate-none")})})}function $u(e){var t;return e.role!=="assistant"||e.kind==="trace"||e.content.trim().length>0?!1:!!((t=e.reasoning)!=null&&t.length||e.reasoningStreaming||e.isStreaming)}function Ba(e){return $u(e)||e.kind==="trace"}function Vc(e){if(e.length===0)return!1;const t=e[e.length-1];if(!Ba(t))return!1;let n=e.length-1;for(;n>0&&Ba(e[n-1]);)n-=1;const r=e.slice(n);if(r.some(i=>i.isStreaming||i.reasoningStreaming))return!0;const a=e[n-1];if(!a||a.role!=="assistant"||Ba(a))return!0;const o=new Set(r.map(i=>i.turnId).filter(i=>typeof i=="string"&&i.length>0));return a.turnId?o.size>0&&!o.has(a.turnId):o.size>0}function wz(e,t={}){const n=[];let r=[],a;const o=(i={})=>{if(r.length===0)return;const l=[],c=kz(r),d=Sz(c);let p=0,m=[];const f=()=>{m.length&&(Nz(l,m,d.slice(p)),m=[])};for(const h of c){if(Ba(h)){m.push(h);continue}if(FC(h)){m.push(Az(h)),f(),l.push({type:"message",message:zC(h)}),p+=1;continue}f(),l.push({type:"message",message:h}),p+=1}f(),n.push(...Cz(l,i)),r=[],a=void 0};for(const i of e){if(i.role==="user"){o(),n.push({type:"message",message:i}),a=i.turnId;continue}i.turnId&&a&&i.turnId!==a&&o(),i.turnId&&(a=i.turnId),r.push(i)}return o(t),n}function kz(e){return e.length<2?e:e.map((t,n)=>({message:t,index:n})).sort((t,n)=>{const r=t.message.createdAt,a=n.message.createdAt;if(Number.isFinite(r)&&Number.isFinite(a)&&r!==a)return r-a;const i=t.message.turnSeq,l=n.message.turnSeq;return Number.isFinite(i)&&Number.isFinite(l)&&i!==l?Number(i)-Number(l):t.index-n.index}).map(({message:t})=>t)}function Cz(e,t){var a,o;if(t.preserveTrailingActivity||e.length<2||((a=e[e.length-1])==null?void 0:a.type)!=="activity")return e;let n=e.length-1;for(;n>0&&((o=e[n-1])==null?void 0:o.type)==="activity";)n-=1;const r=e[n-1];return!r||r.type!=="message"||r.message.role!=="assistant"?e:[...e.slice(0,n-1),...e.slice(n),r]}function Sz(e){const t=[];for(const n of e)Ba(n)||t.push(FC(n)?zC(n):n);return t}function Nz(e,t,n){let r=[],a,o;const i=()=>{r.length&&(e.push({type:"activity",messages:r,items:r.flatMap(_z),turnLatencyMs:Pz(r,n)}),r=[],a=void 0,o=void 0)};for(const l of t){const c=jz(l)?"file":"other",d=l.activitySegmentId;(a&&c!==a||c==="file"&&a==="file"&&!!o&&!!d&&o!==d)&&i(),a=c,d&&(o=d),r.push(l)}i()}function jz(e){var t;return e.kind==="trace"&&!!((t=e.fileEdits)!=null&&t.length)}function FC(e){var t;return e.role==="assistant"&&e.kind!=="trace"&&e.content.trim().length>0&&(!!((t=e.reasoning)!=null&&t.trim())||!!e.reasoningStreaming)}function Az(e){return{id:`${e.id}-reasoning`,role:"assistant",content:"",createdAt:e.createdAt,reasoning:e.reasoning,reasoningStreaming:e.reasoningStreaming,isStreaming:e.reasoningStreaming,activitySegmentId:e.activitySegmentId,latencyMs:e.latencyMs}}function zC(e){const t={...e};return delete t.reasoning,delete t.reasoningStreaming,t}function _z(e){var n,r,a;if($u(e))return[{type:"reasoning",message:e}];if(e.kind!=="trace")return[];const t=[];(n=e.fileEdits)!=null&&n.length&&t.push({type:"file_edit",message:e});for(const o of e.toolEvents??[]){const i=String(o.name??"").toLowerCase();i==="run_cli_app"?t.push({type:"cli",message:e}):i==="mcp"?t.push({type:"mcp",message:e}):t.push({type:"tool",message:e})}return t.length===0&&((r=e.traces)!=null&&r.length||e.content.trim())&&t.push({type:"tool",message:e}),(a=e.media)!=null&&a.length&&t.push({type:"media",message:e}),t}function Pz(e,t){for(let n=t.length-1;n>=0;n-=1){const r=t[n].latencyMs;if(cx(r))return r}for(let n=e.length-1;n>=0;n-=1){const r=e[n].latencyMs;if(cx(r))return r}}function cx(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0}function Tz(e){const t=Mz(dx(e)),n=[];return[...ux(e.embeds),...ux(e.files)].forEach((a,o)=>{const i=Ez(a);i&&n.push({id:`${e.call_id||dx(e)||"tool"}:${o}:${i.url||i.name||i.kind}`,attachment:i,caption:i.name,source:t})}),n}function Rz(e){return(e.media??[]).map((t,n)=>({id:`${e.id}:media:${n}:${t.url||t.name||t.kind}`,attachment:t,caption:t.name,source:"media"}))}function ux(e){return Array.isArray(e)?e:[]}function dx(e){var t,n;return typeof((t=e.function)==null?void 0:t.name)=="string"?String((n=e.function)==null?void 0:n.name):typeof e.name=="string"?e.name:""}function Mz(e){const t=e.toLowerCase();return t.includes("browser")||t.includes("screenshot")?"browser":t.includes("web")||t.includes("search")||t.includes("fetch")||t.includes("read")?"web":t.includes("exec")||t.includes("shell")||t.includes("cli")?"shell":t.startsWith("mcp_")||t==="mcp"?"mcp":t.includes("file")||t.includes("patch")?"file":t.includes("image")||t.includes("video")||t.includes("media")?"media":"tool"}function Ez(e){if(typeof e=="string"){const i=e.trim();return i?us({url:Lz(i)?i:void 0,name:px(i)}):null}if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e,n=nc(t,["url","href","src","uri","signed_url","thumbnail_url"]),r=nc(t,["path","absolute_path","file","filename"]),a=nc(t,["name","filename","title","label"])??px(n??r??""),o=Iz(t,n,a);return us({url:n,name:a,kind:o})}function nc(e,t){for(const n of t){const r=e[n];if(typeof r=="string"&&r.trim())return r.trim()}}function Iz(e,t,n){var a;const r=((a=nc(e,["kind","type","mime","mime_type","content_type"]))==null?void 0:a.toLowerCase())??"";return r.includes("image")||r.includes("screenshot")?"image":r.includes("video")||r.includes("mp4")||r.includes("quicktime")?"video":r.includes("file")||r.includes("document")?"file":us({url:t,name:n}).kind}function Lz(e){return/^(https?:|data:|\/api\/|blob:)/i.test(e)}function px(e){return(e.split(/[?#]/,1)[0]??"").split(/[\\/]/).filter(Boolean).pop()||void 0}function ll(e){var a,o;if(!e||typeof e!="object")return null;const t=e,n=typeof((a=t.function)==null?void 0:a.name)=="string"?t.function.name:typeof t.name=="string"?t.name:"";if(!n)return null;const r=((o=t.function)==null?void 0:o.arguments)??t.arguments;return typeof r=="string"&&r.trim()?`${n}(${r})`:r&&typeof r=="object"?`${n}(${JSON.stringify(r)})`:`${n}()`}const Dz=new Set(["start","end","error"]),mx={start:1,end:2,error:3};function $C(e){var n,r;if(!Array.isArray(e))return[];const t=[];for(const a of e){if(!a||typeof a!="object")continue;const o=a,i=o.phase;if(!(i&&typeof i=="string"&&Dz.has(i)))continue;const l=typeof o.name=="string"?o.name:"",c=typeof((n=o.function)==null?void 0:n.name)=="string"?String((r=o.function)==null?void 0:r.name):"";!l&&!c||t.push(o)}return t}function fx(e){return e.call_id?`call:${e.call_id}`:ll(e)??JSON.stringify(e)}function Oz(e,t){if(!(e!=null&&e.length))return t;if(!t.length)return e;const n=[...e],r=new Map(n.map((a,o)=>[fx(a),o]));for(const a of t){const o=fx(a),i=r.get(o);if(i===void 0){r.set(o,n.length),n.push(a);continue}const l=n[i],c=mx[String(a.phase)]??0,d=mx[String(l.phase)]??0;n[i]=c>=d?{...l,...a}:l}return n}function UC(e){const t=new Set,n=[];for(const r of $C(e)){const a=r.call_id;if(a&&typeof a=="string"){if(t.has(a))continue;t.add(a)}const o=ll(r);o&&n.push(o)}return n}function Fz(e,t){const n=new Set(e),r=[...e];let a=!1;for(const o of t)n.has(o)||(n.add(o),r.push(o),a=!0);return{traces:r,added:a}}const zz="max-h-52",$z=24;function Uz(e,t,n,r){let a=0,o=0;const i=n.length,l=r.length,c=n[n.length-1],d=c==null?void 0:c.name,p=c==null?void 0:c.status,m=r[r.length-1];for(const k of e){if($u(k)){a+=1;continue}if(k.kind==="trace"){const C=so(k);for(const j of C)!v$(j)&&!x$(j)&&(o+=1)}}let f=0,h=0,y=!1,x=!1,b=0,v=0,g,w;for(const k of t)g=k.path,w=k.absolute_path||k.path,k.status==="editing"&&(x=!0),k.status==="error"&&(b+=1),k.operation==="delete"&&(v+=1),!(k.status==="error"||k.binary)&&DC(k)&&(y=!0,f+=k.added,h+=k.deleted);return{reasoningSteps:a,toolCalls:o,cliCount:i,mcpCount:l,fileCount:t.length,added:f,deleted:h,hasDiffStats:y,hasEditingFiles:x,hasFailedFiles:t.length>0&&b===t.length,hasDeletedFiles:t.length>0&&v===t.length,primaryFilePath:g,primaryFileTooltipPath:w,primaryCliName:d,primaryCliStatus:p,primaryMcpName:m==null?void 0:m.presetName,primaryMcpDisplayName:m==null?void 0:m.displayName,primaryMcpStatus:m==null?void 0:m.status}}function Bz({messages:e,isTurnStreaming:t,hasBodyBelow:n,turnLatencyMs:r,cliApps:a=[],mcpPresets:o=[],onOpenFilePreview:i}){const{t:l}=se(),c=u.useMemo(()=>W$(B$(e),t),[e,t]),d=u.useMemo(()=>w$(e),[e]),p=u.useMemo(()=>S$(e),[e]),m=u.useMemo(()=>new Map(a.map(he=>[he.name.toLowerCase(),he])),[a]),f=u.useMemo(()=>new Map(o.map(he=>[he.name.toLowerCase(),he])),[o]),{reasoningSteps:h,toolCalls:y,cliCount:x,mcpCount:b,fileCount:v,added:g,deleted:w,hasDiffStats:k,hasEditingFiles:C,hasFailedFiles:j,hasDeletedFiles:N,primaryFilePath:P,primaryFileTooltipPath:L,primaryCliName:_,primaryCliStatus:T,primaryMcpDisplayName:R,primaryMcpStatus:D}=Uz(e,c,d,p),K=c.some(he=>he.pending),[G,W]=u.useState(!1),[H,E]=u.useState(!1),[F,X]=u.useState(!1),[Q,re]=u.useState(()=>Date.now()),ue=u.useRef(null),pe=u.useRef(null),ce=u.useRef(!0),z=u.useRef(null),q=u.useRef(t),O=q.current,te=G?H:t||F||O&&!t,ie=t&&C,ve=v===1?P:void 0,me=v===1?L:void 0,Z=h>0||y>0||x>0||b>0||v>0,ke=v>0&&e.every(Hz),ye=y>0||x>0||b>0||v>0,be=Vz(e,t,Q,r),Ie=Kz(be),Pe=ye?t?l("message.activityWorkingFor",{duration:Ie,defaultValue:"Working for {{duration}}"}):be<=0?l("message.activityWorked",{defaultValue:"Worked"}):l("message.activityWorkedFor",{duration:Ie,defaultValue:"Worked for {{duration}}"}):t?l("message.activityThinkingFor",{duration:Ie,defaultValue:"Thinking for {{duration}}"}):be<=0?l("message.activityThought",{defaultValue:"Thought"}):l("message.activityThoughtFor",{duration:Ie,defaultValue:"Thought for {{duration}}"}),Le=v>0?K&&!ve?l("message.fileActivityPreparing",{defaultValue:"Preparing edit…"}):ve?l(z$(ie,j,N),{file:qz(ve),defaultValue:`${rc(ie,j,N)} {{file}}`}):l($$(ie,j,N),{count:v,defaultValue:`${rc(ie,j,N)} {{count}} files`}):"",Te=x>0?x===1&&_?l(A$(T,t),{name:_,defaultValue:_$(T,t)}):l(P$(d,t),{count:x,defaultValue:T$(d,t)}):"",J=b>0?b===1&&R?l(E$(D,t),{name:R,defaultValue:I$(D,t)}):l(L$(p,t),{count:b,defaultValue:D$(p,t)}):"",ee=v>0?Le:x>0?Te:b>0?J:t?h>0?l("message.agentActivityLiveSummary",{reasoning:h,tools:y,defaultValue:"Working… · {{reasoning}} steps · {{tools}} tool calls"}):y===0&&v>0?l("message.agentActivityLiveFilesOnly",{defaultValue:"Working…"}):l("message.agentActivityLiveToolsOnly",{tools:y,defaultValue:"Working… · {{tools}} tool calls"}):h>0?l("message.agentActivitySummary",{reasoning:h,tools:y,defaultValue:"{{reasoning}} steps · {{tools}} tool calls"}):y===0&&v>0?l("message.agentActivityFilesOnly",{defaultValue:"File changes"}):l("message.agentActivityToolsOnly",{tools:y,defaultValue:"{{tools}} tool calls"}),V=u.useCallback(()=>{z.current!==null&&(window.cancelAnimationFrame(z.current),z.current=null)},[]),xe=u.useCallback(()=>{const he=ue.current;he&&(he.scrollTop=Math.max(0,he.scrollHeight-he.clientHeight))},[]),Se=u.useCallback(()=>{V(),z.current=window.requestAnimationFrame(()=>{z.current=null,xe()})},[V,xe]),De=()=>{const he=G?!H:!te;he&&(ce.current=!0),W(!0),E(he)};u.useLayoutEffect(()=>{!te||!ce.current||Se()},[te,e,t,Se]),u.useEffect(()=>{if(!te){ce.current=!0;return}const he=pe.current;if(!he||typeof ResizeObserver>"u")return;const Xe=new ResizeObserver(()=>{ce.current&&Se()});return Xe.observe(he),()=>Xe.disconnect()},[te,Se]),u.useEffect(()=>V,[V]),u.useEffect(()=>{if(!t)return;const he=window.setInterval(()=>re(Date.now()),500);return()=>window.clearInterval(he)},[t]),u.useEffect(()=>{const he=q.current;if(q.current=t,t){X(!1);return}if(!he||G)return;X(!0);const Xe=window.setTimeout(()=>X(!1),900);return()=>window.clearTimeout(Xe)},[t,G]);const Ve=u.useCallback(()=>{const he=ue.current;if(!he)return;const Xe=he.scrollHeight-he.scrollTop-he.clientHeight;ce.current=Xe<$z},[]);return Z?ke?s.jsx(Wz,{edits:c,active:t,hasBodyBelow:n,summary:ee,singleFilePath:ve,singleFileTooltipPath:me,hasLiveEditingFiles:ie,hasFailedFiles:j,hasDeletedFiles:N,added:g,deleted:w,hasDiffStats:k,onOpenFilePreview:i}):s.jsxs("div",{className:A("w-full",n&&"mb-2"),children:[s.jsxs("button",{type:"button",onClick:De,className:A("group flex max-w-full items-center gap-1.5 overflow-hidden rounded-md px-1 py-1","text-[12.5px] text-muted-foreground/72 transition-colors hover:text-muted-foreground"),"aria-expanded":te,"aria-label":ee,children:[s.jsx(zu,{active:t,className:"min-w-0",children:ve?rc(ie,j,N):Pe}),ve?s.jsx(Jf,{path:ve,tooltipPath:me,previewPath:me||ve,onOpen:i,active:ie,className:"-my-0.5 min-w-0",textClassName:"text-xs",testId:"activity-header-file-reference"}):null,s.jsx("span",{className:"flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-0.5 text-left",children:v>0&&k&&s.jsx("span",{className:"inline-flex min-w-0 items-center gap-1 text-muted-foreground/85",children:s.jsx(th,{added:g,deleted:w})})}),s.jsx(xr,{"aria-hidden":!0,className:A("h-3.5 w-3.5 shrink-0 transition-transform duration-200",te&&"rotate-90")})]}),te&&s.jsx("div",{className:A("ml-1 mt-1 overflow-hidden pl-1"),children:s.jsx("div",{ref:ue,"data-testid":"agent-activity-scroll",onScroll:Ve,className:A(zz,"overflow-y-auto py-1 pr-1 scrollbar-thin scrollbar-track-transparent"),children:s.jsxs("div",{ref:pe,className:"flex flex-col gap-0.5",children:[e.map(he=>$u(he)?s.jsx(yz,{text:he.reasoning??"",streaming:t&&!!he.reasoningStreaming,onOpenFilePreview:i},he.id):he.kind==="trace"?s.jsx(Qz,{message:he,active:t,cliAppsByName:m,mcpPresetsByName:f},he.id):null),c.length?s.jsx(LC,{edits:c,onOpenFilePreview:i}):null]})})})]}):null}function Hz(e){var t;return e.kind!=="trace"||!((t=e.fileEdits)!=null&&t.length)?!1:so(e).every(n=>!n.trim()||y$(n))}function Wz({edits:e,active:t,hasBodyBelow:n,summary:r,singleFilePath:a,singleFileTooltipPath:o,hasLiveEditingFiles:i,hasFailedFiles:l,hasDeletedFiles:c,added:d,deleted:p,hasDiffStats:m,onOpenFilePreview:f}){const h=e.length>1||e.some(y=>y.status==="error"||y.pending);return s.jsxs("div",{className:A("w-full",n&&"mb-2"),"aria-label":r,children:[s.jsxs("div",{className:A("flex max-w-full items-center gap-1.5 px-1 py-1","text-[12.5px] text-muted-foreground/72"),children:[s.jsx(zu,{active:t,className:"min-w-0",children:a?rc(i,l,c):r}),a?s.jsx(Jf,{path:a,tooltipPath:o,previewPath:o||a,onOpen:f,active:i,className:"-my-0.5 min-w-0",textClassName:"text-xs",testId:"activity-header-file-reference"}):null,m?s.jsx("span",{className:"inline-flex min-w-0 items-center gap-1 text-muted-foreground/85",children:s.jsx(th,{added:d,deleted:p})}):null]}),h?s.jsx("div",{className:"mt-0.5 pl-4",children:s.jsx(LC,{edits:e,onOpenFilePreview:f})}):null]})}function qz(e){return e.split(/[\\/]/).pop()||e}function Vz(e,t,n,r){if(!t&&Number.isFinite(r)&&r>=0)return Math.round(r);const a=e.map(l=>l.createdAt).filter(l=>Number.isFinite(l));if(!a.length)return 0;const o=Math.min(...a),i=t&&o>1e12?n:Math.max(...a);return Math.max(0,i-o)}function Kz(e){const t=e>0&&e<1e3?1:Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;const n=Math.floor(t/60),r=t%60;return r?`${n}m ${r}s`:`${n}m`}function so(e){var t;return(t=e.traces)!=null&&t.length?e.traces:e.content.trim()?[e.content]:[]}function BC(e){return(e.agentUi??[]).filter(t=>t.kind.startsWith("subagent_"))}function Gz(e){return BC(e).length>0}function Yz({lines:e,active:t,evidenceByLine:n}){return s.jsx("ul",{className:"space-y-1",children:e.map((r,a)=>s.jsx(Jz,{line:r,active:t&&a===e.length-1,evidence:(n==null?void 0:n.get(r))??[]},`${r}-${a}`))})}function Qz({message:e,active:t,cliAppsByName:n,mcpPresetsByName:r}){if(Gz(e))return s.jsx(Xz,{message:e,active:t});const a=so(e),o=b$(e),i=C$(e),l=e$(e),c=Rz(e),d=new Set,p=[];let m=[];const f=y=>{m.length&&(p.push(s.jsx(Yz,{lines:m,active:t,evidenceByLine:l},`${e.id}:trace:${y}`)),m=[])};a.forEach((y,x)=>{const b=o.get(y)??qC(y);if(b){f(String(x)),d.add(b.key),p.push(s.jsx(yx,{runs:[b],active:t,cliAppsByName:n},`${e.id}:cli:${b.key}:${x}`));const g=l.get(y)??[];g.length&&p.push(s.jsx(Hd,{evidence:g},`${e.id}:cli-evidence:${b.key}:${x}`));return}const v=i.get(y)??tS(y);if(v){f(String(x)),d.add(v.key),p.push(s.jsx(bx,{runs:[v],active:t,mcpPresetsByName:r},`${e.id}:mcp:${v.key}:${x}`));const g=l.get(y)??[];g.length&&p.push(s.jsx(Hd,{evidence:g},`${e.id}:mcp-evidence:${v.key}:${x}`));return}m.push(y)}),f("tail");for(const y of o.values())d.has(y.key)||p.push(s.jsx(yx,{runs:[y],active:t,cliAppsByName:n},`${e.id}:cli:${y.key}:event`));for(const y of i.values())d.has(y.key)||p.push(s.jsx(bx,{runs:[y],active:t,mcpPresetsByName:r},`${e.id}:mcp:${y.key}:event`));if(c.length&&p.push(s.jsx(Hd,{evidence:c},`${e.id}:media-evidence`)),!p.length)return null;const h=n$(e,l,c);return s.jsx(IC,{title:h.title,icon:h.icon,children:p})}function Xz({message:e,active:t}){const n=BC(e),r=so(e),a=r.map((o,i)=>{const l=n[Math.min(i,Math.max(n.length-1,0))],c=(l==null?void 0:l.kind)??"subagent_status",d=typeof(l==null?void 0:l.data)=="object"&&(l!=null&&l.data)&&"phase"in l.data?String(l.data.phase??""):"",p=c==="subagent_reasoning"?"Agent 分析":c==="subagent_output"?"Agent 输出":"Agent 状态";return s.jsx(oo,{as:"li",icon:Ga,active:t&&i===r.length-1,tone:c==="subagent_output"?"success":"active",label:p,detail:d?`${d} · ${o}`:o,className:"subagent-activity-step",contentClassName:"subagent-activity-content",markerClassName:"subagent-activity-marker"},`${e.id}:subagent:${i}`)});return s.jsx(IC,{title:"Agent",icon:Ga,children:s.jsx("ul",{className:"space-y-1",children:a})})}function Jz({line:e,active:t,evidence:n=[]}){const r=o$(e),a=r.kind==="search"?It:r.kind==="done"?Xb:r.kind==="tool"?lw:_i;return s.jsx(oo,{as:"li",marker:s.jsx(a$,{trace:r,fallbackIcon:a,active:t}),active:t&&r.kind!=="done",tone:r.kind==="done"?"success":t?"active":"neutral",label:r.label,detail:r.detail,title:`${r.label}${r.detail?` ${r.detail}`:""}`,children:s.jsx(EC,{evidence:n})})}function Hd({evidence:e}){return s.jsx("ul",{className:"space-y-1",children:s.jsx(oo,{as:"li",icon:Xl,tone:"success",label:Zz(e),children:s.jsx(EC,{evidence:e})})})}function Zz(e){var n;const t=(n=e[0])==null?void 0:n.attachment.kind;return t==="image"?e.length>1?"Found images":"Found image":t==="video"?e.length>1?"Found videos":"Found video":e.length>1?"Found files":"Found file"}function e$(e){const t=new Map;for(const n of e.toolEvents??[]){const r=Tz(n);if(!r.length)continue;const a=ll(n);if(!a)continue;const o=t.get(a)??[];t.set(a,[...o,...r])}return t}function t$(e){return[...e.values()].flat()}function n$(e,t,n){var i;const r=[...so(e).map(l=>{var c;return((c=/^([a-zA-Z0-9_.-]+)\(/.exec(l.trim()))==null?void 0:c[1])??l}),...(e.toolEvents??[]).map(r$)].map(l=>l.toLowerCase()),a=[...t$(t),...n];return a.some(l=>l.attachment.kind==="image"||l.attachment.kind==="video")&&r.some(l=>/browser|screenshot|vision|image|video/.test(l))?{title:"Vision",icon:Xl}:r.some(l=>/browser|screenshot/.test(l))?{title:"Browser",icon:Xl}:r.some(l=>/web|search|fetch|read|open/.test(l))?{title:"Web",icon:It}:r.some(l=>/exec|shell|terminal|bash|run_cli_app|cli_anything/.test(l))?{title:"Shell",icon:Mc}:r.some(l=>/^mcp_|mcp/.test(l))?{title:"MCP",icon:ns}:(i=e.fileEdits)!=null&&i.length?{title:"Files",icon:_i}:a.length?{title:"Media",icon:Xl}:{title:"Working",icon:_i}}function r$(e){var t,n;return typeof((t=e.function)==null?void 0:t.name)=="string"?String((n=e.function)==null?void 0:n.name):typeof e.name=="string"?e.name:""}function a$({trace:e,fallbackIcon:t,active:n}){const[r,a]=u.useState(0),o=e.host?Wc(e.host)[r]:void 0;return u.useEffect(()=>a(0),[e.host]),e.url&&e.host&&o?s.jsx("span",{"data-testid":`activity-web-favicon-${e.host}`,className:A("grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px] border border-border/45 bg-background shadow-[inset_0_0_0_1px_rgba(0,0,0,0.02)]",n&&"animate-pulse"),"aria-hidden":!0,children:s.jsx("img",{src:o,alt:"",className:"h-3.5 w-3.5 object-contain",onError:()=>a(i=>i+1)})}):s.jsx(t,{className:A("h-3.5 w-3.5 shrink-0",e.kind==="done"?"text-emerald-500/75":n?"text-muted-foreground/75":"text-muted-foreground/45"),"aria-hidden":!0})}function o$(e){const t=e.trim(),n=/^([a-zA-Z0-9_.-]+)\((.*)\)$/.exec(t),r=(n==null?void 0:n[1])??"",a=(n==null?void 0:n[2])??"",o=m$(a,t),i=o?h$(o):"",l=!!o&&/\b(fetch(?:ing|ed)?|read(?:ing)?|opened?|opening)\b/i.test(t);return/search/i.test(r)?{kind:"search",label:"Searching",detail:gx(a,t)}:/fetch|read|open/i.test(r)||l?{kind:"tool",label:"Reading",detail:i||gx(a,t),url:o==null?void 0:o.href,host:o?WC(o.hostname):void 0}:s$(r)?{kind:"tool",label:"Command",detail:i$(a,t)}:r?{kind:"tool",label:"Using",detail:r}:/done|complete|success/i.test(t)?{kind:"done",label:"Done",detail:t}:{kind:"trace",label:"Working",detail:t}}function s$(e){const t=e.toLowerCase().split(".").pop()||e.toLowerCase();return new Set(["exec","exec_command","execute_command","run_command","run_shell","shell","terminal","bash","sh"]).has(t)}function i$(e,t){const n=l$(e)||t;return c$(n)}function l$(e){const t=e.trim();if(!t)return"";try{const n=JSON.parse(t);if(typeof n=="string")return n;if(!n||typeof n!="object"||Array.isArray(n))return"";const r=n;for(const a of["command","cmd","script","input"]){const o=r[a];if(typeof o=="string"&&o.trim())return o}}catch{return t.replace(/^["']|["']$/g,"")}return""}function c$(e){const n=u$(e.replace(/\r\n/g,` `)).split(` -`).map(o=>o.trim()).filter(Boolean),r=d$(n[0]||"command"),a=p$(r,92);return n.length<=1?a:`${a} · script, ${n.length} lines`}function u$(e){return e.replace(/\b((?:[A-Z0-9_]*)(?:API[_-]?KEY|TOKEN|SECRET|PASSWORD|PASS|AUTH)(?:[A-Z0-9_]*))=(?:"[^"]*"|'[^']*'|[^\s]+)/gi,"$1=••••").replace(/\b(Bearer)\s+[A-Za-z0-9._~+/=-]+/gi,"$1 ••••").replace(/(--(?:api-?key|token|secret|password)(?:=|\s+))(?:"[^"]*"|'[^']*'|[^\s]+)/gi,"$1••••").replace(/([?&](?:api_?key|token|secret|password)=)[^&\s]+/gi,"$1••••")}function d$(e){return e.replace(/\/Users\/[^/\s"']+/g,"~").replace(/\/private\/tmp\/[^\s"']+/g,"/tmp/…").replace(/\/var\/folders\/[^\s"']+/g,"/var/folders/…")}function p$(e,t){if(e.length<=t)return e;const n=Math.ceil((t-1)*.62),r=Math.floor((t-1)*.38);return`${e.slice(0,n)}…${e.slice(-r)}`}function m$(e,t){var a;const n=[],r=e.trim();if(r)try{HC(JSON.parse(r),n)}catch{n.push(r.replace(/^["']|["']$/g,""))}n.push(t);for(const o of n){const i=hx(o);if(i)return i;const l=(a=o.match(/https?:\/\/[^\s"'<>),]+/i))==null?void 0:a[0];if(l){const c=hx(l);if(c)return c}}return null}function HC(e,t){if(typeof e=="string"){t.push(e);return}if(!e||typeof e!="object")return;if(Array.isArray(e)){for(const r of e.slice(0,6))HC(r,t);return}const n=e;for(const r of["url","uri","href","link"])typeof n[r]=="string"&&t.push(n[r])}function hx(e){try{const t=new URL(e);return t.protocol!=="http:"&&t.protocol!=="https:"||f$(t.hostname)?null:t}catch{return null}}function f$(e){const t=e.replace(/^\[|\]$/g,"").toLowerCase();if(!t||t==="localhost"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":"))return!0;const n=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(t);if(n){const[,r,a]=n,o=Number(r),i=Number(a);return o===0||o===10||o===127||o===100&&i>=64&&i<=127||o===169&&i===254||o===172&&i>=16&&i<=31||o===192&&i===168}return t==="::1"||t.startsWith("fc")||t.startsWith("fd")||t.startsWith("fe80:")}function WC(e){return e.replace(/^www\./i,"").toLowerCase()}function h$(e){const t=WC(e.hostname),n=e.pathname&&e.pathname!=="/"?e.pathname:"";return`${t}${n}`}function gx(e,t){const n=e.trim();if(!n)return t;try{const r=JSON.parse(n),a=ZC(r);if(a)return a}catch{}return n.replace(/^["']|["']$/g,"")}const g$=new Set(["run_cli_app","cli_anything_run"]),vx={running:1,done:2,error:3},xx={running:1,done:2,error:3},Uu=/^mcp_([a-z0-9_-]+?)_(.+)$/i;function v$(e){return/^(run_cli_app|cli_anything_run)\(/.test(e.trim())}function x$(e){return Uu.test(e.trim().split("(",1)[0]??"")}function y$(e){return/^(write_file|edit_file|apply_patch)\(/.test(e.trim())}function qC(e,t="running"){const n=/^(run_cli_app|cli_anything_run)\((.*)\)$/.exec(e.trim());if(!n)return null;const r=n[2].trim();let a={};if(r)try{a=JSON.parse(r)}catch{return{key:e,name:"cli",args:[r],json:!1,status:t}}return QC(a,{key:e,status:t})}function VC(e){var r;const n=((r=e.function)==null?void 0:r.arguments)??e.arguments;if(typeof n!="string")return n??{};if(!n.trim())return{};try{return JSON.parse(n)}catch{return{args:[n]}}}function KC(e){return e==="error"?"error":e==="end"?"done":"running"}function GC(e){const t=e.error;if(typeof t=="string")return t;if(t&&typeof t=="object")return JSON.stringify(t)}function YC(e){var t,n;return typeof((t=e.function)==null?void 0:t.name)=="string"?String((n=e.function)==null?void 0:n.name):typeof e.name=="string"?e.name:""}function QC(e,t){if(!e||typeof e!="object"||Array.isArray(e))return{key:t.key,name:"cli",args:[],json:!1,status:t.status,error:t.error};const n=e,r=typeof n.name=="string"&&n.name.trim()?n.name.trim():"cli",o=(Array.isArray(n.args)?n.args:[]).filter(i=>typeof i=="string");return{key:t.key,name:r,args:o,json:n.json===!0||n.json==="true",workingDir:typeof n.working_dir=="string"?n.working_dir:void 0,status:t.status,error:t.error}}function XC(e){const t=YC(e);if(!g$.has(t))return null;const n=VC(e),r=e.call_id?`call:${e.call_id}`:`${t}:${JSON.stringify(n)}`;return QC(n,{key:r,status:KC(e.phase),error:GC(e)})}function b$(e){const t=new Map;for(const n of e.toolEvents??[]){const r=XC(n);if(!r)continue;const a=ll(n);a&&t.set(a,JC(t.get(a),r))}return t}function JC(e,t){return e?vx[t.status]>=vx[e.status]?{...e,...t}:e:t}function w$(e){const t=new Map;for(const n of e){if(n.kind!=="trace")continue;let r=!1;for(const a of n.toolEvents??[]){const o=XC(a);o&&(r=!0,t.set(o.key,JC(t.get(o.key),o)))}if(!r)for(const a of so(n)){const o=qC(a);!o||t.has(o.key)||t.set(o.key,o)}}return[...t.values()]}function k$(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")||e}function Fl(e){return typeof e=="string"&&e.trim()?e.trim():typeof e=="number"||typeof e=="boolean"?String(e):null}function ZC(e){if(!e||typeof e!="object"||Array.isArray(e))return Fl(e)??"";const t=e;for(const r of["url","query","q","path","name","id","title","message","text"]){const a=Fl(t[r]);if(a)return`${r}: ${a}`}return Object.entries(t).filter(([,r])=>Fl(r)!==null).slice(0,2).map(([r,a])=>`${r}: ${Fl(a)}`).join(" · ")}function eS(e,t,n){const r=Uu.exec(e);if(!r)return null;const a=r[1].toLowerCase();return{key:n.key,presetName:a,displayName:k$(a),toolName:r[2],argsPreview:ZC(t),status:n.status,error:n.error}}function tS(e,t="running"){const n=/^([a-z0-9_-]+)\((.*)\)$/i.exec(e.trim());if(!n||!Uu.test(n[1]))return null;const r=n[2].trim();let a={};if(r)try{a=JSON.parse(r)}catch{a=r}return eS(n[1],a,{key:e,status:t})}function nS(e){const t=YC(e);if(!Uu.test(t))return null;const n=VC(e),r=e.call_id?`call:${e.call_id}`:`${t}:${JSON.stringify(n)}`;return eS(t,n,{key:r,status:KC(e.phase),error:GC(e)})}function C$(e){const t=new Map;for(const n of e.toolEvents??[]){const r=nS(n);if(!r)continue;const a=ll(n);a&&t.set(a,rS(t.get(a),r))}return t}function rS(e,t){return e?xx[t.status]>=xx[e.status]?{...e,...t}:e:t}function S$(e){const t=new Map;for(const n of e){if(n.kind!=="trace")continue;let r=!1;for(const a of n.toolEvents??[]){const o=nS(a);o&&(r=!0,t.set(o.key,rS(t.get(o.key),o)))}if(!r)for(const a of so(n)){const o=tS(a);!o||t.has(o.key)||t.set(o.key,o)}}return[...t.values()]}function N$(e){return/\s/.test(e)?JSON.stringify(e):e}function j$(e){return[...e.json?["--json"]:[],...e.args].map(N$).join(" ")}function A$(e,t){return e==="error"?"message.cliActivityFailedOne":t&&e==="running"?"message.cliActivityRunningOne":"message.cliActivityRanOne"}function _$(e,t){return e==="error"?"Failed @{{name}}":`${t&&e==="running"?"Using":"Used"} @{{name}}`}function P$(e,t){return e.some(n=>n.status==="error")?"message.cliActivityFailedMany":t&&e.some(n=>n.status==="running")?"message.cliActivityRunningMany":"message.cliActivityRanMany"}function T$(e,t){return e.some(n=>n.status==="error")?"{{count}} CLI apps failed":`${t&&e.some(n=>n.status==="running")?"Using":"Used"} {{count}} CLI apps`}function R$(e,t){return e.status==="error"?"message.cliRunFailed":t&&e.status==="running"?"message.cliRunRunning":"message.cliRunRan"}function M$(e,t){return e.status==="error"?"Failed":t&&e.status==="running"?"Using":"Used"}function E$(e,t){return e==="error"?"message.mcpActivityFailedOne":t&&e==="running"?"message.mcpActivityRunningOne":"message.mcpActivityRanOne"}function I$(e,t){return e==="error"?"Failed {{name}}":`${t&&e==="running"?"Using":"Used"} {{name}}`}function L$(e,t){return e.some(n=>n.status==="error")?"message.mcpActivityFailedMany":t&&e.some(n=>n.status==="running")?"message.mcpActivityRunningMany":"message.mcpActivityRanMany"}function D$(e,t){return e.some(n=>n.status==="error")?"{{count}} MCP calls failed":`${t&&e.some(n=>n.status==="running")?"Using":"Used"} {{count}} MCP tools`}function O$(e,t){return e.status==="error"?"message.mcpRunFailed":t&&e.status==="running"?"message.mcpRunRunning":"message.mcpRunRan"}function F$(e,t){return e.status==="error"?"Failed":t&&e.status==="running"?"Using":"Used"}function rc(e,t,n){return t?"Failed":n?e?"Deleting":"Deleted":e?"Editing":"Edited"}function z$(e,t,n){return t?"message.fileActivityFailedOne":n?e?"message.fileActivityDeletingOne":"message.fileActivityDeletedOne":e?"message.fileActivityEditingOne":"message.fileActivityEditedOne"}function $$(e,t,n){return t?"message.fileActivityFailedMany":n?e?"message.fileActivityDeletingMany":"message.fileActivityDeletedMany":e?"message.fileActivityEditingMany":"message.fileActivityEditedMany"}function U$(e){return e.call_id?`${e.call_id}|${e.tool}`:`${e.tool}|${e.path}`}function B$(e){var n;const t=[];for(const r of e)r.kind==="trace"&&((n=r.fileEdits)!=null&&n.length)&&t.push(...r.fileEdits);return t}function H$(e){const t=[],n=new Map;for(const r of e){const a=U$(r);n.has(a)||t.push(a),n.set(a,r)}return t.map(r=>n.get(r)).filter(Boolean)}function W$(e,t){const n=[],r=new Map;for(const a of H$(e)){const o=a.path||a.call_id||a.tool;let i=r.get(o);if(i||(i={key:o,path:a.path||"",absolute_path:a.absolute_path,added:0,deleted:0,approximate:!1,binary:!1,pending:!1,hasSuccessfulChange:!1,hasActiveEditing:!1,hasFailed:!1,operation:void 0},r.set(o,i),n.push(o)),a.path&&!i.path&&(i.path=a.path),a.absolute_path&&(i.absolute_path=a.absolute_path),a.operation==="delete"&&(i.operation="delete"),i.pending=i.pending||!!a.pending||!a.path,!a.path&&a.pending){t&&a.status==="editing"&&(i.hasActiveEditing=!0,i.approximate=i.approximate||!!a.approximate,a.binary||(i.added+=a.added,i.deleted+=a.deleted));continue}if(t&&a.status==="editing"){i.hasActiveEditing=!0,i.binary=i.binary||!!a.binary,i.approximate=i.approximate||!!a.approximate,a.binary||(i.added+=a.added,i.deleted+=a.deleted);continue}if(a.status==="error"){i.hasFailed=!0,i.error=a.error??i.error;continue}i.hasSuccessfulChange=!0,i.binary=i.binary||!!a.binary,i.approximate=t&&(i.approximate||!!a.approximate),a.binary||(i.added+=a.added,i.deleted+=a.deleted)}return n.flatMap(a=>{const o=r.get(a);if(!o.path&&!o.hasActiveEditing&&!o.hasSuccessfulChange&&!o.hasFailed)return[];const i=o.hasActiveEditing?"editing":o.hasSuccessfulChange?"done":o.hasFailed?"error":"done";return[{key:o.key,path:o.path,absolute_path:o.absolute_path,added:o.added,deleted:o.deleted,approximate:o.approximate,binary:o.binary,status:i,operation:o.operation,pending:o.pending&&!o.path,error:o.error}]})}function yx({runs:e,active:t,cliAppsByName:n}){return e.length===0?null:s.jsx("ul",{className:"space-y-1","data-testid":"activity-cli-runs",children:e.map(r=>s.jsx(q$,{run:r,active:t,app:n.get(r.name.toLowerCase())},r.key))})}function q$({run:e,active:t,app:n}){const{t:r}=se(),[a,o]=u.useState(0),i=j$(e),l=e.status==="error",c=t&&e.status==="running",d=l?"#DC2626":(n==null?void 0:n.brand_color)||"#0891B2",m=u.useMemo(()=>ao(n==null?void 0:n.logo_url),[n==null?void 0:n.logo_url])[a],f=r(R$(e,t),{defaultValue:M$(e,t)});return u.useEffect(()=>o(0),[n==null?void 0:n.logo_url]),s.jsx(oo,{as:"li",active:c,tone:l?"error":c?"active":e.status==="done"?"success":"neutral",title:`${f} @${e.name}${i?` ${i}`:""}${e.error?` ${e.error}`:""}`,label:f,marker:s.jsx("span",{"data-testid":`activity-cli-logo-${e.name.toLowerCase()}`,className:A("grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px] border text-[6.5px] font-semibold text-white",c&&"animate-pulse"),style:{borderColor:Kc(d,22),backgroundColor:m?"hsl(var(--background))":d,boxShadow:c?`0 0 0 3px ${Kc(d,9)}`:void 0},"aria-hidden":!0,children:m?s.jsx("img",{src:m,alt:"",className:"h-[78%] w-[78%] object-contain",onError:()=>o(h=>h+1)}):n?cC(n).slice(0,2):s.jsx(Mc,{className:"h-3 w-3","aria-hidden":!0})}),children:s.jsxs("div",{className:"-mt-0.5 flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5",children:[s.jsxs("span",{className:"max-w-[11rem] shrink-0 truncate font-mono text-[12.5px] font-semibold text-foreground/90",children:["@",e.name]}),l?s.jsx(ja,{className:"h-3 w-3 shrink-0 translate-y-[0.16em] text-destructive/75","aria-hidden":!0}):null,i?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/36",children:"·"}),s.jsx("span",{className:"min-w-0 truncate font-mono text-[12px] text-muted-foreground/72",children:i})]}):null,e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-destructive/72",children:e.error})]}):null,e.workingDir&&!e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-muted-foreground/55",children:e.workingDir})]}):null]})})}function bx({runs:e,active:t,mcpPresetsByName:n}){return e.length===0?null:s.jsx("ul",{className:"space-y-1","data-testid":"activity-mcp-runs",children:e.map(r=>s.jsx(V$,{run:r,active:t,preset:n.get(r.presetName.toLowerCase())},r.key))})}function V$({run:e,active:t,preset:n}){const{t:r}=se(),[a,o]=u.useState(0),i=e.status==="error",l=t&&e.status==="running",c=i?"#DC2626":(n==null?void 0:n.brand_color)||"#6D5DF6",p=u.useMemo(()=>ao(n==null?void 0:n.logo_url),[n==null?void 0:n.logo_url])[a],m=(n==null?void 0:n.display_name)||e.displayName,f=r(O$(e,t),{defaultValue:F$(e,t)});return u.useEffect(()=>o(0),[n==null?void 0:n.logo_url]),s.jsx(oo,{as:"li",active:l,tone:i?"error":l?"active":e.status==="done"?"success":"neutral",title:`${f} ${m} ${e.toolName}${e.argsPreview?` ${e.argsPreview}`:""}${e.error?` ${e.error}`:""}`,label:f,marker:s.jsx("span",{"data-testid":`activity-mcp-logo-${e.presetName.toLowerCase()}`,className:A("grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px] border text-[6.5px] font-semibold text-white",l&&"animate-pulse"),style:{borderColor:Kc(c,22),backgroundColor:p?"hsl(var(--background))":c,boxShadow:l?`0 0 0 3px ${Kc(c,9)}`:void 0},"aria-hidden":!0,children:p?s.jsx("img",{src:p,alt:"",className:"h-[78%] w-[78%] object-contain",onError:()=>o(h=>h+1)}):n?uC(n).slice(0,2):s.jsx(ns,{className:"h-3 w-3","aria-hidden":!0})}),children:s.jsxs("div",{className:"-mt-0.5 flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5",children:[s.jsx("span",{className:"max-w-[12rem] shrink-0 truncate text-[12.5px] font-semibold text-foreground/90",children:m}),i?s.jsx(ja,{className:"h-3 w-3 shrink-0 translate-y-[0.16em] text-destructive/75","aria-hidden":!0}):null,s.jsx("span",{className:"shrink-0 text-muted-foreground/36",children:"·"}),s.jsxs("span",{className:"min-w-0 truncate font-mono text-[12px] text-muted-foreground/72",children:[e.toolName,e.argsPreview?` · ${e.argsPreview}`:""]}),e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-destructive/72",children:e.error})]}):null]})})}function Kc(e,t){if(/^#[0-9a-f]{6}$/i.test(e)){const n=Math.round(t/100*255).toString(16).padStart(2,"0");return`${e}${n}`}return`color-mix(in srgb, ${e} ${t}%, transparent)`}function K$(e,t=!1){const n=wz(e,{preserveTrailingActivity:t});return t?Z$(n):n}function G$(e){const t=new Array(e.length).fill(!0);let n=!1;for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.type==="message"&&a.message.role==="user"){n=!1;continue}a.type==="message"&&a.message.role==="assistant"&&(t[r]=!n),n=!0}return t}function Y$({messages:e,isStreaming:t=!1,hiddenUserMessageCount:n=0,cliApps:r=[],mcpPresets:a=[],forkBoundaryMessageCount:o=null,onOpenFilePreview:i,onForkFromMessage:l}){const{t:c}=se(),d=u.useMemo(()=>K$(e,t),[t,e]),p=u.useMemo(()=>Q$(d,o),[o,d]),m=u.useMemo(()=>G$(d),[d]),f=u.useMemo(()=>t?J$(d):new Set,[t,d]),h=u.useMemo(()=>e8(d),[d]);let y=n;return s.jsx("div",{className:"flex w-full flex-col",children:d.map((x,b)=>{const v=d[b-1],g=b>0?n8(v):"",w=d[b+1],k=x.type==="activity"&&(w==null?void 0:w.type)==="message"&&w.message.role==="assistant",C=x.type==="message"&&x.message.role==="user"?x.message.id:void 0,j=x.type==="message"&&x.message.role==="assistant"&&m[b]?y:void 0;return x.type==="message"&&x.message.role==="user"&&(y+=1),s.jsxs(u.Fragment,{children:[s.jsx("div",{className:g,"data-user-prompt-id":C,children:x.type==="activity"?s.jsx(Bz,{messages:x.messages,isTurnStreaming:f.has(b),hasBodyBelow:k,turnLatencyMs:x.turnLatencyMs,cliApps:r,mcpPresets:a,onOpenFilePreview:i}):s.jsx(sz,{message:x.message,showAssistantCopyAction:x.message.role==="assistant"?m[b]:!0,cliApps:r,mcpPresets:a,onOpenFilePreview:i,onForkFromHere:l&&j!==void 0?()=>l(j):void 0})}),b===p?s.jsx(X$,{label:c("thread.forkedFromHistory")}):null]},h[b])})})}function Q$(e,t){if(t==null||t<=0)return null;let n=0;for(let r=0;r=t)return r}return null}function X$({label:e}){return s.jsxs("div",{className:"my-5 flex items-center gap-3 text-[11px] text-muted-foreground/80",children:[s.jsx("span",{"aria-hidden":!0,className:"h-px flex-1 bg-border/70"}),s.jsx("span",{className:"shrink-0",children:e}),s.jsx("span",{"aria-hidden":!0,className:"h-px flex-1 bg-border/70"})]})}function J$(e){const t=new Set;let n=!1;for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.type==="activity"){n||(t.add(r),n=!0);continue}if(!(a.message.role==="assistant"&&a.message.isStreaming)&&a.message.role==="user")break}return t}function Z$(e){var l;if(e.length<2)return e;let t=e.length-1;for(;t>0;){const c=e[t-1];if(c.type==="message"&&c.message.role==="user")break;t-=1}const n=e.slice(t);let r=-1;for(let c=n.length-1;c>=0;c-=1)if(((l=n[c])==null?void 0:l.type)==="activity"){r=c;break}if(r===-1||r===n.length-1||n.slice(r+1).some(c=>c.type!=="activity"))return e;const o=n[r];if(!o||o.type!=="activity")return e;const i=[...n.slice(0,r),...n.slice(r+1),o];return[...e.slice(0,t),...i]}function e8(e){const t=new Map;return e.map((n,r)=>{const a=t8(n,r);if(!a.startsWith("turn-")||a.endsWith("-user"))return a;const o=(t.get(a)??0)+1;return t.set(a,o),`${a}-${o}`})}function t8(e,t){if(e.type==="activity"){const r=e.messages[0],a=wx(r,"activity");if(a)return a;const o=r==null?void 0:r.id;return o!=null?`activity-${o}`:`activity-idx-${t}`}const n=wx(e.message);return n||e.message.id}function wx(e,t){if(!(e!=null&&e.turnId))return null;const n=e.turnPhase??t??e.kind??e.role;return e.role==="user"?`turn-${e.turnId}-user`:e.kind==="trace"?`turn-${e.turnId}-${n}-${e.activitySegmentId??"activity"}`:`turn-${e.turnId}-${n}`}function n8(e){if(e.type==="activity")return"mt-4";const t=e.message;return t.kind==="trace"||t.role==="assistant"&&t.content.trim().length===0&&(!!t.reasoning||!!t.reasoningStreaming)?"mt-2":"mt-5"}const kx=48,r8=96,a8=192,o8=16,s8=80,Wd=18,Cx=160,Sx=120;function i8(e,t){if(e.length<=t)return e;let n=Math.max(0,e.length-t);for(;n>0&&Ba(e[n])&&Ba(e[n-1]);)n-=1;return e.slice(n)}function ym(e){return e instanceof HTMLElement?e.isContentEditable||e instanceof HTMLTextAreaElement?!0:e instanceof HTMLInputElement?!["button","checkbox","color","file","hidden","image","radio","range","reset","submit"].includes(e.type):!1:!1}function l8(e){const t=window.visualViewport;if(!t)return 0;const n=document.activeElement;if(!ym(n)||!(e!=null&&e.contains(n)))return 0;const a=(window.innerHeight||document.documentElement.clientHeight)-t.height-t.offsetTop;return a>=s8?Math.ceil(a):0}const c8=u.forwardRef(function({messages:t,isStreaming:n,composer:r,emptyState:a,scrollToBottomSignal:o=0,scrollToLatestUserPromptSignal:i=0,conversationKey:l=null,showScrollToBottomButton:c=!0,cliApps:d=[],mcpPresets:p=[],forkBoundaryMessageCount:m=null,hasMoreBefore:f=!1,loadingOlder:h=!1,userMessageOffset:y=0,onLoadOlder:x,onOpenFilePreview:b,onForkFromMessage:v},g){const{t:w}=se(),k=u.useRef(null),C=u.useRef(null),j=u.useRef(null),N=u.useRef(null),P=u.useRef(l),L=u.useRef(!0),_=u.useRef(null),T=u.useRef([]),R=u.useRef(null),D=u.useRef(0),K=u.useRef(null),G=u.useRef(null),W=u.useRef(!1),[H,E]=u.useState(!0),[F,X]=u.useState(0),[Q,re]=u.useState(0),[ue,pe]=u.useState(Cx),ce=t.length>0,z=u.useMemo(()=>i8(t,ue),[t,ue]),q=t.length-z.length,O=y+(q>0?t.slice(0,q).filter(J=>J.role==="user").length:0),te=m!==null&&m>q?m-q:null,ie=Q+(F>0?F+o8:a8),ve=Q>0?{bottom:Q}:void 0,me=u.useCallback(()=>{for(const J of T.current)window.cancelAnimationFrame(J);T.current=[]},[]),Z=u.useCallback(J=>{R.current=J},[]),ke=u.useCallback((J=!1)=>{var Se;const ee=k.current,V=N.current,xe=J?"smooth":"auto";if(ee){const De=Math.max(0,ee.scrollHeight-ee.clientHeight);try{(Se=ee.scrollTo)==null||Se.call(ee,{top:De,behavior:xe}),J||(ee.scrollTop=De)}catch{try{ee.scrollTop=De}catch{}}}else V&&V.scrollIntoView({block:"end",behavior:xe});W.current=!1,E(!0)},[]),ye=u.useCallback(J=>{var De;const ee=k.current;if(!ee)return!1;const V=ui(ee,J);if(!V)return!1;const xe=Math.max(0,Zf(ee,V)-16);Z(xe);try{(De=ee.scrollTo)==null||De.call(ee,{top:xe,behavior:"auto"}),ee.scrollTop=xe}catch{try{ee.scrollTop=xe}catch{}}const Se=ee.scrollHeight-xe-ee.clientHeight{const xe=(V==null?void 0:V.force)??!1;me();const Se=()=>{!xe&&W.current||ke(J)},De=Ve=>{if(Ve<=0)return;const he=window.requestAnimationFrame(()=>{T.current=T.current.filter(Xe=>Xe!==he),!(!xe&&W.current)&&(ke(J),De(Ve-1))});T.current.push(he)};Se(),De(ee-1)},[me,ke]),Ie=u.useCallback(()=>{const J=k.current;if(J&&(G.current={height:J.scrollHeight,top:J.scrollTop}),W.current=!0,K.current=null,E(!1),q>0){pe(ee=>Math.min(t.length,ee+Sx));return}f&&x&&!h&&(pe(ee=>ee+Sx),x())},[f,q,h,t.length,x]),Pe=u.useCallback(()=>{const J=k.current;!J||!ce||L.current||W.current&&(J.scrollTop>r8||q<=0&&!f||Ie())},[ce,f,q,Ie]),Le=u.useCallback(J=>{const ee=k.current;if(ee&&ui(ee,J)){hm(ee,J);return}const V=t.findIndex(xe=>xe.id===J);V<0||(_.current=J,W.current=!0,K.current=null,E(!1),pe(xe=>Math.max(xe,t.length-V)))},[t]);u.useImperativeHandle(g,()=>({jumpToUserPrompt:Le}),[Le]);const Te=u.useCallback(()=>{const J=j.current;if(!J)return;const ee=J.getBoundingClientRect().height||J.offsetHeight;X(V=>Math.abs(V-ee)<1?V:ee)},[]);return u.useLayoutEffect(()=>{const J=()=>{const V=k.current,xe=l8(V),Se=document.activeElement,De=ce&&ym(Se)&&!!(V!=null&&V.contains(Se));re(Ve=>Math.abs(Ve-xe)<1?Ve:xe),De&&(W.current=!1,be(!1,Wd,{force:!0}))};J();const ee=window.visualViewport;return ee==null||ee.addEventListener("resize",J),ee==null||ee.addEventListener("scroll",J),window.addEventListener("resize",J),document.addEventListener("focusin",J),document.addEventListener("focusout",J),()=>{ee==null||ee.removeEventListener("resize",J),ee==null||ee.removeEventListener("scroll",J),window.removeEventListener("resize",J),document.removeEventListener("focusin",J),document.removeEventListener("focusout",J)}},[ce,be]),u.useLayoutEffect(()=>{if(Q>0){W.current=!1,be(!1,Wd,{force:!0});return}W.current||be(!1,4)},[Q,be]),u.useEffect(()=>{const J=k.current;if(!J)return;const ee=()=>{const V=document.activeElement;!ce||!ym(V)||!J.contains(V)||(W.current=!1,be(!1,Wd,{force:!0}))};return document.addEventListener("focusin",ee),()=>document.removeEventListener("focusin",ee)},[ce,be]),u.useEffect(()=>{o<=0||(W.current=!1,be(!1,8))},[o,be]),u.useLayoutEffect(()=>{if(i<=D.current)return;const J=t[t.length-1];!J||J.role!=="user"||(D.current=i,me(),K.current=J.id,ye(J.id)||(K.current=null))},[me,t,i,ye]),u.useLayoutEffect(()=>{P.current!==l&&(P.current=l,L.current=!0,W.current=!1,K.current=null,E(!0),pe(Cx))},[l]),u.useLayoutEffect(()=>{const J=K.current;if(!J||W.current)return;const ee=t.findIndex(xe=>xe.id===J);if(ee<0){K.current=null;return}t.slice(ee+1).some(xe=>xe.role!=="user")&&be(!1,n?3:1)},[n,t,be]),u.useLayoutEffect(()=>{ce&&(W.current||be(!1,n?4:2,{force:!0}))},[ce,n,be,z]),u.useLayoutEffect(()=>{var Se;const J=G.current;if(!J)return;const ee=k.current;if(G.current=null,!ee)return;const V=ee.scrollHeight-J.height,xe=J.top+V;try{ee.scrollTop=xe}catch{try{(Se=ee.scrollTo)==null||Se.call(ee,{top:xe,behavior:"auto"})}catch{}}},[z.length,t.length]),u.useLayoutEffect(()=>{const J=_.current,ee=k.current;if(!J||!ee||!ui(ee,J))return;_.current=null;const V=window.requestAnimationFrame(()=>hm(ee,J));return()=>window.cancelAnimationFrame(V)},[z.length]),u.useLayoutEffect(()=>{if(L.current){if(!l){L.current=!1,be(!1,4);return}be(!1,8),ce&&(L.current=!1)}},[l,ce,t,be]),u.useLayoutEffect(()=>{Te()},[r,ce,Te]),u.useEffect(()=>me,[me]),u.useEffect(()=>{const J=j.current;if(!J||typeof ResizeObserver>"u")return;const ee=new ResizeObserver(()=>Te());return ee.observe(J),()=>ee.disconnect()},[ce,Te]),u.useEffect(()=>{const J=k.current;if(!J)return;const ee=(xe=!0)=>{const De=J.scrollHeight-J.scrollTop-J.clientHeightee(!0);return J.addEventListener("scroll",V,{passive:!0}),()=>J.removeEventListener("scroll",V)},[Pe]),s.jsxs("div",{className:"relative flex min-h-0 flex-1 overflow-hidden",children:[s.jsxs("div",{ref:k,className:A("thread-viewport-scrollbar absolute inset-0 overflow-y-auto scroll-auto scrollbar-thin","[&::-webkit-scrollbar]:w-1.5","[&::-webkit-scrollbar-thumb]:rounded-full","[&::-webkit-scrollbar-thumb]:bg-muted-foreground/30","[&::-webkit-scrollbar-track]:bg-transparent"),style:ve,children:[ce?s.jsxs("div",{ref:C,className:"mx-auto flex min-h-full w-full max-w-[64rem] flex-col",children:[s.jsx("div",{"data-testid":"thread-message-region",className:"flex min-h-0 flex-1 flex-col justify-start px-3 pb-4 pt-4 sm:px-4",children:s.jsx("div",{className:"mx-auto w-full max-w-[49.5rem]",children:s.jsx(Y$,{messages:z,isStreaming:n,hiddenUserMessageCount:O,cliApps:d,mcpPresets:p,forkBoundaryMessageCount:te,onOpenFilePreview:b,onForkFromMessage:v})})}),s.jsx("div",{ref:j,"data-testid":"thread-composer-dock",className:"sticky bottom-0 z-10 bg-background",children:s.jsx("div",{className:"px-3 pb-[calc(0.75rem+env(safe-area-inset-bottom))] sm:px-4",children:r})})]}):s.jsx("div",{ref:C,className:"mx-auto flex min-h-full w-full max-w-[72rem] flex-col px-3 sm:px-4",children:s.jsx("div",{className:"flex w-full flex-1 items-center justify-center py-6 sm:py-12",children:s.jsxs("div",{className:"relative flex w-full max-w-[58rem] flex-col items-center gap-5 sm:block",children:[s.jsx("div",{className:"flex justify-center sm:absolute sm:inset-x-0 sm:bottom-[calc(100%+1.5rem)]",children:a}),s.jsx("div",{className:"w-full",children:r})]})})}),s.jsx("div",{ref:N,"aria-hidden":!0,className:"h-px"})]}),s.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 h-6 bg-gradient-to-b from-background to-transparent"}),ce?s.jsx(VF,{messages:z,scrollRef:k,bottomOffset:ie}):null,c&&!H&&s.jsx("div",{className:"absolute left-1/2 z-20 -translate-x-1/2",style:{bottom:ie},children:s.jsx(fe,{variant:"outline",size:"icon",onClick:()=>be(!0,1,{force:!0}),className:A("h-8 w-8 rounded-full shadow-md","bg-background/90 backdrop-blur","animate-in fade-in-0 zoom-in-95"),"aria-label":w("thread.scrollToBottom"),children:s.jsx(Uj,{className:"h-4 w-4"})})})]})}),u8=new Set(["write_file","edit_file","apply_patch"]);function Ra(e,t){const n={};typeof e.turn_id=="string"&&e.turn_id.length>0&&(n.turnId=e.turn_id);const r=e.turn_phase??t;return r&&(n.turnPhase=r),typeof e.turn_seq=="number"&&Number.isFinite(e.turn_seq)&&(n.turnSeq=e.turn_seq),n}function ds(e,t){return!t.turnId||!e.turnId||e.turnId===t.turnId}function Nx(e,t,n={}){for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.kind!=="trace"){if(a.role==="assistant"&&a.isStreaming&&!t.has(a.id)&&ds(a,n))return r;if(a.role==="user")break}}return null}function jx(e,t,n,r={}){for(let o=e.length-1;o>=0;o-=1){const i=e[o];if(i.role==="user"||i.kind==="trace")break;if(i.role!=="assistant")continue;if(!ds(i,r))break;const l=i.activitySegmentId??(n==null?void 0:n.ensure());if(i.content.length>0)break;if(i.reasoningStreaming||i.reasoning!==void 0||i.isStreaming){const d={...i,reasoning:(i.reasoning??"")+t,reasoningStreaming:!0,...l?{activitySegmentId:l}:{},...r};return[...e.slice(0,o),d,...e.slice(o+1)]}break}const a=n==null?void 0:n.ensure();return[...e,{id:crypto.randomUUID(),role:"assistant",content:"",isStreaming:!0,reasoning:t,reasoningStreaming:!0,...a?{activitySegmentId:a}:{},...r,createdAt:Date.now()}]}function d8(e,t={}){const n=e[e.length-1];return!n||n.role!=="assistant"||n.kind==="trace"||n.content.length>0||!n.isStreaming||!ds(n,t)?null:e.length-1}function qd(e,t,n){const r=e.slice();return r[t]=n,r}function Ax(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(!n.reasoningStreaming)continue;const r=n.latencyMs===void 0&&Number.isFinite(n.createdAt)&&n.createdAt>1e12?Math.max(0,Math.round(Date.now()-n.createdAt)):n.latencyMs,a={...n,reasoningStreaming:!1,...r!==void 0?{latencyMs:r}:{}};return[...e.slice(0,t),a,...e.slice(t+1)]}return e}function aS(e){var t;return e.role==="assistant"&&e.kind!=="trace"&&e.content.trim().length===0&&!!e.reasoning&&!e.reasoningStreaming&&!((t=e.media)!=null&&t.length)}function p8(e){return(e==null?void 0:e.kind)==="trace"}function _x(e){return e.filter((t,n)=>aS(t)?p8(e[n+1]):!0)}function m8(e,t,n){for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.role==="assistant"&&a.kind!=="trace"&&(!n||!a.turnId||a.turnId===n)){const o={...a,latencyMs:t,isStreaming:!1};return[...e.slice(0,r),o,...e.slice(r+1)]}}return e}function f8(e,t){const n=e[e.length-1];return!n||!aS(n)||!ds(n,t)?[...e,{id:crypto.randomUUID(),role:"assistant",createdAt:Date.now(),...t}]:[...e.slice(0,-1),{...n,...t,isStreaming:!1,reasoningStreaming:!1}]}function ps(e){return e.call_id?`${e.call_id}|${e.tool}`:`${e.tool}|${e.path}`}function nh(e){const t=e.function,n=typeof e.name=="string"?e.name:typeof(t==null?void 0:t.name)=="string"?t.name:"",r=typeof e.call_id=="string"?e.call_id:"";return!n||!r||!u8.has(n)?null:`${r}|${n}`}function h8(e,t){const n=nh(t);return n?e.some(r=>{var a;return(a=r.fileEdits)==null?void 0:a.some(o=>ps(o)===n)}):!1}function g8(e,t){return t.length===0?t:t.filter(n=>!h8(e,n))}function v8(e,t){var d;const n=new Set(t.map(ps)),r=e.toolEvents??[];if(!r.length||n.size===0)return e;const a=new Set,o=[];let i=!1;for(const p of r){const m=nh(p);if(m&&n.has(m)){i=!0;for(const f of UC([p]))a.add(f);continue}o.push(p)}if(!i)return e;const c=((d=e.traces)!=null&&d.length?e.traces:e.content?[e.content]:[]).filter(p=>!a.has(p));return{...e,traces:c,content:c[c.length-1]??"",toolEvents:o.length?o:void 0}}function x8(e){if(!e||!e.tool||!e.path&&!e.pending)return null;const t=e.phase==="error"?"error":e.phase==="end"?"done":"editing",n={...e,call_id:e.call_id||`${e.tool}:${e.path}`,added:Number.isFinite(e.added)?Math.max(0,Math.round(e.added)):0,deleted:Number.isFinite(e.deleted)?Math.max(0,Math.round(e.deleted)):0,status:e.status==="error"||e.status==="done"||e.status==="editing"?e.status:t};return e.pending&&!e.path&&(n.pending=!0),n}function Px(e,t){const n=[...e??[]],r=new Map(n.map((a,o)=>[ps(a),o]));for(const a of t){const o=x8(a);if(!o)continue;const i=ps(o),l=r.get(i);if(l===void 0){r.set(i,n.length),n.push(o);continue}const c={...n[l],...o};o.path&&!o.pending&&delete c.pending,n[l]=c}return n}function y8(e,t,n){const r=new Set(n.map(ps));for(let a=e.length-1;a>=0;a-=1){const o=e[a];if(o.role==="user")break;if(o.kind==="trace"){if(t&&o.activitySegmentId===t)return a;for(const i of o.fileEdits??[])if(r.has(ps(i)))return a;for(const i of o.toolEvents??[]){const l=nh(i);if(l&&r.has(l))return a}}}return null}function b8(e,t){const n=[...e??[]];for(const r of t??[])n.push(r);return n.length?n:void 0}function w8(e,t=[],n=!1,r){const{client:a}=wr(),[o,i]=u.useState(t),l=Vc(t),[c,d]=u.useState(l||n),[p,m]=u.useState(null),[f,h]=u.useState(void 0),[y,x]=u.useState(null),b=u.useRef(null),v=u.useRef(null),g=u.useRef(new Set),w=u.useRef(null),k=u.useRef(null),C=u.useRef(0),j=u.useRef([]),N=u.useRef(null),P=u.useRef(!1),L=u.useRef(null);u.useEffect(()=>a.onError(z=>x(z)),[a]);const _=u.useCallback(()=>x(null),[]),T=u.useCallback(()=>{N.current!==null&&(window.cancelAnimationFrame(N.current),N.current=null),j.current=[]},[]),R=u.useCallback((z=!0)=>{C.current+=1;const q=`activity-${C.current}`;return z&&(w.current=q),q},[]),D=u.useCallback(()=>R(!0),[R]),K=u.useCallback(()=>R(!1),[R]),G=u.useCallback(()=>w.current?w.current:D(),[D]),W=u.useCallback(()=>{w.current=null,k.current=null},[]),H=u.useCallback(()=>{var q,O;const z=((q=b.current)==null?void 0:q.messageId)??((O=v.current)==null?void 0:O.id);return z&&g.current.add(z),b.current=null,v.current=null,!!z},[]),E=u.useCallback((z,q={})=>{const O=v.current;if(!O)return null;const te=z[O.index];if((te==null?void 0:te.id)===O.id&&te.role==="assistant"&&te.kind!=="trace"&&te.isStreaming&&ds(te,q))return O.index;const ie=z.findIndex(me=>me.id===O.id);if(ie===-1)return v.current=null,null;const ve=z[ie];return ve.role!=="assistant"||ve.kind==="trace"||!ve.isStreaming||!ds(ve,q)?(v.current=null,null):(v.current={id:O.id,index:ie},ie)},[]),F=u.useCallback((z,q,O={})=>{let te=z,ie=E(te,O);if(ie===null&&(ie=d8(te,O)),ie===null&&(ie=Nx(te,g.current,O)),ie===null){const Z=crypto.randomUUID();te=[...te,{id:Z,role:"assistant",content:"",isStreaming:!0,createdAt:Date.now()}],ie=te.length-1}const ve=te[ie],me={...ve,content:ve.content+q,isStreaming:!0,...O};return g.current.delete(me.id),v.current={id:me.id,index:ie},b.current={messageId:me.id},qd(te,ie,me)},[E]),X=u.useCallback((z,q)=>{let O=z;for(const te of q)te.kind==="delta"?O=F(O,te.text,te.turn):(H()&&W(),O=jx(O,te.text,{ensure:G},te.turn));return O},[F,W,H,G]),Q=u.useCallback(z=>{N.current!==null&&(window.cancelAnimationFrame(N.current),N.current=null);const q=j.current,O=z==null?void 0:z.finalAnswerText,te=(z==null?void 0:z.turn)??{};if(q.length===0&&O===void 0){z!=null&&z.closeAnswerSegment&&H();return}j.current=[],i(ie=>{let ve=q.length>0?X(ie,q):ie;if(O!==void 0){const me=E(ve,te)??Nx(ve,g.current,te);if(me!==null){const Z=ve[me];ve=qd(ve,me,{...Z,content:O,isStreaming:!0,...te})}else{const Z=crypto.randomUUID();g.current.add(Z),ve=[...ve,{id:Z,role:"assistant",content:O,isStreaming:!0,...te,createdAt:Date.now()}]}}return z!=null&&z.closeAnswerSegment&&H(),ve})},[X,H,E]),re=u.useCallback(()=>{N.current===null&&(N.current=window.requestAnimationFrame(()=>{N.current=null;const z=j.current;z.length!==0&&(j.current=[],i(q=>X(q,z)))}))},[X]);u.useEffect(()=>{i(t),d(Vc(t)||n),x(null),m(e?a.getRunStartedAt(e):null),h(e?a.getGoalState(e):void 0),b.current=null,v.current=null,g.current.clear(),W(),T(),P.current=!1,L.current!==null&&(clearTimeout(L.current),L.current=null)},[e,a,W,T]),u.useEffect(()=>{n&&d(!0)},[n]),u.useEffect(()=>{if(!e)return;const z=O=>{var ie,ve;if(L.current!==null&&(clearTimeout(L.current),L.current=null),O.event==="delta"){if(P.current)return;const me=typeof O.text=="string"?O.text:"";if(!me)return;W(),d(!0),j.current.push({kind:"delta",text:me,turn:Ra(O,"answer")}),re();return}if(O.event==="reasoning_delta"){if(P.current)return;const me=O.text;if(!me)return;k.current&&W(),d(!0),j.current.push({kind:"reasoning",text:me,turn:Ra(O,"reasoning")}),re();return}if(O.event==="stream_end")return Q({closeAnswerSegment:!0,...typeof O.text=="string"?{finalAnswerText:O.text}:{},turn:Ra(O,"answer")}),P.current,void 0;const te=O.event==="file_edit"||O.event==="message"&&(O.kind==="tool_hint"||O.kind==="progress");if(Q({closeAnswerSegment:te}),O.event==="reasoning_end"){if(P.current)return;i(me=>Ax(me));return}if(O.event==="goal_state"){h(O.goal_state);return}if(O.event==="goal_status"){O.status==="running"&&typeof O.started_at=="number"?m(O.started_at):m(null);return}if(O.event==="turn_end"){"goal_state"in O&&O.goal_state!=null&&typeof O.goal_state=="object"&&h(O.goal_state),m(null),L.current!==null&&(clearTimeout(L.current),L.current=null),d(!1),i(me=>{let Z=me.map(ke=>ke.isStreaming?{...ke,isStreaming:!1}:ke);return Z=_x(Z),typeof O.latency_ms=="number"&&O.latency_ms>=0&&(Z=m8(Z,Math.round(O.latency_ms),O.turn_id)),b.current=null,v.current=null,W(),g.current.clear(),Z}),P.current=!1,r==null||r();return}if(O.event==="message"){if(P.current&&(O.kind==="tool_hint"||O.kind==="progress"||O.kind==="reasoning"))return;if(O.kind==="reasoning"){const ke=O.text;if(!ke)return;k.current&&W(),i(ye=>Ax(jx(ye,ke,{ensure:G},Ra(O,"reasoning"))));return}if(O.kind==="tool_hint"||O.kind==="progress"){const ke=$C(O.tool_events),ye=Ra(O,"activity"),be=O.agent_ui?[O.agent_ui]:[];i(Ie=>{var xe,Se,De,Ve,he,Xe;const Pe=G(),Le=Ie,Te=g8(Le,ke),J=UC(Te),ee=J.length>0?J:ke.length>0?[]:O.text?[O.text]:[];if(ee.length===0)return Le;const V=Le[Le.length-1];if(V&&V.kind==="trace"&&!V.isStreaming&&(!V.activitySegmentId||V.activitySegmentId===Pe)){const dt=(xe=V.traces)!=null&&xe.length?V.traces:V.content?[V.content]:[],xt=be.length>0&&ee.length===1&&dt.length>0&&(((De=(Se=be[0])==null?void 0:Se.kind)==null?void 0:De.startsWith("subagent_"))??!1)&&((he=(Ve=V.agentUi)==null?void 0:Ve[V.agentUi.length-1])==null?void 0:he.kind)===((Xe=be[0])==null?void 0:Xe.kind),Ot=Te.length>0?Fz(dt,J):null,qn=Ot?Ot.traces:xt?[...dt.slice(0,-1),`${dt[dt.length-1]}${ee[0]}`]:[...dt,...ee],Ke={...V,traces:qn,content:qn[qn.length-1],toolEvents:Te.length?Oz(V.toolEvents,Te):V.toolEvents,agentUi:b8(V.agentUi,be),activitySegmentId:V.activitySegmentId??Pe,...ye};return[...Le.slice(0,-1),Ke]}return[...Le,{id:crypto.randomUUID(),role:"tool",kind:"trace",content:ee[ee.length-1],traces:ee,...Te.length?{toolEvents:Te}:{},...be.length?{agentUi:be}:{},activitySegmentId:Pe,...ye,createdAt:Date.now()}]});return}const me=(ie=O.media_urls)!=null&&ie.length?O.media_urls.map(ke=>us(ke)):(ve=O.media)==null?void 0:ve.map(ke=>us({url:ke})),Z=!!me&&me.length>0;W(),i(ke=>{var Le;const ye=(Le=b.current)==null?void 0:Le.messageId;b.current=null,v.current=null;const be=ye?ke.filter(Te=>Te.id!==ye):ke,Ie=O.text,Pe=typeof O.latency_ms=="number"&&O.latency_ms>=0?Math.round(O.latency_ms):void 0;return f8(be,{content:Ie,...Z?{media:me}:{},...Pe!==void 0?{latencyMs:Pe}:{},...O.source?{source:O.source}:{},...Ra(O,"answer")})}),Z&&(P.current=!0);return}if(O.event==="file_edit"){const me=Array.isArray(O.edits)?O.edits:[];if(me.length===0)return;const Z=Px(void 0,me);if(Z.length===0)return;const ke=Ra(O,"activity"),ye=Z.some(Ie=>Ie.status==="editing"||Ie.phase==="start");let be=k.current;!be&&ye&&(be=K(),k.current=be),i(Ie=>{let Pe=be;const Le=Ie,Te=y8(Le,Pe,Z);if(Te!==null){const J=Le[Te];Pe=J.activitySegmentId??Pe??K(),ye&&(k.current=Pe);const ee=v8(J,Z),V={...ee,fileEdits:Px(ee.fileEdits,Z),activitySegmentId:Pe,...ke};return qd(Le,Te,V)}return Pe=Pe??K(),ye&&(k.current=Pe),[...Le,{id:crypto.randomUUID(),role:"tool",kind:"trace",content:"",traces:[],fileEdits:Z,activitySegmentId:Pe,...ke,createdAt:Date.now()}]});return}},q=a.onChat(e,z);return()=>{q(),b.current=null,v.current=null,g.current.clear(),W(),T(),L.current!==null&&(clearTimeout(L.current),L.current=null)}},[e,a,W,T,K,G,Q,r,re]);const ue=u.useCallback((z,q,O)=>{if(!e)return;const te=!!q&&q.length>0;if(!te&&!z.trim())return;Q();const ie=crypto.randomUUID(),ve=te?q.map(Z=>Z.preview):void 0;i(Z=>{var ke,ye,be;return b.current=null,v.current=null,g.current.clear(),W(),[..._x(Z),{id:crypto.randomUUID(),role:"user",content:z,turnId:ie,turnPhase:"user",turnSeq:0,createdAt:Date.now(),...ve?{images:ve}:{},...(ke=O==null?void 0:O.attachmentMedia)!=null&&ke.length?{media:O.attachmentMedia}:{},...(ye=O==null?void 0:O.cliApps)!=null&&ye.length?{cliApps:O.cliApps}:{},...(be=O==null?void 0:O.mcpPresets)!=null&&be.length?{mcpPresets:O.mcpPresets}:{}}]}),d(!0);const me=te?q.map(Z=>Z.media):void 0;a.sendMessage(e,z,me,{...O,turnId:ie})},[e,W,a,Q]),pe=u.useCallback(()=>{e&&(Q(),d(!1),i(z=>(b.current=null,v.current=null,g.current.clear(),W(),z.map(q=>q.isStreaming?{...q,isStreaming:!1}:q))),P.current=!1,a.sendMessage(e,"/stop"))},[e,W,a,Q]),ce=u.useCallback((z,q)=>a.transcribeAudio(z,q),[a]);return{messages:o,isStreaming:c,runStartedAt:p,goalState:f,send:ue,transcribeAudio:ce,stop:pe,setMessages:i,streamError:y,dismissStreamError:_}}const Tx=[],k8=160,C8=120,Rx=6e4;function Mx(e){return e.map((t,n)=>({...t,id:t.id??`hist-${n}`,createdAt:typeof t.createdAt=="number"?t.createdAt:Date.now()}))}function S8(e,t){return typeof(e==null?void 0:e.has_pending_tool_calls)=="boolean"?e.has_pending_tool_calls:Vc(t)}function N8(){const{client:e,token:t}=wr(),[n,r]=u.useState([]),[a,o]=u.useState(!0),[i,l]=u.useState(null),c=u.useRef(t),d=u.useRef(new Set);c.current=t;const p=u.useCallback(async()=>{try{o(!0);const x=await fL(c.current),b=new Set(x.map(v=>v.key));r(v=>[...x,...v.filter(g=>d.current.has(g.key)&&!b.has(g.key))]);for(const v of Array.from(d.current))b.has(v)&&d.current.delete(v);l(null)}catch(x){const b=x instanceof os?`HTTP ${x.status}`:x.message;l(b)}finally{o(!1)}},[]);u.useEffect(()=>{p()},[p]),u.useEffect(()=>e.onSessionUpdate(()=>{p()}),[e,p]);const m=u.useCallback(async(x,b)=>{const v=await e.newChat(Rx,x,b),g=`websocket:${v}`;return d.current.add(g),r(w=>[{key:g,channel:"websocket",chatId:v,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),title:"",preview:"",workspaceScope:x??null,knowledgeBaseId:b??null},...w.filter(k=>k.key!==g)]),v},[e]),f=u.useCallback(async(x,b,v)=>{const g=await e.forkChat(x,b,v,Rx),w=`websocket:${g}`;return d.current.add(w),r(k=>[{key:w,channel:"websocket",chatId:g,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),title:v??"",preview:"",workspaceScope:null},...k.filter(C=>C.key!==w)]),g},[e]),h=u.useCallback(async(x,b)=>{const v=await wL(c.current,x,b);return v.deleted&&(d.current.delete(x),r(g=>g.filter(w=>w.key!==x))),v},[]),y=u.useCallback(async x=>(await b1(c.current,x)).jobs,[]);return{sessions:n,loading:a,error:i,refresh:p,createChat:m,forkChat:f,deleteChat:h,getSessionAutomations:y}}function j8(e){const{token:t}=wr(),n=u.useRef(!1),[r,a]=u.useState(0),o=u.useCallback(()=>{a(d=>d+1)},[]),[i,l]=u.useState({key:null,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0});u.useEffect(()=>{if(!e){l({key:null,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0});return}let d=!1;return l(p=>p.key===e?{...p,loading:!0,loadingOlder:!1,error:null}:{key:e,messages:[],loading:!0,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0}),(async()=>{var p;try{const m=await mv(t,e,{limit:k8,direction:"latest"});if(d)return;if(!((p=m==null?void 0:m.messages)!=null&&p.length)){l(x=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:x.key===e?x.version+1:1}));return}const f=Mx(m.messages),h=S8(m,f),y=typeof m.fork_boundary_message_count=="number"?Math.max(0,Math.min(m.fork_boundary_message_count,f.length)):null;l(x=>{var b,v,g;return{key:e,messages:f,loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:h,forkBoundaryMessageCount:y,beforeCursor:((b=m.page)==null?void 0:b.before_cursor)??null,hasMoreBefore:((v=m.page)==null?void 0:v.has_more_before)===!0,userMessageOffset:Math.max(0,((g=m.page)==null?void 0:g.user_message_offset)??0),version:x.key===e?x.version+1:1}})}catch(m){if(d)return;m instanceof os&&m.status===404?l(f=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:f.key===e?f.version+1:1})):l(f=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:m.message,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:f.key===e?f.version:0}))}})(),()=>{d=!0}},[e,t,r]);const c=u.useCallback(async()=>{if(!e||n.current)return;const d=i.key===e?i.beforeCursor:null;if(!(!d||!i.hasMoreBefore)){n.current=!0,l(p=>p.key===e?{...p,loadingOlder:!0,error:null}:p);try{const p=await mv(t,e,{limit:C8,before:d});l(m=>{var b,v,g,w;if(m.key!==e)return m;if(!((b=p==null?void 0:p.messages)!=null&&b.length))return{...m,loadingOlder:!1,hasMoreBefore:!1,beforeCursor:null};const f=Mx(p.messages),h=typeof p.fork_boundary_message_count=="number"?Math.max(0,Math.min(p.fork_boundary_message_count,f.length)):null,y=m.forkBoundaryMessageCount===null?null:m.forkBoundaryMessageCount+f.length,x=[...f,...m.messages];return{...m,messages:x,loadingOlder:!1,error:null,hasPendingToolCalls:Vc(x),forkBoundaryMessageCount:h??y,beforeCursor:((v=p.page)==null?void 0:v.before_cursor)??null,hasMoreBefore:((g=p.page)==null?void 0:g.has_more_before)===!0,userMessageOffset:Math.max(0,((w=p.page)==null?void 0:w.user_message_offset)??0),version:m.version+1}})}catch(p){l(m=>m.key===e?{...m,loadingOlder:!1,error:p.message}:m)}finally{n.current=!1}}},[e,i.beforeCursor,i.hasMoreBefore,i.key,t]);return e?i.key!==e?{messages:Tx,loading:!0,loadingOlder:!1,error:null,refresh:o,loadOlder:c,hasMoreBefore:!1,userMessageOffset:0,version:0,forkBoundaryMessageCount:null,hasPendingToolCalls:!1}:{messages:i.messages,loading:i.loading,loadingOlder:i.loadingOlder,error:i.error,refresh:o,loadOlder:c,hasMoreBefore:i.hasMoreBefore,userMessageOffset:i.userMessageOffset,version:i.version,forkBoundaryMessageCount:i.forkBoundaryMessageCount,hasPendingToolCalls:i.hasPendingToolCalls}:{messages:Tx,loading:!1,loadingOlder:!1,error:null,refresh:o,loadOlder:c,hasMoreBefore:!1,userMessageOffset:0,version:0,forkBoundaryMessageCount:null,hasPendingToolCalls:!1}}function A8(e){return e.map(t=>{if(t.kind!=="long_task")return t;const r=(t.content??"").trim()||"(legacy thread activity)";return{id:t.id,role:"tool",kind:"trace",content:r,traces:[r],createdAt:t.createdAt}})}const _8=800;function P8(e,t=_8){const n=e.replace(/\r\n/g,` +`).map(o=>o.trim()).filter(Boolean),r=d$(n[0]||"command"),a=p$(r,92);return n.length<=1?a:`${a} · script, ${n.length} lines`}function u$(e){return e.replace(/\b((?:[A-Z0-9_]*)(?:API[_-]?KEY|TOKEN|SECRET|PASSWORD|PASS|AUTH)(?:[A-Z0-9_]*))=(?:"[^"]*"|'[^']*'|[^\s]+)/gi,"$1=••••").replace(/\b(Bearer)\s+[A-Za-z0-9._~+/=-]+/gi,"$1 ••••").replace(/(--(?:api-?key|token|secret|password)(?:=|\s+))(?:"[^"]*"|'[^']*'|[^\s]+)/gi,"$1••••").replace(/([?&](?:api_?key|token|secret|password)=)[^&\s]+/gi,"$1••••")}function d$(e){return e.replace(/\/Users\/[^/\s"']+/g,"~").replace(/\/private\/tmp\/[^\s"']+/g,"/tmp/…").replace(/\/var\/folders\/[^\s"']+/g,"/var/folders/…")}function p$(e,t){if(e.length<=t)return e;const n=Math.ceil((t-1)*.62),r=Math.floor((t-1)*.38);return`${e.slice(0,n)}…${e.slice(-r)}`}function m$(e,t){var a;const n=[],r=e.trim();if(r)try{HC(JSON.parse(r),n)}catch{n.push(r.replace(/^["']|["']$/g,""))}n.push(t);for(const o of n){const i=hx(o);if(i)return i;const l=(a=o.match(/https?:\/\/[^\s"'<>),]+/i))==null?void 0:a[0];if(l){const c=hx(l);if(c)return c}}return null}function HC(e,t){if(typeof e=="string"){t.push(e);return}if(!e||typeof e!="object")return;if(Array.isArray(e)){for(const r of e.slice(0,6))HC(r,t);return}const n=e;for(const r of["url","uri","href","link"])typeof n[r]=="string"&&t.push(n[r])}function hx(e){try{const t=new URL(e);return t.protocol!=="http:"&&t.protocol!=="https:"||f$(t.hostname)?null:t}catch{return null}}function f$(e){const t=e.replace(/^\[|\]$/g,"").toLowerCase();if(!t||t==="localhost"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":"))return!0;const n=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(t);if(n){const[,r,a]=n,o=Number(r),i=Number(a);return o===0||o===10||o===127||o===100&&i>=64&&i<=127||o===169&&i===254||o===172&&i>=16&&i<=31||o===192&&i===168}return t==="::1"||t.startsWith("fc")||t.startsWith("fd")||t.startsWith("fe80:")}function WC(e){return e.replace(/^www\./i,"").toLowerCase()}function h$(e){const t=WC(e.hostname),n=e.pathname&&e.pathname!=="/"?e.pathname:"";return`${t}${n}`}function gx(e,t){const n=e.trim();if(!n)return t;try{const r=JSON.parse(n),a=ZC(r);if(a)return a}catch{}return n.replace(/^["']|["']$/g,"")}const g$=new Set(["run_cli_app","cli_anything_run"]),vx={running:1,done:2,error:3},xx={running:1,done:2,error:3},Uu=/^mcp_([a-z0-9_-]+?)_(.+)$/i;function v$(e){return/^(run_cli_app|cli_anything_run)\(/.test(e.trim())}function x$(e){return Uu.test(e.trim().split("(",1)[0]??"")}function y$(e){return/^(write_file|edit_file|apply_patch)\(/.test(e.trim())}function qC(e,t="running"){const n=/^(run_cli_app|cli_anything_run)\((.*)\)$/.exec(e.trim());if(!n)return null;const r=n[2].trim();let a={};if(r)try{a=JSON.parse(r)}catch{return{key:e,name:"cli",args:[r],json:!1,status:t}}return QC(a,{key:e,status:t})}function VC(e){var r;const n=((r=e.function)==null?void 0:r.arguments)??e.arguments;if(typeof n!="string")return n??{};if(!n.trim())return{};try{return JSON.parse(n)}catch{return{args:[n]}}}function KC(e){return e==="error"?"error":e==="end"?"done":"running"}function GC(e){const t=e.error;if(typeof t=="string")return t;if(t&&typeof t=="object")return JSON.stringify(t)}function YC(e){var t,n;return typeof((t=e.function)==null?void 0:t.name)=="string"?String((n=e.function)==null?void 0:n.name):typeof e.name=="string"?e.name:""}function QC(e,t){if(!e||typeof e!="object"||Array.isArray(e))return{key:t.key,name:"cli",args:[],json:!1,status:t.status,error:t.error};const n=e,r=typeof n.name=="string"&&n.name.trim()?n.name.trim():"cli",o=(Array.isArray(n.args)?n.args:[]).filter(i=>typeof i=="string");return{key:t.key,name:r,args:o,json:n.json===!0||n.json==="true",workingDir:typeof n.working_dir=="string"?n.working_dir:void 0,status:t.status,error:t.error}}function XC(e){const t=YC(e);if(!g$.has(t))return null;const n=VC(e),r=e.call_id?`call:${e.call_id}`:`${t}:${JSON.stringify(n)}`;return QC(n,{key:r,status:KC(e.phase),error:GC(e)})}function b$(e){const t=new Map;for(const n of e.toolEvents??[]){const r=XC(n);if(!r)continue;const a=ll(n);a&&t.set(a,JC(t.get(a),r))}return t}function JC(e,t){return e?vx[t.status]>=vx[e.status]?{...e,...t}:e:t}function w$(e){const t=new Map;for(const n of e){if(n.kind!=="trace")continue;let r=!1;for(const a of n.toolEvents??[]){const o=XC(a);o&&(r=!0,t.set(o.key,JC(t.get(o.key),o)))}if(!r)for(const a of so(n)){const o=qC(a);!o||t.has(o.key)||t.set(o.key,o)}}return[...t.values()]}function k$(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")||e}function Fl(e){return typeof e=="string"&&e.trim()?e.trim():typeof e=="number"||typeof e=="boolean"?String(e):null}function ZC(e){if(!e||typeof e!="object"||Array.isArray(e))return Fl(e)??"";const t=e;for(const r of["url","query","q","path","name","id","title","message","text"]){const a=Fl(t[r]);if(a)return`${r}: ${a}`}return Object.entries(t).filter(([,r])=>Fl(r)!==null).slice(0,2).map(([r,a])=>`${r}: ${Fl(a)}`).join(" · ")}function eS(e,t,n){const r=Uu.exec(e);if(!r)return null;const a=r[1].toLowerCase();return{key:n.key,presetName:a,displayName:k$(a),toolName:r[2],argsPreview:ZC(t),status:n.status,error:n.error}}function tS(e,t="running"){const n=/^([a-z0-9_-]+)\((.*)\)$/i.exec(e.trim());if(!n||!Uu.test(n[1]))return null;const r=n[2].trim();let a={};if(r)try{a=JSON.parse(r)}catch{a=r}return eS(n[1],a,{key:e,status:t})}function nS(e){const t=YC(e);if(!Uu.test(t))return null;const n=VC(e),r=e.call_id?`call:${e.call_id}`:`${t}:${JSON.stringify(n)}`;return eS(t,n,{key:r,status:KC(e.phase),error:GC(e)})}function C$(e){const t=new Map;for(const n of e.toolEvents??[]){const r=nS(n);if(!r)continue;const a=ll(n);a&&t.set(a,rS(t.get(a),r))}return t}function rS(e,t){return e?xx[t.status]>=xx[e.status]?{...e,...t}:e:t}function S$(e){const t=new Map;for(const n of e){if(n.kind!=="trace")continue;let r=!1;for(const a of n.toolEvents??[]){const o=nS(a);o&&(r=!0,t.set(o.key,rS(t.get(o.key),o)))}if(!r)for(const a of so(n)){const o=tS(a);!o||t.has(o.key)||t.set(o.key,o)}}return[...t.values()]}function N$(e){return/\s/.test(e)?JSON.stringify(e):e}function j$(e){return[...e.json?["--json"]:[],...e.args].map(N$).join(" ")}function A$(e,t){return e==="error"?"message.cliActivityFailedOne":t&&e==="running"?"message.cliActivityRunningOne":"message.cliActivityRanOne"}function _$(e,t){return e==="error"?"Failed @{{name}}":`${t&&e==="running"?"Using":"Used"} @{{name}}`}function P$(e,t){return e.some(n=>n.status==="error")?"message.cliActivityFailedMany":t&&e.some(n=>n.status==="running")?"message.cliActivityRunningMany":"message.cliActivityRanMany"}function T$(e,t){return e.some(n=>n.status==="error")?"{{count}} CLI apps failed":`${t&&e.some(n=>n.status==="running")?"Using":"Used"} {{count}} CLI apps`}function R$(e,t){return e.status==="error"?"message.cliRunFailed":t&&e.status==="running"?"message.cliRunRunning":"message.cliRunRan"}function M$(e,t){return e.status==="error"?"Failed":t&&e.status==="running"?"Using":"Used"}function E$(e,t){return e==="error"?"message.mcpActivityFailedOne":t&&e==="running"?"message.mcpActivityRunningOne":"message.mcpActivityRanOne"}function I$(e,t){return e==="error"?"Failed {{name}}":`${t&&e==="running"?"Using":"Used"} {{name}}`}function L$(e,t){return e.some(n=>n.status==="error")?"message.mcpActivityFailedMany":t&&e.some(n=>n.status==="running")?"message.mcpActivityRunningMany":"message.mcpActivityRanMany"}function D$(e,t){return e.some(n=>n.status==="error")?"{{count}} MCP calls failed":`${t&&e.some(n=>n.status==="running")?"Using":"Used"} {{count}} MCP tools`}function O$(e,t){return e.status==="error"?"message.mcpRunFailed":t&&e.status==="running"?"message.mcpRunRunning":"message.mcpRunRan"}function F$(e,t){return e.status==="error"?"Failed":t&&e.status==="running"?"Using":"Used"}function rc(e,t,n){return t?"Failed":n?e?"Deleting":"Deleted":e?"Editing":"Edited"}function z$(e,t,n){return t?"message.fileActivityFailedOne":n?e?"message.fileActivityDeletingOne":"message.fileActivityDeletedOne":e?"message.fileActivityEditingOne":"message.fileActivityEditedOne"}function $$(e,t,n){return t?"message.fileActivityFailedMany":n?e?"message.fileActivityDeletingMany":"message.fileActivityDeletedMany":e?"message.fileActivityEditingMany":"message.fileActivityEditedMany"}function U$(e){return e.call_id?`${e.call_id}|${e.tool}`:`${e.tool}|${e.path}`}function B$(e){var n;const t=[];for(const r of e)r.kind==="trace"&&((n=r.fileEdits)!=null&&n.length)&&t.push(...r.fileEdits);return t}function H$(e){const t=[],n=new Map;for(const r of e){const a=U$(r);n.has(a)||t.push(a),n.set(a,r)}return t.map(r=>n.get(r)).filter(Boolean)}function W$(e,t){const n=[],r=new Map;for(const a of H$(e)){const o=a.path||a.call_id||a.tool;let i=r.get(o);if(i||(i={key:o,path:a.path||"",absolute_path:a.absolute_path,added:0,deleted:0,approximate:!1,binary:!1,pending:!1,hasSuccessfulChange:!1,hasActiveEditing:!1,hasFailed:!1,operation:void 0},r.set(o,i),n.push(o)),a.path&&!i.path&&(i.path=a.path),a.absolute_path&&(i.absolute_path=a.absolute_path),a.operation==="delete"&&(i.operation="delete"),i.pending=i.pending||!!a.pending||!a.path,!a.path&&a.pending){t&&a.status==="editing"&&(i.hasActiveEditing=!0,i.approximate=i.approximate||!!a.approximate,a.binary||(i.added+=a.added,i.deleted+=a.deleted));continue}if(t&&a.status==="editing"){i.hasActiveEditing=!0,i.binary=i.binary||!!a.binary,i.approximate=i.approximate||!!a.approximate,a.binary||(i.added+=a.added,i.deleted+=a.deleted);continue}if(a.status==="error"){i.hasFailed=!0,i.error=a.error??i.error;continue}i.hasSuccessfulChange=!0,i.binary=i.binary||!!a.binary,i.approximate=t&&(i.approximate||!!a.approximate),a.binary||(i.added+=a.added,i.deleted+=a.deleted)}return n.flatMap(a=>{const o=r.get(a);if(!o.path&&!o.hasActiveEditing&&!o.hasSuccessfulChange&&!o.hasFailed)return[];const i=o.hasActiveEditing?"editing":o.hasSuccessfulChange?"done":o.hasFailed?"error":"done";return[{key:o.key,path:o.path,absolute_path:o.absolute_path,added:o.added,deleted:o.deleted,approximate:o.approximate,binary:o.binary,status:i,operation:o.operation,pending:o.pending&&!o.path,error:o.error}]})}function yx({runs:e,active:t,cliAppsByName:n}){return e.length===0?null:s.jsx("ul",{className:"space-y-1","data-testid":"activity-cli-runs",children:e.map(r=>s.jsx(q$,{run:r,active:t,app:n.get(r.name.toLowerCase())},r.key))})}function q$({run:e,active:t,app:n}){const{t:r}=se(),[a,o]=u.useState(0),i=j$(e),l=e.status==="error",c=t&&e.status==="running",d=l?"#DC2626":(n==null?void 0:n.brand_color)||"#0891B2",m=u.useMemo(()=>ao(n==null?void 0:n.logo_url),[n==null?void 0:n.logo_url])[a],f=r(R$(e,t),{defaultValue:M$(e,t)});return u.useEffect(()=>o(0),[n==null?void 0:n.logo_url]),s.jsx(oo,{as:"li",active:c,tone:l?"error":c?"active":e.status==="done"?"success":"neutral",title:`${f} @${e.name}${i?` ${i}`:""}${e.error?` ${e.error}`:""}`,label:f,marker:s.jsx("span",{"data-testid":`activity-cli-logo-${e.name.toLowerCase()}`,className:A("grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px] border text-[6.5px] font-semibold text-white",c&&"animate-pulse"),style:{borderColor:Kc(d,22),backgroundColor:m?"hsl(var(--background))":d,boxShadow:c?`0 0 0 3px ${Kc(d,9)}`:void 0},"aria-hidden":!0,children:m?s.jsx("img",{src:m,alt:"",className:"h-[78%] w-[78%] object-contain",onError:()=>o(h=>h+1)}):n?cC(n).slice(0,2):s.jsx(Mc,{className:"h-3 w-3","aria-hidden":!0})}),children:s.jsxs("div",{className:"-mt-0.5 flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5",children:[s.jsxs("span",{className:"max-w-[11rem] shrink-0 truncate font-mono text-[12.5px] font-semibold text-foreground/90",children:["@",e.name]}),l?s.jsx(ja,{className:"h-3 w-3 shrink-0 translate-y-[0.16em] text-destructive/75","aria-hidden":!0}):null,i?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/36",children:"·"}),s.jsx("span",{className:"min-w-0 truncate font-mono text-[12px] text-muted-foreground/72",children:i})]}):null,e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-destructive/72",children:e.error})]}):null,e.workingDir&&!e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-muted-foreground/55",children:e.workingDir})]}):null]})})}function bx({runs:e,active:t,mcpPresetsByName:n}){return e.length===0?null:s.jsx("ul",{className:"space-y-1","data-testid":"activity-mcp-runs",children:e.map(r=>s.jsx(V$,{run:r,active:t,preset:n.get(r.presetName.toLowerCase())},r.key))})}function V$({run:e,active:t,preset:n}){const{t:r}=se(),[a,o]=u.useState(0),i=e.status==="error",l=t&&e.status==="running",c=i?"#DC2626":(n==null?void 0:n.brand_color)||"#6D5DF6",p=u.useMemo(()=>ao(n==null?void 0:n.logo_url),[n==null?void 0:n.logo_url])[a],m=(n==null?void 0:n.display_name)||e.displayName,f=r(O$(e,t),{defaultValue:F$(e,t)});return u.useEffect(()=>o(0),[n==null?void 0:n.logo_url]),s.jsx(oo,{as:"li",active:l,tone:i?"error":l?"active":e.status==="done"?"success":"neutral",title:`${f} ${m} ${e.toolName}${e.argsPreview?` ${e.argsPreview}`:""}${e.error?` ${e.error}`:""}`,label:f,marker:s.jsx("span",{"data-testid":`activity-mcp-logo-${e.presetName.toLowerCase()}`,className:A("grid h-4 w-4 shrink-0 place-items-center overflow-hidden rounded-[4px] border text-[6.5px] font-semibold text-white",l&&"animate-pulse"),style:{borderColor:Kc(c,22),backgroundColor:p?"hsl(var(--background))":c,boxShadow:l?`0 0 0 3px ${Kc(c,9)}`:void 0},"aria-hidden":!0,children:p?s.jsx("img",{src:p,alt:"",className:"h-[78%] w-[78%] object-contain",onError:()=>o(h=>h+1)}):n?uC(n).slice(0,2):s.jsx(ns,{className:"h-3 w-3","aria-hidden":!0})}),children:s.jsxs("div",{className:"-mt-0.5 flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5",children:[s.jsx("span",{className:"max-w-[12rem] shrink-0 truncate text-[12.5px] font-semibold text-foreground/90",children:m}),i?s.jsx(ja,{className:"h-3 w-3 shrink-0 translate-y-[0.16em] text-destructive/75","aria-hidden":!0}):null,s.jsx("span",{className:"shrink-0 text-muted-foreground/36",children:"·"}),s.jsxs("span",{className:"min-w-0 truncate font-mono text-[12px] text-muted-foreground/72",children:[e.toolName,e.argsPreview?` · ${e.argsPreview}`:""]}),e.error?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"shrink-0 text-muted-foreground/30",children:"·"}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-destructive/72",children:e.error})]}):null]})})}function Kc(e,t){if(/^#[0-9a-f]{6}$/i.test(e)){const n=Math.round(t/100*255).toString(16).padStart(2,"0");return`${e}${n}`}return`color-mix(in srgb, ${e} ${t}%, transparent)`}function K$(e,t=!1){const n=wz(e,{preserveTrailingActivity:t});return t?Z$(n):n}function G$(e){const t=new Array(e.length).fill(!0);let n=!1;for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.type==="message"&&a.message.role==="user"){n=!1;continue}a.type==="message"&&a.message.role==="assistant"&&(t[r]=!n),n=!0}return t}function Y$({messages:e,isStreaming:t=!1,hiddenUserMessageCount:n=0,cliApps:r=[],mcpPresets:a=[],forkBoundaryMessageCount:o=null,onOpenFilePreview:i,onForkFromMessage:l}){const{t:c}=se(),d=u.useMemo(()=>K$(e,t),[t,e]),p=u.useMemo(()=>Q$(d,o),[o,d]),m=u.useMemo(()=>G$(d),[d]),f=u.useMemo(()=>t?J$(d):new Set,[t,d]),h=u.useMemo(()=>e8(d),[d]);let y=n;return s.jsx("div",{className:"flex w-full flex-col",children:d.map((x,b)=>{const v=d[b-1],g=b>0?n8(v):"",w=d[b+1],k=x.type==="activity"&&(w==null?void 0:w.type)==="message"&&w.message.role==="assistant",C=x.type==="message"&&x.message.role==="user"?x.message.id:void 0,j=x.type==="message"&&x.message.role==="assistant"&&m[b]?y:void 0;return x.type==="message"&&x.message.role==="user"&&(y+=1),s.jsxs(u.Fragment,{children:[s.jsx("div",{className:g,"data-user-prompt-id":C,children:x.type==="activity"?s.jsx(Bz,{messages:x.messages,isTurnStreaming:f.has(b),hasBodyBelow:k,turnLatencyMs:x.turnLatencyMs,cliApps:r,mcpPresets:a,onOpenFilePreview:i}):s.jsx(sz,{message:x.message,showAssistantCopyAction:x.message.role==="assistant"?m[b]:!0,cliApps:r,mcpPresets:a,onOpenFilePreview:i,onForkFromHere:l&&j!==void 0?()=>l(j):void 0})}),b===p?s.jsx(X$,{label:c("thread.forkedFromHistory")}):null]},h[b])})})}function Q$(e,t){if(t==null||t<=0)return null;let n=0;for(let r=0;r=t)return r}return null}function X$({label:e}){return s.jsxs("div",{className:"my-5 flex items-center gap-3 text-[11px] text-muted-foreground/80",children:[s.jsx("span",{"aria-hidden":!0,className:"h-px flex-1 bg-border/70"}),s.jsx("span",{className:"shrink-0",children:e}),s.jsx("span",{"aria-hidden":!0,className:"h-px flex-1 bg-border/70"})]})}function J$(e){const t=new Set;let n=!1;for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.type==="activity"){n||(t.add(r),n=!0);continue}if(!(a.message.role==="assistant"&&a.message.isStreaming)&&a.message.role==="user")break}return t}function Z$(e){var l;if(e.length<2)return e;let t=e.length-1;for(;t>0;){const c=e[t-1];if(c.type==="message"&&c.message.role==="user")break;t-=1}const n=e.slice(t);let r=-1;for(let c=n.length-1;c>=0;c-=1)if(((l=n[c])==null?void 0:l.type)==="activity"){r=c;break}if(r===-1||r===n.length-1||n.slice(r+1).some(c=>c.type!=="activity"))return e;const o=n[r];if(!o||o.type!=="activity")return e;const i=[...n.slice(0,r),...n.slice(r+1),o];return[...e.slice(0,t),...i]}function e8(e){const t=new Map;return e.map((n,r)=>{const a=t8(n,r);if(!a.startsWith("turn-")||a.endsWith("-user"))return a;const o=(t.get(a)??0)+1;return t.set(a,o),`${a}-${o}`})}function t8(e,t){if(e.type==="activity"){const r=e.messages[0],a=wx(r,"activity");if(a)return a;const o=r==null?void 0:r.id;return o!=null?`activity-${o}`:`activity-idx-${t}`}const n=wx(e.message);return n||e.message.id}function wx(e,t){if(!(e!=null&&e.turnId))return null;const n=e.turnPhase??t??e.kind??e.role;return e.role==="user"?`turn-${e.turnId}-user`:e.kind==="trace"?`turn-${e.turnId}-${n}-${e.activitySegmentId??"activity"}`:`turn-${e.turnId}-${n}`}function n8(e){if(e.type==="activity")return"mt-4";const t=e.message;return t.kind==="trace"||t.role==="assistant"&&t.content.trim().length===0&&(!!t.reasoning||!!t.reasoningStreaming)?"mt-2":"mt-5"}const kx=48,r8=96,a8=192,o8=16,s8=80,Wd=18,Cx=160,Sx=120;function i8(e,t){if(e.length<=t)return e;let n=Math.max(0,e.length-t);for(;n>0&&Ba(e[n])&&Ba(e[n-1]);)n-=1;return e.slice(n)}function ym(e){return e instanceof HTMLElement?e.isContentEditable||e instanceof HTMLTextAreaElement?!0:e instanceof HTMLInputElement?!["button","checkbox","color","file","hidden","image","radio","range","reset","submit"].includes(e.type):!1:!1}function l8(e){const t=window.visualViewport;if(!t)return 0;const n=document.activeElement;if(!ym(n)||!(e!=null&&e.contains(n)))return 0;const a=(window.innerHeight||document.documentElement.clientHeight)-t.height-t.offsetTop;return a>=s8?Math.ceil(a):0}const c8=u.forwardRef(function({messages:t,isStreaming:n,composer:r,emptyState:a,scrollToBottomSignal:o=0,scrollToLatestUserPromptSignal:i=0,conversationKey:l=null,showScrollToBottomButton:c=!0,cliApps:d=[],mcpPresets:p=[],forkBoundaryMessageCount:m=null,hasMoreBefore:f=!1,loadingOlder:h=!1,userMessageOffset:y=0,onLoadOlder:x,onOpenFilePreview:b,onForkFromMessage:v},g){const{t:w}=se(),k=u.useRef(null),C=u.useRef(null),j=u.useRef(null),N=u.useRef(null),P=u.useRef(l),L=u.useRef(!0),_=u.useRef(null),T=u.useRef([]),R=u.useRef(null),D=u.useRef(0),K=u.useRef(null),G=u.useRef(null),W=u.useRef(!1),[H,E]=u.useState(!0),[F,X]=u.useState(0),[Q,re]=u.useState(0),[ue,pe]=u.useState(Cx),ce=t.length>0,z=u.useMemo(()=>i8(t,ue),[t,ue]),q=t.length-z.length,O=y+(q>0?t.slice(0,q).filter(J=>J.role==="user").length:0),te=m!==null&&m>q?m-q:null,ie=Q+(F>0?F+o8:a8),ve=Q>0?{bottom:Q}:void 0,me=u.useCallback(()=>{for(const J of T.current)window.cancelAnimationFrame(J);T.current=[]},[]),Z=u.useCallback(J=>{R.current=J},[]),ke=u.useCallback((J=!1)=>{var Se;const ee=k.current,V=N.current,xe=J?"smooth":"auto";if(ee){const De=Math.max(0,ee.scrollHeight-ee.clientHeight);try{(Se=ee.scrollTo)==null||Se.call(ee,{top:De,behavior:xe}),J||(ee.scrollTop=De)}catch{try{ee.scrollTop=De}catch{}}}else V&&V.scrollIntoView({block:"end",behavior:xe});W.current=!1,E(!0)},[]),ye=u.useCallback(J=>{var De;const ee=k.current;if(!ee)return!1;const V=ui(ee,J);if(!V)return!1;const xe=Math.max(0,Zf(ee,V)-16);Z(xe);try{(De=ee.scrollTo)==null||De.call(ee,{top:xe,behavior:"auto"}),ee.scrollTop=xe}catch{try{ee.scrollTop=xe}catch{}}const Se=ee.scrollHeight-xe-ee.clientHeight{const xe=(V==null?void 0:V.force)??!1;me();const Se=()=>{!xe&&W.current||ke(J)},De=Ve=>{if(Ve<=0)return;const he=window.requestAnimationFrame(()=>{T.current=T.current.filter(Xe=>Xe!==he),!(!xe&&W.current)&&(ke(J),De(Ve-1))});T.current.push(he)};Se(),De(ee-1)},[me,ke]),Ie=u.useCallback(()=>{const J=k.current;if(J&&(G.current={height:J.scrollHeight,top:J.scrollTop}),W.current=!0,K.current=null,E(!1),q>0){pe(ee=>Math.min(t.length,ee+Sx));return}f&&x&&!h&&(pe(ee=>ee+Sx),x())},[f,q,h,t.length,x]),Pe=u.useCallback(()=>{const J=k.current;!J||!ce||L.current||W.current&&(J.scrollTop>r8||q<=0&&!f||Ie())},[ce,f,q,Ie]),Le=u.useCallback(J=>{const ee=k.current;if(ee&&ui(ee,J)){hm(ee,J);return}const V=t.findIndex(xe=>xe.id===J);V<0||(_.current=J,W.current=!0,K.current=null,E(!1),pe(xe=>Math.max(xe,t.length-V)))},[t]);u.useImperativeHandle(g,()=>({jumpToUserPrompt:Le}),[Le]);const Te=u.useCallback(()=>{const J=j.current;if(!J)return;const ee=J.getBoundingClientRect().height||J.offsetHeight;X(V=>Math.abs(V-ee)<1?V:ee)},[]);return u.useLayoutEffect(()=>{const J=()=>{const V=k.current,xe=l8(V),Se=document.activeElement,De=ce&&ym(Se)&&!!(V!=null&&V.contains(Se));re(Ve=>Math.abs(Ve-xe)<1?Ve:xe),De&&(W.current=!1,be(!1,Wd,{force:!0}))};J();const ee=window.visualViewport;return ee==null||ee.addEventListener("resize",J),ee==null||ee.addEventListener("scroll",J),window.addEventListener("resize",J),document.addEventListener("focusin",J),document.addEventListener("focusout",J),()=>{ee==null||ee.removeEventListener("resize",J),ee==null||ee.removeEventListener("scroll",J),window.removeEventListener("resize",J),document.removeEventListener("focusin",J),document.removeEventListener("focusout",J)}},[ce,be]),u.useLayoutEffect(()=>{if(Q>0){W.current=!1,be(!1,Wd,{force:!0});return}W.current||be(!1,4)},[Q,be]),u.useEffect(()=>{const J=k.current;if(!J)return;const ee=()=>{const V=document.activeElement;!ce||!ym(V)||!J.contains(V)||(W.current=!1,be(!1,Wd,{force:!0}))};return document.addEventListener("focusin",ee),()=>document.removeEventListener("focusin",ee)},[ce,be]),u.useEffect(()=>{o<=0||(W.current=!1,be(!1,8))},[o,be]),u.useLayoutEffect(()=>{if(i<=D.current)return;const J=t[t.length-1];!J||J.role!=="user"||(D.current=i,me(),K.current=J.id,ye(J.id)||(K.current=null))},[me,t,i,ye]),u.useLayoutEffect(()=>{P.current!==l&&(P.current=l,L.current=!0,W.current=!1,K.current=null,E(!0),pe(Cx))},[l]),u.useLayoutEffect(()=>{const J=K.current;if(!J||W.current)return;const ee=t.findIndex(xe=>xe.id===J);if(ee<0){K.current=null;return}t.slice(ee+1).some(xe=>xe.role!=="user")&&be(!1,n?3:1)},[n,t,be]),u.useLayoutEffect(()=>{ce&&(W.current||be(!1,n?4:2))},[ce,n,be,z]),u.useLayoutEffect(()=>{var Se;const J=G.current;if(!J)return;const ee=k.current;if(G.current=null,!ee)return;const V=ee.scrollHeight-J.height,xe=J.top+V;try{ee.scrollTop=xe}catch{try{(Se=ee.scrollTo)==null||Se.call(ee,{top:xe,behavior:"auto"})}catch{}}},[z.length,t.length]),u.useLayoutEffect(()=>{const J=_.current,ee=k.current;if(!J||!ee||!ui(ee,J))return;_.current=null;const V=window.requestAnimationFrame(()=>hm(ee,J));return()=>window.cancelAnimationFrame(V)},[z.length]),u.useLayoutEffect(()=>{if(L.current){if(!l){L.current=!1,be(!1,4);return}be(!1,8),ce&&(L.current=!1)}},[l,ce,t,be]),u.useLayoutEffect(()=>{Te()},[r,ce,Te]),u.useEffect(()=>me,[me]),u.useEffect(()=>{const J=j.current;if(!J||typeof ResizeObserver>"u")return;const ee=new ResizeObserver(()=>Te());return ee.observe(J),()=>ee.disconnect()},[ce,Te]),u.useEffect(()=>{const J=k.current;if(!J)return;const ee=(xe=!0)=>{const De=J.scrollHeight-J.scrollTop-J.clientHeightee(!0);return J.addEventListener("scroll",V,{passive:!0}),()=>J.removeEventListener("scroll",V)},[Pe]),s.jsxs("div",{className:"relative flex min-h-0 flex-1 overflow-hidden",children:[s.jsxs("div",{ref:k,className:A("thread-viewport-scrollbar absolute inset-0 overflow-y-auto scroll-auto scrollbar-thin","[&::-webkit-scrollbar]:w-1.5","[&::-webkit-scrollbar-thumb]:rounded-full","[&::-webkit-scrollbar-thumb]:bg-muted-foreground/30","[&::-webkit-scrollbar-track]:bg-transparent"),style:ve,children:[ce?s.jsxs("div",{ref:C,className:"mx-auto flex min-h-full w-full max-w-[64rem] flex-col",children:[s.jsx("div",{"data-testid":"thread-message-region",className:"flex min-h-0 flex-1 flex-col justify-start px-3 pb-4 pt-4 sm:px-4",children:s.jsx("div",{className:"mx-auto w-full max-w-[49.5rem]",children:s.jsx(Y$,{messages:z,isStreaming:n,hiddenUserMessageCount:O,cliApps:d,mcpPresets:p,forkBoundaryMessageCount:te,onOpenFilePreview:b,onForkFromMessage:v})})}),s.jsx("div",{ref:j,"data-testid":"thread-composer-dock",className:"sticky bottom-0 z-10 bg-background",children:s.jsx("div",{className:"px-3 pb-[calc(0.75rem+env(safe-area-inset-bottom))] sm:px-4",children:r})})]}):s.jsx("div",{ref:C,className:"mx-auto flex min-h-full w-full max-w-[72rem] flex-col px-3 sm:px-4",children:s.jsx("div",{className:"flex w-full flex-1 items-center justify-center py-6 sm:py-12",children:s.jsxs("div",{className:"relative flex w-full max-w-[58rem] flex-col items-center gap-5 sm:block",children:[s.jsx("div",{className:"flex justify-center sm:absolute sm:inset-x-0 sm:bottom-[calc(100%+1.5rem)]",children:a}),s.jsx("div",{className:"w-full",children:r})]})})}),s.jsx("div",{ref:N,"aria-hidden":!0,className:"h-px"})]}),s.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 h-6 bg-gradient-to-b from-background to-transparent"}),ce?s.jsx(VF,{messages:z,scrollRef:k,bottomOffset:ie}):null,c&&!H&&s.jsx("div",{className:"absolute left-1/2 z-20 -translate-x-1/2",style:{bottom:ie},children:s.jsx(fe,{variant:"outline",size:"icon",onClick:()=>be(!0,1,{force:!0}),className:A("h-8 w-8 rounded-full shadow-md","bg-background/90 backdrop-blur","animate-in fade-in-0 zoom-in-95"),"aria-label":w("thread.scrollToBottom"),children:s.jsx(Uj,{className:"h-4 w-4"})})})]})}),u8=new Set(["write_file","edit_file","apply_patch"]);function Ra(e,t){const n={};typeof e.turn_id=="string"&&e.turn_id.length>0&&(n.turnId=e.turn_id);const r=e.turn_phase??t;return r&&(n.turnPhase=r),typeof e.turn_seq=="number"&&Number.isFinite(e.turn_seq)&&(n.turnSeq=e.turn_seq),n}function ds(e,t){return!t.turnId||!e.turnId||e.turnId===t.turnId}function Nx(e,t,n={}){for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.kind!=="trace"){if(a.role==="assistant"&&a.isStreaming&&!t.has(a.id)&&ds(a,n))return r;if(a.role==="user")break}}return null}function jx(e,t,n,r={}){for(let o=e.length-1;o>=0;o-=1){const i=e[o];if(i.role==="user"||i.kind==="trace")break;if(i.role!=="assistant")continue;if(!ds(i,r))break;const l=i.activitySegmentId??(n==null?void 0:n.ensure());if(i.content.length>0)break;if(i.reasoningStreaming||i.reasoning!==void 0||i.isStreaming){const d={...i,reasoning:(i.reasoning??"")+t,reasoningStreaming:!0,...l?{activitySegmentId:l}:{},...r};return[...e.slice(0,o),d,...e.slice(o+1)]}break}const a=n==null?void 0:n.ensure();return[...e,{id:crypto.randomUUID(),role:"assistant",content:"",isStreaming:!0,reasoning:t,reasoningStreaming:!0,...a?{activitySegmentId:a}:{},...r,createdAt:Date.now()}]}function d8(e,t={}){const n=e[e.length-1];return!n||n.role!=="assistant"||n.kind==="trace"||n.content.length>0||!n.isStreaming||!ds(n,t)?null:e.length-1}function qd(e,t,n){const r=e.slice();return r[t]=n,r}function Ax(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(!n.reasoningStreaming)continue;const r=n.latencyMs===void 0&&Number.isFinite(n.createdAt)&&n.createdAt>1e12?Math.max(0,Math.round(Date.now()-n.createdAt)):n.latencyMs,a={...n,reasoningStreaming:!1,...r!==void 0?{latencyMs:r}:{}};return[...e.slice(0,t),a,...e.slice(t+1)]}return e}function aS(e){var t;return e.role==="assistant"&&e.kind!=="trace"&&e.content.trim().length===0&&!!e.reasoning&&!e.reasoningStreaming&&!((t=e.media)!=null&&t.length)}function p8(e){return(e==null?void 0:e.kind)==="trace"}function _x(e){return e.filter((t,n)=>aS(t)?p8(e[n+1]):!0)}function m8(e,t,n){for(let r=e.length-1;r>=0;r-=1){const a=e[r];if(a.role==="assistant"&&a.kind!=="trace"&&(!n||!a.turnId||a.turnId===n)){const o={...a,latencyMs:t,isStreaming:!1};return[...e.slice(0,r),o,...e.slice(r+1)]}}return e}function f8(e,t){const n=e[e.length-1];return!n||!aS(n)||!ds(n,t)?[...e,{id:crypto.randomUUID(),role:"assistant",createdAt:Date.now(),...t}]:[...e.slice(0,-1),{...n,...t,isStreaming:!1,reasoningStreaming:!1}]}function ps(e){return e.call_id?`${e.call_id}|${e.tool}`:`${e.tool}|${e.path}`}function nh(e){const t=e.function,n=typeof e.name=="string"?e.name:typeof(t==null?void 0:t.name)=="string"?t.name:"",r=typeof e.call_id=="string"?e.call_id:"";return!n||!r||!u8.has(n)?null:`${r}|${n}`}function h8(e,t){const n=nh(t);return n?e.some(r=>{var a;return(a=r.fileEdits)==null?void 0:a.some(o=>ps(o)===n)}):!1}function g8(e,t){return t.length===0?t:t.filter(n=>!h8(e,n))}function v8(e,t){var d;const n=new Set(t.map(ps)),r=e.toolEvents??[];if(!r.length||n.size===0)return e;const a=new Set,o=[];let i=!1;for(const p of r){const m=nh(p);if(m&&n.has(m)){i=!0;for(const f of UC([p]))a.add(f);continue}o.push(p)}if(!i)return e;const c=((d=e.traces)!=null&&d.length?e.traces:e.content?[e.content]:[]).filter(p=>!a.has(p));return{...e,traces:c,content:c[c.length-1]??"",toolEvents:o.length?o:void 0}}function x8(e){if(!e||!e.tool||!e.path&&!e.pending)return null;const t=e.phase==="error"?"error":e.phase==="end"?"done":"editing",n={...e,call_id:e.call_id||`${e.tool}:${e.path}`,added:Number.isFinite(e.added)?Math.max(0,Math.round(e.added)):0,deleted:Number.isFinite(e.deleted)?Math.max(0,Math.round(e.deleted)):0,status:e.status==="error"||e.status==="done"||e.status==="editing"?e.status:t};return e.pending&&!e.path&&(n.pending=!0),n}function Px(e,t){const n=[...e??[]],r=new Map(n.map((a,o)=>[ps(a),o]));for(const a of t){const o=x8(a);if(!o)continue;const i=ps(o),l=r.get(i);if(l===void 0){r.set(i,n.length),n.push(o);continue}const c={...n[l],...o};o.path&&!o.pending&&delete c.pending,n[l]=c}return n}function y8(e,t,n){const r=new Set(n.map(ps));for(let a=e.length-1;a>=0;a-=1){const o=e[a];if(o.role==="user")break;if(o.kind==="trace"){if(t&&o.activitySegmentId===t)return a;for(const i of o.fileEdits??[])if(r.has(ps(i)))return a;for(const i of o.toolEvents??[]){const l=nh(i);if(l&&r.has(l))return a}}}return null}function b8(e,t){const n=[...e??[]];for(const r of t??[])n.push(r);return n.length?n:void 0}function w8(e,t=[],n=!1,r){const{client:a}=wr(),[o,i]=u.useState(t),l=Vc(t),[c,d]=u.useState(l||n),[p,m]=u.useState(null),[f,h]=u.useState(void 0),[y,x]=u.useState(null),b=u.useRef(null),v=u.useRef(null),g=u.useRef(new Set),w=u.useRef(null),k=u.useRef(null),C=u.useRef(0),j=u.useRef([]),N=u.useRef(null),P=u.useRef(!1),L=u.useRef(null);u.useEffect(()=>a.onError(z=>x(z)),[a]);const _=u.useCallback(()=>x(null),[]),T=u.useCallback(()=>{N.current!==null&&(window.cancelAnimationFrame(N.current),N.current=null),j.current=[]},[]),R=u.useCallback((z=!0)=>{C.current+=1;const q=`activity-${C.current}`;return z&&(w.current=q),q},[]),D=u.useCallback(()=>R(!0),[R]),K=u.useCallback(()=>R(!1),[R]),G=u.useCallback(()=>w.current?w.current:D(),[D]),W=u.useCallback(()=>{w.current=null,k.current=null},[]),H=u.useCallback(()=>{var q,O;const z=((q=b.current)==null?void 0:q.messageId)??((O=v.current)==null?void 0:O.id);return z&&g.current.add(z),b.current=null,v.current=null,!!z},[]),E=u.useCallback((z,q={})=>{const O=v.current;if(!O)return null;const te=z[O.index];if((te==null?void 0:te.id)===O.id&&te.role==="assistant"&&te.kind!=="trace"&&te.isStreaming&&ds(te,q))return O.index;const ie=z.findIndex(me=>me.id===O.id);if(ie===-1)return v.current=null,null;const ve=z[ie];return ve.role!=="assistant"||ve.kind==="trace"||!ve.isStreaming||!ds(ve,q)?(v.current=null,null):(v.current={id:O.id,index:ie},ie)},[]),F=u.useCallback((z,q,O={})=>{let te=z,ie=E(te,O);if(ie===null&&(ie=d8(te,O)),ie===null&&(ie=Nx(te,g.current,O)),ie===null){const Z=crypto.randomUUID();te=[...te,{id:Z,role:"assistant",content:"",isStreaming:!0,createdAt:Date.now()}],ie=te.length-1}const ve=te[ie],me={...ve,content:ve.content+q,isStreaming:!0,...O};return g.current.delete(me.id),v.current={id:me.id,index:ie},b.current={messageId:me.id},qd(te,ie,me)},[E]),X=u.useCallback((z,q)=>{let O=z;for(const te of q)te.kind==="delta"?O=F(O,te.text,te.turn):(H()&&W(),O=jx(O,te.text,{ensure:G},te.turn));return O},[F,W,H,G]),Q=u.useCallback(z=>{N.current!==null&&(window.cancelAnimationFrame(N.current),N.current=null);const q=j.current,O=z==null?void 0:z.finalAnswerText,te=(z==null?void 0:z.turn)??{};if(q.length===0&&O===void 0){z!=null&&z.closeAnswerSegment&&H();return}j.current=[],i(ie=>{let ve=q.length>0?X(ie,q):ie;if(O!==void 0){const me=E(ve,te)??Nx(ve,g.current,te);if(me!==null){const Z=ve[me];ve=qd(ve,me,{...Z,content:O,isStreaming:!0,...te})}else{const Z=crypto.randomUUID();g.current.add(Z),ve=[...ve,{id:Z,role:"assistant",content:O,isStreaming:!0,...te,createdAt:Date.now()}]}}return z!=null&&z.closeAnswerSegment&&H(),ve})},[X,H,E]),re=u.useCallback(()=>{N.current===null&&(N.current=window.requestAnimationFrame(()=>{N.current=null;const z=j.current;z.length!==0&&(j.current=[],i(q=>X(q,z)))}))},[X]);u.useEffect(()=>{i(t),d(Vc(t)||n),x(null),m(e?a.getRunStartedAt(e):null),h(e?a.getGoalState(e):void 0),b.current=null,v.current=null,g.current.clear(),W(),T(),P.current=!1,L.current!==null&&(clearTimeout(L.current),L.current=null)},[e,a,W,T]),u.useEffect(()=>{n&&d(!0)},[n]),u.useEffect(()=>{if(!e)return;const z=O=>{var ie,ve;if(L.current!==null&&(clearTimeout(L.current),L.current=null),O.event==="delta"){if(P.current)return;const me=typeof O.text=="string"?O.text:"";if(!me)return;W(),d(!0),j.current.push({kind:"delta",text:me,turn:Ra(O,"answer")}),re();return}if(O.event==="reasoning_delta"){if(P.current)return;const me=O.text;if(!me)return;k.current&&W(),d(!0),j.current.push({kind:"reasoning",text:me,turn:Ra(O,"reasoning")}),re();return}if(O.event==="stream_end")return Q({closeAnswerSegment:!0,...typeof O.text=="string"?{finalAnswerText:O.text}:{},turn:Ra(O,"answer")}),P.current,void 0;const te=O.event==="file_edit"||O.event==="message"&&(O.kind==="tool_hint"||O.kind==="progress");if(Q({closeAnswerSegment:te}),O.event==="reasoning_end"){if(P.current)return;i(me=>Ax(me));return}if(O.event==="goal_state"){h(O.goal_state);return}if(O.event==="goal_status"){O.status==="running"&&typeof O.started_at=="number"?m(O.started_at):m(null);return}if(O.event==="turn_end"){"goal_state"in O&&O.goal_state!=null&&typeof O.goal_state=="object"&&h(O.goal_state),m(null),L.current!==null&&(clearTimeout(L.current),L.current=null),d(!1),i(me=>{let Z=me.map(ke=>ke.isStreaming?{...ke,isStreaming:!1}:ke);return Z=_x(Z),typeof O.latency_ms=="number"&&O.latency_ms>=0&&(Z=m8(Z,Math.round(O.latency_ms),O.turn_id)),b.current=null,v.current=null,W(),g.current.clear(),Z}),P.current=!1,r==null||r();return}if(O.event==="message"){if(P.current&&(O.kind==="tool_hint"||O.kind==="progress"||O.kind==="reasoning"))return;if(O.kind==="reasoning"){const ke=O.text;if(!ke)return;k.current&&W(),i(ye=>Ax(jx(ye,ke,{ensure:G},Ra(O,"reasoning"))));return}if(O.kind==="tool_hint"||O.kind==="progress"){const ke=$C(O.tool_events),ye=Ra(O,"activity"),be=O.agent_ui?[O.agent_ui]:[];i(Ie=>{var xe,Se,De,Ve,he,Xe;const Pe=G(),Le=Ie,Te=g8(Le,ke),J=UC(Te),ee=J.length>0?J:ke.length>0?[]:O.text?[O.text]:[];if(ee.length===0)return Le;const V=Le[Le.length-1];if(V&&V.kind==="trace"&&!V.isStreaming&&(!V.activitySegmentId||V.activitySegmentId===Pe)){const dt=(xe=V.traces)!=null&&xe.length?V.traces:V.content?[V.content]:[],xt=be.length>0&&ee.length===1&&dt.length>0&&(((De=(Se=be[0])==null?void 0:Se.kind)==null?void 0:De.startsWith("subagent_"))??!1)&&((he=(Ve=V.agentUi)==null?void 0:Ve[V.agentUi.length-1])==null?void 0:he.kind)===((Xe=be[0])==null?void 0:Xe.kind),Ot=Te.length>0?Fz(dt,J):null,qn=Ot?Ot.traces:xt?[...dt.slice(0,-1),`${dt[dt.length-1]}${ee[0]}`]:[...dt,...ee],Ke={...V,traces:qn,content:qn[qn.length-1],toolEvents:Te.length?Oz(V.toolEvents,Te):V.toolEvents,agentUi:b8(V.agentUi,be),activitySegmentId:V.activitySegmentId??Pe,...ye};return[...Le.slice(0,-1),Ke]}return[...Le,{id:crypto.randomUUID(),role:"tool",kind:"trace",content:ee[ee.length-1],traces:ee,...Te.length?{toolEvents:Te}:{},...be.length?{agentUi:be}:{},activitySegmentId:Pe,...ye,createdAt:Date.now()}]});return}const me=(ie=O.media_urls)!=null&&ie.length?O.media_urls.map(ke=>us(ke)):(ve=O.media)==null?void 0:ve.map(ke=>us({url:ke})),Z=!!me&&me.length>0;W(),i(ke=>{var Le;const ye=(Le=b.current)==null?void 0:Le.messageId;b.current=null,v.current=null;const be=ye?ke.filter(Te=>Te.id!==ye):ke,Ie=O.text,Pe=typeof O.latency_ms=="number"&&O.latency_ms>=0?Math.round(O.latency_ms):void 0;return f8(be,{content:Ie,...Z?{media:me}:{},...Pe!==void 0?{latencyMs:Pe}:{},...O.source?{source:O.source}:{},...Ra(O,"answer")})}),Z&&(P.current=!0);return}if(O.event==="file_edit"){const me=Array.isArray(O.edits)?O.edits:[];if(me.length===0)return;const Z=Px(void 0,me);if(Z.length===0)return;const ke=Ra(O,"activity"),ye=Z.some(Ie=>Ie.status==="editing"||Ie.phase==="start");let be=k.current;!be&&ye&&(be=K(),k.current=be),i(Ie=>{let Pe=be;const Le=Ie,Te=y8(Le,Pe,Z);if(Te!==null){const J=Le[Te];Pe=J.activitySegmentId??Pe??K(),ye&&(k.current=Pe);const ee=v8(J,Z),V={...ee,fileEdits:Px(ee.fileEdits,Z),activitySegmentId:Pe,...ke};return qd(Le,Te,V)}return Pe=Pe??K(),ye&&(k.current=Pe),[...Le,{id:crypto.randomUUID(),role:"tool",kind:"trace",content:"",traces:[],fileEdits:Z,activitySegmentId:Pe,...ke,createdAt:Date.now()}]});return}},q=a.onChat(e,z);return()=>{q(),b.current=null,v.current=null,g.current.clear(),W(),T(),L.current!==null&&(clearTimeout(L.current),L.current=null)}},[e,a,W,T,K,G,Q,r,re]);const ue=u.useCallback((z,q,O)=>{if(!e)return;const te=!!q&&q.length>0;if(!te&&!z.trim())return;Q();const ie=crypto.randomUUID(),ve=te?q.map(Z=>Z.preview):void 0;i(Z=>{var ke,ye,be;return b.current=null,v.current=null,g.current.clear(),W(),[..._x(Z),{id:crypto.randomUUID(),role:"user",content:z,turnId:ie,turnPhase:"user",turnSeq:0,createdAt:Date.now(),...ve?{images:ve}:{},...(ke=O==null?void 0:O.attachmentMedia)!=null&&ke.length?{media:O.attachmentMedia}:{},...(ye=O==null?void 0:O.cliApps)!=null&&ye.length?{cliApps:O.cliApps}:{},...(be=O==null?void 0:O.mcpPresets)!=null&&be.length?{mcpPresets:O.mcpPresets}:{}}]}),d(!0);const me=te?q.map(Z=>Z.media):void 0;a.sendMessage(e,z,me,{...O,turnId:ie})},[e,W,a,Q]),pe=u.useCallback(()=>{e&&(Q(),d(!1),i(z=>(b.current=null,v.current=null,g.current.clear(),W(),z.map(q=>q.isStreaming?{...q,isStreaming:!1}:q))),P.current=!1,a.sendMessage(e,"/stop"))},[e,W,a,Q]),ce=u.useCallback((z,q)=>a.transcribeAudio(z,q),[a]);return{messages:o,isStreaming:c,runStartedAt:p,goalState:f,send:ue,transcribeAudio:ce,stop:pe,setMessages:i,streamError:y,dismissStreamError:_}}const Tx=[],k8=160,C8=120,Rx=6e4;function Mx(e){return e.map((t,n)=>({...t,id:t.id??`hist-${n}`,createdAt:typeof t.createdAt=="number"?t.createdAt:Date.now()}))}function S8(e,t){return typeof(e==null?void 0:e.has_pending_tool_calls)=="boolean"?e.has_pending_tool_calls:Vc(t)}function N8(){const{client:e,token:t}=wr(),[n,r]=u.useState([]),[a,o]=u.useState(!0),[i,l]=u.useState(null),c=u.useRef(t),d=u.useRef(new Set);c.current=t;const p=u.useCallback(async()=>{try{o(!0);const x=await fL(c.current),b=new Set(x.map(v=>v.key));r(v=>[...x,...v.filter(g=>d.current.has(g.key)&&!b.has(g.key))]);for(const v of Array.from(d.current))b.has(v)&&d.current.delete(v);l(null)}catch(x){const b=x instanceof os?`HTTP ${x.status}`:x.message;l(b)}finally{o(!1)}},[]);u.useEffect(()=>{p()},[p]),u.useEffect(()=>e.onSessionUpdate(()=>{p()}),[e,p]);const m=u.useCallback(async(x,b)=>{const v=await e.newChat(Rx,x,b),g=`websocket:${v}`;return d.current.add(g),r(w=>[{key:g,channel:"websocket",chatId:v,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),title:"",preview:"",workspaceScope:x??null,knowledgeBaseId:b??null},...w.filter(k=>k.key!==g)]),v},[e]),f=u.useCallback(async(x,b,v)=>{const g=await e.forkChat(x,b,v,Rx),w=`websocket:${g}`;return d.current.add(w),r(k=>[{key:w,channel:"websocket",chatId:g,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),title:v??"",preview:"",workspaceScope:null},...k.filter(C=>C.key!==w)]),g},[e]),h=u.useCallback(async(x,b)=>{const v=await wL(c.current,x,b);return v.deleted&&(d.current.delete(x),r(g=>g.filter(w=>w.key!==x))),v},[]),y=u.useCallback(async x=>(await b1(c.current,x)).jobs,[]);return{sessions:n,loading:a,error:i,refresh:p,createChat:m,forkChat:f,deleteChat:h,getSessionAutomations:y}}function j8(e){const{token:t}=wr(),n=u.useRef(!1),[r,a]=u.useState(0),o=u.useCallback(()=>{a(d=>d+1)},[]),[i,l]=u.useState({key:null,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0});u.useEffect(()=>{if(!e){l({key:null,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0});return}let d=!1;return l(p=>p.key===e?{...p,loading:!0,loadingOlder:!1,error:null}:{key:e,messages:[],loading:!0,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:0}),(async()=>{var p;try{const m=await mv(t,e,{limit:k8,direction:"latest"});if(d)return;if(!((p=m==null?void 0:m.messages)!=null&&p.length)){l(x=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:x.key===e?x.version+1:1}));return}const f=Mx(m.messages),h=S8(m,f),y=typeof m.fork_boundary_message_count=="number"?Math.max(0,Math.min(m.fork_boundary_message_count,f.length)):null;l(x=>{var b,v,g;return{key:e,messages:f,loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:h,forkBoundaryMessageCount:y,beforeCursor:((b=m.page)==null?void 0:b.before_cursor)??null,hasMoreBefore:((v=m.page)==null?void 0:v.has_more_before)===!0,userMessageOffset:Math.max(0,((g=m.page)==null?void 0:g.user_message_offset)??0),version:x.key===e?x.version+1:1}})}catch(m){if(d)return;m instanceof os&&m.status===404?l(f=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:null,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:f.key===e?f.version+1:1})):l(f=>({key:e,messages:[],loading:!1,loadingOlder:!1,error:m.message,hasPendingToolCalls:!1,forkBoundaryMessageCount:null,beforeCursor:null,hasMoreBefore:!1,userMessageOffset:0,version:f.key===e?f.version:0}))}})(),()=>{d=!0}},[e,t,r]);const c=u.useCallback(async()=>{if(!e||n.current)return;const d=i.key===e?i.beforeCursor:null;if(!(!d||!i.hasMoreBefore)){n.current=!0,l(p=>p.key===e?{...p,loadingOlder:!0,error:null}:p);try{const p=await mv(t,e,{limit:C8,before:d});l(m=>{var b,v,g,w;if(m.key!==e)return m;if(!((b=p==null?void 0:p.messages)!=null&&b.length))return{...m,loadingOlder:!1,hasMoreBefore:!1,beforeCursor:null};const f=Mx(p.messages),h=typeof p.fork_boundary_message_count=="number"?Math.max(0,Math.min(p.fork_boundary_message_count,f.length)):null,y=m.forkBoundaryMessageCount===null?null:m.forkBoundaryMessageCount+f.length,x=[...f,...m.messages];return{...m,messages:x,loadingOlder:!1,error:null,hasPendingToolCalls:Vc(x),forkBoundaryMessageCount:h??y,beforeCursor:((v=p.page)==null?void 0:v.before_cursor)??null,hasMoreBefore:((g=p.page)==null?void 0:g.has_more_before)===!0,userMessageOffset:Math.max(0,((w=p.page)==null?void 0:w.user_message_offset)??0),version:m.version+1}})}catch(p){l(m=>m.key===e?{...m,loadingOlder:!1,error:p.message}:m)}finally{n.current=!1}}},[e,i.beforeCursor,i.hasMoreBefore,i.key,t]);return e?i.key!==e?{messages:Tx,loading:!0,loadingOlder:!1,error:null,refresh:o,loadOlder:c,hasMoreBefore:!1,userMessageOffset:0,version:0,forkBoundaryMessageCount:null,hasPendingToolCalls:!1}:{messages:i.messages,loading:i.loading,loadingOlder:i.loadingOlder,error:i.error,refresh:o,loadOlder:c,hasMoreBefore:i.hasMoreBefore,userMessageOffset:i.userMessageOffset,version:i.version,forkBoundaryMessageCount:i.forkBoundaryMessageCount,hasPendingToolCalls:i.hasPendingToolCalls}:{messages:Tx,loading:!1,loadingOlder:!1,error:null,refresh:o,loadOlder:c,hasMoreBefore:!1,userMessageOffset:0,version:0,forkBoundaryMessageCount:null,hasPendingToolCalls:!1}}function A8(e){return e.map(t=>{if(t.kind!=="long_task")return t;const r=(t.content??"").trim()||"(legacy thread activity)";return{id:t.id,role:"tool",kind:"trace",content:r,traces:[r],createdAt:t.createdAt}})}const _8=800;function P8(e,t=_8){const n=e.replace(/\r\n/g,` `).trim(),r=n.split(` `);let a="";r.length>0&&r[0].startsWith("[Subagent")&&(a=r[0].trim());const o=n.toLowerCase();let i=` result: diff --git a/webui/dist/index.html b/webui/dist/index.html index 70d1482..09a5056 100644 --- a/webui/dist/index.html +++ b/webui/dist/index.html @@ -171,7 +171,7 @@ })(); nanobot - + diff --git a/frontend_nanobot/.gitignore b/webui/frontend/.gitignore similarity index 100% rename from frontend_nanobot/.gitignore rename to webui/frontend/.gitignore diff --git a/webui/frontend/README.md b/webui/frontend/README.md new file mode 100644 index 0000000..467445a --- /dev/null +++ b/webui/frontend/README.md @@ -0,0 +1,36 @@ +# Meeting Knowledge WebUI Source + +这个目录保存当前项目 WebUI 的 React/TypeScript 源码。 + +## Layout + +```text +webui/frontend/ WebUI source +webui/dist/ build output served by webui_server.py +``` + +## Dev + +```bash +cd webui/frontend +npm install +npm run dev +``` + +默认会代理到 `http://127.0.0.1:8765`。如果本地网关端口不同,可以通过 `NANOBOT_API_URL` 覆盖。 + +## Build + +```bash +cd webui/frontend +npm run build +``` + +构建产物会写入 `webui/dist/`。 + +## Test + +```bash +cd webui/frontend +npm run test +``` diff --git a/frontend_nanobot/bun.lock b/webui/frontend/bun.lock similarity index 100% rename from frontend_nanobot/bun.lock rename to webui/frontend/bun.lock diff --git a/frontend_nanobot/components.json b/webui/frontend/components.json similarity index 100% rename from frontend_nanobot/components.json rename to webui/frontend/components.json diff --git a/frontend_nanobot/eslint.config.js b/webui/frontend/eslint.config.js similarity index 100% rename from frontend_nanobot/eslint.config.js rename to webui/frontend/eslint.config.js diff --git a/frontend_nanobot/index.html b/webui/frontend/index.html similarity index 100% rename from frontend_nanobot/index.html rename to webui/frontend/index.html diff --git a/frontend_nanobot/package-lock.json b/webui/frontend/package-lock.json similarity index 100% rename from frontend_nanobot/package-lock.json rename to webui/frontend/package-lock.json diff --git a/frontend_nanobot/package.json b/webui/frontend/package.json similarity index 100% rename from frontend_nanobot/package.json rename to webui/frontend/package.json diff --git a/frontend_nanobot/postcss.config.js b/webui/frontend/postcss.config.js similarity index 100% rename from frontend_nanobot/postcss.config.js rename to webui/frontend/postcss.config.js diff --git a/frontend_nanobot/public/brand/nanobot_apple_touch.png b/webui/frontend/public/brand/nanobot_apple_touch.png similarity index 100% rename from frontend_nanobot/public/brand/nanobot_apple_touch.png rename to webui/frontend/public/brand/nanobot_apple_touch.png diff --git a/frontend_nanobot/public/brand/nanobot_favicon_32.png b/webui/frontend/public/brand/nanobot_favicon_32.png similarity index 100% rename from frontend_nanobot/public/brand/nanobot_favicon_32.png rename to webui/frontend/public/brand/nanobot_favicon_32.png diff --git a/frontend_nanobot/public/brand/nanobot_icon.png b/webui/frontend/public/brand/nanobot_icon.png similarity index 100% rename from frontend_nanobot/public/brand/nanobot_icon.png rename to webui/frontend/public/brand/nanobot_icon.png diff --git a/frontend_nanobot/public/brand/nanobot_logo.png b/webui/frontend/public/brand/nanobot_logo.png similarity index 100% rename from frontend_nanobot/public/brand/nanobot_logo.png rename to webui/frontend/public/brand/nanobot_logo.png diff --git a/frontend_nanobot/public/brand/nanobot_logo.webp b/webui/frontend/public/brand/nanobot_logo.webp similarity index 100% rename from frontend_nanobot/public/brand/nanobot_logo.webp rename to webui/frontend/public/brand/nanobot_logo.webp diff --git a/frontend_nanobot/src/App.tsx b/webui/frontend/src/App.tsx similarity index 100% rename from frontend_nanobot/src/App.tsx rename to webui/frontend/src/App.tsx diff --git a/frontend_nanobot/src/components/AttachmentTile.tsx b/webui/frontend/src/components/AttachmentTile.tsx similarity index 100% rename from frontend_nanobot/src/components/AttachmentTile.tsx rename to webui/frontend/src/components/AttachmentTile.tsx diff --git a/frontend_nanobot/src/components/ChatList.tsx b/webui/frontend/src/components/ChatList.tsx similarity index 100% rename from frontend_nanobot/src/components/ChatList.tsx rename to webui/frontend/src/components/ChatList.tsx diff --git a/frontend_nanobot/src/components/CliAppMentionText.tsx b/webui/frontend/src/components/CliAppMentionText.tsx similarity index 100% rename from frontend_nanobot/src/components/CliAppMentionText.tsx rename to webui/frontend/src/components/CliAppMentionText.tsx diff --git a/frontend_nanobot/src/components/CodeBlock.tsx b/webui/frontend/src/components/CodeBlock.tsx similarity index 100% rename from frontend_nanobot/src/components/CodeBlock.tsx rename to webui/frontend/src/components/CodeBlock.tsx diff --git a/frontend_nanobot/src/components/ConnectionBadge.tsx b/webui/frontend/src/components/ConnectionBadge.tsx similarity index 100% rename from frontend_nanobot/src/components/ConnectionBadge.tsx rename to webui/frontend/src/components/ConnectionBadge.tsx diff --git a/frontend_nanobot/src/components/DeleteConfirm.tsx b/webui/frontend/src/components/DeleteConfirm.tsx similarity index 100% rename from frontend_nanobot/src/components/DeleteConfirm.tsx rename to webui/frontend/src/components/DeleteConfirm.tsx diff --git a/frontend_nanobot/src/components/FilePreviewPanel.tsx b/webui/frontend/src/components/FilePreviewPanel.tsx similarity index 100% rename from frontend_nanobot/src/components/FilePreviewPanel.tsx rename to webui/frontend/src/components/FilePreviewPanel.tsx diff --git a/frontend_nanobot/src/components/FileReferenceChip.tsx b/webui/frontend/src/components/FileReferenceChip.tsx similarity index 100% rename from frontend_nanobot/src/components/FileReferenceChip.tsx rename to webui/frontend/src/components/FileReferenceChip.tsx diff --git a/frontend_nanobot/src/components/ImageLightbox.tsx b/webui/frontend/src/components/ImageLightbox.tsx similarity index 100% rename from frontend_nanobot/src/components/ImageLightbox.tsx rename to webui/frontend/src/components/ImageLightbox.tsx diff --git a/frontend_nanobot/src/components/LanguageSwitcher.tsx b/webui/frontend/src/components/LanguageSwitcher.tsx similarity index 100% rename from frontend_nanobot/src/components/LanguageSwitcher.tsx rename to webui/frontend/src/components/LanguageSwitcher.tsx diff --git a/frontend_nanobot/src/components/MarkdownText.tsx b/webui/frontend/src/components/MarkdownText.tsx similarity index 100% rename from frontend_nanobot/src/components/MarkdownText.tsx rename to webui/frontend/src/components/MarkdownText.tsx diff --git a/frontend_nanobot/src/components/MarkdownTextRenderer.tsx b/webui/frontend/src/components/MarkdownTextRenderer.tsx similarity index 100% rename from frontend_nanobot/src/components/MarkdownTextRenderer.tsx rename to webui/frontend/src/components/MarkdownTextRenderer.tsx diff --git a/frontend_nanobot/src/components/MessageBubble.tsx b/webui/frontend/src/components/MessageBubble.tsx similarity index 100% rename from frontend_nanobot/src/components/MessageBubble.tsx rename to webui/frontend/src/components/MessageBubble.tsx diff --git a/frontend_nanobot/src/components/RenameChatDialog.tsx b/webui/frontend/src/components/RenameChatDialog.tsx similarity index 100% rename from frontend_nanobot/src/components/RenameChatDialog.tsx rename to webui/frontend/src/components/RenameChatDialog.tsx diff --git a/frontend_nanobot/src/components/SessionSearchDialog.tsx b/webui/frontend/src/components/SessionSearchDialog.tsx similarity index 100% rename from frontend_nanobot/src/components/SessionSearchDialog.tsx rename to webui/frontend/src/components/SessionSearchDialog.tsx diff --git a/frontend_nanobot/src/components/Sidebar.tsx b/webui/frontend/src/components/Sidebar.tsx similarity index 100% rename from frontend_nanobot/src/components/Sidebar.tsx rename to webui/frontend/src/components/Sidebar.tsx diff --git a/frontend_nanobot/src/components/settings/SettingsView.tsx b/webui/frontend/src/components/settings/SettingsView.tsx similarity index 100% rename from frontend_nanobot/src/components/settings/SettingsView.tsx rename to webui/frontend/src/components/settings/SettingsView.tsx diff --git a/frontend_nanobot/src/components/settings/SkillsCatalogSettings.tsx b/webui/frontend/src/components/settings/SkillsCatalogSettings.tsx similarity index 100% rename from frontend_nanobot/src/components/settings/SkillsCatalogSettings.tsx rename to webui/frontend/src/components/settings/SkillsCatalogSettings.tsx diff --git a/frontend_nanobot/src/components/settings/TokenUsageHeatmap.tsx b/webui/frontend/src/components/settings/TokenUsageHeatmap.tsx similarity index 100% rename from frontend_nanobot/src/components/settings/TokenUsageHeatmap.tsx rename to webui/frontend/src/components/settings/TokenUsageHeatmap.tsx diff --git a/frontend_nanobot/src/components/thread/AgentActivityCluster.tsx b/webui/frontend/src/components/thread/AgentActivityCluster.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/AgentActivityCluster.tsx rename to webui/frontend/src/components/thread/AgentActivityCluster.tsx diff --git a/frontend_nanobot/src/components/thread/PromptNavigator.tsx b/webui/frontend/src/components/thread/PromptNavigator.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/PromptNavigator.tsx rename to webui/frontend/src/components/thread/PromptNavigator.tsx diff --git a/frontend_nanobot/src/components/thread/PromptRail.tsx b/webui/frontend/src/components/thread/PromptRail.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/PromptRail.tsx rename to webui/frontend/src/components/thread/PromptRail.tsx diff --git a/frontend_nanobot/src/components/thread/SessionInfoPopover.tsx b/webui/frontend/src/components/thread/SessionInfoPopover.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/SessionInfoPopover.tsx rename to webui/frontend/src/components/thread/SessionInfoPopover.tsx diff --git a/frontend_nanobot/src/components/thread/StreamErrorNotice.tsx b/webui/frontend/src/components/thread/StreamErrorNotice.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/StreamErrorNotice.tsx rename to webui/frontend/src/components/thread/StreamErrorNotice.tsx diff --git a/frontend_nanobot/src/components/thread/ThreadComposer.tsx b/webui/frontend/src/components/thread/ThreadComposer.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/ThreadComposer.tsx rename to webui/frontend/src/components/thread/ThreadComposer.tsx diff --git a/frontend_nanobot/src/components/thread/ThreadHeader.tsx b/webui/frontend/src/components/thread/ThreadHeader.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/ThreadHeader.tsx rename to webui/frontend/src/components/thread/ThreadHeader.tsx diff --git a/frontend_nanobot/src/components/thread/ThreadMessages.tsx b/webui/frontend/src/components/thread/ThreadMessages.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/ThreadMessages.tsx rename to webui/frontend/src/components/thread/ThreadMessages.tsx diff --git a/frontend_nanobot/src/components/thread/ThreadShell.tsx b/webui/frontend/src/components/thread/ThreadShell.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/ThreadShell.tsx rename to webui/frontend/src/components/thread/ThreadShell.tsx diff --git a/frontend_nanobot/src/components/thread/ThreadViewport.tsx b/webui/frontend/src/components/thread/ThreadViewport.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/ThreadViewport.tsx rename to webui/frontend/src/components/thread/ThreadViewport.tsx diff --git a/frontend_nanobot/src/components/thread/WorkspaceControls.tsx b/webui/frontend/src/components/thread/WorkspaceControls.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/WorkspaceControls.tsx rename to webui/frontend/src/components/thread/WorkspaceControls.tsx diff --git a/frontend_nanobot/src/components/thread/activity/ActivityEvidencePreview.tsx b/webui/frontend/src/components/thread/activity/ActivityEvidencePreview.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/activity/ActivityEvidencePreview.tsx rename to webui/frontend/src/components/thread/activity/ActivityEvidencePreview.tsx diff --git a/frontend_nanobot/src/components/thread/activity/ActivityGroup.tsx b/webui/frontend/src/components/thread/activity/ActivityGroup.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/activity/ActivityGroup.tsx rename to webui/frontend/src/components/thread/activity/ActivityGroup.tsx diff --git a/frontend_nanobot/src/components/thread/activity/ActivityStep.tsx b/webui/frontend/src/components/thread/activity/ActivityStep.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/activity/ActivityStep.tsx rename to webui/frontend/src/components/thread/activity/ActivityStep.tsx diff --git a/frontend_nanobot/src/components/thread/activity/DiffPair.tsx b/webui/frontend/src/components/thread/activity/DiffPair.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/activity/DiffPair.tsx rename to webui/frontend/src/components/thread/activity/DiffPair.tsx diff --git a/frontend_nanobot/src/components/thread/activity/FileEditRow.tsx b/webui/frontend/src/components/thread/activity/FileEditRow.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/activity/FileEditRow.tsx rename to webui/frontend/src/components/thread/activity/FileEditRow.tsx diff --git a/frontend_nanobot/src/components/thread/activity/ReasoningRow.tsx b/webui/frontend/src/components/thread/activity/ReasoningRow.tsx similarity index 100% rename from frontend_nanobot/src/components/thread/activity/ReasoningRow.tsx rename to webui/frontend/src/components/thread/activity/ReasoningRow.tsx diff --git a/frontend_nanobot/src/components/thread/promptNavigation.ts b/webui/frontend/src/components/thread/promptNavigation.ts similarity index 100% rename from frontend_nanobot/src/components/thread/promptNavigation.ts rename to webui/frontend/src/components/thread/promptNavigation.ts diff --git a/frontend_nanobot/src/components/ui/alert-dialog.tsx b/webui/frontend/src/components/ui/alert-dialog.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/alert-dialog.tsx rename to webui/frontend/src/components/ui/alert-dialog.tsx diff --git a/frontend_nanobot/src/components/ui/button.tsx b/webui/frontend/src/components/ui/button.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/button.tsx rename to webui/frontend/src/components/ui/button.tsx diff --git a/frontend_nanobot/src/components/ui/dialog.tsx b/webui/frontend/src/components/ui/dialog.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/dialog.tsx rename to webui/frontend/src/components/ui/dialog.tsx diff --git a/frontend_nanobot/src/components/ui/dropdown-menu.tsx b/webui/frontend/src/components/ui/dropdown-menu.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/dropdown-menu.tsx rename to webui/frontend/src/components/ui/dropdown-menu.tsx diff --git a/frontend_nanobot/src/components/ui/input.tsx b/webui/frontend/src/components/ui/input.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/input.tsx rename to webui/frontend/src/components/ui/input.tsx diff --git a/frontend_nanobot/src/components/ui/separator.tsx b/webui/frontend/src/components/ui/separator.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/separator.tsx rename to webui/frontend/src/components/ui/separator.tsx diff --git a/frontend_nanobot/src/components/ui/sheet.tsx b/webui/frontend/src/components/ui/sheet.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/sheet.tsx rename to webui/frontend/src/components/ui/sheet.tsx diff --git a/frontend_nanobot/src/components/ui/textarea.tsx b/webui/frontend/src/components/ui/textarea.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/textarea.tsx rename to webui/frontend/src/components/ui/textarea.tsx diff --git a/frontend_nanobot/src/components/ui/tooltip.tsx b/webui/frontend/src/components/ui/tooltip.tsx similarity index 100% rename from frontend_nanobot/src/components/ui/tooltip.tsx rename to webui/frontend/src/components/ui/tooltip.tsx diff --git a/frontend_nanobot/src/globals.css b/webui/frontend/src/globals.css similarity index 100% rename from frontend_nanobot/src/globals.css rename to webui/frontend/src/globals.css diff --git a/frontend_nanobot/src/hooks/useAttachedImages.ts b/webui/frontend/src/hooks/useAttachedImages.ts similarity index 100% rename from frontend_nanobot/src/hooks/useAttachedImages.ts rename to webui/frontend/src/hooks/useAttachedImages.ts diff --git a/frontend_nanobot/src/hooks/useClipboardAndDrop.ts b/webui/frontend/src/hooks/useClipboardAndDrop.ts similarity index 100% rename from frontend_nanobot/src/hooks/useClipboardAndDrop.ts rename to webui/frontend/src/hooks/useClipboardAndDrop.ts diff --git a/frontend_nanobot/src/hooks/useDeferredTitleRefresh.ts b/webui/frontend/src/hooks/useDeferredTitleRefresh.ts similarity index 100% rename from frontend_nanobot/src/hooks/useDeferredTitleRefresh.ts rename to webui/frontend/src/hooks/useDeferredTitleRefresh.ts diff --git a/frontend_nanobot/src/hooks/useNanobotStream.ts b/webui/frontend/src/hooks/useNanobotStream.ts similarity index 100% rename from frontend_nanobot/src/hooks/useNanobotStream.ts rename to webui/frontend/src/hooks/useNanobotStream.ts diff --git a/frontend_nanobot/src/hooks/useSessionAutomationJobs.ts b/webui/frontend/src/hooks/useSessionAutomationJobs.ts similarity index 100% rename from frontend_nanobot/src/hooks/useSessionAutomationJobs.ts rename to webui/frontend/src/hooks/useSessionAutomationJobs.ts diff --git a/frontend_nanobot/src/hooks/useSessions.ts b/webui/frontend/src/hooks/useSessions.ts similarity index 100% rename from frontend_nanobot/src/hooks/useSessions.ts rename to webui/frontend/src/hooks/useSessions.ts diff --git a/frontend_nanobot/src/hooks/useSidebarState.ts b/webui/frontend/src/hooks/useSidebarState.ts similarity index 100% rename from frontend_nanobot/src/hooks/useSidebarState.ts rename to webui/frontend/src/hooks/useSidebarState.ts diff --git a/frontend_nanobot/src/hooks/useSkills.ts b/webui/frontend/src/hooks/useSkills.ts similarity index 100% rename from frontend_nanobot/src/hooks/useSkills.ts rename to webui/frontend/src/hooks/useSkills.ts diff --git a/frontend_nanobot/src/hooks/useTheme.ts b/webui/frontend/src/hooks/useTheme.ts similarity index 100% rename from frontend_nanobot/src/hooks/useTheme.ts rename to webui/frontend/src/hooks/useTheme.ts diff --git a/frontend_nanobot/src/hooks/useVoiceRecorder.ts b/webui/frontend/src/hooks/useVoiceRecorder.ts similarity index 100% rename from frontend_nanobot/src/hooks/useVoiceRecorder.ts rename to webui/frontend/src/hooks/useVoiceRecorder.ts diff --git a/frontend_nanobot/src/i18n/config.ts b/webui/frontend/src/i18n/config.ts similarity index 100% rename from frontend_nanobot/src/i18n/config.ts rename to webui/frontend/src/i18n/config.ts diff --git a/frontend_nanobot/src/i18n/index.ts b/webui/frontend/src/i18n/index.ts similarity index 100% rename from frontend_nanobot/src/i18n/index.ts rename to webui/frontend/src/i18n/index.ts diff --git a/frontend_nanobot/src/i18n/locales/en/common.json b/webui/frontend/src/i18n/locales/en/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/en/common.json rename to webui/frontend/src/i18n/locales/en/common.json diff --git a/frontend_nanobot/src/i18n/locales/es/common.json b/webui/frontend/src/i18n/locales/es/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/es/common.json rename to webui/frontend/src/i18n/locales/es/common.json diff --git a/frontend_nanobot/src/i18n/locales/fr/common.json b/webui/frontend/src/i18n/locales/fr/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/fr/common.json rename to webui/frontend/src/i18n/locales/fr/common.json diff --git a/frontend_nanobot/src/i18n/locales/id/common.json b/webui/frontend/src/i18n/locales/id/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/id/common.json rename to webui/frontend/src/i18n/locales/id/common.json diff --git a/frontend_nanobot/src/i18n/locales/ja/common.json b/webui/frontend/src/i18n/locales/ja/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/ja/common.json rename to webui/frontend/src/i18n/locales/ja/common.json diff --git a/frontend_nanobot/src/i18n/locales/ko/common.json b/webui/frontend/src/i18n/locales/ko/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/ko/common.json rename to webui/frontend/src/i18n/locales/ko/common.json diff --git a/frontend_nanobot/src/i18n/locales/vi/common.json b/webui/frontend/src/i18n/locales/vi/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/vi/common.json rename to webui/frontend/src/i18n/locales/vi/common.json diff --git a/frontend_nanobot/src/i18n/locales/zh-CN/common.json b/webui/frontend/src/i18n/locales/zh-CN/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/zh-CN/common.json rename to webui/frontend/src/i18n/locales/zh-CN/common.json diff --git a/frontend_nanobot/src/i18n/locales/zh-TW/common.json b/webui/frontend/src/i18n/locales/zh-TW/common.json similarity index 100% rename from frontend_nanobot/src/i18n/locales/zh-TW/common.json rename to webui/frontend/src/i18n/locales/zh-TW/common.json diff --git a/frontend_nanobot/src/lib/activity-timeline.ts b/webui/frontend/src/lib/activity-timeline.ts similarity index 100% rename from frontend_nanobot/src/lib/activity-timeline.ts rename to webui/frontend/src/lib/activity-timeline.ts diff --git a/frontend_nanobot/src/lib/ansi.ts b/webui/frontend/src/lib/ansi.ts similarity index 100% rename from frontend_nanobot/src/lib/ansi.ts rename to webui/frontend/src/lib/ansi.ts diff --git a/frontend_nanobot/src/lib/api.ts b/webui/frontend/src/lib/api.ts similarity index 100% rename from frontend_nanobot/src/lib/api.ts rename to webui/frontend/src/lib/api.ts diff --git a/frontend_nanobot/src/lib/bootstrap.ts b/webui/frontend/src/lib/bootstrap.ts similarity index 100% rename from frontend_nanobot/src/lib/bootstrap.ts rename to webui/frontend/src/lib/bootstrap.ts diff --git a/frontend_nanobot/src/lib/chat-groups.ts b/webui/frontend/src/lib/chat-groups.ts similarity index 100% rename from frontend_nanobot/src/lib/chat-groups.ts rename to webui/frontend/src/lib/chat-groups.ts diff --git a/frontend_nanobot/src/lib/cli-app-events.ts b/webui/frontend/src/lib/cli-app-events.ts similarity index 100% rename from frontend_nanobot/src/lib/cli-app-events.ts rename to webui/frontend/src/lib/cli-app-events.ts diff --git a/frontend_nanobot/src/lib/clipboard.ts b/webui/frontend/src/lib/clipboard.ts similarity index 100% rename from frontend_nanobot/src/lib/clipboard.ts rename to webui/frontend/src/lib/clipboard.ts diff --git a/frontend_nanobot/src/lib/format.ts b/webui/frontend/src/lib/format.ts similarity index 100% rename from frontend_nanobot/src/lib/format.ts rename to webui/frontend/src/lib/format.ts diff --git a/frontend_nanobot/src/lib/http.ts b/webui/frontend/src/lib/http.ts similarity index 100% rename from frontend_nanobot/src/lib/http.ts rename to webui/frontend/src/lib/http.ts diff --git a/frontend_nanobot/src/lib/imageEncode.ts b/webui/frontend/src/lib/imageEncode.ts similarity index 100% rename from frontend_nanobot/src/lib/imageEncode.ts rename to webui/frontend/src/lib/imageEncode.ts diff --git a/frontend_nanobot/src/lib/mcp-preset-events.ts b/webui/frontend/src/lib/mcp-preset-events.ts similarity index 100% rename from frontend_nanobot/src/lib/mcp-preset-events.ts rename to webui/frontend/src/lib/mcp-preset-events.ts diff --git a/frontend_nanobot/src/lib/media.ts b/webui/frontend/src/lib/media.ts similarity index 100% rename from frontend_nanobot/src/lib/media.ts rename to webui/frontend/src/lib/media.ts diff --git a/frontend_nanobot/src/lib/nanobot-client.ts b/webui/frontend/src/lib/nanobot-client.ts similarity index 100% rename from frontend_nanobot/src/lib/nanobot-client.ts rename to webui/frontend/src/lib/nanobot-client.ts diff --git a/frontend_nanobot/src/lib/provider-brand.ts b/webui/frontend/src/lib/provider-brand.ts similarity index 100% rename from frontend_nanobot/src/lib/provider-brand.ts rename to webui/frontend/src/lib/provider-brand.ts diff --git a/frontend_nanobot/src/lib/remark-tex-math.ts b/webui/frontend/src/lib/remark-tex-math.ts similarity index 100% rename from frontend_nanobot/src/lib/remark-tex-math.ts rename to webui/frontend/src/lib/remark-tex-math.ts diff --git a/frontend_nanobot/src/lib/runtime.ts b/webui/frontend/src/lib/runtime.ts similarity index 100% rename from frontend_nanobot/src/lib/runtime.ts rename to webui/frontend/src/lib/runtime.ts diff --git a/frontend_nanobot/src/lib/subagent-channel-display.ts b/webui/frontend/src/lib/subagent-channel-display.ts similarity index 100% rename from frontend_nanobot/src/lib/subagent-channel-display.ts rename to webui/frontend/src/lib/subagent-channel-display.ts diff --git a/frontend_nanobot/src/lib/thread-display-compat.ts b/webui/frontend/src/lib/thread-display-compat.ts similarity index 100% rename from frontend_nanobot/src/lib/thread-display-compat.ts rename to webui/frontend/src/lib/thread-display-compat.ts diff --git a/frontend_nanobot/src/lib/tool-traces.ts b/webui/frontend/src/lib/tool-traces.ts similarity index 100% rename from frontend_nanobot/src/lib/tool-traces.ts rename to webui/frontend/src/lib/tool-traces.ts diff --git a/frontend_nanobot/src/lib/types.ts b/webui/frontend/src/lib/types.ts similarity index 100% rename from frontend_nanobot/src/lib/types.ts rename to webui/frontend/src/lib/types.ts diff --git a/frontend_nanobot/src/lib/utils.ts b/webui/frontend/src/lib/utils.ts similarity index 100% rename from frontend_nanobot/src/lib/utils.ts rename to webui/frontend/src/lib/utils.ts diff --git a/frontend_nanobot/src/lib/workspace.ts b/webui/frontend/src/lib/workspace.ts similarity index 100% rename from frontend_nanobot/src/lib/workspace.ts rename to webui/frontend/src/lib/workspace.ts diff --git a/frontend_nanobot/src/main.tsx b/webui/frontend/src/main.tsx similarity index 100% rename from frontend_nanobot/src/main.tsx rename to webui/frontend/src/main.tsx diff --git a/frontend_nanobot/src/providers/ClientProvider.tsx b/webui/frontend/src/providers/ClientProvider.tsx similarity index 100% rename from frontend_nanobot/src/providers/ClientProvider.tsx rename to webui/frontend/src/providers/ClientProvider.tsx diff --git a/frontend_nanobot/src/tests/agent-activity-cluster.test.tsx b/webui/frontend/src/tests/agent-activity-cluster.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/agent-activity-cluster.test.tsx rename to webui/frontend/src/tests/agent-activity-cluster.test.tsx diff --git a/frontend_nanobot/src/tests/api.test.ts b/webui/frontend/src/tests/api.test.ts similarity index 100% rename from frontend_nanobot/src/tests/api.test.ts rename to webui/frontend/src/tests/api.test.ts diff --git a/frontend_nanobot/src/tests/app-layout.test.tsx b/webui/frontend/src/tests/app-layout.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/app-layout.test.tsx rename to webui/frontend/src/tests/app-layout.test.tsx diff --git a/frontend_nanobot/src/tests/bootstrap.test.ts b/webui/frontend/src/tests/bootstrap.test.ts similarity index 100% rename from frontend_nanobot/src/tests/bootstrap.test.ts rename to webui/frontend/src/tests/bootstrap.test.ts diff --git a/frontend_nanobot/src/tests/chat-list.test.tsx b/webui/frontend/src/tests/chat-list.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/chat-list.test.tsx rename to webui/frontend/src/tests/chat-list.test.tsx diff --git a/frontend_nanobot/src/tests/code-block.test.tsx b/webui/frontend/src/tests/code-block.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/code-block.test.tsx rename to webui/frontend/src/tests/code-block.test.tsx diff --git a/frontend_nanobot/src/tests/format.i18n.test.ts b/webui/frontend/src/tests/format.i18n.test.ts similarity index 100% rename from frontend_nanobot/src/tests/format.i18n.test.ts rename to webui/frontend/src/tests/format.i18n.test.ts diff --git a/frontend_nanobot/src/tests/i18n.test.tsx b/webui/frontend/src/tests/i18n.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/i18n.test.tsx rename to webui/frontend/src/tests/i18n.test.tsx diff --git a/frontend_nanobot/src/tests/main-randomuuid.test.tsx b/webui/frontend/src/tests/main-randomuuid.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/main-randomuuid.test.tsx rename to webui/frontend/src/tests/main-randomuuid.test.tsx diff --git a/frontend_nanobot/src/tests/markdown-text-lazy-failure.test.tsx b/webui/frontend/src/tests/markdown-text-lazy-failure.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/markdown-text-lazy-failure.test.tsx rename to webui/frontend/src/tests/markdown-text-lazy-failure.test.tsx diff --git a/frontend_nanobot/src/tests/markdown-text-renderer.test.tsx b/webui/frontend/src/tests/markdown-text-renderer.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/markdown-text-renderer.test.tsx rename to webui/frontend/src/tests/markdown-text-renderer.test.tsx diff --git a/frontend_nanobot/src/tests/markdown-text.test.tsx b/webui/frontend/src/tests/markdown-text.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/markdown-text.test.tsx rename to webui/frontend/src/tests/markdown-text.test.tsx diff --git a/frontend_nanobot/src/tests/message-bubble.test.tsx b/webui/frontend/src/tests/message-bubble.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/message-bubble.test.tsx rename to webui/frontend/src/tests/message-bubble.test.tsx diff --git a/frontend_nanobot/src/tests/nanobot-client.test.ts b/webui/frontend/src/tests/nanobot-client.test.ts similarity index 100% rename from frontend_nanobot/src/tests/nanobot-client.test.ts rename to webui/frontend/src/tests/nanobot-client.test.ts diff --git a/frontend_nanobot/src/tests/provider-brand.test.ts b/webui/frontend/src/tests/provider-brand.test.ts similarity index 100% rename from frontend_nanobot/src/tests/provider-brand.test.ts rename to webui/frontend/src/tests/provider-brand.test.ts diff --git a/frontend_nanobot/src/tests/session-info-popover.test.tsx b/webui/frontend/src/tests/session-info-popover.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/session-info-popover.test.tsx rename to webui/frontend/src/tests/session-info-popover.test.tsx diff --git a/frontend_nanobot/src/tests/session-search-dialog.test.tsx b/webui/frontend/src/tests/session-search-dialog.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/session-search-dialog.test.tsx rename to webui/frontend/src/tests/session-search-dialog.test.tsx diff --git a/frontend_nanobot/src/tests/settings-view.test.tsx b/webui/frontend/src/tests/settings-view.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/settings-view.test.tsx rename to webui/frontend/src/tests/settings-view.test.tsx diff --git a/frontend_nanobot/src/tests/setup.ts b/webui/frontend/src/tests/setup.ts similarity index 100% rename from frontend_nanobot/src/tests/setup.ts rename to webui/frontend/src/tests/setup.ts diff --git a/frontend_nanobot/src/tests/subagent-channel-display.test.ts b/webui/frontend/src/tests/subagent-channel-display.test.ts similarity index 100% rename from frontend_nanobot/src/tests/subagent-channel-display.test.ts rename to webui/frontend/src/tests/subagent-channel-display.test.ts diff --git a/frontend_nanobot/src/tests/thread-composer-attach.test.tsx b/webui/frontend/src/tests/thread-composer-attach.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/thread-composer-attach.test.tsx rename to webui/frontend/src/tests/thread-composer-attach.test.tsx diff --git a/frontend_nanobot/src/tests/thread-composer.test.tsx b/webui/frontend/src/tests/thread-composer.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/thread-composer.test.tsx rename to webui/frontend/src/tests/thread-composer.test.tsx diff --git a/frontend_nanobot/src/tests/thread-display-compat.test.ts b/webui/frontend/src/tests/thread-display-compat.test.ts similarity index 100% rename from frontend_nanobot/src/tests/thread-display-compat.test.ts rename to webui/frontend/src/tests/thread-display-compat.test.ts diff --git a/frontend_nanobot/src/tests/thread-messages.test.tsx b/webui/frontend/src/tests/thread-messages.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/thread-messages.test.tsx rename to webui/frontend/src/tests/thread-messages.test.tsx diff --git a/frontend_nanobot/src/tests/thread-shell.test.tsx b/webui/frontend/src/tests/thread-shell.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/thread-shell.test.tsx rename to webui/frontend/src/tests/thread-shell.test.tsx diff --git a/frontend_nanobot/src/tests/thread-viewport.test.tsx b/webui/frontend/src/tests/thread-viewport.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/thread-viewport.test.tsx rename to webui/frontend/src/tests/thread-viewport.test.tsx diff --git a/frontend_nanobot/src/tests/useDeferredTitleRefresh.test.tsx b/webui/frontend/src/tests/useDeferredTitleRefresh.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/useDeferredTitleRefresh.test.tsx rename to webui/frontend/src/tests/useDeferredTitleRefresh.test.tsx diff --git a/frontend_nanobot/src/tests/useNanobotStream.test.tsx b/webui/frontend/src/tests/useNanobotStream.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/useNanobotStream.test.tsx rename to webui/frontend/src/tests/useNanobotStream.test.tsx diff --git a/frontend_nanobot/src/tests/useSessions.test.tsx b/webui/frontend/src/tests/useSessions.test.tsx similarity index 100% rename from frontend_nanobot/src/tests/useSessions.test.tsx rename to webui/frontend/src/tests/useSessions.test.tsx diff --git a/frontend_nanobot/src/types/react-syntax-highlighter-subpaths.d.ts b/webui/frontend/src/types/react-syntax-highlighter-subpaths.d.ts similarity index 100% rename from frontend_nanobot/src/types/react-syntax-highlighter-subpaths.d.ts rename to webui/frontend/src/types/react-syntax-highlighter-subpaths.d.ts diff --git a/frontend_nanobot/src/workers/imageEncode.worker.ts b/webui/frontend/src/workers/imageEncode.worker.ts similarity index 100% rename from frontend_nanobot/src/workers/imageEncode.worker.ts rename to webui/frontend/src/workers/imageEncode.worker.ts diff --git a/frontend_nanobot/tailwind.config.js b/webui/frontend/tailwind.config.js similarity index 100% rename from frontend_nanobot/tailwind.config.js rename to webui/frontend/tailwind.config.js diff --git a/frontend_nanobot/tsconfig.build.json b/webui/frontend/tsconfig.build.json similarity index 100% rename from frontend_nanobot/tsconfig.build.json rename to webui/frontend/tsconfig.build.json diff --git a/frontend_nanobot/tsconfig.json b/webui/frontend/tsconfig.json similarity index 100% rename from frontend_nanobot/tsconfig.json rename to webui/frontend/tsconfig.json diff --git a/frontend_nanobot/vite.config.ts b/webui/frontend/vite.config.ts similarity index 98% rename from frontend_nanobot/vite.config.ts rename to webui/frontend/vite.config.ts index 7f9c550..90d1acf 100644 --- a/frontend_nanobot/vite.config.ts +++ b/webui/frontend/vite.config.ts @@ -27,7 +27,7 @@ export default defineConfig(({ mode }) => { ], }, build: { - outDir: path.resolve(__dirname, "../webui/dist"), + outDir: path.resolve(__dirname, "../dist"), emptyOutDir: true, sourcemap: false, rollupOptions: { diff --git a/webui/index.html b/webui/index.html deleted file mode 100644 index 9075fdf..0000000 --- a/webui/index.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - Meeting Knowledge WebUI - - - -
- - -
-
-
-
选择一个知识库开始提问
-
左侧选择知识库,右侧像 nanobot 一样按对话线程提问。
-
-
- mode - model -
-
- -
-
-
Knowledge-first Chat
-

围绕你选中的知识库问问题,而不是手动翻 Markdown。

-

当前页面会把 `data/` 下的每个子文件夹视作一个知识库。选中后,对话会优先针对该库调用 Agent 工具。

-
-
- -
-
- 未选择知识库 - -
-
- - -
-
-
-
- - - - diff --git a/webui/styles.css b/webui/styles.css deleted file mode 100644 index 0ecfa76..0000000 --- a/webui/styles.css +++ /dev/null @@ -1,396 +0,0 @@ -:root { - color-scheme: light; - --bg: #f4f1ea; - --bg-accent: #e7ded0; - --surface: rgba(255, 252, 246, 0.84); - --surface-strong: #fffdf8; - --border: rgba(110, 87, 54, 0.16); - --text: #1f1a14; - --muted: #756754; - --accent: #155e63; - --accent-strong: #0d4347; - --accent-soft: rgba(21, 94, 99, 0.11); - --warning: #8b5e22; - --shadow: 0 24px 60px rgba(51, 37, 19, 0.12); - --radius: 18px; - --sidebar-width: 308px; - font-family: "Segoe UI Variable", "SF Pro Text", "IBM Plex Sans", sans-serif; -} - -* { - box-sizing: border-box; -} - -body { - margin: 0; - min-height: 100vh; - background: - radial-gradient(circle at top left, rgba(21, 94, 99, 0.1), transparent 36%), - radial-gradient(circle at bottom right, rgba(139, 94, 34, 0.12), transparent 34%), - linear-gradient(180deg, #f7f3ec 0%, var(--bg) 100%); - color: var(--text); -} - -.app-shell { - display: grid; - grid-template-columns: minmax(0, var(--sidebar-width)) minmax(0, 1fr); - min-height: 100vh; -} - -.sidebar { - position: sticky; - top: 0; - height: 100vh; - overflow: auto; - padding: 22px 18px 20px; - border-right: 1px solid var(--border); - background: - linear-gradient(180deg, rgba(255, 250, 243, 0.92), rgba(246, 239, 228, 0.86)); - backdrop-filter: blur(18px); -} - -.sidebar-top, -.thread-header, -.composer-toolbar, -.brand, -.message { - display: flex; - align-items: center; -} - -.sidebar-top, -.thread-header, -.composer-toolbar { - justify-content: space-between; -} - -.brand { - gap: 12px; -} - -.brand-mark { - width: 42px; - height: 42px; - border-radius: 14px; - display: grid; - place-items: center; - color: white; - background: linear-gradient(135deg, var(--accent), #2a8b92); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.32); - font-weight: 700; -} - -.brand-title { - font-size: 15px; - font-weight: 700; -} - -.brand-subtitle, -.thread-subtitle, -.micro-copy { - color: var(--muted); - font-size: 12px; -} - -.import-card, -.hero-card, -.composer-shell, -.message, -.kb-item { - border: 1px solid var(--border); - background: var(--surface); - box-shadow: var(--shadow); - backdrop-filter: blur(18px); -} - -.import-card, -.kb-item, -.hero-card, -.composer-shell, -.message { - border-radius: var(--radius); -} - -.import-card, -.kb-section { - margin-top: 18px; -} - -.import-card { - padding: 14px; -} - -.section-title { - margin-bottom: 12px; - font-size: 12px; - font-weight: 700; - letter-spacing: 0.08em; - text-transform: uppercase; - color: var(--muted); -} - -.field { - display: block; - margin-bottom: 10px; -} - -.field span { - display: block; - margin-bottom: 6px; - font-size: 12px; - color: var(--muted); -} - -input, -textarea, -button { - font: inherit; -} - -input, -textarea { - width: 100%; - border: 1px solid rgba(118, 97, 65, 0.16); - background: rgba(255, 255, 255, 0.7); - color: var(--text); - border-radius: 14px; - padding: 11px 13px; - transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease; -} - -input:focus, -textarea:focus { - outline: none; - border-color: rgba(21, 94, 99, 0.5); - box-shadow: 0 0 0 4px rgba(21, 94, 99, 0.12); -} - -textarea { - resize: vertical; - min-height: 104px; -} - -button { - cursor: pointer; -} - -.primary-button, -.ghost-button { - border-radius: 999px; - padding: 10px 14px; - transition: transform 140ms ease, background 140ms ease, color 140ms ease, border-color 140ms ease; -} - -.primary-button { - border: 1px solid transparent; - color: white; - background: linear-gradient(135deg, var(--accent), var(--accent-strong)); -} - -.ghost-button { - border: 1px solid rgba(118, 97, 65, 0.16); - color: var(--text); - background: rgba(255, 255, 255, 0.58); -} - -.primary-button:hover, -.ghost-button:hover, -.kb-item:hover { - transform: translateY(-1px); -} - -.kb-list { - display: grid; - gap: 12px; -} - -.kb-item { - width: 100%; - text-align: left; - padding: 14px; -} - -.kb-item.active { - border-color: rgba(21, 94, 99, 0.34); - background: linear-gradient(180deg, rgba(21, 94, 99, 0.1), rgba(255, 252, 246, 0.9)); -} - -.kb-name { - font-size: 14px; - font-weight: 700; -} - -.kb-meta, -.kb-summary { - margin-top: 6px; - font-size: 12px; - color: var(--muted); -} - -.thread-shell { - min-width: 0; - display: flex; - flex-direction: column; - padding: 22px; - gap: 18px; -} - -.thread-header { - gap: 16px; -} - -.thread-title { - font-size: 24px; - font-weight: 700; -} - -.runtime-badges, -.composer-toolbar { - gap: 10px; - flex-wrap: wrap; -} - -.badge { - display: inline-flex; - align-items: center; - gap: 6px; - border-radius: 999px; - padding: 7px 11px; - font-size: 12px; - border: 1px solid var(--border); - background: rgba(255, 255, 255, 0.7); -} - -.badge.accent { - background: var(--accent-soft); - border-color: rgba(21, 94, 99, 0.2); - color: var(--accent-strong); -} - -.badge.subtle { - color: var(--warning); -} - -.message-list { - flex: 1; - min-height: 0; - overflow: auto; - display: flex; - flex-direction: column; - gap: 14px; - padding-right: 4px; -} - -.hero-card { - padding: 24px; - animation: slide-up 360ms ease both; -} - -.hero-card h1 { - margin: 10px 0 10px; - font-size: clamp(28px, 5vw, 48px); - line-height: 1.05; - font-weight: 700; -} - -.hero-card p, -.message-body, -.message-activity { - line-height: 1.6; -} - -.hero-eyebrow { - font-size: 11px; - letter-spacing: 0.14em; - text-transform: uppercase; - color: var(--muted); -} - -.message { - gap: 14px; - align-items: flex-start; - padding: 16px 18px; - animation: slide-up 220ms ease both; -} - -.message.user { - background: linear-gradient(180deg, rgba(21, 94, 99, 0.08), rgba(255, 252, 246, 0.86)); -} - -.message-role { - flex: 0 0 auto; - width: 38px; - height: 38px; - border-radius: 14px; - display: grid; - place-items: center; - font-size: 12px; - font-weight: 700; - color: white; - background: linear-gradient(135deg, #4f4130, #8b5e22); -} - -.message.assistant .message-role { - background: linear-gradient(135deg, var(--accent), #2a8b92); -} - -.message-body { - white-space: pre-wrap; - word-break: break-word; - flex: 1; -} - -.message-activity { - margin-top: 10px; - padding-top: 10px; - border-top: 1px dashed var(--border); - font-size: 12px; - color: var(--muted); -} - -.composer-shell { - padding: 14px; -} - -.composer-box { - display: grid; - grid-template-columns: minmax(0, 1fr) auto; - gap: 12px; - align-items: end; -} - -.composer-box .primary-button { - height: 48px; -} - -@keyframes slide-up { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -@media (max-width: 980px) { - .app-shell { - grid-template-columns: 1fr; - } - - .sidebar { - position: relative; - height: auto; - border-right: none; - border-bottom: 1px solid var(--border); - } - - .thread-shell { - padding: 16px; - } - - .composer-box { - grid-template-columns: 1fr; - } -} diff --git a/webui_server.py b/webui_server.py index 49e02fc..36e886e 100644 --- a/webui_server.py +++ b/webui_server.py @@ -27,6 +27,7 @@ from core_agent.config import ( require_model_config, ) from core_agent.session import ConversationSession +from meeting_memory.config import config as memory_config from meeting_memory.service import MeetingMemoryService from providers.openai_compatible import OpenAICompatibleProvider from providers.rule_based import RuleBasedMeetingProvider @@ -38,7 +39,7 @@ DATA_DIR = WORKSPACE / "data" FRONTEND_DIST_DIR = WORKSPACE / "webui" / "dist" SIDEBAR_STATE_PATH = WORKSPACE / ".webui_sidebar_state.json" UPLOADS_DIR = WORKSPACE / "agent_memory" / "uploads" -MEMORY_CARD_ID = "meeting-memory" +MEMORY_CARD_ID = memory_config.neo4j.database or "neo4j" def now_iso() -> str: @@ -196,7 +197,7 @@ class ChatStore: def _default_preview(self, knowledge_base_id: str | None) -> str: if knowledge_base_id: - return f"围绕知识库「{knowledge_base_id}」开始提问" + return f"围绕 Neo4j 数据库「{knowledge_base_id}」开始提问" return "" def _new_session(self, knowledge_base_id: str | None = None) -> ConversationSession: @@ -249,7 +250,7 @@ class ChatStore: def create_chat(self, knowledge_base_id: str | None = None) -> ChatRecord: with self._lock: chat_id = f"chat_{uuid.uuid4().hex[:12]}" - return self._create_record(chat_id, knowledge_base_id) + return self._create_record(chat_id, knowledge_base_id or MEMORY_CARD_ID) def fork_chat(self, source_chat_id: str, before_user_index: int) -> ChatRecord: with self._lock: @@ -290,7 +291,7 @@ class ChatStore: def set_knowledge_base(self, chat_id: str, knowledge_base_id: str | None) -> ChatRecord: record = self.get_by_chat_id(chat_id) - cleaned = (knowledge_base_id or "").strip() or None + cleaned = MEMORY_CARD_ID record.knowledge_base_id = cleaned if cleaned: record.session.session_state["last_knowledge_base_id"] = cleaned @@ -440,14 +441,14 @@ def list_knowledge_base_cards(data_dir: Path) -> list[dict[str, Any]]: return [ { "knowledge_base_id": MEMORY_CARD_ID, - "title": "Meeting Memory", + "title": f"Neo4j / {MEMORY_CARD_ID}", "meeting_count": int(graph.get("meetings", 0) or 0), "last_meeting_date": "", "updated_at": now_iso(), "latest_summary": [ + f"Database {MEMORY_CARD_ID}", f"Meetings {graph.get('meetings', 0)}", f"Entities {graph.get('entities', 0)}", - f"Action items {state.get('action_items_tracked', 0)}", ], "counts": { "metrics": int(state.get("metrics_tracked", 0) or 0), @@ -624,6 +625,7 @@ def create_app(force_offline: bool = False) -> FastAPI: "mode": mode, "model_name": getattr(config, "model", "") or None, "default_knowledge_base_id": default_knowledge_base_id(DATA_DIR), + "neo4j_database": MEMORY_CARD_ID, "workspace": str(WORKSPACE), } @@ -972,7 +974,7 @@ def create_app(force_offline: bool = False) -> FastAPI: return JSONResponse( status_code=503, content={ - "detail": "Meeting Knowledge WebUI build is missing. Run `npm install` and `npm run build` in frontend_nanobot first." + "detail": "Meeting Knowledge WebUI build is missing. Run `npm install` and `npm run build` in webui/frontend first." }, ) index_path = FRONTEND_DIST_DIR / "index.html"