funolio-agent 1.0.75 → 1.1.65

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 (236) hide show
  1. package/dist/auth/credential-reader.d.ts.map +1 -1
  2. package/dist/auth/credential-reader.js +4 -3
  3. package/dist/auth/credential-reader.js.map +1 -1
  4. package/dist/auth/token-refresh.d.ts +8 -0
  5. package/dist/auth/token-refresh.d.ts.map +1 -1
  6. package/dist/auth/token-refresh.js +82 -52
  7. package/dist/auth/token-refresh.js.map +1 -1
  8. package/dist/auto-organizer.d.ts.map +1 -1
  9. package/dist/auto-organizer.js +6 -7
  10. package/dist/auto-organizer.js.map +1 -1
  11. package/dist/bench-prefix.d.ts +16 -0
  12. package/dist/bench-prefix.d.ts.map +1 -0
  13. package/dist/bench-prefix.js +25 -0
  14. package/dist/bench-prefix.js.map +1 -0
  15. package/dist/bot-manager.d.ts.map +1 -1
  16. package/dist/bot-manager.js +23 -14
  17. package/dist/bot-manager.js.map +1 -1
  18. package/dist/chat-sync.d.ts +42 -0
  19. package/dist/chat-sync.d.ts.map +1 -0
  20. package/dist/chat-sync.js +95 -0
  21. package/dist/chat-sync.js.map +1 -0
  22. package/dist/clerk-model.d.ts +7 -0
  23. package/dist/clerk-model.d.ts.map +1 -1
  24. package/dist/clerk-model.js +42 -8
  25. package/dist/clerk-model.js.map +1 -1
  26. package/dist/cli-bootstrap-history.d.ts +10 -0
  27. package/dist/cli-bootstrap-history.d.ts.map +1 -0
  28. package/dist/cli-bootstrap-history.js +112 -0
  29. package/dist/cli-bootstrap-history.js.map +1 -0
  30. package/dist/cli-models.d.ts +8 -0
  31. package/dist/cli-models.d.ts.map +1 -0
  32. package/dist/cli-models.js +91 -0
  33. package/dist/cli-models.js.map +1 -0
  34. package/dist/cli-session-epoch.d.ts +13 -3
  35. package/dist/cli-session-epoch.d.ts.map +1 -1
  36. package/dist/cli-session-epoch.js +53 -4
  37. package/dist/cli-session-epoch.js.map +1 -1
  38. package/dist/codex-app-server-manager.d.ts +64 -4
  39. package/dist/codex-app-server-manager.d.ts.map +1 -1
  40. package/dist/codex-app-server-manager.js +755 -55
  41. package/dist/codex-app-server-manager.js.map +1 -1
  42. package/dist/commands/pool.d.ts +32 -0
  43. package/dist/commands/pool.d.ts.map +1 -1
  44. package/dist/commands/pool.js +145 -66
  45. package/dist/commands/pool.js.map +1 -1
  46. package/dist/commands/start.d.ts +21 -0
  47. package/dist/commands/start.d.ts.map +1 -1
  48. package/dist/commands/start.js +484 -63
  49. package/dist/commands/start.js.map +1 -1
  50. package/dist/commands/status.d.ts.map +1 -1
  51. package/dist/commands/status.js +5 -2
  52. package/dist/commands/status.js.map +1 -1
  53. package/dist/config.d.ts +1 -0
  54. package/dist/config.d.ts.map +1 -1
  55. package/dist/config.js +170 -58
  56. package/dist/config.js.map +1 -1
  57. package/dist/context-window.d.ts +37 -1
  58. package/dist/context-window.d.ts.map +1 -1
  59. package/dist/context-window.js +202 -16
  60. package/dist/context-window.js.map +1 -1
  61. package/dist/live-activity.d.ts +3 -1
  62. package/dist/live-activity.d.ts.map +1 -1
  63. package/dist/live-activity.js.map +1 -1
  64. package/dist/local-chat-execution.d.ts +114 -0
  65. package/dist/local-chat-execution.d.ts.map +1 -0
  66. package/dist/local-chat-execution.js +349 -0
  67. package/dist/local-chat-execution.js.map +1 -0
  68. package/dist/local-cli-pty-manager.d.ts +138 -3
  69. package/dist/local-cli-pty-manager.d.ts.map +1 -1
  70. package/dist/local-cli-pty-manager.js +1415 -111
  71. package/dist/local-cli-pty-manager.js.map +1 -1
  72. package/dist/local-conversation-gateway.d.ts +110 -0
  73. package/dist/local-conversation-gateway.d.ts.map +1 -0
  74. package/dist/local-conversation-gateway.js +175 -0
  75. package/dist/local-conversation-gateway.js.map +1 -0
  76. package/dist/local-data.d.ts +235 -5
  77. package/dist/local-data.d.ts.map +1 -1
  78. package/dist/local-data.js +1066 -87
  79. package/dist/local-data.js.map +1 -1
  80. package/dist/local-db.d.ts +6 -0
  81. package/dist/local-db.d.ts.map +1 -1
  82. package/dist/local-db.js +376 -4
  83. package/dist/local-db.js.map +1 -1
  84. package/dist/local-funnel.d.ts.map +1 -1
  85. package/dist/local-funnel.js +6 -5
  86. package/dist/local-funnel.js.map +1 -1
  87. package/dist/local-server.d.ts +30 -0
  88. package/dist/local-server.d.ts.map +1 -1
  89. package/dist/local-server.js +2898 -319
  90. package/dist/local-server.js.map +1 -1
  91. package/dist/managed-process-registry.d.ts +59 -0
  92. package/dist/managed-process-registry.d.ts.map +1 -0
  93. package/dist/managed-process-registry.js +390 -0
  94. package/dist/managed-process-registry.js.map +1 -0
  95. package/dist/mcp/claude-config-writer.d.ts +5 -5
  96. package/dist/mcp/claude-config-writer.d.ts.map +1 -1
  97. package/dist/mcp/claude-config-writer.js +19 -11
  98. package/dist/mcp/claude-config-writer.js.map +1 -1
  99. package/dist/mcp/index.d.ts +4 -2
  100. package/dist/mcp/index.d.ts.map +1 -1
  101. package/dist/mcp/index.js.map +1 -1
  102. package/dist/mcp/sync-cli-config.d.ts +42 -4
  103. package/dist/mcp/sync-cli-config.d.ts.map +1 -1
  104. package/dist/mcp/sync-cli-config.js +497 -17
  105. package/dist/mcp/sync-cli-config.js.map +1 -1
  106. package/dist/message-loop.d.ts.map +1 -1
  107. package/dist/message-loop.js +43 -1
  108. package/dist/message-loop.js.map +1 -1
  109. package/dist/mqtt-client.d.ts +34 -0
  110. package/dist/mqtt-client.d.ts.map +1 -1
  111. package/dist/mqtt-client.js +270 -45
  112. package/dist/mqtt-client.js.map +1 -1
  113. package/dist/mqtt-data-relay.d.ts +44 -0
  114. package/dist/mqtt-data-relay.d.ts.map +1 -0
  115. package/dist/mqtt-data-relay.js +106 -0
  116. package/dist/mqtt-data-relay.js.map +1 -0
  117. package/dist/orchestration/capabilities.d.ts +13 -0
  118. package/dist/orchestration/capabilities.d.ts.map +1 -0
  119. package/dist/orchestration/capabilities.js +152 -0
  120. package/dist/orchestration/capabilities.js.map +1 -0
  121. package/dist/orchestration/dispatch-executor.d.ts +83 -0
  122. package/dist/orchestration/dispatch-executor.d.ts.map +1 -0
  123. package/dist/orchestration/dispatch-executor.js +266 -0
  124. package/dist/orchestration/dispatch-executor.js.map +1 -0
  125. package/dist/orchestration/dispatch-hint.d.ts +134 -0
  126. package/dist/orchestration/dispatch-hint.d.ts.map +1 -0
  127. package/dist/orchestration/dispatch-hint.js +247 -0
  128. package/dist/orchestration/dispatch-hint.js.map +1 -0
  129. package/dist/orchestration/dispatch-runner.d.ts +106 -0
  130. package/dist/orchestration/dispatch-runner.d.ts.map +1 -0
  131. package/dist/orchestration/dispatch-runner.js +604 -0
  132. package/dist/orchestration/dispatch-runner.js.map +1 -0
  133. package/dist/orchestration/dispatch-tools.d.ts +167 -0
  134. package/dist/orchestration/dispatch-tools.d.ts.map +1 -0
  135. package/dist/orchestration/dispatch-tools.js +328 -0
  136. package/dist/orchestration/dispatch-tools.js.map +1 -0
  137. package/dist/orchestration/front-door-policy.d.ts +35 -10
  138. package/dist/orchestration/front-door-policy.d.ts.map +1 -1
  139. package/dist/orchestration/front-door-policy.js +30 -267
  140. package/dist/orchestration/front-door-policy.js.map +1 -1
  141. package/dist/orchestration/orchestrator-dispatch-prompt.d.ts +43 -0
  142. package/dist/orchestration/orchestrator-dispatch-prompt.d.ts.map +1 -0
  143. package/dist/orchestration/orchestrator-dispatch-prompt.js +267 -0
  144. package/dist/orchestration/orchestrator-dispatch-prompt.js.map +1 -0
  145. package/dist/orchestration/orchestrator-operating-prompt.d.ts +14 -0
  146. package/dist/orchestration/orchestrator-operating-prompt.d.ts.map +1 -1
  147. package/dist/orchestration/orchestrator-operating-prompt.js +157 -31
  148. package/dist/orchestration/orchestrator-operating-prompt.js.map +1 -1
  149. package/dist/orchestration/plan-import.d.ts +39 -0
  150. package/dist/orchestration/plan-import.d.ts.map +1 -0
  151. package/dist/orchestration/plan-import.js +547 -0
  152. package/dist/orchestration/plan-import.js.map +1 -0
  153. package/dist/orchestration/worker-operating-prompt.d.ts +2 -0
  154. package/dist/orchestration/worker-operating-prompt.d.ts.map +1 -1
  155. package/dist/orchestration/worker-operating-prompt.js +36 -46
  156. package/dist/orchestration/worker-operating-prompt.js.map +1 -1
  157. package/dist/orchestrator.d.ts +195 -3
  158. package/dist/orchestrator.d.ts.map +1 -1
  159. package/dist/orchestrator.js +1970 -432
  160. package/dist/orchestrator.js.map +1 -1
  161. package/dist/providers/anthropic.d.ts.map +1 -1
  162. package/dist/providers/anthropic.js +8 -4
  163. package/dist/providers/anthropic.js.map +1 -1
  164. package/dist/providers/claude-cli.d.ts.map +1 -1
  165. package/dist/providers/claude-cli.js +28 -3
  166. package/dist/providers/claude-cli.js.map +1 -1
  167. package/dist/providers/codex-cli.d.ts +10 -6
  168. package/dist/providers/codex-cli.d.ts.map +1 -1
  169. package/dist/providers/codex-cli.js +190 -17
  170. package/dist/providers/codex-cli.js.map +1 -1
  171. package/dist/providers/google.d.ts.map +1 -1
  172. package/dist/providers/google.js +15 -5
  173. package/dist/providers/google.js.map +1 -1
  174. package/dist/providers/index.d.ts +15 -1
  175. package/dist/providers/index.d.ts.map +1 -1
  176. package/dist/providers/index.js.map +1 -1
  177. package/dist/providers/openai.d.ts +1 -1
  178. package/dist/providers/openai.d.ts.map +1 -1
  179. package/dist/providers/openai.js +13 -5
  180. package/dist/providers/openai.js.map +1 -1
  181. package/dist/server-adapter.d.ts +8 -0
  182. package/dist/server-adapter.d.ts.map +1 -1
  183. package/dist/server-adapter.js +7 -0
  184. package/dist/server-adapter.js.map +1 -1
  185. package/dist/service-mode.d.ts +1 -1
  186. package/dist/service-mode.d.ts.map +1 -1
  187. package/dist/service-mode.js +64 -1
  188. package/dist/service-mode.js.map +1 -1
  189. package/dist/service-setup-only.d.ts +8 -0
  190. package/dist/service-setup-only.d.ts.map +1 -0
  191. package/dist/service-setup-only.js +37 -0
  192. package/dist/service-setup-only.js.map +1 -0
  193. package/dist/slash-commands.d.ts +21 -0
  194. package/dist/slash-commands.d.ts.map +1 -0
  195. package/dist/slash-commands.js +99 -0
  196. package/dist/slash-commands.js.map +1 -0
  197. package/dist/subagent/index.d.ts +4 -2
  198. package/dist/subagent/index.d.ts.map +1 -1
  199. package/dist/subagent/index.js.map +1 -1
  200. package/dist/summarization-pipeline.d.ts.map +1 -1
  201. package/dist/summarization-pipeline.js +1 -9
  202. package/dist/summarization-pipeline.js.map +1 -1
  203. package/dist/token-counter.d.ts.map +1 -1
  204. package/dist/token-counter.js +11 -4
  205. package/dist/token-counter.js.map +1 -1
  206. package/dist/tool-filter.d.ts.map +1 -1
  207. package/dist/tool-filter.js +10 -6
  208. package/dist/tool-filter.js.map +1 -1
  209. package/dist/tools/admin-tools.d.ts.map +1 -1
  210. package/dist/tools/admin-tools.js +13 -4
  211. package/dist/tools/admin-tools.js.map +1 -1
  212. package/dist/tools/run-command.d.ts.map +1 -1
  213. package/dist/tools/run-command.js +5 -1
  214. package/dist/tools/run-command.js.map +1 -1
  215. package/dist/tools/search-conversation-history.d.ts.map +1 -1
  216. package/dist/tools/search-conversation-history.js +12 -2
  217. package/dist/tools/search-conversation-history.js.map +1 -1
  218. package/dist/tools/todo-tasks.d.ts.map +1 -1
  219. package/dist/tools/todo-tasks.js +77 -5
  220. package/dist/tools/todo-tasks.js.map +1 -1
  221. package/dist/usage-log.d.ts +62 -0
  222. package/dist/usage-log.d.ts.map +1 -0
  223. package/dist/usage-log.js +98 -0
  224. package/dist/usage-log.js.map +1 -0
  225. package/dist/wizard-state.d.ts +13 -0
  226. package/dist/wizard-state.d.ts.map +1 -1
  227. package/dist/wizard-state.js +61 -3
  228. package/dist/wizard-state.js.map +1 -1
  229. package/dist/wizard-support.d.ts.map +1 -1
  230. package/dist/wizard-support.js +27 -1
  231. package/dist/wizard-support.js.map +1 -1
  232. package/dist/workflow-engine.d.ts +40 -1
  233. package/dist/workflow-engine.d.ts.map +1 -1
  234. package/dist/workflow-engine.js +753 -93
  235. package/dist/workflow-engine.js.map +1 -1
  236. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mqtt-data-relay.js","sourceRoot":"","sources":["../src/mqtt-data-relay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface OrchestrationCapability {
2
+ id: string;
3
+ label: string;
4
+ matches: RegExp[];
5
+ instruction: string;
6
+ }
7
+ export declare const ORCHESTRATION_CAPABILITIES: OrchestrationCapability[];
8
+ export declare function getCapabilityById(id: string | null | undefined): OrchestrationCapability | null;
9
+ export declare function matchCapabilityIds(rolePriorities: string[] | null | undefined): string[];
10
+ export declare function findRoleLabelForCapability(rolePriorities: string[] | null | undefined, capabilityId: string | null | undefined): string | null;
11
+ export declare function buildCapabilityInstructionBlock(rolePriorities: string[] | null | undefined): string;
12
+ export declare function inferTaskTypeFromCapabilities(explicitRole: string | null | undefined, rolePriorities: string[] | null | undefined, fallback?: string): string;
13
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/orchestration/capabilities.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,0BAA0B,EAAE,uBAAuB,EA2E/D,CAAC;AAMF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,uBAAuB,GAAG,IAAI,CAM/F;AAED,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAkBxF;AAED,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAC3C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,MAAM,GAAG,IAAI,CAYf;AAED,wBAAgB,+BAA+B,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CASnG;AAED,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAC3C,QAAQ,SAAW,GAClB,MAAM,CAeR"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ORCHESTRATION_CAPABILITIES = void 0;
4
+ exports.getCapabilityById = getCapabilityById;
5
+ exports.matchCapabilityIds = matchCapabilityIds;
6
+ exports.findRoleLabelForCapability = findRoleLabelForCapability;
7
+ exports.buildCapabilityInstructionBlock = buildCapabilityInstructionBlock;
8
+ exports.inferTaskTypeFromCapabilities = inferTaskTypeFromCapabilities;
9
+ exports.ORCHESTRATION_CAPABILITIES = [
10
+ {
11
+ id: 'prompt_building',
12
+ label: 'Prompt Building',
13
+ matches: [
14
+ /\bprompt\s*(builder|building|writer|engineering|generation)\b/i,
15
+ /\b(user|worker|handoff|system)\s+prompt\b/i,
16
+ /\b(prompt|handoff)\s+for\s+(?:the\s+)?(?:next\s+)?worker\b/i,
17
+ ],
18
+ instruction: 'Prompt-building work: create a better prompt or handoff for the next worker. Include the target file/artifact, current issue, exact desired behavior, constraints, and acceptance checks. If another worker is next, put the improved prompt in complete_worker_task.handoff_prompt; do not create a separate TODO with add_task.',
19
+ },
20
+ {
21
+ id: 'research',
22
+ label: 'Research',
23
+ matches: [/\b(research|brainstorm|brainstorming|planning|planner|analysis|analyst|investigate)\b/i],
24
+ instruction: 'Research/planning work: gather the relevant facts and produce a concise plan or brief for the next worker. Include assumptions, key constraints, and exact artifact/file references when known.',
25
+ },
26
+ {
27
+ id: 'design',
28
+ label: 'Design / UI UX',
29
+ matches: [/\b(design|ui\/?ux|ux|visual|layout|product design)\b/i],
30
+ instruction: 'Design/UI work: be specific about visual hierarchy, spacing, typography, interaction states, and what should change. Preserve requested scope and do not rewrite unrelated parts.',
31
+ },
32
+ {
33
+ id: 'coding',
34
+ label: 'Coding',
35
+ matches: [/\b(code|coding|build|builder|implement|implementation|developer|engineer|create|write|edit|update|modify|fix)\b/i],
36
+ instruction: 'Coding work: make the concrete file/code changes requested. Prefer the current task and previous handoff over guessing from broad conversation history. Report changed artifact paths in complete_worker_task.',
37
+ },
38
+ {
39
+ id: 'qa',
40
+ label: 'QA / Review',
41
+ matches: [/\b(qa|review|reviewer|test|testing|audit)\b/i],
42
+ instruction: 'QA/review work: inspect the delivered artifact against the assigned task and available original request. Use qa_result="pass" only when the checks pass; use qa_result="fail" with concise findings when defects remain.',
43
+ },
44
+ {
45
+ id: 'verify',
46
+ label: 'Verification',
47
+ matches: [/\b(verify|verification|validate|validation)\b/i],
48
+ instruction: 'Verification work: compare the final artifact against the original user request and acceptance criteria. Focus on requirement coverage, not style preferences unless style was part of the request.',
49
+ },
50
+ {
51
+ id: 'deployment',
52
+ label: 'Deployment',
53
+ matches: [/\b(deploy|deployment|release|ship|publish|production)\b/i],
54
+ instruction: 'Deployment/release work: follow the project release checklist exactly. Build and verify locally before publishing, and report concrete version, artifact, and deploy status.',
55
+ },
56
+ {
57
+ id: 'data',
58
+ label: 'Data / DB',
59
+ matches: [/\b(data|database|db|sqlite|migration|schema)\b/i],
60
+ instruction: 'Data/DB work: preserve user data unless explicitly told otherwise. Prefer additive migrations and document any cleanup, migration, or destructive operation clearly.',
61
+ },
62
+ {
63
+ id: 'debugging',
64
+ label: 'Debugging',
65
+ matches: [/\b(debug|debugging|troubleshoot|diagnose|root cause|fixer)\b/i],
66
+ instruction: 'Debugging work: identify the concrete root cause before changing behavior. State what was checked and make the smallest fix that addresses the observed failure.',
67
+ },
68
+ {
69
+ id: 'documentation',
70
+ label: 'Documentation',
71
+ matches: [/\b(documentation|docs|readme|release notes|writeup|summary)\b/i],
72
+ instruction: 'Documentation work: write concise user-facing text with accurate file/version references. Do not invent completed work that is not present in the task or artifacts.',
73
+ },
74
+ ];
75
+ function normalizeCapabilityText(value) {
76
+ return String(value || '').trim().replace(/\s+/g, ' ').toLowerCase();
77
+ }
78
+ function getCapabilityById(id) {
79
+ const normalized = normalizeCapabilityText(id);
80
+ return exports.ORCHESTRATION_CAPABILITIES.find((capability) => normalizeCapabilityText(capability.id) === normalized
81
+ || normalizeCapabilityText(capability.label) === normalized) || null;
82
+ }
83
+ function matchCapabilityIds(rolePriorities) {
84
+ const roles = Array.isArray(rolePriorities) ? rolePriorities : [];
85
+ const matched = [];
86
+ for (const role of roles) {
87
+ const normalized = normalizeCapabilityText(role);
88
+ if (!normalized)
89
+ continue;
90
+ for (const capability of exports.ORCHESTRATION_CAPABILITIES) {
91
+ if (matched.includes(capability.id))
92
+ continue;
93
+ if (normalizeCapabilityText(capability.id) === normalized
94
+ || normalizeCapabilityText(capability.label) === normalized
95
+ || capability.matches.some((pattern) => pattern.test(role))) {
96
+ matched.push(capability.id);
97
+ }
98
+ }
99
+ }
100
+ return matched;
101
+ }
102
+ function findRoleLabelForCapability(rolePriorities, capabilityId) {
103
+ const capability = getCapabilityById(capabilityId);
104
+ if (!capability)
105
+ return null;
106
+ const roles = Array.isArray(rolePriorities) ? rolePriorities : [];
107
+ const exact = roles.find((role) => {
108
+ const normalized = normalizeCapabilityText(role);
109
+ return normalized === normalizeCapabilityText(capability.id)
110
+ || normalized === normalizeCapabilityText(capability.label);
111
+ });
112
+ if (exact?.trim())
113
+ return exact.trim();
114
+ const matched = roles.find((role) => matchCapabilityIds([role]).includes(capability.id));
115
+ return matched?.trim() || capability.label;
116
+ }
117
+ function buildCapabilityInstructionBlock(rolePriorities) {
118
+ const ids = matchCapabilityIds(rolePriorities);
119
+ if (ids.length === 0)
120
+ return '';
121
+ const byId = new Map(exports.ORCHESTRATION_CAPABILITIES.map((capability) => [capability.id, capability]));
122
+ const lines = ids
123
+ .map((id) => byId.get(id)?.instruction)
124
+ .filter((line) => Boolean(line));
125
+ if (lines.length === 0)
126
+ return '';
127
+ return ['CAPABILITY-SPECIFIC INSTRUCTIONS', ...lines.map((line) => `- ${line}`)].join('\n');
128
+ }
129
+ function inferTaskTypeFromCapabilities(explicitRole, rolePriorities, fallback = 'coding') {
130
+ const roles = [String(explicitRole || ''), ...(Array.isArray(rolePriorities) ? rolePriorities : [])]
131
+ .map((role) => role.trim())
132
+ .filter(Boolean);
133
+ for (const role of roles) {
134
+ const ids = matchCapabilityIds([role]);
135
+ if (ids.includes('qa'))
136
+ return 'qa';
137
+ if (ids.includes('verify'))
138
+ return 'verify';
139
+ if (ids.includes('prompt_building'))
140
+ return 'research';
141
+ if (ids.includes('research'))
142
+ return 'research';
143
+ if (ids.includes('design'))
144
+ return 'research';
145
+ if (ids.includes('deployment'))
146
+ return 'deploy';
147
+ if (ids.includes('coding'))
148
+ return 'coding';
149
+ }
150
+ return fallback;
151
+ }
152
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/orchestration/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Orchestration dispatch executor (Phase A — dead code).
3
+ *
4
+ * Takes validated dispatch tool-call arguments (see dispatch-tools.ts) and
5
+ * performs the side effects: creating TODOs in the local DB, or returning
6
+ * the reply_directly text to the caller.
7
+ *
8
+ * Not yet wired to the live orchestrator turn loop — that's the Step-5
9
+ * wire-up work gated behind the feature flag from Decision 6.
10
+ *
11
+ * KEY BEHAVIORS (per orchestration-plan.txt):
12
+ * - reply_directly: no side effects, just returns the text.
13
+ * - delegate_single: creates exactly one TODO owned by the target bot.
14
+ * * bot_name wins over role when both provided.
15
+ * * role is stored on the TODO as informational metadata.
16
+ * * When only role is given, resolveBotForRole() picks the bot.
17
+ * - create_workflow: creates N TODOs in order, linking each to the next
18
+ * via next_worker_bot_id / next_worker_name / next_worker_role so
19
+ * the existing workflow-engine plumbing picks up the chain.
20
+ * * handoff_to_next is appended to the NEXT step's task prompt as
21
+ * the "[PREVIOUS WORKER HANDOFF]" section the worker-operating-
22
+ * prompt already supports.
23
+ *
24
+ * All executor functions return a structured result describing what was
25
+ * created. Callers (the orchestrator turn loop, once wired) use the result
26
+ * to surface TODO IDs back to the user and to start workflow execution.
27
+ */
28
+ import * as data from '../local-data';
29
+ import type { ReplyDirectlyArgs, DelegateSingleArgs, CreateWorkflowArgs, RoleResolutionContext } from './dispatch-tools';
30
+ export interface ExecuteReplyDirectlyResult {
31
+ kind: 'reply_directly';
32
+ text: string;
33
+ }
34
+ export interface ExecuteDelegateSingleResult {
35
+ kind: 'delegate_single';
36
+ task: data.TodoTaskRow;
37
+ assignedBot: data.AgentProfileRow;
38
+ }
39
+ export interface ExecuteCreateWorkflowResult {
40
+ kind: 'create_workflow';
41
+ tasks: data.TodoTaskRow[];
42
+ assignedBots: data.AgentProfileRow[];
43
+ }
44
+ export type ExecuteDispatchResult = ExecuteReplyDirectlyResult | ExecuteDelegateSingleResult | ExecuteCreateWorkflowResult | {
45
+ kind: 'error';
46
+ error: string;
47
+ };
48
+ export interface DispatchActor {
49
+ name: string;
50
+ actorId: string;
51
+ }
52
+ export interface DispatchExecutionContext {
53
+ conversationId: string;
54
+ projectId: string | null;
55
+ /** Runtime actor coordinating this turn. This can be a bot-backed orchestrator or Clerk. */
56
+ orchestratorActor: DispatchActor;
57
+ /** Role resolution context (active bots + who's busy) for role-based routing. */
58
+ resolution: RoleResolutionContext;
59
+ /**
60
+ * The raw user prompt for this turn. Used to enforce the
61
+ * position-aware include_user_prompt policy uniformly across both
62
+ * the legacy workflow-template path and the tool-dispatch path:
63
+ * the first worker in a chain always receives the user prompt
64
+ * appended to task_instructions; downstream workers receive it
65
+ * only if their orchestration_include_user_prompt flag is set.
66
+ * (Closes Codex QA 2026-04-19 caveat on 5b43a736.)
67
+ */
68
+ userPrompt: string;
69
+ /** Recent conversation summary/turns for the first worker in a chain. */
70
+ recentContext?: string | null;
71
+ /** Optional label for imported/explicit workflow sources. */
72
+ workflowSourceLabel?: string | null;
73
+ }
74
+ export declare function executeReplyDirectly(args: ReplyDirectlyArgs): ExecuteReplyDirectlyResult;
75
+ export declare function executeDelegateSingle(args: DelegateSingleArgs, ctx: DispatchExecutionContext): ExecuteDelegateSingleResult | {
76
+ kind: 'error';
77
+ error: string;
78
+ };
79
+ export declare function executeCreateWorkflow(args: CreateWorkflowArgs, ctx: DispatchExecutionContext): ExecuteCreateWorkflowResult | {
80
+ kind: 'error';
81
+ error: string;
82
+ };
83
+ //# sourceMappingURL=dispatch-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-executor.d.ts","sourceRoot":"","sources":["../../src/orchestration/dispatch-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAQ1B,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;IACvB,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,qBAAqB,GAC7B,0BAA0B,GAC1B,2BAA2B,GAC3B,2BAA2B,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAMrC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4FAA4F;IAC5F,iBAAiB,EAAE,aAAa,CAAC;IACjC,iFAAiF;IACjF,UAAU,EAAE,qBAAqB,CAAC;IAClC;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAgFD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,0BAA0B,CAExF;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,wBAAwB,GAC5B,2BAA2B,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAsBhE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,wBAAwB,GAC5B,2BAA2B,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA2DhE"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.executeReplyDirectly = executeReplyDirectly;
37
+ exports.executeDelegateSingle = executeDelegateSingle;
38
+ exports.executeCreateWorkflow = executeCreateWorkflow;
39
+ /**
40
+ * Orchestration dispatch executor (Phase A — dead code).
41
+ *
42
+ * Takes validated dispatch tool-call arguments (see dispatch-tools.ts) and
43
+ * performs the side effects: creating TODOs in the local DB, or returning
44
+ * the reply_directly text to the caller.
45
+ *
46
+ * Not yet wired to the live orchestrator turn loop — that's the Step-5
47
+ * wire-up work gated behind the feature flag from Decision 6.
48
+ *
49
+ * KEY BEHAVIORS (per orchestration-plan.txt):
50
+ * - reply_directly: no side effects, just returns the text.
51
+ * - delegate_single: creates exactly one TODO owned by the target bot.
52
+ * * bot_name wins over role when both provided.
53
+ * * role is stored on the TODO as informational metadata.
54
+ * * When only role is given, resolveBotForRole() picks the bot.
55
+ * - create_workflow: creates N TODOs in order, linking each to the next
56
+ * via next_worker_bot_id / next_worker_name / next_worker_role so
57
+ * the existing workflow-engine plumbing picks up the chain.
58
+ * * handoff_to_next is appended to the NEXT step's task prompt as
59
+ * the "[PREVIOUS WORKER HANDOFF]" section the worker-operating-
60
+ * prompt already supports.
61
+ *
62
+ * All executor functions return a structured result describing what was
63
+ * created. Callers (the orchestrator turn loop, once wired) use the result
64
+ * to surface TODO IDs back to the user and to start workflow execution.
65
+ */
66
+ const data = __importStar(require("../local-data"));
67
+ const dispatch_tools_1 = require("./dispatch-tools");
68
+ const capabilities_1 = require("./capabilities");
69
+ /**
70
+ * Compose a worker task prompt from the orchestrator's task_instructions
71
+ * and the original user prompt, following the same position-aware rule
72
+ * enforced by the legacy path's shouldIncludeOriginalPromptForWorker:
73
+ * - If the worker is first in the chain: always include.
74
+ * - Otherwise: include only if the worker's
75
+ * orchestration_include_user_prompt flag is set.
76
+ * The appended block uses the same "Original user request (reference
77
+ * only):" header the legacy path uses, so worker prompts look the
78
+ * same regardless of which dispatch path created them.
79
+ */
80
+ function composeTaskPrompt(instructions, userPrompt, worker, isFirstInChain, recentContext, nextWorker) {
81
+ const shouldAppend = isFirstInChain || Number(worker.orchestration_include_user_prompt) === 1;
82
+ const parts = [['YOUR TASK', instructions.trim()].filter(Boolean).join('\n')];
83
+ if (nextWorker?.name) {
84
+ const roleLabel = nextWorker.role ? ` (${nextWorker.role})` : '';
85
+ parts.push([
86
+ 'NEXT WORKER',
87
+ `After you complete this task, ${nextWorker.name}${roleLabel} receives your handoff.`,
88
+ ].join('\n'));
89
+ parts.push([
90
+ 'HANDOFF REQUIREMENTS',
91
+ 'When calling complete_worker_task, write handoff_prompt as the next worker prompt. Include the goal, artifact/path, current issue or result, exact scope, constraints, and acceptance checks. Do not create a new TODO unless the orchestrator explicitly asked you to.',
92
+ ].join('\n'));
93
+ }
94
+ if (isFirstInChain && recentContext?.trim()) {
95
+ parts.push(`Recent conversation context:\n${recentContext.trim()}`);
96
+ }
97
+ if (shouldAppend && userPrompt.trim()) {
98
+ parts.push(`Original user request:\n${userPrompt}`);
99
+ }
100
+ return parts.filter(Boolean).join('\n\n');
101
+ }
102
+ // -----------------------------------------------------------------------------
103
+ // Bot lookup helpers
104
+ // -----------------------------------------------------------------------------
105
+ function findBotByName(name, bots) {
106
+ const needle = name.trim().toLowerCase();
107
+ if (!needle)
108
+ return null;
109
+ for (const bot of bots) {
110
+ if (bot.name.trim().toLowerCase() === needle)
111
+ return bot;
112
+ }
113
+ return null;
114
+ }
115
+ function resolveStepBot(args, ctx) {
116
+ const hasBot = typeof args.bot_name === 'string' && args.bot_name.trim().length > 0;
117
+ const hasRole = typeof args.role === 'string' && args.role.trim().length > 0;
118
+ if (hasBot) {
119
+ const bot = findBotByName(args.bot_name, ctx.resolution.activeBots);
120
+ if (!bot)
121
+ return { ok: false, error: `bot_name "${args.bot_name}" not found in conversation roster.` };
122
+ return { ok: true, bot };
123
+ }
124
+ if (hasRole) {
125
+ const bot = (0, dispatch_tools_1.resolveBotForRole)(args.role, ctx.resolution);
126
+ if (!bot)
127
+ return { ok: false, error: `no active bot has role "${args.role}" in its priority list.` };
128
+ return { ok: true, bot };
129
+ }
130
+ return { ok: false, error: 'neither bot_name nor role provided (this should have been caught by validation).' };
131
+ }
132
+ // -----------------------------------------------------------------------------
133
+ // Executors
134
+ // -----------------------------------------------------------------------------
135
+ function executeReplyDirectly(args) {
136
+ return { kind: 'reply_directly', text: args.text };
137
+ }
138
+ function executeDelegateSingle(args, ctx) {
139
+ const resolved = resolveStepBot(args, ctx);
140
+ if (!resolved.ok)
141
+ return { kind: 'error', error: resolved.error };
142
+ const bot = resolved.bot;
143
+ // A single delegate has no predecessor, so the worker is first in
144
+ // chain and always receives the original user prompt per the policy.
145
+ const composedPrompt = composeTaskPrompt(args.task_instructions, ctx.userPrompt, bot, true, ctx.recentContext);
146
+ const task = data.addTodoTask({
147
+ projectId: ctx.projectId,
148
+ conversationId: ctx.conversationId,
149
+ title: buildTaskTitle(bot.name, args.role, args.task_instructions, args.title),
150
+ details: `Task dispatched by orchestrator ${ctx.orchestratorActor.name}.`,
151
+ participants: [bot.name],
152
+ successCriteria: args.success_criteria || deriveDefaultSuccessCriteria(args.task_instructions),
153
+ ownerBotId: bot.id,
154
+ ownerName: bot.name,
155
+ taskType: inferTaskType(args.role, bot),
156
+ profileName: bot.name,
157
+ taskPrompt: composedPrompt,
158
+ actor: { actorType: 'orchestrator', actorId: ctx.orchestratorActor.actorId },
159
+ });
160
+ return { kind: 'delegate_single', task, assignedBot: bot };
161
+ }
162
+ function executeCreateWorkflow(args, ctx) {
163
+ // Resolve every step's bot up front. If any fail to resolve, reject the whole
164
+ // workflow before creating any TODOs. Avoids partial state.
165
+ const resolvedBots = [];
166
+ for (let i = 0; i < args.steps.length; i += 1) {
167
+ const step = args.steps[i];
168
+ const r = resolveStepBot(step, ctx);
169
+ if (!r.ok)
170
+ return { kind: 'error', error: `Step ${i + 1}: ${r.error}` };
171
+ resolvedBots.push(r.bot);
172
+ }
173
+ const tasks = [];
174
+ for (let i = 0; i < args.steps.length; i += 1) {
175
+ const step = args.steps[i];
176
+ const owner = resolvedBots[i];
177
+ const next = resolvedBots[i + 1] || null;
178
+ const nextStep = args.steps[i + 1] || null;
179
+ let taskPrompt = step.task_instructions;
180
+ // Weave prior step's handoff_to_next into THIS step's task prompt so the
181
+ // worker sees it. Uses the "[PREVIOUS WORKER HANDOFF]" header that
182
+ // worker-operating-prompt.ts already recognizes.
183
+ const priorStep = args.steps[i - 1];
184
+ if (priorStep?.handoff_to_next && priorStep.handoff_to_next.trim()) {
185
+ taskPrompt = `[PREVIOUS WORKER HANDOFF]\n${priorStep.handoff_to_next.trim()}\n\n${taskPrompt}`;
186
+ }
187
+ // Position-aware include_user_prompt policy, same as the legacy
188
+ // workflow-template path: step 0 is first in chain → always gets
189
+ // the user prompt; steps 1..N-1 honor the per-bot flag.
190
+ const isFirstInChain = i === 0;
191
+ taskPrompt = composeTaskPrompt(taskPrompt, ctx.userPrompt, owner, isFirstInChain, ctx.recentContext, next ? { name: next.name, role: nextStep?.role || data.getAgentOrchestrationRoleLabel(next) } : null);
192
+ const task = data.addTodoTask({
193
+ projectId: ctx.projectId,
194
+ conversationId: ctx.conversationId,
195
+ title: buildTaskTitle(owner.name, step.role, step.task_instructions, step.title),
196
+ details: ctx.workflowSourceLabel
197
+ ? `${ctx.workflowSourceLabel} step ${i + 1} of ${args.steps.length} prepared by ${ctx.orchestratorActor.name}.`
198
+ : `Workflow step ${i + 1} of ${args.steps.length} dispatched by orchestrator ${ctx.orchestratorActor.name}.`,
199
+ participants: [owner.name],
200
+ successCriteria: step.success_criteria || deriveDefaultSuccessCriteria(step.task_instructions),
201
+ ownerBotId: owner.id,
202
+ ownerName: owner.name,
203
+ taskType: inferTaskType(step.role, owner),
204
+ profileName: owner.name,
205
+ nextWorkerBotId: next?.id || null,
206
+ nextWorkerName: next?.name || null,
207
+ nextWorkerRole: next ? (nextStep?.role || data.getAgentOrchestrationRoleLabel(next)) : null,
208
+ taskPrompt,
209
+ actor: { actorType: 'orchestrator', actorId: ctx.orchestratorActor.actorId },
210
+ });
211
+ tasks.push(task);
212
+ }
213
+ return { kind: 'create_workflow', tasks, assignedBots: resolvedBots };
214
+ }
215
+ // -----------------------------------------------------------------------------
216
+ // Small helpers
217
+ // -----------------------------------------------------------------------------
218
+ function buildTaskTitle(botName, role, taskInstructions, explicitTitle) {
219
+ const rawTitle = String(explicitTitle || '').trim();
220
+ const summary = (rawTitle || taskInstructions).trim().replace(/\s+/g, ' ').slice(0, 96);
221
+ const title = summary || 'Assigned task';
222
+ if (title.toLowerCase().startsWith(`${botName.toLowerCase()}:`))
223
+ return title;
224
+ const roleLabel = !rawTitle && role && role.trim() ? ` (${role.trim()})` : '';
225
+ return `${botName}${roleLabel}: ${title}`;
226
+ }
227
+ /**
228
+ * Derive a default success criteria when the LLM doesn't provide one.
229
+ * The DB's orchestrator path requires a non-empty successCriteria, so we
230
+ * synthesize a short version from the task instructions rather than
231
+ * forcing the orchestrator LLM to articulate criteria for trivial tasks.
232
+ */
233
+ function deriveDefaultSuccessCriteria(taskInstructions) {
234
+ const trimmed = taskInstructions.trim().replace(/\s+/g, ' ');
235
+ const brief = trimmed.length > 200 ? `${trimmed.slice(0, 197)}...` : trimmed;
236
+ return `Task completed as specified: ${brief}`;
237
+ }
238
+ function inferTaskType(role, bot) {
239
+ const inferred = (0, capabilities_1.inferTaskTypeFromCapabilities)(role, data.getAgentRolePriorities(bot), 'coding');
240
+ if (inferred !== 'coding' || !role)
241
+ return inferred;
242
+ const fromRole = (role || '').trim().toLowerCase();
243
+ if (fromRole === 'qa' || fromRole === 'review')
244
+ return 'qa';
245
+ if (fromRole === 'research' || fromRole === 'brainstorm' || fromRole === 'planning')
246
+ return 'research';
247
+ if (fromRole === 'verify' || fromRole === 'verification')
248
+ return 'verify';
249
+ if (fromRole === 'deploy' || fromRole === 'deployment')
250
+ return 'deploy';
251
+ if (fromRole === 'coding' || fromRole === 'code')
252
+ return 'coding';
253
+ // Fall back to the bot's first priority role (normalized), else 'coding' as neutral default.
254
+ const primaries = data.getAgentRolePriorities(bot);
255
+ const primary = (primaries[0] || '').trim().toLowerCase();
256
+ if (primary === 'qa' || primary === 'review' || primary === 'quality assurance')
257
+ return 'qa';
258
+ if (primary === 'research' || primary === 'brainstorm' || primary === 'planning')
259
+ return 'research';
260
+ if (primary === 'verify' || primary === 'verification')
261
+ return 'verify';
262
+ if (primary === 'deploy' || primary === 'deployment')
263
+ return 'deploy';
264
+ return 'coding';
265
+ }
266
+ //# sourceMappingURL=dispatch-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-executor.js","sourceRoot":"","sources":["../../src/orchestration/dispatch-executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8KA,oDAEC;AAED,sDAyBC;AAED,sDA8DC;AA3QD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,oDAAsC;AAOtC,qDAAqD;AACrD,iDAA+D;AA6D/D;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CACxB,YAAoB,EACpB,UAAkB,EAClB,MAA4B,EAC5B,cAAuB,EACvB,aAA6B,EAC7B,UAA0D;IAE1D,MAAM,YAAY,GAChB,cAAc,IAAI,MAAM,CAAC,MAAM,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,IAAI,UAAU,EAAE,IAAI,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC;YACT,aAAa;YACb,iCAAiC,UAAU,CAAC,IAAI,GAAG,SAAS,yBAAyB;SACtF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC;YACT,sBAAsB;YACtB,yQAAyQ;SAC1Q,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,cAAc,IAAI,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,iCAAiC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,YAAY,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,SAAS,aAAa,CAAC,IAAY,EAAE,IAA4B;IAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CACrB,IAA0C,EAC1C,GAA6B;IAE7B,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7E,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,QAAS,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,IAAI,CAAC,QAAQ,qCAAqC,EAAE,CAAC;QACvG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,IAAA,kCAAiB,EAAC,IAAI,CAAC,IAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC;QACrG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kFAAkF,EAAE,CAAC;AAClH,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,SAAgB,oBAAoB,CAAC,IAAuB;IAC1D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACrD,CAAC;AAED,SAAgB,qBAAqB,CACnC,IAAwB,EACxB,GAA6B;IAE7B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IACzB,kEAAkE;IAClE,qEAAqE;IACrE,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/G,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC;QAC9E,OAAO,EAAE,mCAAmC,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG;QACzE,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB,eAAe,EAAE,IAAI,CAAC,gBAAgB,IAAI,4BAA4B,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC9F,UAAU,EAAE,GAAG,CAAC,EAAE;QAClB,SAAS,EAAE,GAAG,CAAC,IAAI;QACnB,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;QACvC,WAAW,EAAE,GAAG,CAAC,IAAI;QACrB,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE;KAC7E,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;AAC7D,CAAC;AAED,SAAgB,qBAAqB,CACnC,IAAwB,EACxB,GAA6B;IAE7B,8EAA8E;IAC9E,4DAA4D;IAC5D,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACxE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;QAC3C,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACxC,yEAAyE;QACzE,mEAAmE;QACnE,iDAAiD;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,SAAS,EAAE,eAAe,IAAI,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YACnE,UAAU,GAAG,8BAA8B,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,UAAU,EAAE,CAAC;QACjG,CAAC;QACD,gEAAgE;QAChE,iEAAiE;QACjE,wDAAwD;QACxD,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,UAAU,GAAG,iBAAiB,CAC5B,UAAU,EACV,GAAG,CAAC,UAAU,EACd,KAAK,EACL,cAAc,EACd,GAAG,CAAC,aAAa,EACjB,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CACrG,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC;YAChF,OAAO,EAAE,GAAG,CAAC,mBAAmB;gBAC9B,CAAC,CAAC,GAAG,GAAG,CAAC,mBAAmB,SAAS,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG;gBAC/G,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,+BAA+B,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG;YAC9G,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1B,eAAe,EAAE,IAAI,CAAC,gBAAgB,IAAI,4BAA4B,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC9F,UAAU,EAAE,KAAK,CAAC,EAAE;YACpB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YACzC,WAAW,EAAE,KAAK,CAAC,IAAI;YACvB,eAAe,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;YACjC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI;YAClC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3F,UAAU;YACV,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE;SAC7E,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACxE,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,SAAS,cAAc,CACrB,OAAe,EACf,IAAwB,EACxB,gBAAwB,EACxB,aAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,OAAO,IAAI,eAAe,CAAC;IACzC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,OAAO,GAAG,OAAO,GAAG,SAAS,KAAK,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,gBAAwB;IAC5D,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7E,OAAO,gCAAgC,KAAK,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,IAAwB,EAAE,GAAyB;IACxE,MAAM,QAAQ,GAAG,IAAA,4CAA6B,EAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjG,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IACpD,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5D,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACvG,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,cAAc;QAAE,OAAO,QAAQ,CAAC;IAC1E,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,YAAY;QAAE,OAAO,QAAQ,CAAC;IACxE,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IAClE,6FAA6F;IAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAC7F,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACpG,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,cAAc;QAAE,OAAO,QAAQ,CAAC;IACxE,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,QAAQ,CAAC;IACtE,OAAO,QAAQ,CAAC;AAClB,CAAC"}