@manta-eu/react 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +1 -0
  2. package/dist/components/chat-view/Chat.d.ts +20 -0
  3. package/dist/components/chat-view/Chat.d.ts.map +1 -1
  4. package/dist/components/chat-view/Chat.js +51 -15
  5. package/dist/components/chat-view/Chat.js.map +1 -1
  6. package/dist/components/embedded-chat/index.d.ts +1 -1
  7. package/dist/components/embedded-chat/index.d.ts.map +1 -1
  8. package/dist/components/embedded-chat/index.js +1 -1
  9. package/dist/components/embedded-chat/index.js.map +1 -1
  10. package/dist/components/planning/ActioningView.d.ts.map +1 -1
  11. package/dist/components/planning/ActioningView.js +1 -1
  12. package/dist/components/planning/ActioningView.js.map +1 -1
  13. package/dist/components/planning/ExecutionTopBar.d.ts +1 -0
  14. package/dist/components/planning/ExecutionTopBar.d.ts.map +1 -1
  15. package/dist/components/planning/ExecutionTopBar.js +3 -2
  16. package/dist/components/planning/ExecutionTopBar.js.map +1 -1
  17. package/dist/components/planning/plan-detail-utils.d.ts +1 -0
  18. package/dist/components/planning/plan-detail-utils.d.ts.map +1 -1
  19. package/dist/components/planning/plan-detail-utils.js +5 -2
  20. package/dist/components/planning/plan-detail-utils.js.map +1 -1
  21. package/dist/components/tool-invocation-card/ToolOutputRenderer.d.ts.map +1 -1
  22. package/dist/components/tool-invocation-card/ToolOutputRenderer.js +5 -2
  23. package/dist/components/tool-invocation-card/ToolOutputRenderer.js.map +1 -1
  24. package/dist/hooks/use-connection-problems.d.ts.map +1 -1
  25. package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
  26. package/dist/lib/chat-types.d.ts +17 -0
  27. package/dist/lib/chat-types.d.ts.map +1 -1
  28. package/dist/lib/chat-types.js.map +1 -1
  29. package/dist/providers/ChatManagerProvider.d.ts +7 -0
  30. package/dist/providers/ChatManagerProvider.d.ts.map +1 -1
  31. package/dist/providers/ChatManagerProvider.js +129 -16
  32. package/dist/providers/ChatManagerProvider.js.map +1 -1
  33. package/dist/providers/chat-connection-context.d.ts +4 -1
  34. package/dist/providers/chat-connection-context.d.ts.map +1 -1
  35. package/dist/providers/chat-connection-context.js.map +1 -1
  36. package/dist/providers/chat-connection-lifecycle.d.ts +1 -0
  37. package/dist/providers/chat-connection-lifecycle.d.ts.map +1 -1
  38. package/dist/providers/chat-connection-lifecycle.js.map +1 -1
  39. package/dist/providers/chat-socket-auth.d.ts +3 -1
  40. package/dist/providers/chat-socket-auth.d.ts.map +1 -1
  41. package/dist/providers/chat-socket-auth.js +27 -9
  42. package/dist/providers/chat-socket-auth.js.map +1 -1
  43. package/dist/providers/chat-startup-timing.d.ts +14 -0
  44. package/dist/providers/chat-startup-timing.d.ts.map +1 -0
  45. package/dist/providers/chat-startup-timing.js +72 -0
  46. package/dist/providers/chat-startup-timing.js.map +1 -0
  47. package/dist/routes/plans/components/ActionPlansTableColumns.d.ts.map +1 -1
  48. package/dist/routes/plans/components/ActionPlansTableColumns.js +3 -3
  49. package/dist/routes/plans/components/ActionPlansTableColumns.js.map +1 -1
  50. package/package.json +7 -7
  51. package/src/components/chat-view/Chat.tsx +62 -15
  52. package/src/components/embedded-chat/index.tsx +9 -2
  53. package/src/components/planning/ActioningView.tsx +1 -0
  54. package/src/components/planning/ExecutionTopBar.tsx +14 -2
  55. package/src/components/planning/plan-detail-utils.tsx +6 -2
  56. package/src/components/tool-invocation-card/ToolOutputRenderer.tsx +5 -2
  57. package/src/lib/chat-types.ts +18 -0
  58. package/src/providers/ChatManagerProvider.tsx +166 -15
  59. package/src/providers/chat-connection-context.ts +4 -0
  60. package/src/providers/chat-connection-lifecycle.ts +1 -0
  61. package/src/providers/chat-socket-auth.ts +31 -12
  62. package/src/providers/chat-startup-timing.ts +89 -0
  63. package/src/routes/plans/components/ActionPlansTableColumns.tsx +3 -2
@@ -0,0 +1,72 @@
1
+ export function createChatStartupTimeline() {
2
+ return { startedAt: performance.now(), marks: {}, ticketAttempts: 0, socketAttempts: 0 };
3
+ }
4
+ const attemptEnds = {
5
+ "token-requested": "socket-open",
6
+ "ticket-requested": "socket-open",
7
+ "ticket-received": "socket-open",
8
+ "socket-enabled": "socket-open",
9
+ "chat-mounted": "interactive",
10
+ };
11
+ const measures = {
12
+ "ticket-requested": { name: "host-token", from: "token-requested" },
13
+ "ticket-received": { name: "ticket", from: "ticket-requested" },
14
+ "socket-open": { name: "socket", from: "socket-enabled" },
15
+ "chat-mounted": { name: "until-chat-mount", from: "start" },
16
+ "first-paint": { name: "until-first-paint", from: "chat-mounted" },
17
+ interactive: { name: "until-interactive", from: "chat-mounted" },
18
+ };
19
+ export function markChatStartup(timeline, phase) {
20
+ const attemptEnd = attemptEnds[phase];
21
+ if (timeline.marks[attemptEnd ?? phase] !== undefined)
22
+ return false;
23
+ const now = performance.now();
24
+ timeline.marks[phase] = now - timeline.startedAt;
25
+ if (phase === "chat-mounted")
26
+ delete timeline.marks["first-paint"];
27
+ if (phase === "token-requested")
28
+ timeline.ticketAttempts += 1;
29
+ if (phase === "socket-enabled")
30
+ timeline.socketAttempts += 1;
31
+ const measure = measures[phase];
32
+ const from = measure && (measure.from === "start" ? 0 : timeline.marks[measure.from]);
33
+ try {
34
+ performance.mark(`manta-chat:${phase}`);
35
+ if (measure && from !== undefined) {
36
+ performance.measure(`manta-chat:${measure.name}`, { start: timeline.startedAt + from, end: now });
37
+ }
38
+ }
39
+ catch { }
40
+ return true;
41
+ }
42
+ function elapsed(from, to) {
43
+ return Math.max(0, Math.round(to - from));
44
+ }
45
+ export function chatStartupReport(timeline, input) {
46
+ const { marks } = timeline;
47
+ const socketOpen = marks["socket-open"];
48
+ const chatMounted = marks["chat-mounted"];
49
+ const firstPaint = marks["first-paint"];
50
+ const interactive = marks.interactive;
51
+ if (socketOpen === undefined || chatMounted === undefined || firstPaint === undefined || interactive === undefined) {
52
+ return undefined;
53
+ }
54
+ const tokenRequested = marks["token-requested"];
55
+ const ticketRequested = marks["ticket-requested"];
56
+ const ticketReceived = marks["ticket-received"];
57
+ const ticketed = input.mode === "ticket" && ticketRequested !== undefined && ticketReceived !== undefined;
58
+ return {
59
+ ...input,
60
+ ...(ticketed && tokenRequested !== undefined ? { hostTokenMs: elapsed(tokenRequested, ticketRequested) } : {}),
61
+ ...(ticketed
62
+ ? { ticketMs: elapsed(ticketRequested, ticketReceived), ticketAttempts: Math.max(1, timeline.ticketAttempts) }
63
+ : {}),
64
+ socketMs: elapsed(marks["socket-enabled"] ?? 0, socketOpen),
65
+ socketAttempts: Math.max(1, timeline.socketAttempts),
66
+ chatMountMs: elapsed(0, chatMounted),
67
+ socketReadyAtOpen: socketOpen <= chatMounted,
68
+ firstPaintMs: elapsed(chatMounted, firstPaint),
69
+ interactiveMs: elapsed(chatMounted, interactive),
70
+ };
71
+ }
72
+ //# sourceMappingURL=chat-startup-timing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-startup-timing.js","sourceRoot":"","sources":["../../src/providers/chat-startup-timing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionPlansTableColumns.d.ts","sourceRoot":"","sources":["../../../../src/routes/plans/components/ActionPlansTableColumns.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAkBvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,KAAK,8BAA8B,GAAG;IACpC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAyDF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,8BAA8B,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAuHxG"}
1
+ {"version":3,"file":"ActionPlansTableColumns.d.ts","sourceRoot":"","sources":["../../../../src/routes/plans/components/ActionPlansTableColumns.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAmBvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,KAAK,8BAA8B,GAAG;IACpC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAyDF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,8BAA8B,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAuHxG"}
@@ -11,7 +11,7 @@ import { actionPlanColumnIds, actionPlanColumnLabels } from "./actionPlansTableC
11
11
  import { Badge } from "#components/badge/index";
12
12
  import { Button } from "#components/button/index";
13
13
  import { Dropdown, DropdownContent, DropdownGroup, DropdownItem, DropdownTrigger } from "#components/dropdown/index";
14
- import { formatIntegration, IntegrationIcon, integrationToChannel, isTerminalActionPlanState, planStateVariant, statusLabel, } from "#components/planning/plan-detail-utils";
14
+ import { formatIntegration, IntegrationIcon, integrationToChannel, isTerminalActionPlanState, needsApproval, planStateVariant, statusLabel, } from "#components/planning/plan-detail-utils";
15
15
  import { Tooltip, TooltipContent, TooltipTrigger } from "#components/tooltip/index";
16
16
  import { getPendingManualActions } from "#lib/manual-actions";
17
17
  function getPlanName(plan) {
@@ -21,9 +21,9 @@ function planStateLabel(plan, pendingApprovalCount) {
21
21
  return match({
22
22
  state: plan.state,
23
23
  hasCurrentFacts: plan.hasCurrentFacts,
24
- hasPendingApproval: pendingApprovalCount > 0,
24
+ needsApproval: needsApproval(plan.state, pendingApprovalCount),
25
25
  })
26
- .with({ state: GQLActionPlanState.Running, hasPendingApproval: true }, () => "Needs approval")
26
+ .with({ needsApproval: true }, () => "Needs approval")
27
27
  .with({ state: GQLActionPlanState.Draft, hasCurrentFacts: false }, () => "Not currently executable")
28
28
  .with({ state: GQLActionPlanState.Draft }, () => "Ready to launch")
29
29
  .otherwise(({ state: matchedState }) => statusLabel(matchedState));
@@ -1 +1 @@
1
- {"version":3,"file":"ActionPlansTableColumns.js","sourceRoot":"","sources":["../../../../src/routes/plans/components/ActionPlansTableColumns.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionPlansTableColumns.js","sourceRoot":"","sources":["../../../../src/routes/plans/components/ActionPlansTableColumns.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACrH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,SAAS,WAAW,CAAC,IAAgB;IACnC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB,EAAE,oBAA4B;IACpE,OAAO,KAAK,CAAC;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC;KAC/D,CAAC;SACC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC;SACrD,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC;SACnG,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC;SAClE,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,WAAW,CAAC,IAAgB;IACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgE;IACzF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1C,OAAO,CACL,cACE,SAAS,EAAC,YAAY,EACtB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,CAAC,YAED,MAAC,QAAQ,eACP,KAAC,eAAe,IAAC,OAAO,kBACtB,KAAC,MAAM,IAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,QAAC,IAAI,EAAE,YAAY,gBAAa,SAAS,GAAG,GAC/D,EAClB,KAAC,eAAe,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,MAAM,YAC3C,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,OAAO,kBACnB,MAAC,UAAU,IAAC,EAAE,EAAE,IAAI,aAClB,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,GAAI,YAEN,GACA,EACd,QAAQ,IAAI,OAAO,IAAI,CACtB,MAAC,YAAY,IAAC,QAAQ,EAAE,OAAO,aAC7B,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,cAEV,CAChB,IACa,GACA,IACT,GACP,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAoC;IAC7E,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAE7D,OAAO,OAAO,CAA0B,GAAG,EAAE;QAC3C,SAAS,uBAAuB,CAAC,OAAe;YAC9C,OAAO,uBAAuB,CAAC,mBAAmB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3E,CAAC;QAED,OAAO;YACL;gBACE,EAAE,EAAE,mBAAmB,CAAC,IAAI;gBAC5B,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,KAAK;gBACpB,MAAM,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBACxD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;oBAChB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;oBAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC/F,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,OAAO,CACL,eAAK,SAAS,EAAC,sEAAsE,aAClF,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CACpC,KAAC,eAAe,IAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,GAAI,CAC1D,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,gGAAgG,YAC9G,KAAC,GAAG,IAAC,SAAS,EAAC,UAAU,GAAG,GACvB,CACR,EACD,eAAK,SAAS,EAAC,wCAAwC,aACrD,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,KAAC,UAAU,IAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAC,4BAA4B,YACzD,QAAQ,GACE,GACE,EACjB,KAAC,cAAc,cACb,YAAG,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAK,GACvC,IACT,EACT,CAAC,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CACrD,KAAC,KAAK,IAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,UAAU,6BAE5C,CACT,IACG,IACF,CACP,CAAC;gBACJ,CAAC;aACF;YACD;gBACE,WAAW,EAAE,mBAAmB,CAAC,KAAK;gBACtC,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBACzD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;oBAChB,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAEvE,OAAO,CACL,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,KAAK,IAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,IAAI,EAAC,IAAI,YAClF,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,oBAAoB,CAAC,GAC7C,EACP,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,CACtB,KAAC,KAAK,IAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,wBAEvB,CACT,IACG,CACP,CAAC;gBACJ,CAAC;aACF;YACD;gBACE,WAAW,EAAE,mBAAmB,CAAC,SAAS;gBAC1C,MAAM,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBAC7D,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,eAAM,SAAS,EAAC,uBAAuB,YACpC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GACjE,CACR;aACF;YACD;gBACE,WAAW,EAAE,mBAAmB,CAAC,SAAS;gBAC1C,MAAM,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBAC7D,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,eAAM,SAAS,EAAC,uBAAuB,YACpC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GACjE,CACR;aACF;YACD;gBACE,EAAE,EAAE,mBAAmB,CAAC,gBAAgB;gBACxC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC;gBACrD,MAAM,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;gBACpE,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,eAAM,SAAS,EAAC,uBAAuB,YAAE,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAQ;aAC9G;YACD;gBACE,EAAE,EAAE,mBAAmB,CAAC,IAAI;gBAC5B,UAAU,EAAE,WAAW;gBACvB,MAAM,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBACxD,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,eAAM,SAAS,EAAC,uBAAuB,YAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAQ;aAC9F;YACD;gBACE,EAAE,EAAE,mBAAmB,CAAC,OAAO;gBAC/B,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,KAAC,iBAAiB,IAChB,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EACrC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EACvF,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAC9D,CACH;aACF;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manta-eu/react",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "The Manta design system, knowledge-graph UI and agent components",
5
5
  "homepage": "https://developers.manta.eu",
6
6
  "keywords": [
@@ -1134,12 +1134,12 @@
1134
1134
  "usehooks-ts": "^3.1.1",
1135
1135
  "zod": "^4.5.0",
1136
1136
  "zustand": "^5.0.2",
1137
- "@manta-eu/auth": "0.4.0",
1138
- "@manta-eu/client": "0.4.0",
1139
- "@manta-eu/lib": "0.4.0",
1140
- "@manta-eu/ldo": "0.4.0",
1141
- "@manta-eu/rdf-lib": "0.4.0",
1142
- "@manta-eu/datalog-parser": "0.4.0"
1137
+ "@manta-eu/auth": "0.5.0",
1138
+ "@manta-eu/datalog-parser": "0.5.0",
1139
+ "@manta-eu/client": "0.5.0",
1140
+ "@manta-eu/ldo": "0.5.0",
1141
+ "@manta-eu/lib": "0.5.0",
1142
+ "@manta-eu/rdf-lib": "0.5.0"
1143
1143
  },
1144
1144
  "peerDependencies": {
1145
1145
  "@ulb-darmstadt/shacl-form": "^2.1.1-rc1",
@@ -78,9 +78,12 @@ export type ChatProps = {
78
78
  renderMenuItems?: (defaults: CopilotMenuDefaults) => ReactNode[];
79
79
  };
80
80
 
81
- function useChatTurnState() {
82
- const activeConversationId = useChatManagerConnection().activeConversation?.id;
81
+ export function useChatTurnState() {
82
+ const { activeConversation, pendingMessage } = useChatManagerConnection();
83
+ const activeConversationId = activeConversation?.id;
84
+ const pendingMessageId = pendingMessage?.id;
83
85
  const previousActiveConversationIdRef = useRef(activeConversationId);
86
+ const previousPendingMessageIdRef = useRef(pendingMessageId);
84
87
  const [thinkingSeconds, setThinkingSeconds] = useState(0);
85
88
  const [pendingAssistantTurn, setPendingAssistantTurn] = useState(false);
86
89
  const turnKeyRef = useRef(0);
@@ -101,6 +104,13 @@ function useChatTurnState() {
101
104
  }
102
105
  }, [activeConversationId, resetChatTurn]);
103
106
 
107
+ useEffect(() => {
108
+ const previousPendingMessageId = previousPendingMessageIdRef.current;
109
+ previousPendingMessageIdRef.current = pendingMessageId;
110
+
111
+ if (previousPendingMessageId && !pendingMessageId && !activeConversationId) resetChatTurn();
112
+ }, [activeConversationId, pendingMessageId, resetChatTurn]);
113
+
104
114
  return {
105
115
  activeTurnKey,
106
116
  pendingAssistantTurn,
@@ -115,6 +125,19 @@ function useChatTurnState() {
115
125
 
116
126
  type ChatTurnState = ReturnType<typeof useChatTurnState>;
117
127
 
128
+ export function useInitialPrompt(initialPrompt: string | undefined, submit: (prompt: string) => void) {
129
+ const { activeConversation, isConversationLoading } = useChatManagerConnection();
130
+ const sentRef = useRef<string | undefined>(undefined);
131
+
132
+ useEffect(() => {
133
+ if (!isPresent(initialPrompt) || sentRef.current === initialPrompt) return;
134
+ if (isConversationLoading || isPresent(activeConversation)) return;
135
+
136
+ sentRef.current = initialPrompt;
137
+ submit(initialPrompt);
138
+ }, [initialPrompt, isConversationLoading, activeConversation, submit]);
139
+ }
140
+
118
141
  export function Chat(props: ChatProps) {
119
142
  const turnState = useChatTurnState();
120
143
  const content = <ChatContent {...props} turnState={turnState} />;
@@ -170,6 +193,21 @@ export function getChatWelcomeContent(args: ChatWelcomeArgs): ChatWelcomeContent
170
193
  .exhaustive();
171
194
  }
172
195
 
196
+ export type ChatConnectingArgs = {
197
+ hasPendingMessage: boolean;
198
+ isConversationLoading: boolean;
199
+ isBlankChat: boolean;
200
+ hasMessages: boolean;
201
+ isSocketOpen: boolean;
202
+ isTranscriptSynced: boolean;
203
+ };
204
+
205
+ export function chatIsConnectingOrSyncing(args: ChatConnectingArgs): boolean {
206
+ if (args.hasPendingMessage) return false;
207
+ if (args.isConversationLoading) return true;
208
+ return !args.isBlankChat && !args.hasMessages && (!args.isSocketOpen || !args.isTranscriptSynced);
209
+ }
210
+
173
211
  function ChatContent(props: ChatProps & { turnState: ChatTurnState }) {
174
212
  const {
175
213
  datastore,
@@ -223,8 +261,8 @@ function ChatContent(props: ChatProps & { turnState: ChatTurnState }) {
223
261
  startNewChat,
224
262
  activeConversation,
225
263
  isConversationLoading,
226
- connectionState,
227
264
  sendNewConversationMessage,
265
+ markStartup,
228
266
  } = useChatManagerConnection();
229
267
  const activeChat = useActiveChatConnection();
230
268
  const agent = activeChat?.agent ?? managerAgent;
@@ -248,10 +286,14 @@ function ChatContent(props: ChatProps & { turnState: ChatTurnState }) {
248
286
  const hasPendingQuestionnaire =
249
287
  latestMessage?.role === "assistant" && latestMessage.parts.some(isPendingRequestUserInputPart);
250
288
  const isTranscriptSynced = activeChat?.isTranscriptSynced ?? !activeConversation?.id;
251
- const isConnectingOrSyncing =
252
- !hasPendingMessage &&
253
- (isConversationLoading ||
254
- (!isPresent(agentMessages) && (agent.readyState !== WebSocket.OPEN || !isTranscriptSynced)));
289
+ const isConnectingOrSyncing = chatIsConnectingOrSyncing({
290
+ hasPendingMessage,
291
+ isConversationLoading,
292
+ isBlankChat: !isPresent(activeConversation) && !isPresent(selectedContext),
293
+ hasMessages: isPresent(agentMessages),
294
+ isSocketOpen: agent.readyState === WebSocket.OPEN,
295
+ isTranscriptSynced,
296
+ });
255
297
  const isSessionConnecting = Boolean(activeConversation?.id) && (agent.readyState !== WebSocket.OPEN || !agentState);
256
298
 
257
299
  const addToolResult = chatData?.addToolResult;
@@ -279,7 +321,6 @@ function ChatContent(props: ChatProps & { turnState: ChatTurnState }) {
279
321
  .otherwise(({ status }) => status);
280
322
 
281
323
  const toolsUsedInSession = useRef(new Set<string>());
282
- const initialPromptSentRef = useRef<string | undefined>(undefined);
283
324
 
284
325
  const { uploadFiles, isUploading, progress: uploadProgress } = useChatUpload();
285
326
 
@@ -344,13 +385,7 @@ function ChatContent(props: ChatProps & { turnState: ChatTurnState }) {
344
385
  [handleAgentSubmit],
345
386
  );
346
387
 
347
- useEffect(() => {
348
- if (!isPresent(initialPrompt) || initialPromptSentRef.current === initialPrompt) return;
349
- if (connectionState !== "open" || isConversationLoading || isPresent(activeConversation)) return;
350
-
351
- initialPromptSentRef.current = initialPrompt;
352
- handleConversationStarterSubmit(initialPrompt);
353
- }, [initialPrompt, connectionState, isConversationLoading, activeConversation, handleConversationStarterSubmit]);
388
+ useInitialPrompt(initialPrompt, handleConversationStarterSubmit);
354
389
 
355
390
  const handleRetryTurn = useCallback(async () => {
356
391
  if (!chatData?.regenerate) return;
@@ -397,6 +432,18 @@ function ChatContent(props: ChatProps & { turnState: ChatTurnState }) {
397
432
  const pendingAssistantMessageId = activeTurnKey ?? latestMessage?.id;
398
433
  const needsPendingPlaceholder = isAwaitingAssistant && latestMessage?.role !== "assistant";
399
434
 
435
+ useEffect(() => {
436
+ markStartup("chat-mounted");
437
+ }, [markStartup]);
438
+
439
+ useEffect(() => {
440
+ if (!isConnectingOrSyncing) markStartup("first-paint");
441
+ }, [isConnectingOrSyncing, markStartup]);
442
+
443
+ useEffect(() => {
444
+ if (!isConnectingOrSyncing && !isComposerBusy) markStartup("interactive");
445
+ }, [isConnectingOrSyncing, isComposerBusy, markStartup]);
446
+
400
447
  const displayMessages = useMemo(() => {
401
448
  if (!needsPendingPlaceholder || !pendingAssistantMessageId) return agentMessages;
402
449
  const placeholder: ChatUIMessage = {
@@ -13,7 +13,7 @@ import { KnowledgeGraphStateProvider } from "#providers/KnowledgeGraphStateProvi
13
13
  import { useMantaClient } from "#providers/MantaClientProvider";
14
14
  import { ActionPlansPage, PlanDetailRouteContent, useActionPlanRouteState } from "#routes/plans/index";
15
15
 
16
- export type { ChatDraft } from "#lib/chat-types";
16
+ export type { ChatDraft, ChatStartupReport } from "#lib/chat-types";
17
17
 
18
18
  export function EmbeddedChat(props: AuthenticatedChatProps) {
19
19
  const inRouter = useInRouterContext();
@@ -86,7 +86,14 @@ function EmbeddedContent(props: ResolvedChatProps) {
86
86
  }
87
87
 
88
88
  return (
89
- <ChatManagerProvider key={datastoreId} datastoreId={datastoreId} onSelectPlan={onSelectPlan}>
89
+ <ChatManagerProvider
90
+ key={`${datastoreId ?? ""}:${props.mode ?? "datastore"}`}
91
+ datastoreId={datastoreId}
92
+ mode={props.mode}
93
+ onSelectPlan={onSelectPlan}
94
+ surface="embedded"
95
+ onStartupTiming={props.onStartupTiming}
96
+ >
90
97
  <KnowledgeGraphStateProvider datastoreId={datastoreId}>
91
98
  <KnowledgeGraphStartupGate embedded>
92
99
  <Chat
@@ -149,6 +149,7 @@ export function ActioningView(props: ActioningViewProps) {
149
149
  <ExecutionTopBar
150
150
  planName={planName}
151
151
  status={executionStatus}
152
+ pendingManualActionCount={pendingManualActionCount}
152
153
  workflowId={workflowId}
153
154
  triggerError={triggerError}
154
155
  onExecute={onExecute}
@@ -6,6 +6,7 @@ import { cn } from "#lib/utils";
6
6
  type ExecutionTopBarProps = {
7
7
  planName: string;
8
8
  status: ExecutionStatus;
9
+ pendingManualActionCount: number;
9
10
  workflowId: string | null;
10
11
  triggerError: string | null;
11
12
  onExecute?: (dryRun: boolean) => void;
@@ -38,8 +39,19 @@ const statusConfig: Record<
38
39
  };
39
40
 
40
41
  export function ExecutionTopBar(props: ExecutionTopBarProps) {
41
- const { planName, status, onExecute, onRerun, isExecuteDialogOpen, onExecuteDialogOpenChange, isDryRun } = props;
42
- const config = statusConfig[status];
42
+ const {
43
+ planName,
44
+ status,
45
+ pendingManualActionCount,
46
+ onExecute,
47
+ onRerun,
48
+ isExecuteDialogOpen,
49
+ onExecuteDialogOpenChange,
50
+ isDryRun,
51
+ } = props;
52
+
53
+ const shownStatus = status === "completed" && !isDryRun && pendingManualActionCount > 0 ? "needs-approval" : status;
54
+ const config = statusConfig[shownStatus];
43
55
  const isTerminal = status === "completed" || status === "failed";
44
56
  const displayLabel = (isDryRun && config.dryRunLabel) || config.label;
45
57
 
@@ -77,10 +77,14 @@ export function statusLabel(status: ActionPlanStatus): string {
77
77
  .exhaustive();
78
78
  }
79
79
 
80
+ export function needsApproval(state: ActionPlanStatus, pendingApprovalCount: number): boolean {
81
+ return pendingApprovalCount > 0 && (state === GQLActionPlanState.Running || state === GQLActionPlanState.Completed);
82
+ }
83
+
80
84
  export function planStateVariant(state: ActionPlanStatus, pendingApprovalCount = 0): BadgeVariant {
81
- return match({ state, hasPendingApproval: pendingApprovalCount > 0 })
85
+ return match({ state, needsApproval: needsApproval(state, pendingApprovalCount) })
82
86
  .returnType<BadgeVariant>()
83
- .with({ state: GQLActionPlanState.Running, hasPendingApproval: true }, () => "warning")
87
+ .with({ needsApproval: true }, () => "warning")
84
88
  .with({ state: GQLActionPlanState.Running }, () => "info")
85
89
  .with({ state: GQLActionPlanState.Completed }, () => "success")
86
90
  .with({ state: GQLActionPlanState.Failed }, () => "destructive")
@@ -1,3 +1,4 @@
1
+ import { withChatModeQueryParam } from "@manta-eu/client/shared/chat-manager";
1
2
  import { withDatastoreQueryParam } from "@manta-eu/client/shared/datastore-path";
2
3
  import { isShowEntitiesResult } from "@manta-eu/client/shared/tools";
3
4
  import {
@@ -5,7 +6,7 @@ import {
5
6
  type WorkspaceArtifact,
6
7
  } from "@manta-eu/client/shared/workspace-artifacts";
7
8
  import type { ToolUIPart } from "ai";
8
- import { useCallback } from "react";
9
+ import { useCallback, useContext } from "react";
9
10
  import { match } from "ts-pattern";
10
11
  import { FileMessagePart } from "../chat-view/FileMessagePart";
11
12
  import { ActionPlanShowcaseCard } from "./ActionPlanShowcaseCard";
@@ -45,6 +46,7 @@ import {
45
46
  } from "#components/chart/index";
46
47
  import { decodeChartEntities } from "#lib/decode-chart-entities";
47
48
  import { cn } from "#lib/utils";
49
+ import { ChatManagerContext } from "#providers/chat-connection-context";
48
50
  import { useChatManagerConnection } from "#providers/ChatManagerProvider";
49
51
  import { useMantaClient } from "#providers/MantaClientProvider";
50
52
 
@@ -129,12 +131,13 @@ function WorkspaceArtifactResultDisplay(props: WorkspaceArtifactResultDisplayPro
129
131
  const { result } = props;
130
132
 
131
133
  const { datastoreId } = useMantaClient();
134
+ const mode = useContext(ChatManagerContext)?.managerConnection.mode;
132
135
 
133
136
  return (
134
137
  <FileMessagePart
135
138
  part={{
136
139
  type: "file",
137
- url: withDatastoreQueryParam(result.url, datastoreId),
140
+ url: withChatModeQueryParam(withDatastoreQueryParam(result.url, datastoreId), mode),
138
141
  mediaType: result.mediaType,
139
142
  filename: result.filename,
140
143
  }}
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable import/order -- each type is imported beside the re-export it exists for, which is
2
2
  how this file is organized; they are type-only, so the positions have no runtime meaning. */
3
+ import type { ConversationMode } from "@manta-eu/client/shared/chat-manager";
3
4
  import type { MantaModelId } from "@manta-eu/client/shared/model";
4
5
  import type { ReactNode } from "react";
5
6
  import type { Datastore } from "#ldo-ui";
@@ -26,6 +27,21 @@ export type CopilotMenuDefaults = {
26
27
 
27
28
  export type ChatDraft = { id: string; text: string };
28
29
 
30
+ export type ChatStartupReport = {
31
+ surface: "embedded" | "app";
32
+ mode: "ticket" | "cookie";
33
+ openIndex: number;
34
+ hostTokenMs?: number;
35
+ ticketMs?: number;
36
+ ticketAttempts?: number;
37
+ socketMs: number;
38
+ socketAttempts: number;
39
+ chatMountMs: number;
40
+ socketReadyAtOpen: boolean;
41
+ firstPaintMs: number;
42
+ interactiveMs: number;
43
+ };
44
+
29
45
  // NOTE: Adding to this is a breaking change to library clients
30
46
  export type AuthenticatedChatProps = {
31
47
  datastore?: Datastore;
@@ -39,6 +55,7 @@ export type AuthenticatedChatProps = {
39
55
  collapsible?: boolean;
40
56
  isCollapsed?: boolean;
41
57
  pageContext?: PageContext;
58
+ mode?: ConversationMode;
42
59
  allowedModels?: MantaModelId[];
43
60
  initialPrompt?: string;
44
61
  initialDraft?: ChatDraft;
@@ -48,6 +65,7 @@ export type AuthenticatedChatProps = {
48
65
  assistantIcon?: AssistantIcon;
49
66
  mark?: ReactNode;
50
67
  renderMenuItems?: (defaults: CopilotMenuDefaults) => ReactNode[];
68
+ onStartupTiming?: (report: ChatStartupReport) => void;
51
69
  };
52
70
 
53
71
  export type ResolvedChatProps = AuthenticatedChatProps & {