@1mcp/agent 0.34.4 → 0.35.0-beta.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 (183) hide show
  1. package/build/admin/assets/admin-console-CX5GzncA.css +1 -0
  2. package/build/admin/assets/admin-console-CkZ5lBKg.js +61 -0
  3. package/build/admin/index.html +13 -0
  4. package/build/commands/admin/admin.d.ts +90 -0
  5. package/build/commands/admin/admin.d.ts.map +1 -0
  6. package/build/commands/admin/admin.js +545 -0
  7. package/build/commands/admin/admin.js.map +1 -0
  8. package/build/commands/admin/index.d.ts +3 -0
  9. package/build/commands/admin/index.d.ts.map +1 -0
  10. package/build/commands/admin/index.js +99 -0
  11. package/build/commands/admin/index.js.map +1 -0
  12. package/build/commands/auth/index.d.ts.map +1 -1
  13. package/build/commands/auth/index.js +24 -5
  14. package/build/commands/auth/index.js.map +1 -1
  15. package/build/commands/auth/login.d.ts +1 -0
  16. package/build/commands/auth/login.d.ts.map +1 -1
  17. package/build/commands/auth/login.js +6 -10
  18. package/build/commands/auth/login.js.map +1 -1
  19. package/build/commands/auth/logout.d.ts +3 -0
  20. package/build/commands/auth/logout.d.ts.map +1 -1
  21. package/build/commands/auth/logout.js +19 -32
  22. package/build/commands/auth/logout.js.map +1 -1
  23. package/build/commands/auth/runtimeTargetContext.d.ts +25 -0
  24. package/build/commands/auth/runtimeTargetContext.d.ts.map +1 -0
  25. package/build/commands/auth/runtimeTargetContext.js +69 -0
  26. package/build/commands/auth/runtimeTargetContext.js.map +1 -0
  27. package/build/commands/auth/status.d.ts +1 -0
  28. package/build/commands/auth/status.d.ts.map +1 -1
  29. package/build/commands/auth/status.js +10 -33
  30. package/build/commands/auth/status.js.map +1 -1
  31. package/build/commands/inspect/index.d.ts.map +1 -1
  32. package/build/commands/inspect/index.js +4 -0
  33. package/build/commands/inspect/index.js.map +1 -1
  34. package/build/commands/inspect/inspect.d.ts +1 -0
  35. package/build/commands/inspect/inspect.d.ts.map +1 -1
  36. package/build/commands/inspect/inspect.js +2 -2
  37. package/build/commands/inspect/inspect.js.map +1 -1
  38. package/build/commands/instructions/index.d.ts.map +1 -1
  39. package/build/commands/instructions/index.js +4 -0
  40. package/build/commands/instructions/index.js.map +1 -1
  41. package/build/commands/instructions/instructions.d.ts +1 -0
  42. package/build/commands/instructions/instructions.d.ts.map +1 -1
  43. package/build/commands/instructions/instructions.js.map +1 -1
  44. package/build/commands/instructions/instructionsUtils.js +1 -1
  45. package/build/commands/instructions/instructionsUtils.js.map +1 -1
  46. package/build/commands/mcp/enable.d.ts +89 -2
  47. package/build/commands/mcp/enable.d.ts.map +1 -1
  48. package/build/commands/mcp/enable.js +555 -35
  49. package/build/commands/mcp/enable.js.map +1 -1
  50. package/build/commands/proxy/index.d.ts +1 -0
  51. package/build/commands/proxy/index.d.ts.map +1 -1
  52. package/build/commands/proxy/index.js +4 -0
  53. package/build/commands/proxy/index.js.map +1 -1
  54. package/build/commands/run/index.d.ts.map +1 -1
  55. package/build/commands/run/index.js +4 -0
  56. package/build/commands/run/index.js.map +1 -1
  57. package/build/commands/run/run.d.ts +1 -0
  58. package/build/commands/run/run.d.ts.map +1 -1
  59. package/build/commands/run/run.js +2 -2
  60. package/build/commands/run/run.js.map +1 -1
  61. package/build/commands/serve/serve.d.ts.map +1 -1
  62. package/build/commands/serve/serve.js +4 -0
  63. package/build/commands/serve/serve.js.map +1 -1
  64. package/build/commands/shared/apiClient.d.ts +5 -1
  65. package/build/commands/shared/apiClient.d.ts.map +1 -1
  66. package/build/commands/shared/apiClient.js +17 -9
  67. package/build/commands/shared/apiClient.js.map +1 -1
  68. package/build/commands/shared/clientSurfaceAttachment.d.ts +14 -0
  69. package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
  70. package/build/commands/shared/clientSurfaceAttachment.js +51 -9
  71. package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
  72. package/build/commands/shared/commandRunner.d.ts +3 -1
  73. package/build/commands/shared/commandRunner.d.ts.map +1 -1
  74. package/build/commands/shared/commandRunner.js +59 -2
  75. package/build/commands/shared/commandRunner.js.map +1 -1
  76. package/build/commands/shared/serveTargetResolver.d.ts +14 -1
  77. package/build/commands/shared/serveTargetResolver.d.ts.map +1 -1
  78. package/build/commands/shared/serveTargetResolver.js +145 -3
  79. package/build/commands/shared/serveTargetResolver.js.map +1 -1
  80. package/build/commands/target/index.d.ts +3 -0
  81. package/build/commands/target/index.d.ts.map +1 -0
  82. package/build/commands/target/index.js +171 -0
  83. package/build/commands/target/index.js.map +1 -0
  84. package/build/commands/target/target.d.ts +78 -0
  85. package/build/commands/target/target.d.ts.map +1 -0
  86. package/build/commands/target/target.js +471 -0
  87. package/build/commands/target/target.js.map +1 -0
  88. package/build/constants/mcp.d.ts +1 -1
  89. package/build/constants/mcp.d.ts.map +1 -1
  90. package/build/constants/mcp.js +1 -1
  91. package/build/constants/mcp.js.map +1 -1
  92. package/build/core/runtime/runtimeIdentityService.d.ts +30 -0
  93. package/build/core/runtime/runtimeIdentityService.d.ts.map +1 -0
  94. package/build/core/runtime/runtimeIdentityService.js +63 -0
  95. package/build/core/runtime/runtimeIdentityService.js.map +1 -0
  96. package/build/core/server/agentConfig.d.ts +4 -0
  97. package/build/core/server/agentConfig.d.ts.map +1 -1
  98. package/build/core/server/agentConfig.js +3 -0
  99. package/build/core/server/agentConfig.js.map +1 -1
  100. package/build/core/tools/handlers/serverManagementHandler.d.ts +7 -7
  101. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +2 -2
  102. package/build/core/tools/internal/schemas/discovery.d.ts +1 -1
  103. package/build/core/tools/internal/schemas/index.d.ts +13 -13
  104. package/build/core/tools/internal/schemas/installation.d.ts +7 -7
  105. package/build/core/tools/internal/schemas/management.d.ts +5 -5
  106. package/build/core/types/transport.d.ts +9 -3
  107. package/build/core/types/transport.d.ts.map +1 -1
  108. package/build/core/types/transport.js +5 -0
  109. package/build/core/types/transport.js.map +1 -1
  110. package/build/domains/admin/adminConfiguredServerService.d.ts +275 -0
  111. package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -0
  112. package/build/domains/admin/adminConfiguredServerService.js +1926 -0
  113. package/build/domains/admin/adminConfiguredServerService.js.map +1 -0
  114. package/build/domains/admin/adminConnectivityChecker.d.ts +7 -0
  115. package/build/domains/admin/adminConnectivityChecker.d.ts.map +1 -0
  116. package/build/domains/admin/adminConnectivityChecker.js +42 -0
  117. package/build/domains/admin/adminConnectivityChecker.js.map +1 -0
  118. package/build/domains/admin/adminDomain.d.ts +29 -0
  119. package/build/domains/admin/adminDomain.d.ts.map +1 -0
  120. package/build/domains/admin/adminDomain.js +39 -0
  121. package/build/domains/admin/adminDomain.js.map +1 -0
  122. package/build/domains/admin/adminIdentityService.d.ts +75 -0
  123. package/build/domains/admin/adminIdentityService.d.ts.map +1 -0
  124. package/build/domains/admin/adminIdentityService.js +321 -0
  125. package/build/domains/admin/adminIdentityService.js.map +1 -0
  126. package/build/domains/admin/adminOperationService.d.ts +202 -0
  127. package/build/domains/admin/adminOperationService.d.ts.map +1 -0
  128. package/build/domains/admin/adminOperationService.js +724 -0
  129. package/build/domains/admin/adminOperationService.js.map +1 -0
  130. package/build/domains/admin/adminPresetService.d.ts +140 -0
  131. package/build/domains/admin/adminPresetService.d.ts.map +1 -0
  132. package/build/domains/admin/adminPresetService.js +248 -0
  133. package/build/domains/admin/adminPresetService.js.map +1 -0
  134. package/build/domains/admin/runtimeScopeAdminLock.d.ts +22 -0
  135. package/build/domains/admin/runtimeScopeAdminLock.d.ts.map +1 -0
  136. package/build/domains/admin/runtimeScopeAdminLock.js +121 -0
  137. package/build/domains/admin/runtimeScopeAdminLock.js.map +1 -0
  138. package/build/domains/config-change/configChange.d.ts +6 -1
  139. package/build/domains/config-change/configChange.d.ts.map +1 -1
  140. package/build/domains/config-change/configChange.js +344 -0
  141. package/build/domains/config-change/configChange.js.map +1 -1
  142. package/build/domains/config-change/types.d.ts +18 -3
  143. package/build/domains/config-change/types.d.ts.map +1 -1
  144. package/build/domains/preset/manager/presetManager.d.ts +1 -0
  145. package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
  146. package/build/domains/preset/manager/presetManager.js +3 -0
  147. package/build/domains/preset/manager/presetManager.js.map +1 -1
  148. package/build/domains/preset/tagAuthoring.d.ts +10 -0
  149. package/build/domains/preset/tagAuthoring.d.ts.map +1 -0
  150. package/build/domains/preset/tagAuthoring.js +94 -0
  151. package/build/domains/preset/tagAuthoring.js.map +1 -0
  152. package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts +51 -0
  153. package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts.map +1 -0
  154. package/build/domains/runtime-targets/runtimeIdentityVerification.js +258 -0
  155. package/build/domains/runtime-targets/runtimeIdentityVerification.js.map +1 -0
  156. package/build/domains/runtime-targets/runtimeTargetStore.d.ts +222 -0
  157. package/build/domains/runtime-targets/runtimeTargetStore.d.ts.map +1 -0
  158. package/build/domains/runtime-targets/runtimeTargetStore.js +1456 -0
  159. package/build/domains/runtime-targets/runtimeTargetStore.js.map +1 -0
  160. package/build/index.d.ts.map +1 -1
  161. package/build/index.js +7 -1
  162. package/build/index.js.map +1 -1
  163. package/build/transport/http/routes/adminRoutes.d.ts +34 -0
  164. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -0
  165. package/build/transport/http/routes/adminRoutes.js +1217 -0
  166. package/build/transport/http/routes/adminRoutes.js.map +1 -0
  167. package/build/transport/http/routes/oauthRoutes.d.ts +2 -0
  168. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  169. package/build/transport/http/routes/oauthRoutes.js +5 -185
  170. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  171. package/build/transport/http/routes/runtimeIdentityRoutes.d.ts +7 -0
  172. package/build/transport/http/routes/runtimeIdentityRoutes.d.ts.map +1 -0
  173. package/build/transport/http/routes/runtimeIdentityRoutes.js +9 -0
  174. package/build/transport/http/routes/runtimeIdentityRoutes.js.map +1 -0
  175. package/build/transport/http/server.d.ts +3 -0
  176. package/build/transport/http/server.d.ts.map +1 -1
  177. package/build/transport/http/server.js +92 -3
  178. package/build/transport/http/server.js.map +1 -1
  179. package/build/utils/validation/urlDetection.d.ts +13 -2
  180. package/build/utils/validation/urlDetection.d.ts.map +1 -1
  181. package/build/utils/validation/urlDetection.js +37 -6
  182. package/build/utils/validation/urlDetection.js.map +1 -1
  183. package/package.json +22 -9
@@ -0,0 +1,94 @@
1
+ export function buildTagAuthoringQuery(states, strategy) {
2
+ const included = selectedTags(states, 'include');
3
+ const excluded = selectedTags(states, 'exclude');
4
+ const clauses = [];
5
+ if (included.length === 1)
6
+ clauses.push({ tag: included[0] });
7
+ if (included.length > 1)
8
+ clauses.push({ [strategy === 'or' ? '$or' : '$and']: included.map((tag) => ({ tag })) });
9
+ clauses.push(...excluded.map((tag) => ({ $not: { tag } })));
10
+ if (clauses.length === 0)
11
+ return {};
12
+ if (clauses.length === 1)
13
+ return clauses[0];
14
+ return { $and: clauses };
15
+ }
16
+ export function evaluateTagAuthoringQuery(query, tags) {
17
+ if (query.tag)
18
+ return tags.includes(query.tag);
19
+ if (query.$or)
20
+ return query.$or.some((clause) => evaluateTagAuthoringQuery(clause, tags));
21
+ if (query.$and)
22
+ return query.$and.every((clause) => evaluateTagAuthoringQuery(clause, tags));
23
+ if (query.$not)
24
+ return !evaluateTagAuthoringQuery(query.$not, tags);
25
+ if (query.$in)
26
+ return query.$in.some((tag) => tags.includes(tag));
27
+ return false;
28
+ }
29
+ export function parseTagAuthoringQuery(query) {
30
+ const states = {};
31
+ const parsed = parseRoot(query, states);
32
+ return parsed ? { strategy: parsed, states } : null;
33
+ }
34
+ function parseRoot(query, states) {
35
+ if (typeof query.tag === 'string' && Object.keys(query).length === 1) {
36
+ states[query.tag] = 'include';
37
+ return 'or';
38
+ }
39
+ if (query.$not && Object.keys(query).length === 1 && readSingleTag(query.$not)) {
40
+ states[readSingleTag(query.$not)] = 'exclude';
41
+ return 'or';
42
+ }
43
+ if (query.$or && Object.keys(query).length === 1 && readIncludedTags(query.$or, states))
44
+ return 'or';
45
+ if (query.$and && Object.keys(query).length === 1) {
46
+ const clauses = query.$and;
47
+ const inclusionClauses = clauses.filter((clause) => clause.tag || clause.$or || clause.$and);
48
+ const exclusionClauses = clauses.filter((clause) => clause.$not);
49
+ if (clauses.length !== inclusionClauses.length + exclusionClauses.length)
50
+ return null;
51
+ let strategy = 'and';
52
+ if (inclusionClauses.length > 1) {
53
+ if (!readIncludedTags(inclusionClauses, states))
54
+ return null;
55
+ }
56
+ else {
57
+ const includeClause = inclusionClauses[0];
58
+ if (includeClause?.tag)
59
+ states[includeClause.tag] = 'include';
60
+ else if (includeClause?.$or && readIncludedTags(includeClause.$or, states))
61
+ strategy = 'or';
62
+ else if (includeClause?.$and && readIncludedTags(includeClause.$and, states))
63
+ strategy = 'and';
64
+ else if (includeClause)
65
+ return null;
66
+ }
67
+ for (const clause of exclusionClauses) {
68
+ const tag = clause.$not ? readSingleTag(clause.$not) : null;
69
+ if (!tag)
70
+ return null;
71
+ states[tag] = 'exclude';
72
+ }
73
+ return strategy;
74
+ }
75
+ return Object.keys(query).length === 0 ? 'or' : null;
76
+ }
77
+ function readIncludedTags(clauses, states) {
78
+ for (const clause of clauses) {
79
+ const tag = readSingleTag(clause);
80
+ if (!tag)
81
+ return false;
82
+ states[tag] = 'include';
83
+ }
84
+ return true;
85
+ }
86
+ function readSingleTag(query) {
87
+ return typeof query.tag === 'string' && Object.keys(query).length === 1 ? query.tag : null;
88
+ }
89
+ function selectedTags(states, state) {
90
+ return Object.entries(states)
91
+ .filter(([, value]) => value === state)
92
+ .map(([tag]) => tag);
93
+ }
94
+ //# sourceMappingURL=tagAuthoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagAuthoring.js","sourceRoot":"","sources":["../../../src/domains/preset/tagAuthoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { RuntimeTargetObservedIdentity, StoredRuntimeTarget } from './runtimeTargetStore.js';
2
+ export interface RuntimeTargetTlsOptions {
3
+ caFile?: string;
4
+ insecureSkipVerify?: boolean;
5
+ }
6
+ export interface RuntimeIdentityFetchResponse {
7
+ ok: boolean;
8
+ status: number;
9
+ headers?: {
10
+ get: (name: string) => string | null;
11
+ };
12
+ json: () => Promise<unknown>;
13
+ text?: () => Promise<string>;
14
+ }
15
+ export interface RuntimeIdentityFetchInit {
16
+ method?: string;
17
+ headers?: Record<string, string>;
18
+ credentials?: 'omit';
19
+ redirect?: 'follow' | 'error' | 'manual';
20
+ signal?: AbortSignal;
21
+ tls?: RuntimeTargetTlsOptions;
22
+ maxBodyBytes?: number;
23
+ }
24
+ export type RuntimeIdentityFetch = (url: string, init: RuntimeIdentityFetchInit) => Promise<RuntimeIdentityFetchResponse>;
25
+ export interface RuntimeIdentityWarning {
26
+ code: 'warning_external_url_mismatch';
27
+ message: string;
28
+ }
29
+ export interface VerifiedRuntimeIdentity {
30
+ identity: RuntimeTargetObservedIdentity;
31
+ warnings: RuntimeIdentityWarning[];
32
+ }
33
+ export declare class RuntimeTargetIdentityError extends Error {
34
+ readonly code: string;
35
+ readonly recoveryCommand?: string | undefined;
36
+ constructor(code: string, message: string, recoveryCommand?: string | undefined);
37
+ }
38
+ export declare function fetchRuntimeIdentity(baseUrl: string, options?: {
39
+ fetch?: RuntimeIdentityFetch;
40
+ } & RuntimeTargetTlsOptions): Promise<RuntimeTargetObservedIdentity>;
41
+ export declare function verifyRuntimeIdentityForTarget(input: {
42
+ target: Pick<StoredRuntimeTarget, 'name' | 'url' | 'observedIdentity' | 'caFile' | 'insecureSkipVerify'>;
43
+ fetch?: RuntimeIdentityFetch;
44
+ }): Promise<VerifiedRuntimeIdentity>;
45
+ export declare function verifyNamedRemoteTargetAttachment(input: {
46
+ target: Pick<StoredRuntimeTarget, 'name' | 'url' | 'observedIdentity' | 'caFile' | 'insecureSkipVerify' | 'insecureTlsConfirmationRequired'>;
47
+ fetch?: RuntimeIdentityFetch;
48
+ onCredentialUseReady?: (identity: RuntimeTargetObservedIdentity) => void;
49
+ }): Promise<VerifiedRuntimeIdentity>;
50
+ export declare function fetchRuntimeTargetUrl(url: string, init?: RuntimeIdentityFetchInit): Promise<RuntimeIdentityFetchResponse>;
51
+ //# sourceMappingURL=runtimeIdentityVerification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeIdentityVerification.d.ts","sourceRoot":"","sources":["../../../src/domains/runtime-targets/runtimeIdentityVerification.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMlG,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACnD,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAAG,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,wBAAwB,KAC3B,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,+BAA+B,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,6BAA6B,CAAC;IACxC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC;AAED,qBAAa,0BAA2B,SAAQ,KAAK;aAEjC,IAAI,EAAE,MAAM;aAEZ,eAAe,CAAC,EAAE,MAAM;gBAFxB,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,eAAe,CAAC,EAAE,MAAM,YAAA;CAK3C;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,oBAAoB,CAAA;CAAE,GAAG,uBAA4B,GACvE,OAAO,CAAC,6BAA6B,CAAC,CA0BxC;AAED,wBAAsB,8BAA8B,CAAC,KAAK,EAAE;IAC1D,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,KAAK,GAAG,kBAAkB,GAAG,QAAQ,GAAG,oBAAoB,CAAC,CAAC;IACzG,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAoBnC;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE;IAC7D,MAAM,EAAE,IAAI,CACV,mBAAmB,EACnB,MAAM,GAAG,KAAK,GAAG,kBAAkB,GAAG,QAAQ,GAAG,oBAAoB,GAAG,iCAAiC,CAC1G,CAAC;IACF,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,6BAA6B,KAAK,IAAI,CAAC;CAC1E,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAWnC;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,wBAA6B,GAClC,OAAO,CAAC,4BAA4B,CAAC,CAcvC"}
@@ -0,0 +1,258 @@
1
+ import fs from 'node:fs';
2
+ import http from 'node:http';
3
+ import https from 'node:https';
4
+ const RUNTIME_IDENTITY_PATH = '/.well-known/1mcp/runtime-identity';
5
+ const DEFAULT_RUNTIME_IDENTITY_TIMEOUT_MS = 5_000;
6
+ const DEFAULT_RUNTIME_IDENTITY_MAX_BODY_BYTES = 128 * 1024;
7
+ export class RuntimeTargetIdentityError extends Error {
8
+ code;
9
+ recoveryCommand;
10
+ constructor(code, message, recoveryCommand) {
11
+ super(message);
12
+ this.code = code;
13
+ this.recoveryCommand = recoveryCommand;
14
+ this.name = 'RuntimeTargetIdentityError';
15
+ }
16
+ }
17
+ export async function fetchRuntimeIdentity(baseUrl, options = {}) {
18
+ const fetchImpl = options.fetch ?? fetchRuntimeTargetUrl;
19
+ const tls = normalizeTlsOptions(options);
20
+ const response = await fetchImpl(new URL(RUNTIME_IDENTITY_PATH, baseUrl).toString(), {
21
+ method: 'GET',
22
+ headers: { Accept: 'application/json' },
23
+ credentials: 'omit',
24
+ signal: createRuntimeIdentityTimeoutSignal(),
25
+ maxBodyBytes: DEFAULT_RUNTIME_IDENTITY_MAX_BODY_BYTES,
26
+ ...(tls ? { tls } : {}),
27
+ });
28
+ if (!response.ok) {
29
+ throw new RuntimeTargetIdentityError('identity_unreachable', `Runtime identity endpoint returned HTTP ${response.status}`);
30
+ }
31
+ let body;
32
+ try {
33
+ body = await response.json();
34
+ }
35
+ catch {
36
+ throw new RuntimeTargetIdentityError('identity_invalid', 'Runtime identity endpoint did not return JSON');
37
+ }
38
+ return parseRuntimeIdentity(body);
39
+ }
40
+ export async function verifyRuntimeIdentityForTarget(input) {
41
+ const identity = await fetchRuntimeIdentity(input.target.url, {
42
+ fetch: input.fetch,
43
+ caFile: input.target.caFile,
44
+ insecureSkipVerify: input.target.insecureSkipVerify,
45
+ });
46
+ const expectedRuntimeScopeId = input.target.observedIdentity?.runtimeScopeId;
47
+ if (expectedRuntimeScopeId && expectedRuntimeScopeId !== identity.runtimeScopeId) {
48
+ throw new RuntimeTargetIdentityError('identity_runtime_scope_mismatch', 'Runtime target identity changed; refusing to use stored credentials', `1mcp target add ${input.target.name} ${input.target.url} --replace --accept-new-identity`);
49
+ }
50
+ return {
51
+ identity,
52
+ warnings: externalUrlWarnings(input.target.url, identity),
53
+ };
54
+ }
55
+ export async function verifyNamedRemoteTargetAttachment(input) {
56
+ if (input.target.insecureTlsConfirmationRequired) {
57
+ throw new RuntimeTargetIdentityError('target_insecure_tls_confirmation_required', 'Runtime target uses imported insecure TLS metadata and requires confirmation before credentialed attach', `1mcp target verify ${input.target.name} --accept-insecure-tls`);
58
+ }
59
+ const result = await verifyRuntimeIdentityForTarget({ target: input.target, fetch: input.fetch });
60
+ input.onCredentialUseReady?.(result.identity);
61
+ return result;
62
+ }
63
+ export async function fetchRuntimeTargetUrl(url, init = {}) {
64
+ if (hasTlsBehavior(init.tls)) {
65
+ return nodeFetchRuntimeTargetUrl(url, init);
66
+ }
67
+ if (typeof globalThis.fetch === 'function') {
68
+ const { tls: _tls, maxBodyBytes: _maxBodyBytes, ...fetchInit } = init;
69
+ const response = await globalThis.fetch(url, fetchInit);
70
+ return init.maxBodyBytes === undefined
71
+ ? response
72
+ : boundedFetchResponse(response, init.maxBodyBytes);
73
+ }
74
+ return nodeFetchRuntimeTargetUrl(url, init);
75
+ }
76
+ async function nodeFetchRuntimeTargetUrl(url, init) {
77
+ const parsed = new URL(url);
78
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
79
+ throw new RuntimeTargetIdentityError('identity_url_invalid', 'Runtime target URL must use http or https');
80
+ }
81
+ const requestOptions = {
82
+ method: init.method ?? 'GET',
83
+ headers: init.headers,
84
+ signal: init.signal,
85
+ };
86
+ if (parsed.protocol === 'https:') {
87
+ if (init.tls?.caFile) {
88
+ requestOptions.ca = readCaFile(init.tls.caFile);
89
+ }
90
+ if (init.tls?.insecureSkipVerify) {
91
+ requestOptions.rejectUnauthorized = false;
92
+ }
93
+ }
94
+ const client = parsed.protocol === 'https:' ? https : http;
95
+ return new Promise((resolve, reject) => {
96
+ let settled = false;
97
+ const request = client.request(parsed, requestOptions, (response) => {
98
+ const chunks = [];
99
+ let receivedBytes = 0;
100
+ response.on('data', (chunk) => {
101
+ if (settled) {
102
+ return;
103
+ }
104
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
105
+ receivedBytes += buffer.byteLength;
106
+ if (receivedBytes > (init.maxBodyBytes ?? DEFAULT_RUNTIME_IDENTITY_MAX_BODY_BYTES)) {
107
+ settled = true;
108
+ request.destroy();
109
+ reject(new RuntimeTargetIdentityError('identity_response_too_large', 'Runtime identity endpoint response exceeded the maximum size'));
110
+ return;
111
+ }
112
+ chunks.push(buffer);
113
+ });
114
+ response.on('end', () => {
115
+ if (settled) {
116
+ return;
117
+ }
118
+ settled = true;
119
+ resolve(bufferedResponse(response.statusCode ?? 0, response.headers, Buffer.concat(chunks)));
120
+ });
121
+ });
122
+ request.on('error', (error) => {
123
+ if (settled) {
124
+ return;
125
+ }
126
+ settled = true;
127
+ reject(error);
128
+ });
129
+ request.end();
130
+ });
131
+ }
132
+ function bufferedResponse(status, headers, body) {
133
+ return {
134
+ ok: status >= 200 && status < 300,
135
+ status,
136
+ headers: {
137
+ get: (name) => {
138
+ const value = headers[name.toLowerCase()];
139
+ return Array.isArray(value) ? value.join(', ') : (value ?? null);
140
+ },
141
+ },
142
+ json: async () => JSON.parse(body.toString('utf8')),
143
+ text: async () => body.toString('utf8'),
144
+ };
145
+ }
146
+ async function boundedFetchResponse(response, maxBodyBytes) {
147
+ const body = await readBoundedFetchBody(response, maxBodyBytes);
148
+ return {
149
+ ok: response.ok,
150
+ status: response.status,
151
+ headers: {
152
+ get: (name) => response.headers.get(name),
153
+ },
154
+ json: async () => JSON.parse(body.toString('utf8')),
155
+ text: async () => body.toString('utf8'),
156
+ };
157
+ }
158
+ async function readBoundedFetchBody(response, maxBodyBytes) {
159
+ if (!response.body) {
160
+ const body = Buffer.from(await response.arrayBuffer());
161
+ if (body.byteLength > maxBodyBytes) {
162
+ throwResponseTooLarge();
163
+ }
164
+ return body;
165
+ }
166
+ const reader = response.body.getReader();
167
+ const chunks = [];
168
+ let receivedBytes = 0;
169
+ try {
170
+ while (true) {
171
+ const { done, value } = await reader.read();
172
+ if (done) {
173
+ return Buffer.concat(chunks);
174
+ }
175
+ const chunk = Buffer.from(value);
176
+ receivedBytes += chunk.byteLength;
177
+ if (receivedBytes > maxBodyBytes) {
178
+ await reader.cancel();
179
+ throwResponseTooLarge();
180
+ }
181
+ chunks.push(chunk);
182
+ }
183
+ }
184
+ finally {
185
+ reader.releaseLock();
186
+ }
187
+ }
188
+ function throwResponseTooLarge() {
189
+ throw new RuntimeTargetIdentityError('identity_response_too_large', 'Runtime identity endpoint response exceeded the maximum size');
190
+ }
191
+ function readCaFile(caFile) {
192
+ try {
193
+ return fs.readFileSync(caFile);
194
+ }
195
+ catch {
196
+ throw new RuntimeTargetIdentityError('target_ca_file_unreadable', `Runtime target CA bundle path "${caFile}" could not be read`);
197
+ }
198
+ }
199
+ function hasTlsBehavior(tls) {
200
+ return Boolean(tls?.caFile || tls?.insecureSkipVerify);
201
+ }
202
+ function normalizeTlsOptions(tls) {
203
+ const normalized = omitUndefined({
204
+ caFile: tls.caFile,
205
+ insecureSkipVerify: tls.insecureSkipVerify,
206
+ });
207
+ return hasTlsBehavior(normalized) ? normalized : undefined;
208
+ }
209
+ function createRuntimeIdentityTimeoutSignal() {
210
+ return typeof AbortSignal.timeout === 'function'
211
+ ? AbortSignal.timeout(DEFAULT_RUNTIME_IDENTITY_TIMEOUT_MS)
212
+ : undefined;
213
+ }
214
+ function parseRuntimeIdentity(body) {
215
+ if (!isRecord(body)) {
216
+ throw new RuntimeTargetIdentityError('identity_invalid', 'Runtime identity response must be an object');
217
+ }
218
+ const identity = {
219
+ identityProtocolVersion: body.identityProtocolVersion,
220
+ runtimeScopeId: body.runtimeScopeId,
221
+ externalUrl: body.externalUrl,
222
+ runtimeVersion: body.runtimeVersion,
223
+ serverTime: body.serverTime,
224
+ };
225
+ if (identity.identityProtocolVersion !== '1' ||
226
+ typeof identity.runtimeScopeId !== 'string' ||
227
+ identity.runtimeScopeId.length === 0 ||
228
+ typeof identity.externalUrl !== 'string' ||
229
+ identity.externalUrl.length === 0 ||
230
+ typeof identity.runtimeVersion !== 'string' ||
231
+ identity.runtimeVersion.length === 0) {
232
+ throw new RuntimeTargetIdentityError('identity_invalid', 'Runtime identity response is missing required fields');
233
+ }
234
+ return {
235
+ identityProtocolVersion: '1',
236
+ runtimeScopeId: identity.runtimeScopeId,
237
+ externalUrl: identity.externalUrl,
238
+ runtimeVersion: identity.runtimeVersion,
239
+ serverTime: typeof identity.serverTime === 'string' ? identity.serverTime : undefined,
240
+ };
241
+ }
242
+ function externalUrlWarnings(configuredUrl, identity) {
243
+ return configuredUrl.replace(/\/$/, '') === identity.externalUrl.replace(/\/$/, '')
244
+ ? []
245
+ : [
246
+ {
247
+ code: 'warning_external_url_mismatch',
248
+ message: `Runtime identity externalUrl "${identity.externalUrl}" differs from configured URL "${configuredUrl}"`,
249
+ },
250
+ ];
251
+ }
252
+ function isRecord(value) {
253
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
254
+ }
255
+ function omitUndefined(value) {
256
+ return Object.fromEntries(Object.entries(value).filter(([, entryValue]) => entryValue !== undefined));
257
+ }
258
+ //# sourceMappingURL=runtimeIdentityVerification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeIdentityVerification.js","sourceRoot":"","sources":["../../../src/domains/runtime-targets/runtimeIdentityVerification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ export interface RuntimeTargetObservedIdentity {
2
+ identityProtocolVersion: '1';
3
+ runtimeScopeId: string;
4
+ externalUrl: string;
5
+ runtimeVersion: string;
6
+ serverTime?: string;
7
+ }
8
+ export interface RuntimeTargetStoreOptions {
9
+ storeDir?: string;
10
+ now?: () => Date;
11
+ }
12
+ export interface PrepareAddTargetInput {
13
+ name: string;
14
+ url: string;
15
+ displayName?: string;
16
+ caFile?: string;
17
+ insecureSkipVerify?: boolean;
18
+ use?: boolean;
19
+ }
20
+ export interface PreparedRuntimeTargetAdd {
21
+ name: string;
22
+ url: string;
23
+ displayName?: string;
24
+ caFile?: string;
25
+ insecureSkipVerify?: boolean;
26
+ use: boolean;
27
+ }
28
+ export interface RuntimeTargetCredentialReferences {
29
+ oauth?: unknown;
30
+ adminSession?: unknown;
31
+ }
32
+ export interface ReplaceVerifiedRuntimeTargetInput {
33
+ name: string;
34
+ url: string;
35
+ observedIdentity: RuntimeTargetObservedIdentity;
36
+ displayName?: string;
37
+ caFile?: string;
38
+ insecureSkipVerify?: boolean;
39
+ acceptNewIdentity?: boolean;
40
+ }
41
+ export interface UpdateObservedIdentityResult {
42
+ target: RuntimeTargetListEntry;
43
+ warnings: Array<{
44
+ code: 'warning_external_url_mismatch';
45
+ message: string;
46
+ }>;
47
+ }
48
+ export type RuntimeTargetIdentityVerifier = (context: {
49
+ targetName: string;
50
+ url: string;
51
+ caFile?: string;
52
+ insecureSkipVerify?: boolean;
53
+ storeLocked: boolean;
54
+ }) => RuntimeTargetObservedIdentity | Promise<RuntimeTargetObservedIdentity>;
55
+ export interface StoredRuntimeTarget {
56
+ name: string;
57
+ url: string;
58
+ displayName?: string;
59
+ caFile?: string;
60
+ insecureSkipVerify?: boolean;
61
+ insecureTlsConfirmationRequired?: boolean;
62
+ observedIdentity?: RuntimeTargetObservedIdentity;
63
+ lastVerifiedAt?: string;
64
+ createdAt: string;
65
+ updatedAt: string;
66
+ }
67
+ export interface RuntimeTargetListEntry {
68
+ name: string;
69
+ kind: 'local' | 'remote';
70
+ synthetic: boolean;
71
+ current: boolean;
72
+ url?: string;
73
+ displayName?: string;
74
+ caFile?: string;
75
+ insecureSkipVerify?: boolean;
76
+ insecureTlsConfirmationRequired?: boolean;
77
+ observedIdentity?: RuntimeTargetObservedIdentity;
78
+ lastVerifiedAt?: string;
79
+ verificationStatus: 'synthetic' | 'verified' | 'stale' | 'never-verified';
80
+ credentialReferences: {
81
+ oauth: boolean;
82
+ adminSession: boolean;
83
+ };
84
+ }
85
+ export interface RuntimeTargetUseResult {
86
+ target: RuntimeTargetListEntry;
87
+ warnings: Array<{
88
+ code: 'warning_target_stale' | 'warning_target_never_verified';
89
+ message: string;
90
+ }>;
91
+ }
92
+ export interface RuntimeTargetBundleEntry {
93
+ name: string;
94
+ url: string;
95
+ displayName?: string;
96
+ caFile?: string;
97
+ insecureSkipVerify?: boolean;
98
+ observedIdentity?: RuntimeTargetObservedIdentity;
99
+ lastVerifiedAt?: string;
100
+ }
101
+ export interface RuntimeTargetExportBundle {
102
+ targetBundleVersion: 1;
103
+ targets: RuntimeTargetBundleEntry[];
104
+ }
105
+ export interface RuntimeTargetImportAddition extends RuntimeTargetBundleEntry {
106
+ }
107
+ export interface RuntimeTargetImportWarning {
108
+ code: 'warning_missing_ca_file' | 'warning_insecure_tls_confirmation_required';
109
+ targetName: string;
110
+ message: string;
111
+ }
112
+ export interface RuntimeTargetImportValidationFact {
113
+ code: 'invalid_bundle_version' | 'invalid_bundle_schema' | 'invalid_target_entry' | 'invalid_target_name' | 'reserved_local_target' | 'duplicate_bundle_entry' | 'target_name_conflict' | 'invalid_url' | 'invalid_display_name' | 'invalid_tls_metadata' | 'invalid_observed_identity' | 'invalid_last_verified_at';
114
+ targetName?: string;
115
+ message: string;
116
+ }
117
+ export interface RuntimeTargetImportResult {
118
+ additions: RuntimeTargetImportAddition[];
119
+ validationFacts: RuntimeTargetImportValidationFact[];
120
+ warnings: RuntimeTargetImportWarning[];
121
+ }
122
+ export type RuntimeTargetInsecureTlsOperation = 'use' | 'verify' | 'credentialed-attach';
123
+ export interface RuntimeTargetDoctorIssue {
124
+ code: 'metadata_parse_failed' | 'metadata_schema_invalid' | 'secrets_parse_failed' | 'secrets_schema_invalid' | 'current_context_missing' | 'reserved_local_stored_target' | 'orphaned_credentials' | 'secret_store_insecure_permissions';
125
+ targetName?: string;
126
+ message: string;
127
+ }
128
+ export interface RuntimeTargetDoctorRepair {
129
+ code: 'fixed_secret_store_permissions' | 'pruned_orphaned_credentials';
130
+ targetName?: string;
131
+ message: string;
132
+ }
133
+ export interface RuntimeTargetDoctorResult {
134
+ issues: RuntimeTargetDoctorIssue[];
135
+ repairs: RuntimeTargetDoctorRepair[];
136
+ }
137
+ export declare class RuntimeTargetStoreError extends Error {
138
+ readonly code: string;
139
+ readonly details?: unknown | undefined;
140
+ readonly recoveryCommand?: string | undefined;
141
+ constructor(code: string, message: string, details?: unknown | undefined, recoveryCommand?: string | undefined);
142
+ }
143
+ export declare class RuntimeTargetStore {
144
+ private static readonly activeLocks;
145
+ private readonly storeDir;
146
+ private readonly now;
147
+ static defaultStoreDir(): string;
148
+ constructor(options?: RuntimeTargetStoreOptions);
149
+ current(): RuntimeTargetListEntry;
150
+ resolveForConnection(name?: string): RuntimeTargetListEntry;
151
+ list(): RuntimeTargetListEntry[];
152
+ inspect(name: string): RuntimeTargetListEntry;
153
+ useTarget(name: string, options?: {
154
+ acceptInsecureTls?: boolean;
155
+ }): RuntimeTargetUseResult;
156
+ requireInsecureTlsConfirmation(input: {
157
+ name: string;
158
+ operation: RuntimeTargetInsecureTlsOperation;
159
+ acceptInsecureTls?: boolean;
160
+ }): RuntimeTargetListEntry;
161
+ deleteTarget(name: string, options?: {
162
+ force?: boolean;
163
+ }): void;
164
+ renameTarget(sourceName: string, destinationName: string): RuntimeTargetListEntry;
165
+ setCredentialReferences(name: string, runtimeScopeId: string, references: RuntimeTargetCredentialReferences): void;
166
+ setOAuthTokenReference(name: string, runtimeScopeId: string, oauth: unknown): void;
167
+ getOAuthTokenReference(name: string, runtimeScopeId: string): unknown | undefined;
168
+ clearOAuthTokenReference(name: string, runtimeScopeId: string): void;
169
+ clearLocalOAuthTokenReferences(): number;
170
+ clearLocalAdminSessionReferences(): number;
171
+ setAdminSessionReference(name: string, runtimeScopeId: string, adminSession: unknown): void;
172
+ getAdminSessionReference(name: string, runtimeScopeId: string): unknown | undefined;
173
+ clearAdminSessionReference(name: string, runtimeScopeId: string): void;
174
+ replaceVerifiedTarget(input: ReplaceVerifiedRuntimeTargetInput): RuntimeTargetListEntry;
175
+ updateObservedIdentityMetadata(name: string, observedIdentity: RuntimeTargetObservedIdentity): UpdateObservedIdentityResult;
176
+ prepareAddTarget(input: PrepareAddTargetInput): PreparedRuntimeTargetAdd;
177
+ commitVerifiedAdd(prepared: PreparedRuntimeTargetAdd, observedIdentity: RuntimeTargetObservedIdentity): RuntimeTargetListEntry;
178
+ addVerifiedTarget(input: PrepareAddTargetInput, verifier: RuntimeTargetIdentityVerifier): Promise<RuntimeTargetListEntry>;
179
+ exportTargetBundle(): RuntimeTargetExportBundle;
180
+ previewImportTargetBundle(bundle: unknown, options?: {
181
+ caFileExists?: (caFile: string) => boolean;
182
+ }): RuntimeTargetImportResult;
183
+ importTargetBundle(bundle: unknown, options?: {
184
+ caFileExists?: (caFile: string) => boolean;
185
+ }): RuntimeTargetImportResult;
186
+ doctor(options?: {
187
+ fixSecrets?: boolean;
188
+ pruneOrphans?: boolean;
189
+ }): RuntimeTargetDoctorResult;
190
+ private validateImportBundle;
191
+ private confirmInsecureTlsIfRequired;
192
+ private inspectMetadataFileForDoctor;
193
+ private inspectSecretsFileForDoctor;
194
+ private localEntry;
195
+ private toListEntry;
196
+ private verificationStatus;
197
+ private readMetadata;
198
+ private readSecretsForMetadataOnly;
199
+ private readSecretsForCredentialUse;
200
+ private readSecretsUnchecked;
201
+ private writeMetadata;
202
+ private writeSecrets;
203
+ private writeSecretsThenMetadata;
204
+ private withLock;
205
+ private acquireLock;
206
+ private metadataPath;
207
+ private secretsPath;
208
+ private lockPath;
209
+ private isLockedInThisProcess;
210
+ private clearLocalCredentialReferences;
211
+ }
212
+ export declare function validateRuntimeTargetName(name: string): string;
213
+ export declare function normalizeDisplayName(displayName: string | undefined): string | undefined;
214
+ export declare function assertRuntimeTargetConfigDirAllowed(input: {
215
+ command: 'target-store' | 'verify';
216
+ targetName: string;
217
+ configDir?: string;
218
+ }): void;
219
+ export declare function normalizeRuntimeTargetUrl(url: string, options?: {
220
+ allowInsecureHttp?: boolean;
221
+ }): string;
222
+ //# sourceMappingURL=runtimeTargetStore.d.ts.map