@memberjunction/core-actions 5.36.0 → 5.38.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 (46) hide show
  1. package/README.md +19 -1
  2. package/dist/custom/data/run-adhoc-query.action.d.ts +14 -1
  3. package/dist/custom/data/run-adhoc-query.action.d.ts.map +1 -1
  4. package/dist/custom/data/run-adhoc-query.action.js +27 -12
  5. package/dist/custom/data/run-adhoc-query.action.js.map +1 -1
  6. package/dist/custom/interactive-forms/_shared.d.ts +144 -0
  7. package/dist/custom/interactive-forms/_shared.d.ts.map +1 -0
  8. package/dist/custom/interactive-forms/_shared.js +300 -0
  9. package/dist/custom/interactive-forms/_shared.js.map +1 -0
  10. package/dist/custom/interactive-forms/activate-interactive-form-version.action.d.ts +31 -0
  11. package/dist/custom/interactive-forms/activate-interactive-form-version.action.d.ts.map +1 -0
  12. package/dist/custom/interactive-forms/activate-interactive-form-version.action.js +139 -0
  13. package/dist/custom/interactive-forms/activate-interactive-form-version.action.js.map +1 -0
  14. package/dist/custom/interactive-forms/create-interactive-form.action.d.ts +32 -0
  15. package/dist/custom/interactive-forms/create-interactive-form.action.d.ts.map +1 -0
  16. package/dist/custom/interactive-forms/create-interactive-form.action.js +162 -0
  17. package/dist/custom/interactive-forms/create-interactive-form.action.js.map +1 -0
  18. package/dist/custom/interactive-forms/get-active-form-for-entity.action.d.ts +46 -0
  19. package/dist/custom/interactive-forms/get-active-form-for-entity.action.d.ts.map +1 -0
  20. package/dist/custom/interactive-forms/get-active-form-for-entity.action.js +179 -0
  21. package/dist/custom/interactive-forms/get-active-form-for-entity.action.js.map +1 -0
  22. package/dist/custom/interactive-forms/get-default-form-scaffold.action.d.ts +32 -0
  23. package/dist/custom/interactive-forms/get-default-form-scaffold.action.d.ts.map +1 -0
  24. package/dist/custom/interactive-forms/get-default-form-scaffold.action.js +87 -0
  25. package/dist/custom/interactive-forms/get-default-form-scaffold.action.js.map +1 -0
  26. package/dist/custom/interactive-forms/get-entity-schema-for-form.action.d.ts +34 -0
  27. package/dist/custom/interactive-forms/get-entity-schema-for-form.action.d.ts.map +1 -0
  28. package/dist/custom/interactive-forms/get-entity-schema-for-form.action.js +103 -0
  29. package/dist/custom/interactive-forms/get-entity-schema-for-form.action.js.map +1 -0
  30. package/dist/custom/interactive-forms/index.d.ts +8 -0
  31. package/dist/custom/interactive-forms/index.d.ts.map +1 -0
  32. package/dist/custom/interactive-forms/index.js +8 -0
  33. package/dist/custom/interactive-forms/index.js.map +1 -0
  34. package/dist/custom/interactive-forms/modify-interactive-form.action.d.ts +54 -0
  35. package/dist/custom/interactive-forms/modify-interactive-form.action.d.ts.map +1 -0
  36. package/dist/custom/interactive-forms/modify-interactive-form.action.js +300 -0
  37. package/dist/custom/interactive-forms/modify-interactive-form.action.js.map +1 -0
  38. package/dist/custom/interactive-forms/revert-interactive-form.action.d.ts +39 -0
  39. package/dist/custom/interactive-forms/revert-interactive-form.action.d.ts.map +1 -0
  40. package/dist/custom/interactive-forms/revert-interactive-form.action.js +155 -0
  41. package/dist/custom/interactive-forms/revert-interactive-form.action.js.map +1 -0
  42. package/dist/index.d.ts +1 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +2 -0
  45. package/dist/index.js.map +1 -1
  46. package/package.json +34 -32
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/_shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /**
4
+ * Promote a Pending override to Active. Flips:
5
+ * - target Override: Status='Active'
6
+ * - target Override's Component: Status='Active'
7
+ * - prior Active sibling Override: Status='Inactive'
8
+ * - prior Active sibling Component: Status='Inactive'
9
+ *
10
+ * "Sibling" = same EntityID + (Scope, UserID, RoleID) tuple as the target
11
+ * Override. The target is the row identified by the input `OverrideID`; the
12
+ * priors are any rows currently Status='Active' at the same scope target.
13
+ *
14
+ * Idempotency. If the target Override is already Active, returns SUCCESS
15
+ * with a no-op message. If it's Inactive, that's a misuse — we surface
16
+ * NOT_PENDING so the agent / UI can ask the user what they really want.
17
+ *
18
+ * Inputs:
19
+ * - `OverrideID` (required, string) — the Pending override to activate
20
+ *
21
+ * Outputs:
22
+ * - `ComponentID` — the Component now Active
23
+ * - `OverrideID` — echoed for convenience
24
+ * - `PreviousActiveOverrideID` — the override that was demoted (or null)
25
+ */
26
+ export declare class ActivateInteractiveFormVersionAction extends BaseAction {
27
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
28
+ }
29
+ /** Tree-shaking guard. */
30
+ export declare function LoadActivateInteractiveFormVersionAction(): void;
31
+ //# sourceMappingURL=activate-interactive-form-version.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activate-interactive-form-version.action.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/activate-interactive-form-version.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAOrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,oCAAqC,SAAQ,UAAU;cAEhD,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkG1F;AAED,0BAA0B;AAC1B,wBAAgB,wCAAwC,IAAI,IAAI,CAI/D"}
@@ -0,0 +1,139 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BaseAction } from "@memberjunction/actions";
8
+ import { Metadata, LogError, RunView } from "@memberjunction/core";
9
+ import { RegisterClass } from "@memberjunction/global";
10
+ import { addOutput, checkOverrideOwnership, failure, getStringParam, loadComponent, loadOverride, mapToComponentStatus, } from "./_shared.js";
11
+ /**
12
+ * Promote a Pending override to Active. Flips:
13
+ * - target Override: Status='Active'
14
+ * - target Override's Component: Status='Active'
15
+ * - prior Active sibling Override: Status='Inactive'
16
+ * - prior Active sibling Component: Status='Inactive'
17
+ *
18
+ * "Sibling" = same EntityID + (Scope, UserID, RoleID) tuple as the target
19
+ * Override. The target is the row identified by the input `OverrideID`; the
20
+ * priors are any rows currently Status='Active' at the same scope target.
21
+ *
22
+ * Idempotency. If the target Override is already Active, returns SUCCESS
23
+ * with a no-op message. If it's Inactive, that's a misuse — we surface
24
+ * NOT_PENDING so the agent / UI can ask the user what they really want.
25
+ *
26
+ * Inputs:
27
+ * - `OverrideID` (required, string) — the Pending override to activate
28
+ *
29
+ * Outputs:
30
+ * - `ComponentID` — the Component now Active
31
+ * - `OverrideID` — echoed for convenience
32
+ * - `PreviousActiveOverrideID` — the override that was demoted (or null)
33
+ */
34
+ let ActivateInteractiveFormVersionAction = class ActivateInteractiveFormVersionAction extends BaseAction {
35
+ async InternalRunAction(params) {
36
+ try {
37
+ const overrideID = getStringParam(params, "OverrideID");
38
+ if (!overrideID) {
39
+ return failure("MISSING_PARAMETER", "Parameter 'OverrideID' is required.");
40
+ }
41
+ const provider = params.Provider ?? Metadata.Provider;
42
+ if (!provider)
43
+ return failure("NO_PROVIDER", "No metadata provider available.");
44
+ const user = params.ContextUser;
45
+ if (!user)
46
+ return failure("NO_USER", "Action requires a ContextUser.");
47
+ const target = await loadOverride(provider, user, overrideID);
48
+ if (!target) {
49
+ return failure("OVERRIDE_NOT_FOUND", `EntityFormOverride '${overrideID}' not found.`);
50
+ }
51
+ const ownershipFail = checkOverrideOwnership(target, user);
52
+ if (ownershipFail)
53
+ return ownershipFail;
54
+ if (target.Status === 'Active') {
55
+ addOutput(params, "ComponentID", target.ComponentID);
56
+ addOutput(params, "OverrideID", target.ID);
57
+ addOutput(params, "PreviousActiveOverrideID", null);
58
+ return { Success: true, ResultCode: "SUCCESS",
59
+ Message: JSON.stringify({ noop: true, OverrideID: target.ID, ComponentID: target.ComponentID }) };
60
+ }
61
+ if (target.Status === 'Inactive') {
62
+ return failure("NOT_PENDING", `Override ${overrideID} is Inactive. Use 'Revert Interactive Form' to restore an older version, not 'Activate'.`);
63
+ }
64
+ // Find sibling Active overrides at the same (entity, scope target).
65
+ const rv = RunView.FromMetadataProvider(provider);
66
+ const scopeClause = target.Scope === 'User'
67
+ ? `Scope='User' AND UserID='${target.UserID}'`
68
+ : target.Scope === 'Role'
69
+ ? `Scope='Role' AND RoleID='${target.RoleID}'`
70
+ : `Scope='Global' AND UserID IS NULL AND RoleID IS NULL`;
71
+ const priorResult = await rv.RunView({
72
+ EntityName: "MJ: Entity Form Overrides",
73
+ ExtraFilter: `EntityID='${target.EntityID}' AND ${scopeClause} AND Status='Active' AND ID <> '${target.ID}'`,
74
+ Fields: ['ID', 'ComponentID'],
75
+ ResultType: 'simple',
76
+ }, user);
77
+ if (!priorResult.Success) {
78
+ return failure("QUERY_FAILED", `Prior-active lookup failed: ${priorResult.ErrorMessage ?? 'unknown error'}`);
79
+ }
80
+ // Promote target's component.
81
+ const newComponent = await loadComponent(provider, user, target.ComponentID);
82
+ if (!newComponent) {
83
+ return failure("COMPONENT_NOT_FOUND", `Override ${overrideID} points at Component ${target.ComponentID} which no longer exists.`);
84
+ }
85
+ newComponent.Status = mapToComponentStatus('Active');
86
+ const ncSaved = await newComponent.Save();
87
+ if (!ncSaved) {
88
+ return failure("PERSIST_FAILED", `Could not flip Component to Active: ${newComponent.LatestResult?.CompleteMessage ?? 'unknown error'}`);
89
+ }
90
+ target.Status = 'Active';
91
+ const tSaved = await target.Save();
92
+ if (!tSaved) {
93
+ return failure("PERSIST_FAILED", `Could not flip Override to Active: ${target.LatestResult?.CompleteMessage ?? 'unknown error'}`);
94
+ }
95
+ // Demote priors. Component AND Override flipped in lock-step.
96
+ let firstPriorID = null;
97
+ for (const prior of priorResult.Results ?? []) {
98
+ if (!firstPriorID)
99
+ firstPriorID = prior.ID;
100
+ const priorO = await loadOverride(provider, user, prior.ID);
101
+ const priorC = await loadComponent(provider, user, prior.ComponentID);
102
+ if (priorO) {
103
+ priorO.Status = 'Inactive';
104
+ await priorO.Save();
105
+ }
106
+ if (priorC) {
107
+ priorC.Status = mapToComponentStatus('Inactive');
108
+ await priorC.Save();
109
+ }
110
+ }
111
+ addOutput(params, "ComponentID", target.ComponentID);
112
+ addOutput(params, "OverrideID", target.ID);
113
+ addOutput(params, "PreviousActiveOverrideID", firstPriorID);
114
+ return { Success: true, ResultCode: "SUCCESS",
115
+ Message: JSON.stringify({
116
+ OverrideID: target.ID,
117
+ ComponentID: target.ComponentID,
118
+ PreviousActiveOverrideID: firstPriorID,
119
+ DemotedCount: (priorResult.Results ?? []).length,
120
+ }) };
121
+ }
122
+ catch (err) {
123
+ const message = err instanceof Error ? err.message : String(err);
124
+ LogError(`ActivateInteractiveFormVersionAction: ${message}`);
125
+ return failure("UNEXPECTED_ERROR", message);
126
+ }
127
+ }
128
+ };
129
+ ActivateInteractiveFormVersionAction = __decorate([
130
+ RegisterClass(BaseAction, "__ActivateInteractiveFormVersion")
131
+ ], ActivateInteractiveFormVersionAction);
132
+ export { ActivateInteractiveFormVersionAction };
133
+ /** Tree-shaking guard. */
134
+ export function LoadActivateInteractiveFormVersionAction() {
135
+ if (false) {
136
+ const _ = ActivateInteractiveFormVersionAction;
137
+ }
138
+ }
139
+ //# sourceMappingURL=activate-interactive-form-version.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activate-interactive-form-version.action.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/activate-interactive-form-version.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /**
4
+ * Create a net-new interactive-form override for the requesting user.
5
+ *
6
+ * **Net-new path only.** Returns ALREADY_EXISTS if the user already has an
7
+ * Active override for the target entity — agents should call
8
+ * `Get Active Form For Entity` first and route to `Modify Interactive Form`
9
+ * in that case. (Pending sibling overrides do NOT block creation — those
10
+ * are an in-flight refinement and Modify will resolve them in-place.)
11
+ *
12
+ * **Security clamp — Scope.** This action *always* writes
13
+ * `Scope='User', UserID=ctx.user.ID, Status='Active', Priority=0`,
14
+ * regardless of any scope-related parameter the caller might supply.
15
+ * This is the load-bearing safety property of the AI authoring path:
16
+ * an agent cannot write Global or Role overrides that would affect
17
+ * other users. Scope promotion (User → Role → Global) is a separate,
18
+ * deliberate human action in Component Studio / Form Builder dashboard.
19
+ *
20
+ * **Atomicity.** If the override insert fails after the Component insert
21
+ * succeeds, we surface PERSIST_FAILED with the Component already in the
22
+ * table. Orphan Components are harmless — they don't render anywhere
23
+ * until something points an override at them. The caller can retry; a
24
+ * second run will create a fresh Component and a successful override.
25
+ */
26
+ export declare class CreateInteractiveFormAction extends BaseAction {
27
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
28
+ private extractInputs;
29
+ }
30
+ /** Tree-shaking guard. */
31
+ export declare function LoadCreateInteractiveFormAction(): void;
32
+ //# sourceMappingURL=create-interactive-form.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-interactive-form.action.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/create-interactive-form.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AASrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,2BAA4B,SAAQ,UAAU;cAEvC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoGvF,OAAO,CAAC,aAAa;CAyBxB;AAED,0BAA0B;AAC1B,wBAAgB,+BAA+B,IAAI,IAAI,CAItD"}
@@ -0,0 +1,162 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BaseAction } from "@memberjunction/actions";
8
+ import { Metadata, LogError, RunView } from "@memberjunction/core";
9
+ import { RegisterClass } from "@memberjunction/global";
10
+ import { addOutput, failure, getStringParam, insertComponent, insertOverride, lintFormSpec, parseSpecParam, } from "./_shared.js";
11
+ /**
12
+ * Create a net-new interactive-form override for the requesting user.
13
+ *
14
+ * **Net-new path only.** Returns ALREADY_EXISTS if the user already has an
15
+ * Active override for the target entity — agents should call
16
+ * `Get Active Form For Entity` first and route to `Modify Interactive Form`
17
+ * in that case. (Pending sibling overrides do NOT block creation — those
18
+ * are an in-flight refinement and Modify will resolve them in-place.)
19
+ *
20
+ * **Security clamp — Scope.** This action *always* writes
21
+ * `Scope='User', UserID=ctx.user.ID, Status='Active', Priority=0`,
22
+ * regardless of any scope-related parameter the caller might supply.
23
+ * This is the load-bearing safety property of the AI authoring path:
24
+ * an agent cannot write Global or Role overrides that would affect
25
+ * other users. Scope promotion (User → Role → Global) is a separate,
26
+ * deliberate human action in Component Studio / Form Builder dashboard.
27
+ *
28
+ * **Atomicity.** If the override insert fails after the Component insert
29
+ * succeeds, we surface PERSIST_FAILED with the Component already in the
30
+ * table. Orphan Components are harmless — they don't render anywhere
31
+ * until something points an override at them. The caller can retry; a
32
+ * second run will create a fresh Component and a successful override.
33
+ */
34
+ let CreateInteractiveFormAction = class CreateInteractiveFormAction extends BaseAction {
35
+ async InternalRunAction(params) {
36
+ try {
37
+ const inputs = this.extractInputs(params);
38
+ if ('error' in inputs)
39
+ return inputs.error;
40
+ const provider = params.Provider ?? Metadata.Provider;
41
+ if (!provider)
42
+ return failure("NO_PROVIDER", "No metadata provider available.");
43
+ const user = params.ContextUser;
44
+ if (!user)
45
+ return failure("NO_USER", "Action requires a ContextUser to clamp override scope.");
46
+ const entityInfo = provider.EntityByName(inputs.EntityName);
47
+ if (!entityInfo) {
48
+ return failure("ENTITY_NOT_FOUND", `Entity '${inputs.EntityName}' is not registered with the active metadata provider.`);
49
+ }
50
+ // Guard: don't silently create a duplicate override. We match
51
+ // BOTH Active and Pending sibling overrides — either is grounds
52
+ // to switch to Modify on that row instead of creating a second
53
+ // override. (Two overrides for the same entity/user would race
54
+ // each other at form-resolution time.)
55
+ const rv = RunView.FromMetadataProvider(provider);
56
+ const dupResult = await rv.RunView({
57
+ EntityName: "MJ: Entity Form Overrides",
58
+ ExtraFilter: `EntityID='${entityInfo.ID}' AND Scope='User' AND UserID='${user.ID}' AND Status IN ('Active', 'Pending')`,
59
+ Fields: ['ID', 'Status'],
60
+ ResultType: 'simple',
61
+ MaxRows: 1,
62
+ }, user);
63
+ if (dupResult.Success && (dupResult.Results ?? []).length > 0) {
64
+ const existing = dupResult.Results[0];
65
+ return failure("ALREADY_EXISTS", `A ${existing.Status} User-scope override already exists for entity '${inputs.EntityName}' (OverrideID=${existing.ID}). Use 'Modify Interactive Form' on this OverrideID to refine it (with a VersionBumpKind of 'patch' / 'minor' / 'major' to snapshot a new version, or 'in-place' against a Pending row to keep iterating on the same version). Use 'Revert Interactive Form' to switch to a different historical version.`);
66
+ }
67
+ // Lint before any persistence — fail-hard.
68
+ const lintFail = await lintFormSpec(inputs.Spec, user);
69
+ if (lintFail)
70
+ return lintFail;
71
+ // Create v1.0.0 as Pending (NOT Active). The cockpit / agent
72
+ // workflow is iterative — the user will refine via the chat
73
+ // before they're ready to flip the form live. Creating Active
74
+ // here would either (a) push an empty scaffold into production
75
+ // as the user's actual form, or (b) force the agent's first
76
+ // Modify to bump a new version, leaving behind a useless
77
+ // v1.0.0 placeholder. Pending means the agent's first Modify
78
+ // hits the in-place branch and overwrites this row — no
79
+ // wasted version, no premature publication. The user
80
+ // explicitly Activates from the Form Builder dashboard when
81
+ // they're happy with the result.
82
+ const componentInsert = await insertComponent({
83
+ provider, user,
84
+ spec: inputs.Spec,
85
+ fallbackName: inputs.Name,
86
+ description: inputs.Description,
87
+ version: "1.0.0",
88
+ versionSequence: 1,
89
+ componentStatus: 'Pending',
90
+ });
91
+ if ('error' in componentInsert)
92
+ return componentInsert.error;
93
+ const componentID = componentInsert.id;
94
+ const overrideInsert = await insertOverride({
95
+ provider, user,
96
+ entityID: entityInfo.ID,
97
+ componentID,
98
+ name: inputs.Name,
99
+ description: inputs.Description,
100
+ notes: inputs.Notes,
101
+ status: 'Pending',
102
+ priority: 0,
103
+ });
104
+ if ('error' in overrideInsert) {
105
+ return failure("PERSIST_FAILED", `${overrideInsert.error.Message} (Component ${componentID} was persisted but has no override yet.)`);
106
+ }
107
+ addOutput(params, "ComponentID", componentID);
108
+ addOutput(params, "OverrideID", overrideInsert.id);
109
+ addOutput(params, "Version", "1.0.0");
110
+ return {
111
+ Success: true,
112
+ ResultCode: "SUCCESS",
113
+ Message: JSON.stringify({
114
+ ComponentID: componentID,
115
+ OverrideID: overrideInsert.id,
116
+ EntityName: inputs.EntityName,
117
+ Scope: "User",
118
+ Status: "Pending",
119
+ Version: "1.0.0",
120
+ }),
121
+ };
122
+ }
123
+ catch (err) {
124
+ const message = err instanceof Error ? err.message : String(err);
125
+ LogError(`CreateInteractiveFormAction: ${message}`);
126
+ return failure("UNEXPECTED_ERROR", message);
127
+ }
128
+ }
129
+ extractInputs(params) {
130
+ const entityName = getStringParam(params, "EntityName");
131
+ if (!entityName)
132
+ return { error: failure("MISSING_PARAMETER", "Parameter 'EntityName' is required.") };
133
+ const name = getStringParam(params, "Name");
134
+ if (!name)
135
+ return { error: failure("MISSING_PARAMETER", "Parameter 'Name' is required.") };
136
+ const specRaw = params.Params.find(x => x.Name?.trim().toLowerCase() === "spec")?.Value;
137
+ if (specRaw == null)
138
+ return { error: failure("MISSING_PARAMETER", "Parameter 'Spec' is required.") };
139
+ const parsed = parseSpecParam(specRaw);
140
+ if ('error' in parsed) {
141
+ return { error: failure("LINT_FAILED", `Spec is not valid JSON: ${parsed.error}`) };
142
+ }
143
+ return {
144
+ EntityName: entityName,
145
+ Spec: parsed,
146
+ Name: name,
147
+ Description: getStringParam(params, "Description"),
148
+ Notes: getStringParam(params, "Notes"),
149
+ };
150
+ }
151
+ };
152
+ CreateInteractiveFormAction = __decorate([
153
+ RegisterClass(BaseAction, "__CreateInteractiveForm")
154
+ ], CreateInteractiveFormAction);
155
+ export { CreateInteractiveFormAction };
156
+ /** Tree-shaking guard. */
157
+ export function LoadCreateInteractiveFormAction() {
158
+ if (false) {
159
+ const _ = CreateInteractiveFormAction;
160
+ }
161
+ }
162
+ //# sourceMappingURL=create-interactive-form.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-interactive-form.action.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/create-interactive-form.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /**
4
+ * Read-only action that returns the currently-resolved interactive-form
5
+ * override (if any) for the (entity, user) pair plus the full list of
6
+ * applicable variants. Used by the Form Builder agent to decide between
7
+ * Create (no override exists) and Modify (an override already exists).
8
+ *
9
+ * Resolution mirrors {@link FormResolverService} on the client:
10
+ * - Scope precedence: User > Role > Global.
11
+ * - Within a tier: Priority DESC, then __mj_CreatedAt DESC.
12
+ * - Only Status='Active' rows are considered for the "active" pick. The
13
+ * full variants list includes 'Pending' rows so the agent can recognize
14
+ * an in-flight refinement loop and reuse the Pending row instead of
15
+ * spawning a new one.
16
+ *
17
+ * Output shape (JSON in `Message`, also surfaced as a `Result` output param):
18
+ * ```
19
+ * {
20
+ * "EntityName": "MJ: Applications",
21
+ * "Active": {
22
+ * "OverrideID": "...",
23
+ * "ComponentID": "...",
24
+ * "Scope": "User" | "Role" | "Global",
25
+ * "Priority": 0,
26
+ * "Status": "Active",
27
+ * "Spec": <ComponentSpec>,
28
+ * "ComponentName": "...",
29
+ * "ComponentVersion": "1.0.0",
30
+ * "VersionSequence": 1
31
+ * } | null,
32
+ * "Variants": [{ ...same shape... }, ...] // all applicable, all statuses
33
+ * }
34
+ * ```
35
+ *
36
+ * If no overrides exist, `Active` is null and `Variants` is empty —
37
+ * the calling agent should then call `Get Default Form Scaffold For Entity`
38
+ * and `Create Interactive Form`.
39
+ */
40
+ export declare class GetActiveFormForEntityAction extends BaseAction {
41
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
42
+ private getStringParam;
43
+ }
44
+ /** Tree-shaking guard — called from src/index.ts. */
45
+ export declare function LoadGetActiveFormForEntityAction(): void;
46
+ //# sourceMappingURL=get-active-form-for-entity.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-active-form-for-entity.action.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/get-active-form-for-entity.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBACa,4BAA6B,SAAQ,UAAU;cAExC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkKvF,OAAO,CAAC,cAAc;CAOzB;AAMD,qDAAqD;AACrD,wBAAgB,gCAAgC,IAAI,IAAI,CAIvD"}