@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.
Files changed (71) hide show
  1. package/README.md +20 -3
  2. package/dist/application-onboarding.d.ts +52 -0
  3. package/dist/application-onboarding.d.ts.map +1 -0
  4. package/dist/application-onboarding.js +50 -0
  5. package/dist/application-onboarding.js.map +1 -0
  6. package/dist/execution-topology.d.ts +210 -0
  7. package/dist/execution-topology.d.ts.map +1 -0
  8. package/dist/execution-topology.js +558 -0
  9. package/dist/execution-topology.js.map +1 -0
  10. package/dist/index.d.ts +2 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -0
  13. package/dist/index.js.map +1 -1
  14. package/package.json +1 -1
  15. package/vendor/@appport/client/dist/host.d.ts +62 -0
  16. package/vendor/@appport/client/dist/host.d.ts.map +1 -0
  17. package/vendor/@appport/client/dist/host.js +139 -0
  18. package/vendor/@appport/client/dist/host.js.map +1 -0
  19. package/vendor/@appport/client/dist/index.d.ts +1 -0
  20. package/vendor/@appport/client/dist/index.d.ts.map +1 -1
  21. package/vendor/@appport/client/dist/index.js +1 -0
  22. package/vendor/@appport/client/dist/index.js.map +1 -1
  23. package/vendor/@appport/core/dist/appboundry-diagnostics.d.ts +107 -0
  24. package/vendor/@appport/core/dist/appboundry-diagnostics.d.ts.map +1 -0
  25. package/vendor/@appport/core/dist/appboundry-diagnostics.js +358 -0
  26. package/vendor/@appport/core/dist/appboundry-diagnostics.js.map +1 -0
  27. package/vendor/@appport/core/dist/appboundry-execution.d.ts +12 -0
  28. package/vendor/@appport/core/dist/appboundry-execution.d.ts.map +1 -1
  29. package/vendor/@appport/core/dist/appboundry-execution.js +46 -10
  30. package/vendor/@appport/core/dist/appboundry-execution.js.map +1 -1
  31. package/vendor/@appport/core/dist/appboundry-exercise.d.ts +152 -0
  32. package/vendor/@appport/core/dist/appboundry-exercise.d.ts.map +1 -0
  33. package/vendor/@appport/core/dist/appboundry-exercise.js +416 -0
  34. package/vendor/@appport/core/dist/appboundry-exercise.js.map +1 -0
  35. package/vendor/@appport/core/dist/appboundry-materialization.d.ts.map +1 -1
  36. package/vendor/@appport/core/dist/appboundry-materialization.js +20 -0
  37. package/vendor/@appport/core/dist/appboundry-materialization.js.map +1 -1
  38. package/vendor/@appport/core/dist/appboundry-migration.d.ts +195 -0
  39. package/vendor/@appport/core/dist/appboundry-migration.d.ts.map +1 -0
  40. package/vendor/@appport/core/dist/appboundry-migration.js +227 -0
  41. package/vendor/@appport/core/dist/appboundry-migration.js.map +1 -0
  42. package/vendor/@appport/core/dist/appboundry-onboarding.d.ts +70 -0
  43. package/vendor/@appport/core/dist/appboundry-onboarding.d.ts.map +1 -0
  44. package/vendor/@appport/core/dist/appboundry-onboarding.js +232 -0
  45. package/vendor/@appport/core/dist/appboundry-onboarding.js.map +1 -0
  46. package/vendor/@appport/core/dist/appboundry-operation-discovery.d.ts +93 -0
  47. package/vendor/@appport/core/dist/appboundry-operation-discovery.d.ts.map +1 -0
  48. package/vendor/@appport/core/dist/appboundry-operation-discovery.js +89 -0
  49. package/vendor/@appport/core/dist/appboundry-operation-discovery.js.map +1 -0
  50. package/vendor/@appport/core/dist/appboundry-usage.d.ts +94 -0
  51. package/vendor/@appport/core/dist/appboundry-usage.d.ts.map +1 -0
  52. package/vendor/@appport/core/dist/appboundry-usage.js +80 -0
  53. package/vendor/@appport/core/dist/appboundry-usage.js.map +1 -0
  54. package/vendor/@appport/core/dist/application-package.d.ts +105 -0
  55. package/vendor/@appport/core/dist/application-package.d.ts.map +1 -0
  56. package/vendor/@appport/core/dist/application-package.js +349 -0
  57. package/vendor/@appport/core/dist/application-package.js.map +1 -0
  58. package/vendor/@appport/core/dist/contract-artifact.js +9 -0
  59. package/vendor/@appport/core/dist/contract-artifact.js.map +1 -1
  60. package/vendor/@appport/core/dist/index.d.ts +9 -0
  61. package/vendor/@appport/core/dist/index.d.ts.map +1 -1
  62. package/vendor/@appport/core/dist/index.js +8 -0
  63. package/vendor/@appport/core/dist/index.js.map +1 -1
  64. package/vendor/@appport/core/dist/provider-contract.d.ts +89 -0
  65. package/vendor/@appport/core/dist/provider-contract.d.ts.map +1 -0
  66. package/vendor/@appport/core/dist/provider-contract.js +40 -0
  67. package/vendor/@appport/core/dist/provider-contract.js.map +1 -0
  68. package/vendor/@appport/core/dist/wasm-engine.d.ts +2 -0
  69. package/vendor/@appport/core/dist/wasm-engine.d.ts.map +1 -1
  70. package/vendor/@appport/core/dist/wasm-engine.js +10 -1
  71. 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
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appport/sdk",
3
- "version": "1.1.3",
3
+ "version": "1.1.8",
4
4
  "description": "AppPort developer SDK: implement a universal application boundary across runtimes and transports.",
5
5
  "keywords": [
6
6
  "appport",
@@ -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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"}
@@ -10,4 +10,5 @@ export * from "./client.js";
10
10
  export * from "./duplex.js";
11
11
  export * from "./channel.js";
12
12
  export * from "./discovery.js";
13
+ export * from "./host.js";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -10,4 +10,5 @@ export * from "./client.js";
10
10
  export * from "./duplex.js";
11
11
  export * from "./channel.js";
12
12
  export * from "./discovery.js";
13
+ export * from "./host.js";
13
14
  //# sourceMappingURL=index.js.map
@@ -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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"}