at-shared-types 1.2.6 → 1.2.7
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/dist/ai/protocol/ids.d.ts +0 -10
- package/dist/ai/protocol/ids.d.ts.map +1 -1
- package/dist/protocol.cjs +4 -13
- package/dist/protocol.cjs.map +1 -1
- package/dist/protocol.mjs +4 -13
- package/dist/protocol.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -4,24 +4,14 @@ type Brand<T, B extends string> = T & {
|
|
|
4
4
|
export type ATAICapabilityID = Brand<string, "ATAICapabilityID">;
|
|
5
5
|
export type ATAIPromptID = Brand<string, "ATAIPromptID">;
|
|
6
6
|
export declare const ATAIID: {
|
|
7
|
-
/** Validate & brand an existing capability id (throws if invalid). */
|
|
8
7
|
readonly validateCapability: (id: string) => ATAICapabilityID;
|
|
9
|
-
/** Validate & brand an existing prompt id (throws if invalid). */
|
|
10
8
|
readonly validatePrompt: (id: string) => ATAIPromptID;
|
|
11
|
-
/**
|
|
12
|
-
* Build a capability id from parts (then validates & brands).
|
|
13
|
-
* Format: cap.<app>.<area>.<object>.<verb>
|
|
14
|
-
*/
|
|
15
9
|
readonly makeCapability: (parts: {
|
|
16
10
|
app: string;
|
|
17
11
|
area: string;
|
|
18
12
|
target: string;
|
|
19
13
|
action: string;
|
|
20
14
|
}) => ATAICapabilityID;
|
|
21
|
-
/**
|
|
22
|
-
* Build a prompt id from parts (then validates & brands).
|
|
23
|
-
* Format: prompt.<app>.<area>.<object>.<verb>.v<major>
|
|
24
|
-
*/
|
|
25
15
|
readonly makePrompt: (parts: {
|
|
26
16
|
app: string;
|
|
27
17
|
area: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/ai/protocol/ids.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/ai/protocol/ids.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAuCzD,eAAO,MAAM,MAAM;sCACQ,MAAM,KAAG,gBAAgB;kCAK7B,MAAM,KAAG,YAAY;qCAKlB;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAClB,KAAG,gBAAgB;iCAKF;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,CAAC,EAAE,MAAM,CAAC;KACb,KAAG,YAAY;CAKV,CAAC"}
|
package/dist/protocol.cjs
CHANGED
|
@@ -34,9 +34,10 @@ var ATAPIErrorCodeMap = {
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
// src/ai/protocol/ids.ts
|
|
37
|
+
var SEG = `[a-z0-9_]+`;
|
|
37
38
|
var RX = {
|
|
38
|
-
capability:
|
|
39
|
-
prompt:
|
|
39
|
+
capability: new RegExp(`^cap\\.${SEG}(?:\\.${SEG}){3,}$`, "i"),
|
|
40
|
+
prompt: new RegExp(`^prompt\\.${SEG}(?:\\.${SEG}){3,}\\.v[0-9]+$`, "i")
|
|
40
41
|
};
|
|
41
42
|
function validate(kind, id) {
|
|
42
43
|
if (!RX[kind].test(id)) {
|
|
@@ -44,34 +45,24 @@ function validate(kind, id) {
|
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
function normalizeSegment(seg) {
|
|
47
|
-
return seg.trim().toLowerCase().replace(/[\
|
|
48
|
+
return seg.trim().toLowerCase().replace(/[\s-]+/g, "_").replace(/[^a-z0-9_]/g, "").replace(/_+/g, "_").replace(/^_+|_+$/g, "");
|
|
48
49
|
}
|
|
49
50
|
function joinSegments(...segs) {
|
|
50
51
|
return segs.map(normalizeSegment).filter(Boolean).join(".");
|
|
51
52
|
}
|
|
52
53
|
var ATAIID = {
|
|
53
|
-
/** Validate & brand an existing capability id (throws if invalid). */
|
|
54
54
|
validateCapability(id) {
|
|
55
55
|
validate("capability", id);
|
|
56
56
|
return id;
|
|
57
57
|
},
|
|
58
|
-
/** Validate & brand an existing prompt id (throws if invalid). */
|
|
59
58
|
validatePrompt(id) {
|
|
60
59
|
validate("prompt", id);
|
|
61
60
|
return id;
|
|
62
61
|
},
|
|
63
|
-
/**
|
|
64
|
-
* Build a capability id from parts (then validates & brands).
|
|
65
|
-
* Format: cap.<app>.<area>.<object>.<verb>
|
|
66
|
-
*/
|
|
67
62
|
makeCapability(parts) {
|
|
68
63
|
const id = `cap.${joinSegments(parts.app, parts.area, parts.target, parts.action)}`;
|
|
69
64
|
return ATAIID.validateCapability(id);
|
|
70
65
|
},
|
|
71
|
-
/**
|
|
72
|
-
* Build a prompt id from parts (then validates & brands).
|
|
73
|
-
* Format: prompt.<app>.<area>.<object>.<verb>.v<major>
|
|
74
|
-
*/
|
|
75
66
|
makePrompt(parts) {
|
|
76
67
|
const major = Math.max(0, Math.floor(parts.v));
|
|
77
68
|
const id = `prompt.${joinSegments(parts.app, parts.area, parts.target, parts.action)}.v${major}`;
|
package/dist/protocol.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/protocol.ts","../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts","../src/ai/protocol/prompts.ts","../src/ai/protocol/capabilities.ts"],"sourcesContent":["export * from \"./core/protocol/errors\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\r\n\r\nimport { ATAIID } from \"./ai/protocol/ids\";\r\nimport { ATAIPrompts } from \"./ai/protocol/prompts\";\r\nimport { ATAICapabilities } from \"./ai/protocol/capabilities\";\r\n\r\nexport const ATAI = {\r\n ID: ATAIID,\r\n Prompts: ATAIPrompts,\r\n Capabilities: ATAICapabilities,\r\n} as const;\r\n\r\nexport const ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n AI: ATAI,\r\n} as const;\r\n\r\nexport type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\nexport type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n\r\nexport type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n","export const ATAPIErrorCodeMap = {\r\n AI_SESSION_EXPIRED: 4501,\r\n AI_SESSION_NOT_FOUND: 4502,\r\n AI_REQUEST_CONTEXT_MISSING: 4503,\r\n} as const;\r\n\r\nexport type ATAPIErrorCode = typeof ATAPIErrorCodeMap[keyof typeof ATAPIErrorCodeMap];\r\n","type Brand<T, B extends string> = T & { readonly __brand: B };\r\n\r\nexport type ATAICapabilityID = Brand<string, \"ATAICapabilityID\">;\r\nexport type ATAIPromptID = Brand<string, \"ATAIPromptID\">;\r\n\r\nconst RX = {\r\n capability:
|
|
1
|
+
{"version":3,"sources":["../src/protocol.ts","../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts","../src/ai/protocol/prompts.ts","../src/ai/protocol/capabilities.ts"],"sourcesContent":["export * from \"./core/protocol/errors\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\r\n\r\nimport { ATAIID } from \"./ai/protocol/ids\";\r\nimport { ATAIPrompts } from \"./ai/protocol/prompts\";\r\nimport { ATAICapabilities } from \"./ai/protocol/capabilities\";\r\n\r\nexport const ATAI = {\r\n ID: ATAIID,\r\n Prompts: ATAIPrompts,\r\n Capabilities: ATAICapabilities,\r\n} as const;\r\n\r\nexport const ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n AI: ATAI,\r\n} as const;\r\n\r\nexport type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\nexport type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n\r\nexport type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n","export const ATAPIErrorCodeMap = {\r\n AI_SESSION_EXPIRED: 4501,\r\n AI_SESSION_NOT_FOUND: 4502,\r\n AI_REQUEST_CONTEXT_MISSING: 4503,\r\n} as const;\r\n\r\nexport type ATAPIErrorCode = typeof ATAPIErrorCodeMap[keyof typeof ATAPIErrorCodeMap];\r\n","type Brand<T, B extends string> = T & { readonly __brand: B };\r\n\r\nexport type ATAICapabilityID = Brand<string, \"ATAICapabilityID\">;\r\nexport type ATAIPromptID = Brand<string, \"ATAIPromptID\">;\r\n\r\n// allow underscores inside each segment\r\nconst SEG = `[a-z0-9_]+`;\r\n\r\nconst RX = {\r\n capability: new RegExp(`^cap\\\\.${SEG}(?:\\\\.${SEG}){3,}$`, \"i\"),\r\n prompt: new RegExp(`^prompt\\\\.${SEG}(?:\\\\.${SEG}){3,}\\\\.v[0-9]+$`, \"i\"),\r\n} as const;\r\n\r\nfunction validate(kind: keyof typeof RX, id: string): void {\r\n if (!RX[kind].test(id)) {\r\n throw new Error(`[AI-PROTOCOL] Invalid ${kind} id: \"${id}\"`);\r\n }\r\n}\r\n\r\n/**\r\n * Normalize a segment for IDs (snake_case).\r\n * - trims\r\n * - lowercases\r\n * - converts spaces and dashes to underscores\r\n * - removes illegal chars (keeps a-z0-9 and _)\r\n * - collapses multiple underscores\r\n * - trims leading/trailing underscores\r\n */\r\nfunction normalizeSegment(seg: string): string {\r\n return seg\r\n .trim()\r\n .toLowerCase()\r\n .replace(/[\\s-]+/g, \"_\") // spaces/dashes -> _\r\n .replace(/[^a-z0-9_]/g, \"\") // keep only a-z0-9_\r\n .replace(/_+/g, \"_\") // collapse __\r\n .replace(/^_+|_+$/g, \"\"); // trim edges\r\n}\r\n\r\nfunction joinSegments(...segs: string[]): string {\r\n return segs.map(normalizeSegment).filter(Boolean).join(\".\");\r\n}\r\n\r\nexport const ATAIID = {\r\n validateCapability(id: string): ATAICapabilityID {\r\n validate(\"capability\", id);\r\n return id as ATAICapabilityID;\r\n },\r\n\r\n validatePrompt(id: string): ATAIPromptID {\r\n validate(\"prompt\", id);\r\n return id as ATAIPromptID;\r\n },\r\n\r\n makeCapability(parts: {\r\n app: string;\r\n area: string;\r\n target: string;\r\n action: string;\r\n }): ATAICapabilityID {\r\n const id = `cap.${joinSegments(parts.app, parts.area, parts.target, parts.action)}`;\r\n return ATAIID.validateCapability(id);\r\n },\r\n\r\n makePrompt(parts: {\r\n app: string;\r\n area: string;\r\n target: string;\r\n action: string;\r\n v: number;\r\n }): ATAIPromptID {\r\n const major = Math.max(0, Math.floor(parts.v));\r\n const id = `prompt.${joinSegments(parts.app, parts.area, parts.target, parts.action)}.v${major}`;\r\n return ATAIID.validatePrompt(id);\r\n },\r\n} as const;\r\n","import { ATAIID } from \"./ids\";\r\n\r\nexport const ATAIPrompts = {\r\n BPMS: {\r\n SYSTEM: {\r\n INTENT_DETECTION_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"system\",\r\n target: \"intent\",\r\n action: \"detection\",\r\n v: 1\r\n }),\r\n },\r\n FORMAKER: {\r\n VALUE_GENERATE_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"formmaker\",\r\n target: \"value\",\r\n action: \"generate\",\r\n v: 1,\r\n }),\r\n },\r\n APIMANAGER: {\r\n POST_RESPONSE_SCRIPT_GENERATE_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"apimanager\",\r\n target: \"post_response_script\",\r\n action: \"generate\",\r\n v: 1,\r\n }),\r\n },\r\n },\r\n} as const;\r\n","import { ATAIID } from \"./ids\";\r\n\r\nexport const ATAICapabilities = {\r\n BPMS: {\r\n FORMAKER: {\r\n FORM_GENERATE: ATAIID.makeCapability({\r\n app: \"bpms\",\r\n area: \"formmaker\",\r\n target: \"form\",\r\n action: \"generate\",\r\n }),\r\n },\r\n APIMANAGER: {\r\n POST_RESPONSE_SCRIPT_GENERATE: ATAIID.makeCapability({\r\n app: \"bpms\",\r\n area: \"apimanager\",\r\n target: \"post_response_script\",\r\n action: \"generate\",\r\n }),\r\n },\r\n },\r\n} as const;\r\n"],"mappings":"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","names":[]}
|
package/dist/protocol.mjs
CHANGED
|
@@ -8,9 +8,10 @@ var ATAPIErrorCodeMap = {
|
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
// src/ai/protocol/ids.ts
|
|
11
|
+
var SEG = `[a-z0-9_]+`;
|
|
11
12
|
var RX = {
|
|
12
|
-
capability:
|
|
13
|
-
prompt:
|
|
13
|
+
capability: new RegExp(`^cap\\.${SEG}(?:\\.${SEG}){3,}$`, "i"),
|
|
14
|
+
prompt: new RegExp(`^prompt\\.${SEG}(?:\\.${SEG}){3,}\\.v[0-9]+$`, "i")
|
|
14
15
|
};
|
|
15
16
|
function validate(kind, id) {
|
|
16
17
|
if (!RX[kind].test(id)) {
|
|
@@ -18,34 +19,24 @@ function validate(kind, id) {
|
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
function normalizeSegment(seg) {
|
|
21
|
-
return seg.trim().toLowerCase().replace(/[\
|
|
22
|
+
return seg.trim().toLowerCase().replace(/[\s-]+/g, "_").replace(/[^a-z0-9_]/g, "").replace(/_+/g, "_").replace(/^_+|_+$/g, "");
|
|
22
23
|
}
|
|
23
24
|
function joinSegments(...segs) {
|
|
24
25
|
return segs.map(normalizeSegment).filter(Boolean).join(".");
|
|
25
26
|
}
|
|
26
27
|
var ATAIID = {
|
|
27
|
-
/** Validate & brand an existing capability id (throws if invalid). */
|
|
28
28
|
validateCapability(id) {
|
|
29
29
|
validate("capability", id);
|
|
30
30
|
return id;
|
|
31
31
|
},
|
|
32
|
-
/** Validate & brand an existing prompt id (throws if invalid). */
|
|
33
32
|
validatePrompt(id) {
|
|
34
33
|
validate("prompt", id);
|
|
35
34
|
return id;
|
|
36
35
|
},
|
|
37
|
-
/**
|
|
38
|
-
* Build a capability id from parts (then validates & brands).
|
|
39
|
-
* Format: cap.<app>.<area>.<object>.<verb>
|
|
40
|
-
*/
|
|
41
36
|
makeCapability(parts) {
|
|
42
37
|
const id = `cap.${joinSegments(parts.app, parts.area, parts.target, parts.action)}`;
|
|
43
38
|
return ATAIID.validateCapability(id);
|
|
44
39
|
},
|
|
45
|
-
/**
|
|
46
|
-
* Build a prompt id from parts (then validates & brands).
|
|
47
|
-
* Format: prompt.<app>.<area>.<object>.<verb>.v<major>
|
|
48
|
-
*/
|
|
49
40
|
makePrompt(parts) {
|
|
50
41
|
const major = Math.max(0, Math.floor(parts.v));
|
|
51
42
|
const id = `prompt.${joinSegments(parts.app, parts.area, parts.target, parts.action)}.v${major}`;
|
package/dist/protocol.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts","../src/ai/protocol/prompts.ts","../src/ai/protocol/capabilities.ts","../src/protocol.ts"],"sourcesContent":["export const ATAPIErrorCodeMap = {\r\n AI_SESSION_EXPIRED: 4501,\r\n AI_SESSION_NOT_FOUND: 4502,\r\n AI_REQUEST_CONTEXT_MISSING: 4503,\r\n} as const;\r\n\r\nexport type ATAPIErrorCode = typeof ATAPIErrorCodeMap[keyof typeof ATAPIErrorCodeMap];\r\n","type Brand<T, B extends string> = T & { readonly __brand: B };\r\n\r\nexport type ATAICapabilityID = Brand<string, \"ATAICapabilityID\">;\r\nexport type ATAIPromptID = Brand<string, \"ATAIPromptID\">;\r\n\r\nconst RX = {\r\n capability:
|
|
1
|
+
{"version":3,"sources":["../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts","../src/ai/protocol/prompts.ts","../src/ai/protocol/capabilities.ts","../src/protocol.ts"],"sourcesContent":["export const ATAPIErrorCodeMap = {\r\n AI_SESSION_EXPIRED: 4501,\r\n AI_SESSION_NOT_FOUND: 4502,\r\n AI_REQUEST_CONTEXT_MISSING: 4503,\r\n} as const;\r\n\r\nexport type ATAPIErrorCode = typeof ATAPIErrorCodeMap[keyof typeof ATAPIErrorCodeMap];\r\n","type Brand<T, B extends string> = T & { readonly __brand: B };\r\n\r\nexport type ATAICapabilityID = Brand<string, \"ATAICapabilityID\">;\r\nexport type ATAIPromptID = Brand<string, \"ATAIPromptID\">;\r\n\r\n// allow underscores inside each segment\r\nconst SEG = `[a-z0-9_]+`;\r\n\r\nconst RX = {\r\n capability: new RegExp(`^cap\\\\.${SEG}(?:\\\\.${SEG}){3,}$`, \"i\"),\r\n prompt: new RegExp(`^prompt\\\\.${SEG}(?:\\\\.${SEG}){3,}\\\\.v[0-9]+$`, \"i\"),\r\n} as const;\r\n\r\nfunction validate(kind: keyof typeof RX, id: string): void {\r\n if (!RX[kind].test(id)) {\r\n throw new Error(`[AI-PROTOCOL] Invalid ${kind} id: \"${id}\"`);\r\n }\r\n}\r\n\r\n/**\r\n * Normalize a segment for IDs (snake_case).\r\n * - trims\r\n * - lowercases\r\n * - converts spaces and dashes to underscores\r\n * - removes illegal chars (keeps a-z0-9 and _)\r\n * - collapses multiple underscores\r\n * - trims leading/trailing underscores\r\n */\r\nfunction normalizeSegment(seg: string): string {\r\n return seg\r\n .trim()\r\n .toLowerCase()\r\n .replace(/[\\s-]+/g, \"_\") // spaces/dashes -> _\r\n .replace(/[^a-z0-9_]/g, \"\") // keep only a-z0-9_\r\n .replace(/_+/g, \"_\") // collapse __\r\n .replace(/^_+|_+$/g, \"\"); // trim edges\r\n}\r\n\r\nfunction joinSegments(...segs: string[]): string {\r\n return segs.map(normalizeSegment).filter(Boolean).join(\".\");\r\n}\r\n\r\nexport const ATAIID = {\r\n validateCapability(id: string): ATAICapabilityID {\r\n validate(\"capability\", id);\r\n return id as ATAICapabilityID;\r\n },\r\n\r\n validatePrompt(id: string): ATAIPromptID {\r\n validate(\"prompt\", id);\r\n return id as ATAIPromptID;\r\n },\r\n\r\n makeCapability(parts: {\r\n app: string;\r\n area: string;\r\n target: string;\r\n action: string;\r\n }): ATAICapabilityID {\r\n const id = `cap.${joinSegments(parts.app, parts.area, parts.target, parts.action)}`;\r\n return ATAIID.validateCapability(id);\r\n },\r\n\r\n makePrompt(parts: {\r\n app: string;\r\n area: string;\r\n target: string;\r\n action: string;\r\n v: number;\r\n }): ATAIPromptID {\r\n const major = Math.max(0, Math.floor(parts.v));\r\n const id = `prompt.${joinSegments(parts.app, parts.area, parts.target, parts.action)}.v${major}`;\r\n return ATAIID.validatePrompt(id);\r\n },\r\n} as const;\r\n","import { ATAIID } from \"./ids\";\r\n\r\nexport const ATAIPrompts = {\r\n BPMS: {\r\n SYSTEM: {\r\n INTENT_DETECTION_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"system\",\r\n target: \"intent\",\r\n action: \"detection\",\r\n v: 1\r\n }),\r\n },\r\n FORMAKER: {\r\n VALUE_GENERATE_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"formmaker\",\r\n target: \"value\",\r\n action: \"generate\",\r\n v: 1,\r\n }),\r\n },\r\n APIMANAGER: {\r\n POST_RESPONSE_SCRIPT_GENERATE_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"apimanager\",\r\n target: \"post_response_script\",\r\n action: \"generate\",\r\n v: 1,\r\n }),\r\n },\r\n },\r\n} as const;\r\n","import { ATAIID } from \"./ids\";\r\n\r\nexport const ATAICapabilities = {\r\n BPMS: {\r\n FORMAKER: {\r\n FORM_GENERATE: ATAIID.makeCapability({\r\n app: \"bpms\",\r\n area: \"formmaker\",\r\n target: \"form\",\r\n action: \"generate\",\r\n }),\r\n },\r\n APIMANAGER: {\r\n POST_RESPONSE_SCRIPT_GENERATE: ATAIID.makeCapability({\r\n app: \"bpms\",\r\n area: \"apimanager\",\r\n target: \"post_response_script\",\r\n action: \"generate\",\r\n }),\r\n },\r\n },\r\n} as const;\r\n","export * from \"./core/protocol/errors\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\r\n\r\nimport { ATAIID } from \"./ai/protocol/ids\";\r\nimport { ATAIPrompts } from \"./ai/protocol/prompts\";\r\nimport { ATAICapabilities } from \"./ai/protocol/capabilities\";\r\n\r\nexport const ATAI = {\r\n ID: ATAIID,\r\n Prompts: ATAIPrompts,\r\n Capabilities: ATAICapabilities,\r\n} as const;\r\n\r\nexport const ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n AI: ATAI,\r\n} as const;\r\n\r\nexport type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\nexport type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n\r\nexport type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n"],"mappings":";;;AAAO,IAAM,oBAAoB;AAAA,EAC7B,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,4BAA4B;AAChC;;;ACEA,IAAM,MAAM;AAEZ,IAAM,KAAK;AAAA,EACP,YAAY,IAAI,OAAO,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG;AAAA,EAC7D,QAAQ,IAAI,OAAO,aAAa,GAAG,SAAS,GAAG,oBAAoB,GAAG;AAC1E;AAEA,SAAS,SAAS,MAAuB,IAAkB;AACvD,MAAI,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG;AACpB,UAAM,IAAI,MAAM,yBAAyB,IAAI,SAAS,EAAE,GAAG;AAAA,EAC/D;AACJ;AAWA,SAAS,iBAAiB,KAAqB;AAC3C,SAAO,IACF,KAAK,EACL,YAAY,EACZ,QAAQ,WAAW,GAAG,EACtB,QAAQ,eAAe,EAAE,EACzB,QAAQ,OAAO,GAAG,EAClB,QAAQ,YAAY,EAAE;AAC/B;AAEA,SAAS,gBAAgB,MAAwB;AAC7C,SAAO,KAAK,IAAI,gBAAgB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAC9D;AAEO,IAAM,SAAS;AAAA,EAClB,mBAAmB,IAA8B;AAC7C,aAAS,cAAc,EAAE;AACzB,WAAO;AAAA,EACX;AAAA,EAEA,eAAe,IAA0B;AACrC,aAAS,UAAU,EAAE;AACrB,WAAO;AAAA,EACX;AAAA,EAEA,eAAe,OAKM;AACjB,UAAM,KAAK,OAAO,aAAa,MAAM,KAAK,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM,CAAC;AACjF,WAAO,OAAO,mBAAmB,EAAE;AAAA,EACvC;AAAA,EAEA,WAAW,OAMM;AACb,UAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,CAAC,CAAC;AAC7C,UAAM,KAAK,UAAU,aAAa,MAAM,KAAK,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM,CAAC,KAAK,KAAK;AAC9F,WAAO,OAAO,eAAe,EAAE;AAAA,EACnC;AACJ;;;ACxEO,IAAM,cAAc;AAAA,EACvB,MAAM;AAAA,IACF,QAAQ;AAAA,MACJ,qBAAqB,OAAO,WAAW;AAAA,QACnC,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,GAAG;AAAA,MACP,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AAAA,MACN,mBAAmB,OAAO,WAAW;AAAA,QACjC,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,GAAG;AAAA,MACP,CAAC;AAAA,IACL;AAAA,IACA,YAAY;AAAA,MACR,kCAAkC,OAAO,WAAW;AAAA,QAChD,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,GAAG;AAAA,MACP,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;;;AC9BO,IAAM,mBAAmB;AAAA,EAC5B,MAAM;AAAA,IACF,UAAU;AAAA,MACN,eAAe,OAAO,eAAe;AAAA,QACjC,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ,CAAC;AAAA,IACL;AAAA,IACA,YAAY;AAAA,MACR,+BAA+B,OAAO,eAAe;AAAA,QACjD,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;;;ACbO,IAAM,OAAO;AAAA,EAChB,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,cAAc;AAClB;AAEO,IAAM,aAAa;AAAA,EACtB;AAAA,EACA,IAAI;AACR;","names":[]}
|