@pie-players/pie-assessment-toolkit 0.2.7 → 0.2.10
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.
- package/README.md +200 -67
- package/dist/attempt/TestSession.d.ts +23 -21
- package/dist/attempt/TestSession.d.ts.map +1 -1
- package/dist/attempt/TestSession.js +17 -15
- package/dist/attempt/TestSession.js.map +1 -1
- package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +50 -0
- package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts.map +1 -0
- package/dist/attempt/adapters/activity-to-test-attempt-session.js +135 -0
- package/dist/attempt/adapters/activity-to-test-attempt-session.js.map +1 -0
- package/dist/components/ItemToolBar.custom-element.js +953 -0
- package/dist/components/PieAssessmentToolkit.custom-element.js +757 -0
- package/dist/components/SectionToolBar.custom-element.js +162 -0
- package/dist/components/item-toolbar-element.d.ts +3 -0
- package/dist/components/item-toolbar-element.d.ts.map +1 -0
- package/dist/components/item-toolbar-element.js +2 -0
- package/dist/components/item-toolbar-element.js.map +1 -0
- package/dist/components/pie-assessment-toolkit-element.d.ts +3 -0
- package/dist/components/pie-assessment-toolkit-element.d.ts.map +1 -0
- package/dist/components/pie-assessment-toolkit-element.js +2 -0
- package/dist/components/pie-assessment-toolkit-element.js.map +1 -0
- package/dist/components/section-toolbar-element.d.ts +3 -0
- package/dist/components/section-toolbar-element.d.ts.map +1 -0
- package/dist/components/section-toolbar-element.js +2 -0
- package/dist/components/section-toolbar-element.js.map +1 -0
- package/dist/context/assessment-toolkit-context.d.ts +52 -0
- package/dist/context/assessment-toolkit-context.d.ts.map +1 -0
- package/dist/context/assessment-toolkit-context.js +6 -0
- package/dist/context/assessment-toolkit-context.js.map +1 -0
- package/dist/context/runtime-context-consumer.d.ts +14 -0
- package/dist/context/runtime-context-consumer.d.ts.map +1 -0
- package/dist/context/runtime-context-consumer.js +52 -0
- package/dist/context/runtime-context-consumer.js.map +1 -0
- package/dist/index.d.ts +19 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -11
- package/dist/index.js.map +1 -1
- package/dist/runtime/RuntimeRegistry.d.ts +13 -0
- package/dist/runtime/RuntimeRegistry.d.ts.map +1 -0
- package/dist/runtime/RuntimeRegistry.js +50 -0
- package/dist/runtime/RuntimeRegistry.js.map +1 -0
- package/dist/runtime/SectionRuntimeEngine.d.ts +45 -0
- package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -0
- package/dist/runtime/SectionRuntimeEngine.js +81 -0
- package/dist/runtime/SectionRuntimeEngine.js.map +1 -0
- package/dist/runtime/registration-events.d.ts +19 -0
- package/dist/runtime/registration-events.d.ts.map +1 -0
- package/dist/runtime/registration-events.js +4 -0
- package/dist/runtime/registration-events.js.map +1 -0
- package/dist/runtime/runtime-event-guards.d.ts +3 -0
- package/dist/runtime/runtime-event-guards.d.ts.map +1 -0
- package/dist/runtime/runtime-event-guards.js +9 -0
- package/dist/runtime/runtime-event-guards.js.map +1 -0
- package/dist/runtime/tool-host-contract.d.ts +30 -0
- package/dist/runtime/tool-host-contract.d.ts.map +1 -0
- package/dist/runtime/tool-host-contract.js +48 -0
- package/dist/runtime/tool-host-contract.js.map +1 -0
- package/dist/services/HighlightCoordinator.d.ts +9 -0
- package/dist/services/HighlightCoordinator.d.ts.map +1 -1
- package/dist/services/HighlightCoordinator.js +196 -55
- package/dist/services/HighlightCoordinator.js.map +1 -1
- package/dist/services/TTSService.d.ts +21 -1
- package/dist/services/TTSService.d.ts.map +1 -1
- package/dist/services/TTSService.js +356 -117
- package/dist/services/TTSService.js.map +1 -1
- package/dist/services/ThemeProvider.d.ts +1 -0
- package/dist/services/ThemeProvider.d.ts.map +1 -1
- package/dist/services/ThemeProvider.js +82 -46
- package/dist/services/ThemeProvider.js.map +1 -1
- package/dist/services/ToolConfigResolver.d.ts +1 -1
- package/dist/services/ToolConfigResolver.js +1 -1
- package/dist/services/ToolCoordinator.d.ts +1 -1
- package/dist/services/ToolCoordinator.d.ts.map +1 -1
- package/dist/services/ToolRegistry.d.ts +76 -67
- package/dist/services/ToolRegistry.d.ts.map +1 -1
- package/dist/services/ToolRegistry.js +73 -22
- package/dist/services/ToolRegistry.js.map +1 -1
- package/dist/services/ToolkitCoordinator.d.ts +126 -8
- package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
- package/dist/services/ToolkitCoordinator.js +607 -72
- package/dist/services/ToolkitCoordinator.js.map +1 -1
- package/dist/services/createDefaultToolRegistry.d.ts +11 -12
- package/dist/services/createDefaultToolRegistry.d.ts.map +1 -1
- package/dist/services/createDefaultToolRegistry.js +9 -56
- package/dist/services/createDefaultToolRegistry.js.map +1 -1
- package/dist/services/defaultPersonalNeedsProfile.d.ts +4 -0
- package/dist/services/defaultPersonalNeedsProfile.d.ts.map +1 -0
- package/dist/services/defaultPersonalNeedsProfile.js +25 -0
- package/dist/services/defaultPersonalNeedsProfile.js.map +1 -0
- package/dist/services/interfaces.d.ts +62 -2
- package/dist/services/interfaces.d.ts.map +1 -1
- package/dist/services/interfaces.js.map +1 -1
- package/dist/services/pnp-standard-features.d.ts +3 -4
- package/dist/services/pnp-standard-features.d.ts.map +1 -1
- package/dist/services/pnp-standard-features.js +0 -3
- package/dist/services/pnp-standard-features.js.map +1 -1
- package/dist/services/section-controller-types.d.ts +37 -0
- package/dist/services/section-controller-types.d.ts.map +1 -0
- package/dist/services/section-controller-types.js +2 -0
- package/dist/services/section-controller-types.js.map +1 -0
- package/dist/services/tool-config-defaults.d.ts +14 -0
- package/dist/services/tool-config-defaults.d.ts.map +1 -0
- package/dist/services/tool-config-defaults.js +23 -0
- package/dist/services/tool-config-defaults.js.map +1 -0
- package/dist/services/tool-context.d.ts +4 -4
- package/dist/services/tool-context.d.ts.map +1 -1
- package/dist/services/tool-context.js +156 -20
- package/dist/services/tool-context.js.map +1 -1
- package/dist/services/tool-instance-id.d.ts +15 -0
- package/dist/services/tool-instance-id.d.ts.map +1 -0
- package/dist/services/tool-instance-id.js +55 -0
- package/dist/services/tool-instance-id.js.map +1 -0
- package/dist/services/tool-providers/IToolProvider.d.ts +2 -3
- package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -1
- package/dist/services/tool-providers/IToolProvider.js +1 -2
- package/dist/services/tool-providers/IToolProvider.js.map +1 -1
- package/dist/services/tool-providers/MathJsToolProvider.d.ts +25 -0
- package/dist/services/tool-providers/MathJsToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/MathJsToolProvider.js +53 -0
- package/dist/services/tool-providers/MathJsToolProvider.js.map +1 -0
- package/dist/services/tool-providers/index.d.ts +2 -0
- package/dist/services/tool-providers/index.d.ts.map +1 -1
- package/dist/services/tool-providers/index.js +1 -0
- package/dist/services/tool-providers/index.js.map +1 -1
- package/dist/services/toolbar-items.d.ts +26 -0
- package/dist/services/toolbar-items.d.ts.map +1 -0
- package/dist/services/toolbar-items.js +10 -0
- package/dist/services/toolbar-items.js.map +1 -0
- package/dist/services/tools-config-normalizer.d.ts +26 -0
- package/dist/services/tools-config-normalizer.d.ts.map +1 -0
- package/dist/services/tools-config-normalizer.js +62 -0
- package/dist/services/tools-config-normalizer.js.map +1 -0
- package/dist/services/tts/browser-provider.d.ts.map +1 -1
- package/dist/services/tts/browser-provider.js +201 -34
- package/dist/services/tts/browser-provider.js.map +1 -1
- package/dist/services/tts/text-processing.d.ts +17 -0
- package/dist/services/tts/text-processing.d.ts.map +1 -0
- package/dist/services/tts/text-processing.js +144 -0
- package/dist/services/tts/text-processing.js.map +1 -0
- package/dist/tools/calculators/ti-provider.d.ts.map +1 -1
- package/dist/tools/calculators/ti-provider.js +127 -4
- package/dist/tools/calculators/ti-provider.js.map +1 -1
- package/dist/tools/client.d.ts +2 -1
- package/dist/tools/client.d.ts.map +1 -1
- package/dist/tools/client.js +2 -1
- package/dist/tools/client.js.map +1 -1
- package/dist/tools/default-tool-module-loaders.d.ts +9 -0
- package/dist/tools/default-tool-module-loaders.d.ts.map +1 -0
- package/dist/tools/default-tool-module-loaders.js +11 -0
- package/dist/tools/default-tool-module-loaders.js.map +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/library-loader.d.ts +1 -1
- package/dist/tools/library-loader.d.ts.map +1 -1
- package/dist/tools/library-loader.js +7 -2
- package/dist/tools/library-loader.js.map +1 -1
- package/dist/tools/registrations/accessibility-tools.d.ts +8 -11
- package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
- package/dist/tools/registrations/accessibility-tools.js +108 -120
- package/dist/tools/registrations/accessibility-tools.js.map +1 -1
- package/dist/tools/registrations/calculator.d.ts +2 -2
- package/dist/tools/registrations/calculator.d.ts.map +1 -1
- package/dist/tools/registrations/calculator.js +42 -55
- package/dist/tools/registrations/calculator.js.map +1 -1
- package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
- package/dist/tools/registrations/interaction-tools.js +77 -52
- package/dist/tools/registrations/interaction-tools.js.map +1 -1
- package/dist/tools/registrations/measurement-tools.d.ts.map +1 -1
- package/dist/tools/registrations/measurement-tools.js +63 -38
- package/dist/tools/registrations/measurement-tools.js.map +1 -1
- package/dist/tools/registrations/subject-specific-tools.d.ts.map +1 -1
- package/dist/tools/registrations/subject-specific-tools.js +63 -38
- package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
- package/dist/tools/registrations/tts.d.ts +1 -1
- package/dist/tools/registrations/tts.d.ts.map +1 -1
- package/dist/tools/registrations/tts.js +171 -41
- package/dist/tools/registrations/tts.js.map +1 -1
- package/dist/tools/response-discovery.d.ts +12 -14
- package/dist/tools/response-discovery.d.ts.map +1 -1
- package/dist/tools/response-discovery.js +23 -80
- package/dist/tools/response-discovery.js.map +1 -1
- package/dist/tools/tool-tag-map.d.ts +3 -3
- package/dist/tools/tool-tag-map.d.ts.map +1 -1
- package/dist/tools/tool-tag-map.js +4 -4
- package/dist/tools/tool-tag-map.js.map +1 -1
- package/dist/tools/types.d.ts +3 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/package.json +28 -27
- package/src/README.md +16 -32
- package/src/components/ItemToolBar.svelte +701 -0
- package/src/components/PieAssessmentToolkit.svelte +610 -0
- package/src/components/SectionToolBar.svelte +58 -0
- package/src/components/ToolButton.svelte +11 -11
- package/src/components/ToolButtonGroup.svelte +27 -11
- package/src/tools/README.md +6 -5
- package/src/tools/calculators/README.md +4 -4
- package/dist/player/AssessmentPlayer.d.ts +0 -397
- package/dist/player/AssessmentPlayer.d.ts.map +0 -1
- package/dist/player/AssessmentPlayer.js +0 -974
- package/dist/player/AssessmentPlayer.js.map +0 -1
- package/dist/player/index.d.ts +0 -17
- package/dist/player/index.d.ts.map +0 -1
- package/dist/player/index.js +0 -15
- package/dist/player/index.js.map +0 -1
- package/dist/player/navigation-types.d.ts +0 -63
- package/dist/player/navigation-types.d.ts.map +0 -1
- package/dist/player/navigation-types.js +0 -7
- package/dist/player/navigation-types.js.map +0 -1
- package/dist/player/qti-navigation.d.ts +0 -29
- package/dist/player/qti-navigation.d.ts.map +0 -1
- package/dist/player/qti-navigation.js +0 -160
- package/dist/player/qti-navigation.js.map +0 -1
- package/dist/reference-layout/index.d.ts +0 -19
- package/dist/reference-layout/index.d.ts.map +0 -1
- package/dist/reference-layout/index.js +0 -20
- package/dist/reference-layout/index.js.map +0 -1
- package/dist/services/AnnotationToolbarConfig.d.ts +0 -134
- package/dist/services/AnnotationToolbarConfig.d.ts.map +0 -1
- package/dist/services/AnnotationToolbarConfig.js +0 -100
- package/dist/services/AnnotationToolbarConfig.js.map +0 -1
- package/dist/services/AssessmentAuthoringService.d.ts +0 -60
- package/dist/services/AssessmentAuthoringService.d.ts.map +0 -1
- package/dist/services/AssessmentAuthoringService.js +0 -183
- package/dist/services/AssessmentAuthoringService.js.map +0 -1
- package/dist/services/PNPMapper.d.ts +0 -81
- package/dist/services/PNPMapper.d.ts.map +0 -1
- package/dist/services/PNPMapper.js +0 -108
- package/dist/services/PNPMapper.js.map +0 -1
- package/dist/services/tts/provider-interface.d.ts +0 -131
- package/dist/services/tts/provider-interface.d.ts.map +0 -1
- package/dist/services/tts/provider-interface.js +0 -10
- package/dist/services/tts/provider-interface.js.map +0 -1
- package/src/components/PNPProfileTester.example.svelte +0 -188
- package/src/components/PNPProfileTester.svelte +0 -397
- package/src/components/PNPProvenanceViewer.svelte +0 -260
- package/src/components/QuestionToolBar.svelte +0 -483
- package/src/player/AssessmentLayout.svelte +0 -68
- package/src/player/README.md +0 -154
- package/src/reference-layout/README.md +0 -135
- package/src/reference-layout/ReferenceLayout.svelte +0 -201
- package/src/reference-layout/components/AssessmentContent.svelte +0 -259
- package/src/reference-layout/components/AssessmentFooter.svelte +0 -89
- package/src/reference-layout/components/AssessmentHeader.svelte +0 -250
- package/src/reference-layout/components/AssessmentNavigation.svelte +0 -134
- package/src/reference-layout/components/AssessmentToolsBar.svelte +0 -176
- package/src/reference-layout/components/ItemPanel.svelte +0 -200
- package/src/reference-layout/components/NotesPanel.svelte +0 -179
- package/src/reference-layout/components/PassagePanel.svelte +0 -76
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-config-defaults.d.ts","sourceRoot":"","sources":["../../src/services/tool-config-defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;CAiBzB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const DEFAULT_TOOL_ALIAS_MAP = {
|
|
2
|
+
tts: "textToSpeech",
|
|
3
|
+
colorScheme: "theme",
|
|
4
|
+
};
|
|
5
|
+
export const DEFAULT_TOOL_PLACEMENT = {
|
|
6
|
+
assessment: ["theme"],
|
|
7
|
+
section: ["theme", "textToSpeech"],
|
|
8
|
+
item: ["textToSpeech", "highlighter", "annotationToolbar", "graph", "periodicTable"],
|
|
9
|
+
passage: ["textToSpeech", "highlighter", "annotationToolbar", "lineReader"],
|
|
10
|
+
rubric: ["textToSpeech", "highlighter", "annotationToolbar", "lineReader"],
|
|
11
|
+
element: [
|
|
12
|
+
"calculator",
|
|
13
|
+
"answerEliminator",
|
|
14
|
+
"textToSpeech",
|
|
15
|
+
"ruler",
|
|
16
|
+
"protractor",
|
|
17
|
+
"highlighter",
|
|
18
|
+
"annotationToolbar",
|
|
19
|
+
"graph",
|
|
20
|
+
"periodicTable",
|
|
21
|
+
],
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=tool-config-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-config-defaults.js","sourceRoot":"","sources":["../../src/services/tool-config-defaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,GAAG,EAAE,cAAc;IACnB,WAAW,EAAE,OAAO;CACX,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC;IAClC,IAAI,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,CAAC;IACpF,OAAO,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,YAAY,CAAC;IAC3E,MAAM,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,YAAY,CAAC;IAC1E,OAAO,EAAE;QACR,YAAY;QACZ,kBAAkB;QAClB,cAAc;QACd,OAAO;QACP,YAAY;QACZ,aAAa;QACb,mBAAmB;QACnB,OAAO;QACP,eAAe;KACf;CACQ,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Defines the context types passed to tools for making visibility and behavior decisions.
|
|
5
5
|
* Each context level provides increasingly specific information about where the tool is being used.
|
|
6
6
|
*/
|
|
7
|
-
import type { AssessmentEntity, AssessmentItemRef, ItemEntity, PassageEntity,
|
|
7
|
+
import type { AssessmentEntity, AssessmentItemRef, AssessmentSection, ItemEntity, PassageEntity, RubricBlock } from "@pie-players/pie-players-shared/types";
|
|
8
8
|
/**
|
|
9
9
|
* Tool placement levels - where a tool can appear in the UI
|
|
10
10
|
*/
|
|
@@ -18,7 +18,7 @@ export interface BaseToolContext {
|
|
|
18
18
|
/** The full assessment entity */
|
|
19
19
|
assessment: AssessmentEntity;
|
|
20
20
|
/** Current section, if applicable */
|
|
21
|
-
section?:
|
|
21
|
+
section?: AssessmentSection;
|
|
22
22
|
/** Reference to the current item (always available except at assessment level) */
|
|
23
23
|
itemRef?: AssessmentItemRef;
|
|
24
24
|
/** DOM container where the tool will be rendered */
|
|
@@ -35,7 +35,7 @@ export interface AssessmentToolContext extends BaseToolContext {
|
|
|
35
35
|
*/
|
|
36
36
|
export interface SectionToolContext extends BaseToolContext {
|
|
37
37
|
level: "section";
|
|
38
|
-
section:
|
|
38
|
+
section: AssessmentSection;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Context for item-level tools (question toolbar)
|
|
@@ -76,7 +76,7 @@ export interface RubricToolContext extends BaseToolContext {
|
|
|
76
76
|
level: "rubric";
|
|
77
77
|
rubricBlock: RubricBlock;
|
|
78
78
|
/** Section containing this rubric block */
|
|
79
|
-
section:
|
|
79
|
+
section: AssessmentSection;
|
|
80
80
|
/** If rubric contains a passage (class="stimulus") */
|
|
81
81
|
passage?: PassageEntity;
|
|
82
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../src/services/tool-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../src/services/tool-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,34 +45,150 @@ export function isElementContext(context) {
|
|
|
45
45
|
*/
|
|
46
46
|
export function extractTextContent(context) {
|
|
47
47
|
if (isElementContext(context)) {
|
|
48
|
-
// Extract text from specific element in the config
|
|
49
48
|
const config = context.item.config;
|
|
50
49
|
if (!config)
|
|
51
50
|
return "";
|
|
52
|
-
|
|
51
|
+
const textChunks = [];
|
|
52
|
+
const stripHtml = (value) => value.replace(/<[^>]*>/g, " ").trim();
|
|
53
|
+
// Try to find element markup by element id.
|
|
53
54
|
const elementMarkup = config.elements?.[context.elementId];
|
|
54
55
|
if (elementMarkup) {
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
if (typeof elementMarkup === "string") {
|
|
57
|
+
textChunks.push(stripHtml(elementMarkup));
|
|
58
|
+
}
|
|
57
59
|
}
|
|
58
|
-
|
|
60
|
+
// Also inspect model data keyed by this element id.
|
|
61
|
+
// In many items, math appears in model.prompt/labels rather than elements[elementId].
|
|
62
|
+
const modelsRaw = config.models;
|
|
63
|
+
const models = Array.isArray(modelsRaw)
|
|
64
|
+
? modelsRaw
|
|
65
|
+
: modelsRaw && typeof modelsRaw === "object"
|
|
66
|
+
? Object.values(modelsRaw)
|
|
67
|
+
: [];
|
|
68
|
+
const model = models.find((m) => m && typeof m === "object" && m.id === context.elementId);
|
|
69
|
+
if (model) {
|
|
70
|
+
for (const value of Object.values(model)) {
|
|
71
|
+
if (typeof value === "string") {
|
|
72
|
+
textChunks.push(stripHtml(value));
|
|
73
|
+
}
|
|
74
|
+
if (Array.isArray(value)) {
|
|
75
|
+
for (const entry of value) {
|
|
76
|
+
if (entry && typeof entry === "object") {
|
|
77
|
+
for (const nested of Object.values(entry)) {
|
|
78
|
+
if (typeof nested === "string") {
|
|
79
|
+
textChunks.push(stripHtml(nested));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return textChunks.filter(Boolean).join(" ").trim();
|
|
59
88
|
}
|
|
60
89
|
if (isItemContext(context)) {
|
|
61
90
|
const item = context.item;
|
|
62
91
|
if (!item?.config)
|
|
63
92
|
return "";
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
93
|
+
const config = item.config;
|
|
94
|
+
const textChunks = [];
|
|
95
|
+
const stripHtml = (value) => value.replace(/<[^>]*>/g, " ").trim();
|
|
96
|
+
// Primary item markup
|
|
97
|
+
if (typeof config.markup === "string") {
|
|
98
|
+
textChunks.push(stripHtml(config.markup));
|
|
99
|
+
}
|
|
100
|
+
// Element markup snippets
|
|
101
|
+
const elements = config.elements;
|
|
102
|
+
if (elements && typeof elements === "object") {
|
|
103
|
+
for (const elementMarkup of Object.values(elements)) {
|
|
104
|
+
if (typeof elementMarkup === "string") {
|
|
105
|
+
textChunks.push(stripHtml(elementMarkup));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Model-level text (prompts, labels, etc.)
|
|
110
|
+
const modelsRaw = config.models;
|
|
111
|
+
const models = Array.isArray(modelsRaw)
|
|
112
|
+
? modelsRaw
|
|
113
|
+
: modelsRaw && typeof modelsRaw === "object"
|
|
114
|
+
? Object.values(modelsRaw)
|
|
115
|
+
: [];
|
|
116
|
+
for (const model of models) {
|
|
117
|
+
if (!model || typeof model !== "object")
|
|
118
|
+
continue;
|
|
119
|
+
for (const value of Object.values(model)) {
|
|
120
|
+
if (typeof value === "string") {
|
|
121
|
+
textChunks.push(stripHtml(value));
|
|
122
|
+
}
|
|
123
|
+
if (Array.isArray(value)) {
|
|
124
|
+
for (const entry of value) {
|
|
125
|
+
if (entry && typeof entry === "object") {
|
|
126
|
+
for (const nested of Object.values(entry)) {
|
|
127
|
+
if (typeof nested === "string") {
|
|
128
|
+
textChunks.push(stripHtml(nested));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return textChunks.filter(Boolean).join(" ").trim();
|
|
68
137
|
}
|
|
69
138
|
if (isPassageContext(context)) {
|
|
70
139
|
const passage = context.passage;
|
|
71
140
|
if (!passage?.config)
|
|
72
141
|
return "";
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
142
|
+
const config = passage.config;
|
|
143
|
+
const textChunks = [];
|
|
144
|
+
const stripHtml = (value) => value.replace(/<[^>]*>/g, " ").trim();
|
|
145
|
+
// Primary passage markup/content
|
|
146
|
+
if (typeof config.markup === "string") {
|
|
147
|
+
textChunks.push(stripHtml(config.markup));
|
|
148
|
+
}
|
|
149
|
+
if (typeof config.content === "string") {
|
|
150
|
+
textChunks.push(stripHtml(config.content));
|
|
151
|
+
}
|
|
152
|
+
if (typeof config.prompt === "string") {
|
|
153
|
+
textChunks.push(stripHtml(config.prompt));
|
|
154
|
+
}
|
|
155
|
+
// Element markup snippets
|
|
156
|
+
const elements = config.elements;
|
|
157
|
+
if (elements && typeof elements === "object") {
|
|
158
|
+
for (const elementMarkup of Object.values(elements)) {
|
|
159
|
+
if (typeof elementMarkup === "string") {
|
|
160
|
+
textChunks.push(stripHtml(elementMarkup));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Model-level text (prompts, labels, etc.)
|
|
165
|
+
const modelsRaw = config.models;
|
|
166
|
+
const models = Array.isArray(modelsRaw)
|
|
167
|
+
? modelsRaw
|
|
168
|
+
: modelsRaw && typeof modelsRaw === "object"
|
|
169
|
+
? Object.values(modelsRaw)
|
|
170
|
+
: [];
|
|
171
|
+
for (const model of models) {
|
|
172
|
+
if (!model || typeof model !== "object")
|
|
173
|
+
continue;
|
|
174
|
+
for (const value of Object.values(model)) {
|
|
175
|
+
if (typeof value === "string") {
|
|
176
|
+
textChunks.push(stripHtml(value));
|
|
177
|
+
}
|
|
178
|
+
if (Array.isArray(value)) {
|
|
179
|
+
for (const entry of value) {
|
|
180
|
+
if (entry && typeof entry === "object") {
|
|
181
|
+
for (const nested of Object.values(entry)) {
|
|
182
|
+
if (typeof nested === "string") {
|
|
183
|
+
textChunks.push(stripHtml(nested));
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return textChunks.filter(Boolean).join(" ").trim();
|
|
76
192
|
}
|
|
77
193
|
if (isRubricContext(context)) {
|
|
78
194
|
const rubric = context.rubricBlock;
|
|
@@ -108,24 +224,44 @@ export function hasMathContent(context) {
|
|
|
108
224
|
* Helper to check if context contains choice-based interactions
|
|
109
225
|
*/
|
|
110
226
|
export function hasChoiceInteraction(context) {
|
|
227
|
+
const interactionTypes = [
|
|
228
|
+
"pie-multiple-choice",
|
|
229
|
+
"pie-inline-choice",
|
|
230
|
+
"pie-select-text",
|
|
231
|
+
"multiple-choice",
|
|
232
|
+
"inline-choice",
|
|
233
|
+
"select-text",
|
|
234
|
+
];
|
|
111
235
|
if (isElementContext(context)) {
|
|
112
236
|
const config = context.item.config;
|
|
113
237
|
if (!config?.models)
|
|
114
238
|
return false;
|
|
115
239
|
// Find model for this element
|
|
116
|
-
const
|
|
240
|
+
const models = Array.isArray(config.models)
|
|
241
|
+
? config.models
|
|
242
|
+
: Object.values(config.models);
|
|
243
|
+
const model = models.find((m) => m && typeof m === "object" && m.id === context.elementId);
|
|
117
244
|
if (!model)
|
|
118
245
|
return false;
|
|
119
246
|
const type = model.element || "";
|
|
120
|
-
return
|
|
121
|
-
"pie-multiple-choice",
|
|
122
|
-
"pie-inline-choice",
|
|
123
|
-
"pie-select-text",
|
|
124
|
-
].includes(type);
|
|
247
|
+
return interactionTypes.includes(type);
|
|
125
248
|
}
|
|
126
249
|
if (isItemContext(context)) {
|
|
127
|
-
const
|
|
128
|
-
|
|
250
|
+
const modelsRaw = context.item.config?.models;
|
|
251
|
+
const models = Array.isArray(modelsRaw)
|
|
252
|
+
? modelsRaw
|
|
253
|
+
: modelsRaw && typeof modelsRaw === "object"
|
|
254
|
+
? Object.values(modelsRaw)
|
|
255
|
+
: [];
|
|
256
|
+
return models.some((m) => {
|
|
257
|
+
if (!m || typeof m !== "object")
|
|
258
|
+
return false;
|
|
259
|
+
const type = m.element || "";
|
|
260
|
+
if (interactionTypes.includes(type))
|
|
261
|
+
return true;
|
|
262
|
+
// Fallback for configs that don't provide canonical element names.
|
|
263
|
+
return Array.isArray(m.choices) && m.choices.length > 0;
|
|
264
|
+
});
|
|
129
265
|
}
|
|
130
266
|
return false;
|
|
131
267
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/services/tool-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4IH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC9B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACtD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,
|
|
1
|
+
{"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/services/tool-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4IH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC9B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,OAAoB;IAEpB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACtD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3E,4CAA4C;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,aAAa,EAAE,CAAC;YACnB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACvC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAC3C,CAAC;QACF,CAAC;QAED,oDAAoD;QACpD,sFAAsF;QACtF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAoC,CAAC;gBACrD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACxB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CAC7B,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACX,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC/B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnC,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;wBAC3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACxC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CACjC,KAAgC,CAChC,EAAE,CAAC;gCACH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oCAChC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gCACpC,CAAC;4BACF,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,OAAO,EAAE,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiC,CAAC;QACtD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3E,sBAAsB;QACtB,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA+C,CAAC;QACxE,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACvC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC;QAED,2CAA2C;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAoC,CAAC;gBACrD,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAS;YAClD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,EAAE,CAAC;gBACrE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC/B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnC,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;wBAC3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACxC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CACjC,KAAgC,CAChC,EAAE,CAAC;gCACH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oCAChC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gCACpC,CAAC;4BACF,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,MAAM;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAiC,CAAC;QACzD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3E,iCAAiC;QACjC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA+C,CAAC;QACxE,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACvC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC;QAED,2CAA2C;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAoC,CAAC;gBACrD,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAS;YAClD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,EAAE,CAAC;gBACrE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC/B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnC,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;wBAC3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACxC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CACjC,KAAgC,CAChC,EAAE,CAAC;gCACH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oCAChC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gCACpC,CAAC;4BACF,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAEnC,8DAA8D;QAC9D,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;QAED,uCAAuC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAoB;IAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEzC,kCAAkC;IAClC,MAAM,cAAc,GAAG;QACtB,aAAa,EAAE,SAAS;QACxB,kBAAkB,EAAE,qBAAqB;QACzC,eAAe,EAAE,+BAA+B;QAChD,MAAM,EAAE,oBAAoB;QAC5B,kBAAkB,EAAE,eAAe;QACnC,sBAAsB,EAAE,oBAAoB;KAC5C,CAAC;IAEF,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACxD,MAAM,gBAAgB,GAAG;QACxB,qBAAqB;QACrB,mBAAmB;QACnB,iBAAiB;QACjB,iBAAiB;QACjB,eAAe;QACf,aAAa;KACb,CAAC;IAEF,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,MAAM;YAAE,OAAO,KAAK,CAAC;QAElC,8BAA8B;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1C,CAAC,CAAC,MAAM,CAAC,MAAM;YACf,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAiC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACxB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CACpE,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,MAAM,IAAI,GAAI,KAAa,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,OAAO,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAoC,CAAC;gBACrD,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE;YAC7B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7B,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACjD,mEAAmE;YACnE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAoB;IACnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,iEAAiE;IACjE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAoB;IACrD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEzC,qCAAqC;IACrC,MAAM,iBAAiB,GAAG;QACzB,oDAAoD;QACpD,mBAAmB;QACnB,qBAAqB,EAAE,oBAAoB;QAC3C,oBAAoB,EAAE,oCAAoC;QAC1D,wCAAwC;QACxC,6CAA6C;KAC7C,CAAC;IAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const DEFAULT_TOOL_SCOPE_LEVELS: readonly ["assessment", "section", "item", "passage", "rubric"];
|
|
2
|
+
export type BuiltinToolScopeLevel = (typeof DEFAULT_TOOL_SCOPE_LEVELS)[number];
|
|
3
|
+
export type ToolScopeLevel = BuiltinToolScopeLevel | (string & {});
|
|
4
|
+
export interface ParsedToolInstanceId {
|
|
5
|
+
baseToolId: string;
|
|
6
|
+
scopeLevel: ToolScopeLevel;
|
|
7
|
+
scopeId: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function getRegisteredToolScopeLevels(): string[];
|
|
10
|
+
export declare function registerToolScopeLevel(scopeLevel: string): void;
|
|
11
|
+
export declare function isRegisteredToolScopeLevel(scopeLevel: string): scopeLevel is ToolScopeLevel;
|
|
12
|
+
export declare function createScopedToolId(baseToolId: string, scopeLevel: ToolScopeLevel, scopeId: string): string;
|
|
13
|
+
export declare function parseScopedToolId(id: string): ParsedToolInstanceId | null;
|
|
14
|
+
export declare function toOverlayToolId(id: string): string;
|
|
15
|
+
//# sourceMappingURL=tool-instance-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-instance-id.d.ts","sourceRoot":"","sources":["../../src/services/tool-instance-id.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,iEAM5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/E,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAM/D;AAED,wBAAgB,0BAA0B,CACzC,UAAU,EAAE,MAAM,GAChB,UAAU,IAAI,cAAc,CAE9B;AAED,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,MAAM,GACb,MAAM,CAYR;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAazE;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAIlD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export const DEFAULT_TOOL_SCOPE_LEVELS = [
|
|
2
|
+
"assessment",
|
|
3
|
+
"section",
|
|
4
|
+
"item",
|
|
5
|
+
"passage",
|
|
6
|
+
"rubric",
|
|
7
|
+
];
|
|
8
|
+
const registeredToolScopeLevels = new Set(DEFAULT_TOOL_SCOPE_LEVELS);
|
|
9
|
+
export function getRegisteredToolScopeLevels() {
|
|
10
|
+
return Array.from(registeredToolScopeLevels.values());
|
|
11
|
+
}
|
|
12
|
+
export function registerToolScopeLevel(scopeLevel) {
|
|
13
|
+
const normalized = scopeLevel.trim();
|
|
14
|
+
if (!normalized) {
|
|
15
|
+
throw new Error("Tool scope level must be a non-empty string");
|
|
16
|
+
}
|
|
17
|
+
registeredToolScopeLevels.add(normalized);
|
|
18
|
+
}
|
|
19
|
+
export function isRegisteredToolScopeLevel(scopeLevel) {
|
|
20
|
+
return registeredToolScopeLevels.has(scopeLevel);
|
|
21
|
+
}
|
|
22
|
+
export function createScopedToolId(baseToolId, scopeLevel, scopeId) {
|
|
23
|
+
const normalizedBase = baseToolId.trim();
|
|
24
|
+
const normalizedScopeId = scopeId.trim();
|
|
25
|
+
if (!normalizedBase || !normalizedScopeId) {
|
|
26
|
+
throw new Error("Tool instance ids require non-empty tool and scope ids");
|
|
27
|
+
}
|
|
28
|
+
if (!isRegisteredToolScopeLevel(scopeLevel)) {
|
|
29
|
+
throw new Error(`Unknown tool scope level '${scopeLevel}'. Register custom levels with registerToolScopeLevel().`);
|
|
30
|
+
}
|
|
31
|
+
return `${normalizedBase}:${scopeLevel}:${normalizedScopeId}`;
|
|
32
|
+
}
|
|
33
|
+
export function parseScopedToolId(id) {
|
|
34
|
+
const parts = id.split(":");
|
|
35
|
+
if (parts.length !== 3 && parts.length !== 4)
|
|
36
|
+
return null;
|
|
37
|
+
const [baseToolId, scopeLevelRaw, scopeId] = parts;
|
|
38
|
+
if (!baseToolId || !scopeId)
|
|
39
|
+
return null;
|
|
40
|
+
if (!isRegisteredToolScopeLevel(scopeLevelRaw)) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
baseToolId,
|
|
45
|
+
scopeLevel: scopeLevelRaw,
|
|
46
|
+
scopeId,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function toOverlayToolId(id) {
|
|
50
|
+
const parsed = parseScopedToolId(id);
|
|
51
|
+
if (!parsed)
|
|
52
|
+
return id;
|
|
53
|
+
return createScopedToolId(parsed.baseToolId, parsed.scopeLevel, parsed.scopeId);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=tool-instance-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-instance-id.js","sourceRoot":"","sources":["../../src/services/tool-instance-id.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC,YAAY;IACZ,SAAS;IACT,MAAM;IACN,SAAS;IACT,QAAQ;CACC,CAAC;AAWX,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAS,yBAAyB,CAAC,CAAC;AAE7E,MAAM,UAAU,4BAA4B;IAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACxD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;IACD,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,UAAkB;IAElB,OAAO,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,UAAkB,EAClB,UAA0B,EAC1B,OAAe;IAEf,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,cAAc,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACd,6BAA6B,UAAU,0DAA0D,CACjG,CAAC;IACH,CAAC;IACD,OAAO,GAAG,cAAc,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IACnD,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO;QACN,UAAU;QACV,UAAU,EAAE,aAAa;QACzB,OAAO;KACP,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAU;IACzC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -4,15 +4,14 @@
|
|
|
4
4
|
* Unified interface for all assessment tools that require
|
|
5
5
|
* configuration, authentication, or external services.
|
|
6
6
|
*
|
|
7
|
-
* Examples: Desmos calculators, TI calculators, TTS services
|
|
8
|
-
* translation services, dictionary APIs, etc.
|
|
7
|
+
* Examples: Desmos calculators, TI calculators, and TTS services.
|
|
9
8
|
*
|
|
10
9
|
* Part of PIE Assessment Toolkit.
|
|
11
10
|
*/
|
|
12
11
|
/**
|
|
13
12
|
* Tool category classification
|
|
14
13
|
*/
|
|
15
|
-
export type ToolCategory = "calculator" | "tts" | "translation" | "
|
|
14
|
+
export type ToolCategory = "calculator" | "tts" | "translation" | "annotation" | "accessibility" | "other";
|
|
16
15
|
/**
|
|
17
16
|
* Tool provider capabilities descriptor
|
|
18
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"IToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GACrB,YAAY,GACZ,KAAK,GACL,aAAa,GACb,YAAY,GACZ,eAAe,GACf,OAAO,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACxC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;;;;;;;;OASG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,eAAe,IAAI,wBAAwB,CAAC;IAE5C;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,IAAI,IAAI,CAAC;CAChB"}
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
* Unified interface for all assessment tools that require
|
|
5
5
|
* configuration, authentication, or external services.
|
|
6
6
|
*
|
|
7
|
-
* Examples: Desmos calculators, TI calculators, TTS services
|
|
8
|
-
* translation services, dictionary APIs, etc.
|
|
7
|
+
* Examples: Desmos calculators, TI calculators, and TTS services.
|
|
9
8
|
*
|
|
10
9
|
* Part of PIE Assessment Toolkit.
|
|
11
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IToolProvider.js","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"IToolProvider.js","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Math.js Calculator Tool Provider
|
|
3
|
+
*
|
|
4
|
+
* Provides an open-source calculator provider that supports
|
|
5
|
+
* basic and scientific calculator types without API keys.
|
|
6
|
+
*/
|
|
7
|
+
import type { CalculatorProvider } from "@pie-players/pie-calculator";
|
|
8
|
+
import type { IToolProvider, ToolProviderCapabilities } from "./IToolProvider.js";
|
|
9
|
+
export interface MathJsToolProviderConfig {
|
|
10
|
+
defaultConfig?: Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
export declare class MathJsToolProvider implements IToolProvider<MathJsToolProviderConfig, CalculatorProvider> {
|
|
13
|
+
readonly providerId = "mathjs-calculator";
|
|
14
|
+
readonly providerName = "Math.js Calculator";
|
|
15
|
+
readonly category: "calculator";
|
|
16
|
+
readonly version = "1.0";
|
|
17
|
+
readonly requiresAuth = false;
|
|
18
|
+
private mathjsProvider;
|
|
19
|
+
initialize(_config: MathJsToolProviderConfig): Promise<void>;
|
|
20
|
+
createInstance(): Promise<CalculatorProvider>;
|
|
21
|
+
getCapabilities(): ToolProviderCapabilities;
|
|
22
|
+
isReady(): boolean;
|
|
23
|
+
destroy(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=MathJsToolProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathJsToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/MathJsToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,wBAAwB;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,qBAAa,kBACZ,YAAW,aAAa,CAAC,wBAAwB,EAAE,kBAAkB,CAAC;IAEtE,QAAQ,CAAC,UAAU,uBAAuB;IAC1C,QAAQ,CAAC,YAAY,wBAAwB;IAC7C,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAC1C,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,YAAY,SAAS;IAE9B,OAAO,CAAC,cAAc,CAAyC;IAEzD,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAUnD,eAAe,IAAI,wBAAwB;IAc3C,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,IAAI;CAOf"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Math.js Calculator Tool Provider
|
|
3
|
+
*
|
|
4
|
+
* Provides an open-source calculator provider that supports
|
|
5
|
+
* basic and scientific calculator types without API keys.
|
|
6
|
+
*/
|
|
7
|
+
import { MathJsCalculatorProvider } from "../../tools/calculators/mathjs-provider.js";
|
|
8
|
+
export class MathJsToolProvider {
|
|
9
|
+
providerId = "mathjs-calculator";
|
|
10
|
+
providerName = "Math.js Calculator";
|
|
11
|
+
category = "calculator";
|
|
12
|
+
version = "1.0";
|
|
13
|
+
requiresAuth = false;
|
|
14
|
+
mathjsProvider = null;
|
|
15
|
+
async initialize(_config) {
|
|
16
|
+
if (this.mathjsProvider) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this.mathjsProvider = new MathJsCalculatorProvider();
|
|
20
|
+
await this.mathjsProvider.initialize();
|
|
21
|
+
console.log("[MathJsToolProvider] Initialized successfully");
|
|
22
|
+
}
|
|
23
|
+
async createInstance() {
|
|
24
|
+
if (!this.mathjsProvider) {
|
|
25
|
+
throw new Error("[MathJsToolProvider] Provider not initialized. Call initialize() first.");
|
|
26
|
+
}
|
|
27
|
+
return this.mathjsProvider;
|
|
28
|
+
}
|
|
29
|
+
getCapabilities() {
|
|
30
|
+
return {
|
|
31
|
+
supportsOffline: false,
|
|
32
|
+
requiresAuth: false,
|
|
33
|
+
maxInstances: null,
|
|
34
|
+
features: {
|
|
35
|
+
basic: true,
|
|
36
|
+
scientific: true,
|
|
37
|
+
graphing: false,
|
|
38
|
+
fourFunction: true,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
isReady() {
|
|
43
|
+
return this.mathjsProvider !== null;
|
|
44
|
+
}
|
|
45
|
+
destroy() {
|
|
46
|
+
if (this.mathjsProvider) {
|
|
47
|
+
this.mathjsProvider.destroy();
|
|
48
|
+
this.mathjsProvider = null;
|
|
49
|
+
}
|
|
50
|
+
console.log("[MathJsToolProvider] Destroyed");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=MathJsToolProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathJsToolProvider.js","sourceRoot":"","sources":["../../../src/services/tool-providers/MathJsToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAOtF,MAAM,OAAO,kBAAkB;IAGrB,UAAU,GAAG,mBAAmB,CAAC;IACjC,YAAY,GAAG,oBAAoB,CAAC;IACpC,QAAQ,GAAG,YAAqB,CAAC;IACjC,OAAO,GAAG,KAAK,CAAC;IAChB,YAAY,GAAG,KAAK,CAAC;IAEtB,cAAc,GAAoC,IAAI,CAAC;IAE/D,KAAK,CAAC,UAAU,CAAC,OAAiC;QACjD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACrD,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACd,yEAAyE,CACzE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,eAAe;QACd,OAAO;YACN,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;aAClB;SACD,CAAC;IACH,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IACrC,CAAC;IAED,OAAO;QACN,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;CACD"}
|
|
@@ -13,6 +13,8 @@ export { DesmosToolProvider } from "./DesmosToolProvider.js";
|
|
|
13
13
|
export type { DesmosToolProviderConfig } from "./DesmosToolProvider.js";
|
|
14
14
|
export { TIToolProvider } from "./TIToolProvider.js";
|
|
15
15
|
export type { TIToolProviderConfig } from "./TIToolProvider.js";
|
|
16
|
+
export { MathJsToolProvider } from "./MathJsToolProvider.js";
|
|
17
|
+
export type { MathJsToolProviderConfig } from "./MathJsToolProvider.js";
|
|
16
18
|
export { TTSToolProvider } from "./TTSToolProvider.js";
|
|
17
19
|
export type { TTSToolProviderConfig, TTSBackend, } from "./TTSToolProvider.js";
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACX,aAAa,EACb,YAAY,EACZ,wBAAwB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACX,qBAAqB,EACrB,UAAU,GACV,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACX,aAAa,EACb,YAAY,EACZ,wBAAwB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACX,qBAAqB,EACrB,UAAU,GACV,MAAM,sBAAsB,CAAC"}
|
|
@@ -11,5 +11,6 @@ export { ToolProviderRegistry } from "./ToolProviderRegistry.js";
|
|
|
11
11
|
// Concrete providers
|
|
12
12
|
export { DesmosToolProvider } from "./DesmosToolProvider.js";
|
|
13
13
|
export { TIToolProvider } from "./TIToolProvider.js";
|
|
14
|
+
export { MathJsToolProvider } from "./MathJsToolProvider.js";
|
|
14
15
|
export { TTSToolProvider } from "./TTSToolProvider.js";
|
|
15
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/tool-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,WAAW;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,qBAAqB;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/tool-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,WAAW;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,qBAAqB;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface ToolbarItemBase {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
ariaLabel?: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
tooltip?: string;
|
|
7
|
+
active?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ToolbarButtonItem extends ToolbarItemBase {
|
|
11
|
+
onClick: () => void;
|
|
12
|
+
href?: never;
|
|
13
|
+
target?: never;
|
|
14
|
+
rel?: never;
|
|
15
|
+
}
|
|
16
|
+
export interface ToolbarLinkItem extends ToolbarItemBase {
|
|
17
|
+
href: string;
|
|
18
|
+
target?: "_self" | "_blank" | "_parent" | "_top" | string;
|
|
19
|
+
rel?: string;
|
|
20
|
+
onClick?: never;
|
|
21
|
+
}
|
|
22
|
+
export type ToolbarItem = ToolbarButtonItem | ToolbarLinkItem;
|
|
23
|
+
export declare function isToolbarLinkItem(item: ToolbarItem): item is ToolbarLinkItem;
|
|
24
|
+
export declare function isInlineSvgIcon(icon: string | undefined): boolean;
|
|
25
|
+
export declare function isExternalIconUrl(icon: string | undefined): boolean;
|
|
26
|
+
//# sourceMappingURL=toolbar-items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar-items.d.ts","sourceRoot":"","sources":["../../src/services/toolbar-items.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACzD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,CAAC;CACZ;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,eAAe,CAE5E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEnE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function isToolbarLinkItem(item) {
|
|
2
|
+
return typeof item.href === "string";
|
|
3
|
+
}
|
|
4
|
+
export function isInlineSvgIcon(icon) {
|
|
5
|
+
return typeof icon === "string" && icon.startsWith("<svg");
|
|
6
|
+
}
|
|
7
|
+
export function isExternalIconUrl(icon) {
|
|
8
|
+
return typeof icon === "string" && icon.startsWith("http");
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=toolbar-items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar-items.js","sourceRoot":"","sources":["../../src/services/toolbar-items.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,iBAAiB,CAAC,IAAiB;IAClD,OAAO,OAAQ,IAAwB,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAwB;IACvD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACzD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC"}
|