@appport/sdk 1.1.3 → 1.1.8
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 +20 -3
- package/dist/application-onboarding.d.ts +52 -0
- package/dist/application-onboarding.d.ts.map +1 -0
- package/dist/application-onboarding.js +50 -0
- package/dist/application-onboarding.js.map +1 -0
- package/dist/execution-topology.d.ts +210 -0
- package/dist/execution-topology.d.ts.map +1 -0
- package/dist/execution-topology.js +558 -0
- package/dist/execution-topology.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/vendor/@appport/client/dist/host.d.ts +62 -0
- package/vendor/@appport/client/dist/host.d.ts.map +1 -0
- package/vendor/@appport/client/dist/host.js +139 -0
- package/vendor/@appport/client/dist/host.js.map +1 -0
- package/vendor/@appport/client/dist/index.d.ts +1 -0
- package/vendor/@appport/client/dist/index.d.ts.map +1 -1
- package/vendor/@appport/client/dist/index.js +1 -0
- package/vendor/@appport/client/dist/index.js.map +1 -1
- package/vendor/@appport/core/dist/appboundry-diagnostics.d.ts +107 -0
- package/vendor/@appport/core/dist/appboundry-diagnostics.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-diagnostics.js +358 -0
- package/vendor/@appport/core/dist/appboundry-diagnostics.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-execution.d.ts +12 -0
- package/vendor/@appport/core/dist/appboundry-execution.d.ts.map +1 -1
- package/vendor/@appport/core/dist/appboundry-execution.js +46 -10
- package/vendor/@appport/core/dist/appboundry-execution.js.map +1 -1
- package/vendor/@appport/core/dist/appboundry-exercise.d.ts +152 -0
- package/vendor/@appport/core/dist/appboundry-exercise.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-exercise.js +416 -0
- package/vendor/@appport/core/dist/appboundry-exercise.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-materialization.d.ts.map +1 -1
- package/vendor/@appport/core/dist/appboundry-materialization.js +20 -0
- package/vendor/@appport/core/dist/appboundry-materialization.js.map +1 -1
- package/vendor/@appport/core/dist/appboundry-migration.d.ts +195 -0
- package/vendor/@appport/core/dist/appboundry-migration.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-migration.js +227 -0
- package/vendor/@appport/core/dist/appboundry-migration.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-onboarding.d.ts +70 -0
- package/vendor/@appport/core/dist/appboundry-onboarding.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-onboarding.js +232 -0
- package/vendor/@appport/core/dist/appboundry-onboarding.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-operation-discovery.d.ts +93 -0
- package/vendor/@appport/core/dist/appboundry-operation-discovery.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-operation-discovery.js +89 -0
- package/vendor/@appport/core/dist/appboundry-operation-discovery.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-usage.d.ts +94 -0
- package/vendor/@appport/core/dist/appboundry-usage.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-usage.js +80 -0
- package/vendor/@appport/core/dist/appboundry-usage.js.map +1 -0
- package/vendor/@appport/core/dist/application-package.d.ts +105 -0
- package/vendor/@appport/core/dist/application-package.d.ts.map +1 -0
- package/vendor/@appport/core/dist/application-package.js +349 -0
- package/vendor/@appport/core/dist/application-package.js.map +1 -0
- package/vendor/@appport/core/dist/contract-artifact.js +9 -0
- package/vendor/@appport/core/dist/contract-artifact.js.map +1 -1
- package/vendor/@appport/core/dist/index.d.ts +9 -0
- package/vendor/@appport/core/dist/index.d.ts.map +1 -1
- package/vendor/@appport/core/dist/index.js +8 -0
- package/vendor/@appport/core/dist/index.js.map +1 -1
- package/vendor/@appport/core/dist/provider-contract.d.ts +89 -0
- package/vendor/@appport/core/dist/provider-contract.d.ts.map +1 -0
- package/vendor/@appport/core/dist/provider-contract.js +40 -0
- package/vendor/@appport/core/dist/provider-contract.js.map +1 -0
- package/vendor/@appport/core/dist/wasm-engine.d.ts +2 -0
- package/vendor/@appport/core/dist/wasm-engine.d.ts.map +1 -1
- package/vendor/@appport/core/dist/wasm-engine.js +10 -1
- package/vendor/@appport/core/dist/wasm-engine.js.map +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -15,4 +15,6 @@ export { createMcpBridge, fromToolName, toMcpTools, toToolName, type McpBridge,
|
|
|
15
15
|
export * from "./external-compatibility.js";
|
|
16
16
|
export * from "./provider-lifecycle.js";
|
|
17
17
|
export * from "./resolution-policy.js";
|
|
18
|
+
export * from "./application-onboarding.js";
|
|
19
|
+
export * from "./execution-topology.js";
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1J,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrJ,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9J,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1J,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrJ,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9J,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,4 +15,6 @@ export { createMcpBridge, fromToolName, toMcpTools, toToolName } from "../vendor
|
|
|
15
15
|
export * from "./external-compatibility.js";
|
|
16
16
|
export * from "./provider-lifecycle.js";
|
|
17
17
|
export * from "./resolution-policy.js";
|
|
18
|
+
export * from "./application-onboarding.js";
|
|
19
|
+
export * from "./execution-topology.js";
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAiC,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,EAAmG,MAAM,mBAAmB,CAAC;AAC1J,OAAO,EAAE,OAAO,EAAE,YAAY,EAA+F,MAAM,iBAAiB,CAAC;AACrJ,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAI3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAkC,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAA6B,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAkC,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAA8B,MAAM,0BAA0B,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAiD,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAA2E,MAAM,cAAc,CAAC;AAC9J,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAiC,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,EAAmG,MAAM,mBAAmB,CAAC;AAC1J,OAAO,EAAE,OAAO,EAAE,YAAY,EAA+F,MAAM,iBAAiB,CAAC;AACrJ,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAI3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAkC,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAA6B,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAkC,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAA8B,MAAM,0BAA0B,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAiD,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAA2E,MAAM,cAAc,CAAC;AAC9J,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type RequestMetadata } from "../../protocol/dist/index.d.ts";
|
|
2
|
+
export interface HostConnectOptions {
|
|
3
|
+
url: string;
|
|
4
|
+
fetch?: typeof globalThis.fetch;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
createTraceId?: () => string;
|
|
7
|
+
}
|
|
8
|
+
export interface HostInvokeOptions {
|
|
9
|
+
headers?: Record<string, string>;
|
|
10
|
+
permissions?: readonly string[];
|
|
11
|
+
scopes?: readonly string[];
|
|
12
|
+
requestId?: string;
|
|
13
|
+
traceId?: string;
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
idempotencyKey?: string;
|
|
16
|
+
metadata?: RequestMetadata;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}
|
|
19
|
+
export interface HostDiscoveryApplication {
|
|
20
|
+
id: string;
|
|
21
|
+
version: string;
|
|
22
|
+
status: "running" | "stopped";
|
|
23
|
+
capabilities: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface HostDiscoveryDocument {
|
|
26
|
+
protocol: "AppPort/host-discovery/1";
|
|
27
|
+
applications: HostDiscoveryApplication[];
|
|
28
|
+
}
|
|
29
|
+
export interface HostCapabilityReference {
|
|
30
|
+
application: HostDiscoveryApplication;
|
|
31
|
+
capability: string;
|
|
32
|
+
name: string;
|
|
33
|
+
version: number;
|
|
34
|
+
}
|
|
35
|
+
export declare class AppPortHostDiscovery {
|
|
36
|
+
#private;
|
|
37
|
+
readonly applications: readonly HostDiscoveryApplication[];
|
|
38
|
+
constructor(host: AppPortHost, applications: readonly HostDiscoveryApplication[]);
|
|
39
|
+
application(id: string): AppPortHostApplication;
|
|
40
|
+
findCapability(applicationId: string, capability: string): HostCapabilityReference | undefined;
|
|
41
|
+
}
|
|
42
|
+
export declare class AppPortHostApplication {
|
|
43
|
+
#private;
|
|
44
|
+
readonly id: string;
|
|
45
|
+
readonly version: string;
|
|
46
|
+
readonly status: "running" | "stopped";
|
|
47
|
+
readonly capabilities: readonly string[];
|
|
48
|
+
constructor(host: AppPortHost, application: HostDiscoveryApplication);
|
|
49
|
+
capability(capability: string): HostCapabilityReference;
|
|
50
|
+
invoke<Output = unknown>(capability: string | HostCapabilityReference, input: unknown, options?: HostInvokeOptions): Promise<Output>;
|
|
51
|
+
}
|
|
52
|
+
export declare class AppPortHost {
|
|
53
|
+
#private;
|
|
54
|
+
readonly url: string;
|
|
55
|
+
constructor(options: HostConnectOptions);
|
|
56
|
+
discover(options?: {
|
|
57
|
+
signal?: AbortSignal;
|
|
58
|
+
}): Promise<AppPortHostDiscovery>;
|
|
59
|
+
invoke<Output = unknown>(capability: HostCapabilityReference, input: unknown, options?: HostInvokeOptions): Promise<Output>;
|
|
60
|
+
}
|
|
61
|
+
export declare function connect(options: string | HostConnectOptions): Promise<AppPortHost>;
|
|
62
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2E,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGlI,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,YAAY,EAAE,wBAAwB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,wBAAwB,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,oBAAoB;;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,wBAAwB,EAAE,CAAC;gBAG/C,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,wBAAwB,EAAE;IAKhF,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB;IAM/C,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;CAK/F;AAED,qBAAa,sBAAsB;;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;gBAG7B,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB;IAQpE,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB;IAOvD,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;CAOrI;AAED,qBAAa,WAAW;;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAKT,OAAO,EAAE,kBAAkB;IAQjC,QAAQ,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAa/E,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;CAmCtI;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAExF"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { AppPortError, createRequest, newRequestId, newTraceId } from "../../protocol/dist/index.js";
|
|
2
|
+
import { unwrap } from "./client.js";
|
|
3
|
+
export class AppPortHostDiscovery {
|
|
4
|
+
applications;
|
|
5
|
+
#host;
|
|
6
|
+
constructor(host, applications) {
|
|
7
|
+
this.#host = host;
|
|
8
|
+
this.applications = applications;
|
|
9
|
+
}
|
|
10
|
+
application(id) {
|
|
11
|
+
const application = this.applications.find(candidate => candidate.id === id);
|
|
12
|
+
if (!application)
|
|
13
|
+
throw new AppPortError("NOT_FOUND", `Application ${id} was not discovered`);
|
|
14
|
+
return new AppPortHostApplication(this.#host, application);
|
|
15
|
+
}
|
|
16
|
+
findCapability(applicationId, capability) {
|
|
17
|
+
const application = this.applications.find(candidate => candidate.id === applicationId);
|
|
18
|
+
if (!application || !application.capabilities.includes(capability))
|
|
19
|
+
return undefined;
|
|
20
|
+
return capabilityReference(application, capability);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class AppPortHostApplication {
|
|
24
|
+
id;
|
|
25
|
+
version;
|
|
26
|
+
status;
|
|
27
|
+
capabilities;
|
|
28
|
+
#host;
|
|
29
|
+
constructor(host, application) {
|
|
30
|
+
this.#host = host;
|
|
31
|
+
this.id = application.id;
|
|
32
|
+
this.version = application.version;
|
|
33
|
+
this.status = application.status;
|
|
34
|
+
this.capabilities = application.capabilities;
|
|
35
|
+
}
|
|
36
|
+
capability(capability) {
|
|
37
|
+
if (!this.capabilities.includes(capability)) {
|
|
38
|
+
throw new AppPortError("NOT_FOUND", `Capability ${capability} was not discovered for ${this.id}`);
|
|
39
|
+
}
|
|
40
|
+
return capabilityReference({ id: this.id, version: this.version, status: this.status, capabilities: [...this.capabilities] }, capability);
|
|
41
|
+
}
|
|
42
|
+
invoke(capability, input, options) {
|
|
43
|
+
const reference = typeof capability === "string" ? this.capability(capability) : capability;
|
|
44
|
+
if (reference.application.id !== this.id) {
|
|
45
|
+
throw new AppPortError("INVALID_REQUEST", `Capability ${reference.capability} belongs to ${reference.application.id}, not ${this.id}`);
|
|
46
|
+
}
|
|
47
|
+
return this.#host.invoke(reference, input, options);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class AppPortHost {
|
|
51
|
+
url;
|
|
52
|
+
#fetch;
|
|
53
|
+
#headers;
|
|
54
|
+
#createTraceId;
|
|
55
|
+
constructor(options) {
|
|
56
|
+
this.url = options.url.replace(/\/$/, "");
|
|
57
|
+
this.#fetch = options.fetch ?? globalThis.fetch;
|
|
58
|
+
this.#headers = options.headers;
|
|
59
|
+
this.#createTraceId = options.createTraceId ?? newTraceId;
|
|
60
|
+
if (!this.#fetch)
|
|
61
|
+
throw new AppPortError("INTERNAL_ERROR", "fetch is not available");
|
|
62
|
+
}
|
|
63
|
+
async discover(options = {}) {
|
|
64
|
+
const response = await this.#request(`${this.url}/.well-known/appport`, {
|
|
65
|
+
headers: this.#headers,
|
|
66
|
+
signal: options.signal
|
|
67
|
+
}, "Host discovery endpoint is unreachable");
|
|
68
|
+
const document = await readJson(response);
|
|
69
|
+
if (!response.ok)
|
|
70
|
+
throw new AppPortError(response.status === 404 ? "NOT_FOUND" : "INTERNAL_ERROR", `Host discovery failed (HTTP ${response.status})`);
|
|
71
|
+
if (document.protocol !== "AppPort/host-discovery/1" || !Array.isArray(document.applications)) {
|
|
72
|
+
throw new AppPortError("INVALID_PROTOCOL", "The host discovery document is not compatible with AppPort host discovery");
|
|
73
|
+
}
|
|
74
|
+
return new AppPortHostDiscovery(this, document.applications);
|
|
75
|
+
}
|
|
76
|
+
async invoke(capability, input, options = {}) {
|
|
77
|
+
const request = createRequest({
|
|
78
|
+
requestId: options.requestId ?? newRequestId(),
|
|
79
|
+
capability: { name: capability.name, version: capability.version },
|
|
80
|
+
input,
|
|
81
|
+
traceId: options.traceId ?? this.#createTraceId(),
|
|
82
|
+
idempotencyKey: options.idempotencyKey,
|
|
83
|
+
timeoutMs: options.timeoutMs,
|
|
84
|
+
metadata: options.metadata
|
|
85
|
+
});
|
|
86
|
+
const response = await this.#request(`${this.url}/apps/${encodeURIComponent(capability.application.id)}/capabilities/${encodeURIComponent(capability.capability)}`, {
|
|
87
|
+
method: "POST",
|
|
88
|
+
headers: {
|
|
89
|
+
...this.#headers,
|
|
90
|
+
...options.headers,
|
|
91
|
+
"content-type": "application/json",
|
|
92
|
+
...authorizationHeader(options)
|
|
93
|
+
},
|
|
94
|
+
body: JSON.stringify(request),
|
|
95
|
+
signal: options.signal
|
|
96
|
+
}, "Host invocation endpoint is unreachable");
|
|
97
|
+
const body = await readJson(response);
|
|
98
|
+
if (!response.ok) {
|
|
99
|
+
throw new AppPortError(response.status === 404 ? "NOT_FOUND" : response.status === 403 ? "FORBIDDEN" : "INTERNAL_ERROR", `Host invocation failed (HTTP ${response.status})`);
|
|
100
|
+
}
|
|
101
|
+
return unwrap(body);
|
|
102
|
+
}
|
|
103
|
+
async #request(url, init, message) {
|
|
104
|
+
try {
|
|
105
|
+
return await this.#fetch(url, init);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
throw new AppPortError("INTERNAL_ERROR", message, { retryable: true, cause: error });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
export async function connect(options) {
|
|
113
|
+
return new AppPortHost(typeof options === "string" ? { url: options } : options);
|
|
114
|
+
}
|
|
115
|
+
function capabilityReference(application, capability) {
|
|
116
|
+
const parsed = parseCapability(capability);
|
|
117
|
+
if (!parsed)
|
|
118
|
+
throw new AppPortError("INVALID_REQUEST", `Invalid capability reference: ${capability}`);
|
|
119
|
+
return { application, capability, name: parsed.name, version: parsed.version };
|
|
120
|
+
}
|
|
121
|
+
function parseCapability(capability) {
|
|
122
|
+
const index = capability.lastIndexOf("@");
|
|
123
|
+
const name = index > 0 ? capability.slice(0, index) : "";
|
|
124
|
+
const version = index > 0 ? Number(capability.slice(index + 1)) : NaN;
|
|
125
|
+
return name && Number.isInteger(version) && version > 0 ? { name, version } : undefined;
|
|
126
|
+
}
|
|
127
|
+
function authorizationHeader(options) {
|
|
128
|
+
const scopes = [...(options.permissions ?? []), ...(options.scopes ?? [])];
|
|
129
|
+
return scopes.length ? { "x-appport-scopes": scopes.join(",") } : {};
|
|
130
|
+
}
|
|
131
|
+
async function readJson(response) {
|
|
132
|
+
try {
|
|
133
|
+
return await response.json();
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
throw new AppPortError("INVALID_PROTOCOL", "The host returned an invalid JSON response", { cause: error });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppBoundry diagnostics and guided resolution boundary.
|
|
3
|
+
*
|
|
4
|
+
* Diagnostics explain already-observed AppBoundry exercise state. They do not
|
|
5
|
+
* rediscover applications, execute providers, or infer application-specific
|
|
6
|
+
* behavior.
|
|
7
|
+
*/
|
|
8
|
+
import type { AppBoundryExerciseRecord } from "./appboundry-exercise.js";
|
|
9
|
+
export type DiagnosticSeverity = "INFO" | "WARNING" | "ERROR";
|
|
10
|
+
export type DiagnosticDomain = "APPLICATION" | "PROCESS" | "NETWORK" | "SURFACE" | "BRIDGE" | "CAPABILITY" | "AUTHORIZATION" | "PROVIDER" | "INVOCATION";
|
|
11
|
+
export type DiagnosticEvidenceSource = "DECLARED" | "INFERRED" | "OBSERVED" | "VERIFIED";
|
|
12
|
+
export interface DiagnosticEvidence {
|
|
13
|
+
readonly type: string;
|
|
14
|
+
readonly reference?: string;
|
|
15
|
+
readonly value?: unknown;
|
|
16
|
+
readonly source: DiagnosticEvidenceSource;
|
|
17
|
+
}
|
|
18
|
+
export type DiagnosticRecommendationAction = "RETRY" | "START" | "RESTART" | "INSPECT" | "CONFIGURE" | "AUTHORIZE" | "SELECT_PROVIDER" | "EXERCISE" | "NONE";
|
|
19
|
+
export interface DiagnosticRecommendation {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly title: string;
|
|
22
|
+
readonly description: string;
|
|
23
|
+
readonly action: DiagnosticRecommendationAction;
|
|
24
|
+
}
|
|
25
|
+
export interface Diagnostic {
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly severity: DiagnosticSeverity;
|
|
28
|
+
readonly domain: DiagnosticDomain;
|
|
29
|
+
readonly code: string;
|
|
30
|
+
readonly title: string;
|
|
31
|
+
readonly summary: string;
|
|
32
|
+
readonly applicationId?: string;
|
|
33
|
+
readonly capability?: {
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly version: number;
|
|
36
|
+
};
|
|
37
|
+
readonly cause?: string;
|
|
38
|
+
readonly evidence: readonly DiagnosticEvidence[];
|
|
39
|
+
readonly recommendations: readonly DiagnosticRecommendation[];
|
|
40
|
+
readonly blocking: boolean;
|
|
41
|
+
readonly timestamp: string;
|
|
42
|
+
}
|
|
43
|
+
export type ResolutionStatus = "NOT_STARTED" | "INVESTIGATING" | "ACTION_REQUIRED" | "READY_TO_RETRY" | "RESOLVED" | "BLOCKED";
|
|
44
|
+
export interface DiagnosticResolution {
|
|
45
|
+
readonly status: ResolutionStatus;
|
|
46
|
+
readonly diagnosticId?: string;
|
|
47
|
+
readonly readyToRetry: boolean;
|
|
48
|
+
readonly verifiedByExerciseId?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface AppBoundryDiagnosticReport {
|
|
51
|
+
readonly id: string;
|
|
52
|
+
readonly applicationId?: string;
|
|
53
|
+
readonly capability?: {
|
|
54
|
+
readonly name: string;
|
|
55
|
+
readonly version: number;
|
|
56
|
+
};
|
|
57
|
+
readonly primaryDiagnosticId?: string;
|
|
58
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
59
|
+
readonly resolution: DiagnosticResolution;
|
|
60
|
+
readonly timestamp: string;
|
|
61
|
+
}
|
|
62
|
+
export interface AppBoundryDiagnosticFact {
|
|
63
|
+
readonly type: "application" | "process" | "dependency" | "surface" | "bridge" | "capability" | "authorization" | "provider" | "invocation";
|
|
64
|
+
readonly reference?: string;
|
|
65
|
+
readonly value: unknown;
|
|
66
|
+
readonly source: DiagnosticEvidenceSource;
|
|
67
|
+
}
|
|
68
|
+
export interface AppBoundryDiagnosticEngineInput {
|
|
69
|
+
readonly exercise?: AppBoundryExerciseRecord;
|
|
70
|
+
readonly applicationId?: string;
|
|
71
|
+
readonly capability?: {
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly version: number;
|
|
74
|
+
};
|
|
75
|
+
readonly facts?: readonly AppBoundryDiagnosticFact[];
|
|
76
|
+
readonly timestamp?: string;
|
|
77
|
+
}
|
|
78
|
+
export interface AppBoundryDiagnosticEngineOptions {
|
|
79
|
+
readonly clock?: () => string;
|
|
80
|
+
}
|
|
81
|
+
export interface AppBoundryDiagnosticStore {
|
|
82
|
+
record(report: AppBoundryDiagnosticReport): Promise<void> | void;
|
|
83
|
+
list(input?: {
|
|
84
|
+
readonly applicationId?: string;
|
|
85
|
+
readonly capability?: {
|
|
86
|
+
readonly name: string;
|
|
87
|
+
readonly version?: number;
|
|
88
|
+
};
|
|
89
|
+
}): Promise<readonly AppBoundryDiagnosticReport[]> | readonly AppBoundryDiagnosticReport[];
|
|
90
|
+
}
|
|
91
|
+
export declare class InMemoryAppBoundryDiagnosticStore implements AppBoundryDiagnosticStore {
|
|
92
|
+
#private;
|
|
93
|
+
record(report: AppBoundryDiagnosticReport): void;
|
|
94
|
+
list(input?: {
|
|
95
|
+
readonly applicationId?: string;
|
|
96
|
+
readonly capability?: {
|
|
97
|
+
readonly name: string;
|
|
98
|
+
readonly version?: number;
|
|
99
|
+
};
|
|
100
|
+
}): readonly AppBoundryDiagnosticReport[];
|
|
101
|
+
}
|
|
102
|
+
export declare class AppBoundryDiagnosticEngine {
|
|
103
|
+
#private;
|
|
104
|
+
constructor(options?: AppBoundryDiagnosticEngineOptions);
|
|
105
|
+
diagnose(input: AppBoundryDiagnosticEngineInput): AppBoundryDiagnosticReport;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=appboundry-diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-diagnostics.d.ts","sourceRoot":"","sources":["../src/appboundry-diagnostics.ts"],"names":[],"mappings":"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"}
|