@xemahq/agent-session-runtime 0.1.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 (53) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +61 -0
  3. package/dist/index.d.ts +10 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +26 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/composer.d.ts +14 -0
  8. package/dist/lib/composer.d.ts.map +1 -0
  9. package/dist/lib/composer.js +595 -0
  10. package/dist/lib/composer.js.map +1 -0
  11. package/dist/lib/composition-workspace-manifest.d.ts +44 -0
  12. package/dist/lib/composition-workspace-manifest.d.ts.map +1 -0
  13. package/dist/lib/composition-workspace-manifest.js +143 -0
  14. package/dist/lib/composition-workspace-manifest.js.map +1 -0
  15. package/dist/lib/dispatch-contract.d.ts +48 -0
  16. package/dist/lib/dispatch-contract.d.ts.map +1 -0
  17. package/dist/lib/dispatch-contract.js +8 -0
  18. package/dist/lib/dispatch-contract.js.map +1 -0
  19. package/dist/lib/drift-detector.d.ts +40 -0
  20. package/dist/lib/drift-detector.d.ts.map +1 -0
  21. package/dist/lib/drift-detector.js +386 -0
  22. package/dist/lib/drift-detector.js.map +1 -0
  23. package/dist/lib/environment-resolver.d.ts +84 -0
  24. package/dist/lib/environment-resolver.d.ts.map +1 -0
  25. package/dist/lib/environment-resolver.js +181 -0
  26. package/dist/lib/environment-resolver.js.map +1 -0
  27. package/dist/lib/errors.d.ts +12 -0
  28. package/dist/lib/errors.d.ts.map +1 -0
  29. package/dist/lib/errors.js +27 -0
  30. package/dist/lib/errors.js.map +1 -0
  31. package/dist/lib/lifecycle-state.d.ts +23 -0
  32. package/dist/lib/lifecycle-state.d.ts.map +1 -0
  33. package/dist/lib/lifecycle-state.js +70 -0
  34. package/dist/lib/lifecycle-state.js.map +1 -0
  35. package/dist/lib/skill-bundle-template-resolver.d.ts +23 -0
  36. package/dist/lib/skill-bundle-template-resolver.d.ts.map +1 -0
  37. package/dist/lib/skill-bundle-template-resolver.js +54 -0
  38. package/dist/lib/skill-bundle-template-resolver.js.map +1 -0
  39. package/dist/lib/types.d.ts +141 -0
  40. package/dist/lib/types.d.ts.map +1 -0
  41. package/dist/lib/types.js +3 -0
  42. package/dist/lib/types.js.map +1 -0
  43. package/package.json +45 -0
  44. package/src/index.ts +34 -0
  45. package/src/lib/composer.ts +1041 -0
  46. package/src/lib/composition-workspace-manifest.ts +432 -0
  47. package/src/lib/dispatch-contract.ts +156 -0
  48. package/src/lib/drift-detector.ts +497 -0
  49. package/src/lib/environment-resolver.ts +480 -0
  50. package/src/lib/errors.ts +43 -0
  51. package/src/lib/lifecycle-state.ts +139 -0
  52. package/src/lib/skill-bundle-template-resolver.ts +147 -0
  53. package/src/lib/types.ts +443 -0
@@ -0,0 +1,44 @@
1
+ import { type CompiledWorkspaceManifest } from '@xemahq/dsl/workspace-manifest';
2
+ export type { CompiledWorkspaceManifest };
3
+ export declare class CompositionMountLayoutError extends Error {
4
+ constructor(compositionRef: string, detail: string);
5
+ }
6
+ export interface CompositionAgentRunConfigInput {
7
+ readonly phase: string;
8
+ readonly role: string;
9
+ readonly deliverableSpecRef?: string;
10
+ }
11
+ export interface CompositionMountLayoutInput {
12
+ readonly mounts: Readonly<Record<string, unknown>>;
13
+ readonly agentRunConfig: CompositionAgentRunConfigInput;
14
+ readonly seedFiles: readonly unknown[];
15
+ readonly inputs: Readonly<Record<string, unknown>>;
16
+ }
17
+ export interface CompositionSubAgentBindingInput {
18
+ readonly slug: string;
19
+ readonly alias?: string;
20
+ }
21
+ export interface CompositionOutputSurfaceInput {
22
+ readonly kind: 'none' | 'web' | 'static' | 'app' | 'tunnel';
23
+ readonly port?: number;
24
+ readonly healthPath?: string;
25
+ readonly autoOpen?: boolean;
26
+ readonly mode?: 'single' | 'multi';
27
+ readonly root?: string;
28
+ readonly defaultDocument?: string;
29
+ }
30
+ export interface CompositionManifestSource {
31
+ readonly compositionRef: string;
32
+ readonly primaryAgentSlug: string;
33
+ readonly subAgentBindings: readonly CompositionSubAgentBindingInput[];
34
+ readonly mountLayout: CompositionMountLayoutInput | undefined;
35
+ readonly outputSurface?: CompositionOutputSurfaceInput;
36
+ }
37
+ export interface CompositionManifestImplicitInputs {
38
+ readonly orgId: string;
39
+ readonly projectId: string;
40
+ readonly sessionId?: string;
41
+ }
42
+ export declare function compileCompositionWorkspaceManifest(source: CompositionManifestSource, bindInputs: Readonly<Record<string, unknown>>): CompiledWorkspaceManifest;
43
+ export declare function buildCompositionManifestBindInputs(source: CompositionManifestSource, explicitInputs: Record<string, unknown> | null, implicitInputs: CompositionManifestImplicitInputs): Readonly<Record<string, unknown>>;
44
+ //# sourceMappingURL=composition-workspace-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-workspace-manifest.d.ts","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":"AAkCA,OAAO,EAEL,KAAK,yBAAyB,EAQ/B,MAAM,gCAAgC,CAAC;AAMxC,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAQ1C,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAOnD;AAOD,MAAM,WAAW,8BAA8B;IAE7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAKtB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AASD,MAAM,WAAW,2BAA2B;IAE1C,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnD,QAAQ,CAAC,cAAc,EAAE,8BAA8B,CAAC;IAExD,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;IAEvC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD;AAMD,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAOD,MAAM,WAAW,yBAAyB;IAExC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,+BAA+B,EAAE,CAAC;IAMtE,QAAQ,CAAC,WAAW,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAU9D,QAAQ,CAAC,aAAa,CAAC,EAAE,6BAA6B,CAAC;CACxD;AAaD,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAwBD,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,yBAAyB,EACjC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC5C,yBAAyB,CAoF3B;AA4CD,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAC9C,cAAc,EAAE,iCAAiC,GAChD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6CnC"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompositionMountLayoutError = void 0;
4
+ exports.compileCompositionWorkspaceManifest = compileCompositionWorkspaceManifest;
5
+ exports.buildCompositionManifestBindInputs = buildCompositionManifestBindInputs;
6
+ const workflow_1 = require("@xemahq/kernel-contracts/workflow");
7
+ const workspace_manifest_1 = require("@xemahq/dsl/workspace-manifest");
8
+ class CompositionMountLayoutError extends Error {
9
+ constructor(compositionRef, detail) {
10
+ super(`Cannot derive a workspace mount layout from Agent Composition ` +
11
+ `"${compositionRef}": ${detail}`);
12
+ this.name = 'CompositionMountLayoutError';
13
+ }
14
+ }
15
+ exports.CompositionMountLayoutError = CompositionMountLayoutError;
16
+ function compileCompositionWorkspaceManifest(source, bindInputs) {
17
+ const mountLayout = source.mountLayout;
18
+ if (!mountLayout) {
19
+ throw new CompositionMountLayoutError(source.compositionRef, 'the composition declares no `workspace.mountLayout` block — its ' +
20
+ 'source workspace manifest was not projected by the llm-registry-api ' +
21
+ 'composition seeder. Re-seed compositions (boot llm-registry-api) or ' +
22
+ 'fix the source manifest.');
23
+ }
24
+ const [slug, version] = splitCompositionRef(source.compositionRef);
25
+ const subAgents = source.subAgentBindings.map((binding) => ({
26
+ slug: binding.slug,
27
+ ...(binding.alias !== undefined ? { alias: binding.alias } : {}),
28
+ }));
29
+ const outputSurface = projectOutputSurface(source.outputSurface);
30
+ const spec = {
31
+ mounts: mountLayout.mounts,
32
+ agent: {
33
+ slug: source.primaryAgentSlug,
34
+ phase: mountLayout.agentRunConfig.phase,
35
+ role: mountLayout.agentRunConfig.role,
36
+ ...(mountLayout.agentRunConfig.deliverableSpecRef !== undefined
37
+ ? { deliverableSpecRef: mountLayout.agentRunConfig.deliverableSpecRef }
38
+ : {}),
39
+ ...(subAgents.length > 0 ? { subAgents } : {}),
40
+ },
41
+ ...(Object.keys(mountLayout.inputs).length > 0
42
+ ? {
43
+ inputs: mountLayout.inputs,
44
+ }
45
+ : {}),
46
+ ...(mountLayout.seedFiles.length > 0
47
+ ? {
48
+ seedFiles: mountLayout.seedFiles,
49
+ }
50
+ : {}),
51
+ ...(outputSurface === undefined ? {} : { outputSurface }),
52
+ };
53
+ const envelope = {
54
+ apiVersion: 'xema.dev/workspace/v1',
55
+ kind: 'WorkspaceManifest',
56
+ metadata: {
57
+ slug,
58
+ version,
59
+ surfaceCompat: [workflow_1.ManifestSurface.AGENT_SESSION],
60
+ },
61
+ spec,
62
+ };
63
+ const result = (0, workspace_manifest_1.compileManifest)(envelope, bindInputs);
64
+ if (!result.ok) {
65
+ throw new CompositionMountLayoutError(source.compositionRef, `reconstructed manifest failed to compile: ${result.errors
66
+ .map((e) => `${e.path}: ${e.message}`)
67
+ .join('; ')}`);
68
+ }
69
+ return result.compiled;
70
+ }
71
+ function projectOutputSurface(surface) {
72
+ if (!surface)
73
+ return undefined;
74
+ return {
75
+ kind: surface.kind,
76
+ ...(surface.port === undefined ? {} : { port: surface.port }),
77
+ ...(surface.healthPath === undefined ? {} : { healthPath: surface.healthPath }),
78
+ ...(surface.autoOpen === undefined ? {} : { autoOpen: surface.autoOpen }),
79
+ ...(surface.mode === undefined ? {} : { mode: surface.mode }),
80
+ ...(surface.root === undefined ? {} : { root: surface.root }),
81
+ ...(surface.defaultDocument === undefined
82
+ ? {}
83
+ : { defaultDocument: surface.defaultDocument }),
84
+ };
85
+ }
86
+ function buildCompositionManifestBindInputs(source, explicitInputs, implicitInputs) {
87
+ const declared = new Set(Object.keys(source.mountLayout?.inputs ?? {}));
88
+ if (declared.size === 0) {
89
+ return {};
90
+ }
91
+ if (explicitInputs !== null &&
92
+ (typeof explicitInputs !== 'object' || Array.isArray(explicitInputs))) {
93
+ throw new CompositionMountLayoutError(source.compositionRef, 'explicit manifest inputs must be an object when provided');
94
+ }
95
+ const explicit = explicitInputs ?? {};
96
+ for (const [key, value] of Object.entries(explicit)) {
97
+ if (!declared.has(key)) {
98
+ throw new CompositionMountLayoutError(source.compositionRef, `manifest inputs contain undeclared key "${key}"`);
99
+ }
100
+ assertManifestInputValue(source.compositionRef, key, value);
101
+ }
102
+ const implicit = {
103
+ orgId: implicitInputs.orgId,
104
+ projectId: implicitInputs.projectId,
105
+ ...(implicitInputs.sessionId !== undefined
106
+ ? { sessionId: implicitInputs.sessionId }
107
+ : {}),
108
+ };
109
+ const out = {};
110
+ for (const key of declared) {
111
+ if (Object.hasOwn(explicit, key)) {
112
+ out[key] = explicit[key];
113
+ continue;
114
+ }
115
+ if (Object.hasOwn(implicit, key)) {
116
+ out[key] = implicit[key];
117
+ }
118
+ }
119
+ return out;
120
+ }
121
+ function splitCompositionRef(ref) {
122
+ const at = ref.lastIndexOf('@');
123
+ if (at <= 0 || at === ref.length - 1) {
124
+ throw new CompositionMountLayoutError(ref, 'expected a version-pinned `slug@version` composition ref — the ' +
125
+ 'session resolver always pins the resolved version');
126
+ }
127
+ return [ref.slice(0, at), ref.slice(at + 1)];
128
+ }
129
+ function assertManifestInputValue(compositionRef, key, value) {
130
+ if (value !== null &&
131
+ typeof value !== 'string' &&
132
+ typeof value !== 'number' &&
133
+ typeof value !== 'boolean' &&
134
+ !Array.isArray(value)) {
135
+ throw new CompositionMountLayoutError(compositionRef, `manifest input "${key}" must be a primitive ` +
136
+ `(string, number, boolean, string[]) — got ${typeof value}`);
137
+ }
138
+ if (Array.isArray(value) &&
139
+ !value.every((entry) => typeof entry === 'string')) {
140
+ throw new CompositionMountLayoutError(compositionRef, `manifest input "${key}" is an array — every element must be a string`);
141
+ }
142
+ }
143
+ //# sourceMappingURL=composition-workspace-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-workspace-manifest.js","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { ArtifactRef } from '@xemahq/kernel-contracts/workflow';
2
+ export declare const AgentSessionDispatchMode: {
3
+ readonly create_and_run: "create_and_run";
4
+ readonly resume_and_run: "resume_and_run";
5
+ };
6
+ export type AgentSessionDispatchModeValue = (typeof AgentSessionDispatchMode)[keyof typeof AgentSessionDispatchMode];
7
+ export interface RevisionInput {
8
+ readonly path: string;
9
+ readonly contentBase64: string;
10
+ }
11
+ export interface DispatchPromptContext {
12
+ readonly prompt: string;
13
+ readonly revisionFilePath?: string;
14
+ readonly iteration: number;
15
+ }
16
+ export interface CreateAndRunDispatch {
17
+ readonly mode: typeof AgentSessionDispatchMode.create_and_run;
18
+ readonly pipelineRunId: string;
19
+ readonly jobRunId: string;
20
+ readonly jobKey: string;
21
+ readonly compositionRef: string;
22
+ readonly agentSlug: string;
23
+ readonly promptContext: DispatchPromptContext;
24
+ }
25
+ export interface ResumeAndRunDispatch {
26
+ readonly mode: typeof AgentSessionDispatchMode.resume_and_run;
27
+ readonly sessionId: string;
28
+ readonly revisionInputs: readonly RevisionInput[];
29
+ readonly promptContext: DispatchPromptContext;
30
+ }
31
+ export type AgentSessionDispatchRequest = CreateAndRunDispatch | ResumeAndRunDispatch;
32
+ export interface AgentSessionDispatchResponse {
33
+ readonly sessionId: string;
34
+ readonly snapshotGeneration: number;
35
+ readonly pausedAt: string;
36
+ readonly deliverables: readonly ArtifactRef[];
37
+ readonly structuredOutput: unknown;
38
+ readonly response: ArtifactRef | null;
39
+ }
40
+ export interface InputsAppendRequest {
41
+ readonly path: string;
42
+ readonly contentBase64: string;
43
+ }
44
+ export interface InputsAppendResponse {
45
+ readonly written: boolean;
46
+ readonly sha256: string;
47
+ }
48
+ //# sourceMappingURL=dispatch-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-contract.d.ts","sourceRoot":"","sources":["../../src/lib/dispatch-contract.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMrE,eAAO,MAAM,wBAAwB;;;CAK3B,CAAC;AAEX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAa3E,MAAM,WAAW,aAAa;IAM5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAQD,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAMxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAKnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAMD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,wBAAwB,CAAC,cAAc,CAAC;IAE9D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IASxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;CAC/C;AAOD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,wBAAwB,CAAC,cAAc,CAAC;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,MAAM,2BAA2B,GACnC,oBAAoB,GACpB,oBAAoB,CAAC;AAUzB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAK9C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAKnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;CACvC;AAQD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentSessionDispatchMode = void 0;
4
+ exports.AgentSessionDispatchMode = {
5
+ create_and_run: 'create_and_run',
6
+ resume_and_run: 'resume_and_run',
7
+ };
8
+ //# sourceMappingURL=dispatch-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-contract.js","sourceRoot":"","sources":["../../src/lib/dispatch-contract.ts"],"names":[],"mappings":";;;AAoBa,QAAA,wBAAwB,GAAG;IAEtC,cAAc,EAAE,gBAAgB;IAEhC,cAAc,EAAE,gBAAgB;CACxB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { ResolvedEnvironment } from './environment-resolver';
2
+ export declare enum DriftKind {
3
+ AGENT_CHANGED = "agent-changed",
4
+ ROLE_CHANGED = "role-changed",
5
+ MANIFEST_VERSION_CHANGED = "manifest-version-changed",
6
+ MODEL_CHANGED = "model-changed",
7
+ SUBAGENT_ADDED = "subagent-added",
8
+ SUBAGENT_REMOVED = "subagent-removed",
9
+ SUBAGENT_MODEL_CHANGED = "subagent-model-changed",
10
+ SKILL_ADDED = "skill-added",
11
+ SKILL_REMOVED = "skill-removed",
12
+ SKILL_VERSION_CHANGED = "skill-version-changed",
13
+ TOOL_SELECTION_ADDED = "tool-selection-added",
14
+ TOOL_SELECTION_REMOVED = "tool-selection-removed",
15
+ CREDENTIAL_ADDED = "credential-added",
16
+ CREDENTIAL_REMOVED = "credential-removed",
17
+ CREDENTIAL_KIND_CHANGED = "credential-kind-changed",
18
+ PERMISSION_TIGHTENED = "permission-tightened",
19
+ PERMISSION_RELAXED = "permission-relaxed",
20
+ PERSISTENCE_PATH_ADDED = "persistence-path-added",
21
+ PERSISTENCE_PATH_REMOVED = "persistence-path-removed",
22
+ OUTPUT_SURFACE_CHANGED = "output-surface-changed",
23
+ ENV_VAR_ADDED = "env-var-added",
24
+ ENV_VAR_REMOVED = "env-var-removed",
25
+ ENV_VAR_VALUE_CHANGED = "env-var-value-changed",
26
+ MOUNT_ADDED = "mount-added",
27
+ MOUNT_REMOVED = "mount-removed",
28
+ MOUNT_MODE_CHANGED = "mount-mode-changed"
29
+ }
30
+ export type DriftSeverity = 'info' | 'warning';
31
+ export interface EnvironmentDrift {
32
+ readonly kind: DriftKind;
33
+ readonly severity: DriftSeverity;
34
+ readonly path: string;
35
+ readonly before?: unknown;
36
+ readonly after?: unknown;
37
+ readonly message: string;
38
+ }
39
+ export declare function diffResolvedEnvironment(prev: ResolvedEnvironment, next: ResolvedEnvironment): readonly EnvironmentDrift[];
40
+ //# sourceMappingURL=drift-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift-detector.d.ts","sourceRoot":"","sources":["../../src/lib/drift-detector.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,oBAAY,SAAS;IACnB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,wBAAwB,6BAA6B;IACrD,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;IACzC,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;IACrD,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,kBAAkB,uBAAuB;CAC1C;AAQD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAYD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,mBAAmB,GACxB,SAAS,gBAAgB,EAAE,CAiB7B"}