@memberjunction/ng-dashboards 6.2.0-edge.5 → 6.2.0-edge.6
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 +28 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +15 -7
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +209 -57
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +28 -16
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +30 -6
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +15 -7
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
- package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.js +39 -14
- package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
- package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-document-rules.js +14 -0
- package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +127 -50
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
- package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-store-selection.js +57 -0
- package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +236 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +374 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +195 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +2910 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +1 -0
- package/dist/ChiefOfStaff/index.d.ts +3 -0
- package/dist/ChiefOfStaff/index.d.ts.map +1 -0
- package/dist/ChiefOfStaff/index.js +3 -0
- package/dist/ChiefOfStaff/index.js.map +1 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +2 -1
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +23 -18
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +11 -10
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
- package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
- package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +24 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +146 -50
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
- package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.js +110 -77
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +118 -65
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
- package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +256 -521
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +122 -249
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
- package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +335 -326
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js +51 -2
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
- package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +185 -103
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +22 -21
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +8 -2
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +71 -71
- package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
- package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
- package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
- package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** A vector index as the Vectors tab lists it. */
|
|
2
|
+
export interface VectorIndexOption {
|
|
3
|
+
ID: string;
|
|
4
|
+
Name: string;
|
|
5
|
+
VectorDatabaseID: string;
|
|
6
|
+
EmbeddingModelID: string;
|
|
7
|
+
}
|
|
8
|
+
/** The three dropdowns' values. An empty `VectorIndexID` is "Auto (create/find matching index)". */
|
|
9
|
+
export interface VectorStoreSelection {
|
|
10
|
+
EmbeddingModelID: string;
|
|
11
|
+
VectorDatabaseID: string;
|
|
12
|
+
VectorIndexID: string;
|
|
13
|
+
}
|
|
14
|
+
/** True when the index stores vectors in this database with this embedding model. */
|
|
15
|
+
export declare function IndexMatchesSelection(index: VectorIndexOption, databaseID: string, embeddingModelID: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The indexes the Vector Index dropdown offers: those in the selected database built with the
|
|
18
|
+
* selected embedding model. An index built with another model would override the model shown.
|
|
19
|
+
*/
|
|
20
|
+
export declare function IndexesForSelection(indexes: VectorIndexOption[], databaseID: string, embeddingModelID: string): VectorIndexOption[];
|
|
21
|
+
/** The selection after the user picks an index: the model and database dropdowns follow it. */
|
|
22
|
+
export declare function SelectIndex(selection: VectorStoreSelection, indexes: VectorIndexOption[], indexID: string): VectorStoreSelection;
|
|
23
|
+
/** The selection after the user changes the database: a chosen index from another database goes back to Auto. */
|
|
24
|
+
export declare function SelectDatabase(selection: VectorStoreSelection, indexes: VectorIndexOption[], databaseID: string): VectorStoreSelection;
|
|
25
|
+
/** The selection after the user changes the model: a chosen index built with another model goes back to Auto. */
|
|
26
|
+
export declare function SelectEmbeddingModel(selection: VectorStoreSelection, indexes: VectorIndexOption[], embeddingModelID: string): VectorStoreSelection;
|
|
27
|
+
/**
|
|
28
|
+
* The index Save may use as chosen: the selected one, only when it matches the database and model
|
|
29
|
+
* shown. Null means Auto (find or create the index for that database and model).
|
|
30
|
+
*/
|
|
31
|
+
export declare function ChosenIndexForSave(selection: VectorStoreSelection, indexes: VectorIndexOption[]): VectorIndexOption | null;
|
|
32
|
+
//# sourceMappingURL=vector-store-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-store-selection.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/vectors/vector-store-selection.ts"],"names":[],"mappings":"AAgBA,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,oGAAoG;AACpG,MAAM,WAAW,oBAAoB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAErH;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAEnI;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAMhI;AAED,iHAAiH;AACjH,wBAAgB,cAAc,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAEtI;AAED,iHAAiH;AACjH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,oBAAoB,CAElJ;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAM1H"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Vectors tab's "where do this document's vectors go" choice: an embedding model, a vector
|
|
3
|
+
* database and an index. The three dropdowns must always show what Save will store.
|
|
4
|
+
*
|
|
5
|
+
* They did not. Save used a chosen index's database and model in place of the dropdowns' values,
|
|
6
|
+
* and the index stayed chosen when the database or model dropdown changed (the index list was
|
|
7
|
+
* filtered to the new database, so the stale choice was no longer even visible). With the first
|
|
8
|
+
* index pre-selected on load, a document saved with "gte-small" and the in-memory store showing
|
|
9
|
+
* was stored with another index's Pinecone database and Gemini model.
|
|
10
|
+
*
|
|
11
|
+
* These functions keep the three consistent: an index is offered only when it matches both the
|
|
12
|
+
* database and model shown, choosing one moves both dropdowns to its values, and changing either
|
|
13
|
+
* dropdown drops an index that no longer matches back to Auto.
|
|
14
|
+
*/
|
|
15
|
+
import { UUIDsEqual } from '@memberjunction/global';
|
|
16
|
+
/** True when the index stores vectors in this database with this embedding model. */
|
|
17
|
+
export function IndexMatchesSelection(index, databaseID, embeddingModelID) {
|
|
18
|
+
return UUIDsEqual(index.VectorDatabaseID, databaseID) && UUIDsEqual(index.EmbeddingModelID, embeddingModelID);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The indexes the Vector Index dropdown offers: those in the selected database built with the
|
|
22
|
+
* selected embedding model. An index built with another model would override the model shown.
|
|
23
|
+
*/
|
|
24
|
+
export function IndexesForSelection(indexes, databaseID, embeddingModelID) {
|
|
25
|
+
return indexes.filter(i => IndexMatchesSelection(i, databaseID, embeddingModelID));
|
|
26
|
+
}
|
|
27
|
+
/** The selection after the user picks an index: the model and database dropdowns follow it. */
|
|
28
|
+
export function SelectIndex(selection, indexes, indexID) {
|
|
29
|
+
const index = indexID ? indexes.find(i => UUIDsEqual(i.ID, indexID)) : undefined;
|
|
30
|
+
if (!index) {
|
|
31
|
+
return { ...selection, VectorIndexID: '' };
|
|
32
|
+
}
|
|
33
|
+
return { EmbeddingModelID: index.EmbeddingModelID, VectorDatabaseID: index.VectorDatabaseID, VectorIndexID: index.ID };
|
|
34
|
+
}
|
|
35
|
+
/** The selection after the user changes the database: a chosen index from another database goes back to Auto. */
|
|
36
|
+
export function SelectDatabase(selection, indexes, databaseID) {
|
|
37
|
+
return keepIndexOnlyIfItMatches({ ...selection, VectorDatabaseID: databaseID }, indexes);
|
|
38
|
+
}
|
|
39
|
+
/** The selection after the user changes the model: a chosen index built with another model goes back to Auto. */
|
|
40
|
+
export function SelectEmbeddingModel(selection, indexes, embeddingModelID) {
|
|
41
|
+
return keepIndexOnlyIfItMatches({ ...selection, EmbeddingModelID: embeddingModelID }, indexes);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The index Save may use as chosen: the selected one, only when it matches the database and model
|
|
45
|
+
* shown. Null means Auto (find or create the index for that database and model).
|
|
46
|
+
*/
|
|
47
|
+
export function ChosenIndexForSave(selection, indexes) {
|
|
48
|
+
if (!selection.VectorIndexID) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const index = indexes.find(i => UUIDsEqual(i.ID, selection.VectorIndexID));
|
|
52
|
+
return index && IndexMatchesSelection(index, selection.VectorDatabaseID, selection.EmbeddingModelID) ? index : null;
|
|
53
|
+
}
|
|
54
|
+
function keepIndexOnlyIfItMatches(selection, indexes) {
|
|
55
|
+
return ChosenIndexForSave(selection, indexes) ? selection : { ...selection, VectorIndexID: '' };
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=vector-store-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-store-selection.js","sourceRoot":"","sources":["../../../../src/AI/components/vectors/vector-store-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAiBpD,qFAAqF;AACrF,MAAM,UAAU,qBAAqB,CAAC,KAAwB,EAAE,UAAkB,EAAE,gBAAwB;IACxG,OAAO,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAClH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA4B,EAAE,UAAkB,EAAE,gBAAwB;IAC1G,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,WAAW,CAAC,SAA+B,EAAE,OAA4B,EAAE,OAAe;IACtG,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,EAAE,GAAG,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;AAC3H,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,cAAc,CAAC,SAA+B,EAAE,OAA4B,EAAE,UAAkB;IAC5G,OAAO,wBAAwB,CAAC,EAAE,GAAG,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7F,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,oBAAoB,CAAC,SAA+B,EAAE,OAA4B,EAAE,gBAAwB;IACxH,OAAO,wBAAwB,CAAC,EAAE,GAAG,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;AACnG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA+B,EAAE,OAA4B;IAC5F,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3E,OAAO,KAAK,IAAI,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxH,CAAC;AAED,SAAS,wBAAwB,CAAC,SAA+B,EAAE,OAA4B;IAC3F,OAAO,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AACpG,CAAC","sourcesContent":["/**\n * The Vectors tab's \"where do this document's vectors go\" choice: an embedding model, a vector\n * database and an index. The three dropdowns must always show what Save will store.\n *\n * They did not. Save used a chosen index's database and model in place of the dropdowns' values,\n * and the index stayed chosen when the database or model dropdown changed (the index list was\n * filtered to the new database, so the stale choice was no longer even visible). With the first\n * index pre-selected on load, a document saved with \"gte-small\" and the in-memory store showing\n * was stored with another index's Pinecone database and Gemini model.\n *\n * These functions keep the three consistent: an index is offered only when it matches both the\n * database and model shown, choosing one moves both dropdowns to its values, and changing either\n * dropdown drops an index that no longer matches back to Auto.\n */\nimport { UUIDsEqual } from '@memberjunction/global';\n\n/** A vector index as the Vectors tab lists it. */\nexport interface VectorIndexOption {\n ID: string;\n Name: string;\n VectorDatabaseID: string;\n EmbeddingModelID: string;\n}\n\n/** The three dropdowns' values. An empty `VectorIndexID` is \"Auto (create/find matching index)\". */\nexport interface VectorStoreSelection {\n EmbeddingModelID: string;\n VectorDatabaseID: string;\n VectorIndexID: string;\n}\n\n/** True when the index stores vectors in this database with this embedding model. */\nexport function IndexMatchesSelection(index: VectorIndexOption, databaseID: string, embeddingModelID: string): boolean {\n return UUIDsEqual(index.VectorDatabaseID, databaseID) && UUIDsEqual(index.EmbeddingModelID, embeddingModelID);\n}\n\n/**\n * The indexes the Vector Index dropdown offers: those in the selected database built with the\n * selected embedding model. An index built with another model would override the model shown.\n */\nexport function IndexesForSelection(indexes: VectorIndexOption[], databaseID: string, embeddingModelID: string): VectorIndexOption[] {\n return indexes.filter(i => IndexMatchesSelection(i, databaseID, embeddingModelID));\n}\n\n/** The selection after the user picks an index: the model and database dropdowns follow it. */\nexport function SelectIndex(selection: VectorStoreSelection, indexes: VectorIndexOption[], indexID: string): VectorStoreSelection {\n const index = indexID ? indexes.find(i => UUIDsEqual(i.ID, indexID)) : undefined;\n if (!index) {\n return { ...selection, VectorIndexID: '' };\n }\n return { EmbeddingModelID: index.EmbeddingModelID, VectorDatabaseID: index.VectorDatabaseID, VectorIndexID: index.ID };\n}\n\n/** The selection after the user changes the database: a chosen index from another database goes back to Auto. */\nexport function SelectDatabase(selection: VectorStoreSelection, indexes: VectorIndexOption[], databaseID: string): VectorStoreSelection {\n return keepIndexOnlyIfItMatches({ ...selection, VectorDatabaseID: databaseID }, indexes);\n}\n\n/** The selection after the user changes the model: a chosen index built with another model goes back to Auto. */\nexport function SelectEmbeddingModel(selection: VectorStoreSelection, indexes: VectorIndexOption[], embeddingModelID: string): VectorStoreSelection {\n return keepIndexOnlyIfItMatches({ ...selection, EmbeddingModelID: embeddingModelID }, indexes);\n}\n\n/**\n * The index Save may use as chosen: the selected one, only when it matches the database and model\n * shown. Null means Auto (find or create the index for that database and model).\n */\nexport function ChosenIndexForSave(selection: VectorStoreSelection, indexes: VectorIndexOption[]): VectorIndexOption | null {\n if (!selection.VectorIndexID) {\n return null;\n }\n const index = indexes.find(i => UUIDsEqual(i.ID, selection.VectorIndexID));\n return index && IndexMatchesSelection(index, selection.VectorDatabaseID, selection.EmbeddingModelID) ? index : null;\n}\n\nfunction keepIndexOnlyIfItMatches(selection: VectorStoreSelection, indexes: VectorIndexOption[]): VectorStoreSelection {\n return ChosenIndexForSave(selection, indexes) ? selection : { ...selection, VectorIndexID: '' };\n}\n"]}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure, unit-testable helpers for the "My Chief of Staff" Executive Cockpit's
|
|
3
|
+
* agent context + client tools.
|
|
4
|
+
*
|
|
5
|
+
* 🚨 SAFETY BOUNDARY 🚨
|
|
6
|
+
* The Chief of Staff Cockpit exposes ONLY navigation / tab-switch / filter / search /
|
|
7
|
+
* refresh / detail-view tools to the co-agent. DELIBERATELY NOT exposed as client tools
|
|
8
|
+
* (mutations stay human-driven in the UI):
|
|
9
|
+
* - Approving or rejecting `MJ: AI Agent Requests`
|
|
10
|
+
* - Modifying or saving `MJ: AI Agent User Policies` governance toggles / thresholds
|
|
11
|
+
* - Triggering "Wake Now" or pausing/resuming `MJ: User Routines`
|
|
12
|
+
*
|
|
13
|
+
* Published context exposes only aggregate counts, active tab/filter state, governance
|
|
14
|
+
* mode summaries, and bounded display names (capped at 25) — never raw request payloads,
|
|
15
|
+
* custom instructions overrides, or private message content.
|
|
16
|
+
*/
|
|
17
|
+
import type { MJAIAgentUserPolicyEntity, MJUserRoutineEntity, MJAIAgentRequestEntity } from '@memberjunction/core-entities';
|
|
18
|
+
import { CompositeKey, type EntityInfo, type RunViewParams } from '@memberjunction/core';
|
|
19
|
+
import { type AgentToolResult } from '../shared/agent-tool-validation';
|
|
20
|
+
/**
|
|
21
|
+
* The cockpit serves one agent, identified by its metadata name. The id is resolved at runtime
|
|
22
|
+
* through `AIEngineBase.GetAgentByName`, never hardcoded.
|
|
23
|
+
*/
|
|
24
|
+
export declare const CHIEF_OF_STAFF_AGENT_NAME = "Chief of Staff";
|
|
25
|
+
export type ChiefOfStaffTab = 'overview' | 'priorities' | 'approvals-wakes' | 'governance';
|
|
26
|
+
export declare const VALID_CHIEF_OF_STAFF_TABS: readonly ChiefOfStaffTab[];
|
|
27
|
+
export type TaskHealthStatus = 'OnTrack' | 'AtRisk' | 'OffTrack' | 'Completed' | 'Paused';
|
|
28
|
+
export type HealthFilter = 'all' | TaskHealthStatus;
|
|
29
|
+
export declare const VALID_HEALTH_FILTERS: readonly HealthFilter[];
|
|
30
|
+
export type PolicyStatusValue = MJAIAgentUserPolicyEntity['Status'];
|
|
31
|
+
export type PolicyCoordinationModeValue = MJAIAgentUserPolicyEntity['CoordinationMode'];
|
|
32
|
+
export type PolicyDataAccessModeValue = MJAIAgentUserPolicyEntity['DefaultDataAccessMode'];
|
|
33
|
+
export type PolicyEmailChannelModeValue = MJAIAgentUserPolicyEntity['EmailChannelMode'];
|
|
34
|
+
export type PolicyCalendarChannelModeValue = MJAIAgentUserPolicyEntity['CalendarChannelMode'];
|
|
35
|
+
export type PolicyPhoneChannelModeValue = MJAIAgentUserPolicyEntity['PhoneChannelMode'];
|
|
36
|
+
export type PolicyMessagingChannelModeValue = MJAIAgentUserPolicyEntity['MessagingChannelMode'];
|
|
37
|
+
export type RoutineStatusValue = MJUserRoutineEntity['Status'];
|
|
38
|
+
export type RequestStatusValue = MJAIAgentRequestEntity['Status'];
|
|
39
|
+
/**
|
|
40
|
+
* Projection shape for rows returned from `MJ_BizApps_Tasks: Tasks` (`[__mj_BizAppsTasks].[vwTasks]`).
|
|
41
|
+
*/
|
|
42
|
+
export interface BizAppsTaskRecordLike {
|
|
43
|
+
ID: string;
|
|
44
|
+
ParentID: string | null;
|
|
45
|
+
Name: string;
|
|
46
|
+
Description: string | null;
|
|
47
|
+
Status: string;
|
|
48
|
+
Priority: string | null;
|
|
49
|
+
IsPriority: boolean | number | null;
|
|
50
|
+
HealthStatus: TaskHealthStatus | null;
|
|
51
|
+
ConfidenceScore: number | null;
|
|
52
|
+
PercentComplete: number | null;
|
|
53
|
+
CheckInCadence: string | null;
|
|
54
|
+
PlanningPeriod: string | null;
|
|
55
|
+
BaselineValue: number | null;
|
|
56
|
+
TargetValue: number | null;
|
|
57
|
+
CurrentValue: number | null;
|
|
58
|
+
UnitOfMeasure: string | null;
|
|
59
|
+
MetricDirection: string | null;
|
|
60
|
+
DueAt: Date | string | null;
|
|
61
|
+
LastCheckInAt: Date | string | null;
|
|
62
|
+
NextCheckInDueAt: Date | string | null;
|
|
63
|
+
TypeID?: string | null;
|
|
64
|
+
Type?: string | null;
|
|
65
|
+
TaskType?: string | null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Grouped priority objective card with its child milestones/tasks and computed progress.
|
|
69
|
+
*/
|
|
70
|
+
export interface PriorityObjectiveCardViewModel {
|
|
71
|
+
Task: BizAppsTaskRecordLike;
|
|
72
|
+
Subtasks: BizAppsTaskRecordLike[];
|
|
73
|
+
CompletedSubtaskCount: number;
|
|
74
|
+
EffectivePercentComplete: number;
|
|
75
|
+
EffectiveHealth: TaskHealthStatus;
|
|
76
|
+
MetricProgressLabel: string | null;
|
|
77
|
+
IsOverdue: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface RoutineSummaryItem {
|
|
80
|
+
ID: string;
|
|
81
|
+
Name: string;
|
|
82
|
+
Status: RoutineStatusValue;
|
|
83
|
+
ScheduleMode: MJUserRoutineEntity['ScheduleMode'];
|
|
84
|
+
CronExpression: string | null;
|
|
85
|
+
NextRunAt: Date | string | null;
|
|
86
|
+
LastRunAt: Date | string | null;
|
|
87
|
+
LastRunStatus: MJUserRoutineEntity['LastRunStatus'];
|
|
88
|
+
}
|
|
89
|
+
export interface RequestSummaryItem {
|
|
90
|
+
ID: string;
|
|
91
|
+
Request: string;
|
|
92
|
+
Status: RequestStatusValue;
|
|
93
|
+
Priority: number;
|
|
94
|
+
RequestedAt: Date | string;
|
|
95
|
+
ExpiresAt: Date | string | null;
|
|
96
|
+
RequestType?: MJAIAgentRequestEntity['RequestType'];
|
|
97
|
+
RequestTypeID?: MJAIAgentRequestEntity['RequestTypeID'];
|
|
98
|
+
}
|
|
99
|
+
export interface PolicyGovernanceSummary {
|
|
100
|
+
HasPolicyRecord: boolean;
|
|
101
|
+
DisplayName: string;
|
|
102
|
+
Status: PolicyStatusValue;
|
|
103
|
+
OnboardingStatus: MJAIAgentUserPolicyEntity['OnboardingStatus'];
|
|
104
|
+
CoordinationMode: PolicyCoordinationModeValue;
|
|
105
|
+
DefaultDataAccessMode: PolicyDataAccessModeValue;
|
|
106
|
+
EmailChannelMode: PolicyEmailChannelModeValue;
|
|
107
|
+
CalendarChannelMode: PolicyCalendarChannelModeValue;
|
|
108
|
+
PhoneChannelMode: PolicyPhoneChannelModeValue;
|
|
109
|
+
MessagingChannelMode: PolicyMessagingChannelModeValue;
|
|
110
|
+
AllowInterAgentCoordination: boolean;
|
|
111
|
+
RequireApprovalForExternalComms: boolean;
|
|
112
|
+
RequireApprovalForFinancials: boolean;
|
|
113
|
+
RequireApprovalForDestructiveActions: boolean;
|
|
114
|
+
AutoApproveAmountThreshold: number | null;
|
|
115
|
+
}
|
|
116
|
+
export interface ChiefOfStaffMetrics {
|
|
117
|
+
TotalTaskCount: number;
|
|
118
|
+
PriorityObjectiveCount: number;
|
|
119
|
+
SubtaskCount: number;
|
|
120
|
+
OnTrackCount: number;
|
|
121
|
+
AtRiskCount: number;
|
|
122
|
+
OffTrackCount: number;
|
|
123
|
+
CompletedPriorityCount: number;
|
|
124
|
+
AverageConfidenceScore: number | null;
|
|
125
|
+
AveragePriorityProgress: number;
|
|
126
|
+
PendingApprovalCount: number;
|
|
127
|
+
HighPriorityPendingCount: number;
|
|
128
|
+
ActiveWakeRoutineCount: number;
|
|
129
|
+
NextScheduledWakeAt: Date | null;
|
|
130
|
+
PriorityCards: PriorityObjectiveCardViewModel[];
|
|
131
|
+
}
|
|
132
|
+
export interface ChiefOfStaffAgentContextInput {
|
|
133
|
+
ActiveTab: ChiefOfStaffTab;
|
|
134
|
+
SearchText: string;
|
|
135
|
+
HealthFilter: HealthFilter;
|
|
136
|
+
Metrics: ChiefOfStaffMetrics;
|
|
137
|
+
Governance: PolicyGovernanceSummary;
|
|
138
|
+
Routines: readonly RoutineSummaryItem[];
|
|
139
|
+
PendingRequests: readonly RequestSummaryItem[];
|
|
140
|
+
}
|
|
141
|
+
export type AgentContextScalar = string | number | boolean | null;
|
|
142
|
+
export type AgentContextRecord = Record<string, AgentContextScalar | string[] | Record<string, AgentContextScalar>>;
|
|
143
|
+
/**
|
|
144
|
+
* Returns `true` when an `MJ: AI Agent Requests` row represents an actionable approval or
|
|
145
|
+
* review request for the Executive Cockpit's Pending Approvals queue, and `false` when it
|
|
146
|
+
* is a conversational `Information` turn created by `BaseAgent` when ending a chat turn.
|
|
147
|
+
*/
|
|
148
|
+
export declare function IsApprovalRequest(req: {
|
|
149
|
+
RequestType?: MJAIAgentRequestEntity['RequestType'] | undefined;
|
|
150
|
+
RequestTypeID?: MJAIAgentRequestEntity['RequestTypeID'] | undefined;
|
|
151
|
+
}): boolean;
|
|
152
|
+
export declare function ParseOptionalDate(val: Date | string | null | undefined): Date | null;
|
|
153
|
+
/**
|
|
154
|
+
* Builds the primary key of a BizApps task from the entity's own primary key column(s) and the
|
|
155
|
+
* in-memory row. Tasks is an OpenApp entity, so neither the column name nor the column count is
|
|
156
|
+
* assumed; the same key feeds `OpenEntityRecord` and the `PrimaryKey` parameter of `Update Record`.
|
|
157
|
+
*/
|
|
158
|
+
export declare function BuildTaskRecordKey(entityInfo: EntityInfo, task: BizAppsTaskRecordLike): CompositeKey;
|
|
159
|
+
export declare function IsTaskPriorityObjective(task: BizAppsTaskRecordLike): boolean;
|
|
160
|
+
export declare function NormalizeTaskHealth(task: BizAppsTaskRecordLike): TaskHealthStatus;
|
|
161
|
+
/**
|
|
162
|
+
* Percent progress from `BaselineValue` toward `TargetValue`, clamped to 0-100.
|
|
163
|
+
* Honors `MetricDirection` implicitly: a Down target (target < baseline) measures reduction.
|
|
164
|
+
* Returns null when there is no target or the target equals the baseline (no measurable span).
|
|
165
|
+
*/
|
|
166
|
+
export declare function ComputeTaskMetricPercent(task: BizAppsTaskRecordLike): number | null;
|
|
167
|
+
/** ExtraFilters for the cockpit's three core-entity queries. Every clause is bound to the current user: the cockpit never shows another user's Chief of Staff data. */
|
|
168
|
+
export interface CockpitScopeFilters {
|
|
169
|
+
Policy: string;
|
|
170
|
+
Routines: string;
|
|
171
|
+
Requests: string;
|
|
172
|
+
}
|
|
173
|
+
export declare function BuildCockpitScopeFilters(currentUserId: string, chiefOfStaffAgentId: string): CockpitScopeFilters;
|
|
174
|
+
/** OpenApp entity holding the person linked to the signed-in MJ user (`LinkedUserID`). */
|
|
175
|
+
export declare const BIZAPPS_PEOPLE_ENTITY_NAME = "MJ_BizApps_Common: People";
|
|
176
|
+
/** OpenApp entity linking tasks to the people assigned to them. */
|
|
177
|
+
export declare const BIZAPPS_TASK_ASSIGNMENTS_ENTITY_NAME = "MJ_BizApps_Tasks: Task Assignments";
|
|
178
|
+
/** CSS modifier for a task priority badge, keyed by the Tasks `Priority` value list (Critical/High/Medium/Low). */
|
|
179
|
+
export declare function GetTaskPriorityClass(priority: string | null): string;
|
|
180
|
+
/** Minimal RunView surface the task-scope resolver needs; `RunView` from @memberjunction/core satisfies it. */
|
|
181
|
+
export interface TaskScopeQueryRunner {
|
|
182
|
+
RunView<T>(params: RunViewParams): Promise<{
|
|
183
|
+
Success: boolean;
|
|
184
|
+
Results: T[];
|
|
185
|
+
ErrorMessage?: string;
|
|
186
|
+
}>;
|
|
187
|
+
}
|
|
188
|
+
export type PersonTaskScope = {
|
|
189
|
+
HasLinkedPerson: false;
|
|
190
|
+
} | {
|
|
191
|
+
HasLinkedPerson: true;
|
|
192
|
+
PersonID: string;
|
|
193
|
+
Filter: string;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Resolve the BizApps person linked to `currentUserId` and the filter that limits the Tasks query to work
|
|
197
|
+
* that person created or is assigned to. Throws when either lookup fails so the caller can show the error.
|
|
198
|
+
*/
|
|
199
|
+
export declare function ResolvePersonTaskScope(runner: TaskScopeQueryRunner, currentUserId: string): Promise<PersonTaskScope>;
|
|
200
|
+
/**
|
|
201
|
+
* ExtraFilter for `MJ_BizApps_Tasks: Tasks` limiting rows to work the given person created or is assigned to.
|
|
202
|
+
* `assignedTaskIDs` come from `MJ_BizApps_Tasks: Task Assignments` for the same person.
|
|
203
|
+
*/
|
|
204
|
+
export declare function BuildPersonScopedTaskFilter(personID: string, assignedTaskIDs: readonly string[]): string;
|
|
205
|
+
export declare function FormatTaskMetricProgress(task: BizAppsTaskRecordLike): string | null;
|
|
206
|
+
export declare function CalculateChiefOfStaffMetrics(tasks: readonly BizAppsTaskRecordLike[], routines: readonly RoutineSummaryItem[], requests: readonly RequestSummaryItem[], now?: Date): ChiefOfStaffMetrics;
|
|
207
|
+
export declare function BuildChiefOfStaffAgentContext(input: ChiefOfStaffAgentContextInput): AgentContextRecord;
|
|
208
|
+
export declare function ValidateChiefOfStaffTabParam(raw: string | number | boolean | null | undefined): {
|
|
209
|
+
ok: true;
|
|
210
|
+
value: ChiefOfStaffTab;
|
|
211
|
+
} | {
|
|
212
|
+
ok: false;
|
|
213
|
+
result: AgentToolResult;
|
|
214
|
+
};
|
|
215
|
+
export declare function ValidateHealthFilterParam(raw: string | number | boolean | null | undefined): {
|
|
216
|
+
ok: true;
|
|
217
|
+
value: HealthFilter;
|
|
218
|
+
} | {
|
|
219
|
+
ok: false;
|
|
220
|
+
result: AgentToolResult;
|
|
221
|
+
};
|
|
222
|
+
export declare function ValidateSearchQueryParam(raw: string | number | boolean | null | undefined): {
|
|
223
|
+
ok: true;
|
|
224
|
+
value: string;
|
|
225
|
+
} | {
|
|
226
|
+
ok: false;
|
|
227
|
+
result: AgentToolResult;
|
|
228
|
+
};
|
|
229
|
+
export declare function ResolvePriorityObjectiveByIDOrName(cards: readonly PriorityObjectiveCardViewModel[], rawRef: string | number | boolean | null | undefined): {
|
|
230
|
+
ok: true;
|
|
231
|
+
value: PriorityObjectiveCardViewModel;
|
|
232
|
+
} | {
|
|
233
|
+
ok: false;
|
|
234
|
+
error: string;
|
|
235
|
+
};
|
|
236
|
+
//# sourceMappingURL=chief-of-staff-agent-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chief-of-staff-agent-context.d.ts","sourceRoot":"","sources":["../../src/ChiefOfStaff/chief-of-staff-agent-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACR,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAKH,KAAK,eAAe,EACvB,MAAM,iCAAiC,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAC3F,eAAO,MAAM,yBAAyB,EAAE,SAAS,eAAe,EAKtD,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAC1F,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,gBAAgB,CAAC;AACpD,eAAO,MAAM,oBAAoB,EAAE,SAAS,YAAY,EAO9C,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AACpE,MAAM,MAAM,2BAA2B,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;AACxF,MAAM,MAAM,yBAAyB,GAAG,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;AAC3F,MAAM,MAAM,2BAA2B,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;AACxF,MAAM,MAAM,8BAA8B,GAAG,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;AAC9F,MAAM,MAAM,2BAA2B,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;AACxF,MAAM,MAAM,+BAA+B,GAAG,yBAAyB,CAAC,sBAAsB,CAAC,CAAC;AAChG,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC/D,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,gBAAgB,CAAC;IAClC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAClD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;IAC3B,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,uBAAuB;IACpC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,gBAAgB,EAAE,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;IAChE,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,qBAAqB,EAAE,yBAAyB,CAAC;IACjD,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,mBAAmB,EAAE,8BAA8B,CAAC;IACpD,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,oBAAoB,EAAE,+BAA+B,CAAC;IACtD,2BAA2B,EAAE,OAAO,CAAC;IACrC,+BAA+B,EAAE,OAAO,CAAC;IACzC,4BAA4B,EAAE,OAAO,CAAC;IACtC,oCAAoC,EAAE,OAAO,CAAC;IAC9C,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAmB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,IAAI,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,8BAA8B,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,6BAA6B;IAC1C,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,uBAAuB,CAAC;IACpC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxC,eAAe,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAClE,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACnC,MAAM,EACN,kBAAkB,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CACrE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACnC,WAAW,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAChE,aAAa,CAAC,EAAE,sBAAsB,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;CACvE,GAAG,OAAO,CAIV;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CASpF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,GAAG,YAAY,CAEpG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAa5E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,gBAAgB,CAQjF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAYnF;AAED,uKAAuK;AACvK,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,mBAAmB,CAQhH;AAED,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,8BAA8B,CAAC;AACtE,mEAAmE;AACnE,eAAO,MAAM,oCAAoC,uCAAuC,CAAC;AAEzF,mHAAmH;AACnH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAWpE;AAED,+GAA+G;AAC/G,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzG;AAED,MAAM,MAAM,eAAe,GACrB;IAAE,eAAe,EAAE,KAAK,CAAA;CAAE,GAC1B;IAAE,eAAe,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE;;;GAGG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,oBAAoB,EAC5B,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,CAAC,CA0B1B;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAOxG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAUnF;AAED,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,SAAS,qBAAqB,EAAE,EACvC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,GAAG,GAAE,IAAiB,GACvB,mBAAmB,CA2GrB;AAED,wBAAgB,6BAA6B,CACzC,KAAK,EAAE,6BAA6B,GACrC,kBAAkB,CAoDpB;AAED,wBAAgB,4BAA4B,CACxC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAClD;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAE/E;AAED,wBAAgB,yBAAyB,CACrC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAClD;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAE5E;AAED,wBAAgB,wBAAwB,CACpC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAClD;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAEtE;AAED,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,SAAS,8BAA8B,EAAE,EAChD,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACrD;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,8BAA8B,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkCpF"}
|