@xtalpi/agentic-lab-skills 0.0.10 → 0.0.11

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.
Files changed (68) hide show
  1. package/README.md +1 -1
  2. package/package.json +14 -14
  3. package/skills/lab-flow-designer/SKILL.md +612 -612
  4. package/skills/lab-flow-designer/embedded-template/SKILL.md +103 -103
  5. package/skills/lab-flow-designer/embedded-template/pools//345/205/245/345/217/243/346/261/240.md +21 -21
  6. package/skills/lab-flow-designer/embedded-template/pools//345/207/272/345/217/243/346/261/240.md +21 -21
  7. package/skills/lab-flow-designer/embedded-template/scripts//347/244/272/344/276/213/346/225/260/346/215/256/344/270/216/346/240/241/351/252/214/351/227/250/346/216/247.js +142 -142
  8. package/skills/lab-flow-designer/embedded-template/valves//347/244/272/344/276/213/346/225/260/346/215/256/344/270/216/346/240/241/351/252/214/351/227/250/346/216/247.md +114 -114
  9. package/skills/lab-flow-designer/references/agentic-lab-processer.md +122 -122
  10. package/skills/lab-flow-designer/references/agentic-lab-sdk.md +534 -361
  11. package/skills/lab-flow-designer/references/rhea-api/README.md +7 -7
  12. package/skills/lab-flow-designer/references/rhea-api/execute_process_batch.md +58 -58
  13. package/skills/lab-flow-designer/references/skill-package-layout.md +268 -268
  14. package/skills/lab-flow-designer/references//344/270/232/345/212/241/346/265/201/347/250/213/346/226/207/346/241/243/346/240/207/345/207/206.md +216 -216
  15. package/skills/lab-flow-designer/templates//344/270/232/345/212/241/346/265/201/347/250/213/346/226/207/346/241/243/346/250/241/346/235/277.md +192 -192
  16. package/skills/lab-flow-designer/templates//344/270/232/345/212/241/346/265/201/347/250/213/346/226/207/346/241/243/347/244/272/344/276/213.md +207 -207
  17. package/skills/lab-flow-designer/testing/test-processer.mjs +1240 -1240
  18. package/skills/lab-nocobase-flow-generator/SKILL.md +164 -164
  19. package/skills/lab-nocobase-flow-generator/examples/setting/350/241/250/350/216/267/345/217/226/345/244/226/351/203/250/346/234/215/345/212/241.js +70 -70
  20. package/skills/lab-nocobase-flow-generator/examples//346/237/245/350/257/242/345/214/226/345/255/246/345/223/201/344/277/241/346/201/257.js +30 -30
  21. package/skills/lab-nocobase-flow-generator/references/doc-standard.md +84 -84
  22. package/skills/lab-nocobase-flow-generator/references/runtime-api.md +224 -224
  23. package/skills/lab-nocobase-flow-generator/templates//350/204/232/346/234/254/351/200/273/350/276/221/346/226/207/346/241/243/346/250/241/346/235/277.md +121 -121
  24. package/skills/lab-nocobase-flow-generator/templates//350/204/232/346/234/254/351/200/273/350/276/221/346/226/207/346/241/243/347/244/272/344/276/213.md +67 -67
  25. package/skills/lab-orbit-component-builder/SKILL.md +353 -353
  26. package/skills/lab-orbit-component-builder/examples/xnb-component-template/.env.local.example +27 -27
  27. package/skills/lab-orbit-component-builder/examples/xnb-component-template/.eslintignore +7 -7
  28. package/skills/lab-orbit-component-builder/examples/xnb-component-template/.eslintrc.cjs +88 -88
  29. package/skills/lab-orbit-component-builder/examples/xnb-component-template/.nvmrc +1 -1
  30. package/skills/lab-orbit-component-builder/examples/xnb-component-template/AgenticAppAPI.md +268 -268
  31. package/skills/lab-orbit-component-builder/examples/xnb-component-template/Jenkinsfile +106 -106
  32. package/skills/lab-orbit-component-builder/examples/xnb-component-template/OrbitAPI.md +453 -453
  33. package/skills/lab-orbit-component-builder/examples/xnb-component-template/README.md +176 -176
  34. package/skills/lab-orbit-component-builder/examples/xnb-component-template/dev/public/index.html +12 -12
  35. package/skills/lab-orbit-component-builder/examples/xnb-component-template/dev/src/App.vue +151 -151
  36. package/skills/lab-orbit-component-builder/examples/xnb-component-template/dev/src/components/DevOpenerLauncher.vue +143 -143
  37. package/skills/lab-orbit-component-builder/examples/xnb-component-template/dev/src/global.d.ts +77 -77
  38. package/skills/lab-orbit-component-builder/examples/xnb-component-template/dev/src/main.ts +308 -308
  39. package/skills/lab-orbit-component-builder/examples/xnb-component-template/dev/src/mockXNBBitable.ts +119 -119
  40. package/skills/lab-orbit-component-builder/examples/xnb-component-template/dev/src/shims-vue.d.ts +6 -6
  41. package/skills/lab-orbit-component-builder/examples/xnb-component-template/dev/src/utils/devOpenerHost.ts +75 -75
  42. package/skills/lab-orbit-component-builder/examples/xnb-component-template/index.html +13 -13
  43. package/skills/lab-orbit-component-builder/examples/xnb-component-template/package.json +60 -60
  44. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/api/agenticlabTickets.ts +110 -110
  45. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/entries/bitable.ts +4 -4
  46. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/entries/custom-page.ts +4 -4
  47. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/index.ts +1 -1
  48. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/styles/orbit-quasar-host.scss +19 -19
  49. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/types/context.ts +15 -15
  50. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/types/xnb-context.ts +70 -70
  51. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/use/useBitablePage.ts +189 -189
  52. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/use/useSuperCellDemo.ts +257 -257
  53. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/use/useSuperTableBitableLifecycle.ts +555 -555
  54. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/utils/openerInitParams.ts +158 -158
  55. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/utils/openerTicketIds.ts +32 -32
  56. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/utils/orbitHttpClient.ts +110 -110
  57. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/utils/request.ts +92 -92
  58. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/views/bitable.vue +67 -67
  59. package/skills/lab-orbit-component-builder/examples/xnb-component-template/src/views/custom-page.vue +140 -140
  60. package/skills/lab-orbit-component-builder/examples/xnb-component-template/tsconfig.json +45 -45
  61. package/skills/lab-orbit-component-builder/examples/xnb-component-template/vite.config.ts +170 -170
  62. package/skills/lab-orbit-component-builder/examples/xnb-component-template/vite.dev.config.ts +58 -58
  63. package/skills/lab-orbit-component-builder/references/flow-document-human-ui.md +65 -65
  64. package/skills/lab-orbit-component-builder/references/orbit-vue-conventions.md +133 -133
  65. package/skills/lab-orbit-component-builder/references/pool-schema-to-columns.md +67 -67
  66. package/skills/lab-orbit-component-builder/references/vue-template-checklist.md +179 -179
  67. package/skills/lab-orbit-component-builder/references/xnb-context-vue-props.md +49 -49
  68. package/skills/lab-orbit-component-builder/references/xnbitable-vue-parity.md +32 -32
@@ -1,114 +1,114 @@
1
- # 示例数据与校验门控
2
-
3
- ## 概述
4
-
5
- 演示与真实 Fragment 门控相同的文档结构:**门控 YAML**、**化合物数据查询方式**、**字段映射**、**数据处理规则**、**start/complete 分工**。生成业务流程注册包时,按流程说明替换各节内容;脚本实现须对照 [references/agentic-lab-sdk.md](../../references/agentic-lab-sdk.md)。
6
-
7
- ## 关联脚本
8
-
9
- **脚本路径**: [scripts/示例数据与校验门控.js](scripts/示例数据与校验门控.js)
10
-
11
- 该脚本导出 `Processer` 类,实现 `start` 和 `complete` 方法。
12
-
13
- ## 触发方式
14
-
15
- 人工触发
16
-
17
- > 人工触发门控执行顺序:前置处理(脚本 `start`)→ 人工处理(页面)→ 后置处理(脚本 `complete`)。自动触发门控使用 `run` 方法替代 `start` + `complete`,详见 [references/agentic-lab-processer.md](../../references/agentic-lab-processer.md)。
18
-
19
- ## 模型引用
20
-
21
- > 本门控无关联 3D 模型,本节仅作版式示意。实际生成时,无模型引用的门控省略本节。
22
-
23
- | 属性 | 值 |
24
- |------|-----|
25
- | 名称 | example-valve-model |
26
- | 版本 | 1.0.0 |
27
-
28
- ## 门控 YAML(与流程说明对齐)
29
-
30
- 流程说明中可能使用 `Stash:` 等键表示目标池;生成脚本时按 [agentic-lab-sdk.md](../../references/agentic-lab-sdk.md) 获取出口池,以返回的 **`pool.name`**(或文档中的池显示名称)匹配目标池(`valve_id` 来自 `Processer` 入参)。
31
-
32
- ```yaml
33
- valve_id: valve_example_1
34
- name: 示例数据与校验门控
35
- order: 1
36
- input:
37
- primary: 入口池
38
- output:
39
- - pool: 出口池
40
- condition: 示例:校验通过且已回填必要字段
41
- ```
42
-
43
- ## 化合物数据查询方式(映射到 Agentic Lab SDK)
44
-
45
- | 流程说明中的表述 | 推荐 SDK 调用 |
46
- |----------------|---------------|
47
- | 查化合物库存 / 可用量 / 库存汇总 | 按 [agentic-lab-sdk.md](../../references/agentic-lab-sdk.md) 中的化合物库存查询方法 |
48
-
49
- ## 字段映射(示例:知识库 → ticket.detail)
50
-
51
- > **仅供结构演示**:下表中的加工数据名、库侧列名、`detail` 键仅为说明「表格长什么样、如何对齐 snake_case」,**不**绑定任何具体业务;其它流程须整表替换为用户流程说明中的映射。
52
-
53
- 流程说明中的「门控加工数据 ↔ 库字段」表,在脚本里写入 `ticket.detail` 时建议与 **pools Schema 的「字段」列(snake_case)** 对齐。以下为示意(真实以流程文档表格为准):
54
-
55
- | 门控加工数据 | chemical_record(示例列名) | detail 键(示例) |
56
- |-------------|------------------------------|------------------|
57
- | 性状(Chemist) | chemistProperty | chemist_property |
58
- | 可分装判断 | dispensable | dispensable |
59
- | 可舀粉判断 | feasibilityOfDipensing | feasibility_of_dipensing |
60
-
61
- (真实流程以用户提供的流程说明 Markdown 中表格为准。)
62
-
63
- ## 数据处理规则(脚本注释应对齐序号)
64
-
65
- > **同上**:`1.1` 等序号格式应对齐流程文档;下列规则摘要与动作为**占位示意**(偏分装场景),生成其它业务包时须按流程说明中的规则表重写。
66
-
67
- | 序号 | 规则摘要 | 业务动作(示意) |
68
- |------|----------|------------------|
69
- | 1.1 | 汇总需求量 | `detail.requested_amount = sum(target_amount_n)` |
70
- | 1.2 | 缺料判定 | 结合化合物库存查询(SDK)汇总可用量与 `requested_amount` 比较 |
71
- | 1.3 | 容差默认 | 目标量 >0 且容差空 → 默认 0.5 mg |
72
- | 1.4 | 缺料标记 | `source_barcode` 空 → `是否缺料` = 缺料 |
73
-
74
- ## 执行流程
75
-
76
- **门控执行顺序:前置处理(脚本 `start`)→ 人工处理(页面)→ 后置处理(脚本 `complete`)**
77
-
78
- ### 前置处理
79
-
80
- | 配置项 | 类别 | 默认值 / 占位 | 说明 |
81
- | ------ | ---- | -------------- | ---- |
82
- | bookid | 参数 | 1 | Orbit 页面对应的 BookId,用于拼装 `orbit_link` |
83
-
84
- | 规则摘要 | 条件要点 | 业务动作或结果 |
85
- | -------- | -------- | -------------- |
86
- | 查询入口池 | 门控启动 | 按 SDK 查询入口池 tickets(分页遵守主 SKILL.md 编写指引 §2) |
87
- | 查化合物数据 | 有 compound 查询需求 | 按 SDK 查询化合物库存数据 |
88
- | 写回 detail | 查询完成 | 按映射表与规则表写回 `ticket.detail` → 按 SDK 更新 tickets |
89
- | 拼装 orbit_link | 返回前 | `PageUrl.replace('{bookid}', bookid)` |
90
-
91
- **start 返回**:`{ orbit_link, ticket_ids }`
92
-
93
- ### 人工处理
94
-
95
- ##### 界面形态与数据绑定
96
-
97
- 1. **界面类型**:超级表格
98
- 2. **数据来源**:前置处理写入 `ticket.detail` 的字段
99
- 3. **操作按钮**:刷新 / 检查 / 提交(由 `lab-orbit-component-builder` 技能生成 UI)
100
-
101
- ### 后置处理
102
-
103
- | 规则摘要 | 条件要点 | 业务动作或结果 |
104
- | -------- | -------- | -------------- |
105
- | 获取出口池 | 按 SDK 获取出口池 | 按 `pool.name` 匹配出口池 |
106
- | 更新入口池状态 | 出口池确定 | 入口池 tickets 更新为 `status: 'finished'` → 按 SDK 更新 tickets |
107
- | 映射出口池记录 | 状态更新完成 | 按出口池 Schema 构建 `new_tickets`(含 `flow_id`、`pool_id`、`order_id`、`detail`、`status: 'created'`、`parent_ticket_id`) |
108
-
109
- **complete 返回**:`{ new_tickets }`(由引擎自动创建,脚本不直接追加 tickets)
110
-
111
- ## 输入/输出
112
-
113
- - **输入池**: 入口池
114
- - **输出池**: 出口池(多出口时与 YAML 中各 `pool`/`Stash` 目标池名称一致)
1
+ # 示例数据与校验门控
2
+
3
+ ## 概述
4
+
5
+ 演示与真实 Fragment 门控相同的文档结构:**门控 YAML**、**化合物数据查询方式**、**字段映射**、**数据处理规则**、**start/complete 分工**。生成业务流程注册包时,按流程说明替换各节内容;脚本实现须对照 [references/agentic-lab-sdk.md](../../references/agentic-lab-sdk.md)。
6
+
7
+ ## 关联脚本
8
+
9
+ **脚本路径**: [scripts/示例数据与校验门控.js](scripts/示例数据与校验门控.js)
10
+
11
+ 该脚本导出 `Processer` 类,实现 `start` 和 `complete` 方法。
12
+
13
+ ## 触发方式
14
+
15
+ 人工触发
16
+
17
+ > 人工触发门控执行顺序:前置处理(脚本 `start`)→ 人工处理(页面)→ 后置处理(脚本 `complete`)。自动触发门控使用 `run` 方法替代 `start` + `complete`,详见 [references/agentic-lab-processer.md](../../references/agentic-lab-processer.md)。
18
+
19
+ ## 模型引用
20
+
21
+ > 本门控无关联 3D 模型,本节仅作版式示意。实际生成时,无模型引用的门控省略本节。
22
+
23
+ | 属性 | 值 |
24
+ |------|-----|
25
+ | 名称 | example-valve-model |
26
+ | 版本 | 1.0.0 |
27
+
28
+ ## 门控 YAML(与流程说明对齐)
29
+
30
+ 流程说明中可能使用 `Stash:` 等键表示目标池;生成脚本时按 [agentic-lab-sdk.md](../../references/agentic-lab-sdk.md) 获取出口池,以返回的 **`pool.name`**(或文档中的池显示名称)匹配目标池(`valve_id` 来自 `Processer` 入参)。
31
+
32
+ ```yaml
33
+ valve_id: valve_example_1
34
+ name: 示例数据与校验门控
35
+ order: 1
36
+ input:
37
+ primary: 入口池
38
+ output:
39
+ - pool: 出口池
40
+ condition: 示例:校验通过且已回填必要字段
41
+ ```
42
+
43
+ ## 化合物数据查询方式(映射到 Agentic Lab SDK)
44
+
45
+ | 流程说明中的表述 | 推荐 SDK 调用 |
46
+ |----------------|---------------|
47
+ | 查化合物库存 / 可用量 / 库存汇总 | 按 [agentic-lab-sdk.md](../../references/agentic-lab-sdk.md) 中的化合物库存查询方法 |
48
+
49
+ ## 字段映射(示例:知识库 → ticket.detail)
50
+
51
+ > **仅供结构演示**:下表中的加工数据名、库侧列名、`detail` 键仅为说明「表格长什么样、如何对齐 snake_case」,**不**绑定任何具体业务;其它流程须整表替换为用户流程说明中的映射。
52
+
53
+ 流程说明中的「门控加工数据 ↔ 库字段」表,在脚本里写入 `ticket.detail` 时建议与 **pools Schema 的「字段」列(snake_case)** 对齐。以下为示意(真实以流程文档表格为准):
54
+
55
+ | 门控加工数据 | chemical_record(示例列名) | detail 键(示例) |
56
+ |-------------|------------------------------|------------------|
57
+ | 性状(Chemist) | chemistProperty | chemist_property |
58
+ | 可分装判断 | dispensable | dispensable |
59
+ | 可舀粉判断 | feasibilityOfDipensing | feasibility_of_dipensing |
60
+
61
+ (真实流程以用户提供的流程说明 Markdown 中表格为准。)
62
+
63
+ ## 数据处理规则(脚本注释应对齐序号)
64
+
65
+ > **同上**:`1.1` 等序号格式应对齐流程文档;下列规则摘要与动作为**占位示意**(偏分装场景),生成其它业务包时须按流程说明中的规则表重写。
66
+
67
+ | 序号 | 规则摘要 | 业务动作(示意) |
68
+ |------|----------|------------------|
69
+ | 1.1 | 汇总需求量 | `detail.requested_amount = sum(target_amount_n)` |
70
+ | 1.2 | 缺料判定 | 结合化合物库存查询(SDK)汇总可用量与 `requested_amount` 比较 |
71
+ | 1.3 | 容差默认 | 目标量 >0 且容差空 → 默认 0.5 mg |
72
+ | 1.4 | 缺料标记 | `source_barcode` 空 → `是否缺料` = 缺料 |
73
+
74
+ ## 执行流程
75
+
76
+ **门控执行顺序:前置处理(脚本 `start`)→ 人工处理(页面)→ 后置处理(脚本 `complete`)**
77
+
78
+ ### 前置处理
79
+
80
+ | 配置项 | 类别 | 默认值 / 占位 | 说明 |
81
+ | ------ | ---- | -------------- | ---- |
82
+ | bookid | 参数 | 1 | Orbit 页面对应的 BookId,用于拼装 `orbit_link` |
83
+
84
+ | 规则摘要 | 条件要点 | 业务动作或结果 |
85
+ | -------- | -------- | -------------- |
86
+ | 查询入口池 | 门控启动 | 按 SDK 查询入口池 tickets(分页遵守主 SKILL.md 编写指引 §2) |
87
+ | 查化合物数据 | 有 compound 查询需求 | 按 SDK 查询化合物库存数据 |
88
+ | 写回 detail | 查询完成 | 按映射表与规则表写回 `ticket.detail` → 按 SDK 更新 tickets |
89
+ | 拼装 orbit_link | 返回前 | `PageUrl.replace('{bookid}', bookid)` |
90
+
91
+ **start 返回**:`{ orbit_link, ticket_ids }`
92
+
93
+ ### 人工处理
94
+
95
+ ##### 界面形态与数据绑定
96
+
97
+ 1. **界面类型**:超级表格
98
+ 2. **数据来源**:前置处理写入 `ticket.detail` 的字段
99
+ 3. **操作按钮**:刷新 / 检查 / 提交(由 `lab-orbit-component-builder` 技能生成 UI)
100
+
101
+ ### 后置处理
102
+
103
+ | 规则摘要 | 条件要点 | 业务动作或结果 |
104
+ | -------- | -------- | -------------- |
105
+ | 获取出口池 | 按 SDK 获取出口池 | 按 `pool.name` 匹配出口池 |
106
+ | 更新入口池状态 | 出口池确定 | 入口池 tickets 更新为 `status: 'finished'` → 按 SDK 更新 tickets |
107
+ | 映射出口池记录 | 状态更新完成 | 按出口池 Schema 构建 `new_tickets`(含 `flow_id`、`pool_id`、`order_id`、`detail`、`status: 'created'`、`parent_ticket_id`) |
108
+
109
+ **complete 返回**:`{ new_tickets }`(由引擎自动创建,脚本不直接追加 tickets)
110
+
111
+ ## 输入/输出
112
+
113
+ - **输入池**: 入口池
114
+ - **输出池**: 出口池(多出口时与 YAML 中各 `pool`/`Stash` 目标池名称一致)
@@ -1,122 +1,122 @@
1
- > Agentic Lab 门控脚本
2
- >
3
- > `this.context` 上可用的 SDK 方法详见 [agentic-lab-sdk.md](agentic-lab-sdk.md)。本文件定义 `Processer` 类的 `start`/`complete`(人工触发门控)与 `run`(自动触发门控)输入输出类型与代码风格。
4
-
5
- ### 类型定义
6
-
7
- #### start
8
-
9
- ```typescript
10
- interface StartExecutionParams {
11
- valve_id: number;
12
- pool_ids: number[];
13
- [propName: string]: any;
14
- }
15
-
16
- interface StartExecutionResult {
17
- orbit_link: string;
18
- ticket_ids: number[];
19
- [propName: string]: any;
20
- }
21
-
22
- async start(params: StartExecutionParams): Promise<StartExecutionResult>
23
- ```
24
-
25
- #### complete
26
-
27
- ```typescript
28
- interface CompleteExecutionParams {
29
- valve_id: number;
30
- tickets: Record<string, any>[];
31
- [propName: string]: any;
32
- }
33
-
34
- interface CompleteExecutionResult {
35
- new_tickets?: Record<string, any>[]; // 待新增的tickets,由引擎创建到数据表
36
- [propName: string]: any;
37
- }
38
-
39
- async complete(params: CompleteExecutionParams): Promise<CompleteExecutionResult>
40
- ```
41
-
42
- #### run(自动触发门控专用)
43
-
44
- 自动触发门控不经过人工处理阶段,使用 `run` 替代 `start` + `complete`。`run` 合并了前置与后置处理:接收 `valve_id` 与 `pool_ids`(同 `start`),直接返回 `new_tickets`(同 `complete`),无需 `orbit_link` 或 `ticket_ids`。
45
-
46
- ```typescript
47
- interface RunExecutionParams {
48
- valve_id: number;
49
- pool_ids: number[];
50
- [propName: string]: any;
51
- }
52
-
53
- interface RunExecutionResult {
54
- new_tickets?: Record<string, any>[]; // 待新增的tickets,由引擎创建到数据表
55
- [propName: string]: any;
56
- }
57
-
58
- async run(params: RunExecutionParams): Promise<RunExecutionResult>
59
- ```
60
-
61
-
62
- ### 示例(人工触发门控)
63
-
64
- ```javascript
65
- class Processer {
66
- // context: 执行引擎提供的SDK
67
- constructor(context) {
68
- this.context = context;
69
- console.info(`[Processer] v${__ARTIFACT_VERSION__} (skill: ${__ARTIFACT_SKILL__})`);
70
- }
71
-
72
- // params: { valve_id, pool_ids }
73
- async start(params) {
74
- // 按 agentic-lab-sdk.md 查询入口池数据
75
- // 按需调用 SDK 方法查询化合物/工站/流程等外部数据
76
- // 将查询结果写回 ticket.detail
77
- // 按 agentic-lab-sdk.md 更新 tickets
78
- return {
79
- orbit_link: 'https://...',
80
- ticket_ids: [/* 待处理 ticket ID */],
81
- }
82
- }
83
-
84
- // params: { valve_id, tickets }
85
- async complete(params) {
86
- // 按 agentic-lab-sdk.md 获取出口池
87
- // 按业务规则筛选可流入出口池的 tickets
88
- // 将入口池 tickets 更新为 finished 状态
89
- // 按出口池 Schema 映射 new_tickets(脚本不直接追加 tickets,交由引擎自动创建)
90
- return {
91
- new_tickets: [/* 按出口池映射的新 tickets */]
92
- }
93
- }
94
- }
95
- ```
96
-
97
- 完整可运行代码参考见 [`embedded-template/scripts/示例数据与校验门控.js`](../embedded-template/scripts/示例数据与校验门控.js)。
98
-
99
- ### 示例(自动触发门控)
100
-
101
- ```javascript
102
- class Processer {
103
- // context: 执行引擎提供的SDK
104
- constructor(context) {
105
- this.context = context;
106
- console.info(`[Processer] v${__ARTIFACT_VERSION__} (skill: ${__ARTIFACT_SKILL__})`);
107
- }
108
-
109
- // params: { valve_id, pool_ids }
110
- async run(params) {
111
- // 按 agentic-lab-sdk.md 查询入口池数据
112
- // 按需调用 SDK 方法查询化合物/工站/流程等外部数据
113
- // 执行业务逻辑(无人工处理阶段)
114
- // 按 agentic-lab-sdk.md 获取出口池
115
- // 将入口池 tickets 更新为 finished 状态
116
- // 按出口池 Schema 映射 new_tickets
117
- return {
118
- new_tickets: [/* 按出口池映射的新 tickets */]
119
- }
120
- }
121
- }
122
- ```
1
+ > Agentic Lab 门控脚本
2
+ >
3
+ > `this.context` 上可用的 SDK 方法详见 [agentic-lab-sdk.md](agentic-lab-sdk.md)。本文件定义 `Processer` 类的 `start`/`complete`(人工触发门控)与 `run`(自动触发门控)输入输出类型与代码风格。
4
+
5
+ ### 类型定义
6
+
7
+ #### start
8
+
9
+ ```typescript
10
+ interface StartExecutionParams {
11
+ valve_id: number;
12
+ pool_ids: number[];
13
+ [propName: string]: any;
14
+ }
15
+
16
+ interface StartExecutionResult {
17
+ orbit_link: string;
18
+ ticket_ids: number[];
19
+ [propName: string]: any;
20
+ }
21
+
22
+ async start(params: StartExecutionParams): Promise<StartExecutionResult>
23
+ ```
24
+
25
+ #### complete
26
+
27
+ ```typescript
28
+ interface CompleteExecutionParams {
29
+ valve_id: number;
30
+ tickets: Record<string, any>[];
31
+ [propName: string]: any;
32
+ }
33
+
34
+ interface CompleteExecutionResult {
35
+ new_tickets?: Record<string, any>[]; // 待新增的tickets,由引擎创建到数据表
36
+ [propName: string]: any;
37
+ }
38
+
39
+ async complete(params: CompleteExecutionParams): Promise<CompleteExecutionResult>
40
+ ```
41
+
42
+ #### run(自动触发门控专用)
43
+
44
+ 自动触发门控不经过人工处理阶段,使用 `run` 替代 `start` + `complete`。`run` 合并了前置与后置处理:接收 `valve_id` 与 `pool_ids`(同 `start`),直接返回 `new_tickets`(同 `complete`),无需 `orbit_link` 或 `ticket_ids`。
45
+
46
+ ```typescript
47
+ interface RunExecutionParams {
48
+ valve_id: number;
49
+ pool_ids: number[];
50
+ [propName: string]: any;
51
+ }
52
+
53
+ interface RunExecutionResult {
54
+ new_tickets?: Record<string, any>[]; // 待新增的tickets,由引擎创建到数据表
55
+ [propName: string]: any;
56
+ }
57
+
58
+ async run(params: RunExecutionParams): Promise<RunExecutionResult>
59
+ ```
60
+
61
+
62
+ ### 示例(人工触发门控)
63
+
64
+ ```javascript
65
+ class Processer {
66
+ // context: 执行引擎提供的SDK
67
+ constructor(context) {
68
+ this.context = context;
69
+ console.info(`[Processer] v${__ARTIFACT_VERSION__} (skill: ${__ARTIFACT_SKILL__})`);
70
+ }
71
+
72
+ // params: { valve_id, pool_ids }
73
+ async start(params) {
74
+ // 按 agentic-lab-sdk.md 查询入口池数据
75
+ // 按需调用 SDK 方法查询化合物/工站/流程等外部数据
76
+ // 将查询结果写回 ticket.detail
77
+ // 按 agentic-lab-sdk.md 更新 tickets
78
+ return {
79
+ orbit_link: 'https://...',
80
+ ticket_ids: [/* 待处理 ticket ID */],
81
+ }
82
+ }
83
+
84
+ // params: { valve_id, tickets }
85
+ async complete(params) {
86
+ // 按 agentic-lab-sdk.md 获取出口池
87
+ // 按业务规则筛选可流入出口池的 tickets
88
+ // 将入口池 tickets 更新为 finished 状态
89
+ // 按出口池 Schema 映射 new_tickets(脚本不直接追加 tickets,交由引擎自动创建)
90
+ return {
91
+ new_tickets: [/* 按出口池映射的新 tickets */]
92
+ }
93
+ }
94
+ }
95
+ ```
96
+
97
+ 完整可运行代码参考见 [`embedded-template/scripts/示例数据与校验门控.js`](../embedded-template/scripts/示例数据与校验门控.js)。
98
+
99
+ ### 示例(自动触发门控)
100
+
101
+ ```javascript
102
+ class Processer {
103
+ // context: 执行引擎提供的SDK
104
+ constructor(context) {
105
+ this.context = context;
106
+ console.info(`[Processer] v${__ARTIFACT_VERSION__} (skill: ${__ARTIFACT_SKILL__})`);
107
+ }
108
+
109
+ // params: { valve_id, pool_ids }
110
+ async run(params) {
111
+ // 按 agentic-lab-sdk.md 查询入口池数据
112
+ // 按需调用 SDK 方法查询化合物/工站/流程等外部数据
113
+ // 执行业务逻辑(无人工处理阶段)
114
+ // 按 agentic-lab-sdk.md 获取出口池
115
+ // 将入口池 tickets 更新为 finished 状态
116
+ // 按出口池 Schema 映射 new_tickets
117
+ return {
118
+ new_tickets: [/* 按出口池映射的新 tickets */]
119
+ }
120
+ }
121
+ }
122
+ ```