@agentxm/extension-resolution 0.28.14-preview.1789139351.5cd4595aa
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/LICENSE +110 -0
- package/README.md +56 -0
- package/dist/src/accepted-pack-dependency-resolver.d.ts +23 -0
- package/dist/src/accepted-pack-dependency-resolver.js +31 -0
- package/dist/src/accepted-pack-hydration.d.ts +33 -0
- package/dist/src/accepted-pack-hydration.js +93 -0
- package/dist/src/axm-skill-candidate.d.ts +16 -0
- package/dist/src/axm-skill-candidate.js +80 -0
- package/dist/src/axm-skill-compatibility.d.ts +87 -0
- package/dist/src/axm-skill-compatibility.js +248 -0
- package/dist/src/axm-skill-workspace-compatibility.d.ts +23 -0
- package/dist/src/axm-skill-workspace-compatibility.js +110 -0
- package/dist/src/configured-entry-resolution.d.ts +118 -0
- package/dist/src/configured-entry-resolution.js +735 -0
- package/dist/src/configured-entry.d.ts +38 -0
- package/dist/src/configured-entry.js +8 -0
- package/dist/src/errors.d.ts +113 -0
- package/dist/src/errors.js +71 -0
- package/dist/src/index.d.ts +34 -0
- package/dist/src/index.js +45 -0
- package/dist/src/live.d.ts +25 -0
- package/dist/src/live.js +47 -0
- package/dist/src/named-registry-resolution.d.ts +26 -0
- package/dist/src/named-registry-resolution.js +110 -0
- package/dist/src/pack-dependency-resolution.d.ts +73 -0
- package/dist/src/pack-dependency-resolution.js +422 -0
- package/dist/src/publisher-binding.d.ts +66 -0
- package/dist/src/publisher-binding.js +75 -0
- package/dist/src/release-age-policy.d.ts +55 -0
- package/dist/src/release-age-policy.js +115 -0
- package/dist/src/release-age-posture.d.ts +23 -0
- package/dist/src/release-age-posture.js +15 -0
- package/dist/src/resolution-timeout.d.ts +11 -0
- package/dist/src/resolution-timeout.js +17 -0
- package/dist/src/resolved-pack-dependency.d.ts +32 -0
- package/dist/src/resolved-pack-dependency.js +28 -0
- package/dist/src/source-authority.d.ts +60 -0
- package/dist/src/source-authority.js +70 -0
- package/dist/src/testing.d.ts +40 -0
- package/dist/src/testing.js +40 -0
- package/dist/src/update/constraint-precedence.d.ts +75 -0
- package/dist/src/update/constraint-precedence.js +99 -0
- package/dist/src/update/targeted-update-context.d.ts +101 -0
- package/dist/src/update/targeted-update-context.js +217 -0
- package/dist/src/version-resolution.d.ts +39 -0
- package/dist/src/version-resolution.js +76 -0
- package/package.json +66 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configured-entry resolution vocabulary: what one configured extension's
|
|
3
|
+
* requested source resolved to, and why a resolution could not be made.
|
|
4
|
+
*
|
|
5
|
+
* @experimental This API is unstable and may change without notice.
|
|
6
|
+
*/
|
|
7
|
+
import type * as Option from "effect/Option";
|
|
8
|
+
import type { HookExtensionRef } from "@agentxm/extension-model/unstable/extensions/refs/hook";
|
|
9
|
+
import type { KnowledgeExtensionRef } from "@agentxm/extension-model/unstable/extensions/refs/knowledge";
|
|
10
|
+
import type { McpServerExtensionRef } from "@agentxm/extension-model/unstable/extensions/refs/mcp-server";
|
|
11
|
+
import type { PackRef } from "@agentxm/extension-model/unstable/extensions/refs/pack";
|
|
12
|
+
import type { RuleExtensionRef } from "@agentxm/extension-model/unstable/extensions/refs/rule";
|
|
13
|
+
import type { SkillExtensionRef } from "@agentxm/extension-model/unstable/extensions/refs/skill";
|
|
14
|
+
import type { SubagentExtensionRef } from "@agentxm/extension-model/unstable/extensions/refs/subagent";
|
|
15
|
+
import type { VersionRange } from "@agentxm/extension-model/unstable/version-constraints";
|
|
16
|
+
import type { NamedRegistryResolution } from "@agentxm/extension-model/unstable/sources/source-host-provider";
|
|
17
|
+
import type { ReleaseAgeBypassRecord, ReleaseAgeHoldbackRecord } from "./release-age-policy.js";
|
|
18
|
+
export type ConfiguredEntryFailureReason = "entry-malformed" | "source-not-found" | "source-multiple-matches" | "source-resolution-failed" | "source-timeout";
|
|
19
|
+
export interface ResolvedConfiguredEntry<TRef> {
|
|
20
|
+
readonly ref: TRef;
|
|
21
|
+
readonly versionRange: Option.Option<VersionRange>;
|
|
22
|
+
readonly releaseAge?: {
|
|
23
|
+
readonly holdbacks: ReadonlyArray<ReleaseAgeHoldbackRecord>;
|
|
24
|
+
readonly bypasses: ReadonlyArray<ReleaseAgeBypassRecord>;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export type ResolvedConfiguredSkill = ResolvedConfiguredEntry<SkillExtensionRef>;
|
|
28
|
+
export type ResolvedConfiguredSubagent = ResolvedConfiguredEntry<SubagentExtensionRef>;
|
|
29
|
+
export type ResolvedConfiguredRule = ResolvedConfiguredEntry<RuleExtensionRef>;
|
|
30
|
+
export type ResolvedConfiguredHook = ResolvedConfiguredEntry<HookExtensionRef>;
|
|
31
|
+
export type ResolvedConfiguredKnowledge = ResolvedConfiguredEntry<KnowledgeExtensionRef>;
|
|
32
|
+
export type ResolvedConfiguredMcpServer = ResolvedConfiguredEntry<McpServerExtensionRef>;
|
|
33
|
+
export type ResolvedConfiguredPack = ResolvedConfiguredEntry<PackRef>;
|
|
34
|
+
export type ConfiguredRegistryResolution = NamedRegistryResolution & {
|
|
35
|
+
readonly versionRange: Option.Option<VersionRange>;
|
|
36
|
+
readonly acceptedVersion?: string;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=configured-entry.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configured-entry resolution vocabulary: what one configured extension's
|
|
3
|
+
* requested source resolved to, and why a resolution could not be made.
|
|
4
|
+
*
|
|
5
|
+
* @experimental This API is unstable and may change without notice.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=configured-entry.js.map
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed failures extension resolution constructs. Fields are domain facts;
|
|
3
|
+
* the application error boundary owns rendering, codes, and suggestions.
|
|
4
|
+
*
|
|
5
|
+
* @experimental This API is unstable and may change without notice.
|
|
6
|
+
*/
|
|
7
|
+
import * as Schema from "effect/Schema";
|
|
8
|
+
import type { AxmSkillCompatibility } from "./axm-skill-compatibility.js";
|
|
9
|
+
declare const ExtensionResolutionFailed_base: Schema.Class<ExtensionResolutionFailed, Schema.TaggedStruct<"ExtensionResolutionFailed", {
|
|
10
|
+
readonly category: Schema.Literals<readonly ["conflict", "internal", "network", "not_found", "usage", "validation"]>;
|
|
11
|
+
readonly title: Schema.optional<Schema.String>;
|
|
12
|
+
readonly detail: Schema.optional<Schema.String>;
|
|
13
|
+
readonly recover: Schema.optional<Schema.String>;
|
|
14
|
+
readonly cmd: Schema.optional<Schema.String>;
|
|
15
|
+
readonly suggestions: Schema.optional<Schema.$Array<Schema.Struct<{
|
|
16
|
+
readonly description: Schema.String;
|
|
17
|
+
readonly cmd: Schema.optional<Schema.String>;
|
|
18
|
+
readonly url: Schema.optional<Schema.String>;
|
|
19
|
+
}>>>;
|
|
20
|
+
readonly cause: Schema.optional<Schema.Unknown>;
|
|
21
|
+
}>, import("effect/Cause").YieldableError>;
|
|
22
|
+
/**
|
|
23
|
+
* A resolution policy step could not proceed. The carried fields mirror the
|
|
24
|
+
* application error envelope's inputs 1:1: `category` selects the code,
|
|
25
|
+
* `recover`/`cmd` fold into the leading suggested action, and `title`,
|
|
26
|
+
* `detail`, `suggestions`, and `cause` carry over verbatim.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ExtensionResolutionFailed extends ExtensionResolutionFailed_base {
|
|
29
|
+
}
|
|
30
|
+
declare const SourceAuthorityBlocked_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
31
|
+
readonly _tag: "SourceAuthorityBlocked";
|
|
32
|
+
} & Readonly<A>;
|
|
33
|
+
/** Source-authority evaluation refused the requested transition. */
|
|
34
|
+
export declare class SourceAuthorityBlocked extends SourceAuthorityBlocked_base<{
|
|
35
|
+
readonly detail: string;
|
|
36
|
+
readonly recovery: ReadonlyArray<{
|
|
37
|
+
readonly description: string;
|
|
38
|
+
}>;
|
|
39
|
+
}> {
|
|
40
|
+
}
|
|
41
|
+
declare const AxmSkillCompatibilityUnavailable_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
42
|
+
readonly _tag: "AxmSkillCompatibilityUnavailable";
|
|
43
|
+
} & Readonly<A>;
|
|
44
|
+
/** The AXM compatibility policy did not evaluate the official AXM skill. */
|
|
45
|
+
export declare class AxmSkillCompatibilityUnavailable extends AxmSkillCompatibilityUnavailable_base {
|
|
46
|
+
}
|
|
47
|
+
declare const AxmSkillIncompatible_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
48
|
+
readonly _tag: "AxmSkillIncompatible";
|
|
49
|
+
} & Readonly<A>;
|
|
50
|
+
/**
|
|
51
|
+
* The official AXM skill candidate is incompatible with this CLI. Carries the
|
|
52
|
+
* policy's full compatibility verdict, whose recovery plan the application
|
|
53
|
+
* boundary renders into suggestions.
|
|
54
|
+
*/
|
|
55
|
+
export declare class AxmSkillIncompatible extends AxmSkillIncompatible_base<{
|
|
56
|
+
readonly compatibility: AxmSkillCompatibility;
|
|
57
|
+
}> {
|
|
58
|
+
}
|
|
59
|
+
declare const PackDependencyInvalid_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
60
|
+
readonly _tag: "PackDependencyInvalid";
|
|
61
|
+
} & Readonly<A>;
|
|
62
|
+
/**
|
|
63
|
+
* A declared pack dependency cannot be resolved as requested. `detail`
|
|
64
|
+
* carries the site's fact sentence verbatim.
|
|
65
|
+
*/
|
|
66
|
+
export declare class PackDependencyInvalid extends PackDependencyInvalid_base<{
|
|
67
|
+
readonly detail: string;
|
|
68
|
+
}> {
|
|
69
|
+
}
|
|
70
|
+
declare const PackDependencyConflict_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
71
|
+
readonly _tag: "PackDependencyConflict";
|
|
72
|
+
} & Readonly<A>;
|
|
73
|
+
/**
|
|
74
|
+
* A pack dependency resolution conflicts with workspace state. `detail`
|
|
75
|
+
* carries the site's fact sentence verbatim.
|
|
76
|
+
*/
|
|
77
|
+
export declare class PackDependencyConflict extends PackDependencyConflict_base<{
|
|
78
|
+
readonly detail: string;
|
|
79
|
+
}> {
|
|
80
|
+
}
|
|
81
|
+
declare const PackConstraintShadowed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
82
|
+
readonly _tag: "PackConstraintShadowed";
|
|
83
|
+
} & Readonly<A>;
|
|
84
|
+
/** Workspace authority shadows a pack member outside the pack's constraint. */
|
|
85
|
+
export declare class PackConstraintShadowed extends PackConstraintShadowed_base<{
|
|
86
|
+
readonly packSource: "workspace" | "registry";
|
|
87
|
+
readonly packFqn: string;
|
|
88
|
+
readonly memberFqn: string;
|
|
89
|
+
readonly constraint: string;
|
|
90
|
+
readonly workspaceVersion: string;
|
|
91
|
+
}> {
|
|
92
|
+
}
|
|
93
|
+
declare const PackDependencyMissing_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
94
|
+
readonly _tag: "PackDependencyMissing";
|
|
95
|
+
} & Readonly<A>;
|
|
96
|
+
/** A pack dependency does not exist at its source. */
|
|
97
|
+
export declare class PackDependencyMissing extends PackDependencyMissing_base<{
|
|
98
|
+
readonly dependencyTarget: string;
|
|
99
|
+
}> {
|
|
100
|
+
}
|
|
101
|
+
declare const PackDependencyUnsatisfied_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
102
|
+
readonly _tag: "PackDependencyUnsatisfied";
|
|
103
|
+
} & Readonly<A>;
|
|
104
|
+
/** No visible dependency version satisfies the pack's constraint. */
|
|
105
|
+
export declare class PackDependencyUnsatisfied extends PackDependencyUnsatisfied_base<{
|
|
106
|
+
readonly dependencyTarget: string;
|
|
107
|
+
readonly constraint: string;
|
|
108
|
+
}> {
|
|
109
|
+
}
|
|
110
|
+
/** Every failure pack dependency resolution constructs. */
|
|
111
|
+
export type PackDependencyResolutionFailure = PackDependencyInvalid | PackDependencyConflict | PackConstraintShadowed | PackDependencyMissing | PackDependencyUnsatisfied;
|
|
112
|
+
export {};
|
|
113
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed failures extension resolution constructs. Fields are domain facts;
|
|
3
|
+
* the application error boundary owns rendering, codes, and suggestions.
|
|
4
|
+
*
|
|
5
|
+
* @experimental This API is unstable and may change without notice.
|
|
6
|
+
*/
|
|
7
|
+
import * as Data from "effect/Data";
|
|
8
|
+
import * as Schema from "effect/Schema";
|
|
9
|
+
const CarriedSuggestedActionSchema = Schema.Struct({
|
|
10
|
+
description: Schema.String,
|
|
11
|
+
cmd: Schema.optional(Schema.String),
|
|
12
|
+
url: Schema.optional(Schema.String),
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* A resolution policy step could not proceed. The carried fields mirror the
|
|
16
|
+
* application error envelope's inputs 1:1: `category` selects the code,
|
|
17
|
+
* `recover`/`cmd` fold into the leading suggested action, and `title`,
|
|
18
|
+
* `detail`, `suggestions`, and `cause` carry over verbatim.
|
|
19
|
+
*/
|
|
20
|
+
export class ExtensionResolutionFailed extends Schema.TaggedError()("ExtensionResolutionFailed", {
|
|
21
|
+
category: Schema.Literals([
|
|
22
|
+
"conflict",
|
|
23
|
+
"internal",
|
|
24
|
+
"network",
|
|
25
|
+
"not_found",
|
|
26
|
+
"usage",
|
|
27
|
+
"validation",
|
|
28
|
+
]),
|
|
29
|
+
title: Schema.optional(Schema.String),
|
|
30
|
+
detail: Schema.optional(Schema.String),
|
|
31
|
+
recover: Schema.optional(Schema.String),
|
|
32
|
+
cmd: Schema.optional(Schema.String),
|
|
33
|
+
suggestions: Schema.optional(Schema.Array(CarriedSuggestedActionSchema)),
|
|
34
|
+
cause: Schema.optional(Schema.Unknown),
|
|
35
|
+
}) {
|
|
36
|
+
}
|
|
37
|
+
/** Source-authority evaluation refused the requested transition. */
|
|
38
|
+
export class SourceAuthorityBlocked extends Data.TaggedError("SourceAuthorityBlocked") {
|
|
39
|
+
}
|
|
40
|
+
/** The AXM compatibility policy did not evaluate the official AXM skill. */
|
|
41
|
+
export class AxmSkillCompatibilityUnavailable extends Data.TaggedError("AxmSkillCompatibilityUnavailable") {
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The official AXM skill candidate is incompatible with this CLI. Carries the
|
|
45
|
+
* policy's full compatibility verdict, whose recovery plan the application
|
|
46
|
+
* boundary renders into suggestions.
|
|
47
|
+
*/
|
|
48
|
+
export class AxmSkillIncompatible extends Data.TaggedError("AxmSkillIncompatible") {
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* A declared pack dependency cannot be resolved as requested. `detail`
|
|
52
|
+
* carries the site's fact sentence verbatim.
|
|
53
|
+
*/
|
|
54
|
+
export class PackDependencyInvalid extends Data.TaggedError("PackDependencyInvalid") {
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A pack dependency resolution conflicts with workspace state. `detail`
|
|
58
|
+
* carries the site's fact sentence verbatim.
|
|
59
|
+
*/
|
|
60
|
+
export class PackDependencyConflict extends Data.TaggedError("PackDependencyConflict") {
|
|
61
|
+
}
|
|
62
|
+
/** Workspace authority shadows a pack member outside the pack's constraint. */
|
|
63
|
+
export class PackConstraintShadowed extends Data.TaggedError("PackConstraintShadowed") {
|
|
64
|
+
}
|
|
65
|
+
/** A pack dependency does not exist at its source. */
|
|
66
|
+
export class PackDependencyMissing extends Data.TaggedError("PackDependencyMissing") {
|
|
67
|
+
}
|
|
68
|
+
/** No visible dependency version satisfies the pack's constraint. */
|
|
69
|
+
export class PackDependencyUnsatisfied extends Data.TaggedError("PackDependencyUnsatisfied") {
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agentxm/extension-resolution public API.
|
|
3
|
+
*
|
|
4
|
+
* Extension resolution policy: which source is allowed to supply a
|
|
5
|
+
* configured extension, which visible version that source resolves to under
|
|
6
|
+
* the minimum-release-age policy, which publisher binding a proposed
|
|
7
|
+
* acceptance replaces, how a Pack's declared members resolve, and whether an
|
|
8
|
+
* official AXM skill candidate is compatible with this CLI. Pure over the
|
|
9
|
+
* Registry index contract and workspace state; the provider that fetches the
|
|
10
|
+
* index applies these through a port.
|
|
11
|
+
*
|
|
12
|
+
* @experimental This API is unstable and may change without notice.
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
export { AxmSkillCompatibilityUnavailable, AxmSkillIncompatible, ExtensionResolutionFailed, PackConstraintShadowed, PackDependencyConflict, PackDependencyInvalid, PackDependencyMissing, PackDependencyUnsatisfied, SourceAuthorityBlocked, type PackDependencyResolutionFailure, } from "./errors.js";
|
|
16
|
+
export { type ReleaseAgeBypassRecord, type ReleaseAgeHoldbackRecord, type ReleaseAgeOperationEvidence, type ReleaseAgeRecord, type ReleaseAgeRecordBase, filterMatureVersions, formatMinimumReleaseAgeSeconds, isVersionEntryEligibleAt, isVersionEntryMature, normalizeReleaseAgeRecords, parseMinimumReleaseAge, releaseAgeEvidence, releaseAgeExemptionForIdentity, releaseAgeHoldbackWarning, } from "./release-age-policy.js";
|
|
17
|
+
export { type ReleaseAgeVersionResolution, resolveVersionEntryForReleaseAge, resolveVersionEntryWithReleaseAge, } from "./version-resolution.js";
|
|
18
|
+
export { decideNamedRegistryVersion, namedRegistryCandidates, } from "./named-registry-resolution.js";
|
|
19
|
+
export { ReleaseAgePosture, type ReleaseAgePostureValue } from "./release-age-posture.js";
|
|
20
|
+
export { CONFIGURED_ENTRY_RESOLUTION_TIMEOUT, withConfiguredEntryResolutionTimeout, } from "./resolution-timeout.js";
|
|
21
|
+
export { evaluateSourceAuthority, type SourceAuthorityBlockedCause, type SourceAuthorityBlockedFact, type SourceAuthorityDecision, type SourceAuthorityInput, type SourceAuthorityRelationship, type SourceAuthorityTarget, type WorkspaceAuthorityStatus, } from "./source-authority.js";
|
|
22
|
+
export { type ConfiguredEntryFailureReason, type ConfiguredRegistryResolution, type ResolvedConfiguredEntry, type ResolvedConfiguredHook, type ResolvedConfiguredKnowledge, type ResolvedConfiguredMcpServer, type ResolvedConfiguredPack, type ResolvedConfiguredRule, type ResolvedConfiguredSkill, type ResolvedConfiguredSubagent, } from "./configured-entry.js";
|
|
23
|
+
export { makeConfiguredReleaseAgeEvaluation, resolveConfiguredHook, resolveConfiguredKnowledge, resolveConfiguredMcpServer, resolveConfiguredPack, resolveConfiguredRegistryEntry, resolveConfiguredRule, resolveConfiguredSkill, resolveConfiguredSubagent, } from "./configured-entry-resolution.js";
|
|
24
|
+
export { classifyPublisherBindingTransition, describePublisherBindingTransition, publisherTransitionWarning, registryBindingProposal, type PublisherBindingTransition, type RegistryBindingProposal, } from "./publisher-binding.js";
|
|
25
|
+
export { ResolvedPackDependencyMapSchema, ResolvedPackDependencySchema, type ResolvedPackDependency, type ResolvedPackDependencyMap, } from "./resolved-pack-dependency.js";
|
|
26
|
+
export { resolvePackDependencies, resolvePackDependenciesWithReleaseAge, type PackDependencyRefResolver, type ReleaseAgeAwarePackDependencyResolution, type ResolvedPackDependencies, type WorkspacePackDependencyResolution, type WorkspacePackDependencyResolver, } from "./pack-dependency-resolution.js";
|
|
27
|
+
export { acceptedPackDependencyResolver } from "./accepted-pack-dependency-resolver.js";
|
|
28
|
+
export { AXM_SKILL_BUNDLED_APPLY_COMMAND, AXM_SKILL_BUNDLED_PREVIEW_COMMAND, AXM_SKILL_CLI_VERSION_METADATA_KEY, AXM_SKILL_CLI_VERSION_RANGE_METADATA_KEY, AXM_SKILL_FQN, AXM_SKILL_REGISTRY_APPLY_COMMAND, AXM_SKILL_REGISTRY_PREVIEW_COMMAND, AxmSkillCompatibilityPolicy, AxmSkillCompatibilityRecoveryActionSchema, AxmSkillCompatibilityRecoverySchema, AxmSkillCompatibilityRecoveryStepSchema, AxmSkillCompatibilityReasonSchema, AxmSkillCompatibilitySchema, evaluateAxmSkillCompatibility, formatAxmSkillCompatibilityTarget, makeAxmSkillCompatibilityPolicyLayer, validateAxmSkillCliVersionRange, type AxmSkillCliVersionRangeValidation, type AxmSkillCompatibility, type AxmSkillCompatibilityCandidate, type AxmSkillCompatibilityInput, type AxmSkillCompatibilityPolicyInput, type AxmSkillCompatibilityPolicyService, type AxmSkillCompatibilityReason, type AxmSkillCompatibilityRecovery, type AxmSkillCompatibilityRecoveryAction, type AxmSkillCompatibilityRecoveryStep, } from "./axm-skill-compatibility.js";
|
|
29
|
+
export { evaluateAxmSkillCandidate, validateAxmSkillCandidate, type ValidateAxmSkillCandidateArgs, } from "./axm-skill-candidate.js";
|
|
30
|
+
export { declaresOfficialAxmSkill, readAxmSkillWorkspaceCompatibility, type ReadAxmSkillWorkspaceCompatibilityArgs, } from "./axm-skill-workspace-compatibility.js";
|
|
31
|
+
export { classifyTargetedUpdate, resolveTargetedUpdateContext, type ClassifyTargetedUpdateArgs, type TargetedUpdateAuthority, type TargetedUpdateBlocker, type TargetedUpdateContext, type TargetedUpdateContextFailure, type TargetedUpdateEffect, type TargetedUpdateOwnership, type TargetedUpdatePublicContext, type TargetedUpdateTarget, type TargetedUpdateTargetType, } from "./update/targeted-update-context.js";
|
|
32
|
+
export { detectHoldbackWarnings, resolveConstrainedVersion, type ConstraintResolutionResult, type PackConstraint, type UpdateConstraints, } from "./update/constraint-precedence.js";
|
|
33
|
+
export { hydrateAcceptedPackRef } from "./accepted-pack-hydration.js";
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agentxm/extension-resolution public API.
|
|
3
|
+
*
|
|
4
|
+
* Extension resolution policy: which source is allowed to supply a
|
|
5
|
+
* configured extension, which visible version that source resolves to under
|
|
6
|
+
* the minimum-release-age policy, which publisher binding a proposed
|
|
7
|
+
* acceptance replaces, how a Pack's declared members resolve, and whether an
|
|
8
|
+
* official AXM skill candidate is compatible with this CLI. Pure over the
|
|
9
|
+
* Registry index contract and workspace state; the provider that fetches the
|
|
10
|
+
* index applies these through a port.
|
|
11
|
+
*
|
|
12
|
+
* @experimental This API is unstable and may change without notice.
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
export { AxmSkillCompatibilityUnavailable, AxmSkillIncompatible, ExtensionResolutionFailed, PackConstraintShadowed, PackDependencyConflict, PackDependencyInvalid, PackDependencyMissing, PackDependencyUnsatisfied, SourceAuthorityBlocked, } from "./errors.js";
|
|
16
|
+
export { filterMatureVersions, formatMinimumReleaseAgeSeconds, isVersionEntryEligibleAt, isVersionEntryMature, normalizeReleaseAgeRecords, parseMinimumReleaseAge, releaseAgeEvidence, releaseAgeExemptionForIdentity, releaseAgeHoldbackWarning, } from "./release-age-policy.js";
|
|
17
|
+
export { resolveVersionEntryForReleaseAge, resolveVersionEntryWithReleaseAge, } from "./version-resolution.js";
|
|
18
|
+
export { decideNamedRegistryVersion, namedRegistryCandidates, } from "./named-registry-resolution.js";
|
|
19
|
+
// The operator's posture for one invocation, and the bound on how long
|
|
20
|
+
// resolving one configured entry may take.
|
|
21
|
+
export { ReleaseAgePosture } from "./release-age-posture.js";
|
|
22
|
+
export { CONFIGURED_ENTRY_RESOLUTION_TIMEOUT, withConfiguredEntryResolutionTimeout, } from "./resolution-timeout.js";
|
|
23
|
+
// Which source may supply a configured extension.
|
|
24
|
+
export { evaluateSourceAuthority, } from "./source-authority.js";
|
|
25
|
+
// Configured-entry vocabulary and resolution.
|
|
26
|
+
export {} from "./configured-entry.js";
|
|
27
|
+
export { makeConfiguredReleaseAgeEvaluation, resolveConfiguredHook, resolveConfiguredKnowledge, resolveConfiguredMcpServer, resolveConfiguredPack, resolveConfiguredRegistryEntry, resolveConfiguredRule, resolveConfiguredSkill, resolveConfiguredSubagent, } from "./configured-entry-resolution.js";
|
|
28
|
+
// Publisher binding trust classification.
|
|
29
|
+
export { classifyPublisherBindingTransition, describePublisherBindingTransition, publisherTransitionWarning, registryBindingProposal, } from "./publisher-binding.js";
|
|
30
|
+
// Pack dependency resolution.
|
|
31
|
+
export { ResolvedPackDependencyMapSchema, ResolvedPackDependencySchema, } from "./resolved-pack-dependency.js";
|
|
32
|
+
export { resolvePackDependencies, resolvePackDependenciesWithReleaseAge, } from "./pack-dependency-resolution.js";
|
|
33
|
+
export { acceptedPackDependencyResolver } from "./accepted-pack-dependency-resolver.js";
|
|
34
|
+
// Official AXM skill compatibility policy.
|
|
35
|
+
export { AXM_SKILL_BUNDLED_APPLY_COMMAND, AXM_SKILL_BUNDLED_PREVIEW_COMMAND, AXM_SKILL_CLI_VERSION_METADATA_KEY, AXM_SKILL_CLI_VERSION_RANGE_METADATA_KEY, AXM_SKILL_FQN, AXM_SKILL_REGISTRY_APPLY_COMMAND, AXM_SKILL_REGISTRY_PREVIEW_COMMAND, AxmSkillCompatibilityPolicy, AxmSkillCompatibilityRecoveryActionSchema, AxmSkillCompatibilityRecoverySchema, AxmSkillCompatibilityRecoveryStepSchema, AxmSkillCompatibilityReasonSchema, AxmSkillCompatibilitySchema, evaluateAxmSkillCompatibility, formatAxmSkillCompatibilityTarget, makeAxmSkillCompatibilityPolicyLayer, validateAxmSkillCliVersionRange, } from "./axm-skill-compatibility.js";
|
|
36
|
+
export { evaluateAxmSkillCandidate, validateAxmSkillCandidate, } from "./axm-skill-candidate.js";
|
|
37
|
+
export { declaresOfficialAxmSkill, readAxmSkillWorkspaceCompatibility, } from "./axm-skill-workspace-compatibility.js";
|
|
38
|
+
// Targeted update classification: who owns the declaration a named update
|
|
39
|
+
// would move, whether it may move, and the freshness witness apply rechecks.
|
|
40
|
+
export { classifyTargetedUpdate, resolveTargetedUpdateContext, } from "./update/targeted-update-context.js";
|
|
41
|
+
// Which constraint governs an update when a workspace and its Packs each
|
|
42
|
+
// declare one, and which newer releases that precedence holds back.
|
|
43
|
+
export { detectHoldbackWarnings, resolveConstrainedVersion, } from "./update/constraint-precedence.js";
|
|
44
|
+
export { hydrateAcceptedPackRef } from "./accepted-pack-hydration.js";
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implementation of the source-resolution composition port this package owns
|
|
3
|
+
* the policy for.
|
|
4
|
+
*
|
|
5
|
+
* `@agentxm/extension-sources` declares the official AXM skill candidate gate
|
|
6
|
+
* as a port because a supporting integration may not own AXM trust policy.
|
|
7
|
+
* Resolution owns that policy, so the Live is composed here rather than at
|
|
8
|
+
* the application boundary; the composition root only composes Layers.
|
|
9
|
+
*
|
|
10
|
+
* The catalog port's Live belongs to `@agentxm/workspace-projection`, which
|
|
11
|
+
* owns the agent-selection facts it reads.
|
|
12
|
+
*
|
|
13
|
+
* @experimental This API is unstable and may change without notice.
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
*/
|
|
16
|
+
import * as Layer from "effect/Layer";
|
|
17
|
+
import { AxmSkillCandidateGate } from "@agentxm/extension-sources";
|
|
18
|
+
/**
|
|
19
|
+
* The gate renders the recovery command and target exactly as the registry
|
|
20
|
+
* host provider rendered them before the port existed. Its only failure is
|
|
21
|
+
* the policy declining to evaluate, which travels in `cause` so the
|
|
22
|
+
* application boundary renders the sentence it renders everywhere else.
|
|
23
|
+
*/
|
|
24
|
+
export declare const AxmSkillCandidateGateLive: Layer.Layer<AxmSkillCandidateGate, never, never>;
|
|
25
|
+
//# sourceMappingURL=live.d.ts.map
|
package/dist/src/live.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implementation of the source-resolution composition port this package owns
|
|
3
|
+
* the policy for.
|
|
4
|
+
*
|
|
5
|
+
* `@agentxm/extension-sources` declares the official AXM skill candidate gate
|
|
6
|
+
* as a port because a supporting integration may not own AXM trust policy.
|
|
7
|
+
* Resolution owns that policy, so the Live is composed here rather than at
|
|
8
|
+
* the application boundary; the composition root only composes Layers.
|
|
9
|
+
*
|
|
10
|
+
* The catalog port's Live belongs to `@agentxm/workspace-projection`, which
|
|
11
|
+
* owns the agent-selection facts it reads.
|
|
12
|
+
*
|
|
13
|
+
* @experimental This API is unstable and may change without notice.
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
*/
|
|
16
|
+
import * as Effect from "effect/Effect";
|
|
17
|
+
import * as Layer from "effect/Layer";
|
|
18
|
+
import { AxmSkillCandidateGate, AxmSkillGateUnavailable, } from "@agentxm/extension-sources";
|
|
19
|
+
import { evaluateAxmSkillCandidate } from "./axm-skill-candidate.js";
|
|
20
|
+
import { AXM_SKILL_BUNDLED_PREVIEW_COMMAND, formatAxmSkillCompatibilityTarget, } from "./axm-skill-compatibility.js";
|
|
21
|
+
/**
|
|
22
|
+
* The gate renders the recovery command and target exactly as the registry
|
|
23
|
+
* host provider rendered them before the port existed. Its only failure is
|
|
24
|
+
* the policy declining to evaluate, which travels in `cause` so the
|
|
25
|
+
* application boundary renders the sentence it renders everywhere else.
|
|
26
|
+
*/
|
|
27
|
+
export const AxmSkillCandidateGateLive = Layer.succeed(AxmSkillCandidateGate, {
|
|
28
|
+
evaluate: (candidate) => evaluateAxmSkillCandidate({
|
|
29
|
+
ref: candidate.ref,
|
|
30
|
+
packageRoot: candidate.packageRoot,
|
|
31
|
+
skillSourcePath: candidate.skillSourcePath,
|
|
32
|
+
}).pipe(Effect.map((result) => result === null
|
|
33
|
+
? null
|
|
34
|
+
: {
|
|
35
|
+
status: result.status,
|
|
36
|
+
detail: result.detail,
|
|
37
|
+
recoveryCommand: result.recovery.action === "update-registry-skill"
|
|
38
|
+
? AXM_SKILL_BUNDLED_PREVIEW_COMMAND
|
|
39
|
+
: result.recovery.nextAction,
|
|
40
|
+
recoveryTarget: formatAxmSkillCompatibilityTarget(result.recovery),
|
|
41
|
+
}), Effect.mapError((failure) => new AxmSkillGateUnavailable({
|
|
42
|
+
category: "internal",
|
|
43
|
+
detail: "AXM compatibility policy did not evaluate the official AXM skill",
|
|
44
|
+
cause: failure,
|
|
45
|
+
}))),
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=live.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Named Registry target resolution: the index-level decision and the ordered
|
|
3
|
+
* candidates a provider may verify before selecting, under one release-age
|
|
4
|
+
* evaluation and the caller's accepted identity.
|
|
5
|
+
*
|
|
6
|
+
* The provider that owns the index (`@agentxm/extension-sources`) consumes
|
|
7
|
+
* these through its `RegistryResolutionPolicy` port, so an integration never
|
|
8
|
+
* carries selection policy of its own.
|
|
9
|
+
*
|
|
10
|
+
* @experimental This API is unstable and may change without notice.
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import type { NamedRegistryCandidate, NamedRegistryFindOptions, NamedRegistryVersionDecision } from "@agentxm/extension-model/unstable/sources/source-host-provider";
|
|
14
|
+
import type { ExtensionIndex } from "@agentxm/registry-protocol/unstable/registry/schema";
|
|
15
|
+
/**
|
|
16
|
+
* Decide which version of a visible index a named request selects.
|
|
17
|
+
*/
|
|
18
|
+
export declare const decideNamedRegistryVersion: (index: ExtensionIndex, options: NamedRegistryFindOptions) => NamedRegistryVersionDecision;
|
|
19
|
+
/**
|
|
20
|
+
* Candidates a provider may verify one by one when selection depends on
|
|
21
|
+
* archive content (the official AXM skill): selectable versions newest
|
|
22
|
+
* first, then, when no exemption applies, the under-age versions that would
|
|
23
|
+
* be held.
|
|
24
|
+
*/
|
|
25
|
+
export declare const namedRegistryCandidates: (index: ExtensionIndex, options: NamedRegistryFindOptions) => ReadonlyArray<NamedRegistryCandidate>;
|
|
26
|
+
//# sourceMappingURL=named-registry-resolution.d.ts.map
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Named Registry target resolution: the index-level decision and the ordered
|
|
3
|
+
* candidates a provider may verify before selecting, under one release-age
|
|
4
|
+
* evaluation and the caller's accepted identity.
|
|
5
|
+
*
|
|
6
|
+
* The provider that owns the index (`@agentxm/extension-sources`) consumes
|
|
7
|
+
* these through its `RegistryResolutionPolicy` port, so an integration never
|
|
8
|
+
* carries selection policy of its own.
|
|
9
|
+
*
|
|
10
|
+
* @experimental This API is unstable and may change without notice.
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import * as Option from "effect/Option";
|
|
14
|
+
import * as semver from "semver";
|
|
15
|
+
import { isVersionEntryEligibleAt, releaseAgeEvidence, releaseAgeExemptionForIdentity, } from "./release-age-policy.js";
|
|
16
|
+
import { resolveVersionEntryForReleaseAge } from "./version-resolution.js";
|
|
17
|
+
/** The accepted version counts only when the Registry identity still matches. */
|
|
18
|
+
const acceptedVersionFor = (index, options) => options.accepted?.publisherBindingId === index.publisherBindingId
|
|
19
|
+
? options.accepted.version
|
|
20
|
+
: undefined;
|
|
21
|
+
const isExactRequest = (versionRange) => Option.isSome(versionRange) && semver.valid(versionRange.value) === versionRange.value;
|
|
22
|
+
/**
|
|
23
|
+
* Decide which version of a visible index a named request selects.
|
|
24
|
+
*/
|
|
25
|
+
export const decideNamedRegistryVersion = (index, options) => {
|
|
26
|
+
const exemption = releaseAgeExemptionForIdentity(options.releaseAgeEvaluation, {
|
|
27
|
+
owner: index.owner,
|
|
28
|
+
type: index.type,
|
|
29
|
+
name: index.name,
|
|
30
|
+
});
|
|
31
|
+
const resolution = resolveVersionEntryForReleaseAge(index.versions, options.versionRange, options.releaseAgeEvaluation, exemption, acceptedVersionFor(index, options));
|
|
32
|
+
switch (resolution.kind) {
|
|
33
|
+
case "version_unsatisfied":
|
|
34
|
+
return isExactRequest(options.versionRange)
|
|
35
|
+
? { kind: "not_found" }
|
|
36
|
+
: {
|
|
37
|
+
kind: "version_unsatisfied",
|
|
38
|
+
requestedRange: Option.getOrElse(options.versionRange, () => "*"),
|
|
39
|
+
};
|
|
40
|
+
case "policy_held":
|
|
41
|
+
return {
|
|
42
|
+
kind: "policy_held",
|
|
43
|
+
...(Option.isSome(options.versionRange)
|
|
44
|
+
? { requestedRange: options.versionRange.value }
|
|
45
|
+
: {}),
|
|
46
|
+
candidate: resolution.candidate,
|
|
47
|
+
};
|
|
48
|
+
case "exempted":
|
|
49
|
+
return {
|
|
50
|
+
kind: "exempted",
|
|
51
|
+
version: resolution.version.version,
|
|
52
|
+
bypassed: resolution.bypassed,
|
|
53
|
+
exemption: resolution.exemption,
|
|
54
|
+
};
|
|
55
|
+
case "selected":
|
|
56
|
+
return {
|
|
57
|
+
kind: "selected",
|
|
58
|
+
version: resolution.version.version,
|
|
59
|
+
...(resolution.newerHeld === undefined ? {} : { newerHeld: resolution.newerHeld }),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const versionsMatchingRequest = (versions, versionRange) => {
|
|
64
|
+
const requested = Option.getOrElse(versionRange, () => "*");
|
|
65
|
+
const exact = isExactRequest(versionRange);
|
|
66
|
+
return versions
|
|
67
|
+
.filter((entry) => exact
|
|
68
|
+
? entry.version === requested
|
|
69
|
+
: entry.yankedAt === undefined && semver.satisfies(entry.version, requested))
|
|
70
|
+
.sort((left, right) => semver.compareBuild(right.version, left.version));
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Candidates a provider may verify one by one when selection depends on
|
|
74
|
+
* archive content (the official AXM skill): selectable versions newest
|
|
75
|
+
* first, then, when no exemption applies, the under-age versions that would
|
|
76
|
+
* be held.
|
|
77
|
+
*/
|
|
78
|
+
export const namedRegistryCandidates = (index, options) => {
|
|
79
|
+
const evaluation = options.releaseAgeEvaluation;
|
|
80
|
+
const exemption = releaseAgeExemptionForIdentity(evaluation, {
|
|
81
|
+
owner: index.owner,
|
|
82
|
+
type: index.type,
|
|
83
|
+
name: index.name,
|
|
84
|
+
});
|
|
85
|
+
const acceptedVersion = acceptedVersionFor(index, options);
|
|
86
|
+
const matching = versionsMatchingRequest(index.versions, options.versionRange);
|
|
87
|
+
const eligible = (entry) => isVersionEntryEligibleAt(entry, evaluation);
|
|
88
|
+
const selectable = matching
|
|
89
|
+
.filter((entry) => exemption !== undefined || entry.version === acceptedVersion || eligible(entry))
|
|
90
|
+
.map((entry) => ({
|
|
91
|
+
version: entry.version,
|
|
92
|
+
outcome: exemption !== undefined && !eligible(entry)
|
|
93
|
+
? {
|
|
94
|
+
kind: "exempted",
|
|
95
|
+
bypassed: releaseAgeEvidence(entry, evaluation),
|
|
96
|
+
exemption,
|
|
97
|
+
}
|
|
98
|
+
: { kind: "selected" },
|
|
99
|
+
}));
|
|
100
|
+
const held = exemption === undefined
|
|
101
|
+
? matching
|
|
102
|
+
.filter((entry) => !eligible(entry))
|
|
103
|
+
.map((entry) => ({
|
|
104
|
+
version: entry.version,
|
|
105
|
+
outcome: { kind: "held", candidate: releaseAgeEvidence(entry, evaluation) },
|
|
106
|
+
}))
|
|
107
|
+
: [];
|
|
108
|
+
return [...selectable, ...held];
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=named-registry-resolution.js.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pack dependency resolution: every declared member resolved to one exact
|
|
3
|
+
* identity under the pack's constraints, workspace authority, and the
|
|
4
|
+
* minimum-release-age policy.
|
|
5
|
+
*
|
|
6
|
+
* @experimental This API is unstable and may change without notice.
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import * as Option from "effect/Option";
|
|
11
|
+
import type * as Duration from "effect/Duration";
|
|
12
|
+
import type { ExtensionRef } from "@agentxm/extension-model/unstable/extensions/refs/extension-ref";
|
|
13
|
+
import type { ExtensionName, ExtensionType, Handle } from "@agentxm/extension-model/unstable/extensions";
|
|
14
|
+
import type { PackRef } from "@agentxm/extension-model/unstable/extensions/refs/pack";
|
|
15
|
+
import type { ReleaseAgeEvaluation } from "@agentxm/extension-model/unstable/extensions/release-age";
|
|
16
|
+
import type { RegistrySource } from "@agentxm/extension-model/unstable/sources/types";
|
|
17
|
+
import type { VersionRange } from "@agentxm/extension-model/unstable/version-constraints";
|
|
18
|
+
import type { SourceHostProvidersService, SourceResolutionFailure } from "@agentxm/extension-sources";
|
|
19
|
+
import { SourceAuthorityBlocked, type PackDependencyResolutionFailure } from "./errors.js";
|
|
20
|
+
import type { ReleaseAgeBypassRecord, ReleaseAgeHoldbackRecord } from "./release-age-policy.js";
|
|
21
|
+
import type { ResolvedPackDependencyMap } from "./resolved-pack-dependency.js";
|
|
22
|
+
import type { SourceAuthorityBlockedFact } from "./source-authority.js";
|
|
23
|
+
/** Failures pack dependency resolution can surface. */
|
|
24
|
+
type PackDependencyResolutionError = SourceResolutionFailure | PackDependencyResolutionFailure | SourceAuthorityBlocked;
|
|
25
|
+
/** Every extension type a pack can depend on — packs cannot nest. */
|
|
26
|
+
type SupportedPackDependencyType = Exclude<ExtensionType, "pack">;
|
|
27
|
+
export type WorkspacePackDependencyResolution = {
|
|
28
|
+
readonly kind: "absent";
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: "selected";
|
|
31
|
+
readonly ref: ExtensionRef;
|
|
32
|
+
} | {
|
|
33
|
+
readonly kind: "blocked";
|
|
34
|
+
readonly fact: SourceAuthorityBlockedFact;
|
|
35
|
+
};
|
|
36
|
+
export type WorkspacePackDependencyResolver<E = never, R = never> = (args: {
|
|
37
|
+
readonly owner: Handle;
|
|
38
|
+
readonly type: SupportedPackDependencyType;
|
|
39
|
+
readonly name: ExtensionName;
|
|
40
|
+
readonly constraint: VersionRange;
|
|
41
|
+
readonly root: string;
|
|
42
|
+
}) => Effect.Effect<WorkspacePackDependencyResolution, E, R>;
|
|
43
|
+
/** Resolve a Pack member from an already-authorized immutable candidate. */
|
|
44
|
+
export type PackDependencyRefResolver<E = never, R = never> = (args: {
|
|
45
|
+
readonly owner: Handle;
|
|
46
|
+
readonly type: SupportedPackDependencyType;
|
|
47
|
+
readonly name: ExtensionName;
|
|
48
|
+
readonly constraint: VersionRange;
|
|
49
|
+
readonly root: string;
|
|
50
|
+
}) => Effect.Effect<ExtensionRef, E, R>;
|
|
51
|
+
export interface ResolvedPackDependencies {
|
|
52
|
+
readonly resolvedSkills: ResolvedPackDependencyMap;
|
|
53
|
+
readonly resolvedMcpServers: ResolvedPackDependencyMap;
|
|
54
|
+
readonly resolvedSubagents: ResolvedPackDependencyMap;
|
|
55
|
+
readonly resolvedRules: ResolvedPackDependencyMap;
|
|
56
|
+
readonly resolvedHooks: ResolvedPackDependencyMap;
|
|
57
|
+
readonly resolvedKnowledge: ResolvedPackDependencyMap;
|
|
58
|
+
readonly dependencyRefs: ReadonlyArray<ExtensionRef>;
|
|
59
|
+
}
|
|
60
|
+
export type ReleaseAgeAwarePackDependencyResolution = {
|
|
61
|
+
readonly kind: "selected";
|
|
62
|
+
readonly dependencies: ResolvedPackDependencies;
|
|
63
|
+
readonly holdbacks: ReadonlyArray<ReleaseAgeHoldbackRecord>;
|
|
64
|
+
readonly bypasses: ReadonlyArray<ReleaseAgeBypassRecord>;
|
|
65
|
+
} | {
|
|
66
|
+
readonly kind: "policy_held";
|
|
67
|
+
readonly holdbacks: ReadonlyArray<ReleaseAgeHoldbackRecord>;
|
|
68
|
+
readonly bypasses: ReadonlyArray<ReleaseAgeBypassRecord>;
|
|
69
|
+
};
|
|
70
|
+
export declare const resolvePackDependencies: <E = never, R = never>(pack: PackRef, sources: SourceHostProvidersService, minimumReleaseAge?: Option.Option<Duration.Duration>, sourceOverride?: RegistrySource, workspaceResolver?: WorkspacePackDependencyResolver<E, R>, dependencyResolver?: PackDependencyRefResolver<E, R>) => Effect.Effect<ResolvedPackDependencies, PackDependencyResolutionError | E, R>;
|
|
71
|
+
export declare const resolvePackDependenciesWithReleaseAge: <E = never, R = never>(pack: PackRef, sources: SourceHostProvidersService, evaluation: ReleaseAgeEvaluation, sourceOverride?: RegistrySource, workspaceResolver?: WorkspacePackDependencyResolver<E, R>, dependencyResolver?: PackDependencyRefResolver<E, R>) => Effect.Effect<ReleaseAgeAwarePackDependencyResolution, PackDependencyResolutionError | E, R>;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=pack-dependency-resolution.d.ts.map
|