@alpacakit/agents 0.1.0-beta.19
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 +21 -0
- package/README.md +224 -0
- package/dist/agents/builtin.d.ts +19 -0
- package/dist/agents/builtin.d.ts.map +1 -0
- package/dist/agents/builtin.js +14 -0
- package/dist/agents/claude.d.ts +20 -0
- package/dist/agents/claude.d.ts.map +1 -0
- package/dist/agents/claude.js +480 -0
- package/dist/agents/codex.d.ts +19 -0
- package/dist/agents/codex.d.ts.map +1 -0
- package/dist/agents/codex.js +355 -0
- package/dist/agents/openai-compatible/config.d.ts +16 -0
- package/dist/agents/openai-compatible/config.d.ts.map +1 -0
- package/dist/agents/openai-compatible/config.js +160 -0
- package/dist/agents/openai-compatible/engine.d.ts +18 -0
- package/dist/agents/openai-compatible/engine.d.ts.map +1 -0
- package/dist/agents/openai-compatible/engine.js +10 -0
- package/dist/agents/openai-compatible/fetch-engine.d.ts +38 -0
- package/dist/agents/openai-compatible/fetch-engine.d.ts.map +1 -0
- package/dist/agents/openai-compatible/fetch-engine.js +216 -0
- package/dist/agents/openai-compatible/pi/engine.d.ts +32 -0
- package/dist/agents/openai-compatible/pi/engine.d.ts.map +1 -0
- package/dist/agents/openai-compatible/pi/engine.js +98 -0
- package/dist/agents/openai-compatible/pi/module.d.ts +87 -0
- package/dist/agents/openai-compatible/pi/module.d.ts.map +1 -0
- package/dist/agents/openai-compatible/pi/module.js +43 -0
- package/dist/agents/openai-compatible/pi/sandbox.d.ts +25 -0
- package/dist/agents/openai-compatible/pi/sandbox.d.ts.map +1 -0
- package/dist/agents/openai-compatible/pi/sandbox.js +69 -0
- package/dist/agents/openai-compatible/pi/session.d.ts +17 -0
- package/dist/agents/openai-compatible/pi/session.d.ts.map +1 -0
- package/dist/agents/openai-compatible/pi/session.js +354 -0
- package/dist/agents/openai-compatible/response.d.ts +19 -0
- package/dist/agents/openai-compatible/response.d.ts.map +1 -0
- package/dist/agents/openai-compatible/response.js +203 -0
- package/dist/agents/openai-compatible/types.d.ts +34 -0
- package/dist/agents/openai-compatible/types.d.ts.map +1 -0
- package/dist/agents/openai-compatible/types.js +1 -0
- package/dist/agents/openai-compatible.d.ts +12 -0
- package/dist/agents/openai-compatible.d.ts.map +1 -0
- package/dist/agents/openai-compatible.js +45 -0
- package/dist/auth/login-probe.d.ts +21 -0
- package/dist/auth/login-probe.d.ts.map +1 -0
- package/dist/auth/login-probe.js +47 -0
- package/dist/auth/login.d.ts +79 -0
- package/dist/auth/login.d.ts.map +1 -0
- package/dist/auth/login.js +9 -0
- package/dist/auth/material.d.ts +87 -0
- package/dist/auth/material.d.ts.map +1 -0
- package/dist/auth/material.js +59 -0
- package/dist/auth/profile-store.d.ts +14 -0
- package/dist/auth/profile-store.d.ts.map +1 -0
- package/dist/auth/profile-store.js +101 -0
- package/dist/auth/secrets.d.ts +14 -0
- package/dist/auth/secrets.d.ts.map +1 -0
- package/dist/auth/secrets.js +40 -0
- package/dist/codex/app-server.d.ts +30 -0
- package/dist/codex/app-server.d.ts.map +1 -0
- package/dist/codex/app-server.js +322 -0
- package/dist/codex/index.d.ts +3 -0
- package/dist/codex/index.d.ts.map +1 -0
- package/dist/codex/index.js +1 -0
- package/dist/codex/protocol.d.ts +124 -0
- package/dist/codex/protocol.d.ts.map +1 -0
- package/dist/codex/protocol.js +283 -0
- package/dist/config/agent-config-validation.d.ts +22 -0
- package/dist/config/agent-config-validation.d.ts.map +1 -0
- package/dist/config/agent-config-validation.js +31 -0
- package/dist/config/agent-configs.d.ts +37 -0
- package/dist/config/agent-configs.d.ts.map +1 -0
- package/dist/config/agent-configs.js +214 -0
- package/dist/config/compose.d.ts +10 -0
- package/dist/config/compose.d.ts.map +1 -0
- package/dist/config/compose.js +89 -0
- package/dist/config/config.d.ts +21 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +33 -0
- package/dist/config/errors.d.ts +45 -0
- package/dist/config/errors.d.ts.map +1 -0
- package/dist/config/errors.js +37 -0
- package/dist/config/extension.d.ts +3 -0
- package/dist/config/extension.d.ts.map +1 -0
- package/dist/config/extension.js +1 -0
- package/dist/config/ids.d.ts +8 -0
- package/dist/config/ids.d.ts.map +1 -0
- package/dist/config/ids.js +4 -0
- package/dist/config/index.d.ts +12 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/model.d.ts +105 -0
- package/dist/config/model.d.ts.map +1 -0
- package/dist/config/model.js +1 -0
- package/dist/config/paths.d.ts +7 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +10 -0
- package/dist/config/schema.d.ts +59 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +83 -0
- package/dist/config/store.d.ts +34 -0
- package/dist/config/store.d.ts.map +1 -0
- package/dist/config/store.js +420 -0
- package/dist/config/support.d.ts +14 -0
- package/dist/config/support.d.ts.map +1 -0
- package/dist/config/support.js +32 -0
- package/dist/config/values.d.ts +21 -0
- package/dist/config/values.d.ts.map +1 -0
- package/dist/config/values.js +22 -0
- package/dist/config/xdg.d.ts +20 -0
- package/dist/config/xdg.d.ts.map +1 -0
- package/dist/config/xdg.js +23 -0
- package/dist/core/async-queue.d.ts +14 -0
- package/dist/core/async-queue.d.ts.map +1 -0
- package/dist/core/async-queue.js +46 -0
- package/dist/core/env.d.ts +19 -0
- package/dist/core/env.d.ts.map +1 -0
- package/dist/core/env.js +39 -0
- package/dist/core/error.d.ts +121 -0
- package/dist/core/error.d.ts.map +1 -0
- package/dist/core/error.js +88 -0
- package/dist/core/fs.d.ts +16 -0
- package/dist/core/fs.d.ts.map +1 -0
- package/dist/core/fs.js +30 -0
- package/dist/core/json.d.ts +20 -0
- package/dist/core/json.d.ts.map +1 -0
- package/dist/core/json.js +42 -0
- package/dist/core/node-ports.d.ts +9 -0
- package/dist/core/node-ports.d.ts.map +1 -0
- package/dist/core/node-ports.js +135 -0
- package/dist/core/ports.d.ts +71 -0
- package/dist/core/ports.d.ts.map +1 -0
- package/dist/core/ports.js +19 -0
- package/dist/core/redact.d.ts +8 -0
- package/dist/core/redact.d.ts.map +1 -0
- package/dist/core/redact.js +66 -0
- package/dist/core/run.d.ts +125 -0
- package/dist/core/run.d.ts.map +1 -0
- package/dist/core/run.js +27 -0
- package/dist/core/values.d.ts +12 -0
- package/dist/core/values.d.ts.map +1 -0
- package/dist/core/values.js +9 -0
- package/dist/corpus/failure-corpus.d.ts +21 -0
- package/dist/corpus/failure-corpus.d.ts.map +1 -0
- package/dist/corpus/failure-corpus.js +89 -0
- package/dist/fleet/fleet.d.ts +120 -0
- package/dist/fleet/fleet.d.ts.map +1 -0
- package/dist/fleet/fleet.js +409 -0
- package/dist/fleet/policy.d.ts +45 -0
- package/dist/fleet/policy.d.ts.map +1 -0
- package/dist/fleet/policy.js +50 -0
- package/dist/fleet/store.d.ts +28 -0
- package/dist/fleet/store.d.ts.map +1 -0
- package/dist/fleet/store.js +225 -0
- package/dist/host/capabilities.d.ts +146 -0
- package/dist/host/capabilities.d.ts.map +1 -0
- package/dist/host/capabilities.js +59 -0
- package/dist/host/context.d.ts +29 -0
- package/dist/host/context.d.ts.map +1 -0
- package/dist/host/context.js +11 -0
- package/dist/host/github-dir.d.ts +16 -0
- package/dist/host/github-dir.d.ts.map +1 -0
- package/dist/host/github-dir.js +164 -0
- package/dist/host/mcp-list.d.ts +12 -0
- package/dist/host/mcp-list.d.ts.map +1 -0
- package/dist/host/mcp-list.js +122 -0
- package/dist/host/requirement-ref.d.ts +12 -0
- package/dist/host/requirement-ref.d.ts.map +1 -0
- package/dist/host/requirement-ref.js +40 -0
- package/dist/host/run-command.d.ts +27 -0
- package/dist/host/run-command.d.ts.map +1 -0
- package/dist/host/run-command.js +66 -0
- package/dist/host/validate-spec.d.ts +10 -0
- package/dist/host/validate-spec.d.ts.map +1 -0
- package/dist/host/validate-spec.js +69 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/kernel/classify.d.ts +44 -0
- package/dist/kernel/classify.d.ts.map +1 -0
- package/dist/kernel/classify.js +136 -0
- package/dist/kernel/cli-agent.d.ts +62 -0
- package/dist/kernel/cli-agent.d.ts.map +1 -0
- package/dist/kernel/cli-agent.js +281 -0
- package/dist/kernel/cli-login.d.ts +13 -0
- package/dist/kernel/cli-login.d.ts.map +1 -0
- package/dist/kernel/cli-login.js +199 -0
- package/dist/kernel/definition.d.ts +41 -0
- package/dist/kernel/definition.d.ts.map +1 -0
- package/dist/kernel/definition.js +13 -0
- package/dist/kernel/env-template.d.ts +17 -0
- package/dist/kernel/env-template.d.ts.map +1 -0
- package/dist/kernel/env-template.js +78 -0
- package/dist/kernel/facets.d.ts +58 -0
- package/dist/kernel/facets.d.ts.map +1 -0
- package/dist/kernel/facets.js +102 -0
- package/dist/kernel/guard.d.ts +24 -0
- package/dist/kernel/guard.d.ts.map +1 -0
- package/dist/kernel/guard.js +69 -0
- package/dist/kernel/handle.d.ts +29 -0
- package/dist/kernel/handle.d.ts.map +1 -0
- package/dist/kernel/handle.js +97 -0
- package/dist/kernel/keyed.d.ts +19 -0
- package/dist/kernel/keyed.d.ts.map +1 -0
- package/dist/kernel/keyed.js +35 -0
- package/dist/kernel/login.d.ts +20 -0
- package/dist/kernel/login.d.ts.map +1 -0
- package/dist/kernel/login.js +74 -0
- package/dist/kernel/options.d.ts +73 -0
- package/dist/kernel/options.d.ts.map +1 -0
- package/dist/kernel/options.js +41 -0
- package/dist/kernel/run.d.ts +20 -0
- package/dist/kernel/run.d.ts.map +1 -0
- package/dist/kernel/run.js +245 -0
- package/dist/kernel/runtime.d.ts +48 -0
- package/dist/kernel/runtime.d.ts.map +1 -0
- package/dist/kernel/runtime.js +108 -0
- package/dist/keyring/index.d.ts +2 -0
- package/dist/keyring/index.d.ts.map +1 -0
- package/dist/keyring/index.js +1 -0
- package/dist/keyring/resolver.d.ts +9 -0
- package/dist/keyring/resolver.d.ts.map +1 -0
- package/dist/keyring/resolver.js +62 -0
- package/dist/run-agent.d.ts +19 -0
- package/dist/run-agent.d.ts.map +1 -0
- package/dist/run-agent.js +25 -0
- package/dist/structured/extract.d.ts +27 -0
- package/dist/structured/extract.d.ts.map +1 -0
- package/dist/structured/extract.js +188 -0
- package/dist/structured/run-structured.d.ts +83 -0
- package/dist/structured/run-structured.d.ts.map +1 -0
- package/dist/structured/run-structured.js +202 -0
- package/dist/structured/standard-schema.d.ts +34 -0
- package/dist/structured/standard-schema.d.ts.map +1 -0
- package/dist/structured/standard-schema.js +6 -0
- package/dist/testing/fake-agent.d.ts +32 -0
- package/dist/testing/fake-agent.d.ts.map +1 -0
- package/dist/testing/fake-agent.js +43 -0
- package/dist/testing/fake-clock.d.ts +8 -0
- package/dist/testing/fake-clock.d.ts.map +1 -0
- package/dist/testing/fake-clock.js +44 -0
- package/dist/testing/fake-exec.d.ts +26 -0
- package/dist/testing/fake-exec.d.ts.map +1 -0
- package/dist/testing/fake-exec.js +69 -0
- package/dist/testing/fake-secrets.d.ts +3 -0
- package/dist/testing/fake-secrets.d.ts.map +1 -0
- package/dist/testing/fake-secrets.js +5 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +9 -0
- package/package.json +75 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { AGENT_CONFIG_VALIDATION_RESULT, validateAgentConfig, } from "./agent-config-validation.js";
|
|
2
|
+
import { AGENTS_CONFIG_ERROR_CODE, AgentsConfigError } from "./errors.js";
|
|
3
|
+
import { formatFieldPath } from "./support.js";
|
|
4
|
+
const AGENT_SETTINGS_FIELD_NAME = {
|
|
5
|
+
agentConfigs: "agentConfigs",
|
|
6
|
+
kind: "kind",
|
|
7
|
+
payload: "payload",
|
|
8
|
+
};
|
|
9
|
+
const AGENT_SETTINGS_FIELD = {
|
|
10
|
+
agentConfigKind: (index) => formatFieldPath([
|
|
11
|
+
AGENT_SETTINGS_FIELD_NAME.agentConfigs,
|
|
12
|
+
index,
|
|
13
|
+
AGENT_SETTINGS_FIELD_NAME.kind,
|
|
14
|
+
]),
|
|
15
|
+
agentConfigPayload: (index) => formatFieldPath([
|
|
16
|
+
AGENT_SETTINGS_FIELD_NAME.agentConfigs,
|
|
17
|
+
index,
|
|
18
|
+
AGENT_SETTINGS_FIELD_NAME.payload,
|
|
19
|
+
]),
|
|
20
|
+
};
|
|
21
|
+
const ERROR_ISSUE_SEPARATOR = "; ";
|
|
22
|
+
export function composeRuntimeConfig(input) {
|
|
23
|
+
const agentDefinitions = new Map();
|
|
24
|
+
const candidates = [];
|
|
25
|
+
for (const [agentConfigIndex, record,] of input.data.agentConfigs.agentConfigs.entries()) {
|
|
26
|
+
if (!record.enabled) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const validation = validateAgentConfig(record, input.agentConfigTypes);
|
|
30
|
+
if (validation.kind === AGENT_CONFIG_VALIDATION_RESULT.unknownKind) {
|
|
31
|
+
throw unknownAgentConfigKindError(input.data, agentConfigIndex, validation.agentConfigKind);
|
|
32
|
+
}
|
|
33
|
+
if (validation.kind === AGENT_CONFIG_VALIDATION_RESULT.invalidPayload) {
|
|
34
|
+
throw invalidAgentConfigPayloadError(input.data, agentConfigIndex, validation);
|
|
35
|
+
}
|
|
36
|
+
const projection = validation.definition.project({
|
|
37
|
+
record: validation.record,
|
|
38
|
+
profiles: input.data.profiles,
|
|
39
|
+
ambientBuiltinAuth: input.data.agentConfigs.ambientBuiltinAuth.enabled,
|
|
40
|
+
});
|
|
41
|
+
for (const agent of projection.agents) {
|
|
42
|
+
addAgentDefinition(agentDefinitions, agent);
|
|
43
|
+
}
|
|
44
|
+
candidates.push(...projection.candidates);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
agents: [...agentDefinitions.values()],
|
|
48
|
+
candidates,
|
|
49
|
+
fleetStateStore: input.fleetStateStore,
|
|
50
|
+
secretResolvers: input.secretResolvers,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function addAgentDefinition(definitions, definition) {
|
|
54
|
+
const existing = definitions.get(definition.id);
|
|
55
|
+
if (existing !== undefined) {
|
|
56
|
+
if (existing !== definition) {
|
|
57
|
+
throw new AgentsConfigError({
|
|
58
|
+
code: AGENTS_CONFIG_ERROR_CODE.duplicateAgentDefinition,
|
|
59
|
+
message: `Duplicate agents-config agent definition "${definition.id}"`,
|
|
60
|
+
data: { agentId: definition.id },
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
definitions.set(definition.id, definition);
|
|
66
|
+
}
|
|
67
|
+
function invalidAgentConfigPayloadError(data, agentConfigIndex, validation) {
|
|
68
|
+
return new AgentsConfigError({
|
|
69
|
+
code: AGENTS_CONFIG_ERROR_CODE.invalidAgentConfigPayload,
|
|
70
|
+
message: `${data.paths.agentConfigSettingsFile}:${AGENT_SETTINGS_FIELD.agentConfigPayload(agentConfigIndex)}: Invalid agents-config agent config "${validation.agentConfigKind}" payload: ${validation.issues.join(ERROR_ISSUE_SEPARATOR)}`,
|
|
71
|
+
data: {
|
|
72
|
+
filePath: data.paths.agentConfigSettingsFile,
|
|
73
|
+
field: AGENT_SETTINGS_FIELD.agentConfigPayload(agentConfigIndex),
|
|
74
|
+
agentConfigKind: validation.agentConfigKind,
|
|
75
|
+
issues: validation.issues,
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function unknownAgentConfigKindError(data, agentConfigIndex, kind) {
|
|
80
|
+
return new AgentsConfigError({
|
|
81
|
+
code: AGENTS_CONFIG_ERROR_CODE.unknownAgentConfigKind,
|
|
82
|
+
message: `${data.paths.agentConfigSettingsFile}:${AGENT_SETTINGS_FIELD.agentConfigKind(agentConfigIndex)}: Unknown agents-config agent config kind "${kind}"`,
|
|
83
|
+
data: {
|
|
84
|
+
filePath: data.paths.agentConfigSettingsFile,
|
|
85
|
+
field: AGENT_SETTINGS_FIELD.agentConfigKind(agentConfigIndex),
|
|
86
|
+
agentConfigKind: kind,
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SecretResolvers } from "../core/ports.js";
|
|
2
|
+
import type { Candidate } from "../fleet/fleet.js";
|
|
3
|
+
import type { FleetStateStore } from "../fleet/store.js";
|
|
4
|
+
import type { AgentConfigTypeRegistry, AgentConfigManager, AgentsRuntimeConfig, AgentsConfigPaths, ProfileManager, NamedSecretResolver } from "./model.js";
|
|
5
|
+
export type OpenAgentsConfigOptions = {
|
|
6
|
+
readonly rootDir: string;
|
|
7
|
+
readonly agentConfigTypes?: AgentConfigTypeRegistry;
|
|
8
|
+
readonly secretResolvers?: readonly NamedSecretResolver[];
|
|
9
|
+
};
|
|
10
|
+
export interface AgentsConfig {
|
|
11
|
+
readonly paths: AgentsConfigPaths;
|
|
12
|
+
readonly profiles: ProfileManager;
|
|
13
|
+
readonly agentConfigs: AgentConfigManager;
|
|
14
|
+
readonly fleetStateStore: FleetStateStore;
|
|
15
|
+
loadRuntimeConfig(): Promise<AgentsRuntimeConfig>;
|
|
16
|
+
}
|
|
17
|
+
export declare function openAgentsConfig(options: OpenAgentsConfigOptions): AgentsConfig;
|
|
18
|
+
export declare function loadAgentsRuntimeConfig(options: OpenAgentsConfigOptions): Promise<AgentsRuntimeConfig>;
|
|
19
|
+
export declare function candidatesForFleet<AgentId extends string>(config: AgentsRuntimeConfig<AgentId>): readonly Candidate<AgentId>[];
|
|
20
|
+
export declare function secretsForRuntime(config: AgentsRuntimeConfig): SecretResolvers;
|
|
21
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAIpB,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC3D,CAAC;AAQF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,GAC/B,YAAY,CAgBd;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,MAAM,EACvD,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,GACnC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAE/B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,GAC1B,eAAe,CAIjB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { createDefaultAgentConfigTypeRegistry } from "./agent-configs.js";
|
|
2
|
+
import { composeRuntimeConfig } from "./compose.js";
|
|
3
|
+
import { resolveAgentsConfigPaths } from "./paths.js";
|
|
4
|
+
import { loadConfigData, openAgentsConfigStores } from "./store.js";
|
|
5
|
+
export function openAgentsConfig(options) {
|
|
6
|
+
const resolved = resolveAgentsConfigOptions(options);
|
|
7
|
+
const stores = openAgentsConfigStores(resolved.paths, resolved.agentConfigTypes);
|
|
8
|
+
return {
|
|
9
|
+
...stores,
|
|
10
|
+
loadRuntimeConfig: async () => composeRuntimeConfig({
|
|
11
|
+
data: await loadConfigData(stores),
|
|
12
|
+
fleetStateStore: stores.fleetStateStore,
|
|
13
|
+
agentConfigTypes: resolved.agentConfigTypes,
|
|
14
|
+
secretResolvers: resolved.secretResolvers,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export async function loadAgentsRuntimeConfig(options) {
|
|
19
|
+
return await openAgentsConfig(options).loadRuntimeConfig();
|
|
20
|
+
}
|
|
21
|
+
export function candidatesForFleet(config) {
|
|
22
|
+
return config.candidates.map((candidate) => candidate.candidate);
|
|
23
|
+
}
|
|
24
|
+
export function secretsForRuntime(config) {
|
|
25
|
+
return Object.fromEntries(config.secretResolvers.map((entry) => [entry.name, entry.resolver]));
|
|
26
|
+
}
|
|
27
|
+
function resolveAgentsConfigOptions(options) {
|
|
28
|
+
return {
|
|
29
|
+
paths: resolveAgentsConfigPaths({ rootDir: options.rootDir }),
|
|
30
|
+
agentConfigTypes: options.agentConfigTypes ?? createDefaultAgentConfigTypeRegistry(),
|
|
31
|
+
secretResolvers: options.secretResolvers ?? [],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare const AGENTS_CONFIG_ERROR_CODE: {
|
|
2
|
+
readonly invalidFile: "invalid_file";
|
|
3
|
+
readonly invalidInput: "invalid_input";
|
|
4
|
+
readonly unknownAgentConfigKind: "unknown_agent_config_kind";
|
|
5
|
+
readonly invalidAgentConfigPayload: "invalid_agent_config_payload";
|
|
6
|
+
readonly duplicateAgentDefinition: "duplicate_agent_definition";
|
|
7
|
+
};
|
|
8
|
+
export type AgentsConfigErrorCode = (typeof AGENTS_CONFIG_ERROR_CODE)[keyof typeof AGENTS_CONFIG_ERROR_CODE];
|
|
9
|
+
type FileFieldErrorData = {
|
|
10
|
+
readonly filePath: string;
|
|
11
|
+
readonly field: string;
|
|
12
|
+
};
|
|
13
|
+
type AgentConfigFileFieldErrorData = FileFieldErrorData & {
|
|
14
|
+
readonly agentConfigKind: string;
|
|
15
|
+
};
|
|
16
|
+
export type AgentsConfigErrorData = {
|
|
17
|
+
[AGENTS_CONFIG_ERROR_CODE.invalidFile]: FileFieldErrorData & {
|
|
18
|
+
readonly reason: string;
|
|
19
|
+
};
|
|
20
|
+
[AGENTS_CONFIG_ERROR_CODE.invalidInput]: {
|
|
21
|
+
readonly field: string;
|
|
22
|
+
readonly reason: string;
|
|
23
|
+
};
|
|
24
|
+
[AGENTS_CONFIG_ERROR_CODE.unknownAgentConfigKind]: AgentConfigFileFieldErrorData;
|
|
25
|
+
[AGENTS_CONFIG_ERROR_CODE.invalidAgentConfigPayload]: AgentConfigFileFieldErrorData & {
|
|
26
|
+
readonly issues: readonly string[];
|
|
27
|
+
};
|
|
28
|
+
[AGENTS_CONFIG_ERROR_CODE.duplicateAgentDefinition]: {
|
|
29
|
+
readonly agentId: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export type AgentsConfigErrorOptions<C extends AgentsConfigErrorCode> = {
|
|
33
|
+
readonly code: C;
|
|
34
|
+
readonly message: string;
|
|
35
|
+
readonly data: AgentsConfigErrorData[C];
|
|
36
|
+
readonly cause?: unknown;
|
|
37
|
+
};
|
|
38
|
+
export declare class AgentsConfigError<C extends AgentsConfigErrorCode = AgentsConfigErrorCode> extends Error {
|
|
39
|
+
readonly code: C;
|
|
40
|
+
readonly data: AgentsConfigErrorData[C];
|
|
41
|
+
constructor(options: AgentsConfigErrorOptions<C>);
|
|
42
|
+
}
|
|
43
|
+
export declare function isAgentsConfigError<C extends AgentsConfigErrorCode>(value: unknown, code?: C): value is AgentsConfigError<C>;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/config/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;CAM3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAC/B,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE3E,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,6BAA6B,GAAG,kBAAkB,GAAG;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE,kBAAkB,GAAG;QAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,CAAC,wBAAwB,CAAC,YAAY,CAAC,EAAE;QACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,EAAE,6BAA6B,CAAC;IACjF,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,EAAE,6BAA6B,GAAG;QACpF,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;IACF,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,EAAE;QACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH,CAAC;AAUF,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,qBAAqB,IAAI;IACtE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,iBAAiB,CAC5B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACvD,SAAQ,KAAK;IACb,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAE5B,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC;CAajD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,qBAAqB,EACjE,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,CAAC,GACP,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAW/B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export const AGENTS_CONFIG_ERROR_CODE = {
|
|
2
|
+
invalidFile: "invalid_file",
|
|
3
|
+
invalidInput: "invalid_input",
|
|
4
|
+
unknownAgentConfigKind: "unknown_agent_config_kind",
|
|
5
|
+
invalidAgentConfigPayload: "invalid_agent_config_payload",
|
|
6
|
+
duplicateAgentDefinition: "duplicate_agent_definition",
|
|
7
|
+
};
|
|
8
|
+
const AGENTS_CONFIG_ERROR_NAME = "AgentsConfigError";
|
|
9
|
+
const AGENTS_CONFIG_ERROR_SYMBOL_KEY = "@alpacakit/agents/config.AgentsConfigError";
|
|
10
|
+
const AGENTS_CONFIG_ERROR_BRAND = Symbol.for(AGENTS_CONFIG_ERROR_SYMBOL_KEY);
|
|
11
|
+
const AGENTS_CONFIG_ERROR_FIELD = {
|
|
12
|
+
code: "code",
|
|
13
|
+
};
|
|
14
|
+
export class AgentsConfigError extends Error {
|
|
15
|
+
code;
|
|
16
|
+
data;
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super(options.message, options.cause === undefined ? undefined : { cause: options.cause });
|
|
19
|
+
this.name = AGENTS_CONFIG_ERROR_NAME;
|
|
20
|
+
this.code = options.code;
|
|
21
|
+
this.data = options.data;
|
|
22
|
+
Object.defineProperty(this, AGENTS_CONFIG_ERROR_BRAND, {
|
|
23
|
+
value: true,
|
|
24
|
+
enumerable: false,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function isAgentsConfigError(value, code) {
|
|
29
|
+
if (typeof value !== "object" || value === null) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (Reflect.get(value, AGENTS_CONFIG_ERROR_BRAND) !== true) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return (code === undefined ||
|
|
36
|
+
Reflect.get(value, AGENTS_CONFIG_ERROR_FIELD.code) === code);
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/config/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { createDefaultAgentConfigTypeRegistry, defineAgentConfigType, } from "./agent-configs.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Brand } from "@alpacakit/core";
|
|
2
|
+
export type ProfileId = Brand<string, "ProfileId">;
|
|
3
|
+
export type AgentConfigId = Brand<string, "AgentConfigId">;
|
|
4
|
+
export type AgentConfigKind = Brand<string, "AgentConfigKind">;
|
|
5
|
+
export declare const profileId: (value: string) => ProfileId;
|
|
6
|
+
export declare const agentConfigId: (value: string) => AgentConfigId;
|
|
7
|
+
export declare const agentConfigKind: (value: string) => AgentConfigKind;
|
|
8
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/config/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAyB,MAAM,iBAAiB,CAAC;AAEpE,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D,eAAO,MAAM,SAAS,8BAAqC,CAAC;AAC5D,eAAO,MAAM,aAAa,kCAAyC,CAAC;AACpE,eAAO,MAAM,eAAe,oCAA2C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type { BuiltinAgentConfigOptions, OpenAiCompatibleAgentConfigOptions, } from "./agent-configs.js";
|
|
2
|
+
export { claudeAgentConfig, codexAgentConfig, openAiCompatibleAgentConfig, } from "./agent-configs.js";
|
|
3
|
+
export type { AgentsConfigErrorCode, AgentsConfigErrorData, AgentsConfigErrorOptions, } from "./errors.js";
|
|
4
|
+
export { AGENTS_CONFIG_ERROR_CODE, AgentsConfigError, isAgentsConfigError, } from "./errors.js";
|
|
5
|
+
export type { AgentsConfig, OpenAgentsConfigOptions, } from "./config.js";
|
|
6
|
+
export { loadAgentsRuntimeConfig, openAgentsConfig, candidatesForFleet, secretsForRuntime, } from "./config.js";
|
|
7
|
+
export type { AgentConfigId, AgentConfigKind, ProfileId } from "./ids.js";
|
|
8
|
+
export { agentConfigId, agentConfigKind, profileId } from "./ids.js";
|
|
9
|
+
export type { AgentConfig, AgentConfigManager, AgentConfigPatch, AgentConfigSettings, AgentsConfigPaths, AgentsRuntimeConfig, ApiKeyProfileInput, CandidateSource, CandidateSourceInfo, CandidateWithSource, HomeDirProfileInput, NamedSecretResolver, ProfileInputBase, ProfileManager, ProfileRecord, } from "./model.js";
|
|
10
|
+
export { DEFAULT_AGENTS_CONFIG_AGENT_SETTINGS } from "./store.js";
|
|
11
|
+
export { AGENT_CONFIG_KIND, AGENTS_CONFIG_FILE, BUILTIN_AGENT_ID, CANDIDATE_SOURCE_KIND, DEFAULT_AGENT_CONFIG_ID, } from "./values.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrE,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { claudeAgentConfig, codexAgentConfig, openAiCompatibleAgentConfig, } from "./agent-configs.js";
|
|
2
|
+
export { AGENTS_CONFIG_ERROR_CODE, AgentsConfigError, isAgentsConfigError, } from "./errors.js";
|
|
3
|
+
export { loadAgentsRuntimeConfig, openAgentsConfig, candidatesForFleet, secretsForRuntime, } from "./config.js";
|
|
4
|
+
export { agentConfigId, agentConfigKind, profileId } from "./ids.js";
|
|
5
|
+
export { DEFAULT_AGENTS_CONFIG_AGENT_SETTINGS } from "./store.js";
|
|
6
|
+
export { AGENT_CONFIG_KIND, AGENTS_CONFIG_FILE, BUILTIN_AGENT_ID, CANDIDATE_SOURCE_KIND, DEFAULT_AGENT_CONFIG_ID, } from "./values.js";
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { JsonObject, Registry, RuntimeCodec } from "@alpacakit/core";
|
|
2
|
+
import type { AuthMaterial, SecretRef } from "../auth/material.js";
|
|
3
|
+
import type { SecretResolver } from "../core/ports.js";
|
|
4
|
+
import type { Candidate } from "../fleet/fleet.js";
|
|
5
|
+
import type { FleetStateStore } from "../fleet/store.js";
|
|
6
|
+
import type { AgentDefinition } from "../kernel/definition.js";
|
|
7
|
+
import type { AgentConfigId, AgentConfigKind, ProfileId } from "./ids.js";
|
|
8
|
+
import type { CANDIDATE_SOURCE_KIND } from "./values.js";
|
|
9
|
+
export type EmptyPayload = Readonly<Record<string, never>>;
|
|
10
|
+
export type AgentsConfigPaths = {
|
|
11
|
+
readonly rootDir: string;
|
|
12
|
+
readonly profilesFile: string;
|
|
13
|
+
readonly agentConfigSettingsFile: string;
|
|
14
|
+
readonly fleetStateFile: string;
|
|
15
|
+
};
|
|
16
|
+
export type ProfileRecord<AgentId extends string = string> = {
|
|
17
|
+
readonly id: ProfileId;
|
|
18
|
+
readonly agentId: AgentId;
|
|
19
|
+
readonly material: AuthMaterial;
|
|
20
|
+
};
|
|
21
|
+
export type ProfileInputBase<AgentId extends string = string> = {
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly agentId: AgentId;
|
|
24
|
+
};
|
|
25
|
+
export type HomeDirProfileInput<AgentId extends string = string> = ProfileInputBase<AgentId> & {
|
|
26
|
+
readonly path: string;
|
|
27
|
+
};
|
|
28
|
+
export type ApiKeyProfileInput<AgentId extends string = string> = ProfileInputBase<AgentId> & {
|
|
29
|
+
readonly secret: SecretRef;
|
|
30
|
+
};
|
|
31
|
+
export type AgentConfig<Kind extends AgentConfigKind = AgentConfigKind, Payload extends JsonObject = JsonObject> = {
|
|
32
|
+
readonly id: AgentConfigId;
|
|
33
|
+
readonly kind: Kind;
|
|
34
|
+
readonly enabled: boolean;
|
|
35
|
+
readonly payload: Payload;
|
|
36
|
+
};
|
|
37
|
+
export type AgentConfigSettings = {
|
|
38
|
+
readonly ambientBuiltinAuth: {
|
|
39
|
+
readonly enabled: boolean;
|
|
40
|
+
};
|
|
41
|
+
readonly agentConfigs: readonly AgentConfig[];
|
|
42
|
+
};
|
|
43
|
+
export type AgentConfigPatch = {
|
|
44
|
+
readonly enabled?: boolean;
|
|
45
|
+
readonly payload?: JsonObject;
|
|
46
|
+
};
|
|
47
|
+
export type ConfigData = {
|
|
48
|
+
readonly paths: AgentsConfigPaths;
|
|
49
|
+
readonly profiles: readonly ProfileRecord[];
|
|
50
|
+
readonly agentConfigs: AgentConfigSettings;
|
|
51
|
+
};
|
|
52
|
+
export type CandidateSource = (typeof CANDIDATE_SOURCE_KIND)[keyof typeof CANDIDATE_SOURCE_KIND];
|
|
53
|
+
export type CandidateSourceInfo = {
|
|
54
|
+
readonly agentConfigId: AgentConfigId;
|
|
55
|
+
readonly agentConfigKind: AgentConfigKind;
|
|
56
|
+
readonly profileId: ProfileId | null;
|
|
57
|
+
readonly kind: CandidateSource;
|
|
58
|
+
};
|
|
59
|
+
export type CandidateWithSource<AgentId extends string = string> = {
|
|
60
|
+
readonly candidate: Candidate<AgentId>;
|
|
61
|
+
readonly source: CandidateSourceInfo;
|
|
62
|
+
};
|
|
63
|
+
export type AgentConfigProjection<AgentId extends string> = {
|
|
64
|
+
readonly agents: readonly AgentDefinition<AgentId>[];
|
|
65
|
+
readonly candidates: readonly CandidateWithSource<AgentId>[];
|
|
66
|
+
};
|
|
67
|
+
export type AgentConfigProjectionInput<Kind extends AgentConfigKind, Payload extends JsonObject> = {
|
|
68
|
+
readonly record: AgentConfig<Kind, Payload>;
|
|
69
|
+
readonly profiles: readonly ProfileRecord[];
|
|
70
|
+
readonly ambientBuiltinAuth: boolean;
|
|
71
|
+
};
|
|
72
|
+
export interface AgentConfigType<Kind extends AgentConfigKind, Payload extends JsonObject, AgentId extends string> {
|
|
73
|
+
readonly kind: Kind;
|
|
74
|
+
readonly payloadCodec: RuntimeCodec<Payload>;
|
|
75
|
+
project(input: AgentConfigProjectionInput<Kind, Payload>): AgentConfigProjection<AgentId>;
|
|
76
|
+
}
|
|
77
|
+
export type AgentConfigTypeRegistry = Registry<AgentConfigKind, AgentConfigType<AgentConfigKind, JsonObject, string>>;
|
|
78
|
+
export type NamedSecretResolver = {
|
|
79
|
+
readonly name: string;
|
|
80
|
+
readonly resolver: SecretResolver;
|
|
81
|
+
};
|
|
82
|
+
export type AgentsRuntimeConfig<AgentId extends string = string> = {
|
|
83
|
+
readonly agents: readonly AgentDefinition<AgentId>[];
|
|
84
|
+
readonly candidates: readonly CandidateWithSource<AgentId>[];
|
|
85
|
+
readonly fleetStateStore: FleetStateStore;
|
|
86
|
+
readonly secretResolvers: readonly NamedSecretResolver[];
|
|
87
|
+
};
|
|
88
|
+
export interface ProfileManager<AgentId extends string = string> {
|
|
89
|
+
list(): Promise<readonly ProfileRecord<AgentId>[]>;
|
|
90
|
+
addHomeDir(input: HomeDirProfileInput<AgentId>): Promise<ProfileRecord<AgentId>>;
|
|
91
|
+
addApiKey(input: ApiKeyProfileInput<AgentId>): Promise<ProfileRecord<AgentId>>;
|
|
92
|
+
remove(id: string): Promise<ProfileRecord<AgentId> | null>;
|
|
93
|
+
reorder(ids: readonly string[]): Promise<readonly ProfileRecord<AgentId>[]>;
|
|
94
|
+
clear(): Promise<void>;
|
|
95
|
+
}
|
|
96
|
+
export interface AgentConfigManager {
|
|
97
|
+
list(): Promise<readonly AgentConfig[]>;
|
|
98
|
+
getSettings(): Promise<AgentConfigSettings>;
|
|
99
|
+
add(record: AgentConfig): Promise<AgentConfig>;
|
|
100
|
+
update(id: string, patch: AgentConfigPatch): Promise<AgentConfig | null>;
|
|
101
|
+
remove(id: string): Promise<AgentConfig | null>;
|
|
102
|
+
reorder(ids: readonly string[]): Promise<readonly AgentConfig[]>;
|
|
103
|
+
setAmbientBuiltinAuth(enabled: boolean): Promise<AgentConfigSettings>;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/config/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AgentsConfigPaths } from "./model.js";
|
|
2
|
+
type ResolveAgentsConfigPathsInput = {
|
|
3
|
+
readonly rootDir: string;
|
|
4
|
+
};
|
|
5
|
+
export declare function resolveAgentsConfigPaths(input: ResolveAgentsConfigPathsInput): AgentsConfigPaths;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,KAAK,6BAA6B,GAAG;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,6BAA6B,GACnC,iBAAiB,CAUnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AGENTS_CONFIG_FILE } from "./values.js";
|
|
3
|
+
export function resolveAgentsConfigPaths(input) {
|
|
4
|
+
return {
|
|
5
|
+
rootDir: input.rootDir,
|
|
6
|
+
profilesFile: path.join(input.rootDir, AGENTS_CONFIG_FILE.profiles),
|
|
7
|
+
agentConfigSettingsFile: path.join(input.rootDir, AGENTS_CONFIG_FILE.agentConfigSettings),
|
|
8
|
+
fleetStateFile: path.join(input.rootDir, AGENTS_CONFIG_FILE.fleetState),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AgentConfigId, AgentConfigKind, ProfileId } from "./ids.js";
|
|
3
|
+
import type { AgentConfigSettings, ProfileRecord } from "./model.js";
|
|
4
|
+
export declare const AGENTS_CONFIG_FILE_VERSION = 1;
|
|
5
|
+
export type ProfilesFile = {
|
|
6
|
+
readonly version: typeof AGENTS_CONFIG_FILE_VERSION;
|
|
7
|
+
readonly profiles: readonly ProfileRecord[];
|
|
8
|
+
};
|
|
9
|
+
export type AgentConfigSettingsFile = {
|
|
10
|
+
readonly version: typeof AGENTS_CONFIG_FILE_VERSION;
|
|
11
|
+
} & AgentConfigSettings;
|
|
12
|
+
export declare const profilesFileSchema: z.ZodReadonly<z.ZodObject<{
|
|
13
|
+
version: z.ZodLiteral<1>;
|
|
14
|
+
profiles: z.ZodType<readonly Readonly<{
|
|
15
|
+
id: ProfileId;
|
|
16
|
+
agentId: string;
|
|
17
|
+
material: Readonly<{
|
|
18
|
+
kind: "home-dir";
|
|
19
|
+
path: string;
|
|
20
|
+
}> | Readonly<{
|
|
21
|
+
kind: "api-key";
|
|
22
|
+
secret: Readonly<{
|
|
23
|
+
resolver: string;
|
|
24
|
+
id: string;
|
|
25
|
+
}>;
|
|
26
|
+
}>;
|
|
27
|
+
}>[], unknown, z.core.$ZodTypeInternals<readonly Readonly<{
|
|
28
|
+
id: ProfileId;
|
|
29
|
+
agentId: string;
|
|
30
|
+
material: Readonly<{
|
|
31
|
+
kind: "home-dir";
|
|
32
|
+
path: string;
|
|
33
|
+
}> | Readonly<{
|
|
34
|
+
kind: "api-key";
|
|
35
|
+
secret: Readonly<{
|
|
36
|
+
resolver: string;
|
|
37
|
+
id: string;
|
|
38
|
+
}>;
|
|
39
|
+
}>;
|
|
40
|
+
}>[], unknown>>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
export declare const agentConfigSettingsFileSchema: z.ZodReadonly<z.ZodObject<{
|
|
43
|
+
version: z.ZodLiteral<1>;
|
|
44
|
+
ambientBuiltinAuth: z.ZodReadonly<z.ZodObject<{
|
|
45
|
+
enabled: z.ZodBoolean;
|
|
46
|
+
}, z.core.$strip>>;
|
|
47
|
+
agentConfigs: z.ZodType<readonly Readonly<{
|
|
48
|
+
id: AgentConfigId;
|
|
49
|
+
kind: AgentConfigKind;
|
|
50
|
+
enabled: boolean;
|
|
51
|
+
payload: Readonly<Record<string, import("@alpacakit/core").JsonValue>>;
|
|
52
|
+
}>[], unknown, z.core.$ZodTypeInternals<readonly Readonly<{
|
|
53
|
+
id: AgentConfigId;
|
|
54
|
+
kind: AgentConfigKind;
|
|
55
|
+
enabled: boolean;
|
|
56
|
+
payload: Readonly<Record<string, import("@alpacakit/core").JsonValue>>;
|
|
57
|
+
}>[], unknown>>;
|
|
58
|
+
}, z.core.$strip>>;
|
|
59
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,KAAK,EACV,mBAAmB,EAEnB,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAwD5C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,0BAA0B,CAAC;CACrD,GAAG,mBAAmB,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWK,CAAC;AAErC,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;kBAkBK,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { brandedStringSchema, jsonValueSchema, readonlyArraySchema, strictReadonlyObject, } from "@alpacakit/core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { AUTH_MATERIAL_KIND } from "../auth/material.js";
|
|
4
|
+
import { agentConfigKind, agentConfigId, profileId } from "./ids.js";
|
|
5
|
+
import { ZOD_ISSUE_CODE } from "./support.js";
|
|
6
|
+
export const AGENTS_CONFIG_FILE_VERSION = 1;
|
|
7
|
+
const PROFILE_FILE_FIELD = {
|
|
8
|
+
profiles: "profiles",
|
|
9
|
+
id: "id",
|
|
10
|
+
};
|
|
11
|
+
const AGENT_CONFIG_SETTINGS_FILE_FIELD = {
|
|
12
|
+
agentConfigs: "agentConfigs",
|
|
13
|
+
id: "id",
|
|
14
|
+
};
|
|
15
|
+
const SCHEMA_DISCRIMINATOR = {
|
|
16
|
+
kind: "kind",
|
|
17
|
+
};
|
|
18
|
+
const DUPLICATE_ID_MESSAGE = {
|
|
19
|
+
profile: (id) => `Duplicate profile id "${id}".`,
|
|
20
|
+
agentConfig: (id) => `Duplicate agent config id "${id}".`,
|
|
21
|
+
};
|
|
22
|
+
const jsonObjectSchema = z.record(z.string(), jsonValueSchema).readonly();
|
|
23
|
+
const secretRefSchema = strictReadonlyObject({
|
|
24
|
+
resolver: z.string().min(1),
|
|
25
|
+
id: z.string().min(1),
|
|
26
|
+
});
|
|
27
|
+
const authMaterialSchema = z.discriminatedUnion(SCHEMA_DISCRIMINATOR.kind, [
|
|
28
|
+
strictReadonlyObject({
|
|
29
|
+
kind: z.literal(AUTH_MATERIAL_KIND.homeDir),
|
|
30
|
+
path: z.string().min(1),
|
|
31
|
+
}),
|
|
32
|
+
strictReadonlyObject({
|
|
33
|
+
kind: z.literal(AUTH_MATERIAL_KIND.apiKey),
|
|
34
|
+
secret: secretRefSchema,
|
|
35
|
+
}),
|
|
36
|
+
]);
|
|
37
|
+
const profileIdSchema = brandedStringSchema().transform(profileId);
|
|
38
|
+
const agentConfigIdSchema = brandedStringSchema().transform(agentConfigId);
|
|
39
|
+
const agentConfigKindSchema = brandedStringSchema().transform(agentConfigKind);
|
|
40
|
+
const profileRecordSchema = strictReadonlyObject({
|
|
41
|
+
id: profileIdSchema,
|
|
42
|
+
agentId: z.string().min(1),
|
|
43
|
+
material: authMaterialSchema,
|
|
44
|
+
});
|
|
45
|
+
const agentConfigRecordSchema = strictReadonlyObject({
|
|
46
|
+
id: agentConfigIdSchema,
|
|
47
|
+
kind: agentConfigKindSchema,
|
|
48
|
+
enabled: z.boolean(),
|
|
49
|
+
payload: jsonObjectSchema,
|
|
50
|
+
});
|
|
51
|
+
export const profilesFileSchema = strictReadonlyObject({
|
|
52
|
+
version: z.literal(AGENTS_CONFIG_FILE_VERSION),
|
|
53
|
+
profiles: readonlyArraySchema(profileRecordSchema),
|
|
54
|
+
}).superRefine((file, context) => {
|
|
55
|
+
rejectDuplicateIds(file.profiles, (profile) => profile.id, (index) => [PROFILE_FILE_FIELD.profiles, index, PROFILE_FILE_FIELD.id], DUPLICATE_ID_MESSAGE.profile, context);
|
|
56
|
+
});
|
|
57
|
+
export const agentConfigSettingsFileSchema = strictReadonlyObject({
|
|
58
|
+
version: z.literal(AGENTS_CONFIG_FILE_VERSION),
|
|
59
|
+
ambientBuiltinAuth: strictReadonlyObject({
|
|
60
|
+
enabled: z.boolean(),
|
|
61
|
+
}),
|
|
62
|
+
agentConfigs: readonlyArraySchema(agentConfigRecordSchema),
|
|
63
|
+
}).superRefine((file, context) => {
|
|
64
|
+
rejectDuplicateIds(file.agentConfigs, (agentConfig) => agentConfig.id, (index) => [
|
|
65
|
+
AGENT_CONFIG_SETTINGS_FILE_FIELD.agentConfigs,
|
|
66
|
+
index,
|
|
67
|
+
AGENT_CONFIG_SETTINGS_FILE_FIELD.id,
|
|
68
|
+
], DUPLICATE_ID_MESSAGE.agentConfig, context);
|
|
69
|
+
});
|
|
70
|
+
function rejectDuplicateIds(items, idOf, pathOf, messageOf, context) {
|
|
71
|
+
const seen = new Set();
|
|
72
|
+
for (const [index, item] of items.entries()) {
|
|
73
|
+
const id = idOf(item);
|
|
74
|
+
if (seen.has(id)) {
|
|
75
|
+
context.addIssue({
|
|
76
|
+
code: ZOD_ISSUE_CODE.custom,
|
|
77
|
+
path: pathOf(index),
|
|
78
|
+
message: messageOf(id),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
seen.add(id);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type FleetStateStore } from "../fleet/store.js";
|
|
2
|
+
import type { AgentConfigManager, AgentConfigTypeRegistry, AgentsConfigPaths, ConfigData, ProfileManager } from "./model.js";
|
|
3
|
+
type AgentsConfigStores = {
|
|
4
|
+
readonly paths: AgentsConfigPaths;
|
|
5
|
+
readonly profiles: ProfileManager;
|
|
6
|
+
readonly agentConfigs: AgentConfigManager;
|
|
7
|
+
readonly fleetStateStore: FleetStateStore;
|
|
8
|
+
};
|
|
9
|
+
export declare const DEFAULT_AGENTS_CONFIG_AGENT_SETTINGS: {
|
|
10
|
+
readonly ambientBuiltinAuth: {
|
|
11
|
+
readonly enabled: true;
|
|
12
|
+
};
|
|
13
|
+
readonly agentConfigs: readonly [{
|
|
14
|
+
readonly id: import("./ids.js").AgentConfigId;
|
|
15
|
+
readonly kind: import("./ids.js").AgentConfigKind;
|
|
16
|
+
readonly enabled: true;
|
|
17
|
+
readonly payload: {
|
|
18
|
+
readonly model: null;
|
|
19
|
+
readonly effort: null;
|
|
20
|
+
};
|
|
21
|
+
}, {
|
|
22
|
+
readonly id: import("./ids.js").AgentConfigId;
|
|
23
|
+
readonly kind: import("./ids.js").AgentConfigKind;
|
|
24
|
+
readonly enabled: true;
|
|
25
|
+
readonly payload: {
|
|
26
|
+
readonly model: null;
|
|
27
|
+
readonly effort: null;
|
|
28
|
+
};
|
|
29
|
+
}];
|
|
30
|
+
};
|
|
31
|
+
export declare function openAgentsConfigStores(paths: AgentsConfigPaths, agentConfigTypes: AgentConfigTypeRegistry): AgentsConfigStores;
|
|
32
|
+
export declare function loadConfigData(home: AgentsConfigStores): Promise<ConfigData>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAQzE,OAAO,KAAK,EAEV,kBAAkB,EAElB,uBAAuB,EAEvB,iBAAiB,EAEjB,UAAU,EAEV,cAAc,EAEf,MAAM,YAAY,CAAC;AAgEpB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C,CAAC;AAYF,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;CAgBT,CAAC;AAmOzC,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,EACxB,gBAAgB,EAAE,uBAAuB,GACxC,kBAAkB,CAWpB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,UAAU,CAAC,CAMrB"}
|