@elizaos/plugin-task-coordinator 2.0.3-beta.2 → 2.0.3-beta.4

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 (176) hide show
  1. package/assets/hero.png +0 -0
  2. package/dist/AgentTabsSection.d.ts +16 -0
  3. package/dist/AgentTabsSection.d.ts.map +1 -0
  4. package/dist/AgentTabsSection.js +169 -0
  5. package/dist/AgentTabsSection.js.map +1 -0
  6. package/dist/CodingAgentControlChip.d.ts +2 -0
  7. package/dist/CodingAgentControlChip.d.ts.map +1 -0
  8. package/dist/CodingAgentControlChip.js +73 -0
  9. package/dist/CodingAgentControlChip.js.map +1 -0
  10. package/dist/CodingAgentSettingsSection.d.ts +2 -0
  11. package/dist/CodingAgentSettingsSection.d.ts.map +1 -0
  12. package/dist/CodingAgentSettingsSection.js +379 -0
  13. package/dist/CodingAgentSettingsSection.js.map +1 -0
  14. package/dist/CodingAgentTasksPanel.d.ts +4 -0
  15. package/dist/CodingAgentTasksPanel.d.ts.map +1 -0
  16. package/dist/CodingAgentTasksPanel.interact.d.ts +2 -0
  17. package/dist/CodingAgentTasksPanel.interact.d.ts.map +1 -0
  18. package/dist/CodingAgentTasksPanel.interact.js +46 -0
  19. package/dist/CodingAgentTasksPanel.interact.js.map +1 -0
  20. package/dist/CodingAgentTasksPanel.js +740 -0
  21. package/dist/CodingAgentTasksPanel.js.map +1 -0
  22. package/dist/GitHubConnectionCard.d.ts +2 -0
  23. package/dist/GitHubConnectionCard.d.ts.map +1 -0
  24. package/dist/GitHubConnectionCard.js +172 -0
  25. package/dist/GitHubConnectionCard.js.map +1 -0
  26. package/dist/GlobalPrefsSection.d.ts +10 -0
  27. package/dist/GlobalPrefsSection.d.ts.map +1 -0
  28. package/dist/GlobalPrefsSection.js +166 -0
  29. package/dist/GlobalPrefsSection.js.map +1 -0
  30. package/dist/LlmProviderSection.d.ts +10 -0
  31. package/dist/LlmProviderSection.d.ts.map +1 -0
  32. package/dist/LlmProviderSection.js +161 -0
  33. package/dist/LlmProviderSection.js.map +1 -0
  34. package/dist/ModelConfigSection.d.ts +15 -0
  35. package/dist/ModelConfigSection.d.ts.map +1 -0
  36. package/dist/ModelConfigSection.js +86 -0
  37. package/dist/ModelConfigSection.js.map +1 -0
  38. package/dist/OrchestratorView.d.ts +20 -0
  39. package/dist/OrchestratorView.d.ts.map +1 -0
  40. package/dist/OrchestratorView.js +231 -0
  41. package/dist/OrchestratorView.js.map +1 -0
  42. package/dist/OrchestratorWorkbench.d.ts +32 -0
  43. package/dist/OrchestratorWorkbench.d.ts.map +1 -0
  44. package/dist/OrchestratorWorkbench.js +3200 -0
  45. package/dist/OrchestratorWorkbench.js.map +1 -0
  46. package/dist/PtyConsoleBase.d.ts +9 -0
  47. package/dist/PtyConsoleBase.d.ts.map +1 -0
  48. package/dist/PtyConsoleBase.js +174 -0
  49. package/dist/PtyConsoleBase.js.map +1 -0
  50. package/dist/PtyConsoleDrawer.d.ts +10 -0
  51. package/dist/PtyConsoleDrawer.d.ts.map +1 -0
  52. package/dist/PtyConsoleDrawer.js +77 -0
  53. package/dist/PtyConsoleDrawer.js.map +1 -0
  54. package/dist/PtyConsoleSidePanel.d.ts +8 -0
  55. package/dist/PtyConsoleSidePanel.d.ts.map +1 -0
  56. package/dist/PtyConsoleSidePanel.js +9 -0
  57. package/dist/PtyConsoleSidePanel.js.map +1 -0
  58. package/dist/PtyTerminalPane.d.ts +10 -0
  59. package/dist/PtyTerminalPane.d.ts.map +1 -0
  60. package/dist/PtyTerminalPane.js +147 -0
  61. package/dist/PtyTerminalPane.js.map +1 -0
  62. package/dist/TaskCardList.d.ts +76 -0
  63. package/dist/TaskCardList.d.ts.map +1 -0
  64. package/dist/TaskCardList.js +327 -0
  65. package/dist/TaskCardList.js.map +1 -0
  66. package/dist/TaskCoordinatorView.d.ts +20 -0
  67. package/dist/TaskCoordinatorView.d.ts.map +1 -0
  68. package/dist/TaskCoordinatorView.js +146 -0
  69. package/dist/TaskCoordinatorView.js.map +1 -0
  70. package/dist/__e2e__/dashboard-fixture.d.ts +9 -0
  71. package/dist/__e2e__/dashboard-fixture.d.ts.map +1 -0
  72. package/dist/__e2e__/dashboard-fixture.js +123 -0
  73. package/dist/__e2e__/dashboard-fixture.js.map +1 -0
  74. package/dist/api/coding-agents-auth-sanitize.d.ts +23 -0
  75. package/dist/api/coding-agents-auth-sanitize.d.ts.map +1 -0
  76. package/dist/api/coding-agents-auth-sanitize.js +22 -0
  77. package/dist/api/coding-agents-auth-sanitize.js.map +1 -0
  78. package/dist/api/coding-agents-preflight-normalize.d.ts +29 -0
  79. package/dist/api/coding-agents-preflight-normalize.d.ts.map +1 -0
  80. package/dist/api/coding-agents-preflight-normalize.js +20 -0
  81. package/dist/api/coding-agents-preflight-normalize.js.map +1 -0
  82. package/dist/coding-agent-settings-shared.d.ts +42 -0
  83. package/dist/coding-agent-settings-shared.d.ts.map +1 -0
  84. package/dist/coding-agent-settings-shared.js +121 -0
  85. package/dist/coding-agent-settings-shared.js.map +1 -0
  86. package/dist/components/OrchestratorSpatialView.d.ts +56 -0
  87. package/dist/components/OrchestratorSpatialView.d.ts.map +1 -0
  88. package/dist/components/OrchestratorSpatialView.js +501 -0
  89. package/dist/components/OrchestratorSpatialView.js.map +1 -0
  90. package/dist/components/TaskCoordinatorSpatialView.d.ts +59 -0
  91. package/dist/components/TaskCoordinatorSpatialView.d.ts.map +1 -0
  92. package/dist/components/TaskCoordinatorSpatialView.js +294 -0
  93. package/dist/components/TaskCoordinatorSpatialView.js.map +1 -0
  94. package/dist/index.d.ts +5 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +286 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/orchestrator-capabilities.d.ts +3 -0
  99. package/dist/orchestrator-capabilities.d.ts.map +1 -0
  100. package/dist/orchestrator-capabilities.js +136 -0
  101. package/dist/orchestrator-capabilities.js.map +1 -0
  102. package/dist/orchestrator-command.d.ts +39 -0
  103. package/dist/orchestrator-command.d.ts.map +1 -0
  104. package/dist/orchestrator-command.js +52 -0
  105. package/dist/orchestrator-command.js.map +1 -0
  106. package/dist/orchestrator-diff.d.ts +19 -0
  107. package/dist/orchestrator-diff.d.ts.map +1 -0
  108. package/dist/orchestrator-diff.helpers.d.ts +18 -0
  109. package/dist/orchestrator-diff.helpers.d.ts.map +1 -0
  110. package/dist/orchestrator-diff.helpers.js +76 -0
  111. package/dist/orchestrator-diff.helpers.js.map +1 -0
  112. package/dist/orchestrator-diff.js +119 -0
  113. package/dist/orchestrator-diff.js.map +1 -0
  114. package/dist/orchestrator-markdown.d.ts +5 -0
  115. package/dist/orchestrator-markdown.d.ts.map +1 -0
  116. package/dist/orchestrator-markdown.helpers.d.ts +2 -0
  117. package/dist/orchestrator-markdown.helpers.d.ts.map +1 -0
  118. package/dist/orchestrator-markdown.helpers.js +21 -0
  119. package/dist/orchestrator-markdown.helpers.js.map +1 -0
  120. package/dist/orchestrator-markdown.js +199 -0
  121. package/dist/orchestrator-markdown.js.map +1 -0
  122. package/dist/orchestrator-params.d.ts +8 -0
  123. package/dist/orchestrator-params.d.ts.map +1 -0
  124. package/dist/orchestrator-params.js +27 -0
  125. package/dist/orchestrator-params.js.map +1 -0
  126. package/dist/orchestrator-plan.d.ts +5 -0
  127. package/dist/orchestrator-plan.d.ts.map +1 -0
  128. package/dist/orchestrator-plan.js +95 -0
  129. package/dist/orchestrator-plan.js.map +1 -0
  130. package/dist/orchestrator-reasoning.d.ts +21 -0
  131. package/dist/orchestrator-reasoning.d.ts.map +1 -0
  132. package/dist/orchestrator-reasoning.js +105 -0
  133. package/dist/orchestrator-reasoning.js.map +1 -0
  134. package/dist/orchestrator-stream.d.ts +15 -0
  135. package/dist/orchestrator-stream.d.ts.map +1 -0
  136. package/dist/orchestrator-stream.helpers.d.ts +89 -0
  137. package/dist/orchestrator-stream.helpers.d.ts.map +1 -0
  138. package/dist/orchestrator-stream.helpers.js +361 -0
  139. package/dist/orchestrator-stream.helpers.js.map +1 -0
  140. package/dist/orchestrator-stream.js +307 -0
  141. package/dist/orchestrator-stream.js.map +1 -0
  142. package/dist/pty-status-dots.d.ts +2 -0
  143. package/dist/pty-status-dots.d.ts.map +1 -0
  144. package/dist/pty-status-dots.js +6 -0
  145. package/dist/pty-status-dots.js.map +1 -0
  146. package/dist/register-slots.d.ts +20 -0
  147. package/dist/register-slots.d.ts.map +1 -0
  148. package/dist/register-slots.js +50 -0
  149. package/dist/register-slots.js.map +1 -0
  150. package/dist/register-terminal-view.d.ts +21 -0
  151. package/dist/register-terminal-view.d.ts.map +1 -0
  152. package/dist/register-terminal-view.js +46 -0
  153. package/dist/register-terminal-view.js.map +1 -0
  154. package/dist/register.d.ts +2 -0
  155. package/dist/register.d.ts.map +1 -0
  156. package/dist/register.js +23 -0
  157. package/dist/register.js.map +1 -0
  158. package/dist/session-hydration.d.ts +2 -0
  159. package/dist/session-hydration.d.ts.map +1 -0
  160. package/dist/session-hydration.js +9 -0
  161. package/dist/session-hydration.js.map +1 -0
  162. package/dist/task-coordinator-view-bundle.d.ts +4 -0
  163. package/dist/task-coordinator-view-bundle.d.ts.map +1 -0
  164. package/dist/task-coordinator-view-bundle.js +9 -0
  165. package/dist/task-coordinator-view-bundle.js.map +1 -0
  166. package/dist/ui.d.ts +2 -0
  167. package/dist/ui.d.ts.map +1 -0
  168. package/dist/ui.js +13 -0
  169. package/dist/ui.js.map +1 -0
  170. package/dist/view-format.d.ts +25 -0
  171. package/dist/view-format.d.ts.map +1 -0
  172. package/dist/view-format.js +64 -0
  173. package/dist/view-format.js.map +1 -0
  174. package/dist/views/bundle.js +1383 -0
  175. package/dist/views/bundle.js.map +1 -0
  176. package/package.json +7 -6
@@ -0,0 +1,161 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { Button, SettingsControls, useAppSelector } from "@elizaos/ui";
3
+ import {
4
+ AlertTriangle,
5
+ CheckCircle2,
6
+ Cloud,
7
+ KeyRound,
8
+ Terminal
9
+ } from "lucide-react";
10
+ function LlmProviderSection({
11
+ llmProvider,
12
+ isCloud,
13
+ prefs,
14
+ setPref
15
+ }) {
16
+ const t = useAppSelector((s) => s.t);
17
+ const providerOptions = [
18
+ {
19
+ value: "subscription",
20
+ label: t("codingagentsettingssection.LlmProviderSubscription", {
21
+ defaultValue: "CLI Subscription"
22
+ }),
23
+ icon: Terminal
24
+ },
25
+ {
26
+ value: "api_keys",
27
+ label: t("codingagentsettingssection.LlmProviderApiKeys", {
28
+ defaultValue: "API Keys"
29
+ }),
30
+ icon: KeyRound
31
+ },
32
+ {
33
+ value: "cloud",
34
+ label: t("codingagentsettingssection.LlmProviderCloud", {
35
+ defaultValue: "Eliza Cloud"
36
+ }),
37
+ icon: Cloud
38
+ }
39
+ ];
40
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
41
+ /* @__PURE__ */ jsxs(SettingsControls.Field, { children: [
42
+ /* @__PURE__ */ jsx(SettingsControls.FieldLabel, { children: t("codingagentsettingssection.LlmProvider", {
43
+ defaultValue: "LLM Provider"
44
+ }) }),
45
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-2 sm:grid-cols-3", children: providerOptions.map((option) => {
46
+ const Icon = option.icon;
47
+ const active = llmProvider === option.value;
48
+ return /* @__PURE__ */ jsxs(
49
+ Button,
50
+ {
51
+ type: "button",
52
+ variant: active ? "default" : "ghost",
53
+ size: "sm",
54
+ className: "h-8 justify-start px-2 text-xs font-semibold",
55
+ onClick: () => setPref("ELIZA_LLM_PROVIDER", option.value),
56
+ "aria-pressed": active,
57
+ children: [
58
+ /* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5", "aria-hidden": true }),
59
+ option.label
60
+ ]
61
+ },
62
+ option.value
63
+ );
64
+ }) })
65
+ ] }),
66
+ llmProvider === "api_keys" && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
67
+ /* @__PURE__ */ jsxs(SettingsControls.Field, { children: [
68
+ /* @__PURE__ */ jsx(SettingsControls.FieldLabel, { children: t("codingagentsettingssection.AnthropicApiKey", {
69
+ defaultValue: "Anthropic API Key"
70
+ }) }),
71
+ /* @__PURE__ */ jsx(
72
+ SettingsControls.Input,
73
+ {
74
+ variant: "compact",
75
+ type: "password",
76
+ placeholder: "sk-ant-...",
77
+ value: prefs.ANTHROPIC_API_KEY || "",
78
+ onChange: (e) => setPref("ANTHROPIC_API_KEY", e.target.value)
79
+ }
80
+ )
81
+ ] }),
82
+ /* @__PURE__ */ jsxs(SettingsControls.Field, { children: [
83
+ /* @__PURE__ */ jsx(SettingsControls.FieldLabel, { children: t("codingagentsettingssection.OpenaiApiKey", {
84
+ defaultValue: "OpenAI API Key"
85
+ }) }),
86
+ /* @__PURE__ */ jsx(
87
+ SettingsControls.Input,
88
+ {
89
+ variant: "compact",
90
+ type: "password",
91
+ placeholder: "sk-...",
92
+ value: prefs.OPENAI_API_KEY || "",
93
+ onChange: (e) => setPref("OPENAI_API_KEY", e.target.value)
94
+ }
95
+ )
96
+ ] }),
97
+ /* @__PURE__ */ jsxs(SettingsControls.Field, { children: [
98
+ /* @__PURE__ */ jsx(SettingsControls.FieldLabel, { children: t("codingagentsettingssection.OpencodeApiKey", {
99
+ defaultValue: "OpenCode API Key"
100
+ }) }),
101
+ /* @__PURE__ */ jsx(
102
+ SettingsControls.Input,
103
+ {
104
+ variant: "compact",
105
+ type: "password",
106
+ placeholder: "sk-...",
107
+ value: prefs.ELIZA_OPENCODE_API_KEY || "",
108
+ onChange: (e) => setPref("ELIZA_OPENCODE_API_KEY", e.target.value)
109
+ }
110
+ )
111
+ ] }),
112
+ /* @__PURE__ */ jsxs(SettingsControls.Field, { children: [
113
+ /* @__PURE__ */ jsx(SettingsControls.FieldLabel, { children: t("codingagentsettingssection.OpencodeBaseUrl", {
114
+ defaultValue: "OpenCode Base URL"
115
+ }) }),
116
+ /* @__PURE__ */ jsx(
117
+ SettingsControls.Input,
118
+ {
119
+ variant: "compact",
120
+ placeholder: "https://api.openai.com/v1",
121
+ value: prefs.ELIZA_OPENCODE_BASE_URL || "",
122
+ onChange: (e) => setPref("ELIZA_OPENCODE_BASE_URL", e.target.value)
123
+ }
124
+ )
125
+ ] })
126
+ ] }),
127
+ isCloud && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3", children: prefs._CLOUD_API_KEY ? /* @__PURE__ */ jsxs(
128
+ SettingsControls.MutedText,
129
+ {
130
+ className: "inline-flex items-center gap-1.5 text-xs text-ok",
131
+ title: t("codingagentsettingssection.CloudPaired", {
132
+ defaultValue: "Using your Eliza Cloud account for coding agent LLM calls."
133
+ }),
134
+ children: [
135
+ /* @__PURE__ */ jsx(CheckCircle2, { className: "h-3.5 w-3.5", "aria-hidden": true }),
136
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: t("codingagentsettingssection.CloudPaired", {
137
+ defaultValue: "Using your Eliza Cloud account for coding agent LLM calls."
138
+ }) })
139
+ ]
140
+ }
141
+ ) : /* @__PURE__ */ jsxs(
142
+ SettingsControls.MutedText,
143
+ {
144
+ className: "inline-flex items-center gap-1.5 text-xs text-warn",
145
+ title: t("codingagentsettingssection.CloudUnpaired", {
146
+ defaultValue: "Unavailable"
147
+ }),
148
+ children: [
149
+ /* @__PURE__ */ jsx(AlertTriangle, { className: "h-3.5 w-3.5", "aria-hidden": true }),
150
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: t("codingagentsettingssection.CloudUnpaired", {
151
+ defaultValue: "Unavailable"
152
+ }) })
153
+ ]
154
+ }
155
+ ) })
156
+ ] });
157
+ }
158
+ export {
159
+ LlmProviderSection
160
+ };
161
+ //# sourceMappingURL=LlmProviderSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/LlmProviderSection.tsx"],"sourcesContent":["import { Button, SettingsControls, useAppSelector } from \"@elizaos/ui\";\nimport {\n AlertTriangle,\n CheckCircle2,\n Cloud,\n KeyRound,\n type LucideIcon,\n Terminal,\n} from \"lucide-react\";\nimport type { LlmProvider } from \"./coding-agent-settings-shared.js\";\n\ninterface LlmProviderSectionProps {\n llmProvider: LlmProvider;\n isCloud: boolean;\n prefs: Record<string, string>;\n setPref: (key: string, value: string) => void;\n}\n\nexport function LlmProviderSection({\n llmProvider,\n isCloud,\n prefs,\n setPref,\n}: LlmProviderSectionProps) {\n const t = useAppSelector((s) => s.t);\n const providerOptions: Array<{\n value: LlmProvider;\n label: string;\n icon: LucideIcon;\n }> = [\n {\n value: \"subscription\",\n label: t(\"codingagentsettingssection.LlmProviderSubscription\", {\n defaultValue: \"CLI Subscription\",\n }),\n icon: Terminal,\n },\n {\n value: \"api_keys\",\n label: t(\"codingagentsettingssection.LlmProviderApiKeys\", {\n defaultValue: \"API Keys\",\n }),\n icon: KeyRound,\n },\n {\n value: \"cloud\",\n label: t(\"codingagentsettingssection.LlmProviderCloud\", {\n defaultValue: \"Eliza Cloud\",\n }),\n icon: Cloud,\n },\n ];\n\n return (\n <>\n <SettingsControls.Field>\n <SettingsControls.FieldLabel>\n {t(\"codingagentsettingssection.LlmProvider\", {\n defaultValue: \"LLM Provider\",\n })}\n </SettingsControls.FieldLabel>\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-3\">\n {providerOptions.map((option) => {\n const Icon = option.icon;\n const active = llmProvider === option.value;\n return (\n <Button\n key={option.value}\n type=\"button\"\n variant={active ? \"default\" : \"ghost\"}\n size=\"sm\"\n className=\"h-8 justify-start px-2 text-xs font-semibold\"\n onClick={() => setPref(\"ELIZA_LLM_PROVIDER\", option.value)}\n aria-pressed={active}\n >\n <Icon className=\"h-3.5 w-3.5\" aria-hidden />\n {option.label}\n </Button>\n );\n })}\n </div>\n </SettingsControls.Field>\n\n {llmProvider === \"api_keys\" && (\n <div className=\"flex flex-col gap-3\">\n <SettingsControls.Field>\n <SettingsControls.FieldLabel>\n {t(\"codingagentsettingssection.AnthropicApiKey\", {\n defaultValue: \"Anthropic API Key\",\n })}\n </SettingsControls.FieldLabel>\n <SettingsControls.Input\n variant=\"compact\"\n type=\"password\"\n placeholder=\"sk-ant-...\"\n value={prefs.ANTHROPIC_API_KEY || \"\"}\n onChange={(e) => setPref(\"ANTHROPIC_API_KEY\", e.target.value)}\n />\n </SettingsControls.Field>\n <SettingsControls.Field>\n <SettingsControls.FieldLabel>\n {t(\"codingagentsettingssection.OpenaiApiKey\", {\n defaultValue: \"OpenAI API Key\",\n })}\n </SettingsControls.FieldLabel>\n <SettingsControls.Input\n variant=\"compact\"\n type=\"password\"\n placeholder=\"sk-...\"\n value={prefs.OPENAI_API_KEY || \"\"}\n onChange={(e) => setPref(\"OPENAI_API_KEY\", e.target.value)}\n />\n </SettingsControls.Field>\n <SettingsControls.Field>\n <SettingsControls.FieldLabel>\n {t(\"codingagentsettingssection.OpencodeApiKey\", {\n defaultValue: \"OpenCode API Key\",\n })}\n </SettingsControls.FieldLabel>\n <SettingsControls.Input\n variant=\"compact\"\n type=\"password\"\n placeholder=\"sk-...\"\n value={prefs.ELIZA_OPENCODE_API_KEY || \"\"}\n onChange={(e) =>\n setPref(\"ELIZA_OPENCODE_API_KEY\", e.target.value)\n }\n />\n </SettingsControls.Field>\n <SettingsControls.Field>\n <SettingsControls.FieldLabel>\n {t(\"codingagentsettingssection.OpencodeBaseUrl\", {\n defaultValue: \"OpenCode Base URL\",\n })}\n </SettingsControls.FieldLabel>\n <SettingsControls.Input\n variant=\"compact\"\n placeholder=\"https://api.openai.com/v1\"\n value={prefs.ELIZA_OPENCODE_BASE_URL || \"\"}\n onChange={(e) =>\n setPref(\"ELIZA_OPENCODE_BASE_URL\", e.target.value)\n }\n />\n </SettingsControls.Field>\n </div>\n )}\n\n {isCloud && (\n <div className=\"flex flex-col gap-3\">\n {prefs._CLOUD_API_KEY ? (\n <SettingsControls.MutedText\n className=\"inline-flex items-center gap-1.5 text-xs text-ok\"\n title={t(\"codingagentsettingssection.CloudPaired\", {\n defaultValue:\n \"Using your Eliza Cloud account for coding agent LLM calls.\",\n })}\n >\n <CheckCircle2 className=\"h-3.5 w-3.5\" aria-hidden />\n <span className=\"sr-only\">\n {t(\"codingagentsettingssection.CloudPaired\", {\n defaultValue:\n \"Using your Eliza Cloud account for coding agent LLM calls.\",\n })}\n </span>\n </SettingsControls.MutedText>\n ) : (\n <SettingsControls.MutedText\n className=\"inline-flex items-center gap-1.5 text-xs text-warn\"\n title={t(\"codingagentsettingssection.CloudUnpaired\", {\n defaultValue: \"Unavailable\",\n })}\n >\n <AlertTriangle className=\"h-3.5 w-3.5\" aria-hidden />\n <span className=\"sr-only\">\n {t(\"codingagentsettingssection.CloudUnpaired\", {\n defaultValue: \"Unavailable\",\n })}\n </span>\n </SettingsControls.MutedText>\n )}\n </div>\n )}\n </>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,15 @@
1
+ import type { AgentTab, LlmProvider, ModelOption } from "./coding-agent-settings-shared";
2
+ interface ModelConfigSectionProps {
3
+ activeTab: AgentTab;
4
+ llmProvider: LlmProvider;
5
+ isCloud: boolean;
6
+ prefix: string;
7
+ powerfulValue: string;
8
+ fastValue: string;
9
+ modelOptions: ModelOption[];
10
+ isDynamic: boolean;
11
+ setPref: (key: string, value: string) => void;
12
+ }
13
+ export declare function ModelConfigSection({ activeTab, llmProvider, isCloud, prefix, powerfulValue, fastValue, modelOptions, isDynamic, setPref, }: ModelConfigSectionProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=ModelConfigSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelConfigSection.d.ts","sourceRoot":"","sources":["../src/ModelConfigSection.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,UAAU,uBAAuB;IAC/B,SAAS,EAAE,QAAQ,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,WAAW,EACX,OAAO,EACP,MAAM,EACN,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,OAAO,GACR,EAAE,uBAAuB,2CAoFzB"}
@@ -0,0 +1,86 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ Select,
4
+ SelectContent,
5
+ SelectItem,
6
+ SelectValue,
7
+ SettingsControls,
8
+ useAppSelector
9
+ } from "@elizaos/ui";
10
+ import { AlertTriangle, CheckCircle2 } from "lucide-react";
11
+ function ModelConfigSection({
12
+ activeTab,
13
+ llmProvider,
14
+ isCloud,
15
+ prefix,
16
+ powerfulValue,
17
+ fastValue,
18
+ modelOptions,
19
+ isDynamic,
20
+ setPref
21
+ }) {
22
+ const t = useAppSelector((s) => s.t);
23
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
24
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-3", children: [
25
+ /* @__PURE__ */ jsxs(SettingsControls.Field, { className: "flex-1", children: [
26
+ /* @__PURE__ */ jsx(SettingsControls.FieldLabel, { children: t("codingagentsettingssection.PowerfulModel") }),
27
+ /* @__PURE__ */ jsxs(
28
+ Select,
29
+ {
30
+ value: powerfulValue,
31
+ onValueChange: (value) => setPref(`${prefix}_MODEL_POWERFUL`, value),
32
+ children: [
33
+ /* @__PURE__ */ jsx(SettingsControls.SelectTrigger, { variant: "compact", children: /* @__PURE__ */ jsx(
34
+ SelectValue,
35
+ {
36
+ placeholder: t("codingagentsettingssection.Default")
37
+ }
38
+ ) }),
39
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
40
+ /* @__PURE__ */ jsx(SelectItem, { value: "__default__", children: t("codingagentsettingssection.Default") }),
41
+ modelOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.value, children: option.label }, option.value))
42
+ ] })
43
+ ]
44
+ }
45
+ )
46
+ ] }),
47
+ /* @__PURE__ */ jsxs(SettingsControls.Field, { className: "flex-1", children: [
48
+ /* @__PURE__ */ jsx(SettingsControls.FieldLabel, { children: t("codingagentsettingssection.FastModel") }),
49
+ /* @__PURE__ */ jsxs(
50
+ Select,
51
+ {
52
+ value: fastValue,
53
+ onValueChange: (value) => setPref(`${prefix}_MODEL_FAST`, value),
54
+ children: [
55
+ /* @__PURE__ */ jsx(SettingsControls.SelectTrigger, { variant: "compact", children: /* @__PURE__ */ jsx(
56
+ SelectValue,
57
+ {
58
+ placeholder: t("codingagentsettingssection.Default")
59
+ }
60
+ ) }),
61
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
62
+ /* @__PURE__ */ jsx(SelectItem, { value: "__default__", children: t("codingagentsettingssection.Default") }),
63
+ modelOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.value, children: option.label }, option.value))
64
+ ] })
65
+ ]
66
+ }
67
+ )
68
+ ] })
69
+ ] }),
70
+ llmProvider === "api_keys" && /* @__PURE__ */ jsxs(
71
+ SettingsControls.MutedText,
72
+ {
73
+ className: "mt-1.5 inline-flex items-center gap-1.5",
74
+ title: isDynamic ? t("codingagentsettingssection.ModelsFetched") : t("codingagentsettingssection.UsingFallback"),
75
+ children: [
76
+ isDynamic ? /* @__PURE__ */ jsx(CheckCircle2, { className: "h-3.5 w-3.5 text-ok", "aria-hidden": true }) : /* @__PURE__ */ jsx(AlertTriangle, { className: "h-3.5 w-3.5 text-warn", "aria-hidden": true }),
77
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: isDynamic ? t("codingagentsettingssection.ModelsFetched") : t("codingagentsettingssection.UsingFallback") })
78
+ ]
79
+ }
80
+ )
81
+ ] });
82
+ }
83
+ export {
84
+ ModelConfigSection
85
+ };
86
+ //# sourceMappingURL=ModelConfigSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ModelConfigSection.tsx"],"sourcesContent":["import {\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n SettingsControls,\n useAppSelector,\n} from \"@elizaos/ui\";\nimport { AlertTriangle, CheckCircle2 } from \"lucide-react\";\nimport type {\n AgentTab,\n LlmProvider,\n ModelOption,\n} from \"./coding-agent-settings-shared.js\";\n\ninterface ModelConfigSectionProps {\n activeTab: AgentTab;\n llmProvider: LlmProvider;\n isCloud: boolean;\n prefix: string;\n powerfulValue: string;\n fastValue: string;\n modelOptions: ModelOption[];\n isDynamic: boolean;\n setPref: (key: string, value: string) => void;\n}\n\nexport function ModelConfigSection({\n activeTab,\n llmProvider,\n isCloud,\n prefix,\n powerfulValue,\n fastValue,\n modelOptions,\n isDynamic,\n setPref,\n}: ModelConfigSectionProps) {\n const t = useAppSelector((s) => s.t);\n return (\n <>\n <div className=\"flex gap-3\">\n <SettingsControls.Field className=\"flex-1\">\n <SettingsControls.FieldLabel>\n {t(\"codingagentsettingssection.PowerfulModel\")}\n </SettingsControls.FieldLabel>\n <Select\n value={powerfulValue}\n onValueChange={(value: string) =>\n setPref(`${prefix}_MODEL_POWERFUL`, value)\n }\n >\n <SettingsControls.SelectTrigger variant=\"compact\">\n <SelectValue\n placeholder={t(\"codingagentsettingssection.Default\")}\n />\n </SettingsControls.SelectTrigger>\n <SelectContent>\n <SelectItem value=\"__default__\">\n {t(\"codingagentsettingssection.Default\")}\n </SelectItem>\n {modelOptions.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </SettingsControls.Field>\n <SettingsControls.Field className=\"flex-1\">\n <SettingsControls.FieldLabel>\n {t(\"codingagentsettingssection.FastModel\")}\n </SettingsControls.FieldLabel>\n <Select\n value={fastValue}\n onValueChange={(value: string) =>\n setPref(`${prefix}_MODEL_FAST`, value)\n }\n >\n <SettingsControls.SelectTrigger variant=\"compact\">\n <SelectValue\n placeholder={t(\"codingagentsettingssection.Default\")}\n />\n </SettingsControls.SelectTrigger>\n <SelectContent>\n <SelectItem value=\"__default__\">\n {t(\"codingagentsettingssection.Default\")}\n </SelectItem>\n {modelOptions.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </SettingsControls.Field>\n </div>\n\n {llmProvider === \"api_keys\" && (\n <SettingsControls.MutedText\n className=\"mt-1.5 inline-flex items-center gap-1.5\"\n title={\n isDynamic\n ? t(\"codingagentsettingssection.ModelsFetched\")\n : t(\"codingagentsettingssection.UsingFallback\")\n }\n >\n {isDynamic ? (\n <CheckCircle2 className=\"h-3.5 w-3.5 text-ok\" aria-hidden />\n ) : (\n <AlertTriangle className=\"h-3.5 w-3.5 text-warn\" aria-hidden />\n )}\n <span className=\"sr-only\">\n {isDynamic\n ? t(\"codingagentsettingssection.ModelsFetched\")\n : t(\"codingagentsettingssection.UsingFallback\")}\n </span>\n </SettingsControls.MutedText>\n )}\n </>\n );\n}\n"],"mappings":"AAwCI,mBAGM,KAcE,YAjBR;AAxCJ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,eAAe,oBAAoB;AAmBrC,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAC1B,QAAM,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;AACnC,SACE,iCACE;AAAA,yBAAC,SAAI,WAAU,cACb;AAAA,2BAAC,iBAAiB,OAAjB,EAAuB,WAAU,UAChC;AAAA,4BAAC,iBAAiB,YAAjB,EACE,YAAE,0CAA0C,GAC/C;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,eAAe,CAAC,UACd,QAAQ,GAAG,MAAM,mBAAmB,KAAK;AAAA,YAG3C;AAAA,kCAAC,iBAAiB,eAAjB,EAA+B,SAAQ,WACtC;AAAA,gBAAC;AAAA;AAAA,kBACC,aAAa,EAAE,oCAAoC;AAAA;AAAA,cACrD,GACF;AAAA,cACA,qBAAC,iBACC;AAAA,oCAAC,cAAW,OAAM,eACf,YAAE,oCAAoC,GACzC;AAAA,gBACC,aAAa,IAAI,CAAC,WACjB,oBAAC,cAA8B,OAAO,OAAO,OAC1C,iBAAO,SADO,OAAO,KAExB,CACD;AAAA,iBACH;AAAA;AAAA;AAAA,QACF;AAAA,SACF;AAAA,MACA,qBAAC,iBAAiB,OAAjB,EAAuB,WAAU,UAChC;AAAA,4BAAC,iBAAiB,YAAjB,EACE,YAAE,sCAAsC,GAC3C;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,eAAe,CAAC,UACd,QAAQ,GAAG,MAAM,eAAe,KAAK;AAAA,YAGvC;AAAA,kCAAC,iBAAiB,eAAjB,EAA+B,SAAQ,WACtC;AAAA,gBAAC;AAAA;AAAA,kBACC,aAAa,EAAE,oCAAoC;AAAA;AAAA,cACrD,GACF;AAAA,cACA,qBAAC,iBACC;AAAA,oCAAC,cAAW,OAAM,eACf,YAAE,oCAAoC,GACzC;AAAA,gBACC,aAAa,IAAI,CAAC,WACjB,oBAAC,cAA8B,OAAO,OAAO,OAC1C,iBAAO,SADO,OAAO,KAExB,CACD;AAAA,iBACH;AAAA;AAAA;AAAA,QACF;AAAA,SACF;AAAA,OACF;AAAA,IAEC,gBAAgB,cACf;AAAA,MAAC,iBAAiB;AAAA,MAAjB;AAAA,QACC,WAAU;AAAA,QACV,OACE,YACI,EAAE,0CAA0C,IAC5C,EAAE,0CAA0C;AAAA,QAGjD;AAAA,sBACC,oBAAC,gBAAa,WAAU,uBAAsB,eAAW,MAAC,IAE1D,oBAAC,iBAAc,WAAU,yBAAwB,eAAW,MAAC;AAAA,UAE/D,oBAAC,UAAK,WAAU,WACb,sBACG,EAAE,0CAA0C,IAC5C,EAAE,0CAA0C,GAClD;AAAA;AAAA;AAAA,IACF;AAAA,KAEJ;AAEJ;","names":[]}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * OrchestratorView — the single GUI/XR/TUI data wrapper for the Orchestrator
3
+ * surface.
4
+ *
5
+ * It owns a focused live subset of the workbench's data (orchestrator status +
6
+ * the task-thread page on a 5s poll, plus the open thread's detail) and renders
7
+ * the one presentational {@link OrchestratorSpatialView} inside a
8
+ * {@link SpatialSurface}. Omitting the `modality` prop lets `SpatialSurface`
9
+ * auto-detect GUI vs XR via `window.__elizaXRContext`, so the SAME component
10
+ * serves both surfaces. The TUI surface renders the same `OrchestratorSpatialView`
11
+ * through the terminal registry (see `register-terminal-view.tsx`).
12
+ *
13
+ * The rich GUI route (`/orchestrator`, {@link OrchestratorWorkbench}) keeps the
14
+ * full mutation/SSE/inspector surface — this wrapper is the cross-modality
15
+ * dashboard, not a replacement for it. `onAction` maps each spatial affordance
16
+ * 1:1 to a client method (or, for richer flows like adding an agent, navigates
17
+ * to the workbench).
18
+ */
19
+ export declare function OrchestratorView(): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=OrchestratorView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrchestratorView.d.ts","sourceRoot":"","sources":["../src/OrchestratorView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuFH,wBAAgB,gBAAgB,4CAmM/B"}
@@ -0,0 +1,231 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import {
3
+ client
4
+ } from "@elizaos/ui";
5
+ import { SpatialSurface } from "@elizaos/ui/spatial";
6
+ import { useCallback, useEffect, useRef, useState } from "react";
7
+ import {
8
+ OrchestratorSpatialView
9
+ } from "./components/OrchestratorSpatialView.js";
10
+ const TASK_LIST_LIMIT = 30;
11
+ function derivePlanSteps(plan) {
12
+ if (!plan) return [];
13
+ const rawSteps = Array.isArray(plan.steps) ? plan.steps : [];
14
+ const steps = [];
15
+ for (const raw of rawSteps) {
16
+ if (typeof raw === "string" && raw.trim()) {
17
+ steps.push({
18
+ id: `step-${steps.length}`,
19
+ label: raw.trim(),
20
+ state: "pending"
21
+ });
22
+ continue;
23
+ }
24
+ if (raw && typeof raw === "object") {
25
+ const obj = raw;
26
+ const label = typeof obj.title === "string" && obj.title || typeof obj.label === "string" && obj.label || typeof obj.description === "string" && obj.description || null;
27
+ if (!label) continue;
28
+ const status = typeof obj.status === "string" ? obj.status : "";
29
+ steps.push({
30
+ id: `step-${steps.length}`,
31
+ label,
32
+ state: status === "done" || status === "complete" || status === "completed" ? "done" : status === "active" || status === "in_progress" || status === "running" ? "active" : status === "blocked" || status === "failed" ? "blocked" : "pending"
33
+ });
34
+ }
35
+ }
36
+ return steps;
37
+ }
38
+ function errorMessage(error) {
39
+ return error instanceof Error ? error.message : String(error);
40
+ }
41
+ function openWorkbench() {
42
+ if (typeof window === "undefined") return;
43
+ window.dispatchEvent(
44
+ new CustomEvent("eliza:navigate:view", {
45
+ detail: { viewId: "orchestrator", viewPath: "/orchestrator" }
46
+ })
47
+ );
48
+ }
49
+ function copyTaskLink(taskId) {
50
+ if (typeof window === "undefined") return;
51
+ const url = `${window.location.origin}/orchestrator?task=${encodeURIComponent(taskId)}`;
52
+ void navigator.clipboard?.writeText(url).catch(() => {
53
+ });
54
+ }
55
+ function OrchestratorView() {
56
+ const [status, setStatus] = useState(null);
57
+ const [threads, setThreads] = useState([]);
58
+ const [hasMore, setHasMore] = useState(false);
59
+ const [selectedTaskId, setSelectedTaskId] = useState(null);
60
+ const [detail, setDetail] = useState(null);
61
+ const [loading, setLoading] = useState(false);
62
+ const [error, setError] = useState(null);
63
+ const refreshList = useCallback(
64
+ async (silent = false) => {
65
+ if (!silent) setLoading(true);
66
+ try {
67
+ const [nextStatus, nextThreads] = await Promise.all([
68
+ client.getOrchestratorStatus(),
69
+ client.listCodingAgentTaskThreads({ limit: TASK_LIST_LIMIT })
70
+ ]);
71
+ setStatus(nextStatus);
72
+ setThreads(nextThreads);
73
+ setHasMore(nextThreads.length >= TASK_LIST_LIMIT);
74
+ setError(null);
75
+ } catch (err) {
76
+ if (!silent) {
77
+ setError(errorMessage(err));
78
+ setStatus(null);
79
+ setThreads([]);
80
+ setHasMore(false);
81
+ }
82
+ } finally {
83
+ if (!silent) setLoading(false);
84
+ }
85
+ },
86
+ []
87
+ );
88
+ const loadDetail = useCallback(async (taskId) => {
89
+ try {
90
+ const next = await client.getCodingAgentTaskThread(taskId);
91
+ setDetail(next);
92
+ setError(null);
93
+ } catch (err) {
94
+ setError(errorMessage(err));
95
+ setDetail(null);
96
+ }
97
+ }, []);
98
+ const autoLoadedRef = useRef(false);
99
+ useEffect(() => {
100
+ if (!autoLoadedRef.current) {
101
+ autoLoadedRef.current = true;
102
+ void refreshList(false);
103
+ }
104
+ const interval = setInterval(() => {
105
+ void refreshList(true);
106
+ if (selectedTaskId) void loadDetail(selectedTaskId);
107
+ }, 5e3);
108
+ return () => clearInterval(interval);
109
+ }, [refreshList, loadDetail, selectedTaskId]);
110
+ useEffect(() => {
111
+ if (!selectedTaskId) {
112
+ setDetail(null);
113
+ return;
114
+ }
115
+ void loadDetail(selectedTaskId);
116
+ }, [selectedTaskId, loadDetail]);
117
+ const runMutation = useCallback(
118
+ async (mutate) => {
119
+ try {
120
+ await mutate();
121
+ await refreshList(true);
122
+ if (selectedTaskId) await loadDetail(selectedTaskId);
123
+ } catch (err) {
124
+ setError(errorMessage(err));
125
+ }
126
+ },
127
+ [refreshList, loadDetail, selectedTaskId]
128
+ );
129
+ const onAction = useCallback(
130
+ (action) => {
131
+ if (action.startsWith("open:")) {
132
+ setSelectedTaskId(action.slice("open:".length));
133
+ return;
134
+ }
135
+ if (action.startsWith("stop-session:")) {
136
+ const sessionId = action.slice("stop-session:".length);
137
+ if (selectedTaskId) {
138
+ void runMutation(
139
+ () => client.stopOrchestratorAgent(selectedTaskId, sessionId)
140
+ );
141
+ }
142
+ return;
143
+ }
144
+ if (action.startsWith("priority:")) {
145
+ const priority = action.slice("priority:".length);
146
+ if (selectedTaskId && (priority === "low" || priority === "normal" || priority === "high" || priority === "urgent")) {
147
+ void runMutation(
148
+ () => client.updateOrchestratorTask(selectedTaskId, { priority })
149
+ );
150
+ }
151
+ return;
152
+ }
153
+ switch (action) {
154
+ case "refresh":
155
+ void refreshList(false);
156
+ return;
157
+ case "pause-all":
158
+ void runMutation(() => client.pauseAllOrchestratorTasks());
159
+ return;
160
+ case "resume-all":
161
+ void runMutation(() => client.resumeAllOrchestratorTasks());
162
+ return;
163
+ case "back":
164
+ setSelectedTaskId(null);
165
+ return;
166
+ case "add-agent":
167
+ openWorkbench();
168
+ return;
169
+ }
170
+ if (!selectedTaskId) return;
171
+ switch (action) {
172
+ case "pause":
173
+ void runMutation(() => client.pauseOrchestratorTask(selectedTaskId));
174
+ return;
175
+ case "resume":
176
+ void runMutation(() => client.resumeOrchestratorTask(selectedTaskId));
177
+ return;
178
+ case "validate":
179
+ void runMutation(
180
+ () => client.validateOrchestratorTask(selectedTaskId, { passed: true })
181
+ );
182
+ return;
183
+ case "fork":
184
+ void runMutation(() => client.forkOrchestratorTask(selectedTaskId));
185
+ return;
186
+ case "restart":
187
+ void runMutation(
188
+ () => client.restartOrchestratorTask(selectedTaskId)
189
+ );
190
+ return;
191
+ case "delete":
192
+ void runMutation(async () => {
193
+ await client.deleteOrchestratorTask(selectedTaskId);
194
+ setSelectedTaskId(null);
195
+ });
196
+ return;
197
+ case "archive":
198
+ void runMutation(async () => {
199
+ await client.archiveCodingAgentTaskThread(selectedTaskId);
200
+ setSelectedTaskId(null);
201
+ });
202
+ return;
203
+ case "reopen":
204
+ void runMutation(
205
+ () => client.reopenCodingAgentTaskThread(selectedTaskId)
206
+ );
207
+ return;
208
+ case "copy-link":
209
+ copyTaskLink(selectedTaskId);
210
+ return;
211
+ }
212
+ },
213
+ [refreshList, runMutation, selectedTaskId]
214
+ );
215
+ const pendingInputs = detail?.pendingDecisions ?? [];
216
+ const snapshot = {
217
+ status,
218
+ threads,
219
+ hasMore,
220
+ detail,
221
+ planSteps: detail ? derivePlanSteps(detail.currentPlan) : [],
222
+ pendingInputs,
223
+ loading,
224
+ error
225
+ };
226
+ return /* @__PURE__ */ jsx(SpatialSurface, { children: /* @__PURE__ */ jsx(OrchestratorSpatialView, { snapshot, onAction }) });
227
+ }
228
+ export {
229
+ OrchestratorView
230
+ };
231
+ //# sourceMappingURL=OrchestratorView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/OrchestratorView.tsx"],"sourcesContent":["/**\n * OrchestratorView — the single GUI/XR/TUI data wrapper for the Orchestrator\n * surface.\n *\n * It owns a focused live subset of the workbench's data (orchestrator status +\n * the task-thread page on a 5s poll, plus the open thread's detail) and renders\n * the one presentational {@link OrchestratorSpatialView} inside a\n * {@link SpatialSurface}. Omitting the `modality` prop lets `SpatialSurface`\n * auto-detect GUI vs XR via `window.__elizaXRContext`, so the SAME component\n * serves both surfaces. The TUI surface renders the same `OrchestratorSpatialView`\n * through the terminal registry (see `register-terminal-view.tsx`).\n *\n * The rich GUI route (`/orchestrator`, {@link OrchestratorWorkbench}) keeps the\n * full mutation/SSE/inspector surface — this wrapper is the cross-modality\n * dashboard, not a replacement for it. `onAction` maps each spatial affordance\n * 1:1 to a client method (or, for richer flows like adding an agent, navigates\n * to the workbench).\n */\n\nimport {\n type CodingAgentOrchestratorStatus,\n type CodingAgentPendingDecisionRecord,\n type CodingAgentTaskThread,\n type CodingAgentTaskThreadDetail,\n client,\n} from \"@elizaos/ui\";\nimport { SpatialSurface } from \"@elizaos/ui/spatial\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n type OrchestratorPlanStep,\n type OrchestratorSnapshot,\n OrchestratorSpatialView,\n} from \"./components/OrchestratorSpatialView.js\";\n\nconst TASK_LIST_LIMIT = 30;\n\n/** Map the free-form `currentPlan` record into the renderable plan-step shape. */\nfunction derivePlanSteps(\n plan: Record<string, unknown> | null | undefined,\n): OrchestratorPlanStep[] {\n if (!plan) return [];\n const rawSteps = Array.isArray(plan.steps) ? plan.steps : [];\n const steps: OrchestratorPlanStep[] = [];\n for (const raw of rawSteps) {\n if (typeof raw === \"string\" && raw.trim()) {\n steps.push({\n id: `step-${steps.length}`,\n label: raw.trim(),\n state: \"pending\",\n });\n continue;\n }\n if (raw && typeof raw === \"object\") {\n const obj = raw as Record<string, unknown>;\n const label =\n (typeof obj.title === \"string\" && obj.title) ||\n (typeof obj.label === \"string\" && obj.label) ||\n (typeof obj.description === \"string\" && obj.description) ||\n null;\n if (!label) continue;\n const status = typeof obj.status === \"string\" ? obj.status : \"\";\n steps.push({\n id: `step-${steps.length}`,\n label,\n state:\n status === \"done\" || status === \"complete\" || status === \"completed\"\n ? \"done\"\n : status === \"active\" ||\n status === \"in_progress\" ||\n status === \"running\"\n ? \"active\"\n : status === \"blocked\" || status === \"failed\"\n ? \"blocked\"\n : \"pending\",\n });\n }\n }\n return steps;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\n/** Open the rich Orchestrator workbench route via the navigation bus. */\nfunction openWorkbench(): void {\n if (typeof window === \"undefined\") return;\n window.dispatchEvent(\n new CustomEvent(\"eliza:navigate:view\", {\n detail: { viewId: \"orchestrator\", viewPath: \"/orchestrator\" },\n }),\n );\n}\n\n/** Copy a deep link to the open task to the clipboard. */\nfunction copyTaskLink(taskId: string): void {\n if (typeof window === \"undefined\") return;\n const url = `${window.location.origin}/orchestrator?task=${encodeURIComponent(taskId)}`;\n void navigator.clipboard?.writeText(url).catch(() => {\n // Clipboard access is best-effort; a denied permission is not an error\n // worth surfacing in the dashboard.\n });\n}\n\nexport function OrchestratorView() {\n const [status, setStatus] =\n useState<CodingAgentOrchestratorStatus | null>(null);\n const [threads, setThreads] = useState<CodingAgentTaskThread[]>([]);\n const [hasMore, setHasMore] = useState(false);\n const [selectedTaskId, setSelectedTaskId] = useState<string | null>(null);\n const [detail, setDetail] = useState<CodingAgentTaskThreadDetail | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const refreshList = useCallback(\n async (silent = false) => {\n if (!silent) setLoading(true);\n try {\n const [nextStatus, nextThreads] = await Promise.all([\n client.getOrchestratorStatus(),\n client.listCodingAgentTaskThreads({ limit: TASK_LIST_LIMIT }),\n ]);\n setStatus(nextStatus);\n setThreads(nextThreads);\n setHasMore(nextThreads.length >= TASK_LIST_LIMIT);\n setError(null);\n } catch (err) {\n if (!silent) {\n setError(errorMessage(err));\n setStatus(null);\n setThreads([]);\n setHasMore(false);\n }\n } finally {\n if (!silent) setLoading(false);\n }\n },\n [],\n );\n\n const loadDetail = useCallback(async (taskId: string) => {\n try {\n const next = await client.getCodingAgentTaskThread(taskId);\n setDetail(next);\n setError(null);\n } catch (err) {\n setError(errorMessage(err));\n setDetail(null);\n }\n }, []);\n\n // Load the task list on mount, then keep it fresh with a quiet 5s poll.\n const autoLoadedRef = useRef(false);\n useEffect(() => {\n if (!autoLoadedRef.current) {\n autoLoadedRef.current = true;\n void refreshList(false);\n }\n const interval = setInterval(() => {\n void refreshList(true);\n if (selectedTaskId) void loadDetail(selectedTaskId);\n }, 5_000);\n return () => clearInterval(interval);\n }, [refreshList, loadDetail, selectedTaskId]);\n\n // Load the open thread's detail whenever the selection changes.\n useEffect(() => {\n if (!selectedTaskId) {\n setDetail(null);\n return;\n }\n void loadDetail(selectedTaskId);\n }, [selectedTaskId, loadDetail]);\n\n const runMutation = useCallback(\n async (mutate: () => Promise<unknown>) => {\n try {\n await mutate();\n await refreshList(true);\n if (selectedTaskId) await loadDetail(selectedTaskId);\n } catch (err) {\n setError(errorMessage(err));\n }\n },\n [refreshList, loadDetail, selectedTaskId],\n );\n\n const onAction = useCallback(\n (action: string) => {\n if (action.startsWith(\"open:\")) {\n setSelectedTaskId(action.slice(\"open:\".length));\n return;\n }\n if (action.startsWith(\"stop-session:\")) {\n const sessionId = action.slice(\"stop-session:\".length);\n if (selectedTaskId) {\n void runMutation(() =>\n client.stopOrchestratorAgent(selectedTaskId, sessionId),\n );\n }\n return;\n }\n if (action.startsWith(\"priority:\")) {\n const priority = action.slice(\"priority:\".length);\n if (\n selectedTaskId &&\n (priority === \"low\" ||\n priority === \"normal\" ||\n priority === \"high\" ||\n priority === \"urgent\")\n ) {\n void runMutation(() =>\n client.updateOrchestratorTask(selectedTaskId, { priority }),\n );\n }\n return;\n }\n switch (action) {\n case \"refresh\":\n void refreshList(false);\n return;\n case \"pause-all\":\n void runMutation(() => client.pauseAllOrchestratorTasks());\n return;\n case \"resume-all\":\n void runMutation(() => client.resumeAllOrchestratorTasks());\n return;\n case \"back\":\n setSelectedTaskId(null);\n return;\n case \"add-agent\":\n openWorkbench();\n return;\n }\n if (!selectedTaskId) return;\n switch (action) {\n case \"pause\":\n void runMutation(() => client.pauseOrchestratorTask(selectedTaskId));\n return;\n case \"resume\":\n void runMutation(() => client.resumeOrchestratorTask(selectedTaskId));\n return;\n case \"validate\":\n void runMutation(() =>\n client.validateOrchestratorTask(selectedTaskId, { passed: true }),\n );\n return;\n case \"fork\":\n void runMutation(() => client.forkOrchestratorTask(selectedTaskId));\n return;\n case \"restart\":\n void runMutation(() =>\n client.restartOrchestratorTask(selectedTaskId),\n );\n return;\n case \"delete\":\n void runMutation(async () => {\n await client.deleteOrchestratorTask(selectedTaskId);\n setSelectedTaskId(null);\n });\n return;\n case \"archive\":\n void runMutation(async () => {\n await client.archiveCodingAgentTaskThread(selectedTaskId);\n setSelectedTaskId(null);\n });\n return;\n case \"reopen\":\n void runMutation(() =>\n client.reopenCodingAgentTaskThread(selectedTaskId),\n );\n return;\n case \"copy-link\":\n copyTaskLink(selectedTaskId);\n return;\n }\n },\n [refreshList, runMutation, selectedTaskId],\n );\n\n const pendingInputs: CodingAgentPendingDecisionRecord[] =\n detail?.pendingDecisions ?? [];\n\n const snapshot: OrchestratorSnapshot = {\n status,\n threads,\n hasMore,\n detail,\n planSteps: detail ? derivePlanSteps(detail.currentPlan) : [],\n pendingInputs,\n loading,\n error,\n };\n\n return (\n <SpatialSurface>\n <OrchestratorSpatialView snapshot={snapshot} onAction={onAction} />\n </SpatialSurface>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,32 @@
1
+ import { type CodingAgentAddAgentInput, type CodingAgentRestartWithEditedPlanInput, type CodingAgentTaskThreadDetail } from "@elizaos/ui";
2
+ import { type CSSProperties } from "react";
3
+ import { type TaskPriority } from "./orchestrator-params";
4
+ type Translate = (key: string, vars?: Record<string, unknown>) => string;
5
+ export declare function TaskInspector({ detail, className, style, onClose, busy, addAgentOpen, onPause, onResume, onArchive, onReopen, onDelete, onFork, onRestart, onRestartWithEditedPlan, onValidate, onSetPriority, onToggleAddAgent, onAddAgent, onInspectSession, onStopAgent, onCopyLink, t, locale, }: {
6
+ detail: CodingAgentTaskThreadDetail;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ onClose?: () => void;
10
+ busy: boolean;
11
+ addAgentOpen: boolean;
12
+ onPause: () => void;
13
+ onResume: () => void;
14
+ onArchive: () => void;
15
+ onReopen: () => void;
16
+ onDelete: () => void;
17
+ onFork: () => void;
18
+ onRestart: () => void;
19
+ onRestartWithEditedPlan: (input: CodingAgentRestartWithEditedPlanInput) => void;
20
+ onValidate: (passed: boolean) => void;
21
+ onSetPriority: (priority: TaskPriority) => void;
22
+ onToggleAddAgent: () => void;
23
+ onAddAgent: (input: CodingAgentAddAgentInput) => void;
24
+ onInspectSession: (sessionId: string) => void;
25
+ onStopAgent: (sessionId: string) => void;
26
+ onCopyLink: () => void;
27
+ t: Translate;
28
+ locale?: string;
29
+ }): import("react/jsx-runtime").JSX.Element;
30
+ export declare function OrchestratorWorkbench(): import("react/jsx-runtime").JSX.Element;
31
+ export {};
32
+ //# sourceMappingURL=OrchestratorWorkbench.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrchestratorWorkbench.d.ts","sourceRoot":"","sources":["../src/OrchestratorWorkbench.tsx"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,wBAAwB,EAG7B,KAAK,qCAAqC,EAO1C,KAAK,2BAA2B,EAMjC,MAAM,aAAa,CAAC;AAuCrB,OAAO,EACL,KAAK,aAAa,EASnB,MAAM,OAAO,CAAC;AACf,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAyB/B,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;AAy/CzE,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,CAAC,EACD,MAAM,GACP,EAAE;IACD,MAAM,EAAE,2BAA2B,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,uBAAuB,EAAE,CACvB,KAAK,EAAE,qCAAqC,KACzC,IAAI,CAAC;IACV,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,UAAU,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACtD,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,CAAC,EAAE,SAAS,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,2CAiWA;AA09BD,wBAAgB,qBAAqB,4CA82BpC"}