@action-llama/action-llama 0.3.0 → 0.4.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 (212) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -102
  3. package/dist/agents/container-entry.js +123 -17
  4. package/dist/agents/container-entry.js.map +1 -1
  5. package/dist/agents/container-runner.d.ts +10 -4
  6. package/dist/agents/container-runner.d.ts.map +1 -1
  7. package/dist/agents/container-runner.js +83 -105
  8. package/dist/agents/container-runner.js.map +1 -1
  9. package/dist/agents/prompt.d.ts +2 -0
  10. package/dist/agents/prompt.d.ts.map +1 -1
  11. package/dist/agents/prompt.js +12 -4
  12. package/dist/agents/prompt.js.map +1 -1
  13. package/dist/agents/runner.d.ts +10 -1
  14. package/dist/agents/runner.d.ts.map +1 -1
  15. package/dist/agents/runner.js +60 -8
  16. package/dist/agents/runner.js.map +1 -1
  17. package/dist/cli/commands/{setup.d.ts → cloud-setup.d.ts} +1 -1
  18. package/dist/cli/commands/cloud-setup.d.ts.map +1 -0
  19. package/dist/cli/commands/cloud-setup.js +565 -0
  20. package/dist/cli/commands/cloud-setup.js.map +1 -0
  21. package/dist/cli/commands/cloud-teardown.d.ts +6 -0
  22. package/dist/cli/commands/cloud-teardown.d.ts.map +1 -0
  23. package/dist/cli/commands/cloud-teardown.js +152 -0
  24. package/dist/cli/commands/cloud-teardown.js.map +1 -0
  25. package/dist/cli/commands/console.d.ts.map +1 -1
  26. package/dist/cli/commands/console.js +108 -8
  27. package/dist/cli/commands/console.js.map +1 -1
  28. package/dist/cli/commands/creds.d.ts +2 -0
  29. package/dist/cli/commands/creds.d.ts.map +1 -0
  30. package/dist/cli/commands/creds.js +62 -0
  31. package/dist/cli/commands/creds.js.map +1 -0
  32. package/dist/cli/commands/doctor.d.ts +7 -0
  33. package/dist/cli/commands/doctor.d.ts.map +1 -0
  34. package/dist/cli/commands/doctor.js +405 -0
  35. package/dist/cli/commands/doctor.js.map +1 -0
  36. package/dist/cli/commands/logs.d.ts +1 -0
  37. package/dist/cli/commands/logs.d.ts.map +1 -1
  38. package/dist/cli/commands/logs.js +67 -0
  39. package/dist/cli/commands/logs.js.map +1 -1
  40. package/dist/cli/commands/new.d.ts.map +1 -1
  41. package/dist/cli/commands/new.js +9 -2
  42. package/dist/cli/commands/new.js.map +1 -1
  43. package/dist/cli/commands/run.d.ts +6 -0
  44. package/dist/cli/commands/run.d.ts.map +1 -0
  45. package/dist/cli/commands/run.js +121 -0
  46. package/dist/cli/commands/run.js.map +1 -0
  47. package/dist/cli/commands/start.d.ts +3 -1
  48. package/dist/cli/commands/start.d.ts.map +1 -1
  49. package/dist/cli/commands/start.js +52 -16
  50. package/dist/cli/commands/start.js.map +1 -1
  51. package/dist/cli/commands/status.d.ts +1 -0
  52. package/dist/cli/commands/status.d.ts.map +1 -1
  53. package/dist/cli/commands/status.js +39 -2
  54. package/dist/cli/commands/status.js.map +1 -1
  55. package/dist/cli/main.js +58 -16
  56. package/dist/cli/main.js.map +1 -1
  57. package/dist/credentials/builtins/aws.d.ts +4 -0
  58. package/dist/credentials/builtins/aws.d.ts.map +1 -0
  59. package/dist/credentials/builtins/aws.js +33 -0
  60. package/dist/credentials/builtins/aws.js.map +1 -0
  61. package/dist/credentials/builtins/bugsnag-token.d.ts +4 -0
  62. package/dist/credentials/builtins/bugsnag-token.d.ts.map +1 -0
  63. package/dist/credentials/builtins/bugsnag-token.js +18 -0
  64. package/dist/credentials/builtins/bugsnag-token.js.map +1 -0
  65. package/dist/credentials/builtins/github-webhook-secret.d.ts.map +1 -1
  66. package/dist/credentials/builtins/github-webhook-secret.js +2 -1
  67. package/dist/credentials/builtins/github-webhook-secret.js.map +1 -1
  68. package/dist/credentials/builtins/index.d.ts.map +1 -1
  69. package/dist/credentials/builtins/index.js +10 -0
  70. package/dist/credentials/builtins/index.js.map +1 -1
  71. package/dist/credentials/builtins/netlify-token.d.ts +4 -0
  72. package/dist/credentials/builtins/netlify-token.d.ts.map +1 -0
  73. package/dist/credentials/builtins/netlify-token.js +18 -0
  74. package/dist/credentials/builtins/netlify-token.js.map +1 -0
  75. package/dist/credentials/builtins/openai-key.d.ts +4 -0
  76. package/dist/credentials/builtins/openai-key.d.ts.map +1 -0
  77. package/dist/credentials/builtins/openai-key.js +38 -0
  78. package/dist/credentials/builtins/openai-key.js.map +1 -0
  79. package/dist/credentials/builtins/x-twitter-api.d.ts +4 -0
  80. package/dist/credentials/builtins/x-twitter-api.d.ts.map +1 -0
  81. package/dist/credentials/builtins/x-twitter-api.js +28 -0
  82. package/dist/credentials/builtins/x-twitter-api.js.map +1 -0
  83. package/dist/credentials/prompter.d.ts.map +1 -1
  84. package/dist/credentials/prompter.js +8 -5
  85. package/dist/credentials/prompter.js.map +1 -1
  86. package/dist/docker/cloud-run-runtime.d.ts +61 -0
  87. package/dist/docker/cloud-run-runtime.d.ts.map +1 -0
  88. package/dist/docker/cloud-run-runtime.js +510 -0
  89. package/dist/docker/cloud-run-runtime.js.map +1 -0
  90. package/dist/docker/ecs-runtime.d.ts +73 -0
  91. package/dist/docker/ecs-runtime.d.ts.map +1 -0
  92. package/dist/docker/ecs-runtime.js +596 -0
  93. package/dist/docker/ecs-runtime.js.map +1 -0
  94. package/dist/docker/image.d.ts.map +1 -1
  95. package/dist/docker/image.js +3 -2
  96. package/dist/docker/image.js.map +1 -1
  97. package/dist/docker/local-runtime.d.ts +19 -0
  98. package/dist/docker/local-runtime.d.ts.map +1 -0
  99. package/dist/docker/local-runtime.js +209 -0
  100. package/dist/docker/local-runtime.js.map +1 -0
  101. package/dist/docker/network.d.ts +1 -1
  102. package/dist/docker/network.d.ts.map +1 -1
  103. package/dist/docker/network.js +2 -1
  104. package/dist/docker/network.js.map +1 -1
  105. package/dist/docker/runtime.d.ts +90 -0
  106. package/dist/docker/runtime.d.ts.map +1 -0
  107. package/dist/docker/runtime.js +2 -0
  108. package/dist/docker/runtime.js.map +1 -0
  109. package/dist/gateway/index.d.ts +8 -2
  110. package/dist/gateway/index.d.ts.map +1 -1
  111. package/dist/gateway/index.js +16 -8
  112. package/dist/gateway/index.js.map +1 -1
  113. package/dist/gateway/routes/credentials.d.ts +5 -0
  114. package/dist/gateway/routes/credentials.d.ts.map +1 -0
  115. package/dist/gateway/routes/credentials.js +17 -0
  116. package/dist/gateway/routes/credentials.js.map +1 -0
  117. package/dist/gateway/routes/logs.d.ts +5 -0
  118. package/dist/gateway/routes/logs.d.ts.map +1 -0
  119. package/dist/gateway/routes/logs.js +31 -0
  120. package/dist/gateway/routes/logs.js.map +1 -0
  121. package/dist/gateway/routes/shutdown.d.ts +2 -1
  122. package/dist/gateway/routes/shutdown.d.ts.map +1 -1
  123. package/dist/gateway/routes/shutdown.js +7 -16
  124. package/dist/gateway/routes/shutdown.js.map +1 -1
  125. package/dist/gateway/routes/webhooks.d.ts +2 -1
  126. package/dist/gateway/routes/webhooks.d.ts.map +1 -1
  127. package/dist/gateway/routes/webhooks.js +11 -4
  128. package/dist/gateway/routes/webhooks.js.map +1 -1
  129. package/dist/gateway/types.d.ts +6 -0
  130. package/dist/gateway/types.d.ts.map +1 -0
  131. package/dist/gateway/types.js +2 -0
  132. package/dist/gateway/types.js.map +1 -0
  133. package/dist/scheduler/index.d.ts +3 -2
  134. package/dist/scheduler/index.d.ts.map +1 -1
  135. package/dist/scheduler/index.js +286 -67
  136. package/dist/scheduler/index.js.map +1 -1
  137. package/dist/setup/scaffold.d.ts.map +1 -1
  138. package/dist/setup/scaffold.js +110 -50
  139. package/dist/setup/scaffold.js.map +1 -1
  140. package/dist/setup/validators.d.ts +14 -0
  141. package/dist/setup/validators.d.ts.map +1 -1
  142. package/dist/setup/validators.js +53 -0
  143. package/dist/setup/validators.js.map +1 -1
  144. package/dist/shared/asm-backend.d.ts +25 -0
  145. package/dist/shared/asm-backend.d.ts.map +1 -0
  146. package/dist/shared/asm-backend.js +107 -0
  147. package/dist/shared/asm-backend.js.map +1 -0
  148. package/dist/shared/aws-constants.d.ts +55 -0
  149. package/dist/shared/aws-constants.d.ts.map +1 -0
  150. package/dist/shared/aws-constants.js +55 -0
  151. package/dist/shared/aws-constants.js.map +1 -0
  152. package/dist/shared/config.d.ts +25 -5
  153. package/dist/shared/config.d.ts.map +1 -1
  154. package/dist/shared/config.js +15 -22
  155. package/dist/shared/config.js.map +1 -1
  156. package/dist/shared/credential-backend.d.ts +28 -0
  157. package/dist/shared/credential-backend.d.ts.map +1 -0
  158. package/dist/shared/credential-backend.js +2 -0
  159. package/dist/shared/credential-backend.js.map +1 -0
  160. package/dist/shared/credentials.d.ts +42 -4
  161. package/dist/shared/credentials.d.ts.map +1 -1
  162. package/dist/shared/credentials.js +83 -6
  163. package/dist/shared/credentials.js.map +1 -1
  164. package/dist/shared/filesystem-backend.d.ts +18 -0
  165. package/dist/shared/filesystem-backend.d.ts.map +1 -0
  166. package/dist/shared/filesystem-backend.js +86 -0
  167. package/dist/shared/filesystem-backend.js.map +1 -0
  168. package/dist/shared/gsm-backend.d.ts +35 -0
  169. package/dist/shared/gsm-backend.d.ts.map +1 -0
  170. package/dist/shared/gsm-backend.js +208 -0
  171. package/dist/shared/gsm-backend.js.map +1 -0
  172. package/dist/shared/remote.d.ts +11 -0
  173. package/dist/shared/remote.d.ts.map +1 -0
  174. package/dist/shared/remote.js +29 -0
  175. package/dist/shared/remote.js.map +1 -0
  176. package/dist/tui/App.d.ts.map +1 -1
  177. package/dist/tui/App.js +13 -4
  178. package/dist/tui/App.js.map +1 -1
  179. package/dist/tui/plain-logger.d.ts +5 -0
  180. package/dist/tui/plain-logger.d.ts.map +1 -0
  181. package/dist/tui/plain-logger.js +80 -0
  182. package/dist/tui/plain-logger.js.map +1 -0
  183. package/dist/tui/status-tracker.d.ts +3 -2
  184. package/dist/tui/status-tracker.d.ts.map +1 -1
  185. package/dist/tui/status-tracker.js.map +1 -1
  186. package/dist/webhooks/definitions/github.js +1 -1
  187. package/dist/webhooks/definitions/github.js.map +1 -1
  188. package/dist/webhooks/definitions/sentry.js +1 -1
  189. package/dist/webhooks/definitions/sentry.js.map +1 -1
  190. package/dist/webhooks/providers/github.d.ts +1 -1
  191. package/dist/webhooks/providers/github.d.ts.map +1 -1
  192. package/dist/webhooks/providers/github.js +13 -9
  193. package/dist/webhooks/providers/github.js.map +1 -1
  194. package/dist/webhooks/providers/sentry.d.ts +1 -1
  195. package/dist/webhooks/providers/sentry.d.ts.map +1 -1
  196. package/dist/webhooks/providers/sentry.js +12 -9
  197. package/dist/webhooks/providers/sentry.js.map +1 -1
  198. package/dist/webhooks/registry.d.ts +1 -1
  199. package/dist/webhooks/registry.d.ts.map +1 -1
  200. package/dist/webhooks/registry.js +20 -13
  201. package/dist/webhooks/registry.js.map +1 -1
  202. package/dist/webhooks/types.d.ts +16 -6
  203. package/dist/webhooks/types.d.ts.map +1 -1
  204. package/docker/Dockerfile +4 -1
  205. package/package.json +10 -1
  206. package/dist/cli/commands/setup.d.ts.map +0 -1
  207. package/dist/cli/commands/setup.js +0 -50
  208. package/dist/cli/commands/setup.js.map +0 -1
  209. package/dist/docker/container.d.ts +0 -19
  210. package/dist/docker/container.d.ts.map +0 -1
  211. package/dist/docker/container.js +0 -73
  212. package/dist/docker/container.js.map +0 -1
@@ -0,0 +1,121 @@
1
+ import { resolve } from "path";
2
+ import { existsSync, mkdirSync } from "fs";
3
+ import { loadGlobalConfig, loadAgentConfig, discoverAgents } from "../../shared/config.js";
4
+ import { backendRequireCredentialRef } from "../../shared/credentials.js";
5
+ import { createLogger } from "../../shared/logger.js";
6
+ import { agentDir } from "../../shared/paths.js";
7
+ import { AgentRunner } from "../../agents/runner.js";
8
+ import { AWS_CONSTANTS } from "../../shared/aws-constants.js";
9
+ import { buildManualPrompt } from "../../agents/prompt.js";
10
+ import { execute as runDoctor } from "./doctor.js";
11
+ export async function execute(agent, opts) {
12
+ const projectPath = resolve(opts.project);
13
+ // Guard: refuse to run if the project path looks like an agent directory
14
+ if (existsSync(resolve(projectPath, "agent-config.toml")) || existsSync(resolve(projectPath, "PLAYBOOK.md"))) {
15
+ throw new Error(`"${projectPath}" looks like an agent directory, not a project directory. ` +
16
+ `Run 'al run' from the project root (the parent directory).`);
17
+ }
18
+ // Check agent exists
19
+ const agentNames = discoverAgents(projectPath);
20
+ if (!agentNames.includes(agent)) {
21
+ const available = agentNames.length > 0 ? `Available agents: ${agentNames.join(", ")}` : "No agents found.";
22
+ throw new Error(`Agent "${agent}" not found. ${available}`);
23
+ }
24
+ // Ensure credentials are present
25
+ await runDoctor({ project: opts.project });
26
+ const globalConfig = loadGlobalConfig(projectPath);
27
+ const agentConfig = loadAgentConfig(projectPath, agent);
28
+ // Validate credentials
29
+ for (const credRef of agentConfig.credentials) {
30
+ await backendRequireCredentialRef(credRef);
31
+ }
32
+ const dockerEnabled = !opts.noDocker && (globalConfig.local?.enabled ?? true);
33
+ const cloudMode = opts.cloud === true;
34
+ const logger = createLogger(projectPath, agent);
35
+ if (cloudMode) {
36
+ // Cloud mode: use cloud runtime
37
+ const cloud = globalConfig.cloud;
38
+ if (!cloud) {
39
+ throw new Error("No [cloud] section found in config.toml. Run 'al cloud setup' first.");
40
+ }
41
+ const { setDefaultBackend } = await import("../../shared/credentials.js");
42
+ const { createBackendFromCloudConfig } = await import("../../shared/remote.js");
43
+ const backend = await createBackendFromCloudConfig(cloud);
44
+ setDefaultBackend(backend);
45
+ let runtime;
46
+ if (cloud.provider === "cloud-run") {
47
+ const { CloudRunJobRuntime } = await import("../../docker/cloud-run-runtime.js");
48
+ const { gcpProject, region, artifactRegistry, serviceAccount, secretPrefix } = cloud;
49
+ if (!gcpProject || !region || !artifactRegistry || !serviceAccount) {
50
+ throw new Error("Cloud Run requires cloud.gcpProject, cloud.region, " +
51
+ "cloud.artifactRegistry, and cloud.serviceAccount in config.toml");
52
+ }
53
+ runtime = new CloudRunJobRuntime({ gcpProject, region, artifactRegistry, serviceAccount, secretPrefix });
54
+ }
55
+ else {
56
+ const { ECSFargateRuntime } = await import("../../docker/ecs-runtime.js");
57
+ if (!cloud.awsRegion || !cloud.ecsCluster || !cloud.ecrRepository || !cloud.executionRoleArn || !cloud.taskRoleArn || !cloud.subnets?.length) {
58
+ throw new Error("ECS requires cloud.awsRegion, cloud.ecsCluster, cloud.ecrRepository, " +
59
+ "cloud.executionRoleArn, cloud.taskRoleArn, and cloud.subnets in config.toml");
60
+ }
61
+ runtime = new ECSFargateRuntime({
62
+ awsRegion: cloud.awsRegion,
63
+ ecsCluster: cloud.ecsCluster,
64
+ ecrRepository: cloud.ecrRepository,
65
+ executionRoleArn: cloud.executionRoleArn,
66
+ taskRoleArn: cloud.taskRoleArn,
67
+ subnets: cloud.subnets,
68
+ securityGroups: cloud.securityGroups,
69
+ secretPrefix: cloud.awsSecretPrefix,
70
+ });
71
+ }
72
+ const { ContainerAgentRunner } = await import("../../agents/container-runner.js");
73
+ const baseImage = globalConfig.local?.image || AWS_CONSTANTS.DEFAULT_IMAGE;
74
+ const image = await runtime.buildImage({ tag: baseImage, dockerfile: "docker/Dockerfile", contextDir: resolve(import.meta.dirname || ".", "../..") });
75
+ const runner = new ContainerAgentRunner(runtime, globalConfig, agentConfig, logger, () => { }, () => { }, "", projectPath, image);
76
+ const prompt = buildManualPrompt(agentConfig);
77
+ console.log(`Running agent "${agent}" in cloud (${cloud.provider})...`);
78
+ await runner.run(prompt);
79
+ }
80
+ else if (dockerEnabled) {
81
+ // Docker mode: validate and run in container
82
+ if (agentConfig.model.authType === "pi_auth") {
83
+ throw new Error(`Agent "${agent}" uses pi_auth which is not supported in Docker mode. ` +
84
+ `Either switch to api_key/oauth_token (run 'al doctor') or use --no-docker.`);
85
+ }
86
+ const { execFileSync } = await import("child_process");
87
+ try {
88
+ execFileSync("docker", ["info"], { stdio: "pipe", timeout: 10000 });
89
+ }
90
+ catch {
91
+ throw new Error("Docker is not running. Start Docker Desktop (or the Docker daemon) and try again, " +
92
+ "or use --no-docker to run without container isolation.");
93
+ }
94
+ const { LocalDockerRuntime } = await import("../../docker/local-runtime.js");
95
+ const { ensureNetwork } = await import("../../docker/network.js");
96
+ const { ensureImage, ensureAgentImage } = await import("../../docker/image.js");
97
+ const { ContainerAgentRunner } = await import("../../agents/container-runner.js");
98
+ const runtime = new LocalDockerRuntime();
99
+ ensureNetwork();
100
+ const baseImage = globalConfig.local?.image || AWS_CONSTANTS.DEFAULT_IMAGE;
101
+ ensureImage(baseImage);
102
+ const image = ensureAgentImage(agent, projectPath, baseImage);
103
+ const runner = new ContainerAgentRunner(runtime, globalConfig, agentConfig, logger, () => { }, // no gateway to register with
104
+ () => { }, // no gateway to unregister from
105
+ "", // no gateway URL
106
+ projectPath, image);
107
+ const prompt = buildManualPrompt(agentConfig);
108
+ console.log(`Running agent "${agent}" in Docker...`);
109
+ await runner.run(prompt);
110
+ }
111
+ else {
112
+ // Host mode
113
+ mkdirSync(agentDir(projectPath, agent), { recursive: true });
114
+ const runner = new AgentRunner(agentConfig, logger, projectPath);
115
+ const prompt = buildManualPrompt(agentConfig);
116
+ console.log(`Running agent "${agent}"...`);
117
+ await runner.run(prompt);
118
+ }
119
+ console.log(`Agent "${agent}" run completed.`);
120
+ }
121
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export declare function execute(opts: {
2
2
  project: string;
3
- dangerousNoDocker?: boolean;
3
+ noDocker?: boolean;
4
+ cloud?: boolean;
5
+ tui?: boolean;
4
6
  }): Promise<void>;
5
7
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAMA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDnG"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAOA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF1H"}
@@ -1,42 +1,78 @@
1
1
  import { resolve } from "path";
2
+ import { existsSync } from "fs";
2
3
  import { loadGlobalConfig } from "../../shared/config.js";
3
4
  import { startScheduler } from "../../scheduler/index.js";
4
5
  import { StatusTracker } from "../../tui/status-tracker.js";
5
- import { execute as runSetup } from "./setup.js";
6
+ import { execute as runDoctor } from "./doctor.js";
6
7
  export async function execute(opts) {
7
8
  const projectPath = resolve(opts.project);
9
+ // Guard: refuse to run if the project path looks like an agent directory
10
+ if (existsSync(resolve(projectPath, "agent-config.toml")) || existsSync(resolve(projectPath, "PLAYBOOK.md"))) {
11
+ throw new Error(`"${projectPath}" looks like an agent directory, not a project directory. ` +
12
+ `Run 'al start' from the project root (the parent directory).`);
13
+ }
8
14
  // Ensure all credentials are present before starting
9
- await runSetup({ project: opts.project });
15
+ await runDoctor({ project: opts.project, cloud: opts.cloud });
10
16
  const globalConfig = loadGlobalConfig(projectPath);
11
- // Docker is on by default; --dangerous-no-docker disables it
12
- if (opts.dangerousNoDocker) {
13
- if (!globalConfig.docker)
14
- globalConfig.docker = { enabled: false };
17
+ // Docker is on by default; --no-docker disables it
18
+ if (opts.noDocker) {
19
+ if (!globalConfig.local)
20
+ globalConfig.local = { enabled: false };
15
21
  else
16
- globalConfig.docker.enabled = false;
22
+ globalConfig.local.enabled = false;
23
+ }
24
+ else if (!globalConfig.local) {
25
+ globalConfig.local = { enabled: true };
17
26
  }
18
- else if (!globalConfig.docker) {
19
- globalConfig.docker = { enabled: true };
27
+ // Cloud mode: set up cloud backend
28
+ if (opts.cloud) {
29
+ if (!globalConfig.cloud) {
30
+ throw new Error("No [cloud] section found in config.toml. Run 'al cloud setup' first.");
31
+ }
32
+ const { setDefaultBackend } = await import("../../shared/credentials.js");
33
+ const { createBackendFromCloudConfig } = await import("../../shared/remote.js");
34
+ const backend = await createBackendFromCloudConfig(globalConfig.cloud);
35
+ setDefaultBackend(backend);
20
36
  }
21
- const dockerEnabled = globalConfig.docker?.enabled === true;
37
+ const dockerEnabled = globalConfig.local?.enabled === true;
22
38
  const mode = dockerEnabled ? "docker" : "host";
23
39
  const statusTracker = new StatusTracker();
24
- const { cronJobs, gateway, webhookRegistry, webhookUrls } = await startScheduler(projectPath, globalConfig, statusTracker);
40
+ // Render TUI early so build progress is visible
41
+ statusTracker.setSchedulerInfo({
42
+ mode,
43
+ runtime: dockerEnabled ? (opts.cloud ? globalConfig.cloud?.provider : "local") : undefined,
44
+ gatewayPort: null,
45
+ cronJobCount: 0,
46
+ webhooksActive: false,
47
+ webhookUrls: [],
48
+ startedAt: new Date(),
49
+ });
50
+ let cleanup;
51
+ if (opts.tui === false) {
52
+ const { attachPlainLogger } = await import("../../tui/plain-logger.js");
53
+ const { detach } = attachPlainLogger(statusTracker);
54
+ cleanup = detach;
55
+ }
56
+ else {
57
+ const { renderTUI } = await import("../../tui/render.js");
58
+ const { unmount } = await renderTUI(statusTracker);
59
+ cleanup = unmount;
60
+ }
61
+ const { cronJobs, gateway, webhookRegistry, webhookUrls } = await startScheduler(projectPath, globalConfig, statusTracker, opts.cloud);
25
62
  const gatewayPort = gateway ? (globalConfig.gateway?.port || 8080) : null;
63
+ // Update scheduler info now that startup is complete
26
64
  statusTracker.setSchedulerInfo({
27
65
  mode,
66
+ runtime: dockerEnabled ? (opts.cloud ? globalConfig.cloud?.provider : "local") : undefined,
28
67
  gatewayPort,
29
68
  cronJobCount: cronJobs.length,
30
69
  webhooksActive: !!webhookRegistry,
31
70
  webhookUrls: webhookUrls || [],
32
71
  startedAt: new Date(),
33
72
  });
34
- // Lazy-import TUI to avoid loading React unless needed
35
- const { renderTUI } = await import("../../tui/render.js");
36
- const { unmount } = await renderTUI(statusTracker);
37
- // Coordinate SIGINT: unmount Ink, then exit
73
+ // Coordinate SIGINT: cleanup, then exit
38
74
  const shutdown = () => {
39
- unmount();
75
+ cleanup();
40
76
  process.exit(0);
41
77
  };
42
78
  process.on("SIGINT", shutdown);
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAsD;IAClF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1C,qDAAqD;IACrD,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEnD,6DAA6D;IAC7D,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,MAAM;YAAE,YAAY,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;YAC9D,YAAY,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3C,CAAC;SAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAChC,YAAY,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAE1C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAE3H,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,aAAa,CAAC,gBAAgB,CAAC;QAC7B,IAAI;QACJ,WAAW;QACX,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,cAAc,EAAE,CAAC,CAAC,eAAe;QACjC,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC,CAAC;IAEH,uDAAuD;IACvD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC;IAEnD,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,qBAAqB;IACrB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare function execute(opts: {
2
2
  project: string;
3
+ cloud?: boolean;
3
4
  }): Promise<void>;
4
5
  //# sourceMappingURL=status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAGA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBtE"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAIA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DvF"}
@@ -1,13 +1,50 @@
1
1
  import { resolve } from "path";
2
- import { discoverAgents, loadAgentConfig } from "../../shared/config.js";
2
+ import { discoverAgents, loadAgentConfig, loadGlobalConfig } from "../../shared/config.js";
3
3
  export async function execute(opts) {
4
4
  const projectPath = resolve(opts.project);
5
+ if (opts.cloud) {
6
+ const globalConfig = loadGlobalConfig(projectPath);
7
+ const cloud = globalConfig.cloud;
8
+ if (!cloud) {
9
+ throw new Error("No [cloud] section found in config.toml. Run 'al cloud setup' first.");
10
+ }
11
+ let agents;
12
+ if (cloud.provider === "cloud-run") {
13
+ const { CloudRunJobRuntime } = await import("../../docker/cloud-run-runtime.js");
14
+ const runtime = new CloudRunJobRuntime(cloud);
15
+ console.log(`Cloud Run Jobs status (project: ${cloud.gcpProject}):\n`);
16
+ agents = await runtime.listRunningAgents();
17
+ }
18
+ else {
19
+ const { ECSFargateRuntime } = await import("../../docker/ecs-runtime.js");
20
+ const runtime = new ECSFargateRuntime(cloud);
21
+ console.log(`ECS tasks status (cluster: ${cloud.ecsCluster}):\n`);
22
+ agents = await runtime.listRunningAgents();
23
+ }
24
+ if (agents.length === 0) {
25
+ console.log("No running agents.");
26
+ }
27
+ else {
28
+ const cols = { agent: 24, task: 40, status: 14, started: 24 };
29
+ console.log("AGENT".padEnd(cols.agent) +
30
+ "TASK".padEnd(cols.task) +
31
+ "STATUS".padEnd(cols.status) +
32
+ "STARTED AT");
33
+ console.log("-".repeat(cols.agent + cols.task + cols.status + cols.started));
34
+ for (const a of agents) {
35
+ console.log(a.agentName.padEnd(cols.agent) +
36
+ a.taskId.padEnd(cols.task) +
37
+ a.status.padEnd(cols.status) +
38
+ (a.startedAt ? a.startedAt.toISOString() : "-"));
39
+ }
40
+ }
41
+ return;
42
+ }
5
43
  const agentNames = discoverAgents(projectPath);
6
44
  console.log(`AL Status — ${projectPath}\n`);
7
45
  for (const name of agentNames) {
8
46
  const agentConfig = loadAgentConfig(projectPath, name);
9
47
  console.log(`${name}:`);
10
- console.log(` Repos: ${agentConfig.repos.join(", ")}`);
11
48
  console.log(` Schedule: ${agentConfig.schedule || "(none)"}`);
12
49
  console.log("");
13
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAyB;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,IAAI,CAAC,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
package/dist/cli/main.js CHANGED
@@ -19,15 +19,37 @@ program
19
19
  const { execute } = await import("./commands/new.js");
20
20
  await execute(name);
21
21
  });
22
+ program
23
+ .command("run")
24
+ .description("Manually run a single agent")
25
+ .argument("<agent>", "agent name")
26
+ .option("-p, --project <dir>", "project directory", ".")
27
+ .option("--no-docker", "disable Docker container isolation (run agents directly on host)")
28
+ .option("-c, --cloud", "run on cloud infrastructure")
29
+ .action(async (agent, opts) => {
30
+ const { execute } = await import("./commands/run.js");
31
+ await execute(agent, opts);
32
+ });
22
33
  program
23
34
  .command("start")
24
35
  .description("Start cron scheduler")
25
36
  .option("-p, --project <dir>", "project directory", ".")
26
- .option("--dangerous-no-docker", "disable Docker container isolation (run agents directly on host)")
37
+ .option("--no-docker", "disable Docker container isolation (run agents directly on host)")
38
+ .option("-c, --cloud", "run on cloud infrastructure")
39
+ .option("--no-tui", "disable interactive TUI, log status changes to stdout")
27
40
  .action(async (opts) => {
28
41
  const { execute } = await import("./commands/start.js");
29
42
  await execute(opts);
30
43
  });
44
+ program
45
+ .command("doctor")
46
+ .description("Check agents, credentials, webhooks, and config — prompt to fix")
47
+ .option("-p, --project <dir>", "project directory", ".")
48
+ .option("-c, --cloud", "also push credentials to cloud and reconcile IAM")
49
+ .action(async (opts) => {
50
+ const { execute } = await import("./commands/doctor.js");
51
+ await execute(opts);
52
+ });
31
53
  program
32
54
  .command("logs")
33
55
  .description("View agent log files")
@@ -36,6 +58,7 @@ program
36
58
  .option("-n, --lines <N>", "number of log entries to show", "50")
37
59
  .option("-f, --follow", "tail mode — watch for new log entries")
38
60
  .option("-d, --date <YYYY-MM-DD>", "specific date's log file")
61
+ .option("-c, --cloud", "view cloud logs")
39
62
  .action(async (agent, opts) => {
40
63
  const { execute } = await import("./commands/logs.js");
41
64
  await execute(agent, opts);
@@ -44,37 +67,56 @@ program
44
67
  .command("status")
45
68
  .description("Show agent status")
46
69
  .option("-p, --project <dir>", "project directory", ".")
70
+ .option("-c, --cloud", "show cloud status")
47
71
  .action(async (opts) => {
48
72
  const { execute } = await import("./commands/status.js");
49
73
  await execute(opts);
50
74
  });
51
75
  program
76
+ .command("console")
77
+ .description("Open an interactive Pi coding console with project context")
78
+ .option("-p, --project <dir>", "project directory", ".")
79
+ .action(async (opts) => {
80
+ const { execute } = await import("./commands/console.js");
81
+ await execute(opts);
82
+ });
83
+ // --- Credential management ---
84
+ const credsCmd = program
85
+ .command("creds")
86
+ .description("Credential management");
87
+ credsCmd
88
+ .command("ls")
89
+ .description("List stored credentials (names only, no secrets)")
90
+ .action(async () => {
91
+ const { list } = await import("./commands/creds.js");
92
+ await list();
93
+ });
94
+ // --- Cloud management ---
95
+ const cloudCmd = program
96
+ .command("cloud")
97
+ .description("Cloud infrastructure management");
98
+ cloudCmd
52
99
  .command("setup")
53
- .description("Ensure all agent credentials exist")
100
+ .description("Interactive wizard: pick provider, configure, push creds, provision IAM")
54
101
  .option("-p, --project <dir>", "project directory", ".")
55
102
  .action(async (opts) => {
56
- const { execute } = await import("./commands/setup.js");
103
+ const { execute } = await import("./commands/cloud-setup.js");
57
104
  await execute(opts);
58
105
  });
59
- program
60
- .command("console")
61
- .description("Open an interactive Pi coding console with project context")
106
+ cloudCmd
107
+ .command("teardown")
108
+ .description("Delete per-agent IAM resources and remove [cloud] config")
62
109
  .option("-p, --project <dir>", "project directory", ".")
63
110
  .action(async (opts) => {
64
- const { execute } = await import("./commands/console.js");
111
+ const { execute } = await import("./commands/cloud-teardown.js");
65
112
  await execute(opts);
66
113
  });
67
114
  program.parseAsync().catch((err) => {
68
- const detail = { error: err.message };
115
+ console.error(`\nError: ${err.message}`);
69
116
  if (err.cause)
70
- detail.cause = String(err.cause);
71
- if (err.code)
72
- detail.code = err.code;
73
- if (err.status)
74
- detail.status = err.status;
75
- if (err.stack)
76
- detail.stack = err.stack;
77
- console.error(JSON.stringify(detail));
117
+ console.error(`Cause: ${err.cause}`);
118
+ if (process.env.DEBUG)
119
+ console.error(err.stack);
78
120
  process.exit(1);
79
121
  });
80
122
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CredentialDefinition } from "../schema.js";
2
+ declare const aws: CredentialDefinition;
3
+ export default aws;
4
+ //# sourceMappingURL=aws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws.d.ts","sourceRoot":"","sources":["../../../src/credentials/builtins/aws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,QAAA,MAAM,GAAG,EAAE,oBAkCV,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -0,0 +1,33 @@
1
+ const aws = {
2
+ id: "aws",
3
+ label: "AWS Credentials",
4
+ description: "AWS Access Key for managing AWS resources",
5
+ helpUrl: "https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html",
6
+ fields: [
7
+ { name: "access_key_id", label: "Access Key ID", description: "AWS Access Key ID", secret: false },
8
+ { name: "secret_access_key", label: "Secret Access Key", description: "AWS Secret Access Key", secret: true },
9
+ { name: "default_region", label: "Default Region", description: "AWS default region (optional)", secret: false },
10
+ ],
11
+ envVars: {
12
+ access_key_id: "AWS_ACCESS_KEY_ID",
13
+ secret_access_key: "AWS_SECRET_ACCESS_KEY",
14
+ default_region: "AWS_DEFAULT_REGION"
15
+ },
16
+ agentContext: "`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_DEFAULT_REGION` — use `aws` CLI and AWS SDKs directly",
17
+ async validate(values) {
18
+ // Basic validation that required fields are present
19
+ if (!values.access_key_id || !values.secret_access_key) {
20
+ throw new Error("Access Key ID and Secret Access Key are required");
21
+ }
22
+ if (values.access_key_id.length < 16 || values.access_key_id.length > 128) {
23
+ throw new Error("AWS Access Key ID should be between 16 and 128 characters");
24
+ }
25
+ if (values.secret_access_key.length < 40) {
26
+ throw new Error("AWS Secret Access Key should be at least 40 characters");
27
+ }
28
+ // We could add a real AWS API validation here, but for now basic validation is sufficient
29
+ return true;
30
+ },
31
+ };
32
+ export default aws;
33
+ //# sourceMappingURL=aws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws.js","sourceRoot":"","sources":["../../../src/credentials/builtins/aws.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAyB;IAChC,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,2CAA2C;IACxD,OAAO,EAAE,kFAAkF;IAC3F,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,KAAK,EAAE;QAClG,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,EAAE,IAAI,EAAE;QAC7G,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,+BAA+B,EAAE,MAAM,EAAE,KAAK,EAAE;KACjH;IACD,OAAO,EAAE;QACP,aAAa,EAAE,mBAAmB;QAClC,iBAAiB,EAAE,uBAAuB;QAC1C,cAAc,EAAE,oBAAoB;KACrC;IACD,YAAY,EAAE,0GAA0G;IAExH,KAAK,CAAC,QAAQ,CAAC,MAAM;QACnB,oDAAoD;QACpD,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,0FAA0F;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { CredentialDefinition } from "../schema.js";
2
+ declare const bugsnagToken: CredentialDefinition;
3
+ export default bugsnagToken;
4
+ //# sourceMappingURL=bugsnag-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bugsnag-token.d.ts","sourceRoot":"","sources":["../../../src/credentials/builtins/bugsnag-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGzD,QAAA,MAAM,YAAY,EAAE,oBAenB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { validateBugsnagToken } from "../../setup/validators.js";
2
+ const bugsnagToken = {
3
+ id: "bugsnag_token",
4
+ label: "Bugsnag Auth Token",
5
+ description: "For error monitoring and release management",
6
+ helpUrl: "https://app.bugsnag.com/settings/my-account/auth-tokens",
7
+ fields: [
8
+ { name: "token", label: "Auth Token", description: "Bugsnag auth token", secret: true },
9
+ ],
10
+ envVars: { token: "BUGSNAG_AUTH_TOKEN" },
11
+ agentContext: "`BUGSNAG_AUTH_TOKEN` — use for Bugsnag API requests",
12
+ async validate(values) {
13
+ await validateBugsnagToken(values.token);
14
+ return true;
15
+ },
16
+ };
17
+ export default bugsnagToken;
18
+ //# sourceMappingURL=bugsnag-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bugsnag-token.js","sourceRoot":"","sources":["../../../src/credentials/builtins/bugsnag-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,YAAY,GAAyB;IACzC,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,6CAA6C;IAC1D,OAAO,EAAE,yDAAyD;IAClE,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE;KACxF;IACD,OAAO,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACxC,YAAY,EAAE,qDAAqD;IAEnE,KAAK,CAAC,QAAQ,CAAC,MAAM;QACnB,MAAM,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"github-webhook-secret.d.ts","sourceRoot":"","sources":["../../../src/credentials/builtins/github-webhook-secret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,QAAA,MAAM,mBAAmB,EAAE,oBAQ1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"github-webhook-secret.d.ts","sourceRoot":"","sources":["../../../src/credentials/builtins/github-webhook-secret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,QAAA,MAAM,mBAAmB,EAAE,oBAS1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  const githubWebhookSecret = {
2
2
  id: "github_webhook_secret",
3
3
  label: "GitHub Webhook Secret",
4
- description: "Shared secret for verifying GitHub webhook payloads",
4
+ description: "Shared secret for verifying GitHub webhook payloads. Generate any random string, then paste it here AND in your GitHub repo's webhook settings (Settings → Webhooks → Secret).",
5
+ helpUrl: "https://docs.github.com/en/webhooks/using-webhooks/validating-webhook-deliveries",
5
6
  fields: [
6
7
  { name: "secret", label: "Webhook Secret", description: "Set this same value in your GitHub webhook settings", secret: true },
7
8
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"github-webhook-secret.js","sourceRoot":"","sources":["../../../src/credentials/builtins/github-webhook-secret.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAyB;IAChD,EAAE,EAAE,uBAAuB;IAC3B,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,qDAAqD,EAAE,MAAM,EAAE,IAAI,EAAE;KAC9H;IACD,6EAA6E;CAC9E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"github-webhook-secret.js","sourceRoot":"","sources":["../../../src/credentials/builtins/github-webhook-secret.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAyB;IAChD,EAAE,EAAE,uBAAuB;IAC3B,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EAAE,gLAAgL;IAC7L,OAAO,EAAE,kFAAkF;IAC3F,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,qDAAqD,EAAE,MAAM,EAAE,IAAI,EAAE;KAC9H;IACD,6EAA6E;CAC9E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/credentials/builtins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAQzD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAOnE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/credentials/builtins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAazD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAYnE,CAAC"}
@@ -1,15 +1,25 @@
1
1
  import githubToken from "./github-token.js";
2
2
  import anthropicKey from "./anthropic-key.js";
3
+ import openaiKey from "./openai-key.js";
3
4
  import sentryToken from "./sentry-token.js";
4
5
  import gitSsh from "./id-rsa.js";
5
6
  import githubWebhookSecret from "./github-webhook-secret.js";
6
7
  import sentryClientSecret from "./sentry-client-secret.js";
8
+ import netlifyToken from "./netlify-token.js";
9
+ import xTwitterApi from "./x-twitter-api.js";
10
+ import aws from "./aws.js";
11
+ import bugsnagToken from "./bugsnag-token.js";
7
12
  export const builtinCredentials = {
8
13
  "github_token": githubToken,
9
14
  "anthropic_key": anthropicKey,
15
+ "openai_key": openaiKey,
10
16
  "sentry_token": sentryToken,
11
17
  "git_ssh": gitSsh,
12
18
  "github_webhook_secret": githubWebhookSecret,
13
19
  "sentry_client_secret": sentryClientSecret,
20
+ "netlify_token": netlifyToken,
21
+ "x_twitter_api": xTwitterApi,
22
+ "aws": aws,
23
+ "bugsnag_token": bugsnagToken,
14
24
  };
15
25
  //# sourceMappingURL=index.js.map