@kizenapps/engine 1.11.1 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +13 -12
  2. package/dist/{ThirdPartyScript-DxPk6YJY.d.ts → ThirdPartyScript-Dxo1d6pb.d.ts} +6 -1
  3. package/dist/{automation-CD_ngwWI.d.ts → automation-BRhJ-nBe.d.ts} +14 -3
  4. package/dist/{blocks-BBTnzHmZ.d.ts → blocks-DBikV-mf.d.ts} +2 -2
  5. package/dist/{chunk-UWIG4AB5.js → chunk-2L5CUT2K.js} +25 -5
  6. package/dist/chunk-2L5CUT2K.js.map +1 -0
  7. package/dist/{chunk-G2NKNYIW.js → chunk-7LXL642K.js} +3 -3
  8. package/dist/{chunk-G2NKNYIW.js.map → chunk-7LXL642K.js.map} +1 -1
  9. package/dist/{chunk-LSM2NTKZ.js → chunk-BZPMSCI2.js} +3 -3
  10. package/dist/{chunk-LSM2NTKZ.js.map → chunk-BZPMSCI2.js.map} +1 -1
  11. package/dist/{chunk-WV77RVUT.js → chunk-GS77YCJF.js} +3 -3
  12. package/dist/{chunk-WV77RVUT.js.map → chunk-GS77YCJF.js.map} +1 -1
  13. package/dist/{chunk-LYKZHCPQ.js → chunk-NMMQXZBP.js} +4 -4
  14. package/dist/{chunk-LYKZHCPQ.js.map → chunk-NMMQXZBP.js.map} +1 -1
  15. package/dist/{chunk-KHXC4SGQ.js → chunk-PMQSEOMC.js} +3 -3
  16. package/dist/{chunk-KHXC4SGQ.js.map → chunk-PMQSEOMC.js.map} +1 -1
  17. package/dist/{chunk-GQ7WYSE4.js → chunk-R5IVGQA6.js} +10 -6
  18. package/dist/chunk-R5IVGQA6.js.map +1 -0
  19. package/dist/{chunk-6Z6FQRKC.js → chunk-RBWOVNFL.js} +35 -6
  20. package/dist/chunk-RBWOVNFL.js.map +1 -0
  21. package/dist/{chunk-Q7FEQQWE.js → chunk-ZWPTYU2F.js} +25 -4
  22. package/dist/chunk-ZWPTYU2F.js.map +1 -0
  23. package/dist/communication.d.ts +2 -2
  24. package/dist/communication.js +2 -2
  25. package/dist/contexts/base.d.ts +4 -2
  26. package/dist/contexts/base.js +4 -4
  27. package/dist/contexts/floatingFrame.d.ts +1 -1
  28. package/dist/contexts/floatingFrame.js +5 -5
  29. package/dist/contexts/recordDetail.d.ts +1 -1
  30. package/dist/contexts/recordDetail.js +5 -5
  31. package/dist/index.d.ts +7 -7
  32. package/dist/index.js +4 -4
  33. package/dist/react.d.ts +10 -5
  34. package/dist/react.js +57 -24
  35. package/dist/react.js.map +1 -1
  36. package/dist/types.d.ts +10 -6
  37. package/dist/util.d.ts +3 -3
  38. package/dist/util.js +6 -6
  39. package/dist/{values-DQ_YX6nj.d.ts → values-DmI_IQAH.d.ts} +2 -2
  40. package/dist/workers/calendarSource.worker.js +7 -6
  41. package/dist/workers/calendarSource.worker.js.map +1 -1
  42. package/dist/workers/floatingFrame.worker.js +8 -7
  43. package/dist/workers/floatingFrame.worker.js.map +1 -1
  44. package/dist/workers/generic.worker.js +7 -6
  45. package/dist/workers/generic.worker.js.map +1 -1
  46. package/dist/workers/recordDetail.worker.js +8 -7
  47. package/dist/workers/recordDetail.worker.js.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/chunk-6Z6FQRKC.js.map +0 -1
  50. package/dist/chunk-GQ7WYSE4.js.map +0 -1
  51. package/dist/chunk-Q7FEQQWE.js.map +0 -1
  52. package/dist/chunk-UWIG4AB5.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/util/console.ts","../src/util/codingAssistant.ts","../src/util/errors.ts","../src/util/assistantKeys.ts","../src/workers/util.ts","../src/util/frames.ts"],"names":["cleanConfig","consideredValue"],"mappings":"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","file":"chunk-ZWPTYU2F.js","sourcesContent":["type SerializedMarker =\n | { __kzConsole: 'undefined' }\n | { __kzConsole: 'bigint'; value: string }\n | { __kzConsole: 'symbol'; value: string }\n | { __kzConsole: 'function'; name: string }\n | { __kzConsole: 'error'; name: string; message: string; stack?: string | undefined }\n | { __kzConsole: 'date'; value: string }\n | { __kzConsole: 'regexp'; value: string }\n | { __kzConsole: 'circular' }\n | { __kzConsole: 'unserializable'; reason: string };\n\nconst UNSERIALIZABLE = (reason: string): SerializedMarker => ({\n __kzConsole: 'unserializable',\n reason,\n});\n\nconst safeToString = (value: unknown): string => {\n try {\n return String(value);\n } catch {\n return '[unserializable]';\n }\n};\n\nconst isMarker = (value: unknown): value is SerializedMarker =>\n typeof value === 'object' &&\n value !== null &&\n '__kzConsole' in (value as Record<string, unknown>);\n\nconst serialize = (value: unknown, seen: WeakSet<object>): unknown => {\n try {\n if (value === undefined) {\n return { __kzConsole: 'undefined' } satisfies SerializedMarker;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'bigint') {\n return { __kzConsole: 'bigint', value: value.toString() } satisfies SerializedMarker;\n }\n\n if (typeof value === 'symbol') {\n return { __kzConsole: 'symbol', value: value.toString() } satisfies SerializedMarker;\n }\n\n if (typeof value === 'function') {\n return {\n __kzConsole: 'function',\n name: value.name || 'anonymous',\n } satisfies SerializedMarker;\n }\n\n if (value instanceof Error) {\n let name = 'Error';\n let message = '';\n let stack: string | undefined;\n\n try {\n name = value.name;\n } catch {\n /* ignore */\n }\n\n try {\n message = value.message;\n } catch {\n /* ignore */\n }\n\n try {\n stack = value.stack;\n } catch {\n /* ignore */\n }\n\n return { __kzConsole: 'error', name, message, stack } satisfies SerializedMarker;\n }\n if (value instanceof Date) {\n try {\n return { __kzConsole: 'date', value: value.toISOString() } satisfies SerializedMarker;\n } catch {\n return UNSERIALIZABLE('invalid Date');\n }\n }\n if (value instanceof RegExp) {\n return { __kzConsole: 'regexp', value: safeToString(value) } satisfies SerializedMarker;\n }\n\n if (seen.has(value as object)) {\n return { __kzConsole: 'circular' } satisfies SerializedMarker;\n }\n\n seen.add(value as object);\n\n if (Array.isArray(value)) {\n const arr: unknown[] = [];\n\n for (const item of value) {\n try {\n arr.push(serialize(item, seen));\n } catch {\n arr.push(UNSERIALIZABLE('threw during read'));\n }\n }\n return arr;\n }\n\n const out: Record<string, unknown> = {};\n\n let keys: string[] = [];\n\n try {\n keys = Object.keys(value as Record<string, unknown>);\n } catch {\n return UNSERIALIZABLE('cannot enumerate keys');\n }\n\n for (const k of keys) {\n try {\n out[k] = serialize((value as Record<string, unknown>)[k], seen);\n } catch {\n out[k] = UNSERIALIZABLE('threw during read');\n }\n }\n return out;\n } catch {\n return UNSERIALIZABLE('serialization failed');\n }\n};\n\nexport const serializeConsoleArg = (value: unknown): unknown => {\n try {\n return serialize(value, new WeakSet());\n } catch {\n return UNSERIALIZABLE('serialization failed');\n }\n};\n\nconst REGEXP_PATTERN = /^\\/(.*)\\/([dgimsuvy]*)$/;\n\nexport const deserializeConsoleArg = (value: unknown): unknown => {\n try {\n if (value === null || typeof value !== 'object') return value;\n if (Array.isArray(value)) return value.map(deserializeConsoleArg);\n\n if (isMarker(value)) {\n switch (value.__kzConsole) {\n case 'undefined':\n return undefined;\n case 'bigint':\n try {\n return BigInt(value.value);\n } catch {\n return value.value;\n }\n case 'symbol':\n return value.value;\n case 'function':\n return `[Function: ${value.name}]`;\n case 'error': {\n const err = new Error(value.message);\n err.name = value.name;\n if (value.stack) err.stack = value.stack;\n return err;\n }\n case 'date':\n return new Date(value.value);\n case 'regexp': {\n const match = REGEXP_PATTERN.exec(value.value);\n if (!match) return value.value;\n try {\n return new RegExp(match[1] ?? '', match[2]);\n } catch {\n return value.value;\n }\n }\n case 'circular':\n return '[Circular]';\n case 'unserializable':\n return `[Unserializable: ${value.reason}]`;\n }\n }\n\n const out: Record<string, unknown> = {};\n\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n out[k] = deserializeConsoleArg(v);\n }\n return out;\n } catch {\n return '[Unserializable]';\n }\n};\n","import {\n CODING_ASSISTANT_PROFILES,\n CODING_ASSISTANT_PROMPT_MAX_LENGTH,\n} from '../communication/constants.js';\nimport type { CodingAssistantProfile } from '../types/contexts.js';\n\n/*\n * Validates the arguments to `this.launchCodingAssistant`. Used on the worker side\n * before posting the request, and again by the WorkerManager since the worker\n * runs untrusted plugin code. The prompt must contain non-whitespace text and be\n * at most CODING_ASSISTANT_PROMPT_MAX_LENGTH characters.\n */\nexport const isValidCodingAssistantRequest = (profile: unknown, initialPrompt: unknown): boolean =>\n CODING_ASSISTANT_PROFILES.includes(profile as CodingAssistantProfile) &&\n typeof initialPrompt === 'string' &&\n initialPrompt.trim().length > 0 &&\n initialPrompt.length <= CODING_ASSISTANT_PROMPT_MAX_LENGTH;\n","import type { UnknownJSON } from '../types/common.js';\n\nexport class KizenRequestError extends Error {\n public proxyStatus: number;\n public upstreamStatus?: number | undefined;\n public upstreamResponse?: UnknownJSON | undefined;\n\n constructor(\n proxyStatus: number,\n upstreamStatus?: number,\n upstreamResponse?: UnknownJSON,\n overrideMessage?: string,\n ) {\n super(\n overrideMessage ??\n (upstreamResponse?.error as { message?: string } | undefined)?.message ??\n (upstreamStatus\n ? `Request failed with status code ${String(upstreamStatus)}`\n : `Request failed with proxy status code ${String(proxyStatus)}`),\n );\n\n this.name = 'KizenRequestError';\n this.proxyStatus = proxyStatus;\n this.upstreamStatus = upstreamStatus;\n this.upstreamResponse = upstreamResponse;\n\n Object.setPrototypeOf(this, KizenRequestError.prototype);\n }\n}\n","/*\n * These helpers can be used in a worker context, so we avoid inflating the worker bundle\n * by keeping them in a separate file from assistant.ts\n */\n\nconst KIZEN_ACTION_PREFIX = '__kizen__action__';\nconst KIZEN_ACTION_MENU_PREFIX = '__kizen__actionmenu__';\nconst KIZEN_ACTION_MENU_HEADING_PREFIX = '__kizen__actionmenuheading__';\nconst KIZEN_ACTION_CONTAINER_PREFIX = '__kizen__actioncontainer__';\n\nexport const getActionContainerKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_CONTAINER_PREFIX}${actionApiName}`;\n};\n\nexport const getActionFieldKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_PREFIX}${actionApiName}`;\n};\n\nconst getActionMenuKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_MENU_PREFIX}${actionApiName}`;\n};\n\nexport const getActionMenuHeadingKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_MENU_HEADING_PREFIX}${actionApiName}`;\n};\n\nexport const getActionMenuFieldKey = (actionApiName: string, objectId: string): string => {\n return `${getActionMenuKey(actionApiName)}_${objectId}`;\n};\n\nexport const isActionMenuFieldKey = (key: string): boolean => {\n return key.startsWith(KIZEN_ACTION_MENU_PREFIX);\n};\n\nexport const isActionFieldKey = (key: string): boolean => {\n return key.startsWith(KIZEN_ACTION_PREFIX);\n};\n\nexport const splitActionFieldKey = (key: string): string => {\n if (!isActionFieldKey(key)) {\n return '';\n }\n\n return key.slice(KIZEN_ACTION_PREFIX.length);\n};\n\nexport const splitActionMenuFieldKey = (\n key: string,\n): { actionApiName: string; objectId: string } => {\n if (!isActionMenuFieldKey(key)) {\n return { actionApiName: '', objectId: '' };\n }\n\n const suffix = key.slice(KIZEN_ACTION_MENU_PREFIX.length);\n const lastUnderscore = suffix.lastIndexOf('_');\n\n if (lastUnderscore === -1) {\n return { actionApiName: '', objectId: '' };\n }\n\n const apiName = suffix.slice(0, lastUnderscore);\n const objectId = suffix.slice(lastUnderscore + 1);\n\n return {\n actionApiName: apiName,\n objectId,\n };\n};\n","/*\n * Note - this file contains utility functions used in the worker threads for the plugin engine.\n * These functions must be self-contained and cannot rely on imports that would inadvertently\n * include React, which would break local development and bloat the worker in production.\n */\n\nimport { ACTIONS, RESPONSES } from '../communication/constants.js';\nimport type {\n AssistantConfigAction,\n AssistantField,\n BooleanValueStore,\n CleanValueStore,\n CurriedCloseModalFn,\n CurriedDynamicPromptFn,\n CurriedShowViewInModalFn,\n CustomObjectCleanValue,\n CustomObjectValueStore,\n FieldCleanValue,\n FieldValueStore,\n ModalContainer,\n NumberValueStore,\n RadioValueStore,\n SelectValueStore,\n SetupAssistantConfig,\n TextValueStore,\n ValueStore,\n} from '../types/modals.js';\nimport type { CurriedKizenRequestFn } from '../types/request.js';\nimport type { PromiseResolve } from '../types/promise.js';\nimport type {\n CurriedCompleteSetupFn,\n CurriedInstallThirdPartyScriptFn,\n CurriedLaunchCodingAssistantFn,\n CurriedOpenCreateRecordFn,\n CurriedOpenCreateRelatedRecordFn,\n CurriedPostFormDataFn,\n CurriedPromptFn,\n CurriedRefreshEntityFn,\n CurriedUploadFileFn,\n} from '../types/contexts.js';\nimport type {\n CompleteSetupResponsePayload,\n CreateRecordResponsePayload,\n CreateRelatedRecordResponsePayload,\n InstallThirdPartyScriptResponsePayload,\n LaunchCodingAssistantResponsePayload,\n PostFormDataResponsePayload,\n PromptResponsePayload,\n QueryResponsePayload,\n RefreshEntityResponsePayload,\n UploadFileResponsePayload,\n} from '../types/workers.js';\nimport type { WorkerPromise } from './WorkerPromise.js';\nimport { KizenRequestError } from '../util/errors.js';\nimport type { UnknownJSON } from '../types/common.js';\nimport { getActionFieldKey } from '../util/assistantKeys.js';\n\ninterface KizenErrorPayload {\n __kizenError: true;\n proxyStatus: number;\n upstreamStatus?: number;\n upstreamResponse?: UnknownJSON;\n message: string;\n}\n\nexport const getFieldFromAction = (action: AssistantConfigAction): AssistantField => {\n return {\n key: getActionFieldKey(action.api_name),\n type: 'custom_object',\n label: action.name,\n allow_multiple: true,\n };\n};\n\nexport const NON_INPUT_FIELD_TYPES = ['description', 'container', 'qr', 'image', 'link'];\n\nexport const getAllNestedInputsFromConfig = (\n config: SetupAssistantConfig,\n parentWhen?: string,\n): AssistantField[] => {\n const regular = (config.fields ?? [])\n .filter((entry) => !NON_INPUT_FIELD_TYPES.includes(entry.type))\n .map((r) => {\n return {\n ...r,\n when: parentWhen ? `(${parentWhen}) && (${r.when ?? 'true'})` : r.when,\n };\n }) as AssistantField[];\n\n const containers = (config.fields ?? []).filter((entry) => entry.type === 'container');\n\n const recursiveRegulars = containers.flatMap((container) =>\n getAllNestedInputsFromConfig(container as ModalContainer, container.when),\n );\n\n const actionObjects = config.actions?.filter((action) => action.hint_object_name) ?? [];\n\n return [\n ...regular,\n ...recursiveRegulars,\n ...actionObjects.map((action) => {\n return {\n ...getFieldFromAction(action),\n match_hint: action.hint_object_name ?? '',\n };\n }),\n ];\n};\n\nexport const cleanConfig = (\n setupAssistantConfig: SetupAssistantConfig,\n configValues: Record<string, ValueStore>,\n): CleanValueStore => {\n const flattened = getAllNestedInputsFromConfig(setupAssistantConfig);\n\n const configReference: Record<string, AssistantField> = flattened.reduce((acc, curr) => {\n return {\n ...acc,\n [curr.key]: curr,\n };\n }, {});\n\n const configKeysToClean = Object.keys(configValues);\n\n const cleanConfig: CleanValueStore = {};\n\n configKeysToClean.forEach((key) => {\n const value = configValues[key];\n const configReferenceValue = configReference[key];\n\n if (!configReferenceValue?.type) {\n return;\n }\n\n switch (configReferenceValue.type) {\n case 'boolean':\n const consideredValue = value as BooleanValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = consideredValue.value;\n\n return;\n case 'custom_object': {\n const consideredValue = value as CustomObjectValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = {\n objectId: consideredValue.value?.id,\n objectName: consideredValue.value?.objectName,\n } as CustomObjectCleanValue;\n\n return;\n }\n case 'field': {\n const consideredValue = value as FieldValueStore | undefined;\n\n if (!consideredValue?.value) {\n return;\n }\n\n if (Array.isArray(consideredValue.value)) {\n cleanConfig[key] = consideredValue.value.map((item) => ({\n fieldId: item.value,\n fieldName: item.label,\n objectId: consideredValue.associatedObject?.id,\n objectName: consideredValue.associatedObject?.name,\n })) as FieldCleanValue;\n } else if (\n typeof consideredValue.value === 'object' &&\n typeof consideredValue.associatedObject === 'object'\n ) {\n cleanConfig[key] = {\n fieldId: consideredValue.value.value,\n fieldName: consideredValue.value.label,\n objectId: consideredValue.associatedObject.id,\n objectName: consideredValue.associatedObject.name,\n } as FieldCleanValue;\n }\n return;\n }\n case 'number': {\n const consideredValue = value as NumberValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n try {\n const parsed = Number(consideredValue.value);\n\n if (!parsed && parsed !== 0) {\n return;\n }\n\n cleanConfig[key] = parsed;\n } catch {\n cleanConfig[key] = NaN;\n }\n\n return;\n }\n case 'select': {\n const consideredValue = value as SelectValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = consideredValue.value;\n return;\n }\n case 'radio': {\n const consideredValue = value as RadioValueStore | undefined;\n\n if (!consideredValue?.value) {\n return;\n }\n\n cleanConfig[key] = consideredValue.value;\n return;\n }\n case 'text': {\n const consideredValue = value as TextValueStore | undefined;\n\n const textValue = consideredValue?.value;\n\n if (textValue) {\n cleanConfig[key] = textValue;\n return;\n }\n\n const defaultValue = configReferenceValue.default;\n\n if (defaultValue) {\n cleanConfig[key] = defaultValue;\n }\n\n return;\n }\n case 'description':\n case 'container':\n case 'qr':\n case 'image':\n case 'link':\n case 'api_key':\n return;\n }\n\n return value?.value;\n });\n\n return cleanConfig;\n};\n\nexport const kizenRequestHandler: CurriedKizenRequestFn =\n (instance, promises) => (method) => async (url, payload, options) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.QUERY_REQUEST,\n id,\n method,\n url,\n payload,\n options,\n }),\n );\n });\n };\n\nexport const postFormDataHandler: CurriedPostFormDataFn =\n (instance, promises) =>\n (url, payload, createNewTab = true) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.POSTFORMDATA_REQUEST,\n url,\n id,\n payload,\n createNewTab,\n }),\n );\n });\n };\n\nexport const promptHandler: CurriedPromptFn = (instance, promises) => (config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.PROMPT_REQUEST,\n id,\n config,\n }),\n );\n });\n};\n\nexport const dynamicPromptHandler: CurriedDynamicPromptFn = (instance, promises) => (config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.DYNAMIC_PROMPT_REQUEST,\n id,\n config,\n }),\n );\n });\n};\n\nexport const showViewInModalHandler: CurriedShowViewInModalFn =\n (instance, promises) => (viewId, config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.SHOW_VIEW_IN_MODAL_REQUEST,\n id,\n viewId,\n args: config?.args,\n options: config?.options,\n }),\n );\n });\n };\n\nexport const closeModalHandler: CurriedCloseModalFn =\n (instance) =>\n (values, canceled): void => {\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.CLOSE_MODAL_REQUEST,\n values,\n canceled,\n }),\n );\n };\n\nexport const uploadFileHandler: CurriedUploadFileFn = (instance, promises) => (payload) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.UPLOADFILE_REQUEST,\n id,\n payload,\n }),\n );\n });\n};\n\nexport const completeSetupHandler: CurriedCompleteSetupFn =\n (instance, promises) => (payload, options) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMPLETE_SETUP_REQUEST,\n id,\n payload,\n options,\n }),\n );\n });\n };\n\nexport const launchCodingAssistantHandler: CurriedLaunchCodingAssistantFn =\n (instance, promises) => (profile, initialPrompt) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.LAUNCH_CODING_ASSISTANT_REQUEST,\n id,\n profile,\n initialPrompt,\n }),\n );\n });\n };\n\nexport const installThirdPartyScriptHandler: CurriedInstallThirdPartyScriptFn =\n (instance, promises) => (url, args) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.INSTALL_THIRD_PARTY_SCRIPT_REQUEST,\n url,\n id,\n args,\n }),\n );\n });\n };\n\nexport const refreshEntityHandler: CurriedRefreshEntityFn =\n (instance, promises) => (entityId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.REFRESH_ENTITY,\n id,\n entityId,\n }),\n );\n });\n };\n\nexport const openCreateRecordHandler: CurriedOpenCreateRecordFn =\n (instance, promises) => (objectId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.OPEN_CREATE_RECORD_MODAL_REQUEST,\n id,\n entityId: objectId,\n }),\n );\n });\n };\n\nexport const openCreateRelatedRecordHandler: CurriedOpenCreateRelatedRecordFn =\n (instance, promises) => (objectId: string, relatedEntityId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.OPEN_CREATE_RELATED_RECORD_MODAL_REQUEST,\n id,\n objectId,\n relatedEntityId,\n }),\n );\n });\n };\n\nexport const handleCommonResponse = (\n action: string,\n e: MessageEvent<string>,\n promises: WorkerPromise,\n): void => {\n switch (action) {\n case RESPONSES.QUERY_RESPONSE: {\n const { id, data, error } = JSON.parse(e.data) as QueryResponsePayload;\n if (error) {\n const reconstructed =\n typeof error === 'object' && '__kizenError' in error\n ? new KizenRequestError(\n (error as KizenErrorPayload).proxyStatus,\n (error as KizenErrorPayload).upstreamStatus,\n (error as KizenErrorPayload).upstreamResponse,\n (error as KizenErrorPayload).message,\n )\n : error;\n\n promises.reject(id, reconstructed);\n } else {\n promises.resolve(id, data);\n }\n\n break;\n }\n case RESPONSES.POSTFORMDATA_RESPONSE: {\n const { id, success } = JSON.parse(e.data) as PostFormDataResponsePayload;\n if (success) {\n promises.resolve(id);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n\n case RESPONSES.UPLOADFILE_RESPONSE: {\n const { id, data, error } = JSON.parse(e.data) as UploadFileResponsePayload;\n if (data) {\n promises.resolve(id, data);\n } else {\n promises.reject(id, error);\n }\n\n break;\n }\n\n case RESPONSES.COMPLETE_SETUP_RESPONSE: {\n const { id, success, error } = JSON.parse(e.data) as CompleteSetupResponsePayload;\n if (success) {\n promises.resolve(id);\n } else {\n promises.reject(id, new Error(error ?? 'Setup configuration could not be saved'));\n }\n\n break;\n }\n\n case RESPONSES.LAUNCH_CODING_ASSISTANT_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as LaunchCodingAssistantResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.INSTALL_THIRD_PARTY_SCRIPT_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as InstallThirdPartyScriptResponsePayload;\n if (data.success) {\n promises.resolve(id, data);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n\n case RESPONSES.PROMPT_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as PromptResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.CREATE_RECORD_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as CreateRecordResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.CREATE_RELATED_RECORD_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as CreateRelatedRecordResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.REFRESH_ENTITY_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as RefreshEntityResponsePayload;\n if (data.success) {\n promises.resolve(id, true);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n }\n};\n","export const FRAME_PROXY_DOMAIN_DEV = 'plugin-assets.kizen.dev';\nexport const FRAME_PROXY_DOMAIN_PROD = 'plugin-assets.kizen.com';\n\nexport const frameProxyDomains = [FRAME_PROXY_DOMAIN_DEV, FRAME_PROXY_DOMAIN_PROD];\n\n// Local-proxy dev override (off by default). When the engine is built with the\n// env var KIZEN_LOCAL_PROXY_ORIGIN=<origin> — see tsup.config.ts, which injects it\n// as __LOCAL_PROXY_ORIGIN__ — plugin iframes are routed through that locally-served\n// plugin-frame-proxy\nconst isLocalhostOrigin = (origin: string): boolean => {\n try {\n const { hostname } = new URL(origin);\n return hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '[::1]';\n } catch {\n return false;\n }\n};\n\nconst localProxyOrigin = (() => {\n if (!__LOCAL_PROXY_ORIGIN__ || !isLocalhostOrigin(__LOCAL_PROXY_ORIGIN__)) {\n return '';\n }\n\n try {\n return new URL(__LOCAL_PROXY_ORIGIN__).origin;\n } catch {\n return '';\n }\n})();\n\nconst hasLocalProxy = localProxyOrigin !== '';\n\nexport const isFrameProxyOrigin = (origin: string): boolean =>\n (hasLocalProxy && origin === localProxyOrigin) ||\n frameProxyDomains.some((domain) => origin === `https://${domain}`);\n\nconst isProxiedUrl = (candidate: string): boolean => {\n try {\n return isFrameProxyOrigin(new URL(candidate).origin);\n } catch {\n return false;\n }\n};\n\nexport interface FrameProxyEnvelope<T = unknown> {\n plugin_api_name: string;\n source_url: string;\n event: 'message' | 'loaded' | 'error';\n data?: T;\n error?: string;\n _kizen_proxy_nonce: string;\n}\n\nexport type UnwrappedProxyMessage = { handled: true; data: unknown } | { handled: false };\n\nexport const unwrapProxyMessage = (event: MessageEvent): UnwrappedProxyMessage => {\n const data: unknown = event.data;\n\n // Messages pass through as-is that aren't from the proxy\n if (!isFrameProxyOrigin(event.origin)) {\n return { handled: true, data };\n }\n\n const envelope = data as FrameProxyEnvelope;\n\n if (typeof data !== 'object' || data === null || envelope.event !== 'message') {\n return { handled: false };\n }\n\n return { handled: true, data: envelope.data };\n};\n\nexport const allowedAllowFields = [\n 'microphone',\n 'speaker-selection',\n 'autoplay',\n 'camera',\n 'display-capture',\n 'hid',\n];\n\nexport const allowedSandboxValues = ['allow-popups', 'allow-scripts', 'allow-same-origin'];\n\nconst defaultOptions = {\n useDevMode: false,\n __dangerouslySkipProxy: false,\n};\n\nexport type BuildIframeURLWithProxyOptions = Partial<typeof defaultOptions>;\n\nexport const buildIframeURLWithProxy = (\n originalURL: string,\n options: BuildIframeURLWithProxyOptions = defaultOptions,\n allowString = '',\n): {\n url: string;\n isUsingProxy: boolean;\n} => {\n const { useDevMode, __dangerouslySkipProxy } = options;\n\n let url = '';\n\n if (__dangerouslySkipProxy) {\n url = originalURL;\n } else {\n try {\n const parsed = new URL(originalURL);\n\n if (isFrameProxyOrigin(parsed.origin)) {\n url = originalURL;\n } else {\n const proxyBase = hasLocalProxy\n ? localProxyOrigin\n : `https://${useDevMode ? FRAME_PROXY_DOMAIN_DEV : FRAME_PROXY_DOMAIN_PROD}`;\n\n url = `${proxyBase}?url=${encodeURIComponent(originalURL)}&allow=${encodeURIComponent(allowString)}`;\n }\n } catch (ex) {\n console.warn(\n `Failed to parse URL: ${originalURL}. Apps should not attempt to display invalid URLs. Error: ${(ex as Error).message}`,\n );\n\n url = '';\n }\n }\n\n const isUsingProxy = isProxiedUrl(url);\n\n return {\n url,\n isUsingProxy,\n };\n};\n\nexport const filterAllowList = (allow: string[]): string[] => {\n const parsedAllowList = allow.filter((allowEntry) => {\n return allowedAllowFields.some((allowedField) => allowEntry.startsWith(allowedField));\n });\n\n return parsedAllowList;\n};\n\nexport const filterSandboxList = (sandbox: string[]): string[] => {\n const parsedSandboxList = sandbox.filter((sandboxEntry) =>\n allowedSandboxValues.includes(sandboxEntry),\n );\n\n return parsedSandboxList;\n};\n\nexport const getParentFrameAllowParam = (): string => {\n const values = allowedAllowFields.map((field) => {\n return `${field} *`;\n });\n\n return values.join('; ');\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { I as Instance } from './ThirdPartyScript-DxPk6YJY.js';
2
- export { bc as IFRAME_PREFIX, bb as INDICATOR_TYPE, T as ThirdPartyScript } from './ThirdPartyScript-DxPk6YJY.js';
1
+ import { I as Instance } from './ThirdPartyScript-Dxo1d6pb.js';
2
+ export { bf as IFRAME_PREFIX, be as INDICATOR_TYPE, T as ThirdPartyScript } from './ThirdPartyScript-Dxo1d6pb.js';
3
3
  import 'react';
4
4
 
5
5
  declare const runFrameScriptEventName: string;
@@ -1,6 +1,6 @@
1
1
  import './chunk-LGJYUPYZ.js';
2
- export { Communicate, runBlockScriptEventName, runFrameScriptEventName } from './chunk-WV77RVUT.js';
3
- export { IFRAME_PREFIX, INDICATOR_TYPE, ThirdPartyScript } from './chunk-GQ7WYSE4.js';
2
+ export { Communicate, runBlockScriptEventName, runFrameScriptEventName } from './chunk-GS77YCJF.js';
3
+ export { IFRAME_PREFIX, INDICATOR_TYPE, ThirdPartyScript } from './chunk-R5IVGQA6.js';
4
4
  import './chunk-5WRI5ZAA.js';
5
5
  //# sourceMappingURL=communication.js.map
6
6
  //# sourceMappingURL=communication.js.map
@@ -1,5 +1,5 @@
1
1
  import { Communicate } from '../communication.js';
2
- import { b as PartialUser, c as PartialTeamMember, d as PartialBusiness, e as PartialClientObject, D as DataCache, f as PostFormDataFn, S as StateChangePayload, I as Instance, A as Args, g as PromptState, W as WorkerContextArgs, U as UnknownJSON, C as CurrentUser, h as InternalSessionData, i as PartialLocation, G as GetOptions, R as RequestWithErrorsResponse, j as CompleteSetupOptions, k as RequestOptions, l as ShowToastOptions, M as ModalConfig, m as ShowViewInModalOptions, n as DynamicPromptConfig, T as ThirdPartyScript, o as ConsoleBridge } from '../ThirdPartyScript-DxPk6YJY.js';
2
+ import { b as PartialUser, c as PartialTeamMember, d as PartialBusiness, e as PartialClientObject, D as DataCache, f as PostFormDataFn, S as StateChangePayload, I as Instance, A as Args, g as PromptState, W as WorkerContextArgs, U as UnknownJSON, C as CurrentUser, h as InternalSessionData, i as PartialLocation, G as GetOptions, R as RequestWithErrorsResponse, j as CompleteSetupOptions, k as RequestOptions, l as ShowToastOptions, m as CodingAssistantProfile, M as ModalConfig, n as ShowViewInModalOptions, o as DynamicPromptConfig, T as ThirdPartyScript, p as ConsoleBridge } from '../ThirdPartyScript-Dxo1d6pb.js';
3
3
  import { B as BuildIframeURLWithProxyOptions } from '../frames-AOHUyPDP.js';
4
4
  import 'react';
5
5
 
@@ -36,11 +36,12 @@ declare class BaseWorkerContext {
36
36
  private openCreateRecordHandler;
37
37
  private openCreateRelatedRecordHandler;
38
38
  private completeSetupHandler;
39
+ private launchCodingAssistantHandler;
39
40
  protected runnerType: 'base' | 'floatingFrame' | 'recordDetail';
40
41
  pluginApiName: string;
41
42
  tempPromptState: PromptState;
42
43
  private partialLocation;
43
- constructor({ user, teamMember, business, clientObject, appPath, isDebug, kizenRequest, postFormData, scriptBody, instance, args, uploadFile, sessionData, pluginComponentId, installThirdPartyScript, prompt, refreshEntity, openCreateRecord, openCreateRelatedRecord, pluginApiName, dynamicPrompt, showViewInModal, closeModal, completeSetup, location, }: WorkerContextArgs);
44
+ constructor({ user, teamMember, business, clientObject, appPath, isDebug, kizenRequest, postFormData, scriptBody, instance, args, uploadFile, sessionData, pluginComponentId, installThirdPartyScript, prompt, refreshEntity, openCreateRecord, openCreateRelatedRecord, pluginApiName, dynamicPrompt, showViewInModal, closeModal, completeSetup, launchCodingAssistant, location, }: WorkerContextArgs);
44
45
  onError(error?: UnknownJSON | Error): void;
45
46
  set debug(value: boolean);
46
47
  set preserve(value: boolean);
@@ -75,6 +76,7 @@ declare class BaseWorkerContext {
75
76
  openCreateRecordModal(objectId: string): Promise<unknown>;
76
77
  openCreateRelatedRecordModal(objectId: string, relatedEntityId: string): Promise<unknown>;
77
78
  showToast(message: string, toastOptions: ShowToastOptions): void;
79
+ launchCodingAssistant(profile: CodingAssistantProfile, initialPrompt: string): Promise<boolean>;
78
80
  clearToasts(): void;
79
81
  outputUI(markup: string, options?: BuildIframeURLWithProxyOptions): void;
80
82
  runEventScript(scriptName: string, args?: UnknownJSON): void;
@@ -1,7 +1,7 @@
1
- export { BaseWorkerContext } from '../chunk-UWIG4AB5.js';
2
- import '../chunk-Q7FEQQWE.js';
3
- import '../chunk-WV77RVUT.js';
4
- import '../chunk-GQ7WYSE4.js';
1
+ export { BaseWorkerContext } from '../chunk-2L5CUT2K.js';
2
+ import '../chunk-ZWPTYU2F.js';
3
+ import '../chunk-GS77YCJF.js';
4
+ import '../chunk-R5IVGQA6.js';
5
5
  import '../chunk-5WRI5ZAA.js';
6
6
  //# sourceMappingURL=base.js.map
7
7
  //# sourceMappingURL=base.js.map
@@ -1,4 +1,4 @@
1
- import { W as WorkerContextArgs } from '../ThirdPartyScript-DxPk6YJY.js';
1
+ import { W as WorkerContextArgs } from '../ThirdPartyScript-Dxo1d6pb.js';
2
2
  import { H as HideConfig, S as ShowConfig } from '../floatingFrames-BzaoL7cq.js';
3
3
  import { BaseWorkerContext } from './base.js';
4
4
  import 'react';
@@ -1,8 +1,8 @@
1
- export { FloatingFrameWorkerContext } from '../chunk-LYKZHCPQ.js';
2
- import '../chunk-UWIG4AB5.js';
3
- import '../chunk-Q7FEQQWE.js';
4
- import '../chunk-WV77RVUT.js';
5
- import '../chunk-GQ7WYSE4.js';
1
+ export { FloatingFrameWorkerContext } from '../chunk-NMMQXZBP.js';
2
+ import '../chunk-2L5CUT2K.js';
3
+ import '../chunk-ZWPTYU2F.js';
4
+ import '../chunk-GS77YCJF.js';
5
+ import '../chunk-R5IVGQA6.js';
6
6
  import '../chunk-5WRI5ZAA.js';
7
7
  //# sourceMappingURL=floatingFrame.js.map
8
8
  //# sourceMappingURL=floatingFrame.js.map
@@ -1,4 +1,4 @@
1
- import { W as WorkerContextArgs, P as PartialEntity, a as PartialCustomObject } from '../ThirdPartyScript-DxPk6YJY.js';
1
+ import { W as WorkerContextArgs, P as PartialEntity, a as PartialCustomObject } from '../ThirdPartyScript-Dxo1d6pb.js';
2
2
  import { BaseWorkerContext } from './base.js';
3
3
  import 'react';
4
4
  import '../communication.js';
@@ -1,8 +1,8 @@
1
- export { RecordDetailWorkerContext } from '../chunk-LSM2NTKZ.js';
2
- import '../chunk-UWIG4AB5.js';
3
- import '../chunk-Q7FEQQWE.js';
4
- import '../chunk-WV77RVUT.js';
5
- import '../chunk-GQ7WYSE4.js';
1
+ export { RecordDetailWorkerContext } from '../chunk-BZPMSCI2.js';
2
+ import '../chunk-2L5CUT2K.js';
3
+ import '../chunk-ZWPTYU2F.js';
4
+ import '../chunk-GS77YCJF.js';
5
+ import '../chunk-R5IVGQA6.js';
6
6
  import '../chunk-5WRI5ZAA.js';
7
7
  //# sourceMappingURL=recordDetail.js.map
8
8
  //# sourceMappingURL=recordDetail.js.map
package/dist/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- import { U as UnknownJSON, s as SelectOption } from './ThirdPartyScript-DxPk6YJY.js';
2
- export { t as ApiKeyValueStore, r as AppPlugin, u as AppPlugins, A as Args, v as AssistantConfigAction, w as AssistantField, x as AssistantLink, B as BaseAPI, y as BooleanCleanValue, z as BooleanValueStore, E as ButtonConfig, F as CleanValueStore, H as CleanValueStoreType, K as CloseModalFn, L as CompleteSetupFn, N as CompleteSetupLevel, j as CompleteSetupOptions, O as ConfigService, o as ConsoleBridge, Q as ConsoleLogLevel, V as CreateRecordModalQueue, X as CreateRelatedRecordModalQueue, C as CurrentUser, Y as CurriedCloseModalFn, Z as CurriedCompleteSetupFn, _ as CurriedDynamicPromptFn, $ as CurriedInstallThirdPartyScriptFn, a0 as CurriedKizenRequestFn, a1 as CurriedOpenCreateRecordFn, a2 as CurriedOpenCreateRelatedRecordFn, a3 as CurriedPostFormDataFn, a4 as CurriedPromptFn, a5 as CurriedRefreshEntityFn, a6 as CurriedShowViewInModalFn, a7 as CurriedUploadFileFn, a8 as CustomObjectCleanValue, a9 as CustomObjectValueStore, D as DataCache, aa as DataCacheEntry, ab as DeleteReturnValue, n as DynamicPromptConfig, ac as DynamicPromptFn, ad as EmployeeConfig, ae as ErrorHandler, af as ErrorResponse, ag as FieldCleanValue, ah as FieldValueStore, G as GetOptions, ai as GetReturnValue, p as IncludeOption, aj as InstallThirdPartyScriptFn, I as Instance, h as InternalSessionData, ak as JSONArray, al as JSONObject, am as JSONPrimitive, J as JSONValue, an as KizenConfig, ao as KizenNetworkResponse, ap as KizenProxySuccessResponse, aq as KizenRequestFn, ar as KizenRequestFnHandler, as as KnownArgs, at as MatchSetupAssistantField, au as MaybeMessageError, av as ModalBlock, aw as ModalCancelEventSource, M as ModalConfig, ax as ModalContainer, ay as ModalQueue, az as ModalSize, aA as NumberCleanValue, aB as NumberValueStore, aC as OnCloseModalFn, aD as OnNetworkErrorFn, aE as OnShowCreateRecordModalFn, aF as OnShowCreateRelatedRecordModalFn, aG as OnShowModalFn, aH as OpenCreateRecordFn, aI as OpenCreateRelatedRecordFn, d as PartialBusiness, e as PartialClientObject, a as PartialCustomObject, P as PartialEntity, i as PartialLocation, aJ as PartialRelatedObject, c as PartialTeamMember, b as PartialUser, aK as PatchReturnValue, f as PostFormDataFn, aL as PostFormDataPayload, aM as PostReturnValue, aN as Profile, aO as PromiseMap, aP as PromiseReject, aQ as PromiseResolve, aR as PromiseState, aS as PromptFn, g as PromptState, aT as PutReturnValue, aU as RadioCleanValue, aV as RadioValueStore, aW as RefreshEntityFn, aX as ReleaseBlockingScriptHandler, k as RequestOptions, R as RequestWithErrorsResponse, aY as SelectCleanValue, aZ as SelectValueStore, a_ as SetInternalSessionDataFn, a$ as SetupAssistantConfig, q as SetupAssistantField, l as ShowToastOptions, b0 as ShowViewInModalFn, m as ShowViewInModalOptions, S as StateChangePayload, b1 as TextValueStore, b2 as UnknownFunction, b3 as UploadFileData, b4 as UploadFileFn, b5 as UserConfig, b6 as ValueStore, W as WorkerContextArgs, b7 as modalSize } from './ThirdPartyScript-DxPk6YJY.js';
3
- import { d as RunScriptOptions } from './automation-CD_ngwWI.js';
4
- export { e as AuthorizeEvent, A as AutomationStepConfig, B as BaseEvent, f as CalendarDefinition, g as CalendarScriptReturnData, C as CalendarSourceConfig, h as CalendarSourceMap, i as CalendarSources, j as CloseModalRequestEvent, b as CommonExecutionPlugin, c as CommonPluginDefinition, k as CommunicateEvent, l as CompleteSetupRequestEvent, m as ConsoleLogEvent, n as CopyToClipboardEvent, o as CreateFileIdFn, D as DataAdornmentConfig, p as DoneEvent, q as DynamicPromptRequestEvent, E as ErrorEvent, r as ExecuteCalendarSourceScript, s as ExecuteFloatingFrameScript, F as FloatingFrameConfig, t as FloatingFrameEmployeeConfig, u as FrameQuadrant, G as GetPendingCacheCountFn, H as HideEvent, v as HostCompleteSetupFn, I as IframeOutputEvent, w as InstallThirdPartyScriptRequestEvent, x as InvalidateCacheFn, K as KizenFile, M as MessageEventData, y as MinimizedConfig, O as OnClearToastsFn, z as OnCompleteSetupFn, J as OnConsoleLogFn, L as OnNetworkRequestFn, N as OnRunEventScriptFn, P as OnShowToastFn, Q as OpenCreateRecordModalRequestEvent, S as OpenCreateRelatedRecordModalRequestEvent, U as OpenWindowEvent, V as PerformKizenFileUploadFn, W as PostFormDataRequestEvent, X as PromptRequestEvent, Y as QueryRequestEvent, Z as RecipientConfig, _ as RefreshEntityEvent, $ as RefreshTimelineEvent, a0 as RequestableQueryMethods, R as RoutablePageConfig, a as RouteScriptConfig, a1 as RunEventScriptEvent, a2 as SchemaValidation, a3 as SetStateEvent, a4 as ShowEvent, a5 as ShowToastEvent, a6 as ShowViewInModalRequestEvent, a7 as TerminatorContent, a8 as Terminators, T as ToolbarItemConfig, a9 as UIOutputEvent, aa as UpdateSessionDataEvent, ab as UploadFilePayload, ac as UploadFileRequestEvent, ad as WindowPosition } from './automation-CD_ngwWI.js';
5
- export { AsyncFunctionConstructor, BuiltAsyncFn, CompleteSetupResponsePayload, CreateRecordResponsePayload, CreateRelatedRecordResponsePayload, ExpressionPayload, FunctionWithReturn, InstallThirdPartyScriptResponsePayload, ObjectSettingsMenuItemConfig, PostFormDataResponsePayload, PromptResponsePayload, QueryResponsePayload, RefreshEntityResponsePayload, UploadFileResponsePayload, WorkerEvent, WorkerSetup } from './types.js';
1
+ import { U as UnknownJSON, t as SelectOption } from './ThirdPartyScript-Dxo1d6pb.js';
2
+ export { u as ApiKeyValueStore, s as AppPlugin, v as AppPlugins, A as Args, w as AssistantConfigAction, x as AssistantField, y as AssistantLink, B as BaseAPI, z as BooleanCleanValue, E as BooleanValueStore, F as ButtonConfig, H as CleanValueStore, K as CleanValueStoreType, L as CloseModalFn, m as CodingAssistantProfile, N as CompleteSetupFn, O as CompleteSetupLevel, j as CompleteSetupOptions, Q as ConfigService, p as ConsoleBridge, V as ConsoleLogLevel, X as CreateRecordModalQueue, Y as CreateRelatedRecordModalQueue, C as CurrentUser, Z as CurriedCloseModalFn, _ as CurriedCompleteSetupFn, $ as CurriedDynamicPromptFn, a0 as CurriedInstallThirdPartyScriptFn, a1 as CurriedKizenRequestFn, a2 as CurriedLaunchCodingAssistantFn, a3 as CurriedOpenCreateRecordFn, a4 as CurriedOpenCreateRelatedRecordFn, a5 as CurriedPostFormDataFn, a6 as CurriedPromptFn, a7 as CurriedRefreshEntityFn, a8 as CurriedShowViewInModalFn, a9 as CurriedUploadFileFn, aa as CustomObjectCleanValue, ab as CustomObjectValueStore, D as DataCache, ac as DataCacheEntry, ad as DeleteReturnValue, o as DynamicPromptConfig, ae as DynamicPromptFn, af as EmployeeConfig, ag as ErrorHandler, ah as ErrorResponse, ai as FieldCleanValue, aj as FieldValueStore, G as GetOptions, ak as GetReturnValue, q as IncludeOption, al as InstallThirdPartyScriptFn, I as Instance, h as InternalSessionData, am as JSONArray, an as JSONObject, ao as JSONPrimitive, J as JSONValue, ap as KizenConfig, aq as KizenNetworkResponse, ar as KizenProxySuccessResponse, as as KizenRequestFn, at as KizenRequestFnHandler, au as KnownArgs, av as LaunchCodingAssistantFn, aw as MatchSetupAssistantField, ax as MaybeMessageError, ay as ModalBlock, az as ModalCancelEventSource, M as ModalConfig, aA as ModalContainer, aB as ModalQueue, aC as ModalSize, aD as NumberCleanValue, aE as NumberValueStore, aF as OnCloseModalFn, aG as OnNetworkErrorFn, aH as OnShowCreateRecordModalFn, aI as OnShowCreateRelatedRecordModalFn, aJ as OnShowModalFn, aK as OpenCreateRecordFn, aL as OpenCreateRelatedRecordFn, d as PartialBusiness, e as PartialClientObject, a as PartialCustomObject, P as PartialEntity, i as PartialLocation, aM as PartialRelatedObject, c as PartialTeamMember, b as PartialUser, aN as PatchReturnValue, f as PostFormDataFn, aO as PostFormDataPayload, aP as PostReturnValue, aQ as Profile, aR as PromiseMap, aS as PromiseReject, aT as PromiseResolve, aU as PromiseState, aV as PromptFn, g as PromptState, aW as PutReturnValue, aX as RadioCleanValue, aY as RadioValueStore, aZ as RefreshEntityFn, a_ as ReleaseBlockingScriptHandler, k as RequestOptions, R as RequestWithErrorsResponse, a$ as SelectCleanValue, b0 as SelectValueStore, b1 as SetInternalSessionDataFn, b2 as SetupAssistantConfig, r as SetupAssistantField, l as ShowToastOptions, b3 as ShowViewInModalFn, n as ShowViewInModalOptions, S as StateChangePayload, b4 as TextValueStore, b5 as UnknownFunction, b6 as UploadFileData, b7 as UploadFileFn, b8 as UserConfig, b9 as ValueStore, W as WorkerContextArgs, ba as modalSize } from './ThirdPartyScript-Dxo1d6pb.js';
3
+ import { d as RunScriptOptions } from './automation-BRhJ-nBe.js';
4
+ export { e as AuthorizeEvent, A as AutomationStepConfig, B as BaseEvent, f as CalendarDefinition, g as CalendarScriptReturnData, C as CalendarSourceConfig, h as CalendarSourceMap, i as CalendarSources, j as CloseModalRequestEvent, b as CommonExecutionPlugin, c as CommonPluginDefinition, k as CommunicateEvent, l as CompleteSetupRequestEvent, m as ConsoleLogEvent, n as CopyToClipboardEvent, o as CreateFileIdFn, D as DataAdornmentConfig, p as DoneEvent, q as DynamicPromptRequestEvent, E as ErrorEvent, r as ExecuteCalendarSourceScript, s as ExecuteFloatingFrameScript, F as FloatingFrameConfig, t as FloatingFrameEmployeeConfig, u as FrameQuadrant, G as GetPendingCacheCountFn, H as HideEvent, v as HostCompleteSetupFn, I as IframeOutputEvent, w as InstallThirdPartyScriptRequestEvent, x as InvalidateCacheFn, K as KizenFile, L as LaunchCodingAssistantArgs, y as LaunchCodingAssistantRequestEvent, M as MessageEventData, z as MinimizedConfig, O as OnClearToastsFn, J as OnCompleteSetupFn, N as OnConsoleLogFn, P as OnLaunchCodingAssistantFn, Q as OnNetworkRequestFn, S as OnRunEventScriptFn, U as OnShowToastFn, V as OpenCreateRecordModalRequestEvent, W as OpenCreateRelatedRecordModalRequestEvent, X as OpenWindowEvent, Y as PerformKizenFileUploadFn, Z as PostFormDataRequestEvent, _ as PromptRequestEvent, $ as QueryRequestEvent, a0 as RecipientConfig, a1 as RefreshEntityEvent, a2 as RefreshTimelineEvent, a3 as RequestableQueryMethods, R as RoutablePageConfig, a as RouteScriptConfig, a4 as RunEventScriptEvent, a5 as SchemaValidation, a6 as SetStateEvent, a7 as ShowEvent, a8 as ShowToastEvent, a9 as ShowViewInModalRequestEvent, aa as TerminatorContent, ab as Terminators, T as ToolbarItemConfig, ac as UIOutputEvent, ad as UpdateSessionDataEvent, ae as UploadFilePayload, af as UploadFileRequestEvent, ag as WindowPosition } from './automation-BRhJ-nBe.js';
5
+ export { AsyncFunctionConstructor, BuiltAsyncFn, CompleteSetupResponsePayload, CreateRecordResponsePayload, CreateRelatedRecordResponsePayload, ExpressionPayload, FunctionWithReturn, InstallThirdPartyScriptResponsePayload, LaunchCodingAssistantResponsePayload, ObjectSettingsMenuItemConfig, PostFormDataResponsePayload, PromptResponsePayload, QueryResponsePayload, RefreshEntityResponsePayload, UploadFileResponsePayload, WorkerEvent, WorkerSetup } from './types.js';
6
6
  export { H as HideConfig, S as ShowConfig } from './floatingFrames-BzaoL7cq.js';
7
- export { B as BlockConfig, a as BlockType, E as ExecuteGenericScript, G as GenericPluginConfig } from './blocks-BBTnzHmZ.js';
7
+ export { B as BlockConfig, a as BlockType, E as ExecuteGenericScript, G as GenericPluginConfig } from './blocks-DBikV-mf.js';
8
8
  import 'react';
9
9
  import './frames-AOHUyPDP.js';
10
10
 
11
- declare const runScript: ({ scriptBody, user, teamMember, business, onError, onReleaseBlockingScript, setLoadingState, clientObject, scriptUIRef, onStateChange, workerName, context, args, plugin, onShowToast, onClearToasts, terminators, executionPlugin, sessionData, setSessionData, onShowModal, onCompleteSetup, onCloseModal, onShowCreateRecordModal, onShowCreateRelatedRecordModal, onNetworkError, onNetworkRequest, appPath, pushHistory, createFileId, performFileUpload, getPendingCacheCount, invalidateCache, onConsoleLog, onRunEventScript, }: RunScriptOptions) => Promise<unknown>;
11
+ declare const runScript: ({ scriptBody, user, teamMember, business, onError, onReleaseBlockingScript, setLoadingState, clientObject, scriptUIRef, onStateChange, workerName, context, args, plugin, onShowToast, onClearToasts, onLaunchCodingAssistant, terminators, executionPlugin, sessionData, setSessionData, onShowModal, onCompleteSetup, onCloseModal, onShowCreateRecordModal, onShowCreateRelatedRecordModal, onNetworkError, onNetworkRequest, appPath, pushHistory, createFileId, performFileUpload, getPendingCacheCount, invalidateCache, onConsoleLog, onRunEventScript, }: RunScriptOptions) => Promise<unknown>;
12
12
  declare const runExpression: (expression: string, values: UnknownJSON) => Promise<boolean>;
13
13
  declare const runStringExpression: (expression: string, values: UnknownJSON) => Promise<string>;
14
14
  declare const runOptionExpression: (expression: string, values: UnknownJSON) => Promise<SelectOption[]>;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { clearNavigationContext, consumeNavigationContext, modalSize, readNavigationContext, runExpression, runObjectExpression, runOptionExpression, runScript, runStringExpression, version } from './chunk-6Z6FQRKC.js';
2
- import './chunk-KHXC4SGQ.js';
3
- import './chunk-Q7FEQQWE.js';
4
- import './chunk-GQ7WYSE4.js';
1
+ export { clearNavigationContext, consumeNavigationContext, modalSize, readNavigationContext, runExpression, runObjectExpression, runOptionExpression, runScript, runStringExpression, version } from './chunk-RBWOVNFL.js';
2
+ import './chunk-PMQSEOMC.js';
3
+ import './chunk-ZWPTYU2F.js';
4
+ import './chunk-R5IVGQA6.js';
5
5
  import './chunk-5WRI5ZAA.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
package/dist/react.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { f as CalendarDefinition, C as CalendarSourceConfig, h as CalendarSourceMap, i as CalendarSources, P as OnShowToastFn, r as ExecuteCalendarSourceScript, F as FloatingFrameConfig, s as ExecuteFloatingFrameScript, R as RoutablePageConfig, ad as WindowPosition, t as FloatingFrameEmployeeConfig, v as HostCompleteSetupFn, L as OnNetworkRequestFn, o as CreateFileIdFn, V as PerformKizenFileUploadFn, G as GetPendingCacheCountFn, x as InvalidateCacheFn, a as RouteScriptConfig } from './automation-CD_ngwWI.js';
2
- import { u as AppPlugins, W as WorkerContextArgs, bb as INDICATOR_TYPE, U as UnknownJSON, b as PartialUser, c as PartialTeamMember, d as PartialBusiness, e as PartialClientObject, aw as ModalCancelEventSource, M as ModalConfig, aC as OnCloseModalFn, a$ as SetupAssistantConfig, v as AssistantConfigAction, J as JSONValue, w as AssistantField } from './ThirdPartyScript-DxPk6YJY.js';
3
- import { G as GenericPluginConfig, E as ExecuteGenericScript, B as BlockConfig } from './blocks-BBTnzHmZ.js';
1
+ import { f as CalendarDefinition, C as CalendarSourceConfig, h as CalendarSourceMap, i as CalendarSources, U as OnShowToastFn, r as ExecuteCalendarSourceScript, F as FloatingFrameConfig, s as ExecuteFloatingFrameScript, R as RoutablePageConfig, ag as WindowPosition, t as FloatingFrameEmployeeConfig, v as HostCompleteSetupFn, P as OnLaunchCodingAssistantFn, Q as OnNetworkRequestFn, o as CreateFileIdFn, Y as PerformKizenFileUploadFn, G as GetPendingCacheCountFn, x as InvalidateCacheFn, a as RouteScriptConfig } from './automation-BRhJ-nBe.js';
2
+ import { v as AppPlugins, W as WorkerContextArgs, be as INDICATOR_TYPE, U as UnknownJSON, b as PartialUser, c as PartialTeamMember, d as PartialBusiness, e as PartialClientObject, az as ModalCancelEventSource, M as ModalConfig, aF as OnCloseModalFn, b2 as SetupAssistantConfig, w as AssistantConfigAction, J as JSONValue, x as AssistantField } from './ThirdPartyScript-Dxo1d6pb.js';
3
+ import { G as GenericPluginConfig, E as ExecuteGenericScript, B as BlockConfig } from './blocks-DBikV-mf.js';
4
4
  import { RefObject, JSX, ForwardedRef, ReactNode, FC, SetStateAction } from 'react';
5
5
  import { B as BuildIframeURLWithProxyOptions } from './frames-AOHUyPDP.js';
6
- import { R as RemovedHTML } from './values-DQ_YX6nj.js';
6
+ import { R as RemovedHTML } from './values-DmI_IQAH.js';
7
7
  import './floatingFrames-BzaoL7cq.js';
8
8
  import 'dompurify';
9
9
 
@@ -310,6 +310,11 @@ interface ToastWrapperProps {
310
310
  clearToasts: () => void;
311
311
  }
312
312
 
313
+ interface CodingAssistantWrapperProps {
314
+ children: React.ReactNode;
315
+ launchCodingAssistant?: OnLaunchCodingAssistantFn | undefined;
316
+ }
317
+
313
318
  interface NetworkWrapperProps {
314
319
  children: React.ReactNode;
315
320
  performRequest: OnNetworkRequestFn;
@@ -325,7 +330,7 @@ interface AdditionalContextProps {
325
330
  hasFinishedBootstrapping: boolean;
326
331
  waitingOnRouteScript: boolean;
327
332
  }
328
- interface AppEngineProviderProps extends Omit<AppStateWrapperProps, 'children'>, Omit<HistoryWrapperProps, 'children'>, Omit<MonitoringWrapperProps, 'children'>, Omit<ToastWrapperProps, 'children'>, Omit<NetworkWrapperProps, 'children'> {
333
+ interface AppEngineProviderProps extends Omit<AppStateWrapperProps, 'children'>, Omit<HistoryWrapperProps, 'children'>, Omit<MonitoringWrapperProps, 'children'>, Omit<ToastWrapperProps, 'children'>, Omit<CodingAssistantWrapperProps, 'children'>, Omit<NetworkWrapperProps, 'children'> {
329
334
  modal: Omit<ModalWrapperContextArgs, 'children'>;
330
335
  children: (props: ExposedModals & AdditionalContextProps) => ReactNode;
331
336
  hideFramesOnModal?: boolean;
package/dist/react.js CHANGED
@@ -1,9 +1,9 @@
1
- import { runScript, getPluginSafeHTML, getStableHash, readNavigationContext, clearNavigationContext, flattenReservedState, runExpression, replaceConfigValues, isFlagEnabled } from './chunk-6Z6FQRKC.js';
1
+ import { runScript, getPluginSafeHTML, getStableHash, readNavigationContext, clearNavigationContext, flattenReservedState, runExpression, replaceConfigValues, isFlagEnabled } from './chunk-RBWOVNFL.js';
2
2
  import './chunk-LGJYUPYZ.js';
3
- import { generateExecutionKey } from './chunk-KHXC4SGQ.js';
4
- import { buildIframeURLWithProxy, unwrapProxyMessage, getAllNestedInputsFromConfig, getActionFieldKey, getFieldFromAction, getActionMenuFieldKey } from './chunk-Q7FEQQWE.js';
5
- import { runFrameScriptEventName, runBlockScriptEventName } from './chunk-WV77RVUT.js';
6
- import { QUERY_KEYS, ROUTE_CHANGE_INTERNAL_EVENT, IFRAME_PREFIX, ROUTE_CHANGE_IFRAME_EVENT } from './chunk-GQ7WYSE4.js';
3
+ import { generateExecutionKey } from './chunk-PMQSEOMC.js';
4
+ import { buildIframeURLWithProxy, unwrapProxyMessage, getAllNestedInputsFromConfig, getActionFieldKey, getFieldFromAction, getActionMenuFieldKey } from './chunk-ZWPTYU2F.js';
5
+ import { runFrameScriptEventName, runBlockScriptEventName } from './chunk-GS77YCJF.js';
6
+ import { QUERY_KEYS, ROUTE_CHANGE_INTERNAL_EVENT, IFRAME_PREFIX, ROUTE_CHANGE_IFRAME_EVENT } from './chunk-R5IVGQA6.js';
7
7
  import './chunk-5WRI5ZAA.js';
8
8
  import { QueryClient, useQueries, useQueryClient, QueryClientContext, QueryClientProvider } from '@tanstack/react-query';
9
9
  import { createContext, useContext, useState, useCallback, useMemo, useRef, useEffect, useImperativeHandle } from 'react';
@@ -37,6 +37,20 @@ var useTerminators = () => {
37
37
  }
38
38
  return context;
39
39
  };
40
+ var CodingAssistantContext = createContext(null);
41
+ var CodingAssistantWrapper = ({
42
+ children,
43
+ launchCodingAssistant
44
+ }) => {
45
+ return /* @__PURE__ */ jsx(CodingAssistantContext.Provider, { value: { launchCodingAssistant }, children });
46
+ };
47
+ var useCodingAssistant = () => {
48
+ const context = useContext(CodingAssistantContext);
49
+ if (!context) {
50
+ throw new Error("useCodingAssistant must be used within a CodingAssistantWrapper");
51
+ }
52
+ return context;
53
+ };
40
54
  var SessionDataContext = createContext(null);
41
55
  var SessionDataWrapper = ({ children }) => {
42
56
  const [sessionData, _setSessionData] = useState({});
@@ -453,6 +467,7 @@ var useCalendarSourceCustomScript = ({
453
467
  const [pending, setPending] = useState(false);
454
468
  const [executionKey, setExeutionKey] = useState(void 0);
455
469
  const { terminators } = useTerminators();
470
+ const { launchCodingAssistant } = useCodingAssistant();
456
471
  const { sessionData, setSessionData } = useSessionData();
457
472
  const {
458
473
  installedPluginAPINamesToIds,
@@ -519,6 +534,7 @@ var useCalendarSourceCustomScript = ({
519
534
  pushHistory: history.push,
520
535
  onShowToast: showToast,
521
536
  onClearToasts: clearToasts,
537
+ onLaunchCodingAssistant: launchCodingAssistant,
522
538
  terminators,
523
539
  plugin,
524
540
  sessionData,
@@ -559,6 +575,7 @@ var useCalendarSourceCustomScript = ({
559
575
  history,
560
576
  showToast,
561
577
  clearToasts,
578
+ launchCodingAssistant,
562
579
  terminators,
563
580
  sessionData,
564
581
  setSessionData,
@@ -840,6 +857,7 @@ var useFloatingFrameCustomScript = ({
840
857
  onChangeMinimized
841
858
  }) => {
842
859
  const { terminators } = useTerminators();
860
+ const { launchCodingAssistant } = useCodingAssistant();
843
861
  const { sessionData, setSessionData } = useSessionData();
844
862
  const {
845
863
  installedPluginAPINamesToIds,
@@ -925,6 +943,7 @@ var useFloatingFrameCustomScript = ({
925
943
  plugin,
926
944
  onShowToast: showToast,
927
945
  onClearToasts: clearToasts,
946
+ onLaunchCodingAssistant: launchCodingAssistant,
928
947
  terminators,
929
948
  sessionData,
930
949
  setSessionData,
@@ -961,6 +980,7 @@ var useFloatingFrameCustomScript = ({
961
980
  onChangeMinimized,
962
981
  showToast,
963
982
  clearToasts,
983
+ launchCodingAssistant,
964
984
  terminators,
965
985
  sessionData,
966
986
  setSessionData,
@@ -995,6 +1015,7 @@ var useGenericAppCustomScript = ({
995
1015
  plugin
996
1016
  }) => {
997
1017
  const { terminators } = useTerminators();
1018
+ const { launchCodingAssistant } = useCodingAssistant();
998
1019
  const { sessionData, setSessionData } = useSessionData();
999
1020
  const {
1000
1021
  installedPluginAPINamesToIds,
@@ -1064,6 +1085,7 @@ var useGenericAppCustomScript = ({
1064
1085
  pushHistory: history.push,
1065
1086
  onShowToast: showToast,
1066
1087
  onClearToasts: clearToasts,
1088
+ onLaunchCodingAssistant: launchCodingAssistant,
1067
1089
  terminators,
1068
1090
  plugin,
1069
1091
  executionPlugin,
@@ -1105,6 +1127,7 @@ var useGenericAppCustomScript = ({
1105
1127
  history,
1106
1128
  showToast,
1107
1129
  clearToasts,
1130
+ launchCodingAssistant,
1108
1131
  terminators,
1109
1132
  plugin,
1110
1133
  sessionData,
@@ -1141,6 +1164,7 @@ var useRecordDetailCustomScript = ({
1141
1164
  onReleaseBlockingScript
1142
1165
  }) => {
1143
1166
  const { terminators } = useTerminators();
1167
+ const { launchCodingAssistant } = useCodingAssistant();
1144
1168
  const { sessionData, setSessionData } = useSessionData();
1145
1169
  const {
1146
1170
  installedPluginAPINamesToIds,
@@ -1219,6 +1243,7 @@ var useRecordDetailCustomScript = ({
1219
1243
  pushHistory: history.push,
1220
1244
  onShowToast: showToast,
1221
1245
  onClearToasts: clearToasts,
1246
+ onLaunchCodingAssistant: launchCodingAssistant,
1222
1247
  terminators,
1223
1248
  executionPlugin,
1224
1249
  sessionData,
@@ -1248,6 +1273,7 @@ var useRecordDetailCustomScript = ({
1248
1273
  history,
1249
1274
  showToast,
1250
1275
  clearToasts,
1276
+ launchCodingAssistant,
1251
1277
  terminators,
1252
1278
  sessionData,
1253
1279
  setSessionData,
@@ -2253,6 +2279,7 @@ var AppEngineProvider = (props) => {
2253
2279
  monitoringExceptionHelper,
2254
2280
  showToast,
2255
2281
  clearToasts,
2282
+ launchCodingAssistant,
2256
2283
  performRequest,
2257
2284
  appPath,
2258
2285
  hideFramesOnModal = true,
@@ -2282,25 +2309,31 @@ var AppEngineProvider = (props) => {
2282
2309
  MonitoringWrapper,
2283
2310
  {
2284
2311
  monitoringExceptionHelper,
2285
- children: /* @__PURE__ */ jsx(SessionDataWrapper, { children: /* @__PURE__ */ jsx(TerminatorsWrapper, { children: /* @__PURE__ */ jsx(ToastWrapper, { showToast, clearToasts, children: /* @__PURE__ */ jsx(FloatingFrameWrapper, { children: (hiddenByModal) => {
2286
- return /* @__PURE__ */ jsx(
2287
- NetworkWrapper,
2288
- {
2289
- performRequest,
2290
- createFileId,
2291
- performFileUpload,
2292
- invalidateCache,
2293
- getPendingCacheCount,
2294
- children: children({
2295
- ...modals,
2296
- showLoadingIndicator,
2297
- hasFinishedBootstrapping,
2298
- waitingOnRouteScript,
2299
- hiddenByModal: hideFramesOnModal ? hiddenByModal : false
2300
- })
2301
- }
2302
- );
2303
- } }) }) }) })
2312
+ children: /* @__PURE__ */ jsx(SessionDataWrapper, { children: /* @__PURE__ */ jsx(TerminatorsWrapper, { children: /* @__PURE__ */ jsx(ToastWrapper, { showToast, clearToasts, children: /* @__PURE__ */ jsx(
2313
+ CodingAssistantWrapper,
2314
+ {
2315
+ launchCodingAssistant,
2316
+ children: /* @__PURE__ */ jsx(FloatingFrameWrapper, { children: (hiddenByModal) => {
2317
+ return /* @__PURE__ */ jsx(
2318
+ NetworkWrapper,
2319
+ {
2320
+ performRequest,
2321
+ createFileId,
2322
+ performFileUpload,
2323
+ invalidateCache,
2324
+ getPendingCacheCount,
2325
+ children: children({
2326
+ ...modals,
2327
+ showLoadingIndicator,
2328
+ hasFinishedBootstrapping,
2329
+ waitingOnRouteScript,
2330
+ hiddenByModal: hideFramesOnModal ? hiddenByModal : false
2331
+ })
2332
+ }
2333
+ );
2334
+ } })
2335
+ }
2336
+ ) }) }) })
2304
2337
  }
2305
2338
  );
2306
2339
  } }) });