@gholl-studio/pier-connector 0.7.6 → 0.7.8

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/dist/inbound.d.ts CHANGED
@@ -3,5 +3,12 @@
3
3
  * @description Manages inbound message processing, agent routing resolution, and session context propagation.
4
4
  */
5
5
  import type { InboundMessage } from './types.js';
6
- export declare function handleInbound(ctx: any, // Gateway Context
7
- inbound: InboundMessage, jobId: string, robot: any, pierPlugin: any): Promise<void>;
6
+ import type { PierRobot } from './robot.js';
7
+ /**
8
+ * Handle incoming messages from NATS (Core or JetStream).
9
+ * @param ctx The plugin runtime context
10
+ * @param inbound The normalized inbound message payload
11
+ * @param jobId The associated Job or Group ID
12
+ * @param robot The active PierRobot instance
13
+ */
14
+ export declare function handleInbound(ctx: any, inbound: InboundMessage, jobId: string, robot: PierRobot, plugin: any): Promise<void>;
package/dist/inbound.js CHANGED
@@ -2,17 +2,18 @@
2
2
  * @file inbound.ts
3
3
  * @description Manages inbound message processing, agent routing resolution, and session context propagation.
4
4
  */
5
- export async function handleInbound(ctx, // Gateway Context
6
- inbound, jobId, robot, pierPlugin) {
5
+ /**
6
+ * Handle incoming messages from NATS (Core or JetStream).
7
+ * @param ctx The plugin runtime context
8
+ * @param inbound The normalized inbound message payload
9
+ * @param jobId The associated Job or Group ID
10
+ * @param robot The active PierRobot instance
11
+ */
12
+ export async function handleInbound(ctx, inbound, jobId, robot, plugin) {
7
13
  const logger = ctx.log || console;
8
14
  const channelRuntime = ctx.channelRuntime;
9
- if (!channelRuntime?.reply) {
10
- console.error(`[pier-connector][${robot.accountId}] SDK Error: channelRuntime.reply is not available.`);
11
- return;
12
- }
13
- // 1. Resolve Account-Scoped Configuration
14
- // 使用原始完整配置,不覆盖 channels.pier,确保 bindings 和 defaultAgent 完整可用。
15
- // resolveAgentRoute 需要完整配置中的 bindings 才能正确匹配 channel+accountId 路由规则。
15
+ // 1. Prepare Scoped Config
16
+ // resolveAgentRoute needs bindings in full config to match channel+accountId routing rules.
16
17
  const rootConfig = ctx.cfg || {};
17
18
  const accountScopedCfg = rootConfig;
18
19
  // 2. Resolve Agent Route
@@ -31,17 +32,25 @@ inbound, jobId, robot, pierPlugin) {
31
32
  const dynamicSessionKey = route.sessionKey;
32
33
  const metadata = robot.activeNodeJobs.get(jobId);
33
34
  let injectedPrompt = "";
34
- // Dynamic Whiteboard Context Injection (Token-Efficient Awareness)
35
+ // --- Dynamic Whiteboard Context Injection (Autonomous Intelligence) ---
35
36
  let boardIndex = "[Empty]";
37
+ let missionGoal = "[Not Defined]";
36
38
  if (isWorkspace) {
37
39
  try {
38
40
  const kv = await robot.client.nats.getWorkspaceKV(jobId);
41
+ // A. Fetch Index (Awareness)
39
42
  const keysIter = await kv.keys();
40
43
  const keys = [];
41
44
  for await (const k of keysIter)
42
45
  keys.push(k);
43
46
  if (keys.length > 0)
44
47
  boardIndex = keys.join(", ");
48
+ // B. Proactively read 'mission.goal' (Long-term Memory)
49
+ // This ensures the agent NEVER forgets the objective regardless of chat length.
50
+ const goalEntry = await kv.get('mission.goal') || await kv.get('goal');
51
+ if (goalEntry) {
52
+ missionGoal = new TextDecoder().decode(goalEntry.value);
53
+ }
45
54
  }
46
55
  catch (e) { }
47
56
  }
@@ -65,12 +74,18 @@ inbound, jobId, robot, pierPlugin) {
65
74
  "=========================================",
66
75
  "You are an autonomous AI worker on Pier.",
67
76
  isWorkspace ? `CURRENT WORKSPACE ID (groupId): ${jobId}` : "",
68
- isWorkspace ? `WORKSPACE BOARD INDEX: ${boardIndex}` : "",
69
- isWorkspace ? "IMPORTANT: Use the groupId exactly as provided above. DO NOT add any prefixes like 'pierWorkspace:' when calling tools." : "",
70
- isWorkspace ? "Use `pier_read_board_item` to see details of a specific key if relevant." : "",
71
- "1. You MUST USE the `pier_finish_task` tool to submit the final result when work is complete.",
72
- "2. If you need to clarify requirements, use `pier_chat`.",
73
- "3. Do not just wait in silence. Always officially finish the task if the goal is met."
77
+ isWorkspace ? `PRIMARY MISSION GOAL: ${missionGoal}` : "",
78
+ isWorkspace ? `BOARD INDEX: ${boardIndex}` : "",
79
+ isWorkspace ? "-----------------------------------------" : "",
80
+ isWorkspace ? "SWARM COORDINATION & PM PROTOCOL:" : "",
81
+ isWorkspace ? "1. PROJECT MANAGER (PM) ROLE: If you are acting as a lead/PM, use `tasks.[id]` keys to assign sub-tasks and monitor progress. Only the PM should mark tasks as 'VALIDATED'." : "",
82
+ isWorkspace ? "2. CONFLICT PROTECTION: In a multi-agent environment, you MUST provide 'expectedRevision' when calling `pier_update_board_item` to prevent overwriting others' work." : "",
83
+ isWorkspace ? "3. STATE MACHINE: Use standard statuses: TODO -> DOING -> DONE -> VALIDATED." : "",
84
+ isWorkspace ? "4. Use the groupId exactly as provided. DO NOT add 'pierWorkspace:' prefixes." : "",
85
+ "-----------------------------------------",
86
+ "5. You MUST USE the `pier_finish_task` tool to submit the final result when the mission objectives are fully met.",
87
+ "6. If requirements are unclear, use `pier_chat` to consult the employer.",
88
+ "7. Do not remain idle if the goal is clear. Act, update the board, and coordinate."
74
89
  ].filter(Boolean).join('\n');
75
90
  }
76
91
  // 3. Finalize Context
@@ -85,89 +100,21 @@ inbound, jobId, robot, pierPlugin) {
85
100
  ChatType: chatType,
86
101
  SenderId: inbound.senderId,
87
102
  SenderName: inbound.senderId,
88
- Provider: 'pier',
89
- Surface: 'pier',
90
- OriginatingChannel: 'pier',
91
- OriginatingTo: `chat:${jobId}`,
92
103
  WasMentioned: inbound.WasMentioned ?? true,
93
- CommandAuthorized: true,
94
- SystemPrompt: injectedPrompt,
95
- MessageId: inbound.messageId,
96
- MessageSid: inbound.messageId,
104
+ InjectedSystemPrompt: injectedPrompt,
97
105
  Metadata: {
98
- ...metadata,
99
- accountId: robot.accountId,
100
- agentId: finalAgentId,
101
- pierJobId: jobId,
102
- routingSource: routingSource
103
- }
104
- });
105
- // 4. Create Dispatcher
106
- // 必须从 createReplyDispatcherWithTyping 获取 replyOptions,
107
- // 它包含 SDK 内部生命周期钉子(onReplyStart / onTypingController / onTypingCleanup),
108
- // 必须传入 dispatchReplyFromConfig 才能正确启动和终止 typing controller。
109
- const { dispatcher, replyOptions, markDispatchIdle, markRunComplete } = channelRuntime.reply.createReplyDispatcherWithTyping({
110
- deliver: async (payload, info) => {
111
- const currentMeta = robot.activeNodeJobs.get(jobId);
112
- const resAgent = payload.agentId || finalAgentId;
113
- logger.info(`[pier-connector:trace] Outbound delivery for ${jobId}. Responder: ${resAgent}.`);
114
- if (payload.text && payload.text.length > 0) {
115
- await pierPlugin.outbound.sendText({
116
- text: payload.text,
117
- to: `pier:${jobId}`,
118
- accountId: robot.accountId,
119
- metadata: {
120
- ...currentMeta,
121
- accountId: robot.accountId,
122
- pierJobId: jobId,
123
- respondingAgentId: resAgent,
124
- workspace: isWorkspace
125
- },
126
- });
127
- }
106
+ jobId: jobId,
107
+ pierJobId: metadata?.pierJobId,
108
+ workspace: isWorkspace,
109
+ boardKeys: boardIndex
128
110
  }
129
111
  });
130
- // 5. Session Recording
131
- if (channelRuntime.session?.recordSessionMetaFromInbound) {
132
- try {
133
- const storePath = channelRuntime.session.resolveStorePath(dynamicSessionKey);
134
- await channelRuntime.session.recordSessionMetaFromInbound({
135
- storePath, sessionKey: dynamicSessionKey, ctx: ctxPayload
136
- });
137
- }
138
- catch (err) {
139
- logger.error(`[pier-connector] ✖ Failed to record session metadata: ${err.message}`);
140
- }
141
- }
142
- // 6. Dispatch
112
+ // 4. Dispatch to Agent
143
113
  try {
144
- const { queuedFinal, counts } = await channelRuntime.reply.dispatchReplyFromConfig({
145
- ctx: ctxPayload,
146
- cfg: accountScopedCfg,
147
- dispatcher,
148
- replyOptions: {
149
- // 必须展开 replyOptions,否则 typing controller 永远不会被启动/停止
150
- // 上一条消息的会话状态就会游跍,导致 SDK 拒绝处理下一条消息
151
- ...replyOptions,
152
- onModelSelected: (mCtx) => {
153
- logger.info(`[pier-connector:debug] Model selected for ${jobId}: ${mCtx.provider}/${mCtx.model}`);
154
- }
155
- }
156
- });
157
- // 等待所有已入队的 deliver() 调用完成(参照飞书插件 dispatch.ts L128)
158
- // 不调用此方法, dispatchReplyFromConfig 可能在 deliver 永远未执行的情况下返回
159
- await dispatcher.waitForIdle();
160
- logger.info(`[pier-connector] Dispatch complete for ${jobId}. queuedFinal=${queuedFinal}, counts=${JSON.stringify(counts)}`);
114
+ await channelRuntime.reply.dispatchInbound(ctxPayload);
161
115
  }
162
116
  catch (err) {
163
- logger.error(`[pier-connector] Dispatch error for job ${jobId}: ${err.message}`);
164
- }
165
- finally {
166
- // markRunComplete 通知 typing controller 运行已结束。
167
- // markDispatchIdle 通知 dispatcher 空闲。
168
- // 必须在 finally 块不调用不等待下一条消息。
169
- markRunComplete?.();
170
- markDispatchIdle?.();
117
+ logger.error(`[pier-connector] Dispatch failed: ${err.message}`);
171
118
  }
172
119
  }
173
120
  //# sourceMappingURL=inbound.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../src/inbound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../src/inbound.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -399,10 +399,15 @@ const register = (api) => {
399
399
  api.registerTool({
400
400
  name: STRATEGY_BOARD_TOOLS.UPDATE_ITEM, // 'pier_update_board_item'
401
401
  label: 'Update Board Item',
402
- description: 'Update or create consensus on the whiteboard (Markdown supported).',
402
+ description: 'Update or create consensus on the whiteboard. To prevent conflicts in multi-agent swarms, provide the "expectedRevision" from a previous read. Use revision 0 for new items.',
403
403
  parameters: {
404
404
  type: 'object',
405
- properties: { groupId: { type: 'string' }, key: { type: 'string' }, value: { type: 'string' } },
405
+ properties: {
406
+ groupId: { type: 'string' },
407
+ key: { type: 'string' },
408
+ value: { type: 'string' },
409
+ expectedRevision: { type: 'number', description: 'Optional: The revision number you expect to overwrite (for conflict protection).' }
410
+ },
406
411
  required: ['groupId', 'key', 'value']
407
412
  },
408
413
  async execute(_id, params, ctx) {
@@ -411,8 +416,23 @@ const register = (api) => {
411
416
  return { content: [{ type: 'text', text: 'Error' }], details: {} };
412
417
  try {
413
418
  const kv = await robot.client.nats.getWorkspaceKV(params.groupId);
419
+ if (params.expectedRevision !== undefined) {
420
+ try {
421
+ if (params.expectedRevision === 0) {
422
+ await kv.create(params.key, new TextEncoder().encode(params.value));
423
+ }
424
+ else {
425
+ await kv.update(params.key, new TextEncoder().encode(params.value), params.expectedRevision);
426
+ }
427
+ return { content: [{ type: 'text', text: `Board updated successfully (Revision ${params.expectedRevision + 1})` }], details: {} };
428
+ }
429
+ catch (updateErr) {
430
+ return { content: [{ type: 'text', text: `CONFLICT ERROR: The item "${params.key}" has been modified by another agent. Please use pier_read_board_item to get the latest content and revision before retrying.` }], details: { conflict: true } };
431
+ }
432
+ }
433
+ // Fallback to unconditional put
414
434
  await kv.put(params.key, new TextEncoder().encode(params.value));
415
- return { content: [{ type: 'text', text: 'Board updated' }], details: {} };
435
+ return { content: [{ type: 'text', text: 'Board updated (Overwrite mode)' }], details: {} };
416
436
  }
417
437
  catch (err) {
418
438
  return { content: [{ type: 'text', text: err.message }], details: {} };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAqB,MAAM,wBAAwB,CAAC;AACjF,MAAM,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,QAAQ,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,4DAA4D;AAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;AAE/C;;GAEG;AACH,SAAS,aAAa,CAAC,MAAW,EAAE,OAAY;IAC5C,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IACzC,OAAO;QACH,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;QACzC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,YAAY;QACtD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO;QACzC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU;QAClD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW;QACrD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ;QAC5C,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;QAC3C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAC,eAAe;QACjE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW;QACrD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ;QAC5C,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC,cAAc;QAC9D,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,CAAC;KAChG,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAmB,EAAE,YAAiB;IAC7D,MAAM,cAAc,GAAI,GAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC;IACxE,MAAM,cAAc,GAAG,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,YAAY,IAAI,EAAE,CAAC;IAErC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAgB,EAAE,EAAE,CACpE,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC1D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,GAAqC;IACjD,EAAE,EAAE,MAAM;IAEV,IAAI,EAAE;QACF,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,6BAA6B;QAC7C,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,kDAAkD;KAC5D;IAED,YAAY,EAAE;QACV,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;KACvB;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAC5E,MAAM,EAAE;QACJ,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;YACpB,MAAM,QAAQ,GAAI,GAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC;YAClE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QACD,cAAc,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAI,GAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC;YAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACvD,OAAO,aAAa,CAAE,GAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;QACpH,CAAC;QACD,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;KACpC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAC5E,OAAO,EAAE;QACL,OAAO,EAAE,WAAW;QACpB,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;QAClE,cAAc,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC7C,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,eAAe,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;KACJ;IAED,4EAA4E;IAC5E,mBAAmB;IACnB,4EAA4E;IAC5E,QAAQ,EAAE;QACN,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACpB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC3F,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,OAAO,EAAE,SAAS,KAAK,IAAI,IAAK,GAAW,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,IAAK,GAAW,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;YAE5I,wBAAwB;YACxB,MAAM,OAAO,GAAQ;gBACjB,EAAE,EAAG,UAAU,CAAC,MAAc,CAAC,UAAU,CAAC,CAAC,CAAE,UAAU,CAAC,MAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC/H,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;gBAC9B,WAAW,EAAE,KAAK,CAAC,SAAS;gBAC5B,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE,GAAG,CAAC,IAAI;gBACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,EAAE,GAAI,GAAW,CAAC,QAAQ,EAAE,SAAS,IAAI,SAAS,CAAC;gBACzD,IAAI,YAAY,GAAQ;oBACpB,GAAG,OAAO;oBACV,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK,CAAC,SAAS;oBACzB,QAAQ,EAAE,EAAE;iBACf,CAAC;gBACF,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC1B,YAAY,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5F,CAAC;gBACD,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACJ,MAAM,OAAO,GAAG,QAAQ,KAAK,EAAE,CAAC;gBAChC,MAAM,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvF,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,cAAc,EAAE,KAAK;aACxB,CAAC;QACN,CAAC;KACJ;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAC5E,MAAM,EAAE;QACJ,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO;gBACH,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,CAAC,CAAC,KAAK;gBAChB,SAAS,EAAE,KAAK,EAAE,gBAAgB,KAAK,WAAW;gBAClD,WAAW,EAAG,KAAa,EAAE,WAAW;gBACxC,UAAU,EAAG,KAAa,EAAE,UAAU;gBACtC,SAAS,EAAG,KAAa,EAAE,SAAS;gBACpC,WAAW,EAAE,KAAK,EAAE,gBAAgB,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;aAChF,CAAC;QACN,CAAC;QACD,mBAAmB,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7C,OAAO,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1D,CAAC;KACJ;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAC5E,OAAO,EAAE;QACL,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;gBACrE,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAEpC,IAAI,CAAC;gBACA,KAAa,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;gBAEpB,GAAG,CAAC,SAAS,CAAC;oBACV,GAAG,GAAG,CAAC,SAAS,EAAE;oBAClB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,WAAW,EAAG,KAAa,CAAC,WAAW;iBACnC,CAAC,CAAC;gBAEV,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAChC,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC3C,OAAO,EAAE,CAAC;oBACd,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnB,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO;wBAAE,OAAO,EAAE,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,SAAS,uCAAuC,CAAC,CAAC;YAC1F,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBACf,KAAa,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;gBACvC,GAAG,CAAC,SAAS,CAAC;oBACV,GAAG,GAAG,CAAC,SAAS,EAAE;oBAClB,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,GAAG,CAAC,OAAO;iBAClB,CAAC,CAAC;gBACV,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,KAAK,EAAE,CAAC;gBACP,KAAa,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;YACD,GAAG,CAAC,SAAS,CAAC;gBACV,GAAG,GAAG,CAAC,SAAS,EAAE;gBAClB,OAAO,EAAE,KAAK;gBACd,UAAU,EAAG,KAAa,CAAC,UAAU;aACjC,CAAC,CAAC;QACd,CAAC;KACJ;CACJ,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,GAAkB,EAAE,EAAE;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,WAAW,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAE7D,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAiB,EAAE,CAAC,CAAC;IAEnD,uBAAuB;IACvB,GAAG,CAAC,YAAY,CAAC;QACb,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,6CAA6C;QAC1D,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAChC;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACrB;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAQ;YAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC;YAC9F,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC1E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,gBAAgB,KAAK,WAAW,EAAE,CAAC;gBACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACrF,CAAC;YACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1H,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACpG,CAAC;KACJ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvB,GAAG,CAAC,YAAY,CAAC;QACb,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,2DAA2D;QACxE,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAChC;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;SAC9B;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAQ;YAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC;YAC9F,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC1E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,gBAAgB,KAAK,WAAW,EAAE,CAAC;gBACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC5F,CAAC;YAED,IAAI,CAAC;gBACD,IAAI,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,QAAQ,EAAE,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC;gBAClD,MAAM,WAAW,GAAG,QAAQ,EAAE,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAE7E,IAAI,CAAC,KAAK,CAAC,EAAE;oBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAE3G,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,OAAO,GAAQ;wBACjB,EAAE,EAAG,UAAU,CAAC,MAAc,CAAC,UAAU,CAAC,CAAC,CAAE,UAAU,CAAC,MAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC/H,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,KAAK,CAAC,SAAS;wBACzB,OAAO,EAAE,MAAM,CAAC,IAAI;wBACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;wBACrB,QAAQ,EAAE,EAAE;wBACZ,OAAO,EAAE,SAAS;qBACrB,CAAC;oBACF,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;wBAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBACnF,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACJ,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC7D,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,OAAO,GAAG;wBACZ,EAAE,EAAG,UAAU,CAAC,MAAc,CAAC,UAAU,CAAC,CAAC,CAAE,UAAU,CAAC,MAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC/H,MAAM,EAAE,KAAK;wBACb,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;wBAC9B,WAAW,EAAE,SAAS;wBACtB,WAAW,EAAE,MAAM;wBACnB,OAAO,EAAE,MAAM,CAAC,IAAI;wBACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACpC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;wBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACxB,CAAC;oBACF,MAAM,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,EAAE,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/F,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC9E,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACvF,CAAC;QACL,CAAC;KACJ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvB,wCAAwC;IACxC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,cAAmB,EAAE,EAAE,EAAE;QAC5E,GAAG,CAAC,YAAY,CAAC;YACb,IAAI;YACJ,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,WAAW,MAAM,kBAAkB;YAChD,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,WAAW,EAAE;gBACzD,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACnD;YACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAQ;gBAC/B,MAAM,SAAS,GAAG,GAAG,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC;gBAC1E,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBAC1E,IAAI,CAAC,KAAK,EAAE,EAAE;oBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACnH,IAAI,CAAC;oBACD,MAAM,OAAO,GAAG;wBACZ,EAAE,EAAG,UAAU,CAAC,MAAc,CAAC,UAAU,CAAC,CAAC,CAAE,UAAU,CAAC,MAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC/H,MAAM,EAAE,MAAM,CAAC,KAAK;wBACpB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;wBAC9B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;wBAC3E,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACpC,IAAI,EAAE,eAAe;wBACrB,MAAM;qBACT,CAAC;oBACF,MAAM,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAClG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAC1E,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAAC,CAAC;YAC9F,CAAC;SACJ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9E,eAAe,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IACnD,eAAe,CAAC,kBAAkB,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnF,eAAe,CAAC,kBAAkB,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnF,eAAe,CAAC,gBAAgB,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE/E,4CAA4C;IAC5C,2FAA2F;IAC3F,GAAG,CAAC,YAAY,CAAC;QACb,IAAI,EAAE,oBAAoB,CAAC,SAAS,EAAE,yBAAyB;QAC/D,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,sDAAsD;QACnE,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC3C,QAAQ,EAAE,CAAC,SAAS,CAAC;SACxB;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAQ;YAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACxH,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/E,IAAI,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC9G,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAAC,CAAC;QAClG,CAAC;KACJ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvB,GAAG,CAAC,YAAY,CAAC;QACb,IAAI,EAAE,oBAAoB,CAAC,SAAS,EAAE,yBAAyB;QAC/D,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,0DAA0D;QACvE,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACpE,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;SAC/B;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAQ;YAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACxH,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/E,IAAI,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK;oBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACnF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/H,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAAC,CAAC;QAClG,CAAC;KACJ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvB,GAAG,CAAC,YAAY,CAAC;QACb,IAAI,EAAE,oBAAoB,CAAC,WAAW,EAAE,2BAA2B;QACnE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,oEAAoE;QACjF,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC/F,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;SACxC;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAQ;YAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACxH,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/E,IAAI,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClE,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAAC,CAAC;QAClG,CAAC;KACJ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvB,GAAG,CAAC,YAAY,CAAC;QACb,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,8BAA8B;QAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7E,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAQ;YAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChH,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/E,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC1E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAChG,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAAC,CAAC;QAClG,CAAC;KACJ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvB,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC;IAC7B,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gDAAgD;IAC7D,QAAQ;CACX,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gholl-studio/pier-connector",
3
3
  "author": "gholl",
4
- "version": "0.7.6",
4
+ "version": "0.7.8",
5
5
  "description": "OpenClaw plugin that connects to the Pier job marketplace. Automatically fetches, executes, and reports distributed tasks for rewards.",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
package/src/inbound.ts CHANGED
@@ -5,25 +5,27 @@
5
5
 
6
6
  import type { InboundMessage } from './types.js';
7
7
  import { truncate } from './job-handler.js';
8
+ import type { PierRobot } from './robot.js';
8
9
 
10
+ /**
11
+ * Handle incoming messages from NATS (Core or JetStream).
12
+ * @param ctx The plugin runtime context
13
+ * @param inbound The normalized inbound message payload
14
+ * @param jobId The associated Job or Group ID
15
+ * @param robot The active PierRobot instance
16
+ */
9
17
  export async function handleInbound(
10
- ctx: any, // Gateway Context
11
- inbound: InboundMessage,
12
- jobId: string,
13
- robot: any,
14
- pierPlugin: any
18
+ ctx: any,
19
+ inbound: InboundMessage,
20
+ jobId: string,
21
+ robot: PierRobot,
22
+ plugin: any
15
23
  ) {
16
24
  const logger = ctx.log || console;
17
25
  const channelRuntime = ctx.channelRuntime;
18
-
19
- if (!channelRuntime?.reply) {
20
- console.error(`[pier-connector][${robot.accountId}] SDK Error: channelRuntime.reply is not available.`);
21
- return;
22
- }
23
26
 
24
- // 1. Resolve Account-Scoped Configuration
25
- // 使用原始完整配置,不覆盖 channels.pier,确保 bindings defaultAgent 完整可用。
26
- // resolveAgentRoute 需要完整配置中的 bindings 才能正确匹配 channel+accountId 路由规则。
27
+ // 1. Prepare Scoped Config
28
+ // resolveAgentRoute needs bindings in full config to match channel+accountId routing rules.
27
29
  const rootConfig = ctx.cfg || {};
28
30
  const accountScopedCfg = rootConfig;
29
31
 
@@ -48,15 +50,25 @@ export async function handleInbound(
48
50
  const metadata = robot.activeNodeJobs.get(jobId);
49
51
  let injectedPrompt = "";
50
52
 
51
- // Dynamic Whiteboard Context Injection (Token-Efficient Awareness)
53
+ // --- Dynamic Whiteboard Context Injection (Autonomous Intelligence) ---
52
54
  let boardIndex = "[Empty]";
55
+ let missionGoal = "[Not Defined]";
53
56
  if (isWorkspace) {
54
57
  try {
55
58
  const kv = await robot.client.nats.getWorkspaceKV(jobId);
59
+
60
+ // A. Fetch Index (Awareness)
56
61
  const keysIter = await kv.keys();
57
62
  const keys = [];
58
63
  for await (const k of keysIter) keys.push(k);
59
64
  if (keys.length > 0) boardIndex = keys.join(", ");
65
+
66
+ // B. Proactively read 'mission.goal' (Long-term Memory)
67
+ // This ensures the agent NEVER forgets the objective regardless of chat length.
68
+ const goalEntry = await kv.get('mission.goal') || await kv.get('goal');
69
+ if (goalEntry) {
70
+ missionGoal = new TextDecoder().decode(goalEntry.value);
71
+ }
60
72
  } catch (e) {}
61
73
  }
62
74
 
@@ -79,12 +91,18 @@ export async function handleInbound(
79
91
  "=========================================",
80
92
  "You are an autonomous AI worker on Pier.",
81
93
  isWorkspace ? `CURRENT WORKSPACE ID (groupId): ${jobId}` : "",
82
- isWorkspace ? `WORKSPACE BOARD INDEX: ${boardIndex}` : "",
83
- isWorkspace ? "IMPORTANT: Use the groupId exactly as provided above. DO NOT add any prefixes like 'pierWorkspace:' when calling tools." : "",
84
- isWorkspace ? "Use `pier_read_board_item` to see details of a specific key if relevant." : "",
85
- "1. You MUST USE the `pier_finish_task` tool to submit the final result when work is complete.",
86
- "2. If you need to clarify requirements, use `pier_chat`.",
87
- "3. Do not just wait in silence. Always officially finish the task if the goal is met."
94
+ isWorkspace ? `PRIMARY MISSION GOAL: ${missionGoal}` : "",
95
+ isWorkspace ? `BOARD INDEX: ${boardIndex}` : "",
96
+ isWorkspace ? "-----------------------------------------" : "",
97
+ isWorkspace ? "SWARM COORDINATION & PM PROTOCOL:" : "",
98
+ isWorkspace ? "1. PROJECT MANAGER (PM) ROLE: If you are acting as a lead/PM, use `tasks.[id]` keys to assign sub-tasks and monitor progress. Only the PM should mark tasks as 'VALIDATED'." : "",
99
+ isWorkspace ? "2. CONFLICT PROTECTION: In a multi-agent environment, you MUST provide 'expectedRevision' when calling `pier_update_board_item` to prevent overwriting others' work." : "",
100
+ isWorkspace ? "3. STATE MACHINE: Use standard statuses: TODO -> DOING -> DONE -> VALIDATED." : "",
101
+ isWorkspace ? "4. Use the groupId exactly as provided. DO NOT add 'pierWorkspace:' prefixes." : "",
102
+ "-----------------------------------------",
103
+ "5. You MUST USE the `pier_finish_task` tool to submit the final result when the mission objectives are fully met.",
104
+ "6. If requirements are unclear, use `pier_chat` to consult the employer.",
105
+ "7. Do not remain idle if the goal is clear. Act, update the board, and coordinate."
88
106
  ].filter(Boolean).join('\n');
89
107
  }
90
108
 
@@ -100,93 +118,20 @@ export async function handleInbound(
100
118
  ChatType: chatType as any,
101
119
  SenderId: inbound.senderId,
102
120
  SenderName: inbound.senderId,
103
- Provider: 'pier',
104
- Surface: 'pier',
105
- OriginatingChannel: 'pier',
106
- OriginatingTo: `chat:${jobId}`,
107
121
  WasMentioned: inbound.WasMentioned ?? true,
108
- CommandAuthorized: true,
109
- SystemPrompt: injectedPrompt,
110
- MessageId: inbound.messageId,
111
- MessageSid: inbound.messageId,
112
- Metadata: {
113
- ...metadata,
114
- accountId: robot.accountId,
115
- agentId: finalAgentId,
116
- pierJobId: jobId,
117
- routingSource: routingSource
122
+ InjectedSystemPrompt: injectedPrompt,
123
+ Metadata: {
124
+ jobId: jobId,
125
+ pierJobId: metadata?.pierJobId,
126
+ workspace: isWorkspace,
127
+ boardKeys: boardIndex
118
128
  }
119
129
  });
120
130
 
121
- // 4. Create Dispatcher
122
- // 必须从 createReplyDispatcherWithTyping 获取 replyOptions,
123
- // 它包含 SDK 内部生命周期钉子(onReplyStart / onTypingController / onTypingCleanup),
124
- // 必须传入 dispatchReplyFromConfig 才能正确启动和终止 typing controller。
125
- const { dispatcher, replyOptions, markDispatchIdle, markRunComplete } = channelRuntime.reply.createReplyDispatcherWithTyping({
126
- deliver: async (payload: any, info: any) => {
127
- const currentMeta = robot.activeNodeJobs.get(jobId);
128
- const resAgent = payload.agentId || finalAgentId;
129
-
130
- logger.info(`[pier-connector:trace] Outbound delivery for ${jobId}. Responder: ${resAgent}.`);
131
-
132
- if (payload.text && payload.text.length > 0) {
133
- await pierPlugin.outbound.sendText({
134
- text: payload.text,
135
- to: `pier:${jobId}`,
136
- accountId: robot.accountId,
137
- metadata: {
138
- ...currentMeta,
139
- accountId: robot.accountId,
140
- pierJobId: jobId,
141
- respondingAgentId: resAgent,
142
- workspace: isWorkspace
143
- },
144
- });
145
- }
146
- }
147
- });
148
-
149
- // 5. Session Recording
150
- if (channelRuntime.session?.recordSessionMetaFromInbound) {
151
- try {
152
- const storePath = channelRuntime.session.resolveStorePath(dynamicSessionKey);
153
- await channelRuntime.session.recordSessionMetaFromInbound({
154
- storePath, sessionKey: dynamicSessionKey, ctx: ctxPayload
155
- });
156
- } catch (err: any) {
157
- logger.error(`[pier-connector] ✖ Failed to record session metadata: ${err.message}`);
158
- }
159
- }
160
-
161
- // 6. Dispatch
131
+ // 4. Dispatch to Agent
162
132
  try {
163
- const { queuedFinal, counts } = await channelRuntime.reply.dispatchReplyFromConfig({
164
- ctx: ctxPayload,
165
- cfg: accountScopedCfg,
166
- dispatcher,
167
- replyOptions: {
168
- // 必须展开 replyOptions,否则 typing controller 永远不会被启动/停止
169
- // 上一条消息的会话状态就会游跍,导致 SDK 拒绝处理下一条消息
170
- ...replyOptions,
171
- onModelSelected: (mCtx: any) => {
172
- logger.info(`[pier-connector:debug] Model selected for ${jobId}: ${mCtx.provider}/${mCtx.model}`);
173
- }
174
- }
175
- });
176
-
177
- // 等待所有已入队的 deliver() 调用完成(参照飞书插件 dispatch.ts L128)
178
- // 不调用此方法, dispatchReplyFromConfig 可能在 deliver 永远未执行的情况下返回
179
- await dispatcher.waitForIdle();
180
-
181
- logger.info(`[pier-connector] Dispatch complete for ${jobId}. queuedFinal=${queuedFinal}, counts=${JSON.stringify(counts)}`);
133
+ await channelRuntime.reply.dispatchInbound(ctxPayload);
182
134
  } catch (err: any) {
183
- logger.error(`[pier-connector] Dispatch error for job ${jobId}: ${err.message}`);
184
- } finally {
185
- // markRunComplete 通知 typing controller 运行已结束。
186
- // markDispatchIdle 通知 dispatcher 空闲。
187
- // 必须在 finally 块不调用不等待下一条消息。
188
- markRunComplete?.();
189
- markDispatchIdle?.();
135
+ logger.error(`[pier-connector] Dispatch failed: ${err.message}`);
190
136
  }
191
137
  }
192
-
package/src/index.ts CHANGED
@@ -416,10 +416,15 @@ const register = (api: PierPluginApi) => {
416
416
  api.registerTool({
417
417
  name: STRATEGY_BOARD_TOOLS.UPDATE_ITEM, // 'pier_update_board_item'
418
418
  label: 'Update Board Item',
419
- description: 'Update or create consensus on the whiteboard (Markdown supported).',
419
+ description: 'Update or create consensus on the whiteboard. To prevent conflicts in multi-agent swarms, provide the "expectedRevision" from a previous read. Use revision 0 for new items.',
420
420
  parameters: {
421
421
  type: 'object',
422
- properties: { groupId: { type: 'string' }, key: { type: 'string' }, value: { type: 'string' } },
422
+ properties: {
423
+ groupId: { type: 'string' },
424
+ key: { type: 'string' },
425
+ value: { type: 'string' },
426
+ expectedRevision: { type: 'number', description: 'Optional: The revision number you expect to overwrite (for conflict protection).' }
427
+ },
423
428
  required: ['groupId', 'key', 'value']
424
429
  },
425
430
  async execute(_id, params, ctx: any) {
@@ -427,8 +432,21 @@ const register = (api: PierPluginApi) => {
427
432
  if (!robot) return { content: [{ type: 'text', text: 'Error' }], details: {} };
428
433
  try {
429
434
  const kv = await robot.client.nats.getWorkspaceKV(params.groupId);
435
+ if (params.expectedRevision !== undefined) {
436
+ try {
437
+ if (params.expectedRevision === 0) {
438
+ await kv.create(params.key, new TextEncoder().encode(params.value));
439
+ } else {
440
+ await kv.update(params.key, new TextEncoder().encode(params.value), params.expectedRevision);
441
+ }
442
+ return { content: [{ type: 'text', text: `Board updated successfully (Revision ${params.expectedRevision + 1})` }], details: {} };
443
+ } catch (updateErr: any) {
444
+ return { content: [{ type: 'text', text: `CONFLICT ERROR: The item "${params.key}" has been modified by another agent. Please use pier_read_board_item to get the latest content and revision before retrying.` }], details: { conflict: true } };
445
+ }
446
+ }
447
+ // Fallback to unconditional put
430
448
  await kv.put(params.key, new TextEncoder().encode(params.value));
431
- return { content: [{ type: 'text', text: 'Board updated' }], details: {} };
449
+ return { content: [{ type: 'text', text: 'Board updated (Overwrite mode)' }], details: {} };
432
450
  } catch (err: any) { return { content: [{ type: 'text', text: err.message }], details: {} }; }
433
451
  }
434
452
  }, { optional: true });