at-shared-types 1.2.3 → 1.2.5

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.
@@ -0,0 +1,11 @@
1
+ export declare const ATAICapabilities: {
2
+ readonly BPMS: {
3
+ readonly FORMAKER: {
4
+ readonly FORM_GENERATE: import("./ids").ATAICapabilityID;
5
+ };
6
+ readonly APIMANAGER: {
7
+ readonly POST_RESPONSE_SCRIPT_GENERATE: import("./ids").ATAICapabilityID;
8
+ };
9
+ };
10
+ };
11
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/ai/protocol/capabilities.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;CAmBnB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const ATAIPrompts: {
2
+ readonly BPMS: {
3
+ readonly SYSTEM: {
4
+ readonly INTENT_DETECTION_V1: import("./ids").ATAIPromptID;
5
+ };
6
+ readonly FORMAKER: {
7
+ readonly VALUE_GENERATE_V1: import("./ids").ATAIPromptID;
8
+ };
9
+ readonly APIMANAGER: {
10
+ readonly POST_RESPONSE_SCRIPT_GENERATE_V1: import("./ids").ATAIPromptID;
11
+ };
12
+ };
13
+ };
14
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/ai/protocol/prompts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;CA8Bd,CAAC"}
package/dist/protocol.cjs CHANGED
@@ -79,12 +79,69 @@ var ATAIID = {
79
79
  }
80
80
  };
81
81
 
82
+ // src/ai/protocol/prompts.ts
83
+ var ATAIPrompts = {
84
+ BPMS: {
85
+ SYSTEM: {
86
+ INTENT_DETECTION_V1: ATAIID.makePrompt({
87
+ app: "bpms",
88
+ area: "system",
89
+ target: "intent",
90
+ action: "detection",
91
+ v: 1
92
+ })
93
+ },
94
+ FORMAKER: {
95
+ VALUE_GENERATE_V1: ATAIID.makePrompt({
96
+ app: "bpms",
97
+ area: "formmaker",
98
+ target: "value",
99
+ action: "generate",
100
+ v: 1
101
+ })
102
+ },
103
+ APIMANAGER: {
104
+ POST_RESPONSE_SCRIPT_GENERATE_V1: ATAIID.makePrompt({
105
+ app: "bpms",
106
+ area: "apimanager",
107
+ target: "post_response_script",
108
+ action: "generate",
109
+ v: 1
110
+ })
111
+ }
112
+ }
113
+ };
114
+
115
+ // src/ai/protocol/capabilities.ts
116
+ var ATAICapabilities = {
117
+ BPMS: {
118
+ FORMAKER: {
119
+ FORM_GENERATE: ATAIID.makeCapability({
120
+ app: "bpms",
121
+ area: "formmaker",
122
+ target: "form",
123
+ action: "generate"
124
+ })
125
+ },
126
+ APIMANAGER: {
127
+ POST_RESPONSE_SCRIPT_GENERATE: ATAIID.makeCapability({
128
+ app: "bpms",
129
+ area: "apimanager",
130
+ target: "post_response_script",
131
+ action: "generate"
132
+ })
133
+ }
134
+ }
135
+ };
136
+
82
137
  // src/protocol.ts
83
138
  var ATProtocol = {
84
139
  ATAPIErrorCodeMap,
85
140
  ATID: {
86
141
  ai: ATAIID
87
- }
142
+ },
143
+ ATAIPrompts,
144
+ ATAICapabilities
88
145
  };
89
146
  // Annotate the CommonJS export names for ESM import in node:
90
147
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/protocol.ts","../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts"],"sourcesContent":["export * from \"./core/protocol/errors\";\r\nexport * from \"./ai/protocol/ids\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\r\nimport { ATAIID } from \"./ai/protocol/ids\";\r\n\r\nexport const ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n ATID: {\r\n ai: ATAIID,\r\n }\r\n} as const;\r\n\r\nexport namespace ATProtocol {\r\n export type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n export type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\n export type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n}\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"],"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;;;AF3EO,IAAM,aAAa;AAAA,EACtB;AAAA,EACA,MAAM;AAAA,IACF,IAAI;AAAA,EACR;AACJ;","names":[]}
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\nexport * from \"./ai/protocol/ids\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\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 ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n ATID: {\r\n ai: ATAIID,\r\n },\r\n ATAIPrompts,\r\n ATAICapabilities\r\n} as const;\r\n\r\nexport namespace ATProtocol {\r\n export type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n export type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\n export type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n}\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,aAAa;AAAA,EACtB;AAAA,EACA,MAAM;AAAA,IACF,IAAI;AAAA,EACR;AAAA,EACA;AAAA,EACA;AACJ;","names":[]}
@@ -25,6 +25,29 @@ export declare const ATProtocol: {
25
25
  }) => import("./protocol").ATAIPromptID;
26
26
  };
27
27
  };
28
+ readonly ATAIPrompts: {
29
+ readonly BPMS: {
30
+ readonly SYSTEM: {
31
+ readonly INTENT_DETECTION_V1: import("./protocol").ATAIPromptID;
32
+ };
33
+ readonly FORMAKER: {
34
+ readonly VALUE_GENERATE_V1: import("./protocol").ATAIPromptID;
35
+ };
36
+ readonly APIMANAGER: {
37
+ readonly POST_RESPONSE_SCRIPT_GENERATE_V1: import("./protocol").ATAIPromptID;
38
+ };
39
+ };
40
+ };
41
+ readonly ATAICapabilities: {
42
+ readonly BPMS: {
43
+ readonly FORMAKER: {
44
+ readonly FORM_GENERATE: import("./protocol").ATAICapabilityID;
45
+ };
46
+ readonly APIMANAGER: {
47
+ readonly POST_RESPONSE_SCRIPT_GENERATE: import("./protocol").ATAICapabilityID;
48
+ };
49
+ };
50
+ };
28
51
  };
29
52
  export declare namespace ATProtocol {
30
53
  type ATAPIErrorCode = import("./core/protocol/errors").ATAPIErrorCode;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAKlC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;CAKb,CAAC;AAEX,yBAAiB,UAAU,CAAC;IACxB,KAAY,cAAc,GACtB,OAAO,wBAAwB,EAAE,cAAc,CAAC;IACpD,KAAY,gBAAgB,GACxB,OAAO,mBAAmB,EAAE,gBAAgB,CAAC;IACjD,KAAY,YAAY,GACpB,OAAO,mBAAmB,EAAE,YAAY,CAAC;CAChD"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAOlC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOb,CAAC;AAEX,yBAAiB,UAAU,CAAC;IACxB,KAAY,cAAc,GACtB,OAAO,wBAAwB,EAAE,cAAc,CAAC;IACpD,KAAY,gBAAgB,GACxB,OAAO,mBAAmB,EAAE,gBAAgB,CAAC;IACjD,KAAY,YAAY,GACpB,OAAO,mBAAmB,EAAE,YAAY,CAAC;CAChD"}
package/dist/protocol.mjs CHANGED
@@ -53,12 +53,69 @@ var ATAIID = {
53
53
  }
54
54
  };
55
55
 
56
+ // src/ai/protocol/prompts.ts
57
+ var ATAIPrompts = {
58
+ BPMS: {
59
+ SYSTEM: {
60
+ INTENT_DETECTION_V1: ATAIID.makePrompt({
61
+ app: "bpms",
62
+ area: "system",
63
+ target: "intent",
64
+ action: "detection",
65
+ v: 1
66
+ })
67
+ },
68
+ FORMAKER: {
69
+ VALUE_GENERATE_V1: ATAIID.makePrompt({
70
+ app: "bpms",
71
+ area: "formmaker",
72
+ target: "value",
73
+ action: "generate",
74
+ v: 1
75
+ })
76
+ },
77
+ APIMANAGER: {
78
+ POST_RESPONSE_SCRIPT_GENERATE_V1: ATAIID.makePrompt({
79
+ app: "bpms",
80
+ area: "apimanager",
81
+ target: "post_response_script",
82
+ action: "generate",
83
+ v: 1
84
+ })
85
+ }
86
+ }
87
+ };
88
+
89
+ // src/ai/protocol/capabilities.ts
90
+ var ATAICapabilities = {
91
+ BPMS: {
92
+ FORMAKER: {
93
+ FORM_GENERATE: ATAIID.makeCapability({
94
+ app: "bpms",
95
+ area: "formmaker",
96
+ target: "form",
97
+ action: "generate"
98
+ })
99
+ },
100
+ APIMANAGER: {
101
+ POST_RESPONSE_SCRIPT_GENERATE: ATAIID.makeCapability({
102
+ app: "bpms",
103
+ area: "apimanager",
104
+ target: "post_response_script",
105
+ action: "generate"
106
+ })
107
+ }
108
+ }
109
+ };
110
+
56
111
  // src/protocol.ts
57
112
  var ATProtocol = {
58
113
  ATAPIErrorCodeMap,
59
114
  ATID: {
60
115
  ai: ATAIID
61
- }
116
+ },
117
+ ATAIPrompts,
118
+ ATAICapabilities
62
119
  };
63
120
  export {
64
121
  ATAIID,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/protocol/errors.ts","../src/ai/protocol/ids.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","export * from \"./core/protocol/errors\";\r\nexport * from \"./ai/protocol/ids\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\r\nimport { ATAIID } from \"./ai/protocol/ids\";\r\n\r\nexport const ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n ATID: {\r\n ai: ATAIID,\r\n }\r\n} as const;\r\n\r\nexport namespace ATProtocol {\r\n export type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n export type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\n export type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n}\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;;;AC3EO,IAAM,aAAa;AAAA,EACtB;AAAA,EACA,MAAM;AAAA,IACF,IAAI;AAAA,EACR;AACJ;","names":[]}
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\nexport * from \"./ai/protocol/ids\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\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 ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n ATID: {\r\n ai: ATAIID,\r\n },\r\n ATAIPrompts,\r\n ATAICapabilities\r\n} as const;\r\n\r\nexport namespace ATProtocol {\r\n export type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n export type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\n export type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n}\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,aAAa;AAAA,EACtB;AAAA,EACA,MAAM;AAAA,IACF,IAAI;AAAA,EACR;AAAA,EACA;AAAA,EACA;AACJ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "at-shared-types",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/index.cjs",
6
6
  "types": "./dist/index.d.ts",