@useorgx/openclaw-plugin 0.4.0 → 0.4.1

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 (98) hide show
  1. package/dashboard/dist/assets/BqukHQH-.js +8 -0
  2. package/dashboard/dist/assets/{motion-x9c01cgK.js → CE5pVdev.js} +1 -1
  3. package/dashboard/dist/assets/Cpr7n8fE.js +1 -0
  4. package/dashboard/dist/assets/Nip3CrNC.js +1 -0
  5. package/dashboard/dist/assets/TN5wE36J.js +1 -0
  6. package/dashboard/dist/assets/X6IcjS74.js +212 -0
  7. package/dashboard/dist/assets/jyFhCND-.css +1 -0
  8. package/dashboard/dist/index.html +9 -6
  9. package/dist/adapters/outbox.d.ts +0 -1
  10. package/dist/adapters/outbox.js +0 -1
  11. package/dist/agent-context-store.d.ts +0 -1
  12. package/dist/agent-context-store.js +0 -1
  13. package/dist/agent-run-store.d.ts +0 -1
  14. package/dist/agent-run-store.js +0 -1
  15. package/dist/api.d.ts +0 -1
  16. package/dist/api.js +0 -1
  17. package/dist/auth-store.d.ts +0 -1
  18. package/dist/auth-store.js +0 -1
  19. package/dist/byok-store.d.ts +0 -1
  20. package/dist/byok-store.js +0 -1
  21. package/dist/contracts/client.d.ts +0 -1
  22. package/dist/contracts/client.js +0 -1
  23. package/dist/contracts/types.d.ts +0 -1
  24. package/dist/contracts/types.js +0 -1
  25. package/dist/dashboard-api.d.ts +0 -1
  26. package/dist/dashboard-api.js +0 -1
  27. package/dist/fs-utils.d.ts +0 -1
  28. package/dist/fs-utils.js +0 -1
  29. package/dist/http-handler.d.ts +0 -1
  30. package/dist/http-handler.js +24 -1
  31. package/dist/index.d.ts +0 -1
  32. package/dist/index.js +0 -1
  33. package/dist/local-openclaw.d.ts +0 -1
  34. package/dist/local-openclaw.js +0 -1
  35. package/dist/outbox.d.ts +0 -1
  36. package/dist/outbox.js +0 -1
  37. package/dist/paths.d.ts +0 -1
  38. package/dist/paths.js +0 -1
  39. package/dist/reporting/outbox-replay.d.ts +0 -1
  40. package/dist/reporting/outbox-replay.js +0 -1
  41. package/dist/reporting/rollups.d.ts +0 -1
  42. package/dist/reporting/rollups.js +0 -1
  43. package/dist/runtime-instance-store.d.ts +0 -1
  44. package/dist/runtime-instance-store.js +0 -1
  45. package/dist/snapshot-store.d.ts +0 -1
  46. package/dist/snapshot-store.js +0 -1
  47. package/dist/types.d.ts +0 -1
  48. package/dist/types.js +0 -1
  49. package/package.json +2 -2
  50. package/dashboard/dist/assets/MissionControlView-DVNfDWKZ.js +0 -1
  51. package/dashboard/dist/assets/SessionInspector-BaqnAys4.js +0 -1
  52. package/dashboard/dist/assets/index-B4Yix84X.js +0 -212
  53. package/dashboard/dist/assets/index-BWSvw1HR.css +0 -1
  54. package/dashboard/dist/assets/react-vendor-C2t2w4r2.js +0 -32
  55. package/dashboard/dist/assets/vendor-C-AHK0Ly.js +0 -9
  56. package/dist/adapters/outbox.d.ts.map +0 -1
  57. package/dist/adapters/outbox.js.map +0 -1
  58. package/dist/agent-context-store.d.ts.map +0 -1
  59. package/dist/agent-context-store.js.map +0 -1
  60. package/dist/agent-run-store.d.ts.map +0 -1
  61. package/dist/agent-run-store.js.map +0 -1
  62. package/dist/api.d.ts.map +0 -1
  63. package/dist/api.js.map +0 -1
  64. package/dist/auth-store.d.ts.map +0 -1
  65. package/dist/auth-store.js.map +0 -1
  66. package/dist/byok-store.d.ts.map +0 -1
  67. package/dist/byok-store.js.map +0 -1
  68. package/dist/contracts/client.d.ts.map +0 -1
  69. package/dist/contracts/client.js.map +0 -1
  70. package/dist/contracts/types.d.ts.map +0 -1
  71. package/dist/contracts/types.js.map +0 -1
  72. package/dist/dashboard-api.d.ts.map +0 -1
  73. package/dist/dashboard-api.js.map +0 -1
  74. package/dist/fs-utils.d.ts.map +0 -1
  75. package/dist/fs-utils.js.map +0 -1
  76. package/dist/http-handler.d.ts.map +0 -1
  77. package/dist/http-handler.js.map +0 -1
  78. package/dist/index.d.ts.map +0 -1
  79. package/dist/index.js.map +0 -1
  80. package/dist/local-openclaw.d.ts.map +0 -1
  81. package/dist/local-openclaw.js.map +0 -1
  82. package/dist/mcp-apps/orgx-live.html +0 -690
  83. package/dist/outbox.d.ts.map +0 -1
  84. package/dist/outbox.js.map +0 -1
  85. package/dist/paths.d.ts.map +0 -1
  86. package/dist/paths.js.map +0 -1
  87. package/dist/reporting/outbox-replay.d.ts.map +0 -1
  88. package/dist/reporting/outbox-replay.js.map +0 -1
  89. package/dist/reporting/rollups.d.ts.map +0 -1
  90. package/dist/reporting/rollups.js.map +0 -1
  91. package/dist/runtime-instance-store.d.ts.map +0 -1
  92. package/dist/runtime-instance-store.js.map +0 -1
  93. package/dist/snapshot-store.d.ts.map +0 -1
  94. package/dist/snapshot-store.js.map +0 -1
  95. package/dist/types.d.ts.map +0 -1
  96. package/dist/types.js.map +0 -1
  97. /package/dashboard/dist/assets/{tanstack-C-KIc3Wc.js → C-KIc3Wc.js} +0 -0
  98. /package/dashboard/dist/assets/{orgx-logo-Fm0FhtnV.png → Fm0FhtnV.png} +0 -0
@@ -1,690 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>OrgX Live</title>
7
- <meta
8
- http-equiv="Content-Security-Policy"
9
- content="default-src 'none'; img-src data: https:; style-src 'unsafe-inline'; script-src 'unsafe-inline'; connect-src *;"
10
- />
11
- <style>
12
- :root {
13
- --bg: #0b0d12;
14
- --panel: #121625;
15
- --panel2: #0f1320;
16
- --border: rgba(255, 255, 255, 0.1);
17
- --text: rgba(255, 255, 255, 0.92);
18
- --muted: rgba(255, 255, 255, 0.65);
19
- --muted2: rgba(255, 255, 255, 0.5);
20
- --accent: #7c5cff;
21
- --accent2: #23d2aa;
22
- --warn: #ffcc66;
23
- --bad: #ff5c7a;
24
- --good: #2cffb0;
25
- --shadow: rgba(0, 0, 0, 0.55);
26
- --radius: 14px;
27
- --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
28
- "Liberation Mono", "Courier New", monospace;
29
- --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto,
30
- Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
31
- }
32
-
33
- html,
34
- body {
35
- height: 100%;
36
- margin: 0;
37
- padding: 0;
38
- background: radial-gradient(
39
- 900px 520px at 20% 10%,
40
- rgba(124, 92, 255, 0.16),
41
- rgba(0, 0, 0, 0)
42
- ),
43
- radial-gradient(
44
- 800px 440px at 80% 0%,
45
- rgba(35, 210, 170, 0.12),
46
- rgba(0, 0, 0, 0)
47
- ),
48
- linear-gradient(180deg, #07080c, var(--bg));
49
- color: var(--text);
50
- font-family: var(--sans);
51
- }
52
-
53
- a {
54
- color: inherit;
55
- text-decoration: none;
56
- }
57
-
58
- .wrap {
59
- max-width: 980px;
60
- margin: 0 auto;
61
- padding: 18px;
62
- }
63
-
64
- .top {
65
- display: flex;
66
- align-items: flex-start;
67
- justify-content: space-between;
68
- gap: 16px;
69
- padding: 16px 16px 14px 16px;
70
- border: 1px solid var(--border);
71
- border-radius: var(--radius);
72
- background: linear-gradient(
73
- 180deg,
74
- rgba(255, 255, 255, 0.05),
75
- rgba(255, 255, 255, 0.02)
76
- );
77
- box-shadow: 0 16px 40px var(--shadow);
78
- }
79
-
80
- .brand {
81
- display: flex;
82
- flex-direction: column;
83
- gap: 6px;
84
- }
85
-
86
- .title {
87
- font-size: 18px;
88
- font-weight: 760;
89
- letter-spacing: -0.02em;
90
- display: flex;
91
- align-items: baseline;
92
- gap: 10px;
93
- }
94
-
95
- .badge {
96
- font-family: var(--mono);
97
- font-size: 12px;
98
- color: var(--muted);
99
- border: 1px solid var(--border);
100
- border-radius: 999px;
101
- padding: 2px 8px;
102
- background: rgba(0, 0, 0, 0.2);
103
- }
104
-
105
- .sub {
106
- display: flex;
107
- flex-wrap: wrap;
108
- gap: 10px;
109
- font-size: 12px;
110
- color: var(--muted);
111
- }
112
-
113
- .pill {
114
- display: inline-flex;
115
- align-items: center;
116
- gap: 8px;
117
- padding: 6px 10px;
118
- border-radius: 999px;
119
- border: 1px solid var(--border);
120
- background: rgba(0, 0, 0, 0.2);
121
- }
122
-
123
- .dot {
124
- width: 8px;
125
- height: 8px;
126
- border-radius: 999px;
127
- background: rgba(255, 255, 255, 0.25);
128
- }
129
-
130
- .dot.good {
131
- background: var(--good);
132
- }
133
- .dot.warn {
134
- background: var(--warn);
135
- }
136
- .dot.bad {
137
- background: var(--bad);
138
- }
139
-
140
- .actions {
141
- display: flex;
142
- flex-wrap: wrap;
143
- gap: 10px;
144
- justify-content: flex-end;
145
- }
146
-
147
- button {
148
- font: inherit;
149
- color: var(--text);
150
- border: 1px solid var(--border);
151
- background: rgba(0, 0, 0, 0.2);
152
- border-radius: 12px;
153
- padding: 10px 12px;
154
- cursor: pointer;
155
- transition: transform 120ms ease, background 120ms ease,
156
- border-color 120ms ease;
157
- }
158
-
159
- button:hover {
160
- background: rgba(255, 255, 255, 0.06);
161
- border-color: rgba(255, 255, 255, 0.22);
162
- transform: translateY(-1px);
163
- }
164
-
165
- button.primary {
166
- background: linear-gradient(
167
- 90deg,
168
- rgba(124, 92, 255, 0.9),
169
- rgba(35, 210, 170, 0.75)
170
- );
171
- border-color: rgba(255, 255, 255, 0.22);
172
- }
173
-
174
- .grid {
175
- display: grid;
176
- grid-template-columns: repeat(12, 1fr);
177
- gap: 14px;
178
- margin-top: 14px;
179
- }
180
-
181
- .card {
182
- grid-column: span 12;
183
- border: 1px solid var(--border);
184
- border-radius: var(--radius);
185
- background: linear-gradient(
186
- 180deg,
187
- rgba(255, 255, 255, 0.05),
188
- rgba(255, 255, 255, 0.02)
189
- );
190
- box-shadow: 0 10px 26px rgba(0, 0, 0, 0.45);
191
- overflow: hidden;
192
- }
193
-
194
- .card h2 {
195
- margin: 0;
196
- padding: 12px 14px;
197
- font-size: 13px;
198
- letter-spacing: 0.02em;
199
- color: rgba(255, 255, 255, 0.76);
200
- text-transform: uppercase;
201
- border-bottom: 1px solid var(--border);
202
- background: rgba(0, 0, 0, 0.18);
203
- }
204
-
205
- .card .body {
206
- padding: 12px 14px 14px 14px;
207
- }
208
-
209
- .list {
210
- display: flex;
211
- flex-direction: column;
212
- gap: 10px;
213
- }
214
-
215
- .row {
216
- display: flex;
217
- align-items: flex-start;
218
- justify-content: space-between;
219
- gap: 12px;
220
- border: 1px solid var(--border);
221
- border-radius: 12px;
222
- background: linear-gradient(180deg, var(--panel), var(--panel2));
223
- padding: 10px 12px;
224
- }
225
-
226
- .row .left {
227
- min-width: 0;
228
- }
229
-
230
- .row .right {
231
- flex: 0 0 auto;
232
- display: flex;
233
- gap: 10px;
234
- align-items: center;
235
- color: var(--muted2);
236
- font-family: var(--mono);
237
- font-size: 12px;
238
- white-space: nowrap;
239
- }
240
-
241
- .row .name {
242
- font-weight: 650;
243
- letter-spacing: -0.01em;
244
- line-height: 1.2;
245
- overflow: hidden;
246
- text-overflow: ellipsis;
247
- white-space: nowrap;
248
- max-width: 100%;
249
- }
250
-
251
- .row .meta {
252
- margin-top: 6px;
253
- font-size: 12px;
254
- color: var(--muted);
255
- display: flex;
256
- flex-wrap: wrap;
257
- gap: 8px;
258
- }
259
-
260
- .tag {
261
- font-family: var(--mono);
262
- font-size: 11px;
263
- border: 1px solid var(--border);
264
- border-radius: 999px;
265
- padding: 2px 8px;
266
- background: rgba(0, 0, 0, 0.16);
267
- color: rgba(255, 255, 255, 0.78);
268
- }
269
-
270
- .empty {
271
- color: var(--muted);
272
- font-size: 13px;
273
- padding: 8px 2px;
274
- }
275
-
276
- .error {
277
- border: 1px solid rgba(255, 92, 122, 0.35);
278
- background: rgba(255, 92, 122, 0.08);
279
- color: rgba(255, 255, 255, 0.9);
280
- border-radius: 12px;
281
- padding: 12px;
282
- font-family: var(--mono);
283
- font-size: 12px;
284
- white-space: pre-wrap;
285
- }
286
-
287
- @media (min-width: 860px) {
288
- .card.split {
289
- grid-column: span 6;
290
- }
291
- }
292
- </style>
293
- </head>
294
- <body>
295
- <div class="wrap">
296
- <div class="top">
297
- <div class="brand">
298
- <div class="title">
299
- OrgX Live
300
- <span class="badge">plugin __ORGX_PLUGIN_VERSION__</span>
301
- </div>
302
- <div class="sub">
303
- <span class="pill"
304
- ><span id="connDot" class="dot warn"></span
305
- ><span id="connLabel">Connecting...</span></span
306
- >
307
- <span class="pill"
308
- ><span class="dot"></span
309
- ><span id="syncedAt">No snapshot yet</span></span
310
- >
311
- </div>
312
- </div>
313
- <div class="actions">
314
- <button id="refreshBtn" class="primary" type="button">Refresh</button>
315
- <button id="openDashBtn" type="button">Open OrgX Live</button>
316
- <button id="openDocsBtn" type="button">Docs</button>
317
- </div>
318
- </div>
319
-
320
- <div class="grid">
321
- <section class="card split">
322
- <h2>Initiatives</h2>
323
- <div class="body">
324
- <div id="initiatives" class="list"></div>
325
- </div>
326
- </section>
327
-
328
- <section class="card split">
329
- <h2>Agents</h2>
330
- <div class="body">
331
- <div id="agents" class="list"></div>
332
- </div>
333
- </section>
334
-
335
- <section class="card split">
336
- <h2>Active Tasks</h2>
337
- <div class="body">
338
- <div id="tasks" class="list"></div>
339
- </div>
340
- </section>
341
-
342
- <section class="card split">
343
- <h2>Pending Decisions</h2>
344
- <div class="body">
345
- <div id="decisions" class="list"></div>
346
- </div>
347
- </section>
348
-
349
- <section class="card">
350
- <h2>Raw</h2>
351
- <div class="body">
352
- <div id="raw" class="error" style="display: none"></div>
353
- <div id="hint" class="empty">
354
- This app calls back into the host via MCP Apps postMessage, then
355
- reads OrgX state via <span class="tag">tools/call</span>.
356
- </div>
357
- </div>
358
- </section>
359
- </div>
360
- </div>
361
-
362
- <script>
363
- (() => {
364
- const PROTOCOL_VERSION = "2026-01-26";
365
- const APP_REQUEST_MESSAGE_TYPE = "mcp/app/request";
366
- const APP_RESPONSE_MESSAGE_TYPE = "mcp/app/response";
367
- const APP_NOTIFICATION_MESSAGE_TYPE = "mcp/app/notification";
368
- const CHANNEL_ID_PARAM = "mcp-app-channel-id";
369
-
370
- const INITIALIZE_METHOD = "ui/initialize";
371
- const TOOL_CALL_METHOD = "tools/call";
372
- const HOST_CONTEXT_CHANGED_METHOD = "ui/hostContextChanged";
373
-
374
- const qs = new URLSearchParams(window.location.search);
375
- const channelId = qs.get(CHANNEL_ID_PARAM) || null;
376
-
377
- const el = {
378
- connDot: document.getElementById("connDot"),
379
- connLabel: document.getElementById("connLabel"),
380
- syncedAt: document.getElementById("syncedAt"),
381
- refreshBtn: document.getElementById("refreshBtn"),
382
- openDashBtn: document.getElementById("openDashBtn"),
383
- openDocsBtn: document.getElementById("openDocsBtn"),
384
- initiatives: document.getElementById("initiatives"),
385
- agents: document.getElementById("agents"),
386
- tasks: document.getElementById("tasks"),
387
- decisions: document.getElementById("decisions"),
388
- raw: document.getElementById("raw"),
389
- hint: document.getElementById("hint"),
390
- };
391
-
392
- function setConn(kind, label) {
393
- el.connLabel.textContent = label;
394
- el.connDot.className = `dot ${kind}`;
395
- }
396
-
397
- function setSyncedAt(value) {
398
- el.syncedAt.textContent = value || "No snapshot yet";
399
- }
400
-
401
- function safeText(value) {
402
- if (value == null) return "";
403
- return String(value);
404
- }
405
-
406
- function clear(node) {
407
- while (node.firstChild) node.removeChild(node.firstChild);
408
- }
409
-
410
- function row(title, tags, rightText) {
411
- const root = document.createElement("div");
412
- root.className = "row";
413
-
414
- const left = document.createElement("div");
415
- left.className = "left";
416
-
417
- const name = document.createElement("div");
418
- name.className = "name";
419
- name.textContent = title;
420
-
421
- const meta = document.createElement("div");
422
- meta.className = "meta";
423
- for (const t of tags) {
424
- const tag = document.createElement("span");
425
- tag.className = "tag";
426
- tag.textContent = t;
427
- meta.appendChild(tag);
428
- }
429
-
430
- left.appendChild(name);
431
- if (tags.length) left.appendChild(meta);
432
-
433
- const right = document.createElement("div");
434
- right.className = "right";
435
- right.textContent = rightText || "";
436
-
437
- root.appendChild(left);
438
- root.appendChild(right);
439
- return root;
440
- }
441
-
442
- function empty(text) {
443
- const d = document.createElement("div");
444
- d.className = "empty";
445
- d.textContent = text;
446
- return d;
447
- }
448
-
449
- function showRaw(value) {
450
- const text =
451
- typeof value === "string" ? value : JSON.stringify(value, null, 2);
452
- el.raw.style.display = "block";
453
- el.raw.textContent = text;
454
- }
455
-
456
- function hideRaw() {
457
- el.raw.style.display = "none";
458
- el.raw.textContent = "";
459
- }
460
-
461
- function randomId() {
462
- if (typeof crypto !== "undefined" && crypto.randomUUID) {
463
- return crypto.randomUUID();
464
- }
465
- return `${Date.now()}-${Math.random().toString(16).slice(2)}`;
466
- }
467
-
468
- const pending = new Map();
469
-
470
- function postEnvelope(message) {
471
- window.parent.postMessage(message, "*");
472
- }
473
-
474
- function request(method, params, timeoutMs = 30_000) {
475
- return new Promise((resolve, reject) => {
476
- const id = randomId();
477
- const timer = setTimeout(() => {
478
- pending.delete(id);
479
- reject(new Error(`timeout waiting for ${method}`));
480
- }, timeoutMs);
481
-
482
- pending.set(id, { resolve, reject, timer });
483
-
484
- const envelope = {
485
- protocolVersion: PROTOCOL_VERSION,
486
- messageType: APP_REQUEST_MESSAGE_TYPE,
487
- request: {
488
- jsonrpc: "2.0",
489
- id,
490
- method,
491
- params,
492
- },
493
- };
494
-
495
- if (channelId) envelope.channelId = channelId;
496
- postEnvelope(envelope);
497
- });
498
- }
499
-
500
- function handleNotification(notification) {
501
- if (!notification || typeof notification !== "object") return;
502
- if (notification.method === HOST_CONTEXT_CHANGED_METHOD) {
503
- const theme = notification.params && notification.params.theme;
504
- if (theme && typeof theme === "object") {
505
- // Host theme is optional; we keep our own styling for now.
506
- }
507
- }
508
- }
509
-
510
- function onMessage(event) {
511
- const msg = event.data;
512
- if (!msg || typeof msg !== "object") return;
513
-
514
- if (channelId && msg.channelId && msg.channelId !== channelId) {
515
- return;
516
- }
517
-
518
- if (msg.messageType === APP_RESPONSE_MESSAGE_TYPE && msg.response) {
519
- const id = msg.response.id;
520
- const slot = pending.get(id);
521
- if (!slot) return;
522
- pending.delete(id);
523
- clearTimeout(slot.timer);
524
- if (msg.response.error) {
525
- slot.reject(new Error(msg.response.error.message || "error"));
526
- } else {
527
- slot.resolve(msg.response.result);
528
- }
529
- return;
530
- }
531
-
532
- if (
533
- msg.messageType === APP_NOTIFICATION_MESSAGE_TYPE &&
534
- msg.notification
535
- ) {
536
- handleNotification(msg.notification);
537
- }
538
- }
539
-
540
- window.addEventListener("message", onMessage);
541
-
542
- async function initialize() {
543
- const result = await request(INITIALIZE_METHOD, {
544
- protocolVersion: PROTOCOL_VERSION,
545
- clientInfo: {
546
- name: "OrgX Live (OpenClaw Plugin)",
547
- version: "__ORGX_PLUGIN_VERSION__",
548
- },
549
- });
550
- return result;
551
- }
552
-
553
- async function callTool(name, args) {
554
- return request(TOOL_CALL_METHOD, { name, arguments: args || {} });
555
- }
556
-
557
- function extractText(toolResult) {
558
- const content = toolResult && toolResult.content;
559
- if (!Array.isArray(content)) return "";
560
- for (const item of content) {
561
- if (!item || typeof item !== "object") continue;
562
- if (item.type === "text" && typeof item.text === "string") {
563
- return item.text;
564
- }
565
- }
566
- return "";
567
- }
568
-
569
- function renderStatus(statusJson) {
570
- const baseUrl = statusJson && statusJson.baseUrl;
571
- const docsUrl = statusJson && statusJson.docsUrl;
572
- const snap = statusJson && statusJson.snapshot;
573
-
574
- el.openDashBtn.disabled = !baseUrl;
575
- el.openDocsBtn.disabled = !docsUrl;
576
- el.openDashBtn.onclick = () => {
577
- if (!baseUrl) return;
578
- window.open(`${baseUrl.replace(/\\/+$/, "")}/live`, "_blank");
579
- };
580
- el.openDocsBtn.onclick = () => {
581
- if (!docsUrl) return;
582
- window.open(docsUrl, "_blank");
583
- };
584
-
585
- setSyncedAt((snap && snap.syncedAt) || "");
586
-
587
- clear(el.initiatives);
588
- const initiatives = (snap && snap.initiatives) || [];
589
- if (!initiatives.length) {
590
- el.initiatives.appendChild(empty("No initiatives in snapshot."));
591
- } else {
592
- for (const init of initiatives.slice(0, 8)) {
593
- const pct =
594
- init.progress == null ? "" : `${Math.round(init.progress)}%`;
595
- const tags = [];
596
- if (init.status) tags.push(safeText(init.status));
597
- if (pct) tags.push(pct);
598
- el.initiatives.appendChild(
599
- row(init.title || init.id || "Untitled", tags, init.id || "")
600
- );
601
- }
602
- }
603
-
604
- clear(el.agents);
605
- const agents = (snap && snap.agents) || [];
606
- if (!agents.length) {
607
- el.agents.appendChild(empty("No agents in snapshot."));
608
- } else {
609
- for (const a of agents.slice(0, 10)) {
610
- const tags = [];
611
- if (a.domain) tags.push(safeText(a.domain));
612
- if (a.status) tags.push(safeText(a.status));
613
- if (a.currentTask) tags.push(`task: ${safeText(a.currentTask)}`);
614
- el.agents.appendChild(
615
- row(a.name || a.id || "Agent", tags, a.id || "")
616
- );
617
- }
618
- }
619
-
620
- clear(el.tasks);
621
- const tasks = (snap && snap.activeTasks) || [];
622
- if (!tasks.length) {
623
- el.tasks.appendChild(empty("No active tasks in snapshot."));
624
- } else {
625
- for (const t of tasks.slice(0, 10)) {
626
- const tags = [];
627
- if (t.status) tags.push(safeText(t.status));
628
- if (t.domain) tags.push(safeText(t.domain));
629
- if (t.modelTier) tags.push(safeText(t.modelTier));
630
- el.tasks.appendChild(
631
- row(t.title || t.id || "Task", tags, t.id || "")
632
- );
633
- }
634
- }
635
-
636
- clear(el.decisions);
637
- const decisions = (snap && snap.pendingDecisions) || [];
638
- if (!decisions.length) {
639
- el.decisions.appendChild(empty("No pending decisions."));
640
- } else {
641
- for (const d of decisions.slice(0, 10)) {
642
- const tags = [];
643
- if (d.urgency) tags.push(`urgency: ${safeText(d.urgency)}`);
644
- el.decisions.appendChild(
645
- row(d.title || d.id || "Decision", tags, d.id || "")
646
- );
647
- }
648
- }
649
- }
650
-
651
- async function refresh() {
652
- hideRaw();
653
- el.refreshBtn.disabled = true;
654
- el.refreshBtn.textContent = "Refreshing...";
655
- try {
656
- const toolResult = await callTool("orgx_status_json", {});
657
- const rawText = extractText(toolResult);
658
- const statusJson = rawText ? JSON.parse(rawText) : null;
659
- if (!statusJson || !statusJson.snapshot) {
660
- showRaw(toolResult);
661
- throw new Error("unexpected response");
662
- }
663
- renderStatus(statusJson);
664
- } finally {
665
- el.refreshBtn.disabled = false;
666
- el.refreshBtn.textContent = "Refresh";
667
- }
668
- }
669
-
670
- async function boot() {
671
- try {
672
- setConn("warn", "Initializing...");
673
- await initialize();
674
- setConn("good", "Connected");
675
- el.refreshBtn.addEventListener("click", refresh);
676
- await refresh();
677
- } catch (err) {
678
- setConn("bad", "Failed");
679
- showRaw(
680
- err instanceof Error ? `${err.name}: ${err.message}` : String(err)
681
- );
682
- }
683
- }
684
-
685
- boot();
686
- })();
687
- </script>
688
- </body>
689
- </html>
690
-
@@ -1 +0,0 @@
1
- {"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../src/outbox.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkCnD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,6DAA6D;IAC7D,YAAY,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AA6DD,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAc1E;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuBtE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CA8ChE;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"outbox.js","sourceRoot":"","sources":["../src/outbox.ts"],"names":[],"mappings":"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"}