@burdenoff/microfe-buildmyiq 2026.830.1 → 2026.1006.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 (27) hide show
  1. package/dist/buildmyiq/components/TutorPanel.d.ts +2 -24
  2. package/dist/buildmyiq/components/TutorPanel.d.ts.map +1 -1
  3. package/dist/buildmyiq/components/TutorPanel.js +17 -156
  4. package/dist/buildmyiq/components/TutorPanel.js.map +1 -1
  5. package/dist/buildmyiq/hooks/courseTeacherSetup.d.ts +11 -0
  6. package/dist/buildmyiq/hooks/courseTeacherSetup.d.ts.map +1 -0
  7. package/dist/buildmyiq/hooks/courseTeacherSetup.js +27 -0
  8. package/dist/buildmyiq/hooks/courseTeacherSetup.js.map +1 -0
  9. package/dist/buildmyiq/hooks/useBuildmyiqApi.d.ts +36 -0
  10. package/dist/buildmyiq/hooks/useBuildmyiqApi.d.ts.map +1 -1
  11. package/dist/buildmyiq/hooks/useBuildmyiqApi.js +409 -339
  12. package/dist/buildmyiq/hooks/useBuildmyiqApi.js.map +1 -1
  13. package/dist/buildmyiq/pages/authoring/CourseAssistantSettingsPanel.d.ts +5 -0
  14. package/dist/buildmyiq/pages/authoring/CourseAssistantSettingsPanel.d.ts.map +1 -0
  15. package/dist/buildmyiq/pages/authoring/CourseAssistantSettingsPanel.js +125 -0
  16. package/dist/buildmyiq/pages/authoring/CourseAssistantSettingsPanel.js.map +1 -0
  17. package/dist/buildmyiq/pages/authoring/CourseBuilderPage.d.ts.map +1 -1
  18. package/dist/buildmyiq/pages/authoring/CourseBuilderPage.js +48 -41
  19. package/dist/buildmyiq/pages/authoring/CourseBuilderPage.js.map +1 -1
  20. package/dist/buildmyiq/pages/authoring/CourseTeacherSetupPanel.d.ts +4 -0
  21. package/dist/buildmyiq/pages/authoring/CourseTeacherSetupPanel.d.ts.map +1 -0
  22. package/dist/buildmyiq/pages/authoring/CourseTeacherSetupPanel.js +115 -0
  23. package/dist/buildmyiq/pages/authoring/CourseTeacherSetupPanel.js.map +1 -0
  24. package/dist/buildmyiq/pages/learning/LessonPlayerPage.d.ts.map +1 -1
  25. package/dist/buildmyiq/pages/learning/LessonPlayerPage.js +15 -20
  26. package/dist/buildmyiq/pages/learning/LessonPlayerPage.js.map +1 -1
  27. package/package.json +3 -2
@@ -1,29 +1,7 @@
1
- /**
2
- * TutorPanel — the 24/7 AI tutor chat for a lesson (BOFF-4426).
3
- * @module buildmyiq/components/TutorPanel
4
- *
5
- * Grounded Q&A: every assistant answer comes from `buiTutorAsk`, which
6
- * retrieves the actual lesson content server-side before calling the model
7
- * (see `TutorService.retrieveGrounding` in wspace-buildmyiq-svc) — never an
8
- * ungrounded chat completion. Continues the learner's own session for this
9
- * lesson (multi-turn) via `useBuiMyTutorSessions` / `useBuiTutorAsk`.
10
- *
11
- * Each assistant turn carries the `groundingLessonIds` the answer was actually
12
- * derived from; they are rendered as source chips so the learner can see which
13
- * lesson content backs the answer instead of taking it on trust. Ids the caller
14
- * cannot name are shown as-is rather than guessed at or hidden.
15
- */
16
1
  interface TutorPanelProps {
17
- lessonId: string;
2
+ courseId: string;
18
3
  lessonTitle: string;
19
- /**
20
- * Titles for the lessons the tutor may ground an answer in, keyed by lesson
21
- * id — supplied by the host page, which has already loaded the course. Only
22
- * used to LABEL the ids the server returned; a missing entry falls back to
23
- * the raw id, never to an invented title.
24
- */
25
- lessonTitlesById?: ReadonlyMap<string, string>;
26
4
  }
27
- export declare function TutorPanel({ lessonId, lessonTitle, lessonTitlesById }: TutorPanelProps): import("react").JSX.Element;
5
+ export declare function TutorPanel({ courseId, lessonTitle }: TutorPanelProps): import("react").JSX.Element;
28
6
  export {};
29
7
  //# sourceMappingURL=TutorPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TutorPanel.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/TutorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD;AAmBD,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,eAAe,+BAkKtF"}
1
+ {"version":3,"file":"TutorPanel.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/components/TutorPanel.tsx"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,eAAe,+BAWpE"}
@@ -1,164 +1,25 @@
1
1
  import { useBuildmyiq as e } from "../context/BuildmyiqContext.js";
2
2
  import "../context/index.js";
3
- import { useTr as t } from "../shared/hooks/useTr.js";
4
- import { LoadingView as n } from "./StateViews.js";
5
- import { useBuiMyTutorSessions as r, useBuiTutorAsk as i } from "../hooks/useBuildmyiqApi.js";
6
- import "../hooks/index.js";
7
- import { useEffect as a, useRef as o, useState as s } from "react";
8
- import { BookOpen as c, Bot as l, Send as u, Sparkles as d } from "lucide-react";
9
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
- import { Button as m, GlassCard as h, Textarea as g } from "@burdenoff/fe-libs/ui";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { WorkflowAssistantPanel as n } from "@burdenoff/fe-libs/shared/assistant";
11
5
  //#region src/buildmyiq/components/TutorPanel.tsx
12
- function _(e) {
13
- let t = e.trim();
14
- return t ? t[0].toUpperCase() : "?";
15
- }
16
- var v = {
17
- STRUGGLING: "Extra step-by-step help — based on your recent scores",
18
- ON_TRACK: "Standard depth",
19
- ADVANCED: "Deeper dive — based on your recent scores"
20
- };
21
- function y(e) {
22
- if (!e) return "You";
23
- let t = [e.firstName, e.lastName].filter(Boolean).join(" ").trim();
24
- return e.name || t || e.username || e.email || "You";
25
- }
26
- function b({ lessonId: b, lessonTitle: x, lessonTitlesById: S }) {
27
- let { currentUser: C } = e(), w = t(), T = r(b), E = i(), [D, O] = s(void 0), [k, A] = s(""), [j, M] = s(null), N = o(null), P = T.data?.[0], F = D ? T.data?.find((e) => e.id === D)?.messages ?? [] : P?.messages ?? [];
28
- a(() => {
29
- N.current?.scrollTo({
30
- top: N.current.scrollHeight,
31
- behavior: "smooth"
32
- });
33
- }, [F.length]);
34
- let I = y(C), L = (e) => e === b ? x : S?.get(e) ?? e, R = async () => {
35
- let e = k.trim();
36
- if (e) {
37
- M(null), A("");
38
- try {
39
- O((await E.mutateAsync({
40
- lessonId: b,
41
- question: e,
42
- sessionId: D ?? P?.id
43
- })).session.id);
44
- } catch (t) {
45
- M(t instanceof Error ? t.message : "The AI tutor is temporarily unavailable."), A(e);
46
- }
47
- }
48
- };
49
- return /* @__PURE__ */ p(h, {
50
- treatment: "plain",
51
- className: "flex flex-col overflow-hidden p-0",
52
- children: [
53
- /* @__PURE__ */ p("div", {
54
- className: "flex items-center gap-2 border-b border-border-seam px-4 py-3",
55
- children: [/* @__PURE__ */ f("span", {
56
- className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--color-accent-soft)]",
57
- children: /* @__PURE__ */ f(d, { className: "h-4 w-4 text-[var(--color-accent-teal)]" })
58
- }), /* @__PURE__ */ p("div", {
59
- className: "min-w-0",
60
- children: [/* @__PURE__ */ f("p", {
61
- className: "text-sm font-semibold text-text-primary",
62
- children: "AI Tutor"
63
- }), /* @__PURE__ */ p("p", {
64
- className: "truncate text-xs text-text-secondary",
65
- children: [
66
- "Grounded in “",
67
- x,
68
- "”"
69
- ]
70
- })]
71
- })]
72
- }),
73
- /* @__PURE__ */ f("div", {
74
- ref: N,
75
- className: "max-h-96 min-h-40 flex-1 overflow-y-auto px-4 py-4",
76
- children: T.isLoading ? /* @__PURE__ */ f(n, { label: "Loading your tutor conversation…" }) : F.length === 0 ? /* @__PURE__ */ p("div", {
77
- className: "flex flex-col items-center gap-2 py-6 text-center",
78
- children: [/* @__PURE__ */ f(l, { className: "h-8 w-8 text-text-tertiary" }), /* @__PURE__ */ f("p", {
79
- className: "text-sm text-text-secondary",
80
- children: "Ask a question about this lesson — the tutor answers from the lesson content, with hints first."
81
- })]
82
- }) : /* @__PURE__ */ p("ul", {
83
- className: "flex flex-col gap-4",
84
- children: [F.map((e) => {
85
- let t = e.role === "ASSISTANT";
86
- return /* @__PURE__ */ p("li", {
87
- className: "flex gap-3",
88
- children: [/* @__PURE__ */ f("div", {
89
- className: t ? "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--color-accent-soft)]" : "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-bg-sunken text-sm font-semibold text-text-secondary",
90
- children: t ? /* @__PURE__ */ f(l, { className: "h-4 w-4 text-[var(--color-accent-teal)]" }) : _(I)
91
- }), /* @__PURE__ */ p("div", {
92
- className: "min-w-0 flex-1",
93
- children: [
94
- /* @__PURE__ */ p("div", {
95
- className: "flex flex-wrap items-baseline gap-x-2",
96
- children: [/* @__PURE__ */ f("span", {
97
- className: "text-sm font-semibold text-text-primary",
98
- children: t ? "AI Tutor" : I
99
- }), t && e.adaptiveLevel && /* @__PURE__ */ f("span", {
100
- className: "text-xs text-text-tertiary",
101
- children: v[e.adaptiveLevel]
102
- })]
103
- }),
104
- /* @__PURE__ */ f("p", {
105
- className: "mt-0.5 whitespace-pre-wrap break-words text-sm text-text-secondary",
106
- children: e.content
107
- }),
108
- t && e.groundingLessonIds.length > 0 && /* @__PURE__ */ p("div", {
109
- className: "mt-2 flex flex-wrap items-center gap-1.5",
110
- children: [/* @__PURE__ */ p("span", {
111
- className: "inline-flex items-center gap-1 text-xs text-text-tertiary",
112
- children: [/* @__PURE__ */ f(c, { className: "h-3.5 w-3.5" }), w("buildmyiq.tutor.groundedIn", "Answered from")]
113
- }), e.groundingLessonIds.map((e) => /* @__PURE__ */ f("span", {
114
- title: e,
115
- className: "max-w-[14rem] truncate rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
116
- children: L(e)
117
- }, e))]
118
- })
119
- ]
120
- })]
121
- }, e.id);
122
- }), E.isPending && /* @__PURE__ */ p("li", {
123
- className: "flex items-center gap-3",
124
- children: [/* @__PURE__ */ f("span", {
125
- className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--color-accent-soft)]",
126
- children: /* @__PURE__ */ f(l, { className: "h-4 w-4 animate-pulse text-[var(--color-accent-teal)]" })
127
- }), /* @__PURE__ */ f("span", {
128
- className: "text-sm text-text-secondary",
129
- children: "Thinking…"
130
- })]
131
- })]
132
- })
133
- }),
134
- /* @__PURE__ */ p("div", {
135
- className: "border-t border-border-seam p-3",
136
- children: [/* @__PURE__ */ f(g, {
137
- value: k,
138
- onChange: (e) => A(e.target.value),
139
- onKeyDown: (e) => {
140
- e.key === "Enter" && !e.shiftKey && (e.preventDefault(), R());
141
- },
142
- placeholder: "Ask about this lesson…",
143
- rows: 2,
144
- disabled: E.isPending
145
- }), /* @__PURE__ */ p("div", {
146
- className: "mt-2 flex items-center justify-end gap-2",
147
- children: [j && /* @__PURE__ */ f("span", {
148
- className: "mr-auto text-xs text-status-error-text",
149
- children: j
150
- }), /* @__PURE__ */ p(m, {
151
- size: "sm",
152
- onClick: R,
153
- disabled: !k.trim() || E.isPending,
154
- children: [/* @__PURE__ */ f(u, { className: "mr-1.5 h-4 w-4" }), E.isPending ? "Asking…" : "Ask"]
155
- })]
156
- })]
157
- })
158
- ]
6
+ function r({ courseId: r, lessonTitle: i }) {
7
+ let { currentUser: a, workspaceId: o, authToken: s } = e();
8
+ return /* @__PURE__ */ t(n, {
9
+ target: {
10
+ kind: "buildmyiq-course",
11
+ courseId: r
12
+ },
13
+ context: {
14
+ workspaceId: o ?? "",
15
+ authContext: { accessToken: s }
16
+ },
17
+ ownerId: a?.id ?? "",
18
+ title: "AI Tutor",
19
+ description: `Answers from your course content. Current lesson: “${i}”`
159
20
  });
160
21
  }
161
22
  //#endregion
162
- export { b as TutorPanel };
23
+ export { r as TutorPanel };
163
24
 
164
25
  //# sourceMappingURL=TutorPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TutorPanel.js","names":[],"sources":["../../../src/buildmyiq/components/TutorPanel.tsx"],"sourcesContent":["/**\n * TutorPanel — the 24/7 AI tutor chat for a lesson (BOFF-4426).\n * @module buildmyiq/components/TutorPanel\n *\n * Grounded Q&A: every assistant answer comes from `buiTutorAsk`, which\n * retrieves the actual lesson content server-side before calling the model\n * (see `TutorService.retrieveGrounding` in wspace-buildmyiq-svc) — never an\n * ungrounded chat completion. Continues the learner's own session for this\n * lesson (multi-turn) via `useBuiMyTutorSessions` / `useBuiTutorAsk`.\n *\n * Each assistant turn carries the `groundingLessonIds` the answer was actually\n * derived from; they are rendered as source chips so the learner can see which\n * lesson content backs the answer instead of taking it on trust. Ids the caller\n * cannot name are shown as-is rather than guessed at or hidden.\n */\n\nimport { useEffect, useRef, useState } from 'react';\nimport { Bot, BookOpen, Send, Sparkles } from 'lucide-react';\nimport { Button, GlassCard, Textarea } from '@burdenoff/fe-libs/ui';\nimport { LoadingView } from './StateViews';\nimport { useBuiMyTutorSessions, useBuiTutorAsk } from '../hooks';\nimport { useBuildmyiq } from '../context';\nimport { useTr } from '../shared/hooks/useTr';\nimport type { BuiTutorAdaptiveLevel, BuiTutorMessage } from '../types';\n\ninterface TutorPanelProps {\n lessonId: string;\n lessonTitle: string;\n /**\n * Titles for the lessons the tutor may ground an answer in, keyed by lesson\n * id — supplied by the host page, which has already loaded the course. Only\n * used to LABEL the ids the server returned; a missing entry falls back to\n * the raw id, never to an invented title.\n */\n lessonTitlesById?: ReadonlyMap<string, string>;\n}\n\nfunction initialFor(label: string): string {\n const trimmed = label.trim();\n return trimmed ? trimmed[0]!.toUpperCase() : '?';\n}\n\nconst ADAPTIVE_LABEL: Record<BuiTutorAdaptiveLevel, string> = {\n STRUGGLING: 'Extra step-by-step help — based on your recent scores',\n ON_TRACK: 'Standard depth',\n ADVANCED: 'Deeper dive — based on your recent scores',\n};\n\nfunction displayName(user: ReturnType<typeof useBuildmyiq>['currentUser']): string {\n if (!user) return 'You';\n const full = [user.firstName, user.lastName].filter(Boolean).join(' ').trim();\n return user.name || full || user.username || user.email || 'You';\n}\n\nexport function TutorPanel({ lessonId, lessonTitle, lessonTitlesById }: TutorPanelProps) {\n const { currentUser } = useBuildmyiq();\n const tr = useTr();\n const sessionsQuery = useBuiMyTutorSessions(lessonId);\n const ask = useBuiTutorAsk();\n\n const [sessionId, setSessionId] = useState<string | undefined>(undefined);\n const [draft, setDraft] = useState('');\n const [error, setError] = useState<string | null>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n // Resume the learner's most recently active session for this lesson, if any.\n const existingSession = sessionsQuery.data?.[0];\n const messages: BuiTutorMessage[] = sessionId\n ? (sessionsQuery.data?.find((s) => s.id === sessionId)?.messages ?? [])\n : (existingSession?.messages ?? []);\n\n useEffect(() => {\n scrollRef.current?.scrollTo({ top: scrollRef.current.scrollHeight, behavior: 'smooth' });\n }, [messages.length]);\n\n const selfName = displayName(currentUser);\n\n /** Label a grounding lesson id; an id we can't name is shown verbatim. */\n const groundingLabel = (id: string): string => {\n if (id === lessonId) return lessonTitle;\n return lessonTitlesById?.get(id) ?? id;\n };\n\n const handleAsk = async () => {\n const question = draft.trim();\n if (!question) return;\n setError(null);\n setDraft('');\n try {\n const result = await ask.mutateAsync({\n lessonId,\n question,\n sessionId: sessionId ?? existingSession?.id,\n });\n setSessionId(result.session.id);\n } catch (err) {\n setError(err instanceof Error ? err.message : 'The AI tutor is temporarily unavailable.');\n setDraft(question);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n void handleAsk();\n }\n };\n\n return (\n <GlassCard treatment=\"plain\" className=\"flex flex-col overflow-hidden p-0\">\n <div className=\"flex items-center gap-2 border-b border-border-seam px-4 py-3\">\n <span className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--color-accent-soft)]\">\n <Sparkles className=\"h-4 w-4 text-[var(--color-accent-teal)]\" />\n </span>\n <div className=\"min-w-0\">\n <p className=\"text-sm font-semibold text-text-primary\">AI Tutor</p>\n <p className=\"truncate text-xs text-text-secondary\">Grounded in “{lessonTitle}”</p>\n </div>\n </div>\n\n <div ref={scrollRef} className=\"max-h-96 min-h-40 flex-1 overflow-y-auto px-4 py-4\">\n {sessionsQuery.isLoading ? (\n <LoadingView label=\"Loading your tutor conversation…\" />\n ) : messages.length === 0 ? (\n <div className=\"flex flex-col items-center gap-2 py-6 text-center\">\n <Bot className=\"h-8 w-8 text-text-tertiary\" />\n <p className=\"text-sm text-text-secondary\">\n Ask a question about this lesson — the tutor answers from the lesson content, with\n hints first.\n </p>\n </div>\n ) : (\n <ul className=\"flex flex-col gap-4\">\n {messages.map((message) => {\n const isAssistant = message.role === 'ASSISTANT';\n return (\n <li key={message.id} className=\"flex gap-3\">\n <div\n className={\n isAssistant\n ? 'flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--color-accent-soft)]'\n : 'flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-bg-sunken text-sm font-semibold text-text-secondary'\n }\n >\n {isAssistant ? (\n <Bot className=\"h-4 w-4 text-[var(--color-accent-teal)]\" />\n ) : (\n initialFor(selfName)\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-baseline gap-x-2\">\n <span className=\"text-sm font-semibold text-text-primary\">\n {isAssistant ? 'AI Tutor' : selfName}\n </span>\n {isAssistant && message.adaptiveLevel && (\n <span className=\"text-xs text-text-tertiary\">\n {ADAPTIVE_LABEL[message.adaptiveLevel]}\n </span>\n )}\n </div>\n <p className=\"mt-0.5 whitespace-pre-wrap break-words text-sm text-text-secondary\">\n {message.content}\n </p>\n {isAssistant && message.groundingLessonIds.length > 0 && (\n <div className=\"mt-2 flex flex-wrap items-center gap-1.5\">\n <span className=\"inline-flex items-center gap-1 text-xs text-text-tertiary\">\n <BookOpen className=\"h-3.5 w-3.5\" />\n {tr('buildmyiq.tutor.groundedIn', 'Answered from')}\n </span>\n {message.groundingLessonIds.map((groundingId) => (\n <span\n key={groundingId}\n title={groundingId}\n className=\"max-w-[14rem] truncate rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary\"\n >\n {groundingLabel(groundingId)}\n </span>\n ))}\n </div>\n )}\n </div>\n </li>\n );\n })}\n {ask.isPending && (\n <li className=\"flex items-center gap-3\">\n <span className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--color-accent-soft)]\">\n <Bot className=\"h-4 w-4 animate-pulse text-[var(--color-accent-teal)]\" />\n </span>\n <span className=\"text-sm text-text-secondary\">Thinking…</span>\n </li>\n )}\n </ul>\n )}\n </div>\n\n <div className=\"border-t border-border-seam p-3\">\n <Textarea\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder=\"Ask about this lesson…\"\n rows={2}\n disabled={ask.isPending}\n />\n <div className=\"mt-2 flex items-center justify-end gap-2\">\n {error && <span className=\"mr-auto text-xs text-status-error-text\">{error}</span>}\n <Button size=\"sm\" onClick={handleAsk} disabled={!draft.trim() || ask.isPending}>\n <Send className=\"mr-1.5 h-4 w-4\" />\n {ask.isPending ? 'Asking…' : 'Ask'}\n </Button>\n </div>\n </div>\n </GlassCard>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TutorPanel.js","names":[],"sources":["../../../src/buildmyiq/components/TutorPanel.tsx"],"sourcesContent":["/** Course-scoped tutor powered by the shared authenticated Fluidgrids workflow client. */\nimport { WorkflowAssistantPanel } from '@burdenoff/fe-libs/shared/assistant';\nimport { useBuildmyiq } from '../context';\n\ninterface TutorPanelProps {\n courseId: string;\n lessonTitle: string;\n}\n\nexport function TutorPanel({ courseId, lessonTitle }: TutorPanelProps) {\n const { currentUser, workspaceId, authToken } = useBuildmyiq();\n return (\n <WorkflowAssistantPanel\n target={{ kind: 'buildmyiq-course', courseId }}\n context={{ workspaceId: workspaceId ?? '', authContext: { accessToken: authToken } }}\n ownerId={currentUser?.id ?? ''}\n title=\"AI Tutor\"\n description={`Answers from your course content. Current lesson: “${lessonTitle}”`}\n />\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,EAAW,EAAE,aAAU,kBAAgC;CACrE,IAAM,EAAE,gBAAa,gBAAa,iBAAc,EAAa;CAC7D,OACE,kBAAC,GAAD;EACE,QAAQ;GAAE,MAAM;GAAoB;EAAS;EAC7C,SAAS;GAAE,aAAa,KAAe;GAAI,aAAa,EAAE,aAAa,EAAU;EAAE;EACnF,SAAS,GAAa,MAAM;EAC5B,OAAM;EACN,aAAa,sDAAsD,EAAY;CAChF,CAAA;AAEL"}
@@ -0,0 +1,11 @@
1
+ export interface CourseTeacherSetupSelection {
2
+ embeddingModelId: string;
3
+ chatModelId: string;
4
+ connectionId: string;
5
+ }
6
+ export type TeacherSetupRequest = <T>(query: string, variables: Record<string, unknown>) => Promise<T>;
7
+ /** All four writes go through the public workspace gateway with the caller's token.
8
+ * Each step is independently permissioned and safe to retry after a lost response.
9
+ */
10
+ export declare function provisionCourseTeacher(courseId: string, selection: CourseTeacherSetupSelection, request: TeacherSetupRequest): Promise<string>;
11
+ //# sourceMappingURL=courseTeacherSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"courseTeacherSetup.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/hooks/courseTeacherSetup.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,2BAA2B,EACtC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAkDjB"}
@@ -0,0 +1,27 @@
1
+ //#region src/buildmyiq/hooks/courseTeacherSetup.ts
2
+ async function e(e, t, n) {
3
+ let r = await n("mutation PrepareBuiTeacherKnowledge($courseId: ID!, $embeddingModelId: ID!) { prepareCourseAssistantKnowledge(courseId: $courseId, embeddingModelId: $embeddingModelId) { knowledgeBaseId courseId } }", {
4
+ courseId: e,
5
+ embeddingModelId: t.embeddingModelId
6
+ });
7
+ if (r.prepareCourseAssistantKnowledge?.courseId !== e || !r.prepareCourseAssistantKnowledge.knowledgeBaseId) throw Error("Course teacher knowledge unavailable");
8
+ let i = await n("mutation CreateBuiCourseTeacher($courseId: ID!, $chatModelId: ID!) { createCourseAssistantTeacher(courseId: $courseId, chatModelId: $chatModelId) { agentId courseId } }", {
9
+ courseId: e,
10
+ chatModelId: t.chatModelId
11
+ }), a = i.createCourseAssistantTeacher?.agentId;
12
+ if (!a || i.createCourseAssistantTeacher.courseId !== e) throw Error("Course teacher unavailable");
13
+ let o = (await n("mutation ConfigureBuiTeacherRuntime($agentId: ID!, $connectionId: ID!) { configureAssistantRuntime(agentId: $agentId, connectionId: $connectionId) { agentId courseId protocolVersion inferenceWorkflowId ingestionWorkflowId } }", {
14
+ agentId: a,
15
+ connectionId: t.connectionId
16
+ })).configureAssistantRuntime;
17
+ if (!o || o.agentId !== a || o.courseId !== e || o.protocolVersion !== 2 || !o.inferenceWorkflowId || !o.ingestionWorkflowId) throw Error("Course teacher workflows unavailable");
18
+ if (!(await n("mutation BindBuiCourseTeacher($courseId: ID!, $agentId: ID!) { buiConfigureCourseAssistant(courseId: $courseId, agentId: $agentId) { id } }", {
19
+ courseId: e,
20
+ agentId: a
21
+ })).buiConfigureCourseAssistant?.id) throw Error("Course teacher binding unavailable");
22
+ return a;
23
+ }
24
+ //#endregion
25
+ export { e as provisionCourseTeacher };
26
+
27
+ //# sourceMappingURL=courseTeacherSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"courseTeacherSetup.js","names":[],"sources":["../../../src/buildmyiq/hooks/courseTeacherSetup.ts"],"sourcesContent":["export interface CourseTeacherSetupSelection {\n embeddingModelId: string;\n chatModelId: string;\n connectionId: string;\n}\nexport type TeacherSetupRequest = <T>(\n query: string,\n variables: Record<string, unknown>\n) => Promise<T>;\n\n/** All four writes go through the public workspace gateway with the caller's token.\n * Each step is independently permissioned and safe to retry after a lost response.\n */\nexport async function provisionCourseTeacher(\n courseId: string,\n selection: CourseTeacherSetupSelection,\n request: TeacherSetupRequest\n): Promise<string> {\n const knowledge = await request<{\n prepareCourseAssistantKnowledge: { knowledgeBaseId: string; courseId: string };\n }>(\n 'mutation PrepareBuiTeacherKnowledge($courseId: ID!, $embeddingModelId: ID!) { prepareCourseAssistantKnowledge(courseId: $courseId, embeddingModelId: $embeddingModelId) { knowledgeBaseId courseId } }',\n { courseId, embeddingModelId: selection.embeddingModelId }\n );\n if (\n knowledge.prepareCourseAssistantKnowledge?.courseId !== courseId ||\n !knowledge.prepareCourseAssistantKnowledge.knowledgeBaseId\n )\n throw new Error('Course teacher knowledge unavailable');\n const teacher = await request<{\n createCourseAssistantTeacher: { agentId: string; courseId: string };\n }>(\n 'mutation CreateBuiCourseTeacher($courseId: ID!, $chatModelId: ID!) { createCourseAssistantTeacher(courseId: $courseId, chatModelId: $chatModelId) { agentId courseId } }',\n { courseId, chatModelId: selection.chatModelId }\n );\n const agentId = teacher.createCourseAssistantTeacher?.agentId;\n if (!agentId || teacher.createCourseAssistantTeacher.courseId !== courseId)\n throw new Error('Course teacher unavailable');\n const configured = await request<{\n configureAssistantRuntime: {\n agentId: string;\n courseId: string | null;\n protocolVersion: number;\n inferenceWorkflowId: string;\n ingestionWorkflowId: string | null;\n };\n }>(\n 'mutation ConfigureBuiTeacherRuntime($agentId: ID!, $connectionId: ID!) { configureAssistantRuntime(agentId: $agentId, connectionId: $connectionId) { agentId courseId protocolVersion inferenceWorkflowId ingestionWorkflowId } }',\n { agentId, connectionId: selection.connectionId }\n );\n const runtime = configured.configureAssistantRuntime;\n if (\n !runtime ||\n runtime.agentId !== agentId ||\n runtime.courseId !== courseId ||\n runtime.protocolVersion !== 2 ||\n !runtime.inferenceWorkflowId ||\n !runtime.ingestionWorkflowId\n )\n throw new Error('Course teacher workflows unavailable');\n const binding = await request<{ buiConfigureCourseAssistant: { id: string } }>(\n 'mutation BindBuiCourseTeacher($courseId: ID!, $agentId: ID!) { buiConfigureCourseAssistant(courseId: $courseId, agentId: $agentId) { id } }',\n { courseId, agentId }\n );\n if (!binding.buiConfigureCourseAssistant?.id)\n throw new Error('Course teacher binding unavailable');\n return agentId;\n}\n"],"mappings":";AAaA,eAAsB,EACpB,GACA,GACA,GACiB;CACjB,IAAM,IAAY,MAAM,EAGtB,0MACA;EAAE;EAAU,kBAAkB,EAAU;CAAiB,CAC3D;CACA,IACE,EAAU,iCAAiC,aAAa,KACxD,CAAC,EAAU,gCAAgC,iBAE3C,MAAU,MAAM,sCAAsC;CACxD,IAAM,IAAU,MAAM,EAGpB,4KACA;EAAE;EAAU,aAAa,EAAU;CAAY,CACjD,GACM,IAAU,EAAQ,8BAA8B;CACtD,IAAI,CAAC,KAAW,EAAQ,6BAA6B,aAAa,GAChE,MAAU,MAAM,4BAA4B;CAa9C,IAAM,KAAU,MAZS,EASvB,qOACA;EAAE;EAAS,cAAc,EAAU;CAAa,CAClD,GAC2B;CAC3B,IACE,CAAC,KACD,EAAQ,YAAY,KACpB,EAAQ,aAAa,KACrB,EAAQ,oBAAoB,KAC5B,CAAC,EAAQ,uBACT,CAAC,EAAQ,qBAET,MAAU,MAAM,sCAAsC;CAKxD,IAAI,EAAC,MAJiB,EACpB,+IACA;EAAE;EAAU;CAAQ,CACtB,GACa,6BAA6B,IACxC,MAAU,MAAM,oCAAoC;CACtD,OAAO;AACT"}
@@ -1,3 +1,4 @@
1
+ import { CourseTeacherSetupSelection } from './courseTeacherSetup';
1
2
  import { BuiConnection, BuiCourse, BuiCourseLevel, BuiCourseStatus, BuiModule, BuiLesson, BuiAssessment, BuiAssessmentStatus, BuiQuestion, BuiSubmission, BuiSubmissionStatus, BuiEnrollment, BuiEnrollmentStatus, BuiCohort, BuiCohortStatus, BuiSkill, BuiSkillCategory, BuiSkillStandard, BuiCertification, BuiSkillMappingSuggestion, BuiCertificate, BuiLessonProgress, BuiCreateCourseInput, BuiUpdateCourseInput, BuiCreateModuleInput, BuiCreateLessonInput, BuiCreateAssessmentInput, BuiCreateQuestionInput, BuiCreateSkillInput, BuiCreateCohortInput, BuiEnrollInput, BuiRecordLessonProgressInput, BuiSubmitAssessmentInput, BuiGradeSubmissionInput, BuiIssueCertificateInput, BuiTutorAskInput, BuiTutorAskPayload, BuiTutorSession, BuiGradeSuggestion, BuiNextLessonSuggestion, BuiCourseOutlineSuggestion, BuiApplyCourseOutlineInput, BuiAdminCopilotAnswer, BuiAdminCopilotTurnInput, BuiAiSuggestionOutcome, BuiLtiPlatform, BuiRegisterLtiPlatformInput } from '../types';
2
3
  export interface UseBuiCoursesArgs {
3
4
  level?: BuiCourseLevel;
@@ -231,4 +232,39 @@ export declare const useBuiAdminCopilotAsk: () => import('@tanstack/react-query'
231
232
  export declare const useBuiLtiPlatforms: () => import('@tanstack/react-query').UseQueryResult<NoInfer<BuiLtiPlatform[]>, Error>;
232
233
  export declare const useBuiRegisterLtiPlatform: () => import('@tanstack/react-query').UseMutationResult<BuiLtiPlatform, Error, BuiRegisterLtiPlatformInput, unknown>;
233
234
  export declare const useBuiDeactivateLtiPlatform: () => import('@tanstack/react-query').UseMutationResult<boolean, Error, string, unknown>;
235
+ export interface BuiCourseAssistantSettings {
236
+ enabled: boolean;
237
+ agentId: string | null;
238
+ candidates: Array<{
239
+ id: string;
240
+ name: string;
241
+ }>;
242
+ courseStatus: BuiCourseStatus;
243
+ configured: boolean;
244
+ ready: boolean;
245
+ ingestionStatus: string;
246
+ sourceCount: number;
247
+ processedCount: number;
248
+ }
249
+ export declare function useBuiCourseAssistantSettings(courseId: string): import('@tanstack/react-query').UseQueryResult<NoInfer<BuiCourseAssistantSettings>, Error>;
250
+ export declare function useBuiSetCourseAssistant(courseId: string): import('@tanstack/react-query').UseMutationResult<void, Error, string | null, unknown>;
251
+ export declare function useBuiCreateCourseTeacher(courseId: string, enabled: boolean): {
252
+ options: import('@tanstack/react-query').UseQueryResult<NoInfer<{
253
+ embeddingModels: {
254
+ id: string;
255
+ name: string;
256
+ modelId: string;
257
+ }[];
258
+ chatModels: {
259
+ id: string;
260
+ name: string;
261
+ modelId: string;
262
+ }[];
263
+ connections: {
264
+ id: string;
265
+ name: string;
266
+ }[];
267
+ }>, Error>;
268
+ create: import('@tanstack/react-query').UseMutationResult<string, Error, CourseTeacherSetupSelection, unknown>;
269
+ };
234
270
  //# sourceMappingURL=useBuildmyiqApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBuildmyiqApi.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/hooks/useBuildmyiqApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBuildmyiqApi.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/hooks/useBuildmyiqApi.ts"],"names":[],"mappings":"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"}