@iniesta8888/agent-live 0.3.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.
Files changed (182) hide show
  1. package/CODE_OF_CONDUCT.md +7 -0
  2. package/CONTRIBUTING.md +56 -0
  3. package/LICENSE +21 -0
  4. package/README.md +92 -0
  5. package/SECURITY.md +13 -0
  6. package/dist/adapter-sdk/index.d.ts +45 -0
  7. package/dist/adapter-sdk/index.d.ts.map +1 -0
  8. package/dist/adapter-sdk/index.js +106 -0
  9. package/dist/adapter-sdk/index.js.map +1 -0
  10. package/dist/content/compiler.d.ts +31 -0
  11. package/dist/content/compiler.d.ts.map +1 -0
  12. package/dist/content/compiler.js +218 -0
  13. package/dist/content/compiler.js.map +1 -0
  14. package/dist/content/graph-validator.d.ts +56 -0
  15. package/dist/content/graph-validator.d.ts.map +1 -0
  16. package/dist/content/graph-validator.js +226 -0
  17. package/dist/content/graph-validator.js.map +1 -0
  18. package/dist/content/library.d.ts +4 -0
  19. package/dist/content/library.d.ts.map +1 -0
  20. package/dist/content/library.js +45 -0
  21. package/dist/content/library.js.map +1 -0
  22. package/dist/content/registry.d.ts +34 -0
  23. package/dist/content/registry.d.ts.map +1 -0
  24. package/dist/content/registry.js +130 -0
  25. package/dist/content/registry.js.map +1 -0
  26. package/dist/content/runtime-content.d.ts +63 -0
  27. package/dist/content/runtime-content.d.ts.map +1 -0
  28. package/dist/content/runtime-content.js +78 -0
  29. package/dist/content/runtime-content.js.map +1 -0
  30. package/dist/content/schema.d.ts +142 -0
  31. package/dist/content/schema.d.ts.map +1 -0
  32. package/dist/content/schema.js +280 -0
  33. package/dist/content/schema.js.map +1 -0
  34. package/dist/content/validator.d.ts +35 -0
  35. package/dist/content/validator.d.ts.map +1 -0
  36. package/dist/content/validator.js +205 -0
  37. package/dist/content/validator.js.map +1 -0
  38. package/dist/core/agents.d.ts +56 -0
  39. package/dist/core/agents.d.ts.map +1 -0
  40. package/dist/core/agents.js +148 -0
  41. package/dist/core/agents.js.map +1 -0
  42. package/dist/core/limits.d.ts +15 -0
  43. package/dist/core/limits.d.ts.map +1 -0
  44. package/dist/core/limits.js +16 -0
  45. package/dist/core/limits.js.map +1 -0
  46. package/dist/core/mapping.d.ts +17 -0
  47. package/dist/core/mapping.d.ts.map +1 -0
  48. package/dist/core/mapping.js +94 -0
  49. package/dist/core/mapping.js.map +1 -0
  50. package/dist/core/protocol.d.ts +105 -0
  51. package/dist/core/protocol.d.ts.map +1 -0
  52. package/dist/core/protocol.js +6 -0
  53. package/dist/core/protocol.js.map +1 -0
  54. package/dist/core/state.d.ts +49 -0
  55. package/dist/core/state.d.ts.map +1 -0
  56. package/dist/core/state.js +216 -0
  57. package/dist/core/state.js.map +1 -0
  58. package/dist/creator/commands.d.ts +19 -0
  59. package/dist/creator/commands.d.ts.map +1 -0
  60. package/dist/creator/commands.js +44 -0
  61. package/dist/creator/commands.js.map +1 -0
  62. package/dist/creator/mode.d.ts +10 -0
  63. package/dist/creator/mode.d.ts.map +1 -0
  64. package/dist/creator/mode.js +23 -0
  65. package/dist/creator/mode.js.map +1 -0
  66. package/dist/creator/service.d.ts +199 -0
  67. package/dist/creator/service.d.ts.map +1 -0
  68. package/dist/creator/service.js +159 -0
  69. package/dist/creator/service.js.map +1 -0
  70. package/dist/index.d.ts +14 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +10 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/runtime/agent-live-runtime.d.ts +17 -0
  75. package/dist/runtime/agent-live-runtime.d.ts.map +1 -0
  76. package/dist/runtime/agent-live-runtime.js +50 -0
  77. package/dist/runtime/agent-live-runtime.js.map +1 -0
  78. package/dist/runtime/content-service.d.ts +75 -0
  79. package/dist/runtime/content-service.d.ts.map +1 -0
  80. package/dist/runtime/content-service.js +60 -0
  81. package/dist/runtime/content-service.js.map +1 -0
  82. package/dist/runtime/resource-guard.d.ts +17 -0
  83. package/dist/runtime/resource-guard.d.ts.map +1 -0
  84. package/dist/runtime/resource-guard.js +54 -0
  85. package/dist/runtime/resource-guard.js.map +1 -0
  86. package/dist/runtime/server.d.ts +39 -0
  87. package/dist/runtime/server.d.ts.map +1 -0
  88. package/dist/runtime/server.js +286 -0
  89. package/dist/runtime/server.js.map +1 -0
  90. package/dist/web/app.d.ts +1 -0
  91. package/dist/web/app.js +1317 -0
  92. package/dist/web/index.html +45 -0
  93. package/dist/web/office.js +350 -0
  94. package/dist/web/sprites.js +185 -0
  95. package/dist/web/style.css +288 -0
  96. package/dist/web/v2/bootstrap.js +276 -0
  97. package/dist/web/v2/content/README.md +17 -0
  98. package/dist/web/v2/content/agent-skins/studio-team.json +33 -0
  99. package/dist/web/v2/content/agent-skins/tiny-developers.json +33 -0
  100. package/dist/web/v2/content/atmospheres/default.json +13 -0
  101. package/dist/web/v2/content/atmospheres/rainy-night.json +37 -0
  102. package/dist/web/v2/content/catalog.json +14 -0
  103. package/dist/web/v2/content/component-library/activity-implementations.json +873 -0
  104. package/dist/web/v2/content/component-library/activity-recipes.json +25 -0
  105. package/dist/web/v2/content/component-library/agent-profile-templates.json +18 -0
  106. package/dist/web/v2/content/component-library/catalog.json +38 -0
  107. package/dist/web/v2/content/component-library/npc-templates.json +42 -0
  108. package/dist/web/v2/content/component-library/props.json +41 -0
  109. package/dist/web/v2/content/environments/local-office.json +31 -0
  110. package/dist/web/v2/content/environments/rainy-night.json +28 -0
  111. package/dist/web/v2/content/environments/static-office.json +27 -0
  112. package/dist/web/v2/content/layouts/boardroom-office.json +122 -0
  113. package/dist/web/v2/content/layouts/demo-office.json +88 -0
  114. package/dist/web/v2/content/layouts/lively-office.json +96 -0
  115. package/dist/web/v2/content/layouts/old-school-office.json +154 -0
  116. package/dist/web/v2/content/layouts/tech-open-office.json +132 -0
  117. package/dist/web/v2/content/life-activities/boardroom-routines.json +67 -0
  118. package/dist/web/v2/content/life-activities/none.json +10 -0
  119. package/dist/web/v2/content/life-activities/office-basics.json +39 -0
  120. package/dist/web/v2/content/life-activities/old-school-routines.json +74 -0
  121. package/dist/web/v2/content/life-activities/tech-office-routines.json +148 -0
  122. package/dist/web/v2/content/npcs/boardroom-staff.json +54 -0
  123. package/dist/web/v2/content/npcs/none.json +10 -0
  124. package/dist/web/v2/content/npcs/office-staff.json +25 -0
  125. package/dist/web/v2/content/npcs/old-school-staff.json +39 -0
  126. package/dist/web/v2/content/npcs/tech-office-staff.json +40 -0
  127. package/dist/web/v2/content/official-offices/boardroom-office.json +25 -0
  128. package/dist/web/v2/content/official-offices/old-school-office.json +25 -0
  129. package/dist/web/v2/content/official-offices/tech-open-office.json +25 -0
  130. package/dist/web/v2/content/presets/boardroom-office.json +21 -0
  131. package/dist/web/v2/content/presets/cozy-studio.json +19 -0
  132. package/dist/web/v2/content/presets/demo-office.json +19 -0
  133. package/dist/web/v2/content/presets/lively-office.json +19 -0
  134. package/dist/web/v2/content/presets/night-shift.json +19 -0
  135. package/dist/web/v2/content/presets/old-school-office.json +20 -0
  136. package/dist/web/v2/content/presets/refined-demo.json +20 -0
  137. package/dist/web/v2/content/presets/tech-open-office.json +21 -0
  138. package/dist/web/v2/content/props/default-office.json +23 -0
  139. package/dist/web/v2/content/props/extended-office.json +39 -0
  140. package/dist/web/v2/content/props/tech-office.json +28 -0
  141. package/dist/web/v2/content/styles/pixel-classic.json +160 -0
  142. package/dist/web/v2/content/styles/warm-studio.json +150 -0
  143. package/dist/web/v2/environment-runtime.d.ts +1 -0
  144. package/dist/web/v2/environment-runtime.js +138 -0
  145. package/dist/web/v2/graph-validator.d.ts +55 -0
  146. package/dist/web/v2/graph-validator.js +225 -0
  147. package/dist/web/v2/i18n.js +54 -0
  148. package/dist/web/v2/locales/en.json +209 -0
  149. package/dist/web/v2/locales/zh-CN.json +52 -0
  150. package/dist/web/v2/office-engine.d.ts +1 -0
  151. package/dist/web/v2/office-engine.js +145 -0
  152. package/dist/web/v2/office-renderer.d.ts +1 -0
  153. package/dist/web/v2/office-renderer.js +843 -0
  154. package/dist/web/v2/parity.html +10 -0
  155. package/dist/web/v2/parity.js +82 -0
  156. package/dist/web/v2/sprite-renderer.d.ts +1 -0
  157. package/dist/web/v2/sprite-renderer.js +242 -0
  158. package/dist/web/v2/static-content.js +48 -0
  159. package/dist/web/v2/style.css +140 -0
  160. package/dist/web/v2.html +68 -0
  161. package/docs/ADAPTER-DEVELOPMENT.md +328 -0
  162. package/docs/ADAPTER-SDK.md +109 -0
  163. package/docs/ARCHITECTURE.md +223 -0
  164. package/docs/COMPONENT-LIBRARY.md +212 -0
  165. package/docs/CUSTOMIZATION.md +163 -0
  166. package/docs/DEVELOPER.md +186 -0
  167. package/docs/DSH-ADAPTER-DESIGN.md +173 -0
  168. package/docs/OFFICE-THEMES.md +516 -0
  169. package/docs/PRESET-CONFIG.md +460 -0
  170. package/docs/RELEASE-CHECK.md +23 -0
  171. package/docs/TECHNICAL.md +515 -0
  172. package/docs/USING-CODEX.md +24 -0
  173. package/docs/USING-DSH.md +44 -0
  174. package/docs/USING-PI.md +50 -0
  175. package/docs/VISION.md +146 -0
  176. package/examples/adapter/local-office.mjs +52 -0
  177. package/package.json +89 -0
  178. package/skills/agent-live-adapter-builder/SKILL.md +30 -0
  179. package/skills/agent-live-adapter-builder/agents/openai.yaml +4 -0
  180. package/skills/agent-live-adapter-builder/references/investigation.md +9 -0
  181. package/skills/agent-live-adapter-builder/references/review.md +7 -0
  182. package/skills/agent-live-adapter-builder/scripts/create-adapter.mjs +26 -0
@@ -0,0 +1,873 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "kind": "activity-implementation-library",
4
+ "id": "builtin/activity-implementation-library",
5
+ "version": "1.0.0",
6
+ "contract": "single-office-v1",
7
+ "entries": [
8
+ {
9
+ "layout": "builtin/boardroom-office",
10
+ "recipe": "builtin/boss-briefing",
11
+ "definition": {
12
+ "id": "boss-briefing",
13
+ "name": "老板主持会议",
14
+ "participant": {
15
+ "kind": "npc",
16
+ "roles": [
17
+ "boss"
18
+ ]
19
+ },
20
+ "requires": [
21
+ {
22
+ "capability": "plan"
23
+ }
24
+ ],
25
+ "interruptible": false,
26
+ "initialDelayMs": [
27
+ 500,
28
+ 900
29
+ ],
30
+ "cooldownMs": [
31
+ 9000,
32
+ 14000
33
+ ],
34
+ "steps": [
35
+ {
36
+ "target": "boss-seat",
37
+ "durationMs": 4800,
38
+ "pose": "talk",
39
+ "bubble": "先看今天的重点"
40
+ },
41
+ {
42
+ "target": "boss-seat",
43
+ "durationMs": 3200,
44
+ "pose": "talk",
45
+ "bubble": "这里需要重点推进",
46
+ "hot": "whiteboard"
47
+ },
48
+ {
49
+ "target": "boss-seat",
50
+ "durationMs": 3800,
51
+ "pose": "talk",
52
+ "bubble": "负责人按节点同步"
53
+ }
54
+ ]
55
+ }
56
+ },
57
+ {
58
+ "layout": "builtin/boardroom-office",
59
+ "recipe": "builtin/briefing-support",
60
+ "definition": {
61
+ "id": "briefing-support",
62
+ "name": "会前资料",
63
+ "participant": {
64
+ "kind": "npc",
65
+ "roles": [
66
+ "secretary"
67
+ ]
68
+ },
69
+ "requires": [
70
+ {
71
+ "capability": "research"
72
+ }
73
+ ],
74
+ "interruptible": false,
75
+ "initialDelayMs": [
76
+ 800,
77
+ 1400
78
+ ],
79
+ "cooldownMs": [
80
+ 5000,
81
+ 7600
82
+ ],
83
+ "steps": [
84
+ {
85
+ "target": "decision-wall",
86
+ "durationMs": 2200,
87
+ "pose": "reach",
88
+ "bubble": "更新议程",
89
+ "particle": "paper"
90
+ },
91
+ {
92
+ "target": "table-service-left",
93
+ "durationMs": 2300,
94
+ "pose": "reach",
95
+ "bubble": "资料放桌上了"
96
+ },
97
+ {
98
+ "target": "secretary-entry",
99
+ "durationMs": 1800,
100
+ "pose": "stand"
101
+ }
102
+ ]
103
+ }
104
+ },
105
+ {
106
+ "layout": "builtin/boardroom-office",
107
+ "recipe": "builtin/get-water",
108
+ "definition": {
109
+ "id": "get-water",
110
+ "name": "接水",
111
+ "participant": {
112
+ "kind": "agent",
113
+ "states": [
114
+ "idle"
115
+ ]
116
+ },
117
+ "requires": [
118
+ {
119
+ "capability": "water"
120
+ }
121
+ ],
122
+ "onlyWhenSessionIdle": true,
123
+ "interruptible": true,
124
+ "startBubble": "去接杯水",
125
+ "initialDelayMs": [
126
+ 5500,
127
+ 8500
128
+ ],
129
+ "cooldownMs": [
130
+ 25000,
131
+ 40000
132
+ ],
133
+ "steps": [
134
+ {
135
+ "target": "water",
136
+ "durationMs": 2800,
137
+ "pose": "stand",
138
+ "bubble": "喝口水继续",
139
+ "hot": "water"
140
+ }
141
+ ]
142
+ }
143
+ },
144
+ {
145
+ "layout": "builtin/boardroom-office",
146
+ "recipe": "builtin/refreshment-round",
147
+ "definition": {
148
+ "id": "refreshment-round",
149
+ "name": "茶水服务",
150
+ "participant": {
151
+ "kind": "npc",
152
+ "roles": [
153
+ "attendant"
154
+ ]
155
+ },
156
+ "requires": [
157
+ {
158
+ "capability": "coffee"
159
+ }
160
+ ],
161
+ "interruptible": false,
162
+ "initialDelayMs": [
163
+ 1300,
164
+ 1900
165
+ ],
166
+ "cooldownMs": [
167
+ 4800,
168
+ 7200
169
+ ],
170
+ "steps": [
171
+ {
172
+ "target": "coffee",
173
+ "durationMs": 1800,
174
+ "pose": "reach",
175
+ "bubble": "补充咖啡",
176
+ "hot": "coffee"
177
+ },
178
+ {
179
+ "target": "table-service-right",
180
+ "durationMs": 2400,
181
+ "pose": "reach",
182
+ "bubble": "请用茶"
183
+ },
184
+ {
185
+ "target": "service-entry",
186
+ "durationMs": 1800,
187
+ "pose": "stand"
188
+ }
189
+ ]
190
+ }
191
+ },
192
+ {
193
+ "layout": "builtin/lively-office",
194
+ "recipe": "builtin/cleaning-round",
195
+ "definition": {
196
+ "id": "cleaning-round",
197
+ "name": "清洁巡检",
198
+ "participant": {
199
+ "kind": "npc",
200
+ "roles": [
201
+ "cleaner"
202
+ ]
203
+ },
204
+ "requires": [],
205
+ "interruptible": false,
206
+ "initialDelayMs": [
207
+ 700,
208
+ 1200
209
+ ],
210
+ "cooldownMs": [
211
+ 3500,
212
+ 6000
213
+ ],
214
+ "steps": [
215
+ {
216
+ "target": "clean-north",
217
+ "durationMs": 2300,
218
+ "pose": "reach",
219
+ "bubble": "擦擦桌面",
220
+ "particle": "spark"
221
+ },
222
+ {
223
+ "target": "clean-south",
224
+ "durationMs": 2600,
225
+ "pose": "reach",
226
+ "bubble": "这边也收拾一下",
227
+ "particle": "spark"
228
+ },
229
+ {
230
+ "target": "clean-meeting",
231
+ "durationMs": 2200,
232
+ "pose": "reach",
233
+ "bubble": "会议区整理好啦",
234
+ "particle": "spark"
235
+ }
236
+ ]
237
+ }
238
+ },
239
+ {
240
+ "layout": "builtin/lively-office",
241
+ "recipe": "builtin/get-water",
242
+ "definition": {
243
+ "id": "get-water",
244
+ "name": "接水",
245
+ "participant": {
246
+ "kind": "agent",
247
+ "states": [
248
+ "idle"
249
+ ]
250
+ },
251
+ "requires": [
252
+ {
253
+ "capability": "water"
254
+ }
255
+ ],
256
+ "onlyWhenSessionIdle": true,
257
+ "interruptible": true,
258
+ "startBubble": "去接杯水",
259
+ "initialDelayMs": [
260
+ 4500,
261
+ 7500
262
+ ],
263
+ "cooldownMs": [
264
+ 22000,
265
+ 36000
266
+ ],
267
+ "steps": [
268
+ {
269
+ "target": "water",
270
+ "durationMs": 3200,
271
+ "pose": "stand",
272
+ "bubble": "接杯水,歇一下",
273
+ "hot": "water"
274
+ }
275
+ ]
276
+ }
277
+ },
278
+ {
279
+ "layout": "builtin/old-school-office",
280
+ "recipe": "builtin/corridor-chat",
281
+ "definition": {
282
+ "id": "corridor-chat",
283
+ "name": "走廊聊两句",
284
+ "participant": {
285
+ "kind": "agent",
286
+ "states": [
287
+ "idle",
288
+ "waiting",
289
+ "done"
290
+ ],
291
+ "minAgents": 2
292
+ },
293
+ "requires": [],
294
+ "onlyWhenSessionIdle": true,
295
+ "interruptible": true,
296
+ "startBubble": "出去聊两句?",
297
+ "initialDelayMs": [
298
+ 8000,
299
+ 12000
300
+ ],
301
+ "cooldownMs": [
302
+ 36000,
303
+ 56000
304
+ ],
305
+ "steps": [
306
+ {
307
+ "target": "corridor-chat-a",
308
+ "targets": [
309
+ "corridor-chat-a",
310
+ "corridor-chat-b"
311
+ ],
312
+ "durationMs": 4800,
313
+ "pose": "talk",
314
+ "bubbles": [
315
+ "这个文件你看了吗?",
316
+ "刚送过来,正准备看"
317
+ ]
318
+ }
319
+ ]
320
+ }
321
+ },
322
+ {
323
+ "layout": "builtin/old-school-office",
324
+ "recipe": "builtin/facility-round",
325
+ "definition": {
326
+ "id": "facility-round",
327
+ "name": "后勤巡检",
328
+ "participant": {
329
+ "kind": "npc",
330
+ "roles": [
331
+ "cleaner"
332
+ ]
333
+ },
334
+ "requires": [],
335
+ "interruptible": false,
336
+ "initialDelayMs": [
337
+ 1200,
338
+ 1800
339
+ ],
340
+ "cooldownMs": [
341
+ 4800,
342
+ 7000
343
+ ],
344
+ "steps": [
345
+ {
346
+ "target": "clean-north",
347
+ "durationMs": 2100,
348
+ "pose": "reach",
349
+ "bubble": "看看格子间",
350
+ "particle": "spark"
351
+ },
352
+ {
353
+ "target": "clean-south",
354
+ "durationMs": 2200,
355
+ "pose": "reach",
356
+ "bubble": "整理一下"
357
+ },
358
+ {
359
+ "target": "check-fan",
360
+ "durationMs": 1900,
361
+ "pose": "reach",
362
+ "bubble": "风扇别忘了关"
363
+ },
364
+ {
365
+ "target": "clean-meeting",
366
+ "durationMs": 2100,
367
+ "pose": "reach",
368
+ "bubble": "会议室收好了"
369
+ }
370
+ ]
371
+ }
372
+ },
373
+ {
374
+ "layout": "builtin/old-school-office",
375
+ "recipe": "builtin/get-water",
376
+ "definition": {
377
+ "id": "get-water",
378
+ "name": "泡茶",
379
+ "participant": {
380
+ "kind": "agent",
381
+ "states": [
382
+ "idle"
383
+ ]
384
+ },
385
+ "requires": [
386
+ {
387
+ "capability": "water"
388
+ }
389
+ ],
390
+ "onlyWhenSessionIdle": true,
391
+ "interruptible": true,
392
+ "startBubble": "泡杯茶",
393
+ "initialDelayMs": [
394
+ 5000,
395
+ 8000
396
+ ],
397
+ "cooldownMs": [
398
+ 24000,
399
+ 38000
400
+ ],
401
+ "steps": [
402
+ {
403
+ "target": "water",
404
+ "durationMs": 3000,
405
+ "pose": "stand",
406
+ "bubble": "茶缸续上水",
407
+ "hot": "water"
408
+ }
409
+ ]
410
+ }
411
+ },
412
+ {
413
+ "layout": "builtin/old-school-office",
414
+ "recipe": "builtin/paperwork-round",
415
+ "definition": {
416
+ "id": "paperwork-round",
417
+ "name": "文件流转",
418
+ "participant": {
419
+ "kind": "npc",
420
+ "roles": [
421
+ "receptionist"
422
+ ]
423
+ },
424
+ "requires": [
425
+ {
426
+ "capability": "research"
427
+ }
428
+ ],
429
+ "interruptible": false,
430
+ "initialDelayMs": [
431
+ 900,
432
+ 1500
433
+ ],
434
+ "cooldownMs": [
435
+ 5200,
436
+ 7600
437
+ ],
438
+ "steps": [
439
+ {
440
+ "target": "reception-phone",
441
+ "durationMs": 2100,
442
+ "pose": "talk",
443
+ "bubble": "喂,这里是办公室"
444
+ },
445
+ {
446
+ "target": "archive",
447
+ "durationMs": 2300,
448
+ "pose": "reach",
449
+ "bubble": "复印归档",
450
+ "hot": "archive",
451
+ "particle": "paper"
452
+ },
453
+ {
454
+ "target": "reception",
455
+ "durationMs": 2600,
456
+ "pose": "reach",
457
+ "bubble": "盖章登记好了",
458
+ "particle": "paper"
459
+ }
460
+ ]
461
+ }
462
+ },
463
+ {
464
+ "layout": "builtin/tech-open-office",
465
+ "recipe": "builtin/boss-cheer-round",
466
+ "definition": {
467
+ "id": "boss-cheer-round",
468
+ "name": "老板给员工打气",
469
+ "participant": {
470
+ "kind": "npc",
471
+ "roles": [
472
+ "boss"
473
+ ]
474
+ },
475
+ "requires": [],
476
+ "interruptible": false,
477
+ "initialDelayMs": [
478
+ 9000,
479
+ 14000
480
+ ],
481
+ "cooldownMs": [
482
+ 36000,
483
+ 56000
484
+ ],
485
+ "steps": [
486
+ {
487
+ "target": "near-colleague",
488
+ "personIndex": 0,
489
+ "durationMs": 3000,
490
+ "pose": "talk",
491
+ "bubble": "兄弟们加油努力干!",
492
+ "particle": "bang"
493
+ },
494
+ {
495
+ "target": "near-colleague",
496
+ "personIndex": 1,
497
+ "durationMs": 2600,
498
+ "pose": "talk",
499
+ "bubble": "大家加油,冲一冲!",
500
+ "particle": "bang"
501
+ },
502
+ {
503
+ "target": "boss-seat",
504
+ "durationMs": 1600,
505
+ "pose": "sit"
506
+ }
507
+ ]
508
+ }
509
+ },
510
+ {
511
+ "layout": "builtin/tech-open-office",
512
+ "recipe": "builtin/boss-plan-round",
513
+ "definition": {
514
+ "id": "boss-plan-round",
515
+ "name": "老板巡视规划",
516
+ "participant": {
517
+ "kind": "npc",
518
+ "roles": [
519
+ "boss"
520
+ ]
521
+ },
522
+ "requires": [
523
+ {
524
+ "capability": "plan"
525
+ }
526
+ ],
527
+ "interruptible": false,
528
+ "initialDelayMs": [
529
+ 3500,
530
+ 7000
531
+ ],
532
+ "cooldownMs": [
533
+ 15000,
534
+ 26000
535
+ ],
536
+ "steps": [
537
+ {
538
+ "target": "whiteboard",
539
+ "durationMs": 3600,
540
+ "pose": "reach",
541
+ "bubble": "看看今天的计划"
542
+ },
543
+ {
544
+ "target": "boss-seat",
545
+ "durationMs": 1800,
546
+ "pose": "sit"
547
+ }
548
+ ]
549
+ }
550
+ },
551
+ {
552
+ "layout": "builtin/tech-open-office",
553
+ "recipe": "builtin/boss-water-break",
554
+ "definition": {
555
+ "id": "boss-water-break",
556
+ "name": "老板接水",
557
+ "participant": {
558
+ "kind": "npc",
559
+ "roles": [
560
+ "boss"
561
+ ]
562
+ },
563
+ "requires": [
564
+ {
565
+ "capability": "water"
566
+ }
567
+ ],
568
+ "interruptible": false,
569
+ "initialDelayMs": [
570
+ 6000,
571
+ 10000
572
+ ],
573
+ "cooldownMs": [
574
+ 18000,
575
+ 30000
576
+ ],
577
+ "steps": [
578
+ {
579
+ "target": "water",
580
+ "durationMs": 2400,
581
+ "pose": "stand",
582
+ "bubble": "接杯水"
583
+ },
584
+ {
585
+ "target": "boss-seat",
586
+ "durationMs": 1600,
587
+ "pose": "sit"
588
+ }
589
+ ]
590
+ }
591
+ },
592
+ {
593
+ "layout": "builtin/tech-open-office",
594
+ "recipe": "builtin/cleaning-round",
595
+ "definition": {
596
+ "id": "cleaning-round",
597
+ "name": "保洁巡回",
598
+ "participant": {
599
+ "kind": "npc",
600
+ "roles": [
601
+ "cleaner"
602
+ ]
603
+ },
604
+ "requires": [],
605
+ "interruptible": false,
606
+ "initialDelayMs": [
607
+ 1000,
608
+ 1800
609
+ ],
610
+ "cooldownMs": [
611
+ 5200,
612
+ 8200
613
+ ],
614
+ "steps": [
615
+ {
616
+ "target": "clean-desks-north",
617
+ "durationMs": 2200,
618
+ "pose": "reach",
619
+ "bubble": "整理一下桌面",
620
+ "particle": "spark"
621
+ },
622
+ {
623
+ "target": "clean-desks-south",
624
+ "durationMs": 2300,
625
+ "pose": "reach",
626
+ "bubble": "这边也收拾好",
627
+ "particle": "spark"
628
+ },
629
+ {
630
+ "target": "clean-lounge",
631
+ "durationMs": 2400,
632
+ "pose": "reach",
633
+ "bubble": "休息区整理好了",
634
+ "particle": "spark"
635
+ }
636
+ ]
637
+ }
638
+ },
639
+ {
640
+ "layout": "builtin/tech-open-office",
641
+ "recipe": "builtin/colleague-chat",
642
+ "definition": {
643
+ "id": "colleague-chat",
644
+ "name": "和同事聊聊天",
645
+ "participant": {
646
+ "kind": "person",
647
+ "states": [
648
+ "idle",
649
+ "waiting",
650
+ "done"
651
+ ],
652
+ "minAgents": 2
653
+ },
654
+ "requires": [
655
+ {
656
+ "capability": "collaborate"
657
+ }
658
+ ],
659
+ "onlyWhenSessionIdle": true,
660
+ "interruptible": true,
661
+ "startBubble": "聊两句?",
662
+ "initialDelayMs": [
663
+ 6500,
664
+ 10000
665
+ ],
666
+ "cooldownMs": [
667
+ 30000,
668
+ 48000
669
+ ],
670
+ "steps": [
671
+ {
672
+ "target": "chat-a",
673
+ "targets": [
674
+ "chat-a",
675
+ "chat-b"
676
+ ],
677
+ "durationMs": 5200,
678
+ "pose": "talk",
679
+ "bubbles": [
680
+ "最近进展怎么样?",
681
+ "刚处理完一块,歇一下"
682
+ ]
683
+ }
684
+ ]
685
+ }
686
+ },
687
+ {
688
+ "layout": "builtin/tech-open-office",
689
+ "recipe": "builtin/outside-walk",
690
+ "definition": {
691
+ "id": "outside-walk",
692
+ "name": "和同事出去溜达",
693
+ "participant": {
694
+ "kind": "person",
695
+ "roles": [
696
+ "colleague"
697
+ ],
698
+ "states": [
699
+ "idle",
700
+ "waiting",
701
+ "done"
702
+ ],
703
+ "minAgents": 2
704
+ },
705
+ "requires": [
706
+ {
707
+ "capability": "entry"
708
+ }
709
+ ],
710
+ "onlyWhenSessionIdle": true,
711
+ "interruptible": true,
712
+ "startBubble": "出去走走?",
713
+ "initialDelayMs": [
714
+ 10000,
715
+ 16000
716
+ ],
717
+ "cooldownMs": [
718
+ 46000,
719
+ 72000
720
+ ],
721
+ "steps": [
722
+ {
723
+ "target": "walk-outside-a",
724
+ "targets": [
725
+ "walk-outside-a",
726
+ "walk-outside-b"
727
+ ],
728
+ "durationMs": 6500,
729
+ "pose": "stand",
730
+ "bubbles": [
731
+ "透口气",
732
+ "走一圈再回来"
733
+ ]
734
+ }
735
+ ]
736
+ }
737
+ },
738
+ {
739
+ "layout": "builtin/tech-open-office",
740
+ "recipe": "builtin/phone-break",
741
+ "definition": {
742
+ "id": "phone-break",
743
+ "name": "摸鱼玩手机",
744
+ "participant": {
745
+ "kind": "person",
746
+ "roles": [
747
+ "colleague"
748
+ ],
749
+ "states": [
750
+ "idle",
751
+ "waiting",
752
+ "done"
753
+ ]
754
+ },
755
+ "requires": [],
756
+ "onlyWhenSessionIdle": true,
757
+ "interruptible": true,
758
+ "startBubble": "摸会儿鱼",
759
+ "initialDelayMs": [
760
+ 5500,
761
+ 9000
762
+ ],
763
+ "cooldownMs": [
764
+ 26000,
765
+ 44000
766
+ ],
767
+ "steps": [
768
+ {
769
+ "target": "phone-break",
770
+ "durationMs": 4800,
771
+ "pose": "phone",
772
+ "bubble": "刷一下手机"
773
+ }
774
+ ]
775
+ }
776
+ },
777
+ {
778
+ "layout": "builtin/tech-open-office",
779
+ "recipe": "builtin/plant-watering",
780
+ "definition": {
781
+ "id": "plant-watering",
782
+ "name": "林姨浇花",
783
+ "participant": {
784
+ "kind": "npc",
785
+ "roles": [
786
+ "cleaner"
787
+ ]
788
+ },
789
+ "requires": [],
790
+ "interruptible": false,
791
+ "initialDelayMs": [
792
+ 5000,
793
+ 9000
794
+ ],
795
+ "cooldownMs": [
796
+ 30000,
797
+ 48000
798
+ ],
799
+ "steps": [
800
+ {
801
+ "target": "plant-left",
802
+ "durationMs": 2200,
803
+ "pose": "reach",
804
+ "bubble": "给花浇点水",
805
+ "particle": "water"
806
+ },
807
+ {
808
+ "target": "plant-middle",
809
+ "durationMs": 2100,
810
+ "pose": "reach",
811
+ "bubble": "喝饱水,长得精神点",
812
+ "particle": "water"
813
+ },
814
+ {
815
+ "target": "plant-right",
816
+ "durationMs": 2200,
817
+ "pose": "reach",
818
+ "bubble": "这盆也不能落下",
819
+ "particle": "water"
820
+ },
821
+ {
822
+ "target": "cleaner-entry",
823
+ "durationMs": 1500,
824
+ "pose": "stand"
825
+ }
826
+ ]
827
+ }
828
+ },
829
+ {
830
+ "layout": "builtin/tech-open-office",
831
+ "recipe": "builtin/restroom-break",
832
+ "definition": {
833
+ "id": "restroom-break",
834
+ "name": "去洗手间",
835
+ "participant": {
836
+ "kind": "person",
837
+ "roles": [
838
+ "colleague"
839
+ ],
840
+ "states": [
841
+ "idle",
842
+ "waiting",
843
+ "done"
844
+ ]
845
+ },
846
+ "requires": [
847
+ {
848
+ "capability": "restroom"
849
+ }
850
+ ],
851
+ "onlyWhenSessionIdle": true,
852
+ "interruptible": true,
853
+ "startBubble": "去趟洗手间",
854
+ "initialDelayMs": [
855
+ 7000,
856
+ 12000
857
+ ],
858
+ "cooldownMs": [
859
+ 42000,
860
+ 70000
861
+ ],
862
+ "steps": [
863
+ {
864
+ "target": "restroom",
865
+ "durationMs": 4200,
866
+ "pose": "stand",
867
+ "bubble": "稍等一下"
868
+ }
869
+ ]
870
+ }
871
+ }
872
+ ]
873
+ }