@memberjunction/core-entities-server 5.42.0 → 5.44.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.
- package/README.md +4 -0
- package/dist/custom/MJAISkillPermissionEntityServer.server.d.ts +19 -0
- package/dist/custom/MJAISkillPermissionEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJAISkillPermissionEntityServer.server.js +39 -0
- package/dist/custom/MJAISkillPermissionEntityServer.server.js.map +1 -0
- package/dist/custom/MJRemoteOperationEntityServer.server.d.ts +55 -0
- package/dist/custom/MJRemoteOperationEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRemoteOperationEntityServer.server.js +148 -0
- package/dist/custom/MJRemoteOperationEntityServer.server.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +24 -24
package/README.md
CHANGED
|
@@ -118,6 +118,10 @@ See [`@memberjunction/aiengine` README](../AI/Engine/README.md#vector-store-inva
|
|
|
118
118
|
|
|
119
119
|
Companion to `MJAIAgentNoteEntityServer` — maintains the parallel invariant for the agent example vector store on `Save`/`Delete`.
|
|
120
120
|
|
|
121
|
+
### MJRemoteOperationEntityServer (v5.43.x+)
|
|
122
|
+
|
|
123
|
+
The **AI-from-Description** half of the [Remote Operations](../../guides/REMOTE_OPERATIONS_GUIDE.md) primitive (RO-4). For a `MJ: Remote Operations` row with `GenerationType='AI'`, the `Save` hook calls the `Generate Remote Operation Code` prompt to author the body of the operation's `InternalExecute` — against the ambient `input` / `provider` / `user` / `context` contract — stores it in `Code`, records the libraries it used in the JSONType `LibrariesObject`, and resets `CodeApprovalStatus='Pending'` for human review (skipped when `CodeLocked`). CodeGen then emits a complete registered class from the approved code. Mirrors `MJActionEntityServer`; transactional; no junction CRUD (the library list is a JSONType field).
|
|
124
|
+
|
|
121
125
|
## Architecture
|
|
122
126
|
|
|
123
127
|
### Entity Registration
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ValidationResult } from '@memberjunction/core';
|
|
2
|
+
import { MJAISkillPermissionEntity } from '@memberjunction/core-entities';
|
|
3
|
+
/**
|
|
4
|
+
* Server-side AISkillPermission entity enforcing the grantee-exclusivity invariant:
|
|
5
|
+
* **exactly one** of `UserID` / `RoleID` must be set — never both, never neither.
|
|
6
|
+
*
|
|
7
|
+
* This mirrors the generated `MJAIAgentPermissionEntity.ValidateRoleIDAndUserIDExclusive`
|
|
8
|
+
* rule (which AIAgentPermission gets from a DB-authored, LLM-generated table-level
|
|
9
|
+
* validation baked into the shared entity). We enforce it here as a **version-controlled,
|
|
10
|
+
* deterministic** server-side gate so the invariant holds on every server save path
|
|
11
|
+
* (`Save()` calls `Validate()` and the ClassFactory resolves this higher-priority subclass
|
|
12
|
+
* server-side) without depending on non-deterministic LLM codegen. The sharing UI sets a
|
|
13
|
+
* single grantee per row by construction, so this is the integrity backstop for any other
|
|
14
|
+
* write path (Remote Operations, scripts, imports).
|
|
15
|
+
*/
|
|
16
|
+
export declare class MJAISkillPermissionEntityServer extends MJAISkillPermissionEntity {
|
|
17
|
+
Validate(): ValidationResult;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=MJAISkillPermissionEntityServer.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJAISkillPermissionEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJAISkillPermissionEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE9G,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,qBACa,+BAAgC,SAAQ,yBAAyB;IAC1D,QAAQ,IAAI,gBAAgB;CAe/C"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 { BaseEntity, ValidationErrorInfo, ValidationErrorType } from '@memberjunction/core';
|
|
8
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
9
|
+
import { MJAISkillPermissionEntity } from '@memberjunction/core-entities';
|
|
10
|
+
/**
|
|
11
|
+
* Server-side AISkillPermission entity enforcing the grantee-exclusivity invariant:
|
|
12
|
+
* **exactly one** of `UserID` / `RoleID` must be set — never both, never neither.
|
|
13
|
+
*
|
|
14
|
+
* This mirrors the generated `MJAIAgentPermissionEntity.ValidateRoleIDAndUserIDExclusive`
|
|
15
|
+
* rule (which AIAgentPermission gets from a DB-authored, LLM-generated table-level
|
|
16
|
+
* validation baked into the shared entity). We enforce it here as a **version-controlled,
|
|
17
|
+
* deterministic** server-side gate so the invariant holds on every server save path
|
|
18
|
+
* (`Save()` calls `Validate()` and the ClassFactory resolves this higher-priority subclass
|
|
19
|
+
* server-side) without depending on non-deterministic LLM codegen. The sharing UI sets a
|
|
20
|
+
* single grantee per row by construction, so this is the integrity backstop for any other
|
|
21
|
+
* write path (Remote Operations, scripts, imports).
|
|
22
|
+
*/
|
|
23
|
+
let MJAISkillPermissionEntityServer = class MJAISkillPermissionEntityServer extends MJAISkillPermissionEntity {
|
|
24
|
+
Validate() {
|
|
25
|
+
const result = super.Validate();
|
|
26
|
+
const hasRole = this.RoleID != null;
|
|
27
|
+
const hasUser = this.UserID != null;
|
|
28
|
+
if ((hasRole && hasUser) || (!hasRole && !hasUser)) {
|
|
29
|
+
result.Errors.push(new ValidationErrorInfo('RoleID/UserID', 'You must specify either a Role or a User, but not both and not neither.', `RoleID: ${this.RoleID}, UserID: ${this.UserID}`, ValidationErrorType.Failure));
|
|
30
|
+
}
|
|
31
|
+
result.Success = result.Success && result.Errors.length === 0;
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
MJAISkillPermissionEntityServer = __decorate([
|
|
36
|
+
RegisterClass(BaseEntity, 'MJ: AI Skill Permissions')
|
|
37
|
+
], MJAISkillPermissionEntityServer);
|
|
38
|
+
export { MJAISkillPermissionEntityServer };
|
|
39
|
+
//# sourceMappingURL=MJAISkillPermissionEntityServer.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJAISkillPermissionEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJAISkillPermissionEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAoB,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;;;;;;;;;GAYG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,yBAAyB;IAC1D,QAAQ;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACpC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CACtC,eAAe,EACf,yEAAyE,EACzE,WAAW,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,MAAM,EAAE,EAChD,mBAAmB,CAAC,OAAO,CAC9B,CAAC,CAAC;QACP,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AAhBY,+BAA+B;IAD3C,aAAa,CAAC,UAAU,EAAE,0BAA0B,CAAC;GACzC,+BAA+B,CAgB3C"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { EntityInfo, EntitySaveOptions } from "@memberjunction/core";
|
|
2
|
+
import { MJRemoteOperationEntity, MJRemoteOperationEntity_RemoteOperationLibrary } from "@memberjunction/core-entities";
|
|
3
|
+
/** The shape `GenerateCode()` returns — the AI-authored body + its explanation + the libraries it declared. */
|
|
4
|
+
interface RemoteOperationGeneratedCode {
|
|
5
|
+
Success: boolean;
|
|
6
|
+
Code: string;
|
|
7
|
+
Comments: string;
|
|
8
|
+
Libraries: MJRemoteOperationEntity_RemoteOperationLibrary[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Server-only subclass for the `MJ: Remote Operations` entity — the RO-4 "AI-from-Description" half of the
|
|
12
|
+
* Remote Operations primitive. When an `AI`-generation operation's `Description` changes, `Save()` asks the
|
|
13
|
+
* `Generate Remote Operation Code` prompt to author the body of `InternalExecute` (against the ambient
|
|
14
|
+
* contract: typed `input`, `provider`, `user`, `context`), stores it in `Code`, records the libraries the
|
|
15
|
+
* body uses in `LibrariesObject`, and resets `CodeApprovalStatus` to `Pending` for human review. CodeGen's
|
|
16
|
+
* {@link import('@memberjunction/codegen-lib').RemoteOperationGeneratorBase} then emits the registered class
|
|
17
|
+
* from the approved `Code` + `LibrariesObject` — no hand-written subclass required.
|
|
18
|
+
*
|
|
19
|
+
* Mirrors `MJActionEntityServer` (the Generated-Actions pipeline); the library list is a JSONType field, so
|
|
20
|
+
* there is no junction CRUD — `this.LibrariesObject = ...` is the whole "manage libraries" step.
|
|
21
|
+
*/
|
|
22
|
+
export declare class MJRemoteOperationEntityServer extends MJRemoteOperationEntity {
|
|
23
|
+
/**
|
|
24
|
+
* Transient (never persisted) flag — set it before `Save()` to force regeneration even when `Description`
|
|
25
|
+
* is unchanged. Reset to false after every save, exactly like Action.ForceCodeGeneration.
|
|
26
|
+
*/
|
|
27
|
+
ForceCodeGeneration: boolean;
|
|
28
|
+
constructor(Entity: EntityInfo);
|
|
29
|
+
/**
|
|
30
|
+
* Save override: (re)generates the AI body when needed, within a transaction so a generation/save failure
|
|
31
|
+
* leaves no partial state.
|
|
32
|
+
*/
|
|
33
|
+
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
34
|
+
/** AI regeneration runs only for `GenerationType='AI'` ops whose `Description` changed (or new/forced) and that aren't locked. */
|
|
35
|
+
protected ShouldRegenerate(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Asks the `Generate Remote Operation Code` prompt to author the body of `InternalExecute` from this op's
|
|
38
|
+
* Description + typed I/O contract + the available libraries. Returns the body, an explanation, and the
|
|
39
|
+
* declared libraries; never throws for a logical model failure (returns `Success: false`).
|
|
40
|
+
*/
|
|
41
|
+
GenerateCode(): Promise<RemoteOperationGeneratedCode>;
|
|
42
|
+
/** Builds the template variables consumed by remote-operation-generation.template.md. */
|
|
43
|
+
protected PreparePromptData(): Record<string, unknown>;
|
|
44
|
+
/** The libraries an authored body may import from, with their documentation — reused verbatim from the Action pipeline. */
|
|
45
|
+
protected GenerateLibrariesContext(): Array<{
|
|
46
|
+
Name: string;
|
|
47
|
+
Description: string;
|
|
48
|
+
Items: Array<{
|
|
49
|
+
Name: string;
|
|
50
|
+
Content: string;
|
|
51
|
+
}>;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=MJRemoteOperationEntityServer.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJRemoteOperationEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJRemoteOperationEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,UAAU,EAAE,iBAAiB,EAAsB,MAAM,sBAAsB,CAAC;AAC3H,OAAO,EAAE,uBAAuB,EAAE,8CAA8C,EAAE,MAAM,+BAA+B,CAAC;AAOxH,+GAA+G;AAC/G,UAAU,4BAA4B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,8CAA8C,EAAE,CAAC;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,qBACa,6BAA8B,SAAQ,uBAAuB;IACtE;;;OAGG;IACI,mBAAmB,UAAS;gBAEvB,MAAM,EAAE,UAAU;IAS9B;;;OAGG;IACmB,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCzE,kIAAkI;IAClI,SAAS,CAAC,gBAAgB,IAAI,OAAO;IAQrC;;;;OAIG;IACU,YAAY,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAqClE,yFAAyF;IACzF,SAAS,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IActD,2HAA2H;IAC3H,SAAS,CAAC,wBAAwB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CAOtI"}
|
|
@@ -0,0 +1,148 @@
|
|
|
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
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { BaseEntity, EntityInfo, LogError, Metadata } from "@memberjunction/core";
|
|
11
|
+
import { MJRemoteOperationEntity } from "@memberjunction/core-entities";
|
|
12
|
+
import { RegisterClass } from "@memberjunction/global";
|
|
13
|
+
import { AIEngine } from "@memberjunction/aiengine";
|
|
14
|
+
import { AIPromptRunner } from "@memberjunction/ai-prompts";
|
|
15
|
+
import { AIPromptParams } from "@memberjunction/ai-core-plus";
|
|
16
|
+
import { DocumentationEngine } from "@memberjunction/doc-utils";
|
|
17
|
+
/**
|
|
18
|
+
* Server-only subclass for the `MJ: Remote Operations` entity — the RO-4 "AI-from-Description" half of the
|
|
19
|
+
* Remote Operations primitive. When an `AI`-generation operation's `Description` changes, `Save()` asks the
|
|
20
|
+
* `Generate Remote Operation Code` prompt to author the body of `InternalExecute` (against the ambient
|
|
21
|
+
* contract: typed `input`, `provider`, `user`, `context`), stores it in `Code`, records the libraries the
|
|
22
|
+
* body uses in `LibrariesObject`, and resets `CodeApprovalStatus` to `Pending` for human review. CodeGen's
|
|
23
|
+
* {@link import('@memberjunction/codegen-lib').RemoteOperationGeneratorBase} then emits the registered class
|
|
24
|
+
* from the approved `Code` + `LibrariesObject` — no hand-written subclass required.
|
|
25
|
+
*
|
|
26
|
+
* Mirrors `MJActionEntityServer` (the Generated-Actions pipeline); the library list is a JSONType field, so
|
|
27
|
+
* there is no junction CRUD — `this.LibrariesObject = ...` is the whole "manage libraries" step.
|
|
28
|
+
*/
|
|
29
|
+
let MJRemoteOperationEntityServer = class MJRemoteOperationEntityServer extends MJRemoteOperationEntity {
|
|
30
|
+
constructor(Entity) {
|
|
31
|
+
super(Entity);
|
|
32
|
+
/**
|
|
33
|
+
* Transient (never persisted) flag — set it before `Save()` to force regeneration even when `Description`
|
|
34
|
+
* is unchanged. Reset to false after every save, exactly like Action.ForceCodeGeneration.
|
|
35
|
+
*/
|
|
36
|
+
this.ForceCodeGeneration = false;
|
|
37
|
+
// Constructor runs before the entity provider is wired, so the global Metadata is the only check available.
|
|
38
|
+
const md = new Metadata(); // global-provider-ok: constructor-time provider-type check
|
|
39
|
+
if (md.ProviderType !== 'Database') {
|
|
40
|
+
throw new Error('MJRemoteOperationEntityServer is server/database-only — remove @memberjunction/core-entities-server from client applications.');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Save override: (re)generates the AI body when needed, within a transaction so a generation/save failure
|
|
45
|
+
* leaves no partial state.
|
|
46
|
+
*/
|
|
47
|
+
async Save(options) {
|
|
48
|
+
await AIEngine.Instance.Config(false, this.ContextCurrentUser);
|
|
49
|
+
await DocumentationEngine.Instance.Config(false, this.ContextCurrentUser);
|
|
50
|
+
const provider = this.ProviderToUse;
|
|
51
|
+
await provider.BeginTransaction();
|
|
52
|
+
try {
|
|
53
|
+
if (this.ShouldRegenerate()) {
|
|
54
|
+
const result = await this.GenerateCode();
|
|
55
|
+
if (!result.Success) {
|
|
56
|
+
throw new Error(`Failed to generate code for Remote Operation '${this.Name}': ${result.Comments}`);
|
|
57
|
+
}
|
|
58
|
+
this.Code = result.Code;
|
|
59
|
+
this.CodeComments = result.Comments;
|
|
60
|
+
this.CodeApprovalStatus = 'Pending'; // re-review required whenever the body changes
|
|
61
|
+
this.CodeApprovedAt = null;
|
|
62
|
+
this.CodeApprovedByUserID = null;
|
|
63
|
+
this.LibrariesObject = result.Libraries; // JSONType setter — serializes to the Libraries column
|
|
64
|
+
}
|
|
65
|
+
this.ForceCodeGeneration = false; // never persists past one Save
|
|
66
|
+
if (await super.Save(options)) {
|
|
67
|
+
await provider.CommitTransaction();
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
await provider.RollbackTransaction();
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
await provider.RollbackTransaction();
|
|
75
|
+
throw e;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** AI regeneration runs only for `GenerationType='AI'` ops whose `Description` changed (or new/forced) and that aren't locked. */
|
|
79
|
+
ShouldRegenerate() {
|
|
80
|
+
return (this.GenerationType === 'AI' &&
|
|
81
|
+
!this.CodeLocked &&
|
|
82
|
+
(this.GetFieldByName('Description').Dirty || !this.IsSaved || this.ForceCodeGeneration));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Asks the `Generate Remote Operation Code` prompt to author the body of `InternalExecute` from this op's
|
|
86
|
+
* Description + typed I/O contract + the available libraries. Returns the body, an explanation, and the
|
|
87
|
+
* declared libraries; never throws for a logical model failure (returns `Success: false`).
|
|
88
|
+
*/
|
|
89
|
+
async GenerateCode() {
|
|
90
|
+
try {
|
|
91
|
+
await AIEngine.Instance.Config(false, this.ContextCurrentUser);
|
|
92
|
+
const aiPrompt = AIEngine.Instance.Prompts.find((p) => p.Name === 'Generate Remote Operation Code');
|
|
93
|
+
if (!aiPrompt) {
|
|
94
|
+
throw new Error('Failed to find AI prompt template: "Generate Remote Operation Code"');
|
|
95
|
+
}
|
|
96
|
+
const runner = new AIPromptRunner();
|
|
97
|
+
const params = new AIPromptParams();
|
|
98
|
+
params.prompt = aiPrompt;
|
|
99
|
+
params.data = this.PreparePromptData();
|
|
100
|
+
params.contextUser = this.ContextCurrentUser;
|
|
101
|
+
const result = await runner.ExecutePrompt(params);
|
|
102
|
+
if (result.success && result.result) {
|
|
103
|
+
return {
|
|
104
|
+
Success: true,
|
|
105
|
+
Code: (result.result.code ?? '').trim(),
|
|
106
|
+
Comments: result.result.explanation ?? '',
|
|
107
|
+
Libraries: (result.result.libraries ?? [])
|
|
108
|
+
.filter((l) => !!l?.Library)
|
|
109
|
+
.map((l) => ({ Library: l.Library, ItemsUsed: l.ItemsUsed ?? [] })),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return { Success: false, Code: '', Comments: result.errorMessage ?? 'Failed to generate code', Libraries: [] };
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
LogError(e);
|
|
116
|
+
throw e;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Builds the template variables consumed by remote-operation-generation.template.md. */
|
|
120
|
+
PreparePromptData() {
|
|
121
|
+
return {
|
|
122
|
+
name: this.Name,
|
|
123
|
+
operationKey: this.OperationKey,
|
|
124
|
+
executionMode: this.ExecutionMode,
|
|
125
|
+
description: this.Description ?? '',
|
|
126
|
+
inputTypeName: this.InputTypeName ?? 'unknown',
|
|
127
|
+
inputTypeDefinition: this.InputTypeDefinition ?? '',
|
|
128
|
+
outputTypeName: this.OutputTypeName ?? 'unknown',
|
|
129
|
+
outputTypeDefinition: this.OutputTypeDefinition ?? '',
|
|
130
|
+
availableLibraries: this.GenerateLibrariesContext(),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/** The libraries an authored body may import from, with their documentation — reused verbatim from the Action pipeline. */
|
|
134
|
+
GenerateLibrariesContext() {
|
|
135
|
+
return DocumentationEngine.Instance.Libraries.map((library) => ({
|
|
136
|
+
Name: library.Name,
|
|
137
|
+
Description: library.Description,
|
|
138
|
+
Items: library.Items.map((item) => ({ Name: item.Name, Content: item.HTMLContent })),
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
MJRemoteOperationEntityServer = __decorate([
|
|
143
|
+
RegisterClass(BaseEntity, 'MJ: Remote Operations') // high priority — ensure this server subclass wins over the generated entity
|
|
144
|
+
,
|
|
145
|
+
__metadata("design:paramtypes", [EntityInfo])
|
|
146
|
+
], MJRemoteOperationEntityServer);
|
|
147
|
+
export { MJRemoteOperationEntityServer };
|
|
148
|
+
//# sourceMappingURL=MJRemoteOperationEntityServer.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJRemoteOperationEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJRemoteOperationEntityServer.server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,10 +27,12 @@ export * from './custom/MJAIBridgeProviderChannelEntityServer.server.js';
|
|
|
27
27
|
export * from './custom/MJAIAgentSessionBridgeEntityServer.server.js';
|
|
28
28
|
export * from './custom/MJAIAgentSessionBridgeParticipantEntityServer.server.js';
|
|
29
29
|
export * from './custom/MJAIRemoteBrowserProviderEntityServer.server.js';
|
|
30
|
+
export * from './custom/MJAISkillPermissionEntityServer.server.js';
|
|
30
31
|
export * from './custom/json-schema-lite.js';
|
|
31
32
|
export * from './custom/IntegrationLLMPKCallback.js';
|
|
32
33
|
export * from './custom/util.js';
|
|
33
34
|
export * from './engines/QueryEngineServer.js';
|
|
34
35
|
export * from './engines/QueryMatchResult.js';
|
|
35
36
|
export * from './engines/ComponentMetadataEngineServer.js';
|
|
37
|
+
export * from './custom/MJRemoteOperationEntityServer.server.js';
|
|
36
38
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,uDAAuD,CAAC;AACtE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AAAA,cAAc,+CAA+C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -27,10 +27,12 @@ export * from './custom/MJAIBridgeProviderChannelEntityServer.server.js';
|
|
|
27
27
|
export * from './custom/MJAIAgentSessionBridgeEntityServer.server.js';
|
|
28
28
|
export * from './custom/MJAIAgentSessionBridgeParticipantEntityServer.server.js';
|
|
29
29
|
export * from './custom/MJAIRemoteBrowserProviderEntityServer.server.js';
|
|
30
|
+
export * from './custom/MJAISkillPermissionEntityServer.server.js';
|
|
30
31
|
export * from './custom/json-schema-lite.js';
|
|
31
32
|
export * from './custom/IntegrationLLMPKCallback.js';
|
|
32
33
|
export * from './custom/util.js';
|
|
33
34
|
export * from './engines/QueryEngineServer.js';
|
|
34
35
|
export * from './engines/QueryMatchResult.js';
|
|
35
36
|
export * from './engines/ComponentMetadataEngineServer.js';
|
|
37
|
+
export * from './custom/MJRemoteOperationEntityServer.server.js';
|
|
36
38
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,uDAAuD,CAAC;AACtE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AAAA,cAAc,+CAA+C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/core-entities-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.44.0",
|
|
5
5
|
"description": "Entity subclasses for the metadata layer of MemberJunction that are only used on server side applications like MJAPI, distributed as part of each release of MemberJunction",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -21,29 +21,29 @@
|
|
|
21
21
|
"typescript": "^5.9.3"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@memberjunction/actions-base": "5.
|
|
25
|
-
"@memberjunction/ai": "5.
|
|
26
|
-
"@memberjunction/ai-core-plus": "5.
|
|
27
|
-
"@memberjunction/ai-engine-base": "5.
|
|
28
|
-
"@memberjunction/ai-prompts": "5.
|
|
29
|
-
"@memberjunction/ai-provider-bundle": "5.
|
|
30
|
-
"@memberjunction/ai-vector-dupe": "5.
|
|
31
|
-
"@memberjunction/ai-vectordb": "5.
|
|
32
|
-
"@memberjunction/ai-vectors-memory": "5.
|
|
33
|
-
"@memberjunction/aiengine": "5.
|
|
34
|
-
"@memberjunction/core": "5.
|
|
35
|
-
"@memberjunction/core-entities": "5.
|
|
36
|
-
"@memberjunction/doc-utils": "5.
|
|
37
|
-
"@memberjunction/generic-database-provider": "5.
|
|
38
|
-
"@memberjunction/global": "5.
|
|
39
|
-
"@memberjunction/integration-engine": "5.
|
|
40
|
-
"@memberjunction/integration-pk-classifier": "5.
|
|
41
|
-
"@memberjunction/skip-types": "5.
|
|
42
|
-
"@memberjunction/sql-converter": "5.
|
|
43
|
-
"@memberjunction/sql-dialect": "5.
|
|
44
|
-
"@memberjunction/sql-parser": "5.
|
|
45
|
-
"@memberjunction/sqlserver-dataprovider": "5.
|
|
46
|
-
"@memberjunction/tag-engine": "5.
|
|
24
|
+
"@memberjunction/actions-base": "5.44.0",
|
|
25
|
+
"@memberjunction/ai": "5.44.0",
|
|
26
|
+
"@memberjunction/ai-core-plus": "5.44.0",
|
|
27
|
+
"@memberjunction/ai-engine-base": "5.44.0",
|
|
28
|
+
"@memberjunction/ai-prompts": "5.44.0",
|
|
29
|
+
"@memberjunction/ai-provider-bundle": "5.44.0",
|
|
30
|
+
"@memberjunction/ai-vector-dupe": "5.44.0",
|
|
31
|
+
"@memberjunction/ai-vectordb": "5.44.0",
|
|
32
|
+
"@memberjunction/ai-vectors-memory": "5.44.0",
|
|
33
|
+
"@memberjunction/aiengine": "5.44.0",
|
|
34
|
+
"@memberjunction/core": "5.44.0",
|
|
35
|
+
"@memberjunction/core-entities": "5.44.0",
|
|
36
|
+
"@memberjunction/doc-utils": "5.44.0",
|
|
37
|
+
"@memberjunction/generic-database-provider": "5.44.0",
|
|
38
|
+
"@memberjunction/global": "5.44.0",
|
|
39
|
+
"@memberjunction/integration-engine": "5.44.0",
|
|
40
|
+
"@memberjunction/integration-pk-classifier": "5.44.0",
|
|
41
|
+
"@memberjunction/skip-types": "5.44.0",
|
|
42
|
+
"@memberjunction/sql-converter": "5.44.0",
|
|
43
|
+
"@memberjunction/sql-dialect": "5.44.0",
|
|
44
|
+
"@memberjunction/sql-parser": "5.44.0",
|
|
45
|
+
"@memberjunction/sqlserver-dataprovider": "5.44.0",
|
|
46
|
+
"@memberjunction/tag-engine": "5.44.0",
|
|
47
47
|
"nunjucks": "3.2.4",
|
|
48
48
|
"rxjs": "~7.8.1",
|
|
49
49
|
"zod": "~3.24.4"
|