@awell-health/awell-extensions 2.0.39 → 2.0.41
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/extensions/gridspace/actions/callWithGrace/callWithGrace.d.ts +70 -0
- package/dist/extensions/gridspace/actions/callWithGrace/callWithGrace.js +44 -0
- package/dist/extensions/gridspace/actions/callWithGrace/callWithGrace.js.map +1 -0
- package/dist/extensions/gridspace/actions/callWithGrace/callWithGrace.test.d.ts +1 -0
- package/dist/extensions/gridspace/actions/callWithGrace/callWithGrace.test.js +40 -0
- package/dist/extensions/gridspace/actions/callWithGrace/callWithGrace.test.js.map +1 -0
- package/dist/extensions/gridspace/actions/callWithGrace/config.d.ts +41 -0
- package/dist/extensions/gridspace/actions/callWithGrace/config.js +36 -0
- package/dist/extensions/gridspace/actions/callWithGrace/config.js.map +1 -0
- package/dist/extensions/gridspace/actions/callWithGrace/index.d.ts +1 -0
- package/dist/extensions/gridspace/actions/callWithGrace/index.js +18 -0
- package/dist/extensions/gridspace/actions/callWithGrace/index.js.map +1 -0
- package/dist/extensions/gridspace/actions/index.d.ts +71 -0
- package/dist/extensions/gridspace/actions/index.js +8 -0
- package/dist/extensions/gridspace/actions/index.js.map +1 -0
- package/dist/extensions/gridspace/index.d.ts +2 -0
- package/dist/extensions/gridspace/index.js +20 -0
- package/dist/extensions/gridspace/index.js.map +1 -0
- package/dist/extensions/gridspace/lib/client.d.ts +5 -0
- package/dist/extensions/gridspace/lib/client.js +24 -0
- package/dist/extensions/gridspace/lib/client.js.map +1 -0
- package/dist/extensions/gridspace/lib/index.d.ts +1 -0
- package/dist/extensions/gridspace/lib/index.js +18 -0
- package/dist/extensions/gridspace/lib/index.js.map +1 -0
- package/dist/extensions/gridspace/settings.d.ts +18 -0
- package/dist/extensions/gridspace/settings.js +20 -0
- package/dist/extensions/gridspace/settings.js.map +1 -0
- package/dist/extensions/healthie/actions/index.d.ts +1 -1
- package/dist/extensions/index.js +2 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/markdown.json +4 -0
- package/dist/extensions/shelly/actions/categorizeMessage/categorizeMessage.js +0 -2
- package/dist/extensions/shelly/actions/categorizeMessage/categorizeMessage.js.map +1 -1
- package/dist/extensions/shelly/actions/categorizeMessage/lib/categorizeMessageWithLLM/categorizeMessageWithLLM.js +0 -4
- package/dist/extensions/shelly/actions/categorizeMessage/lib/categorizeMessageWithLLM/categorizeMessageWithLLM.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/config/fields.d.ts +0 -10
- package/dist/extensions/shelly/actions/generateMessage/config/fields.js +0 -8
- package/dist/extensions/shelly/actions/generateMessage/config/fields.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/generateMessage.js +1 -4
- package/dist/extensions/shelly/actions/generateMessage/generateMessage.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/generateMessage.test.js +4 -9
- package/dist/extensions/shelly/actions/generateMessage/generateMessage.test.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/generateMessageRealOpenAI.test.js +2 -4
- package/dist/extensions/shelly/actions/generateMessage/generateMessageRealOpenAI.test.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/constants.d.ts +1 -1
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/constants.js +3 -11
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/constants.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/generateMessageWithLLM.d.ts +1 -2
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/generateMessageWithLLM.js +1 -6
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/generateMessageWithLLM.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/generateMessageWithLLM.test.js +2 -5
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/generateMessageWithLLM.test.js.map +1 -1
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/generateMessageWithLLMRealOpenAI.test.js +2 -5
- package/dist/extensions/shelly/actions/generateMessage/lib/generateMessageWithLLM/generateMessageWithLLMRealOpenAI.test.js.map +1 -1
- package/dist/extensions/shelly/actions/index.d.ts +0 -7
- package/dist/extensions/shelly/actions/summarizeCareFlow/lib/summarizeCareFlowWithLLM/summarizeCareFlowWithLLM.js +0 -2
- package/dist/extensions/shelly/actions/summarizeCareFlow/lib/summarizeCareFlowWithLLM/summarizeCareFlowWithLLM.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeCareFlow/lib/summarizeCareFlowWithLLM/summarizeCareFlowWithLLM.test.js +0 -1
- package/dist/extensions/shelly/actions/summarizeCareFlow/lib/summarizeCareFlowWithLLM/summarizeCareFlowWithLLM.test.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeCareFlow/summarizeCareFlow.js +1 -2
- package/dist/extensions/shelly/actions/summarizeCareFlow/summarizeCareFlow.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeForm/config/fields.js +2 -2
- package/dist/extensions/shelly/actions/summarizeForm/config/fields.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.js +3 -3
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.test.js +4 -4
- package/dist/extensions/shelly/actions/summarizeForm/summarizeForm.test.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeForm/summarizeFormRealOpenAI.test.js +55 -1
- package/dist/extensions/shelly/actions/summarizeForm/summarizeFormRealOpenAI.test.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStep.js +5 -5
- package/dist/extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStep.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStep.test.js +4 -4
- package/dist/extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStep.test.js.map +1 -1
- package/dist/extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStepRealOpenAI.test.js +3 -3
- package/dist/extensions/shelly/actions/summarizeFormsInStep/summarizeFormsInStepRealOpenAI.test.js.map +1 -1
- package/dist/extensions/shelly/lib/getFormResponseText/getFormResponseText.js +0 -2
- package/dist/extensions/shelly/lib/getFormResponseText/getFormResponseText.js.map +1 -1
- package/dist/extensions/shelly/lib/summarizeFormWithLLM/constants.d.ts +2 -2
- package/dist/extensions/shelly/lib/summarizeFormWithLLM/constants.js +43 -30
- package/dist/extensions/shelly/lib/summarizeFormWithLLM/constants.js.map +1 -1
- package/dist/extensions/shelly/lib/summarizeFormWithLLM/summarizeFormWithLLM.d.ts +2 -1
- package/dist/extensions/shelly/lib/summarizeFormWithLLM/summarizeFormWithLLM.js +2 -4
- package/dist/extensions/shelly/lib/summarizeFormWithLLM/summarizeFormWithLLM.js.map +1 -1
- package/dist/extensions/shelly/lib/summarizeFormWithLLM/summarizeFormWithLLM.test.js +6 -3
- package/dist/extensions/shelly/lib/summarizeFormWithLLM/summarizeFormWithLLM.test.js.map +1 -1
- package/package.json +1 -1
@@ -0,0 +1,70 @@
|
|
1
|
+
import { Category } from '@awell-health/extensions-core';
|
2
|
+
export declare const callWithGrace: {
|
3
|
+
key: string;
|
4
|
+
title: string;
|
5
|
+
description: string;
|
6
|
+
category: Category.COMMUNICATION;
|
7
|
+
fields: {
|
8
|
+
flowId: {
|
9
|
+
id: string;
|
10
|
+
label: string;
|
11
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
12
|
+
required: true;
|
13
|
+
description: string;
|
14
|
+
};
|
15
|
+
phoneNumber: {
|
16
|
+
id: string;
|
17
|
+
label: string;
|
18
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
19
|
+
stringType: import("@awell-health/extensions-core").StringType.PHONE;
|
20
|
+
required: true;
|
21
|
+
description: string;
|
22
|
+
};
|
23
|
+
data: {
|
24
|
+
id: string;
|
25
|
+
label: string;
|
26
|
+
type: import("@awell-health/extensions-core").FieldType.JSON;
|
27
|
+
required: true;
|
28
|
+
description: string;
|
29
|
+
};
|
30
|
+
};
|
31
|
+
dataPoints: {};
|
32
|
+
previewable: false;
|
33
|
+
onEvent: ({ payload, onComplete, onError }: {
|
34
|
+
payload: import("@awell-health/extensions-core").NewActivityPayload<{
|
35
|
+
flowId: {
|
36
|
+
id: string;
|
37
|
+
label: string;
|
38
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
39
|
+
required: true;
|
40
|
+
description: string;
|
41
|
+
};
|
42
|
+
phoneNumber: {
|
43
|
+
id: string;
|
44
|
+
label: string;
|
45
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
46
|
+
stringType: import("@awell-health/extensions-core").StringType.PHONE;
|
47
|
+
required: true;
|
48
|
+
description: string;
|
49
|
+
};
|
50
|
+
data: {
|
51
|
+
id: string;
|
52
|
+
label: string;
|
53
|
+
type: import("@awell-health/extensions-core").FieldType.JSON;
|
54
|
+
required: true;
|
55
|
+
description: string;
|
56
|
+
};
|
57
|
+
}, {
|
58
|
+
basicAuthorization: {
|
59
|
+
label: string;
|
60
|
+
key: string;
|
61
|
+
obfuscated: true;
|
62
|
+
required: true;
|
63
|
+
description: string;
|
64
|
+
};
|
65
|
+
}>;
|
66
|
+
onComplete: import("@awell-health/extensions-core").OnCompleteCallback<string>;
|
67
|
+
onError: import("@awell-health/extensions-core").OnErrorCallback;
|
68
|
+
helpers: import("@awell-health/extensions-core").Helpers;
|
69
|
+
}) => Promise<void>;
|
70
|
+
};
|
@@ -0,0 +1,44 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.callWithGrace = void 0;
|
4
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
5
|
+
const config_1 = require("./config");
|
6
|
+
const settings_1 = require("../../settings");
|
7
|
+
const lib_1 = require("@extensions/gridspace/lib");
|
8
|
+
const zod_1 = require("zod");
|
9
|
+
exports.callWithGrace = {
|
10
|
+
key: 'callWithGrace',
|
11
|
+
title: 'Call with Grace',
|
12
|
+
description: 'Use AI phone conversations to communicate with your patients.',
|
13
|
+
category: extensions_core_1.Category.COMMUNICATION,
|
14
|
+
fields: config_1.fields,
|
15
|
+
dataPoints: config_1.dataPoints,
|
16
|
+
previewable: false,
|
17
|
+
onEvent: async ({ payload, onComplete, onError }) => {
|
18
|
+
const { pathway, patient } = payload;
|
19
|
+
const { fields: { flowId, data, phoneNumber }, settings: { basicAuthorization }, } = (0, extensions_core_1.validate)({
|
20
|
+
schema: zod_1.z.object({ fields: config_1.FieldsSchema, settings: settings_1.SettingsSchema }),
|
21
|
+
payload,
|
22
|
+
});
|
23
|
+
const client = new lib_1.GridspaceClient(basicAuthorization);
|
24
|
+
const allData = {
|
25
|
+
...data,
|
26
|
+
phone_number: phoneNumber,
|
27
|
+
patient_id: patient.id,
|
28
|
+
...(patient.profile && { ...patient.profile }),
|
29
|
+
pathway_id: pathway.id,
|
30
|
+
pathway_definition_id: pathway.definition_id,
|
31
|
+
};
|
32
|
+
const resp = await client.callWithGrace(flowId, allData);
|
33
|
+
await onComplete({
|
34
|
+
events: [
|
35
|
+
{
|
36
|
+
date: new Date().toISOString(),
|
37
|
+
text: { en: `Call with Grace. Response: ${JSON.stringify(resp)}` },
|
38
|
+
},
|
39
|
+
],
|
40
|
+
data_points: {},
|
41
|
+
});
|
42
|
+
},
|
43
|
+
};
|
44
|
+
//# sourceMappingURL=callWithGrace.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"callWithGrace.js","sourceRoot":"","sources":["../../../../../extensions/gridspace/actions/callWithGrace/callWithGrace.ts"],"names":[],"mappings":";;;AAAA,mEAA+E;AAC/E,qCAA2D;AAC3D,6CAAyD;AACzD,mDAA2D;AAC3D,6BAAuB;AACV,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,eAAe;IACpB,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,+DAA+D;IAC5E,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QAClD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QACpC,MAAM,EACJ,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EACrC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,GACjC,GAAG,IAAA,0BAAQ,EAAC;YACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAY,EAAE,QAAQ,EAAE,yBAAc,EAAE,CAAC;YACpE,OAAO;SACR,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,kBAAkB,CAAC,CAAA;QACtD,MAAM,OAAO,GAAG;YACd,GAAG,IAAI;YACP,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9C,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,qBAAqB,EAAE,OAAO,CAAC,aAAa;SAC7C,CAAA;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACxD,MAAM,UAAU,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE;iBACnE;aACF;YACD,WAAW,EAAE,EAAE;SAChB,CAAC,CAAA;IACJ,CAAC;CAC+C,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,40 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
4
|
+
const callWithGrace_1 = require("./callWithGrace");
|
5
|
+
const lib_1 = require("@extensions/gridspace/lib");
|
6
|
+
const tests_1 = require("@/tests");
|
7
|
+
jest.mock('../../lib/client');
|
8
|
+
const mockCallWithGrace = jest
|
9
|
+
.spyOn(lib_1.GridspaceClient.prototype, 'callWithGrace')
|
10
|
+
.mockImplementation(() => {
|
11
|
+
return Promise.resolve({ success: true });
|
12
|
+
});
|
13
|
+
describe('callWithGrace', () => {
|
14
|
+
const { extensionAction, onComplete, onError, helpers, clearMocks } = extensions_core_1.TestHelpers.fromAction(callWithGrace_1.callWithGrace);
|
15
|
+
beforeEach(clearMocks);
|
16
|
+
it('should call the GridspaceClient with the correct data', async () => {
|
17
|
+
await extensionAction.onEvent({
|
18
|
+
payload: (0, tests_1.generateTestPayload)({
|
19
|
+
fields: {
|
20
|
+
flowId: 'flowId',
|
21
|
+
data: { foo: 'bar', name: 'John Doe' },
|
22
|
+
phoneNumber: '1234567890',
|
23
|
+
},
|
24
|
+
settings: { basicAuthorization: 'basicAuthorization' },
|
25
|
+
}),
|
26
|
+
onComplete,
|
27
|
+
onError,
|
28
|
+
helpers,
|
29
|
+
});
|
30
|
+
expect(mockCallWithGrace).toHaveBeenCalledWith('flowId', {
|
31
|
+
foo: 'bar',
|
32
|
+
phone_number: '1234567890',
|
33
|
+
patient_id: 'test-patient',
|
34
|
+
name: 'John Doe',
|
35
|
+
pathway_id: 'pathway-id',
|
36
|
+
pathway_definition_id: 'pathway-definition-id',
|
37
|
+
});
|
38
|
+
});
|
39
|
+
});
|
40
|
+
//# sourceMappingURL=callWithGrace.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"callWithGrace.test.js","sourceRoot":"","sources":["../../../../../extensions/gridspace/actions/callWithGrace/callWithGrace.test.ts"],"names":[],"mappings":";;AAAA,mEAA2D;AAC3D,mDAA+C;AAC/C,mDAA2D;AAC3D,mCAA6C;AAC7C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AAC7B,MAAM,iBAAiB,GAAG,IAAI;KAC3B,KAAK,CAAC,qBAAe,CAAC,SAAS,EAAE,eAAe,CAAC;KACjD,kBAAkB,CAAC,GAAG,EAAE;IACvB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAA;AAEJ,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GACjE,6BAAW,CAAC,UAAU,CAAC,6BAAa,CAAC,CAAA;IACvC,UAAU,CAAC,UAAU,CAAC,CAAA;IACtB,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,eAAe,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,IAAA,2BAAmB,EAAC;gBAC3B,MAAM,EAAE;oBACN,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAS;oBAC7C,WAAW,EAAE,YAAY;iBAC1B;gBACD,QAAQ,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,EAAE;aACvD,CAAC;YACF,UAAU;YACV,OAAO;YACP,OAAO;SACR,CAAC,CAAA;QACF,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE;YACvD,GAAG,EAAE,KAAK;YACV,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,cAAc;YAC1B,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,YAAY;YACxB,qBAAqB,EAAE,uBAAuB;SAC/C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { FieldType, StringType } from '@awell-health/extensions-core';
|
2
|
+
import { z } from 'zod';
|
3
|
+
export declare const fields: {
|
4
|
+
flowId: {
|
5
|
+
id: string;
|
6
|
+
label: string;
|
7
|
+
type: FieldType.STRING;
|
8
|
+
required: true;
|
9
|
+
description: string;
|
10
|
+
};
|
11
|
+
phoneNumber: {
|
12
|
+
id: string;
|
13
|
+
label: string;
|
14
|
+
type: FieldType.STRING;
|
15
|
+
stringType: StringType.PHONE;
|
16
|
+
required: true;
|
17
|
+
description: string;
|
18
|
+
};
|
19
|
+
data: {
|
20
|
+
id: string;
|
21
|
+
label: string;
|
22
|
+
type: FieldType.JSON;
|
23
|
+
required: true;
|
24
|
+
description: string;
|
25
|
+
};
|
26
|
+
};
|
27
|
+
export declare const dataPoints: {};
|
28
|
+
export declare const FieldsSchema: z.ZodObject<{
|
29
|
+
flowId: z.ZodString;
|
30
|
+
phoneNumber: z.ZodString;
|
31
|
+
data: z.ZodRecord<z.ZodString, z.ZodAny>;
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
33
|
+
data: Record<string, any>;
|
34
|
+
flowId: string;
|
35
|
+
phoneNumber: string;
|
36
|
+
}, {
|
37
|
+
data: Record<string, any>;
|
38
|
+
flowId: string;
|
39
|
+
phoneNumber: string;
|
40
|
+
}>;
|
41
|
+
export type ActionFields = z.infer<typeof FieldsSchema>;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FieldsSchema = exports.dataPoints = exports.fields = void 0;
|
4
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
5
|
+
const zod_1 = require("zod");
|
6
|
+
exports.fields = {
|
7
|
+
flowId: {
|
8
|
+
id: 'flowId',
|
9
|
+
label: 'Flow ID',
|
10
|
+
type: extensions_core_1.FieldType.STRING,
|
11
|
+
required: true,
|
12
|
+
description: 'The ID of the flow to use for the call.',
|
13
|
+
},
|
14
|
+
phoneNumber: {
|
15
|
+
id: 'phoneNumber',
|
16
|
+
label: 'Phone Number',
|
17
|
+
type: extensions_core_1.FieldType.STRING,
|
18
|
+
stringType: extensions_core_1.StringType.PHONE,
|
19
|
+
required: true,
|
20
|
+
description: 'The phone number to call.',
|
21
|
+
},
|
22
|
+
data: {
|
23
|
+
id: 'data',
|
24
|
+
label: 'Data',
|
25
|
+
type: extensions_core_1.FieldType.JSON,
|
26
|
+
required: true,
|
27
|
+
description: 'Any additional data to be passed to the call.',
|
28
|
+
},
|
29
|
+
};
|
30
|
+
exports.dataPoints = {};
|
31
|
+
exports.FieldsSchema = zod_1.z.object({
|
32
|
+
flowId: zod_1.z.string(),
|
33
|
+
phoneNumber: zod_1.z.string(),
|
34
|
+
data: zod_1.z.record(zod_1.z.any()),
|
35
|
+
});
|
36
|
+
//# sourceMappingURL=config.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../extensions/gridspace/actions/callWithGrace/config.ts"],"names":[],"mappings":";;;AAAA,mEAKsC;AACtC,6BAAuB;AAEV,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,yCAAyC;KACvD;IACD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,2BAA2B;KACzC;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,+CAA+C;KAC7D;CACe,CAAA;AAEL,QAAA,UAAU,GAAG,EAAgD,CAAA;AAE7D,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC;CACxB,CAAC,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './callWithGrace';
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./callWithGrace"), exports);
|
18
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/gridspace/actions/callWithGrace/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B"}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
export declare const actions: {
|
2
|
+
callWithGrace: {
|
3
|
+
key: string;
|
4
|
+
title: string;
|
5
|
+
description: string;
|
6
|
+
category: import("@awell-health/extensions-core").Category.COMMUNICATION;
|
7
|
+
fields: {
|
8
|
+
flowId: {
|
9
|
+
id: string;
|
10
|
+
label: string;
|
11
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
12
|
+
required: true;
|
13
|
+
description: string;
|
14
|
+
};
|
15
|
+
phoneNumber: {
|
16
|
+
id: string;
|
17
|
+
label: string;
|
18
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
19
|
+
stringType: import("@awell-health/extensions-core").StringType.PHONE;
|
20
|
+
required: true;
|
21
|
+
description: string;
|
22
|
+
};
|
23
|
+
data: {
|
24
|
+
id: string;
|
25
|
+
label: string;
|
26
|
+
type: import("@awell-health/extensions-core").FieldType.JSON;
|
27
|
+
required: true;
|
28
|
+
description: string;
|
29
|
+
};
|
30
|
+
};
|
31
|
+
dataPoints: {};
|
32
|
+
previewable: false;
|
33
|
+
onEvent: ({ payload, onComplete, onError }: {
|
34
|
+
payload: import("@awell-health/extensions-core").NewActivityPayload<{
|
35
|
+
flowId: {
|
36
|
+
id: string;
|
37
|
+
label: string;
|
38
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
39
|
+
required: true;
|
40
|
+
description: string;
|
41
|
+
};
|
42
|
+
phoneNumber: {
|
43
|
+
id: string;
|
44
|
+
label: string;
|
45
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
46
|
+
stringType: import("@awell-health/extensions-core").StringType.PHONE;
|
47
|
+
required: true;
|
48
|
+
description: string;
|
49
|
+
};
|
50
|
+
data: {
|
51
|
+
id: string;
|
52
|
+
label: string;
|
53
|
+
type: import("@awell-health/extensions-core").FieldType.JSON;
|
54
|
+
required: true;
|
55
|
+
description: string;
|
56
|
+
};
|
57
|
+
}, {
|
58
|
+
basicAuthorization: {
|
59
|
+
label: string;
|
60
|
+
key: string;
|
61
|
+
obfuscated: true;
|
62
|
+
required: true;
|
63
|
+
description: string;
|
64
|
+
};
|
65
|
+
}>;
|
66
|
+
onComplete: import("@awell-health/extensions-core").OnCompleteCallback<string>;
|
67
|
+
onError: import("@awell-health/extensions-core").OnErrorCallback;
|
68
|
+
helpers: import("@awell-health/extensions-core").Helpers;
|
69
|
+
}) => Promise<void>;
|
70
|
+
};
|
71
|
+
};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.actions = void 0;
|
4
|
+
const callWithGrace_1 = require("./callWithGrace");
|
5
|
+
exports.actions = {
|
6
|
+
callWithGrace: callWithGrace_1.callWithGrace,
|
7
|
+
};
|
8
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/gridspace/actions/index.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAElC,QAAA,OAAO,GAAG;IACrB,aAAa,EAAb,6BAAa;CACd,CAAA"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Gridspace = void 0;
|
4
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
5
|
+
const actions_1 = require("./actions");
|
6
|
+
const settings_1 = require("./settings");
|
7
|
+
exports.Gridspace = {
|
8
|
+
key: 'gridspace',
|
9
|
+
category: extensions_core_1.Category.COMMUNICATION,
|
10
|
+
title: 'Gridspace',
|
11
|
+
description: 'Use AI phone conversations to communicate with your patients.',
|
12
|
+
icon_url: 'https://res.cloudinary.com/da7x4rzl4/image/upload/v1727996065/gridspace_inc_logo_yd4j7n.jpg',
|
13
|
+
author: {
|
14
|
+
authorType: extensions_core_1.AuthorType.AWELL,
|
15
|
+
},
|
16
|
+
settings: settings_1.settings,
|
17
|
+
actions: actions_1.actions,
|
18
|
+
webhooks: [],
|
19
|
+
};
|
20
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../extensions/gridspace/index.ts"],"names":[],"mappings":";;;AAAA,mEAIsC;AACtC,uCAAmC;AACnC,yCAAqC;AAExB,QAAA,SAAS,GAAc;IAClC,GAAG,EAAE,WAAW;IAChB,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,+DAA+D;IAC5E,QAAQ,EACN,6FAA6F;IAC/F,MAAM,EAAE;QACN,UAAU,EAAE,4BAAU,CAAC,KAAK;KAC7B;IACD,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,iBAAO;IACP,QAAQ,EAAE,EAAE;CACb,CAAA"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.GridspaceClient = void 0;
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
8
|
+
class GridspaceClient {
|
9
|
+
constructor(basicAuthorization) {
|
10
|
+
this.client = axios_1.default.create({
|
11
|
+
baseURL: 'https://app.getinlet.ai',
|
12
|
+
headers: {
|
13
|
+
Authorization: `Basic ${basicAuthorization}`,
|
14
|
+
'Content-Type': 'application/json',
|
15
|
+
},
|
16
|
+
});
|
17
|
+
}
|
18
|
+
async callWithGrace(workflowId, data) {
|
19
|
+
const resp = await this.client.post(`/v0/workflows/${workflowId}/run`, data);
|
20
|
+
return resp.data;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
exports.GridspaceClient = GridspaceClient;
|
24
|
+
//# sourceMappingURL=client.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../extensions/gridspace/lib/client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4C;AAC5C,MAAa,eAAe;IAE1B,YAAY,kBAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,kBAAkB,EAAE;gBAC5C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,IAAyB;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,UAAU,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5E,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;CACF;AAhBD,0CAgBC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './client';
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./client"), exports);
|
18
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/gridspace/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import z from 'zod';
|
2
|
+
export declare const settings: {
|
3
|
+
basicAuthorization: {
|
4
|
+
label: string;
|
5
|
+
key: string;
|
6
|
+
obfuscated: true;
|
7
|
+
required: true;
|
8
|
+
description: string;
|
9
|
+
};
|
10
|
+
};
|
11
|
+
export declare const SettingsSchema: z.ZodObject<{
|
12
|
+
basicAuthorization: z.ZodString;
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
14
|
+
basicAuthorization: string;
|
15
|
+
}, {
|
16
|
+
basicAuthorization: string;
|
17
|
+
}>;
|
18
|
+
export type ExtensionSettings = z.infer<typeof SettingsSchema>;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.SettingsSchema = exports.settings = void 0;
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
8
|
+
exports.settings = {
|
9
|
+
basicAuthorization: {
|
10
|
+
label: 'Basic Authorization',
|
11
|
+
key: 'basicAuthorization',
|
12
|
+
obfuscated: true,
|
13
|
+
required: true,
|
14
|
+
description: 'The basic authorization token for Gridspace.',
|
15
|
+
},
|
16
|
+
};
|
17
|
+
exports.SettingsSchema = zod_1.default.object({
|
18
|
+
basicAuthorization: zod_1.default.string(),
|
19
|
+
});
|
20
|
+
//# sourceMappingURL=settings.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../extensions/gridspace/settings.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAmB;AAEN,QAAA,QAAQ,GAAG;IACtB,kBAAkB,EAAE;QAClB,KAAK,EAAE,qBAAqB;QAC5B,GAAG,EAAE,oBAAoB;QACzB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,8CAA8C;KAC5D;CACiB,CAAA;AAEP,QAAA,cAAc,GAAG,aAAC,CAAC,MAAM,CAAC;IACrC,kBAAkB,EAAE,aAAC,CAAC,MAAM,EAAE;CAC/B,CAAC,CAAA"}
|
@@ -224,7 +224,7 @@ export declare const actions: {
|
|
224
224
|
required: true;
|
225
225
|
description: string;
|
226
226
|
};
|
227
|
-
}, "firstName" | "lastName" | "email" | "dob" | "gender" | "
|
227
|
+
}, "firstName" | "lastName" | "email" | "dob" | "gender" | "phoneNumber" | "isoSex" | "primaryProviderId" | "groupName">;
|
228
228
|
sendChatMessage: import("@awell-health/extensions-core").Action<{
|
229
229
|
healthie_patient_id: {
|
230
230
|
id: string;
|
package/dist/extensions/index.js
CHANGED
@@ -39,6 +39,7 @@ const elation_1 = require("./elation");
|
|
39
39
|
const experimental_1 = require("./experimental");
|
40
40
|
const external_server_1 = require("./external-server");
|
41
41
|
const formsort_1 = require("./formsort");
|
42
|
+
const gridspace_1 = require("./gridspace");
|
42
43
|
const healthie_1 = require("./healthie");
|
43
44
|
const hello_world_1 = require("./hello-world");
|
44
45
|
const hubspot_1 = require("./hubspot");
|
@@ -83,6 +84,7 @@ exports.extensions = [
|
|
83
84
|
experimental_1.Experimental,
|
84
85
|
external_server_1.ExternalServer,
|
85
86
|
formsort_1.Formsort,
|
87
|
+
gridspace_1.Gridspace,
|
86
88
|
healthie_1.Healthie,
|
87
89
|
hello_world_1.HelloWorld,
|
88
90
|
hubspot_1.hubspot,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../extensions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA6C;AAC7C,mCAA+B;AAC/B,2CAAuC;AACvC,yCAAqC;AACrC,mDAA+C;AAC/C,6CAAyC;AACzC,yCAAqC;AACrC,+CAA2C;AAC3C,6CAAyC;AACzC,yCAAqC;AACrC,+CAA2C;AAC3C,uCAAmC;AACnC,iDAA6C;AAC7C,uDAAkD;AAClD,yCAAqC;AACrC,yCAAqC;AACrC,+CAA0C;AAC1C,uCAAmC;AACnC,iEAA6D;AAC7D,uCAAmC;AACnC,yCAAqC;AACrC,2CAAuC;AACvC,uCAAmC;AACnC,iCAAsC;AACtC,uCAAmC;AACnC,+CAA2C;AAC3C,2CAAuC;AACvC,+CAA2C;AAC3C,iCAA6B;AAC7B,yCAAqC;AACrC,6DAA+C;AAC/C,iCAA6B;AAC7B,qCAAiC;AACjC,qCAAiC;AACjC,yCAAqC;AACrC,yCAAqC;AACrC,2CAAuC;AACvC,qCAAiC;AACjC,uCAAmC;AACnC,yCAAqC;AACrC,uCAAmC;AAEnC,sDAAuC;AAG1B,QAAA,QAAQ,GAAa,IAAI,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,2BAAY;IACZ,aAAK;IACL,qBAAS;IACT,mBAAQ;IACR,6BAAa;IACb,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,iBAAO;IACP,2BAAY;IACZ,gCAAc;IACd,mBAAQ;IACR,mBAAQ;IACR,wBAAU;IACV,iBAAO;IACP,2CAAoB;IACpB,iBAAO;IACP,mBAAQ;IACR,qBAAS;IACT,iBAAO;IACP,oBAAa;IACb,yBAAW;IACX,iBAAO;IACP,qBAAS;IACT,yBAAW;IACX,WAAI;IACJ,mBAAQ;IACR,6BAAQ;IACR,WAAI;IACJ,eAAM;IACN,eAAM;IACN,mBAAQ;IACR,mBAAQ;IACR,qBAAS;IACT,eAAM;IACN,iBAAO;IACP,mBAAQ;IACR,iBAAO;CACR,CAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../extensions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA6C;AAC7C,mCAA+B;AAC/B,2CAAuC;AACvC,yCAAqC;AACrC,mDAA+C;AAC/C,6CAAyC;AACzC,yCAAqC;AACrC,+CAA2C;AAC3C,6CAAyC;AACzC,yCAAqC;AACrC,+CAA2C;AAC3C,uCAAmC;AACnC,iDAA6C;AAC7C,uDAAkD;AAClD,yCAAqC;AACrC,2CAAuC;AACvC,yCAAqC;AACrC,+CAA0C;AAC1C,uCAAmC;AACnC,iEAA6D;AAC7D,uCAAmC;AACnC,yCAAqC;AACrC,2CAAuC;AACvC,uCAAmC;AACnC,iCAAsC;AACtC,uCAAmC;AACnC,+CAA2C;AAC3C,2CAAuC;AACvC,+CAA2C;AAC3C,iCAA6B;AAC7B,yCAAqC;AACrC,6DAA+C;AAC/C,iCAA6B;AAC7B,qCAAiC;AACjC,qCAAiC;AACjC,yCAAqC;AACrC,yCAAqC;AACrC,2CAAuC;AACvC,qCAAiC;AACjC,uCAAmC;AACnC,yCAAqC;AACrC,uCAAmC;AAEnC,sDAAuC;AAG1B,QAAA,QAAQ,GAAa,IAAI,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,2BAAY;IACZ,aAAK;IACL,qBAAS;IACT,mBAAQ;IACR,6BAAa;IACb,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,iBAAO;IACP,2BAAY;IACZ,gCAAc;IACd,mBAAQ;IACR,qBAAS;IACT,mBAAQ;IACR,wBAAU;IACV,iBAAO;IACP,2CAAoB;IACpB,iBAAO;IACP,mBAAQ;IACR,qBAAS;IACT,iBAAO;IACP,oBAAa;IACb,yBAAW;IACX,iBAAO;IACP,qBAAS;IACT,yBAAW;IACX,WAAI;IACJ,mBAAQ;IACR,6BAAQ;IACR,WAAI;IACJ,eAAM;IACN,eAAM;IACN,mBAAQ;IACR,mBAAQ;IACR,qBAAS;IACT,eAAM;IACN,iBAAO;IACP,mBAAQ;IACR,iBAAO;CACR,CAAA"}
|
@@ -59,6 +59,10 @@
|
|
59
59
|
"readme": "---\ntitle: Formsort\ndescription: Formsort is a fully-managed form-building platform.\n---\n# Formsort\n\nFormsort is a fully-managed form-building platform. Team can use the online studio (a specialized content management system for forms) to create form content, modify styles, and configure integrations.\n\nFormsort hosts your fully-branded forms, either on one of your subdomains or embedded in a page on your site. When responders submit answers, Formsort sends the answers to a destination of your liking directly. Formsort doesn't store the responder's answers. \n\n## Flow settings\n\nIn order for the flows to work well with Awell care flows, make sure your flow settings are set as follows:\n\n- There should be no redirects\n- \"Start each session as a new responder\" should be checked\n- \"Enable URL navigation\" should be disabled\n- \"Enable restart once flow completed\" should be disabled\n- \"Enable close once flow completed\" should be disabled\n\n## Custom Actions\n\n### Complete flow\n\nLet a stakeholder complete a Formsort flow from within Awell Hosted Pages.\n\n**Limitations:**\nCurrently data from the flow is not ingested into Awell yet and cannot be used in your care flow as data points.\n",
|
60
60
|
"changelog": "# Formsort changelog"
|
61
61
|
},
|
62
|
+
"gridspace": {
|
63
|
+
"readme": "---\ntitle: Gridspace\ndescription: Gridspace \n---\n\n# What is Gridspace\n\nGridspace is a conversational speech bot platform using its proprietary AI, Grace. It was built for long-form conversations over the phone, which distinguishes her from other voice AIs such as Siri and Alexa.\n\nGrace can perform an an ever-increasing variety of service-oriented tasks across multiple roles. Grace's job functions include, but are by no means limited to:\n- Healthcare Scheduler\n- Lead Qualifier\n- Payments Facilitator\n- After-hours Phone Operator\n- Service Appointment Booker\n\nGrace has the ability to manage customer service and patient care interactions independently from start to finish, or she can work in collaboration with human agents.",
|
64
|
+
"changelog": "# Gridspace changelog\n\n## October, 2024\n\nCreated Gridspace extension"
|
65
|
+
},
|
62
66
|
"healthie": {
|
63
67
|
"readme": "---\ntitle: Healthie\ndescription: Healthie offers infrastructure for next generation digital health organizations that provide virtual-first care.\n---\n\n# What is Healthie?\n\nHealthie offers infrastructure for next generation digital health organizations that provide virtual-first care. Healthie’s API-first and fully brandable suite of solutions (Scheduling, EMR, Client Engagement) enables healthcare builders to launch and scale best-in-class experiences for their members. Healthie also offers a built-in marketplace of business and clinical integrations used by our organizations.\n\nTo learn more, visit [www.gethealthie.com](https://refer.gethealthie.com/dejebp5gm06x).\n\n## Healthie x Awell\n\nWith this extension, organizations are able to build clinical workflows in Awell’s low-code platform and easily integrate them into Healthie. By doing so, Healthie’s customers can automate routine clinical tasks, synchronize data between systems and drive seamless coordination between care team and patients.\n\nBy combining Healthie’s web and mobile platform with our clinical workflows, clinicians will be able to provide the right care, at the right time for the right patient.\n\n# Extension settings\n\nIn order to set up this extension, **you will need to provide a Healthie API key and Api url**. You can obtain an API key via the Healthie portal (`Settings > Developer > API keys`). You can obtain API url in the [DOCUMENTATION](https://docs.gethealthie.com/docs/#environments) in `Environments` section.\n\nPlease note that the extension automatically prefixes the API key with `Basic ` so please provide your raw API key without `Basic ` in front.\n\n# Custom Actions\n\n## Send chat message action\n\nSends a chat message to a patient in name of the provided provider ID. Will create a new conversation if no active conversation between patient and provider exists or sends a message in an existing conversation if there is an active conversation between the two.\n\n## Create patient\n\nCreates a new patient according to the passed fields. After completion the `healthiePatientId` will be exposed as a data point in the care flow.\n\n## Update patient\n\nUpdates a specific patient (defined by the provided `id`) according to the passed fields.\n\n## Apply tag to patient\n\nAdds a tag (existing one, identified by an `id`) to a patient. Although the Healthie API call allows assigning multiple tags per API call, for simplicity of the logic this action can only take one tag as input. Assigning multiple tags is possible by adding multiple actions.\n\n## Remove tag from patient\n\nRemoves a tag (identified by an `id`) from a patient.\n\n## Create charting note\n\nCreates a charting note with the provided `note_content`.\n\n**Prerequisites and set-up:**\n\n1. The form specified by the `form_id` exists in Healthie.\n2. The form specified by the `form_id` is a charting form (click \"Convert to charting form\" in the form options).\n3. The form contains at least one question of type `textarea` (long text answer). The action will write the content of the charting note in the first question of that type it finds in the form.\n\n## Send form completion request\n\nSend a form completion request to the patient. You will need the Healthie patient ID and the ID of the form you would like the patient to complete.\n\nAlthough the Healthie API call allows sending form completion requests to multiple users per API call (see recipient_ids in their docs), we decided that every action only sends one form completion request. This heavily simplifies the logic and better fits our domain model (1-to-1 relationship between patient and pathway). If a user would like to send multiple form completion requests, they you can just add multiple actions.\n\n## Archive patient\n\nArchives a patient with a given `id`.\n\n## Create location\n\nCreates a location. ID of the created location is stored as `locationId` data point.\n\n## Close chat conversation\n\nCloses chat conversation with a given `id` as a provider with the given `provider_id`.\n\n## Delete appointment\n\nDeletes an appointment with a given `id`.\n\n## Cancel appointment\n\nCancels an appointment with a given `id`.\n\n## Get metric entry\n\nRetrieve the most recent metric entry from a given `category`.\n\n## Create metric entry\n\nCreate a metric entry for a patient in Healthie. The category of the metric is the literal name of the metric in Healthie. So if you have a metric in Healthie called \"Weight\", you should use \"Weight\" as the category.\n\n## Check patient tag\n\nChecks that a patient has an active tag with given `id`\n\n## Check scheduled appointments\n\nChecks that a patient has active scheduled appointment with given `appointmentTypeId`\n\n## Get form answers\n\nThis action will retrieve the form answers for a answer group with a given ID. The complete form answers object will be stored as JSON and will be available in Awell Studio as a data point\n\nExample of a form answers response:\n\n```json\n[\n {\n \"id\": \"640\",\n \"label\": \"Please enter some information about the person who referred you.\",\n \"answer\": \"\"\n },\n {\n \"id\": \"641\",\n \"label\": \"Name\",\n \"answer\": \"Chris\"\n }\n]\n```\n\nDerrived data points can be used to then store the answer of a specific question in a data point. You can use the following JSONPath expression to retrieve the answer for a given question ID: `$[?(@.id == '<ID>')].answer`",
|
64
68
|
"changelog": "# Healthie changelog\n\n## January 2024\n\n- Add \"Check patient tag\" action\n- Add \"Check scheduled appointments\" action\n\n## October 2023\n\n- Add \"Update patient quick notes\" action\n- Add \"Create metric entry\" action.\n\n## September 5, 2023\n\n- add Healthie gender to Sex in iso format mapper in `getPatient`\n\n## May 2023\n\n- New webhooks added: `appliedTagCreated`, `appliedTagDeleted`, `appointmentDeleted`, `appointmentUpdated`, `formAnswerGroupCreated`, `formAnswerGroupDeleted`, `formAnswerGroupLocked`, `formAnswerGroupSigned`, `labOrderCreated`, `labOrderUpdated`, `messageCreated`, `messageDeleted`, `metricEntryCreated`, `metricEntryDeleted`, `metricEntryUpdated`, `patientUpdated`, `requestFormCompletionCreated`, `requestFormCompletionDeleted`, `requestFormCompletionUpdated`, `taskCreated`, `taskDeleted`, `taskUpdated`\n\n## April 2023\n\n- Create task action: now also adds support for reminders.\n"
|
@@ -27,8 +27,6 @@ exports.categorizeMessage = {
|
|
27
27
|
});
|
28
28
|
const category = categorization_result.category;
|
29
29
|
const explanationHtml = await (0, utils_1.markdownToHtml)(categorization_result.explanation);
|
30
|
-
console.log(category);
|
31
|
-
console.log(explanationHtml);
|
32
30
|
await onComplete({
|
33
31
|
data_points: {
|
34
32
|
category,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"categorizeMessage.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/categorizeMessage/categorizeMessage.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,6EAAyE;AACzE,mCAAuD;AAEvD,qCAAqE;AACrE,iDAAsD;AAEzC,QAAA,iBAAiB,GAI1B;IACF,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,0FAA0F;IAC5F,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,MAAM,EACJ,kBAAkB,EAClB,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,GAChC,GAAG,MAAM,IAAA,iCAA2B,EAAC;YACpC,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,IAAI;YACF,MAAM,qBAAqB,GAAG,MAAM,IAAA,mDAAwB,EAAC;gBAC3D,kBAAkB;gBAClB,OAAO;gBACP,UAAU;aACX,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAA;YAC/C,MAAM,eAAe,GAAG,MAAM,IAAA,sBAAc,EAC1C,qBAAqB,CAAC,WAAW,CAClC,CAAA;
|
1
|
+
{"version":3,"file":"categorizeMessage.js","sourceRoot":"","sources":["../../../../../extensions/shelly/actions/categorizeMessage/categorizeMessage.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,6EAAyE;AACzE,mCAAuD;AAEvD,qCAAqE;AACrE,iDAAsD;AAEzC,QAAA,iBAAiB,GAI1B;IACF,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,0FAA0F;IAC5F,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,MAAM,EACJ,kBAAkB,EAClB,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,GAChC,GAAG,MAAM,IAAA,iCAA2B,EAAC;YACpC,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,IAAI;YACF,MAAM,qBAAqB,GAAG,MAAM,IAAA,mDAAwB,EAAC;gBAC3D,kBAAkB;gBAClB,OAAO;gBACP,UAAU;aACX,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAA;YAC/C,MAAM,eAAe,GAAG,MAAM,IAAA,sBAAc,EAC1C,qBAAqB,CAAC,WAAW,CAClC,CAAA;YAED,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,QAAQ;oBACR,WAAW,EAAE,eAAe;iBAC7B;aACF,CAAC,CAAA;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;YACnD,4BAA4B;YAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC9C;IACH,CAAC;CACF,CAAA"}
|
@@ -10,7 +10,6 @@ const categorizeMessageWithLLM = async ({ ChatModelGPT4oMini, message, categorie
|
|
10
10
|
input: message,
|
11
11
|
});
|
12
12
|
const chain = ChatModelGPT4oMini.pipe(constants_1.parser);
|
13
|
-
console.log('Prompt:', prompt);
|
14
13
|
let result;
|
15
14
|
try {
|
16
15
|
result = await chain.invoke(prompt);
|
@@ -19,12 +18,9 @@ const categorizeMessageWithLLM = async ({ ChatModelGPT4oMini, message, categorie
|
|
19
18
|
console.error('Error invoking the chain:', error);
|
20
19
|
throw new Error('Failed to categorize the message due to an internal error.');
|
21
20
|
}
|
22
|
-
console.log('Result', typeof result);
|
23
21
|
const matchedCategory = (_a = result.matched_category) !== null && _a !== void 0 ? _a : 'None';
|
24
22
|
let category;
|
25
23
|
let explanation = (_b = result.match_explanation) !== null && _b !== void 0 ? _b : '';
|
26
|
-
console.log('Matched Category:', matchedCategory);
|
27
|
-
console.log('Explanation:', explanation);
|
28
24
|
// Check if the matched category is valid
|
29
25
|
if (categories.includes(matchedCategory)) {
|
30
26
|
category = matchedCategory;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"categorizeMessageWithLLM.js","sourceRoot":"","sources":["../../../../../../../extensions/shelly/actions/categorizeMessage/lib/categorizeMessageWithLLM/categorizeMessageWithLLM.ts"],"names":[],"mappings":";;;AAAA,2CAAkD;AAGlD,uCAAuC;AAChC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,kBAAkB,EAClB,OAAO,EACP,UAAU,GAKX,EAAsD,EAAE;;IACvD,MAAM,MAAM,GAAG,MAAM,wBAAY,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,KAAK,EAAE,OAAO;KACf,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,kBAAM,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"categorizeMessageWithLLM.js","sourceRoot":"","sources":["../../../../../../../extensions/shelly/actions/categorizeMessage/lib/categorizeMessageWithLLM/categorizeMessageWithLLM.ts"],"names":[],"mappings":";;;AAAA,2CAAkD;AAGlD,uCAAuC;AAChC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,kBAAkB,EAClB,OAAO,EACP,UAAU,GAKX,EAAsD,EAAE;;IACvD,MAAM,MAAM,GAAG,MAAM,wBAAY,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,KAAK,EAAE,OAAO;KACf,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,kBAAM,CAAC,CAAA;IAE7C,IAAI,MAAM,CAAA;IACV,IAAI;QACF,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;KACpC;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;QACjD,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;KACF;IAED,MAAM,eAAe,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,MAAM,CAAA;IACzD,IAAI,QAAgB,CAAA;IACpB,IAAI,WAAW,GAAW,MAAA,MAAM,CAAC,iBAAiB,mCAAI,EAAE,CAAA;IAExD,yCAAyC;IACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;QACxC,QAAQ,GAAG,eAAe,CAAA;KAC3B;SAAM;QACL,QAAQ,GAAG,MAAM,CAAA;QACjB,WAAW;YACT,oEAAoE,CAAA;KACvE;IAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;AAClC,CAAC,CAAA;AAxCY,QAAA,wBAAwB,4BAwCpC"}
|