@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.
- package/README.md +56 -0
- package/dist/cli/login.d.ts +2 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/login.js +71 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/logout.d.ts +2 -0
- package/dist/cli/logout.d.ts.map +1 -0
- package/dist/cli/logout.js +65 -0
- package/dist/cli/logout.js.map +1 -0
- package/dist/cli/privacy.d.ts +3 -0
- package/dist/cli/privacy.d.ts.map +1 -0
- package/dist/cli/privacy.js +39 -0
- package/dist/cli/privacy.js.map +1 -0
- package/dist/cli/status.d.ts +2 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +9 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/update.d.ts +2 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/update.js +8 -0
- package/dist/cli/update.js.map +1 -0
- package/dist/cli/whoami.d.ts +2 -0
- package/dist/cli/whoami.d.ts.map +1 -0
- package/dist/cli/whoami.js +8 -0
- package/dist/cli/whoami.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +69 -0
- package/dist/cli.js.map +1 -0
- package/dist/generated/schemas.d.ts +4 -0
- package/dist/generated/schemas.d.ts.map +1 -0
- package/dist/generated/schemas.js +2697 -0
- package/dist/generated/schemas.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/stub.d.ts +15 -0
- package/dist/stub.d.ts.map +1 -0
- package/dist/stub.js +20 -0
- package/dist/stub.js.map +1 -0
- package/dist/telemetry/client.d.ts +73 -0
- package/dist/telemetry/client.d.ts.map +1 -0
- package/dist/telemetry/client.js +207 -0
- package/dist/telemetry/client.js.map +1 -0
- package/dist/telemetry/consent.d.ts +19 -0
- package/dist/telemetry/consent.d.ts.map +1 -0
- package/dist/telemetry/consent.js +68 -0
- package/dist/telemetry/consent.js.map +1 -0
- package/dist/telemetry/index.d.ts +56 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +151 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/installRegistry.d.ts +18 -0
- package/dist/telemetry/installRegistry.d.ts.map +1 -0
- package/dist/telemetry/installRegistry.js +102 -0
- package/dist/telemetry/installRegistry.js.map +1 -0
- package/dist/tools/data/capabilities.d.ts +566 -0
- package/dist/tools/data/capabilities.d.ts.map +1 -0
- package/dist/tools/data/capabilities.js +243 -0
- package/dist/tools/data/capabilities.js.map +1 -0
- package/dist/tools/data/examplePatterns.d.ts +4 -0
- package/dist/tools/data/examplePatterns.d.ts.map +1 -0
- package/dist/tools/data/examplePatterns.js +546 -0
- package/dist/tools/data/examplePatterns.js.map +1 -0
- package/dist/tools/data/presetTriggers.d.ts +4 -0
- package/dist/tools/data/presetTriggers.d.ts.map +1 -0
- package/dist/tools/data/presetTriggers.js +47 -0
- package/dist/tools/data/presetTriggers.js.map +1 -0
- package/dist/tools/data/version.d.ts +31 -0
- package/dist/tools/data/version.d.ts.map +1 -0
- package/dist/tools/data/version.js +34 -0
- package/dist/tools/data/version.js.map +1 -0
- package/dist/tools/definitions.d.ts +13 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +347 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/docs/index.d.ts +10 -0
- package/dist/tools/docs/index.d.ts.map +1 -0
- package/dist/tools/docs/index.js +220 -0
- package/dist/tools/docs/index.js.map +1 -0
- package/dist/tools/handlers/completeAuthLink.d.ts +3 -0
- package/dist/tools/handlers/completeAuthLink.d.ts.map +1 -0
- package/dist/tools/handlers/completeAuthLink.js +152 -0
- package/dist/tools/handlers/completeAuthLink.js.map +1 -0
- package/dist/tools/handlers/createSimulatorSession.d.ts +3 -0
- package/dist/tools/handlers/createSimulatorSession.d.ts.map +1 -0
- package/dist/tools/handlers/createSimulatorSession.js +231 -0
- package/dist/tools/handlers/createSimulatorSession.js.map +1 -0
- package/dist/tools/handlers/generateConnectionModule.d.ts +3 -0
- package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -0
- package/dist/tools/handlers/generateConnectionModule.js +222 -0
- package/dist/tools/handlers/generateConnectionModule.js.map +1 -0
- package/dist/tools/handlers/generateConsumer.d.ts +3 -0
- package/dist/tools/handlers/generateConsumer.d.ts.map +1 -0
- package/dist/tools/handlers/generateConsumer.js +257 -0
- package/dist/tools/handlers/generateConsumer.js.map +1 -0
- package/dist/tools/handlers/getCredentialGuide.d.ts +3 -0
- package/dist/tools/handlers/getCredentialGuide.d.ts.map +1 -0
- package/dist/tools/handlers/getCredentialGuide.js +296 -0
- package/dist/tools/handlers/getCredentialGuide.js.map +1 -0
- package/dist/tools/handlers/getEventLog.d.ts +3 -0
- package/dist/tools/handlers/getEventLog.d.ts.map +1 -0
- package/dist/tools/handlers/getEventLog.js +90 -0
- package/dist/tools/handlers/getEventLog.js.map +1 -0
- package/dist/tools/handlers/getExampleSpec.d.ts +3 -0
- package/dist/tools/handlers/getExampleSpec.d.ts.map +1 -0
- package/dist/tools/handlers/getExampleSpec.js +44 -0
- package/dist/tools/handlers/getExampleSpec.js.map +1 -0
- package/dist/tools/handlers/getPermissions.d.ts +3 -0
- package/dist/tools/handlers/getPermissions.d.ts.map +1 -0
- package/dist/tools/handlers/getPermissions.js +50 -0
- package/dist/tools/handlers/getPermissions.js.map +1 -0
- package/dist/tools/handlers/getPlatformInfo.d.ts +3 -0
- package/dist/tools/handlers/getPlatformInfo.d.ts.map +1 -0
- package/dist/tools/handlers/getPlatformInfo.js +78 -0
- package/dist/tools/handlers/getPlatformInfo.js.map +1 -0
- package/dist/tools/handlers/getProductionChecklist.d.ts +3 -0
- package/dist/tools/handlers/getProductionChecklist.d.ts.map +1 -0
- package/dist/tools/handlers/getProductionChecklist.js +238 -0
- package/dist/tools/handlers/getProductionChecklist.js.map +1 -0
- package/dist/tools/handlers/getSimulatorStatus.d.ts +3 -0
- package/dist/tools/handlers/getSimulatorStatus.d.ts.map +1 -0
- package/dist/tools/handlers/getSimulatorStatus.js +56 -0
- package/dist/tools/handlers/getSimulatorStatus.js.map +1 -0
- package/dist/tools/handlers/getVoiceCommandGuidance.d.ts +3 -0
- package/dist/tools/handlers/getVoiceCommandGuidance.d.ts.map +1 -0
- package/dist/tools/handlers/getVoiceCommandGuidance.js +200 -0
- package/dist/tools/handlers/getVoiceCommandGuidance.js.map +1 -0
- package/dist/tools/handlers/initSpec.d.ts +3 -0
- package/dist/tools/handlers/initSpec.d.ts.map +1 -0
- package/dist/tools/handlers/initSpec.js +234 -0
- package/dist/tools/handlers/initSpec.js.map +1 -0
- package/dist/tools/handlers/inspectIntegration.d.ts +3 -0
- package/dist/tools/handlers/inspectIntegration.d.ts.map +1 -0
- package/dist/tools/handlers/inspectIntegration.js +204 -0
- package/dist/tools/handlers/inspectIntegration.js.map +1 -0
- package/dist/tools/handlers/planIntegration.d.ts +3 -0
- package/dist/tools/handlers/planIntegration.d.ts.map +1 -0
- package/dist/tools/handlers/planIntegration.js +279 -0
- package/dist/tools/handlers/planIntegration.js.map +1 -0
- package/dist/tools/handlers/searchDocs.d.ts +3 -0
- package/dist/tools/handlers/searchDocs.d.ts.map +1 -0
- package/dist/tools/handlers/searchDocs.js +41 -0
- package/dist/tools/handlers/searchDocs.js.map +1 -0
- package/dist/tools/handlers/updateSpec.d.ts +3 -0
- package/dist/tools/handlers/updateSpec.d.ts.map +1 -0
- package/dist/tools/handlers/updateSpec.js +453 -0
- package/dist/tools/handlers/updateSpec.js.map +1 -0
- package/dist/tools/handlers/validateIntegration.d.ts +3 -0
- package/dist/tools/handlers/validateIntegration.d.ts.map +1 -0
- package/dist/tools/handlers/validateIntegration.js +546 -0
- package/dist/tools/handlers/validateIntegration.js.map +1 -0
- package/dist/tools/handlers/validateSpec.d.ts +3 -0
- package/dist/tools/handlers/validateSpec.d.ts.map +1 -0
- package/dist/tools/handlers/validateSpec.js +26 -0
- package/dist/tools/handlers/validateSpec.js.map +1 -0
- package/dist/tools/registry.d.ts +4 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +43 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/response.d.ts +12 -0
- package/dist/tools/response.d.ts.map +1 -0
- package/dist/tools/response.js +19 -0
- package/dist/tools/response.js.map +1 -0
- package/dist/tools/templates/androidBootstrap.d.ts +2 -0
- package/dist/tools/templates/androidBootstrap.d.ts.map +1 -0
- package/dist/tools/templates/androidBootstrap.js +40 -0
- package/dist/tools/templates/androidBootstrap.js.map +1 -0
- package/dist/tools/templates/callbackHandler.d.ts +11 -0
- package/dist/tools/templates/callbackHandler.d.ts.map +1 -0
- package/dist/tools/templates/callbackHandler.js +177 -0
- package/dist/tools/templates/callbackHandler.js.map +1 -0
- package/dist/tools/templates/iosBootstrap.d.ts +3 -0
- package/dist/tools/templates/iosBootstrap.d.ts.map +1 -0
- package/dist/tools/templates/iosBootstrap.js +50 -0
- package/dist/tools/templates/iosBootstrap.js.map +1 -0
- package/dist/tools/templates/streamConsumer.d.ts +8 -0
- package/dist/tools/templates/streamConsumer.d.ts.map +1 -0
- package/dist/tools/templates/streamConsumer.js +248 -0
- package/dist/tools/templates/streamConsumer.js.map +1 -0
- package/dist/tools/util/appPackage.d.ts +4 -0
- package/dist/tools/util/appPackage.d.ts.map +1 -0
- package/dist/tools/util/appPackage.js +16 -0
- package/dist/tools/util/appPackage.js.map +1 -0
- package/dist/tools/util/backendClient.d.ts +25 -0
- package/dist/tools/util/backendClient.d.ts.map +1 -0
- package/dist/tools/util/backendClient.js +144 -0
- package/dist/tools/util/backendClient.js.map +1 -0
- package/dist/tools/util/manifest.d.ts +9 -0
- package/dist/tools/util/manifest.d.ts.map +1 -0
- package/dist/tools/util/manifest.js +62 -0
- package/dist/tools/util/manifest.js.map +1 -0
- package/dist/tools/util/permissions.d.ts +32 -0
- package/dist/tools/util/permissions.d.ts.map +1 -0
- package/dist/tools/util/permissions.js +165 -0
- package/dist/tools/util/permissions.js.map +1 -0
- package/dist/tools/validation/validateSpec.d.ts +22 -0
- package/dist/tools/validation/validateSpec.d.ts.map +1 -0
- package/dist/tools/validation/validateSpec.js +370 -0
- package/dist/tools/validation/validateSpec.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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"}
|