@extentos/mcp-server 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +56 -0
  2. package/dist/cli/login.d.ts +2 -0
  3. package/dist/cli/login.d.ts.map +1 -0
  4. package/dist/cli/login.js +71 -0
  5. package/dist/cli/login.js.map +1 -0
  6. package/dist/cli/logout.d.ts +2 -0
  7. package/dist/cli/logout.d.ts.map +1 -0
  8. package/dist/cli/logout.js +65 -0
  9. package/dist/cli/logout.js.map +1 -0
  10. package/dist/cli/privacy.d.ts +3 -0
  11. package/dist/cli/privacy.d.ts.map +1 -0
  12. package/dist/cli/privacy.js +39 -0
  13. package/dist/cli/privacy.js.map +1 -0
  14. package/dist/cli/status.d.ts +2 -0
  15. package/dist/cli/status.d.ts.map +1 -0
  16. package/dist/cli/status.js +9 -0
  17. package/dist/cli/status.js.map +1 -0
  18. package/dist/cli/update.d.ts +2 -0
  19. package/dist/cli/update.d.ts.map +1 -0
  20. package/dist/cli/update.js +8 -0
  21. package/dist/cli/update.js.map +1 -0
  22. package/dist/cli/whoami.d.ts +2 -0
  23. package/dist/cli/whoami.d.ts.map +1 -0
  24. package/dist/cli/whoami.js +8 -0
  25. package/dist/cli/whoami.js.map +1 -0
  26. package/dist/cli.d.ts +3 -0
  27. package/dist/cli.d.ts.map +1 -0
  28. package/dist/cli.js +69 -0
  29. package/dist/cli.js.map +1 -0
  30. package/dist/generated/schemas.d.ts +4 -0
  31. package/dist/generated/schemas.d.ts.map +1 -0
  32. package/dist/generated/schemas.js +2697 -0
  33. package/dist/generated/schemas.js.map +1 -0
  34. package/dist/index.d.ts +3 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +69 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/stub.d.ts +15 -0
  39. package/dist/stub.d.ts.map +1 -0
  40. package/dist/stub.js +20 -0
  41. package/dist/stub.js.map +1 -0
  42. package/dist/telemetry/client.d.ts +73 -0
  43. package/dist/telemetry/client.d.ts.map +1 -0
  44. package/dist/telemetry/client.js +207 -0
  45. package/dist/telemetry/client.js.map +1 -0
  46. package/dist/telemetry/consent.d.ts +19 -0
  47. package/dist/telemetry/consent.d.ts.map +1 -0
  48. package/dist/telemetry/consent.js +68 -0
  49. package/dist/telemetry/consent.js.map +1 -0
  50. package/dist/telemetry/index.d.ts +56 -0
  51. package/dist/telemetry/index.d.ts.map +1 -0
  52. package/dist/telemetry/index.js +151 -0
  53. package/dist/telemetry/index.js.map +1 -0
  54. package/dist/telemetry/installRegistry.d.ts +18 -0
  55. package/dist/telemetry/installRegistry.d.ts.map +1 -0
  56. package/dist/telemetry/installRegistry.js +102 -0
  57. package/dist/telemetry/installRegistry.js.map +1 -0
  58. package/dist/tools/data/capabilities.d.ts +566 -0
  59. package/dist/tools/data/capabilities.d.ts.map +1 -0
  60. package/dist/tools/data/capabilities.js +243 -0
  61. package/dist/tools/data/capabilities.js.map +1 -0
  62. package/dist/tools/data/examplePatterns.d.ts +4 -0
  63. package/dist/tools/data/examplePatterns.d.ts.map +1 -0
  64. package/dist/tools/data/examplePatterns.js +546 -0
  65. package/dist/tools/data/examplePatterns.js.map +1 -0
  66. package/dist/tools/data/presetTriggers.d.ts +4 -0
  67. package/dist/tools/data/presetTriggers.d.ts.map +1 -0
  68. package/dist/tools/data/presetTriggers.js +47 -0
  69. package/dist/tools/data/presetTriggers.js.map +1 -0
  70. package/dist/tools/data/version.d.ts +31 -0
  71. package/dist/tools/data/version.d.ts.map +1 -0
  72. package/dist/tools/data/version.js +34 -0
  73. package/dist/tools/data/version.js.map +1 -0
  74. package/dist/tools/definitions.d.ts +13 -0
  75. package/dist/tools/definitions.d.ts.map +1 -0
  76. package/dist/tools/definitions.js +347 -0
  77. package/dist/tools/definitions.js.map +1 -0
  78. package/dist/tools/docs/index.d.ts +10 -0
  79. package/dist/tools/docs/index.d.ts.map +1 -0
  80. package/dist/tools/docs/index.js +220 -0
  81. package/dist/tools/docs/index.js.map +1 -0
  82. package/dist/tools/handlers/completeAuthLink.d.ts +3 -0
  83. package/dist/tools/handlers/completeAuthLink.d.ts.map +1 -0
  84. package/dist/tools/handlers/completeAuthLink.js +152 -0
  85. package/dist/tools/handlers/completeAuthLink.js.map +1 -0
  86. package/dist/tools/handlers/createSimulatorSession.d.ts +3 -0
  87. package/dist/tools/handlers/createSimulatorSession.d.ts.map +1 -0
  88. package/dist/tools/handlers/createSimulatorSession.js +231 -0
  89. package/dist/tools/handlers/createSimulatorSession.js.map +1 -0
  90. package/dist/tools/handlers/generateConnectionModule.d.ts +3 -0
  91. package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -0
  92. package/dist/tools/handlers/generateConnectionModule.js +222 -0
  93. package/dist/tools/handlers/generateConnectionModule.js.map +1 -0
  94. package/dist/tools/handlers/generateConsumer.d.ts +3 -0
  95. package/dist/tools/handlers/generateConsumer.d.ts.map +1 -0
  96. package/dist/tools/handlers/generateConsumer.js +257 -0
  97. package/dist/tools/handlers/generateConsumer.js.map +1 -0
  98. package/dist/tools/handlers/getCredentialGuide.d.ts +3 -0
  99. package/dist/tools/handlers/getCredentialGuide.d.ts.map +1 -0
  100. package/dist/tools/handlers/getCredentialGuide.js +296 -0
  101. package/dist/tools/handlers/getCredentialGuide.js.map +1 -0
  102. package/dist/tools/handlers/getEventLog.d.ts +3 -0
  103. package/dist/tools/handlers/getEventLog.d.ts.map +1 -0
  104. package/dist/tools/handlers/getEventLog.js +90 -0
  105. package/dist/tools/handlers/getEventLog.js.map +1 -0
  106. package/dist/tools/handlers/getExampleSpec.d.ts +3 -0
  107. package/dist/tools/handlers/getExampleSpec.d.ts.map +1 -0
  108. package/dist/tools/handlers/getExampleSpec.js +44 -0
  109. package/dist/tools/handlers/getExampleSpec.js.map +1 -0
  110. package/dist/tools/handlers/getPermissions.d.ts +3 -0
  111. package/dist/tools/handlers/getPermissions.d.ts.map +1 -0
  112. package/dist/tools/handlers/getPermissions.js +50 -0
  113. package/dist/tools/handlers/getPermissions.js.map +1 -0
  114. package/dist/tools/handlers/getPlatformInfo.d.ts +3 -0
  115. package/dist/tools/handlers/getPlatformInfo.d.ts.map +1 -0
  116. package/dist/tools/handlers/getPlatformInfo.js +78 -0
  117. package/dist/tools/handlers/getPlatformInfo.js.map +1 -0
  118. package/dist/tools/handlers/getProductionChecklist.d.ts +3 -0
  119. package/dist/tools/handlers/getProductionChecklist.d.ts.map +1 -0
  120. package/dist/tools/handlers/getProductionChecklist.js +238 -0
  121. package/dist/tools/handlers/getProductionChecklist.js.map +1 -0
  122. package/dist/tools/handlers/getSimulatorStatus.d.ts +3 -0
  123. package/dist/tools/handlers/getSimulatorStatus.d.ts.map +1 -0
  124. package/dist/tools/handlers/getSimulatorStatus.js +56 -0
  125. package/dist/tools/handlers/getSimulatorStatus.js.map +1 -0
  126. package/dist/tools/handlers/getVoiceCommandGuidance.d.ts +3 -0
  127. package/dist/tools/handlers/getVoiceCommandGuidance.d.ts.map +1 -0
  128. package/dist/tools/handlers/getVoiceCommandGuidance.js +200 -0
  129. package/dist/tools/handlers/getVoiceCommandGuidance.js.map +1 -0
  130. package/dist/tools/handlers/initSpec.d.ts +3 -0
  131. package/dist/tools/handlers/initSpec.d.ts.map +1 -0
  132. package/dist/tools/handlers/initSpec.js +234 -0
  133. package/dist/tools/handlers/initSpec.js.map +1 -0
  134. package/dist/tools/handlers/inspectIntegration.d.ts +3 -0
  135. package/dist/tools/handlers/inspectIntegration.d.ts.map +1 -0
  136. package/dist/tools/handlers/inspectIntegration.js +204 -0
  137. package/dist/tools/handlers/inspectIntegration.js.map +1 -0
  138. package/dist/tools/handlers/planIntegration.d.ts +3 -0
  139. package/dist/tools/handlers/planIntegration.d.ts.map +1 -0
  140. package/dist/tools/handlers/planIntegration.js +279 -0
  141. package/dist/tools/handlers/planIntegration.js.map +1 -0
  142. package/dist/tools/handlers/searchDocs.d.ts +3 -0
  143. package/dist/tools/handlers/searchDocs.d.ts.map +1 -0
  144. package/dist/tools/handlers/searchDocs.js +41 -0
  145. package/dist/tools/handlers/searchDocs.js.map +1 -0
  146. package/dist/tools/handlers/updateSpec.d.ts +3 -0
  147. package/dist/tools/handlers/updateSpec.d.ts.map +1 -0
  148. package/dist/tools/handlers/updateSpec.js +453 -0
  149. package/dist/tools/handlers/updateSpec.js.map +1 -0
  150. package/dist/tools/handlers/validateIntegration.d.ts +3 -0
  151. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -0
  152. package/dist/tools/handlers/validateIntegration.js +546 -0
  153. package/dist/tools/handlers/validateIntegration.js.map +1 -0
  154. package/dist/tools/handlers/validateSpec.d.ts +3 -0
  155. package/dist/tools/handlers/validateSpec.d.ts.map +1 -0
  156. package/dist/tools/handlers/validateSpec.js +26 -0
  157. package/dist/tools/handlers/validateSpec.js.map +1 -0
  158. package/dist/tools/registry.d.ts +4 -0
  159. package/dist/tools/registry.d.ts.map +1 -0
  160. package/dist/tools/registry.js +43 -0
  161. package/dist/tools/registry.js.map +1 -0
  162. package/dist/tools/response.d.ts +12 -0
  163. package/dist/tools/response.d.ts.map +1 -0
  164. package/dist/tools/response.js +19 -0
  165. package/dist/tools/response.js.map +1 -0
  166. package/dist/tools/templates/androidBootstrap.d.ts +2 -0
  167. package/dist/tools/templates/androidBootstrap.d.ts.map +1 -0
  168. package/dist/tools/templates/androidBootstrap.js +40 -0
  169. package/dist/tools/templates/androidBootstrap.js.map +1 -0
  170. package/dist/tools/templates/callbackHandler.d.ts +11 -0
  171. package/dist/tools/templates/callbackHandler.d.ts.map +1 -0
  172. package/dist/tools/templates/callbackHandler.js +177 -0
  173. package/dist/tools/templates/callbackHandler.js.map +1 -0
  174. package/dist/tools/templates/iosBootstrap.d.ts +3 -0
  175. package/dist/tools/templates/iosBootstrap.d.ts.map +1 -0
  176. package/dist/tools/templates/iosBootstrap.js +50 -0
  177. package/dist/tools/templates/iosBootstrap.js.map +1 -0
  178. package/dist/tools/templates/streamConsumer.d.ts +8 -0
  179. package/dist/tools/templates/streamConsumer.d.ts.map +1 -0
  180. package/dist/tools/templates/streamConsumer.js +248 -0
  181. package/dist/tools/templates/streamConsumer.js.map +1 -0
  182. package/dist/tools/util/appPackage.d.ts +4 -0
  183. package/dist/tools/util/appPackage.d.ts.map +1 -0
  184. package/dist/tools/util/appPackage.js +16 -0
  185. package/dist/tools/util/appPackage.js.map +1 -0
  186. package/dist/tools/util/backendClient.d.ts +25 -0
  187. package/dist/tools/util/backendClient.d.ts.map +1 -0
  188. package/dist/tools/util/backendClient.js +144 -0
  189. package/dist/tools/util/backendClient.js.map +1 -0
  190. package/dist/tools/util/manifest.d.ts +9 -0
  191. package/dist/tools/util/manifest.d.ts.map +1 -0
  192. package/dist/tools/util/manifest.js +62 -0
  193. package/dist/tools/util/manifest.js.map +1 -0
  194. package/dist/tools/util/permissions.d.ts +32 -0
  195. package/dist/tools/util/permissions.d.ts.map +1 -0
  196. package/dist/tools/util/permissions.js +165 -0
  197. package/dist/tools/util/permissions.js.map +1 -0
  198. package/dist/tools/validation/validateSpec.d.ts +22 -0
  199. package/dist/tools/validation/validateSpec.d.ts.map +1 -0
  200. package/dist/tools/validation/validateSpec.js +370 -0
  201. package/dist/tools/validation/validateSpec.js.map +1 -0
  202. package/package.json +58 -0
@@ -0,0 +1,43 @@
1
+ // Dispatch registry mapping MCP tool name → handler function.
2
+ // Tools not listed fall back to the Phase-0 not_implemented stub response.
3
+ import { handleCompleteAuthLink } from "./handlers/completeAuthLink.js";
4
+ import { handleCreateSimulatorSession } from "./handlers/createSimulatorSession.js";
5
+ import { handleGenerateConnectionModule } from "./handlers/generateConnectionModule.js";
6
+ import { handleGenerateConsumer } from "./handlers/generateConsumer.js";
7
+ import { handleGetCredentialGuide } from "./handlers/getCredentialGuide.js";
8
+ import { handleGetEventLog } from "./handlers/getEventLog.js";
9
+ import { handleGetExampleSpec } from "./handlers/getExampleSpec.js";
10
+ import { handleGetPermissions } from "./handlers/getPermissions.js";
11
+ import { handleGetPlatformInfo } from "./handlers/getPlatformInfo.js";
12
+ import { handleGetProductionChecklist } from "./handlers/getProductionChecklist.js";
13
+ import { handleGetSimulatorStatus } from "./handlers/getSimulatorStatus.js";
14
+ import { handleGetVoiceCommandGuidance } from "./handlers/getVoiceCommandGuidance.js";
15
+ import { handleInitSpec } from "./handlers/initSpec.js";
16
+ import { handleInspectIntegration } from "./handlers/inspectIntegration.js";
17
+ import { handlePlanIntegration } from "./handlers/planIntegration.js";
18
+ import { handleSearchDocs } from "./handlers/searchDocs.js";
19
+ import { handleUpdateSpec } from "./handlers/updateSpec.js";
20
+ import { handleValidateIntegration } from "./handlers/validateIntegration.js";
21
+ import { handleValidateSpec } from "./handlers/validateSpec.js";
22
+ export const handlers = {
23
+ completeAuthLink: handleCompleteAuthLink,
24
+ createSimulatorSession: handleCreateSimulatorSession,
25
+ generateConnectionModule: handleGenerateConnectionModule,
26
+ generateConsumer: handleGenerateConsumer,
27
+ getCredentialGuide: handleGetCredentialGuide,
28
+ getEventLog: handleGetEventLog,
29
+ getExampleSpec: handleGetExampleSpec,
30
+ getPermissions: handleGetPermissions,
31
+ getPlatformInfo: handleGetPlatformInfo,
32
+ getProductionChecklist: handleGetProductionChecklist,
33
+ getSimulatorStatus: handleGetSimulatorStatus,
34
+ getVoiceCommandGuidance: handleGetVoiceCommandGuidance,
35
+ initSpec: handleInitSpec,
36
+ inspectIntegration: handleInspectIntegration,
37
+ planIntegration: handlePlanIntegration,
38
+ searchDocs: handleSearchDocs,
39
+ updateSpec: handleUpdateSpec,
40
+ validateIntegration: handleValidateIntegration,
41
+ validateSpec: handleValidateSpec,
42
+ };
43
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,2EAA2E;AAG3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIhE,MAAM,CAAC,MAAM,QAAQ,GAAgC;IACnD,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,gBAAgB,EAAE,sBAAsB;IACxC,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,iBAAiB;IAC9B,cAAc,EAAE,oBAAoB;IACpC,cAAc,EAAE,oBAAoB;IACpC,eAAe,EAAE,qBAAqB;IACtC,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,wBAAwB;IAC5C,uBAAuB,EAAE,6BAA6B;IACtD,QAAQ,EAAE,cAAc;IACxB,kBAAkB,EAAE,wBAAwB;IAC5C,eAAe,EAAE,qBAAqB;IACtC,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,mBAAmB,EAAE,yBAAyB;IAC9C,YAAY,EAAE,kBAAkB;CACjC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { StandardError } from "../stub.js";
2
+ export interface McpContent {
3
+ [x: string]: unknown;
4
+ content: Array<{
5
+ type: "text";
6
+ text: string;
7
+ }>;
8
+ isError?: boolean;
9
+ }
10
+ export declare function okResponse(payload: unknown): McpContent;
11
+ export declare function errorResponse(error: StandardError, extra?: Record<string, unknown>): McpContent;
12
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/tools/response.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAIvD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAU/F"}
@@ -0,0 +1,19 @@
1
+ // Helpers for building MCP tool responses from typed handler return values.
2
+ // Keeps the MCP-JSON boundary in one place so handlers return plain TS objects.
3
+ export function okResponse(payload) {
4
+ return {
5
+ content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
6
+ };
7
+ }
8
+ export function errorResponse(error, extra) {
9
+ return {
10
+ content: [
11
+ {
12
+ type: "text",
13
+ text: JSON.stringify({ error, ...(extra ?? {}) }, null, 2),
14
+ },
15
+ ],
16
+ isError: true,
17
+ };
18
+ }
19
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/tools/response.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,gFAAgF;AAUhF,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAoB,EAAE,KAA+B;IACjF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aAC3D;SACF;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function renderAndroidBootstrap(appPackage: string): string;
2
+ //# sourceMappingURL=androidBootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"androidBootstrap.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/androidBootstrap.ts"],"names":[],"mappings":"AAGA,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAoCjE"}
@@ -0,0 +1,40 @@
1
+ // Generated Kotlin Application subclass for generateConnectionModule.
2
+ // Header + START/END markers follow INTEGRATION_SHAPE.md § Generated File Conventions.
3
+ export function renderAndroidBootstrap(appPackage) {
4
+ return `// EXTENTOS-GENERATED — do not edit manually. Regenerate via MCP tools.
5
+ package ${appPackage}.extentos
6
+
7
+ import android.app.Application
8
+ import com.extentos.glasses.ExtentosGlasses
9
+ import com.extentos.glasses.ExtentosConfig
10
+ import kotlinx.coroutines.CoroutineScope
11
+ import kotlinx.coroutines.Dispatchers
12
+ import kotlinx.coroutines.SupervisorJob
13
+ import kotlinx.coroutines.launch
14
+
15
+ class ExtentosBootstrap : Application() {
16
+ lateinit var glasses: ExtentosGlasses
17
+ private set
18
+
19
+ private val appScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
20
+
21
+ override fun onCreate() {
22
+ super.onCreate()
23
+ glasses = ExtentosGlasses.create(
24
+ this,
25
+ ExtentosConfig(debug = BuildConfig.DEBUG)
26
+ )
27
+
28
+ // EXTENTOS-GENERATED-START:dispatch
29
+ // Callback handler registration is emitted by generateConsumer(kind = "callback").
30
+ // EXTENTOS-GENERATED-END:dispatch
31
+
32
+ appScope.launch {
33
+ runCatching { glasses.runtime.loadSpec() }
34
+ runCatching { glasses.connect() }
35
+ }
36
+ }
37
+ }
38
+ `;
39
+ }
40
+ //# sourceMappingURL=androidBootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"androidBootstrap.js","sourceRoot":"","sources":["../../../src/tools/templates/androidBootstrap.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,uFAAuF;AAEvF,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO;UACC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCnB,CAAC;AACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface HandlerSpec {
2
+ name: string;
3
+ inputKeys?: string[];
4
+ service?: string;
5
+ suggestedProvider?: string;
6
+ }
7
+ export declare function renderAndroidCallbacks(appPackage: string, handlerNames: string[]): string;
8
+ export declare function renderIosCallbacks(handlerNames: string[]): string;
9
+ export declare function renderAndroidCallbacksRich(appPackage: string, handlers: HandlerSpec[], concise: boolean): string;
10
+ export declare function renderIosCallbacksRich(handlers: HandlerSpec[], concise: boolean): string;
11
+ //# sourceMappingURL=callbackHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbackHandler.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/callbackHandler.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAsCzF;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CA2CjE;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,OAAO,GACf,MAAM,CA4CR;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CA8CxF"}
@@ -0,0 +1,177 @@
1
+ // ExtentosCallbacks.{kt,swift} templates.
2
+ // Two render paths:
3
+ // - renderAndroidCallbacks / renderIosCallbacks: bare stubs used by initSpec.
4
+ // - renderAndroidCallbacksRich / renderIosCallbacksRich: BYOK-enriched stubs used
5
+ // by generateConsumer (service, inputKeys, suggestedProvider → TODO reference).
6
+ // Scoped markers per docs/mcp/INTEGRATION_SHAPE.md § Generated File Conventions.
7
+ export function renderAndroidCallbacks(appPackage, handlerNames) {
8
+ const dispatchArms = handlerNames.length
9
+ ? handlerNames.map((h) => ` "${h}" -> handle${toPascalCase(h)}(call)`).join("\n")
10
+ : ' // (no handlers declared in the spec — add one via updateSpec and regenerate with generateConsumer)';
11
+ const handlerFns = handlerNames
12
+ .map((h) => {
13
+ const fn = `handle${toPascalCase(h)}`;
14
+ return (`private suspend fun ${fn}(call: AppCall): AppCallbackResult {\n` +
15
+ ` // USER-CODE-START:${h}\n` +
16
+ ` // TODO: implement the "${h}" handler. Return AppCallbackResult.Success(value) or .Error(code, message).\n` +
17
+ ` return AppCallbackResult.Error(code = "not_implemented", message = "TODO: implement ${h} handler")\n` +
18
+ ` // USER-CODE-END:${h}\n` +
19
+ `}`);
20
+ })
21
+ .join("\n\n");
22
+ return (`// EXTENTOS-GENERATED — do not edit the dispatch structure. Regenerate via MCP tools.\n` +
23
+ `package ${appPackage}.extentos\n\n` +
24
+ `import com.extentos.glasses.core.AppCall\n` +
25
+ `import com.extentos.glasses.core.AppCallbackHandler\n` +
26
+ `import com.extentos.glasses.core.AppCallbackResult\n\n` +
27
+ `val extentosCallbackHandler = AppCallbackHandler { call ->\n` +
28
+ ` // EXTENTOS-GENERATED-START:dispatch\n` +
29
+ ` when (call.handler) {\n` +
30
+ `${dispatchArms}\n` +
31
+ ` else -> AppCallbackResult.Error(\n` +
32
+ ` code = "unknown_handler",\n` +
33
+ ` message = "No handler for '\${call.handler}'"\n` +
34
+ ` )\n` +
35
+ ` }\n` +
36
+ ` // EXTENTOS-GENERATED-END:dispatch\n` +
37
+ `}\n` +
38
+ (handlerFns ? `\n${handlerFns}\n` : ""));
39
+ }
40
+ export function renderIosCallbacks(handlerNames) {
41
+ const dispatchArms = handlerNames.length
42
+ ? handlerNames
43
+ .map((h) => ` case "${h}":\n return await handle${toPascalCase(h)}(call)`)
44
+ .join("\n")
45
+ : ` // (no handlers declared in the spec — add one via updateSpec and regenerate with generateConsumer)`;
46
+ const handlerFns = handlerNames
47
+ .map((h) => {
48
+ const fn = `handle${toPascalCase(h)}`;
49
+ return (`private func ${fn}(_ call: AppCall) async -> AppCallbackResult {\n` +
50
+ ` // USER-CODE-START:${h}\n` +
51
+ ` // TODO: implement the "${h}" handler. Return .success(value:) or .error(code:, message:).\n` +
52
+ ` return .error(code: "not_implemented", message: "TODO: implement ${h} handler")\n` +
53
+ ` // USER-CODE-END:${h}\n` +
54
+ `}`);
55
+ })
56
+ .join("\n\n");
57
+ return (`// EXTENTOS-GENERATED — do not edit the dispatch structure. Regenerate via MCP tools.\n` +
58
+ `import Foundation\n` +
59
+ `import GlassesCore\n\n` +
60
+ `final class ExtentosCallbacks: AppCallbackHandler {\n` +
61
+ ` func handle(_ call: AppCall) async -> AppCallbackResult {\n` +
62
+ ` // EXTENTOS-GENERATED-START:dispatch\n` +
63
+ ` switch call.handler {\n` +
64
+ `${dispatchArms}\n` +
65
+ ` default:\n` +
66
+ ` return .error(code: "unknown_handler", message: "No handler for '\\(call.handler)'")\n` +
67
+ ` }\n` +
68
+ ` // EXTENTOS-GENERATED-END:dispatch\n` +
69
+ ` }\n` +
70
+ (handlerFns
71
+ ? `\n${handlerFns.replace(/^/gm, " ")}\n`
72
+ : "") +
73
+ `}\n`);
74
+ }
75
+ export function renderAndroidCallbacksRich(appPackage, handlers, concise) {
76
+ const dispatchArms = handlers.length
77
+ ? handlers.map((h) => ` "${h.name}" -> handle${toPascalCase(h.name)}(call)`).join("\n")
78
+ : ` // (no handlers declared in the spec — add via updateSpec)`;
79
+ const handlerFns = handlers
80
+ .map((h) => {
81
+ const fn = `handle${toPascalCase(h.name)}`;
82
+ const inputShape = h.inputKeys && h.inputKeys.length
83
+ ? ` // Input: { ${h.inputKeys.map((k) => `"${k}": "<string>"`).join(", ")} }\n`
84
+ : "";
85
+ const byokBlock = concise ? "" : renderAndroidByokExample(h);
86
+ return (`private suspend fun ${fn}(call: AppCall): AppCallbackResult {\n` +
87
+ inputShape +
88
+ ` // USER-CODE-START:${h.name}\n` +
89
+ byokBlock +
90
+ ` return AppCallbackResult.Error(code = "not_implemented", message = "TODO: implement ${h.name} handler")\n` +
91
+ ` // USER-CODE-END:${h.name}\n` +
92
+ `}`);
93
+ })
94
+ .join("\n\n");
95
+ return (`// EXTENTOS-GENERATED — do not edit the dispatch structure. Regenerate via MCP tools.\n` +
96
+ `package ${appPackage}.extentos\n\n` +
97
+ `import com.extentos.glasses.core.AppCall\n` +
98
+ `import com.extentos.glasses.core.AppCallbackHandler\n` +
99
+ `import com.extentos.glasses.core.AppCallbackResult\n` +
100
+ `import kotlinx.serialization.json.JsonPrimitive\n\n` +
101
+ `val extentosCallbackHandler = AppCallbackHandler { call ->\n` +
102
+ ` // EXTENTOS-GENERATED-START:dispatch\n` +
103
+ ` when (call.handler) {\n` +
104
+ `${dispatchArms}\n` +
105
+ ` else -> AppCallbackResult.Error(\n` +
106
+ ` code = "unknown_handler",\n` +
107
+ ` message = "No handler for '\${call.handler}'"\n` +
108
+ ` )\n` +
109
+ ` }\n` +
110
+ ` // EXTENTOS-GENERATED-END:dispatch\n` +
111
+ `}\n` +
112
+ (handlerFns ? `\n${handlerFns}\n` : ""));
113
+ }
114
+ export function renderIosCallbacksRich(handlers, concise) {
115
+ const dispatchArms = handlers.length
116
+ ? handlers
117
+ .map((h) => ` case "${h.name}":\n return await handle${toPascalCase(h.name)}(call)`)
118
+ .join("\n")
119
+ : ` // (no handlers declared in the spec — add via updateSpec)`;
120
+ const handlerFns = handlers
121
+ .map((h) => {
122
+ const fn = `handle${toPascalCase(h.name)}`;
123
+ const inputShape = h.inputKeys && h.inputKeys.length
124
+ ? ` // call.input: { ${h.inputKeys.map((k) => `"${k}": "<string>"`).join(", ")} }\n`
125
+ : "";
126
+ const byokBlock = concise ? "" : renderIosByokExample(h);
127
+ return (`private func ${fn}(_ call: AppCall) async -> AppCallbackResult {\n` +
128
+ inputShape +
129
+ ` // USER-CODE-START:${h.name}\n` +
130
+ byokBlock +
131
+ ` return .error(code: "not_implemented", message: "TODO: implement ${h.name} handler")\n` +
132
+ ` // USER-CODE-END:${h.name}\n` +
133
+ `}`);
134
+ })
135
+ .join("\n\n");
136
+ return (`// EXTENTOS-GENERATED — do not edit the dispatch structure. Regenerate via MCP tools.\n` +
137
+ `import Foundation\n` +
138
+ `import GlassesCore\n\n` +
139
+ `final class ExtentosCallbacks: AppCallbackHandler {\n` +
140
+ ` func handle(_ call: AppCall) async -> AppCallbackResult {\n` +
141
+ ` // EXTENTOS-GENERATED-START:dispatch\n` +
142
+ ` switch call.handler {\n` +
143
+ `${dispatchArms}\n` +
144
+ ` default:\n` +
145
+ ` return .error(code: "unknown_handler", message: "No handler for '\\(call.handler)'")\n` +
146
+ ` }\n` +
147
+ ` // EXTENTOS-GENERATED-END:dispatch\n` +
148
+ ` }\n` +
149
+ (handlerFns ? `\n${handlerFns.replace(/^/gm, " ")}\n` : "") +
150
+ `}\n`);
151
+ }
152
+ function renderAndroidByokExample(h) {
153
+ const provider = h.suggestedProvider ?? "your AI provider";
154
+ const service = h.service ?? "your service";
155
+ return (` // TODO: wire your ${provider} client here (you supply the API key).\n` +
156
+ ` // val client = YourClient(apiKey = BuildConfig.MY_API_KEY)\n` +
157
+ ` // val result = client.${service.replace(/\//g, ".")}(call.input)\n` +
158
+ ` // return AppCallbackResult.Success(JsonPrimitive(result))\n`);
159
+ }
160
+ function renderIosByokExample(h) {
161
+ const provider = h.suggestedProvider ?? "your AI provider";
162
+ const service = h.service ?? "your service";
163
+ return (` // TODO: wire your ${provider} client here (you supply the API key).\n` +
164
+ ` // let client = YourClient(apiKey: Self.apiKey)\n` +
165
+ ` // let result = try await client.${service.replace(/\//g, ".")}(call.input)\n` +
166
+ ` // return .success(value: .object(["result": .string(result)]))\n`);
167
+ }
168
+ function toPascalCase(s) {
169
+ if (!s)
170
+ return s;
171
+ return s
172
+ .split(/[^a-zA-Z0-9]+/)
173
+ .filter((x) => x.length > 0)
174
+ .map((x) => x.charAt(0).toUpperCase() + x.slice(1))
175
+ .join("");
176
+ }
177
+ //# sourceMappingURL=callbackHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbackHandler.js","sourceRoot":"","sources":["../../../src/tools/templates/callbackHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function renderIosBootstrap(appPackage: string): string;
2
+ export declare function renderIosAppPatchHint(appPackage: string): string;
3
+ //# sourceMappingURL=iosBootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iosBootstrap.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/iosBootstrap.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAoC7D;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAShE"}
@@ -0,0 +1,50 @@
1
+ // Generated Swift bootstrap singleton for generateConnectionModule (iOS).
2
+ import { iosModuleName } from "../util/appPackage.js";
3
+ export function renderIosBootstrap(appPackage) {
4
+ const moduleName = iosModuleName(appPackage);
5
+ return `// EXTENTOS-GENERATED — do not edit manually. Regenerate via MCP tools.
6
+ import Foundation
7
+ import SwiftUI
8
+ import GlassesCore
9
+
10
+ @MainActor
11
+ final class ExtentosBootstrap: ObservableObject {
12
+ static let shared = ExtentosBootstrap()
13
+
14
+ let glasses: ExtentosGlasses
15
+ let sceneObserver: ExtentosSceneObserver
16
+
17
+ private init() {
18
+ let config = ExtentosConfig(
19
+ appId: Bundle.main.infoDictionary?["EXTENTOS_APP_ID"] as? String,
20
+ accountId: Bundle.main.infoDictionary?["EXTENTOS_ACCOUNT_ID"] as? String,
21
+ transport: .auto,
22
+ debug: false,
23
+ telemetryConsent: true
24
+ )
25
+ glasses = Extentos.create(config: config)
26
+ sceneObserver = ExtentosSceneObserver(glasses: glasses)
27
+
28
+ // EXTENTOS-GENERATED-START:dispatch
29
+ // Callback handler registration is emitted by generateConsumer(kind: "callback").
30
+ // EXTENTOS-GENERATED-END:dispatch
31
+
32
+ Task.detached { [glasses] in
33
+ _ = await glasses.runtime.loadSpec()
34
+ await glasses.connect()
35
+ }
36
+ }
37
+ }
38
+ `;
39
+ }
40
+ export function renderIosAppPatchHint(appPackage) {
41
+ const moduleName = iosModuleName(appPackage);
42
+ return `Add inside @main struct ${moduleName}App: App's WindowGroup scene, on the root view:
43
+ .onOpenURL { url in
44
+ Task { _ = try? await Wearables.shared.handleUrl(url) }
45
+ }
46
+ .onChange(of: scenePhase) { _, newPhase in
47
+ ExtentosBootstrap.shared.sceneObserver.scenePhaseChanged(to: newPhase)
48
+ }`;
49
+ }
50
+ //# sourceMappingURL=iosBootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iosBootstrap.js","sourceRoot":"","sources":["../../../src/tools/templates/iosBootstrap.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,2BAA2B,UAAU;;;;;;IAM1C,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface StreamDecl {
2
+ id: string;
3
+ type: "video_frames" | "audio_chunks" | "transcription_incremental" | "outgoing_audio_stream" | "outgoing_video_stream";
4
+ }
5
+ export type StreamScope = "lifecycle" | "connection";
6
+ export declare function renderAndroidStreams(appPackage: string, streams: StreamDecl[], scope: StreamScope, concise: boolean): string;
7
+ export declare function renderIosStreams(streams: StreamDecl[], scope: StreamScope, concise: boolean): string;
8
+ //# sourceMappingURL=streamConsumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamConsumer.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/streamConsumer.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EACA,cAAc,GACd,cAAc,GACd,2BAA2B,GAC3B,uBAAuB,GACvB,uBAAuB,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;AAErD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,OAAO,GACf,MAAM,CAGR;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAGpG"}