@pactor-app/skills 1.26.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pactor-app/skills",
3
- "version": "1.26.0",
3
+ "version": "1.28.0",
4
4
  "description": "Agent skills for rapidly building pactor Server-Driven UI applications",
5
5
  "keywords": [
6
6
  "pactor",
@@ -29,7 +29,7 @@ version: 1.3.0
29
29
  2. **布局与间距以样板页为准**:新建工程时以 `template/` 同类页为准;**增量时以目标工程内同模块/同类型页**为准。线框图只提取结构与功能,不逐像素还原 ASCII
30
30
  3. **样式与原产品一致**:主题令牌(含深浅色)、自定义 CSS(如登录页)、换肤入口全部移植对齐,见 `references/theme-and-style.md`
31
31
  4. **功能与原产品一致**:线框图描述的筛选/搜索/跳转/弹窗/提交等交互必须经 events/actions 闭环可用,禁止只画静态骨架;错误分支(校验失败提示等)也要实现
32
- 5. **表单一律用 `Form` 组件**:凡是一组「字段 + 校验 + 提交」的表单——独立表单页、页面内嵌的配置面板(如树/列表右侧的编辑表单)、弹窗/抽屉表单、**搜索栏(关键词 + 查询/重置 的筛选区,用 `Form layout: inline`)**——都必须用 `Form` 包裹,字段经 `props.name` 绑定,校验用字段级 `rules`(required + message),提交用 `submit: true` 的 Button 触发 `onSubmit`;**禁止**散放 `Input`/`Select` + `setState` 攒草稿 + `if` 动作手写校验。回填联动(如点击列表/树节点填充表单)用 `form.setValues` 动作,不要绑 `${state.x}` 到字段 value;即点即生效的 ChipFilter 快筛行没有提交语义,不属于表单
32
+ 5. **表单一律用 `Form` 组件**:凡是一组「字段 + 校验 + 提交」的表单——独立表单页、页面内嵌的配置面板(如树/列表右侧的编辑表单)、弹窗/抽屉表单、**搜索栏(关键词 + 查询/重置 的筛选区,用 `Form layout: inline`)**——都必须用 `Form` 包裹,字段经 `props.name` 绑定,校验用字段级 `rules`(required + message),提交用 `submit: true` 的 Button 触发 `onSubmit`;**禁止**散放 `Input`/`Select` + `setState` 攒草稿 + `if` 动作手写校验。上下结构的字段一律用 `Field` 包裹:label、必填星号(`required: true`)、行右提示(`labelHint`)由 `Field` 渲染,控件上只留 `name`/`rules` 等(`Form layout: inline` 的搜索栏除外,label 直接挂控件);禁止手写 `Text("*") + Label` 拼标签。回填联动(如点击列表/树节点填充表单)用 `form.setValues` 动作,不要绑 `${state.x}` 到字段 value;即点即生效的 ChipFilter 快筛行没有提交语义,不属于表单
33
33
  6. **列表页操作列规范**:操作列按钮样式统一 `Button variant: link`;「编辑」与「新建」指向同一个表单(同一路由页或同一弹窗),唯一区别是编辑以行数据预填(路由页 `initialValues: ${data.detail}`,弹窗/内嵌面板 `form.setValues`)
34
34
  7. **文案以线框图为准**:标题、按钮、空态文案逐字取自线框图/PRD
35
35
  8. DSL 语法细节(组件 props、表达式、动作)以 `pactor-dsl` skill 与 packages/ui 当前导出为准,本 skill 只约定流程与产出物
@@ -183,8 +183,16 @@ body:
183
183
  initialValues: ${data.detail} # 新增页省略
184
184
  children:
185
185
  # 字段按线框图分区;required / 校验规则照抄线框图字段说明
186
- - type: Input
187
- props: { name: name, label: 名称, required: true }
186
+ # 字段一律用 Field 包裹:label / 必填星号(required) / 行右提示(labelHint) 由 Field 渲染,
187
+ # 校验仍在控件的 rules 上;不要把 label/required 直接挂在 Input/Select 上
188
+ - type: Field
189
+ props: { label: 名称, required: true }
190
+ children:
191
+ - type: Input
192
+ props:
193
+ name: name
194
+ rules:
195
+ - { required: true, message: 请输入名称 }
188
196
  events:
189
197
  onSubmit:
190
198
  - action: setState
@@ -217,28 +225,34 @@ body:
217
225
  props:
218
226
  name: edit # 多表单共存时命名,form.setValues 按名寻址
219
227
  children:
220
- - type: Input
221
- props:
222
- name: name
223
- label: 名称
224
- rules:
225
- - { required: true, message: 请输入名称 }
226
- - type: RadioGroup
227
- props:
228
- name: type
229
- label: 类型
230
- options:
231
- - { label: 目录, value: DIRECTORY }
232
- - { label: 页面, value: PAGE }
228
+ - type: Field
229
+ props: { label: 名称, required: true }
230
+ children:
231
+ - type: Input
232
+ props:
233
+ name: name
234
+ rules:
235
+ - { required: true, message: 请输入名称 }
236
+ - type: Field
237
+ props: { label: 类型 }
238
+ children:
239
+ - type: RadioGroup
240
+ props:
241
+ name: type
242
+ options:
243
+ - { label: 目录, value: DIRECTORY }
244
+ - { label: 页面, value: PAGE }
233
245
  # 条件字段显隐依赖其他字段的实时值:经 onValuesChange 镜像到 state 后用 when
234
- - type: Select
246
+ - type: Field
235
247
  when: ${state.fType == 'PAGE'}
236
- props:
237
- name: pageEntry
238
- label: 页面入口
239
- options: ${data.pages}
240
- rules:
241
- - { required: true, message: 页面入口必选 }
248
+ props: { label: 页面入口, required: true }
249
+ children:
250
+ - type: Select
251
+ props:
252
+ name: pageEntry
253
+ options: ${data.pages}
254
+ rules:
255
+ - { required: true, message: 页面入口必选 }
242
256
  - type: Flex
243
257
  props: { justify: end, gap: middle }
244
258
  children:
@@ -11,12 +11,12 @@
11
11
  "build:test": "node scripts/build.mjs test"
12
12
  },
13
13
  "dependencies": {
14
- "@pactor-app/core": "^1.23.0",
15
- "@pactor-app/runtime": "^1.23.0",
16
- "@pactor-app/ui": "^1.23.0",
14
+ "@pactor-app/core": "^1.27.0",
15
+ "@pactor-app/runtime": "^1.27.0",
16
+ "@pactor-app/ui": "^1.27.0",
17
17
  "lucide-react": "1.45.0",
18
18
  "next": "16.3.5",
19
- "pactor-app": "^1.23.0",
19
+ "pactor-app": "^1.27.0",
20
20
  "react": "19.2.8",
21
21
  "react-dom": "19.2.8",
22
22
  "yaml": "^2.9.1"
@@ -9,14 +9,14 @@ importers:
9
9
  .:
10
10
  dependencies:
11
11
  '@pactor-app/core':
12
- specifier: ^1.23.0
13
- version: 1.23.0
12
+ specifier: ^1.27.0
13
+ version: 1.27.0
14
14
  '@pactor-app/runtime':
15
- specifier: ^1.23.0
16
- version: 1.23.0(react@19.2.8)
15
+ specifier: ^1.27.0
16
+ version: 1.27.0(react@19.2.8)
17
17
  '@pactor-app/ui':
18
- specifier: ^1.23.0
19
- version: 1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
18
+ specifier: ^1.27.0
19
+ version: 1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
20
20
  lucide-react:
21
21
  specifier: 1.45.0
22
22
  version: 1.45.0(react@19.2.8)
@@ -24,8 +24,8 @@ importers:
24
24
  specifier: 16.3.5
25
25
  version: 16.3.5(@babel/core@7.29.7)(@types/node@20.19.43)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
26
26
  pactor-app:
27
- specifier: ^1.23.0
28
- version: 1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(vite@8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1))
27
+ specifier: ^1.27.0
28
+ version: 1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(vite@8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1))
29
29
  react:
30
30
  specifier: 19.2.8
31
31
  version: 19.2.8
@@ -501,73 +501,73 @@ packages:
501
501
  '@oxc-project/types@0.151.0':
502
502
  resolution: {integrity: sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==}
503
503
 
504
- '@pactor-app/app@1.23.0':
505
- resolution: {integrity: sha512-XOLnarAyBXQRRzP9ZRqEildLX+njDHdcA+yPhxHLiBB6slHpdojq9ZbYLwA3XYPH5KTme4ATvc4WzcKgSywztQ==}
504
+ '@pactor-app/app@1.27.0':
505
+ resolution: {integrity: sha512-c7Ig/Azmjduh3ATzn2ruJVilNwwljN7RR7hPa4+LwD4v35dqH2sobz6yrORckh+7ztd7A3DVo83zlVH95bHE4Q==}
506
506
  engines: {node: '>=18'}
507
507
  peerDependencies:
508
508
  react: '>=18'
509
509
  react-dom: '>=18'
510
510
  react-router-dom: '>=6'
511
511
 
512
- '@pactor-app/chat@1.23.0':
513
- resolution: {integrity: sha512-DNiIq3pd7EZKlVxin4bDtpliIt3zpGtwQzmcu/JT+sx4xO4dF2Wve2slGSR5lx1jMPgfhzL8nglHkKOjYoXrUw==}
512
+ '@pactor-app/chat@1.27.0':
513
+ resolution: {integrity: sha512-CAgreyhMczlmNFuLD+P8FnjnnilwNkr/UwEDDrWh1HsnGqAIAiQAHC2gW9IWDTCVvyoV1p8BoIIaEi7NxvwQNQ==}
514
514
  engines: {node: '>=18'}
515
515
  peerDependencies:
516
516
  react: '>=18'
517
517
 
518
- '@pactor-app/cli@1.23.0':
519
- resolution: {integrity: sha512-v0JxL0WpJ1V8y6hnHzYQTETZtX5t4B9pdb8wyQZ7xEeM6lMdpJyqYqumFijxYxM4TNynfbxIQp1fhNyehfX4sg==}
518
+ '@pactor-app/cli@1.27.0':
519
+ resolution: {integrity: sha512-K0towebCS4sp5SbzF7RdjSBlnZOtHY4BI9ao5dOVD4RvNAlie5vw28/xHvbUGww4X0L3uydc1+xyR05IEE8vPQ==}
520
520
  engines: {node: '>=18'}
521
521
  hasBin: true
522
522
 
523
- '@pactor-app/core@1.23.0':
524
- resolution: {integrity: sha512-jOC6lhBHHfVMkcHLV4fTWY1CTVzYLCLpZVUh2mtd+3dzto/9BYFVBC47gJ7HG4njj2fJjNIOgx6aBh3XRjzGyA==}
523
+ '@pactor-app/core@1.27.0':
524
+ resolution: {integrity: sha512-VjjJwwrG37j7xMD5tANubb6FRki9pGSpdjJwGM37zB2KedHYMbzt84ZSvd8xn417+pUxB+AvwsP/wg8IV3vcuA==}
525
525
  engines: {node: '>=18'}
526
526
 
527
- '@pactor-app/expression@1.23.0':
528
- resolution: {integrity: sha512-lj4VgExdkSG5YcCwJTQvLbzQFx+M2JKPq/gBIDRjOLGiyJHbUQN+wKpQZxetmTbaAoTQvOoLMoETgXtgvU41kw==}
527
+ '@pactor-app/expression@1.27.0':
528
+ resolution: {integrity: sha512-228qrxEfmdD9uAIvv7UGSOxT692MGlu6SiDGrZpUS5tPEoLyeBsoI61+XCeaXu7KSVXcigMzPDoTDEw9oiRcqQ==}
529
529
  engines: {node: '>=18'}
530
530
 
531
- '@pactor-app/markdown@1.23.0':
532
- resolution: {integrity: sha512-t8htQfTGuuq4HxyVzvEXOVy/Rb8ug++fNe58uravfxDOkmp+M9kRGjcu2JYmXLBEzgFtekeLPnaTWN8oYG63iA==}
531
+ '@pactor-app/markdown@1.27.0':
532
+ resolution: {integrity: sha512-YpD/wGdcwGeiTk6HGchEFHy9D7GH11X4IQujDuJWrwj9PAeJtqCOh2BTJZHE+xcujYwQuVWwgUOF1GzGu3rjcQ==}
533
533
  engines: {node: '>=18'}
534
534
  peerDependencies:
535
535
  react: '>=18'
536
536
 
537
- '@pactor-app/permission@1.23.0':
538
- resolution: {integrity: sha512-6gYcFhoYlDBq+TmYzn0zoXJQnD5sCeTTxsAbx2TbfRjFn1VJiGJFBcelFQsvDQBcZRdahVPMLfzz8K0bTBSPFg==}
537
+ '@pactor-app/permission@1.27.0':
538
+ resolution: {integrity: sha512-fO/BA5/FcnMPqLUdRS+a7CeQS3OmWnw0Wg2tChOGMkoqWTq6OS3Ee628tAVTDVtxpeA+reNaXYZFAKr6V7TATA==}
539
539
  engines: {node: '>=18'}
540
540
 
541
- '@pactor-app/resource@1.23.0':
542
- resolution: {integrity: sha512-3tp+NG6SkwaVtTTCg1ALkj+ugaSbLG++Wotyg/C233pSZzdes5Q6aOh+zFwwlWV7e9Rol2NX6rgESgbMrjbz/A==}
541
+ '@pactor-app/resource@1.27.0':
542
+ resolution: {integrity: sha512-peVCWyJ7xUjFNdOBsKJWlkmjv2MQnhtii1wgOtIJEBF+5cPIjr4T6f0GuTvmw0MbtA7ppS3Mf7mJf1uzVksHSw==}
543
543
  engines: {node: '>=18'}
544
544
 
545
- '@pactor-app/router@1.23.0':
546
- resolution: {integrity: sha512-9LKWkFelnvtpUObr3lX/MjArJd95wbk8Z2ntwvwdTUQXP+iS9VrWTzreMMjy5jRkXEywKTKXES0OhqrvxM3TVQ==}
545
+ '@pactor-app/router@1.27.0':
546
+ resolution: {integrity: sha512-+591RqB/BgVXPZodr1t0OK9Jfx6+olNx4YVdCnAHdBmQmir6G03U0J3HknTaPYGVBDSJkXgOgM7lGcSuLq3Lxg==}
547
547
  engines: {node: '>=18'}
548
548
  peerDependencies:
549
549
  react: '>=18'
550
550
  react-router-dom: '>=6'
551
551
 
552
- '@pactor-app/runtime@1.23.0':
553
- resolution: {integrity: sha512-7SL5vmrhu6OliDvl3Uz71X/U6MU3aDj55igdCQYK3saKWUSHPQ4TpJ7SJRcRK2V29oOG+T+dPONxUD5aB+I6hA==}
552
+ '@pactor-app/runtime@1.27.0':
553
+ resolution: {integrity: sha512-SkTUFcQfXoOj2ldazZH/YECX0/XpTZAQ3jSSaanAK3bIP4QRWhAecARhcO9YQUrAaeFRuZMNS7VFaZr/vy5r8w==}
554
554
  engines: {node: '>=18'}
555
555
  peerDependencies:
556
556
  react: '>=18'
557
557
 
558
- '@pactor-app/schema@1.23.0':
559
- resolution: {integrity: sha512-4vQnrEzb7P7cE+8XFsda0UNQZ3FPqFzcQp35/HuRl11MPIaRkpC4gZ3CFo9zUA35prTACV/IOXtTKtmBQ2trvg==}
558
+ '@pactor-app/schema@1.27.0':
559
+ resolution: {integrity: sha512-ICzNoh/p0fTrOeCgA+smdYNt6CMwd8w7QbFoM1LauaiFjisue7YfAHslB+TUcEEWv/jTND0/5PMXHr0s7AvpgQ==}
560
560
  engines: {node: '>=18'}
561
561
 
562
- '@pactor-app/ui@1.23.0':
563
- resolution: {integrity: sha512-LqvsURn0rMFQ7e/qfrj6t66uWKsQkRofLBC6LCVXPK2MuYxDfEQ/0SSrWK05r23VCkBEznV7/PApLLCu8ztgeg==}
562
+ '@pactor-app/ui@1.27.0':
563
+ resolution: {integrity: sha512-hu+/2TzvkJwGXJLJpOIO3SBtqtRmMTy0znrSi/Oj+JDHQEWpFUzYHYepWSgN5WQABoEG2A9DUchDya+yXe8P1Q==}
564
564
  engines: {node: '>=18'}
565
565
  peerDependencies:
566
566
  react: '>=18'
567
567
  react-dom: '>=18'
568
568
 
569
- '@pactor-app/vite-plugin@1.23.0':
570
- resolution: {integrity: sha512-pOWMwzP1NsD9Z29B1VFNnvrAtAiFORJ3LVDYG8lXUfC7pXZHtD0N+ZAK8H9QgZIX53B5JcW7f4+rlnevgJii3A==}
569
+ '@pactor-app/vite-plugin@1.27.0':
570
+ resolution: {integrity: sha512-+YOSrbnDU0JzF4QFG1YzqywbURGHUzIu8arqd9vClGE34RDADDHFt/LJRK3wOIAl7Cz6QTuz8Yjctn2VszMuPQ==}
571
571
  engines: {node: '>=18'}
572
572
  peerDependencies:
573
573
  vite: '>=5'
@@ -2529,8 +2529,8 @@ packages:
2529
2529
  resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
2530
2530
  engines: {node: '>=6'}
2531
2531
 
2532
- pactor-app@1.23.0:
2533
- resolution: {integrity: sha512-Q1woF3BMsktwv9ln06KWWug4z8GS4LOmTnNLruSa7B3Bak4cUS0wtXyF6AF6G7kSZoiq0UhNTvVz4QPkvM+ZZg==}
2532
+ pactor-app@1.27.0:
2533
+ resolution: {integrity: sha512-0rapzSaI0+bAUAgzLCR4fIsX2b+DtKgUhW4EY9JfQL72FpgcpLobYtc6BnwvIVYWU1trXOV3dO13VgiEHZIC4w==}
2534
2534
  engines: {node: '>=18'}
2535
2535
  peerDependencies:
2536
2536
  react: '>=18'
@@ -3613,16 +3613,16 @@ snapshots:
3613
3613
 
3614
3614
  '@oxc-project/types@0.151.0': {}
3615
3615
 
3616
- '@pactor-app/app@1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
3616
+ '@pactor-app/app@1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
3617
3617
  dependencies:
3618
- '@pactor-app/core': 1.23.0
3619
- '@pactor-app/expression': 1.23.0
3620
- '@pactor-app/permission': 1.23.0
3621
- '@pactor-app/resource': 1.23.0
3622
- '@pactor-app/router': 1.23.0(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
3623
- '@pactor-app/runtime': 1.23.0(react@19.2.8)
3624
- '@pactor-app/schema': 1.23.0
3625
- '@pactor-app/ui': 1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
3618
+ '@pactor-app/core': 1.27.0
3619
+ '@pactor-app/expression': 1.27.0
3620
+ '@pactor-app/permission': 1.27.0
3621
+ '@pactor-app/resource': 1.27.0
3622
+ '@pactor-app/router': 1.27.0(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
3623
+ '@pactor-app/runtime': 1.27.0(react@19.2.8)
3624
+ '@pactor-app/schema': 1.27.0
3625
+ '@pactor-app/ui': 1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
3626
3626
  react: 19.2.8
3627
3627
  react-dom: 19.2.8(react@19.2.8)
3628
3628
  react-router-dom: 7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
@@ -3632,13 +3632,13 @@ snapshots:
3632
3632
  - '@types/react-dom'
3633
3633
  - supports-color
3634
3634
 
3635
- '@pactor-app/chat@1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
3635
+ '@pactor-app/chat@1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
3636
3636
  dependencies:
3637
- '@pactor-app/core': 1.23.0
3638
- '@pactor-app/markdown': 1.23.0(@types/react@19.3.0)(react@19.2.8)
3639
- '@pactor-app/permission': 1.23.0
3640
- '@pactor-app/runtime': 1.23.0(react@19.2.8)
3641
- '@pactor-app/ui': 1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
3637
+ '@pactor-app/core': 1.27.0
3638
+ '@pactor-app/markdown': 1.27.0(@types/react@19.3.0)(react@19.2.8)
3639
+ '@pactor-app/permission': 1.27.0
3640
+ '@pactor-app/runtime': 1.27.0(react@19.2.8)
3641
+ '@pactor-app/ui': 1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
3642
3642
  react: 19.2.8
3643
3643
  transitivePeerDependencies:
3644
3644
  - '@date-fns/tz'
@@ -3648,22 +3648,22 @@ snapshots:
3648
3648
  - react-router-dom
3649
3649
  - supports-color
3650
3650
 
3651
- '@pactor-app/cli@1.23.0':
3651
+ '@pactor-app/cli@1.27.0':
3652
3652
  dependencies:
3653
- '@pactor-app/core': 1.23.0
3654
- '@pactor-app/expression': 1.23.0
3655
- '@pactor-app/schema': 1.23.0
3653
+ '@pactor-app/core': 1.27.0
3654
+ '@pactor-app/expression': 1.27.0
3655
+ '@pactor-app/schema': 1.27.0
3656
3656
  yaml: 2.9.1
3657
3657
 
3658
- '@pactor-app/core@1.23.0': {}
3658
+ '@pactor-app/core@1.27.0': {}
3659
3659
 
3660
- '@pactor-app/expression@1.23.0':
3660
+ '@pactor-app/expression@1.27.0':
3661
3661
  dependencies:
3662
- '@pactor-app/core': 1.23.0
3662
+ '@pactor-app/core': 1.27.0
3663
3663
 
3664
- '@pactor-app/markdown@1.23.0(@types/react@19.3.0)(react@19.2.8)':
3664
+ '@pactor-app/markdown@1.27.0(@types/react@19.3.0)(react@19.2.8)':
3665
3665
  dependencies:
3666
- '@pactor-app/core': 1.23.0
3666
+ '@pactor-app/core': 1.27.0
3667
3667
  katex: 0.18.9
3668
3668
  react: 19.2.8
3669
3669
  react-markdown: 10.1.0(@types/react@19.3.0)(react@19.2.8)
@@ -3675,41 +3675,41 @@ snapshots:
3675
3675
  - '@types/react'
3676
3676
  - supports-color
3677
3677
 
3678
- '@pactor-app/permission@1.23.0':
3678
+ '@pactor-app/permission@1.27.0':
3679
3679
  dependencies:
3680
- '@pactor-app/core': 1.23.0
3680
+ '@pactor-app/core': 1.27.0
3681
3681
 
3682
- '@pactor-app/resource@1.23.0':
3682
+ '@pactor-app/resource@1.27.0':
3683
3683
  dependencies:
3684
- '@pactor-app/core': 1.23.0
3684
+ '@pactor-app/core': 1.27.0
3685
3685
 
3686
- '@pactor-app/router@1.23.0(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
3686
+ '@pactor-app/router@1.27.0(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
3687
3687
  dependencies:
3688
- '@pactor-app/core': 1.23.0
3689
- '@pactor-app/permission': 1.23.0
3688
+ '@pactor-app/core': 1.27.0
3689
+ '@pactor-app/permission': 1.27.0
3690
3690
  react: 19.2.8
3691
3691
  react-router-dom: 7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
3692
3692
 
3693
- '@pactor-app/runtime@1.23.0(react@19.2.8)':
3693
+ '@pactor-app/runtime@1.27.0(react@19.2.8)':
3694
3694
  dependencies:
3695
- '@pactor-app/core': 1.23.0
3696
- '@pactor-app/expression': 1.23.0
3697
- '@pactor-app/schema': 1.23.0
3695
+ '@pactor-app/core': 1.27.0
3696
+ '@pactor-app/expression': 1.27.0
3697
+ '@pactor-app/schema': 1.27.0
3698
3698
  react: 19.2.8
3699
3699
 
3700
- '@pactor-app/schema@1.23.0':
3700
+ '@pactor-app/schema@1.27.0':
3701
3701
  dependencies:
3702
- '@pactor-app/core': 1.23.0
3702
+ '@pactor-app/core': 1.27.0
3703
3703
  ajv: 8.20.0
3704
3704
 
3705
- '@pactor-app/ui@1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
3705
+ '@pactor-app/ui@1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
3706
3706
  dependencies:
3707
3707
  '@base-ui/react': 1.8.0(@date-fns/tz@1.5.0)(@types/react@19.3.0)(date-fns@4.4.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
3708
- '@pactor-app/core': 1.23.0
3709
- '@pactor-app/markdown': 1.23.0(@types/react@19.3.0)(react@19.2.8)
3710
- '@pactor-app/permission': 1.23.0
3711
- '@pactor-app/router': 1.23.0(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
3712
- '@pactor-app/runtime': 1.23.0(react@19.2.8)
3708
+ '@pactor-app/core': 1.27.0
3709
+ '@pactor-app/markdown': 1.27.0(@types/react@19.3.0)(react@19.2.8)
3710
+ '@pactor-app/permission': 1.27.0
3711
+ '@pactor-app/router': 1.27.0(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
3712
+ '@pactor-app/runtime': 1.27.0(react@19.2.8)
3713
3713
  class-variance-authority: 0.7.1
3714
3714
  clsx: 2.1.1
3715
3715
  cmdk: 1.1.1(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
@@ -3734,10 +3734,10 @@ snapshots:
3734
3734
  - react-router-dom
3735
3735
  - supports-color
3736
3736
 
3737
- '@pactor-app/vite-plugin@1.23.0(vite@8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1))':
3737
+ '@pactor-app/vite-plugin@1.27.0(vite@8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1))':
3738
3738
  dependencies:
3739
- '@pactor-app/core': 1.23.0
3740
- '@pactor-app/schema': 1.23.0
3739
+ '@pactor-app/core': 1.27.0
3740
+ '@pactor-app/schema': 1.27.0
3741
3741
  vite: 8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1)
3742
3742
  yaml: 2.9.1
3743
3743
 
@@ -5996,21 +5996,21 @@ snapshots:
5996
5996
 
5997
5997
  p-try@2.2.0: {}
5998
5998
 
5999
- pactor-app@1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(vite@8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1)):
6000
- dependencies:
6001
- '@pactor-app/app': 1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
6002
- '@pactor-app/chat': 1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
6003
- '@pactor-app/cli': 1.23.0
6004
- '@pactor-app/core': 1.23.0
6005
- '@pactor-app/expression': 1.23.0
6006
- '@pactor-app/markdown': 1.23.0(@types/react@19.3.0)(react@19.2.8)
6007
- '@pactor-app/permission': 1.23.0
6008
- '@pactor-app/resource': 1.23.0
6009
- '@pactor-app/router': 1.23.0(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
6010
- '@pactor-app/runtime': 1.23.0(react@19.2.8)
6011
- '@pactor-app/schema': 1.23.0
6012
- '@pactor-app/ui': 1.23.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
6013
- '@pactor-app/vite-plugin': 1.23.0(vite@8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1))
5999
+ pactor-app@1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(vite@8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1)):
6000
+ dependencies:
6001
+ '@pactor-app/app': 1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
6002
+ '@pactor-app/chat': 1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
6003
+ '@pactor-app/cli': 1.27.0
6004
+ '@pactor-app/core': 1.27.0
6005
+ '@pactor-app/expression': 1.27.0
6006
+ '@pactor-app/markdown': 1.27.0(@types/react@19.3.0)(react@19.2.8)
6007
+ '@pactor-app/permission': 1.27.0
6008
+ '@pactor-app/resource': 1.27.0
6009
+ '@pactor-app/router': 1.27.0(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
6010
+ '@pactor-app/runtime': 1.27.0(react@19.2.8)
6011
+ '@pactor-app/schema': 1.27.0
6012
+ '@pactor-app/ui': 1.27.0(@date-fns/tz@1.5.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react-router-dom@7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
6013
+ '@pactor-app/vite-plugin': 1.27.0(vite@8.3.1(@types/node@20.19.43)(jiti@2.7.0)(yaml@2.9.1))
6014
6014
  react: 19.2.8
6015
6015
  react-dom: 19.2.8(react@19.2.8)
6016
6016
  react-router-dom: 7.18.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
@@ -78,30 +78,11 @@ body:
78
78
  className: "[&>[data-slot=grid-item]:last-child]:col-span-full"
79
79
  children:
80
80
  - type: Field
81
+ props:
82
+ label: Provider Code
83
+ required: true
84
+ labelHint: Provider Code 创建后不可修改
81
85
  children:
82
- - type: Flex
83
- props:
84
- justify: space-between
85
- align: center
86
- className: w-full mb-3.5
87
- children:
88
- - type: Flex
89
- props:
90
- align: center
91
- className: gap-0.5
92
- children:
93
- - type: Text
94
- props:
95
- text: "*"
96
- className: text-destructive text-sm leading-none
97
- - type: Label
98
- props:
99
- text: Provider Code
100
- - type: Text
101
- props:
102
- text: Provider Code 创建后不可修改
103
- type: secondary
104
- className: text-xs leading-none
105
86
  - type: Input
106
87
  props:
107
88
  name: code
@@ -230,30 +211,11 @@ body:
230
211
  className: w-full
231
212
  placeholder: 如 us-east、cn-beijing
232
213
  - type: Field
214
+ props:
215
+ label: API Key
216
+ required: true
217
+ labelHint: 保存后不可查看明文;编辑时留空表示不修改
233
218
  children:
234
- - type: Flex
235
- props:
236
- justify: space-between
237
- align: center
238
- className: w-full mb-3.5
239
- children:
240
- - type: Flex
241
- props:
242
- align: center
243
- className: gap-0.5
244
- children:
245
- - type: Text
246
- props:
247
- text: "*"
248
- className: text-destructive text-sm leading-none
249
- - type: Label
250
- props:
251
- text: API Key
252
- - type: Text
253
- props:
254
- text: 保存后不可查看明文;编辑时留空表示不修改
255
- type: secondary
256
- className: text-xs leading-none
257
219
  - type: Input
258
220
  props:
259
221
  name: apiKey
@@ -91,30 +91,11 @@ body:
91
91
  className: "[&>[data-slot=grid-item]:last-child]:col-span-full"
92
92
  children:
93
93
  - type: Field
94
+ props:
95
+ label: Provider Code
96
+ required: true
97
+ labelHint: Provider Code 创建后不可修改
94
98
  children:
95
- - type: Flex
96
- props:
97
- justify: space-between
98
- align: center
99
- className: w-full mb-3.5
100
- children:
101
- - type: Flex
102
- props:
103
- align: center
104
- className: gap-0.5
105
- children:
106
- - type: Text
107
- props:
108
- text: "*"
109
- className: text-destructive text-sm leading-none
110
- - type: Label
111
- props:
112
- text: Provider Code
113
- - type: Text
114
- props:
115
- text: Provider Code 创建后不可修改
116
- type: secondary
117
- className: text-xs leading-none
118
99
  - type: Input
119
100
  props:
120
101
  name: code
@@ -243,31 +224,12 @@ body:
243
224
  className: w-full
244
225
  placeholder: 如 us-east、cn-beijing
245
226
  - type: Field
227
+ props:
228
+ label: API Key
229
+ required: true
230
+ labelHint: "当前状态:${data.detail.keyStatus == 'configured' ? '● 已配置(' +
231
+ data.detail.maskedKey + ')' : '● 未配置'}"
246
232
  children:
247
- - type: Flex
248
- props:
249
- justify: space-between
250
- align: center
251
- className: w-full mb-3.5
252
- children:
253
- - type: Flex
254
- props:
255
- align: center
256
- className: gap-0.5
257
- children:
258
- - type: Text
259
- props:
260
- text: "*"
261
- className: text-destructive text-sm leading-none
262
- - type: Label
263
- props:
264
- text: API Key
265
- - type: Text
266
- props:
267
- text: "当前状态:${data.detail.keyStatus == 'configured' ? '● 已配置(' +
268
- data.detail.maskedKey + ')' : '● 未配置'}"
269
- type: secondary
270
- className: text-xs leading-none
271
233
  - type: Input
272
234
  props:
273
235
  name: apiKey
@@ -76,30 +76,11 @@ body:
76
76
  - required: true
77
77
  message: 请输入路由名称
78
78
  - type: Field
79
+ props:
80
+ label: 路由标识
81
+ required: true
82
+ labelHint: 路由标识 创建后不可修改
79
83
  children:
80
- - type: Flex
81
- props:
82
- justify: space-between
83
- align: center
84
- className: w-full mb-3.5
85
- children:
86
- - type: Flex
87
- props:
88
- align: center
89
- className: gap-0.5
90
- children:
91
- - type: Text
92
- props:
93
- text: "*"
94
- className: text-destructive text-sm leading-none
95
- - type: Label
96
- props:
97
- text: 路由标识
98
- - type: Text
99
- props:
100
- text: 路由标识 创建后不可修改
101
- type: secondary
102
- className: text-xs leading-none
103
84
  - type: Input
104
85
  props:
105
86
  name: code
@@ -93,30 +93,11 @@ body:
93
93
  - required: true
94
94
  message: 请输入路由名称
95
95
  - type: Field
96
+ props:
97
+ label: 路由标识
98
+ required: true
99
+ labelHint: 路由标识 创建后不可修改
96
100
  children:
97
- - type: Flex
98
- props:
99
- justify: space-between
100
- align: center
101
- className: w-full mb-3.5
102
- children:
103
- - type: Flex
104
- props:
105
- align: center
106
- className: gap-0.5
107
- children:
108
- - type: Text
109
- props:
110
- text: "*"
111
- className: text-destructive text-sm leading-none
112
- - type: Label
113
- props:
114
- text: 路由标识
115
- - type: Text
116
- props:
117
- text: 路由标识 创建后不可修改
118
- type: secondary
119
- className: text-xs leading-none
120
101
  - type: Input
121
102
  props:
122
103
  name: code