at-shared-types 1.2.5 → 1.2.6
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/protocol.cjs +8 -7
- package/dist/protocol.cjs.map +1 -1
- package/dist/protocol.d.ts +70 -31
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.mjs +7 -6
- package/dist/protocol.mjs.map +1 -1
- package/package.json +1 -1
package/dist/protocol.cjs
CHANGED
|
@@ -20,7 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/protocol.ts
|
|
21
21
|
var protocol_exports = {};
|
|
22
22
|
__export(protocol_exports, {
|
|
23
|
-
|
|
23
|
+
ATAI: () => ATAI,
|
|
24
24
|
ATAPIErrorCodeMap: () => ATAPIErrorCodeMap,
|
|
25
25
|
ATProtocol: () => ATProtocol
|
|
26
26
|
});
|
|
@@ -135,17 +135,18 @@ var ATAICapabilities = {
|
|
|
135
135
|
};
|
|
136
136
|
|
|
137
137
|
// src/protocol.ts
|
|
138
|
+
var ATAI = {
|
|
139
|
+
ID: ATAIID,
|
|
140
|
+
Prompts: ATAIPrompts,
|
|
141
|
+
Capabilities: ATAICapabilities
|
|
142
|
+
};
|
|
138
143
|
var ATProtocol = {
|
|
139
144
|
ATAPIErrorCodeMap,
|
|
140
|
-
|
|
141
|
-
ai: ATAIID
|
|
142
|
-
},
|
|
143
|
-
ATAIPrompts,
|
|
144
|
-
ATAICapabilities
|
|
145
|
+
AI: ATAI
|
|
145
146
|
};
|
|
146
147
|
// Annotate the CommonJS export names for ESM import in node:
|
|
147
148
|
0 && (module.exports = {
|
|
148
|
-
|
|
149
|
+
ATAI,
|
|
149
150
|
ATAPIErrorCodeMap,
|
|
150
151
|
ATProtocol
|
|
151
152
|
});
|
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\
|
|
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: /^cap\\.[a-z0-9]+(?:\\.[a-z0-9]+){3,}$/i,\r\n prompt: /^prompt\\.[a-z0-9]+(?:\\.[a-z0-9]+){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.\r\n * Keep it strict: IDs should be stable, grep-friendly, and predictable.\r\n * - trims\r\n * - lowercases\r\n * - converts spaces/underscores to dots\r\n * - removes illegal chars (keeps a-z0-9 and dots)\r\n * - collapses multiple dots\r\n */\r\nfunction normalizeSegment(seg: string): string {\r\n return seg\r\n .trim()\r\n .toLowerCase()\r\n .replace(/[\\s_]+/g, \".\")\r\n .replace(/[^a-z0-9.]/g, \"\")\r\n .replace(/\\.+/g, \".\")\r\n .replace(/^\\.+|\\.+$/g, \"\");\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 /** Validate & brand an existing capability id (throws if invalid). */\r\n validateCapability(id: string): ATAICapabilityID {\r\n validate(\"capability\", id);\r\n return id as ATAICapabilityID;\r\n },\r\n\r\n /** Validate & brand an existing prompt id (throws if invalid). */\r\n validatePrompt(id: string): ATAIPromptID {\r\n validate(\"prompt\", id);\r\n return id as ATAIPromptID;\r\n },\r\n\r\n /**\r\n * Build a capability id from parts (then validates & brands).\r\n * Format: cap.<app>.<area>.<object>.<verb>\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 /**\r\n * Build a prompt id from parts (then validates & brands).\r\n * Format: prompt.<app>.<area>.<object>.<verb>.v<major>\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; // major version\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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,oBAAoB;AAAA,EAC7B,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,4BAA4B;AAChC;;;ACCA,IAAM,KAAK;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AACZ;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,QAAQ,GAAG,EACnB,QAAQ,cAAc,EAAE;AACjC;AAEA,SAAS,gBAAgB,MAAwB;AAC7C,SAAO,KAAK,IAAI,gBAAgB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAC9D;AAEO,IAAM,SAAS;AAAA;AAAA,EAElB,mBAAmB,IAA8B;AAC7C,aAAS,cAAc,EAAE;AACzB,WAAO;AAAA,EACX;AAAA;AAAA,EAGA,eAAe,IAA0B;AACrC,aAAS,UAAU,EAAE;AACrB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe,OAKM;AACjB,UAAM,KAAK,OAAO,aAAa,MAAM,KAAK,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM,CAAC;AACjF,WAAO,OAAO,mBAAmB,EAAE;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,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;;;AC/EO,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;;;AJbO,IAAM,OAAO;AAAA,EAChB,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,cAAc;AAClB;AAEO,IAAM,aAAa;AAAA,EACtB;AAAA,EACA,IAAI;AACR;","names":[]}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -1,57 +1,96 @@
|
|
|
1
1
|
export * from "./core/protocol/errors";
|
|
2
|
-
export
|
|
2
|
+
export declare const ATAI: {
|
|
3
|
+
readonly ID: {
|
|
4
|
+
readonly validateCapability: (id: string) => import("./ai/protocol/ids").ATAICapabilityID;
|
|
5
|
+
readonly validatePrompt: (id: string) => import("./ai/protocol/ids").ATAIPromptID;
|
|
6
|
+
readonly makeCapability: (parts: {
|
|
7
|
+
app: string;
|
|
8
|
+
area: string;
|
|
9
|
+
target: string;
|
|
10
|
+
action: string;
|
|
11
|
+
}) => import("./ai/protocol/ids").ATAICapabilityID;
|
|
12
|
+
readonly makePrompt: (parts: {
|
|
13
|
+
app: string;
|
|
14
|
+
area: string;
|
|
15
|
+
target: string;
|
|
16
|
+
action: string;
|
|
17
|
+
v: number;
|
|
18
|
+
}) => import("./ai/protocol/ids").ATAIPromptID;
|
|
19
|
+
};
|
|
20
|
+
readonly Prompts: {
|
|
21
|
+
readonly BPMS: {
|
|
22
|
+
readonly SYSTEM: {
|
|
23
|
+
readonly INTENT_DETECTION_V1: import("./ai/protocol/ids").ATAIPromptID;
|
|
24
|
+
};
|
|
25
|
+
readonly FORMAKER: {
|
|
26
|
+
readonly VALUE_GENERATE_V1: import("./ai/protocol/ids").ATAIPromptID;
|
|
27
|
+
};
|
|
28
|
+
readonly APIMANAGER: {
|
|
29
|
+
readonly POST_RESPONSE_SCRIPT_GENERATE_V1: import("./ai/protocol/ids").ATAIPromptID;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
readonly Capabilities: {
|
|
34
|
+
readonly BPMS: {
|
|
35
|
+
readonly FORMAKER: {
|
|
36
|
+
readonly FORM_GENERATE: import("./ai/protocol/ids").ATAICapabilityID;
|
|
37
|
+
};
|
|
38
|
+
readonly APIMANAGER: {
|
|
39
|
+
readonly POST_RESPONSE_SCRIPT_GENERATE: import("./ai/protocol/ids").ATAICapabilityID;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
};
|
|
3
44
|
export declare const ATProtocol: {
|
|
4
45
|
readonly ATAPIErrorCodeMap: {
|
|
5
46
|
readonly AI_SESSION_EXPIRED: 4501;
|
|
6
47
|
readonly AI_SESSION_NOT_FOUND: 4502;
|
|
7
48
|
readonly AI_REQUEST_CONTEXT_MISSING: 4503;
|
|
8
49
|
};
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly validateCapability: (id: string) => import("./protocol").ATAICapabilityID;
|
|
12
|
-
readonly validatePrompt: (id: string) => import("./protocol").ATAIPromptID;
|
|
50
|
+
readonly AI: {
|
|
51
|
+
readonly ID: {
|
|
52
|
+
readonly validateCapability: (id: string) => import("./ai/protocol/ids").ATAICapabilityID;
|
|
53
|
+
readonly validatePrompt: (id: string) => import("./ai/protocol/ids").ATAIPromptID;
|
|
13
54
|
readonly makeCapability: (parts: {
|
|
14
55
|
app: string;
|
|
15
56
|
area: string;
|
|
16
57
|
target: string;
|
|
17
58
|
action: string;
|
|
18
|
-
}) => import("./protocol").ATAICapabilityID;
|
|
59
|
+
}) => import("./ai/protocol/ids").ATAICapabilityID;
|
|
19
60
|
readonly makePrompt: (parts: {
|
|
20
61
|
app: string;
|
|
21
62
|
area: string;
|
|
22
63
|
target: string;
|
|
23
64
|
action: string;
|
|
24
65
|
v: number;
|
|
25
|
-
}) => import("./protocol").ATAIPromptID;
|
|
66
|
+
}) => import("./ai/protocol/ids").ATAIPromptID;
|
|
26
67
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
68
|
+
readonly Prompts: {
|
|
69
|
+
readonly BPMS: {
|
|
70
|
+
readonly SYSTEM: {
|
|
71
|
+
readonly INTENT_DETECTION_V1: import("./ai/protocol/ids").ATAIPromptID;
|
|
72
|
+
};
|
|
73
|
+
readonly FORMAKER: {
|
|
74
|
+
readonly VALUE_GENERATE_V1: import("./ai/protocol/ids").ATAIPromptID;
|
|
75
|
+
};
|
|
76
|
+
readonly APIMANAGER: {
|
|
77
|
+
readonly POST_RESPONSE_SCRIPT_GENERATE_V1: import("./ai/protocol/ids").ATAIPromptID;
|
|
78
|
+
};
|
|
38
79
|
};
|
|
39
80
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
81
|
+
readonly Capabilities: {
|
|
82
|
+
readonly BPMS: {
|
|
83
|
+
readonly FORMAKER: {
|
|
84
|
+
readonly FORM_GENERATE: import("./ai/protocol/ids").ATAICapabilityID;
|
|
85
|
+
};
|
|
86
|
+
readonly APIMANAGER: {
|
|
87
|
+
readonly POST_RESPONSE_SCRIPT_GENERATE: import("./ai/protocol/ids").ATAICapabilityID;
|
|
88
|
+
};
|
|
48
89
|
};
|
|
49
90
|
};
|
|
50
91
|
};
|
|
51
92
|
};
|
|
52
|
-
export
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
type ATAIPromptID = import("./ai/protocol/ids").ATAIPromptID;
|
|
56
|
-
}
|
|
93
|
+
export type ATAICapabilityID = import("./ai/protocol/ids").ATAICapabilityID;
|
|
94
|
+
export type ATAIPromptID = import("./ai/protocol/ids").ATAIPromptID;
|
|
95
|
+
export type ATAPIErrorCode = import("./core/protocol/errors").ATAPIErrorCode;
|
|
57
96
|
//# sourceMappingURL=protocol.d.ts.map
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AAQvC,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIP,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGb,CAAC;AAEX,MAAM,MAAM,gBAAgB,GACxB,OAAO,mBAAmB,EAAE,gBAAgB,CAAC;AACjD,MAAM,MAAM,YAAY,GACpB,OAAO,mBAAmB,EAAE,YAAY,CAAC;AAE7C,MAAM,MAAM,cAAc,GACtB,OAAO,wBAAwB,EAAE,cAAc,CAAC"}
|
package/dist/protocol.mjs
CHANGED
|
@@ -109,16 +109,17 @@ var ATAICapabilities = {
|
|
|
109
109
|
};
|
|
110
110
|
|
|
111
111
|
// src/protocol.ts
|
|
112
|
+
var ATAI = {
|
|
113
|
+
ID: ATAIID,
|
|
114
|
+
Prompts: ATAIPrompts,
|
|
115
|
+
Capabilities: ATAICapabilities
|
|
116
|
+
};
|
|
112
117
|
var ATProtocol = {
|
|
113
118
|
ATAPIErrorCodeMap,
|
|
114
|
-
|
|
115
|
-
ai: ATAIID
|
|
116
|
-
},
|
|
117
|
-
ATAIPrompts,
|
|
118
|
-
ATAICapabilities
|
|
119
|
+
AI: ATAI
|
|
119
120
|
};
|
|
120
121
|
export {
|
|
121
|
-
|
|
122
|
+
ATAI,
|
|
122
123
|
ATAPIErrorCodeMap,
|
|
123
124
|
ATProtocol
|
|
124
125
|
};
|
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: /^cap\\.[a-z0-9]+(?:\\.[a-z0-9]+){3,}$/i,\r\n prompt: /^prompt\\.[a-z0-9]+(?:\\.[a-z0-9]+){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.\r\n * Keep it strict: IDs should be stable, grep-friendly, and predictable.\r\n * - trims\r\n * - lowercases\r\n * - converts spaces/underscores to dots\r\n * - removes illegal chars (keeps a-z0-9 and dots)\r\n * - collapses multiple dots\r\n */\r\nfunction normalizeSegment(seg: string): string {\r\n return seg\r\n .trim()\r\n .toLowerCase()\r\n .replace(/[\\s_]+/g, \".\")\r\n .replace(/[^a-z0-9.]/g, \"\")\r\n .replace(/\\.+/g, \".\")\r\n .replace(/^\\.+|\\.+$/g, \"\");\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 /** Validate & brand an existing capability id (throws if invalid). */\r\n validateCapability(id: string): ATAICapabilityID {\r\n validate(\"capability\", id);\r\n return id as ATAICapabilityID;\r\n },\r\n\r\n /** Validate & brand an existing prompt id (throws if invalid). */\r\n validatePrompt(id: string): ATAIPromptID {\r\n validate(\"prompt\", id);\r\n return id as ATAIPromptID;\r\n },\r\n\r\n /**\r\n * Build a capability id from parts (then validates & brands).\r\n * Format: cap.<app>.<area>.<object>.<verb>\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 /**\r\n * Build a prompt id from parts (then validates & brands).\r\n * Format: prompt.<app>.<area>.<object>.<verb>.v<major>\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; // major version\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\
|
|
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: /^cap\\.[a-z0-9]+(?:\\.[a-z0-9]+){3,}$/i,\r\n prompt: /^prompt\\.[a-z0-9]+(?:\\.[a-z0-9]+){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.\r\n * Keep it strict: IDs should be stable, grep-friendly, and predictable.\r\n * - trims\r\n * - lowercases\r\n * - converts spaces/underscores to dots\r\n * - removes illegal chars (keeps a-z0-9 and dots)\r\n * - collapses multiple dots\r\n */\r\nfunction normalizeSegment(seg: string): string {\r\n return seg\r\n .trim()\r\n .toLowerCase()\r\n .replace(/[\\s_]+/g, \".\")\r\n .replace(/[^a-z0-9.]/g, \"\")\r\n .replace(/\\.+/g, \".\")\r\n .replace(/^\\.+|\\.+$/g, \"\");\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 /** Validate & brand an existing capability id (throws if invalid). */\r\n validateCapability(id: string): ATAICapabilityID {\r\n validate(\"capability\", id);\r\n return id as ATAICapabilityID;\r\n },\r\n\r\n /** Validate & brand an existing prompt id (throws if invalid). */\r\n validatePrompt(id: string): ATAIPromptID {\r\n validate(\"prompt\", id);\r\n return id as ATAIPromptID;\r\n },\r\n\r\n /**\r\n * Build a capability id from parts (then validates & brands).\r\n * Format: cap.<app>.<area>.<object>.<verb>\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 /**\r\n * Build a prompt id from parts (then validates & brands).\r\n * Format: prompt.<app>.<area>.<object>.<verb>.v<major>\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; // major version\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;;;ACCA,IAAM,KAAK;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AACZ;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,QAAQ,GAAG,EACnB,QAAQ,cAAc,EAAE;AACjC;AAEA,SAAS,gBAAgB,MAAwB;AAC7C,SAAO,KAAK,IAAI,gBAAgB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAC9D;AAEO,IAAM,SAAS;AAAA;AAAA,EAElB,mBAAmB,IAA8B;AAC7C,aAAS,cAAc,EAAE;AACzB,WAAO;AAAA,EACX;AAAA;AAAA,EAGA,eAAe,IAA0B;AACrC,aAAS,UAAU,EAAE;AACrB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe,OAKM;AACjB,UAAM,KAAK,OAAO,aAAa,MAAM,KAAK,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM,CAAC;AACjF,WAAO,OAAO,mBAAmB,EAAE;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,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;;;AC/EO,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":[]}
|