@action-llama/action-llama 0.1.5 → 0.2.0
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/README.md +37 -59
- package/dist/agents/container-entry.js +36 -9
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/agents/prompt.d.ts.map +1 -1
- package/dist/agents/prompt.js +17 -6
- package/dist/agents/prompt.js.map +1 -1
- package/dist/cli/commands/new.d.ts.map +1 -1
- package/dist/cli/commands/new.js +5 -25
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/{agent/add.d.ts → setup.d.ts} +1 -2
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +60 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +3 -0
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +1 -37
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/main.js +6 -9
- package/dist/cli/main.js.map +1 -1
- package/dist/credentials/builtins/anthropic-key.d.ts +4 -0
- package/dist/credentials/builtins/anthropic-key.d.ts.map +1 -0
- package/dist/credentials/builtins/anthropic-key.js +69 -0
- package/dist/credentials/builtins/anthropic-key.js.map +1 -0
- package/dist/credentials/builtins/github-token.d.ts +4 -0
- package/dist/credentials/builtins/github-token.d.ts.map +1 -0
- package/dist/credentials/builtins/github-token.js +19 -0
- package/dist/credentials/builtins/github-token.js.map +1 -0
- package/dist/credentials/builtins/github-webhook-secret.d.ts +4 -0
- package/dist/credentials/builtins/github-webhook-secret.d.ts.map +1 -0
- package/dist/credentials/builtins/github-webhook-secret.js +12 -0
- package/dist/credentials/builtins/github-webhook-secret.js.map +1 -0
- package/dist/credentials/builtins/id-rsa.d.ts +4 -0
- package/dist/credentials/builtins/id-rsa.d.ts.map +1 -0
- package/dist/credentials/builtins/id-rsa.js +67 -0
- package/dist/credentials/builtins/id-rsa.js.map +1 -0
- package/dist/credentials/builtins/index.d.ts +3 -0
- package/dist/credentials/builtins/index.d.ts.map +1 -0
- package/dist/credentials/builtins/index.js +15 -0
- package/dist/credentials/builtins/index.js.map +1 -0
- package/dist/credentials/builtins/sentry-client-secret.d.ts +4 -0
- package/dist/credentials/builtins/sentry-client-secret.d.ts.map +1 -0
- package/dist/credentials/builtins/sentry-client-secret.js +12 -0
- package/dist/credentials/builtins/sentry-client-secret.js.map +1 -0
- package/dist/credentials/builtins/sentry-token.d.ts +4 -0
- package/dist/credentials/builtins/sentry-token.d.ts.map +1 -0
- package/dist/credentials/builtins/sentry-token.js +72 -0
- package/dist/credentials/builtins/sentry-token.js.map +1 -0
- package/dist/credentials/prompter.d.ts +14 -0
- package/dist/credentials/prompter.d.ts.map +1 -0
- package/dist/credentials/prompter.js +65 -0
- package/dist/credentials/prompter.js.map +1 -0
- package/dist/credentials/registry.d.ts +16 -0
- package/dist/credentials/registry.d.ts.map +1 -0
- package/dist/credentials/registry.js +25 -0
- package/dist/credentials/registry.js.map +1 -0
- package/dist/credentials/schema.d.ts +23 -0
- package/dist/credentials/schema.d.ts.map +1 -0
- package/dist/credentials/schema.js +6 -0
- package/dist/credentials/schema.js.map +1 -0
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +14 -4
- package/dist/scheduler/index.js.map +1 -1
- package/dist/setup/prompts.d.ts +1 -43
- package/dist/setup/prompts.d.ts.map +1 -1
- package/dist/setup/prompts.js +43 -605
- package/dist/setup/prompts.js.map +1 -1
- package/dist/setup/scaffold.d.ts +1 -2
- package/dist/setup/scaffold.d.ts.map +1 -1
- package/dist/setup/scaffold.js +62 -29
- package/dist/setup/scaffold.js.map +1 -1
- package/dist/shared/config.d.ts +1 -2
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +16 -6
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/credentials.d.ts +2 -0
- package/dist/shared/credentials.d.ts.map +1 -1
- package/dist/shared/credentials.js +17 -0
- package/dist/shared/credentials.js.map +1 -1
- package/dist/shared/paths.d.ts +0 -1
- package/dist/shared/paths.d.ts.map +1 -1
- package/dist/shared/paths.js +0 -3
- package/dist/shared/paths.js.map +1 -1
- package/dist/webhooks/definitions/github.d.ts +3 -0
- package/dist/webhooks/definitions/github.d.ts.map +1 -0
- package/dist/webhooks/definitions/github.js +38 -0
- package/dist/webhooks/definitions/github.js.map +1 -0
- package/dist/webhooks/definitions/registry.d.ts +4 -0
- package/dist/webhooks/definitions/registry.d.ts.map +1 -0
- package/dist/webhooks/definitions/registry.js +14 -0
- package/dist/webhooks/definitions/registry.js.map +1 -0
- package/dist/webhooks/definitions/schema.d.ts +19 -0
- package/dist/webhooks/definitions/schema.d.ts.map +1 -0
- package/dist/webhooks/definitions/schema.js +2 -0
- package/dist/webhooks/definitions/schema.js.map +1 -0
- package/dist/webhooks/definitions/sentry.d.ts +3 -0
- package/dist/webhooks/definitions/sentry.d.ts.map +1 -0
- package/dist/webhooks/definitions/sentry.js +22 -0
- package/dist/webhooks/definitions/sentry.js.map +1 -0
- package/dist/webhooks/providers/sentry.d.ts +9 -0
- package/dist/webhooks/providers/sentry.d.ts.map +1 -0
- package/dist/webhooks/providers/sentry.js +108 -0
- package/dist/webhooks/providers/sentry.js.map +1 -0
- package/dist/webhooks/registry.js +2 -2
- package/dist/webhooks/registry.js.map +1 -1
- package/dist/webhooks/types.d.ts +5 -1
- package/dist/webhooks/types.d.ts.map +1 -1
- package/package.json +4 -3
- package/dist/agents/definitions/dev/AGENTS.md +0 -44
- package/dist/agents/definitions/dev/config-definition.json +0 -39
- package/dist/agents/definitions/devops/AGENTS.md +0 -33
- package/dist/agents/definitions/devops/config-definition.json +0 -37
- package/dist/agents/definitions/loader.d.ts +0 -18
- package/dist/agents/definitions/loader.d.ts.map +0 -1
- package/dist/agents/definitions/loader.js +0 -59
- package/dist/agents/definitions/loader.js.map +0 -1
- package/dist/agents/definitions/reviewer/AGENTS.md +0 -37
- package/dist/agents/definitions/reviewer/config-definition.json +0 -24
- package/dist/agents/definitions/schema.d.ts +0 -38
- package/dist/agents/definitions/schema.d.ts.map +0 -1
- package/dist/agents/definitions/schema.js +0 -97
- package/dist/agents/definitions/schema.js.map +0 -1
- package/dist/cli/commands/agent/add.d.ts.map +0 -1
- package/dist/cli/commands/agent/add.js +0 -86
- package/dist/cli/commands/agent/add.js.map +0 -1
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
// --- Agent definition package schema ---
|
|
2
|
-
// --- Validation ---
|
|
3
|
-
export function validateDefinition(json) {
|
|
4
|
-
if (!json || typeof json !== "object") {
|
|
5
|
-
throw new Error("Definition must be a non-null object");
|
|
6
|
-
}
|
|
7
|
-
const obj = json;
|
|
8
|
-
requireString(obj, "name");
|
|
9
|
-
requireString(obj, "label");
|
|
10
|
-
requireString(obj, "description");
|
|
11
|
-
// credentials
|
|
12
|
-
if (!obj.credentials || typeof obj.credentials !== "object") {
|
|
13
|
-
throw new Error("Definition must have a 'credentials' object");
|
|
14
|
-
}
|
|
15
|
-
const creds = obj.credentials;
|
|
16
|
-
requireStringArray(creds, "required");
|
|
17
|
-
requireStringArray(creds, "optional");
|
|
18
|
-
// webhooks
|
|
19
|
-
if (!obj.webhooks || typeof obj.webhooks !== "object") {
|
|
20
|
-
throw new Error("Definition must have a 'webhooks' object");
|
|
21
|
-
}
|
|
22
|
-
const wh = obj.webhooks;
|
|
23
|
-
requireString(wh, "description");
|
|
24
|
-
requireStringArray(wh, "events");
|
|
25
|
-
requireStringArray(wh, "actions");
|
|
26
|
-
// prompts
|
|
27
|
-
if (!obj.prompts || typeof obj.prompts !== "object") {
|
|
28
|
-
throw new Error("Definition must have a 'prompts' object");
|
|
29
|
-
}
|
|
30
|
-
const prompts = obj.prompts;
|
|
31
|
-
requireString(prompts, "webhook");
|
|
32
|
-
requireString(prompts, "schedule");
|
|
33
|
-
requireString(obj, "defaultSchedule");
|
|
34
|
-
// state (optional)
|
|
35
|
-
if (obj.state !== undefined) {
|
|
36
|
-
if (typeof obj.state !== "object" || obj.state === null) {
|
|
37
|
-
throw new Error("'state' must be an object if present");
|
|
38
|
-
}
|
|
39
|
-
const state = obj.state;
|
|
40
|
-
requireString(state, "file");
|
|
41
|
-
if (!state.initial || typeof state.initial !== "object") {
|
|
42
|
-
throw new Error("'state.initial' must be an object");
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// params
|
|
46
|
-
if (!obj.params || typeof obj.params !== "object") {
|
|
47
|
-
throw new Error("Definition must have a 'params' object");
|
|
48
|
-
}
|
|
49
|
-
const params = obj.params;
|
|
50
|
-
for (const [key, val] of Object.entries(params)) {
|
|
51
|
-
validateParamDefinition(key, val);
|
|
52
|
-
}
|
|
53
|
-
return json;
|
|
54
|
-
}
|
|
55
|
-
function validateParamDefinition(key, val) {
|
|
56
|
-
if (!val || typeof val !== "object") {
|
|
57
|
-
throw new Error(`Param "${key}" must be an object`);
|
|
58
|
-
}
|
|
59
|
-
const p = val;
|
|
60
|
-
if (p.type !== "string" && p.type !== "string[]") {
|
|
61
|
-
throw new Error(`Param "${key}" type must be "string" or "string[]"`);
|
|
62
|
-
}
|
|
63
|
-
requireString(p, "description", `param "${key}"`);
|
|
64
|
-
if (typeof p.required !== "boolean") {
|
|
65
|
-
throw new Error(`Param "${key}" must have a boolean 'required' field`);
|
|
66
|
-
}
|
|
67
|
-
if (p.default !== undefined && typeof p.default !== "string") {
|
|
68
|
-
throw new Error(`Param "${key}" default must be a string`);
|
|
69
|
-
}
|
|
70
|
-
if (p.webhookFilter !== undefined) {
|
|
71
|
-
if (!p.webhookFilter || typeof p.webhookFilter !== "object") {
|
|
72
|
-
throw new Error(`Param "${key}" webhookFilter must be an object`);
|
|
73
|
-
}
|
|
74
|
-
const wf = p.webhookFilter;
|
|
75
|
-
if (typeof wf.field !== "string") {
|
|
76
|
-
throw new Error(`Param "${key}" webhookFilter.field must be a string`);
|
|
77
|
-
}
|
|
78
|
-
if (wf.wrap !== undefined && wf.wrap !== "array") {
|
|
79
|
-
throw new Error(`Param "${key}" webhookFilter.wrap must be "array" if present`);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (p.credential !== undefined && typeof p.credential !== "string") {
|
|
83
|
-
throw new Error(`Param "${key}" credential must be a string`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
function requireString(obj, field, context) {
|
|
87
|
-
const prefix = context ? `${context}: ` : "";
|
|
88
|
-
if (typeof obj[field] !== "string" || obj[field].length === 0) {
|
|
89
|
-
throw new Error(`${prefix}'${field}' must be a non-empty string`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
function requireStringArray(obj, field) {
|
|
93
|
-
if (!Array.isArray(obj[field]) || !obj[field].every((v) => typeof v === "string")) {
|
|
94
|
-
throw new Error(`'${field}' must be an array of strings`);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/agents/definitions/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/agent/add.ts"],"names":[],"mappings":"AAWA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8F3F"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { resolve } from "path";
|
|
2
|
-
import { existsSync, writeFileSync } from "fs";
|
|
3
|
-
import { select } from "@inquirer/prompts";
|
|
4
|
-
import { loadCredential, writeCredential } from "../../../shared/credentials.js";
|
|
5
|
-
import { discoverAgents, loadAgentConfig, loadGlobalConfig } from "../../../shared/config.js";
|
|
6
|
-
import { validateGitHubToken } from "../../../setup/validators.js";
|
|
7
|
-
import { runAddAgent } from "../../../setup/prompts.js";
|
|
8
|
-
import { scaffoldAgent } from "../../../setup/scaffold.js";
|
|
9
|
-
import { CREDENTIALS_DIR } from "../../../shared/paths.js";
|
|
10
|
-
import { loadDefinition, listBuiltinDefinitions } from "../../../agents/definitions/loader.js";
|
|
11
|
-
export async function execute(opts) {
|
|
12
|
-
const projectPath = resolve(opts.project);
|
|
13
|
-
if (!existsSync(projectPath)) {
|
|
14
|
-
throw new Error(`Project not found: ${projectPath}`);
|
|
15
|
-
}
|
|
16
|
-
// Load GitHub token
|
|
17
|
-
const githubToken = loadCredential("github-token");
|
|
18
|
-
if (!githubToken) {
|
|
19
|
-
throw new Error(`GitHub token not found. Run "al new" first or add ${CREDENTIALS_DIR}/github-token.`);
|
|
20
|
-
}
|
|
21
|
-
console.log("Validating GitHub token...");
|
|
22
|
-
const { user: githubUser, repos: availableRepos } = await validateGitHubToken(githubToken);
|
|
23
|
-
console.log(`Authenticated as: ${githubUser} (${availableRepos.length} repos found)\n`);
|
|
24
|
-
// Discover existing agents and load model config from first one
|
|
25
|
-
const existingAgentNames = discoverAgents(projectPath);
|
|
26
|
-
if (existingAgentNames.length === 0) {
|
|
27
|
-
throw new Error(`No existing agents found in ${projectPath}. Use "al new" to set up a new project.`);
|
|
28
|
-
}
|
|
29
|
-
const firstAgent = loadAgentConfig(projectPath, existingAgentNames[0]);
|
|
30
|
-
const modelConfig = firstAgent.model;
|
|
31
|
-
// Load definition — from argument or interactive selection
|
|
32
|
-
let definition;
|
|
33
|
-
if (opts.definition) {
|
|
34
|
-
definition = loadDefinition(opts.definition);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
const builtinDefs = listBuiltinDefinitions();
|
|
38
|
-
const selectedName = await select({
|
|
39
|
-
message: "Agent type:",
|
|
40
|
-
choices: builtinDefs.map((d) => ({
|
|
41
|
-
name: `${d.name} — ${d.label} (${d.description})`,
|
|
42
|
-
value: d.name,
|
|
43
|
-
})),
|
|
44
|
-
});
|
|
45
|
-
definition = loadDefinition(selectedName);
|
|
46
|
-
}
|
|
47
|
-
// Run interactive prompt
|
|
48
|
-
const { agent, secrets } = await runAddAgent({
|
|
49
|
-
definition,
|
|
50
|
-
availableRepos,
|
|
51
|
-
githubUser,
|
|
52
|
-
modelConfig,
|
|
53
|
-
existingAgentNames,
|
|
54
|
-
});
|
|
55
|
-
console.log("\n--- Writing configuration ---\n");
|
|
56
|
-
// Write new credentials
|
|
57
|
-
if (secrets.sentryToken && secrets.sentryToken !== loadCredential("sentry-token")) {
|
|
58
|
-
writeCredential("sentry-token", secrets.sentryToken);
|
|
59
|
-
console.log(` Wrote ${CREDENTIALS_DIR}/sentry-token`);
|
|
60
|
-
}
|
|
61
|
-
if (secrets.githubWebhookSecret) {
|
|
62
|
-
writeCredential("github-webhook-secret", secrets.githubWebhookSecret);
|
|
63
|
-
console.log(` Wrote ${CREDENTIALS_DIR}/github-webhook-secret`);
|
|
64
|
-
}
|
|
65
|
-
// Update global config if agent uses webhooks and config doesn't reference the secret yet
|
|
66
|
-
if (agent.config.webhooks) {
|
|
67
|
-
const globalConfig = loadGlobalConfig(projectPath);
|
|
68
|
-
if (!globalConfig.webhooks?.githubSecretCredential) {
|
|
69
|
-
globalConfig.webhooks = { ...globalConfig.webhooks, githubSecretCredential: "github-webhook-secret" };
|
|
70
|
-
writeFileSync(resolve(projectPath, "config.json"), JSON.stringify(globalConfig, null, 2) + "\n");
|
|
71
|
-
console.log(` Updated ${projectPath}/config.json`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// Scaffold the agent
|
|
75
|
-
scaffoldAgent(projectPath, agent);
|
|
76
|
-
console.log(` Wrote ${projectPath}/${agent.name}/config.json`);
|
|
77
|
-
console.log(` Wrote ${projectPath}/${agent.name}/AGENTS.md`);
|
|
78
|
-
console.log(` Created state directory`);
|
|
79
|
-
console.log(`
|
|
80
|
-
Agent "${agent.name}" added successfully!
|
|
81
|
-
|
|
82
|
-
Edit ${projectPath}/${agent.name}/AGENTS.md to customize agent behavior.
|
|
83
|
-
Restart with: al start -p ${projectPath}
|
|
84
|
-
`);
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=add.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/cli/commands/agent/add.ts"],"names":[],"mappings":"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"}
|