@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,152 @@
1
+ import { resolve } from "path";
2
+ import { existsSync, readFileSync, writeFileSync } from "fs";
3
+ import { confirm } from "@inquirer/prompts";
4
+ import { execFileSync } from "child_process";
5
+ import { parse as parseTOML, stringify as stringifyTOML } from "smol-toml";
6
+ import { discoverAgents } from "../../shared/config.js";
7
+ import { STSClient, GetCallerIdentityCommand } from "@aws-sdk/client-sts";
8
+ import { IAMClient, DeleteRolePolicyCommand, DeleteRoleCommand } from "@aws-sdk/client-iam";
9
+ import { AWS_CONSTANTS } from "../../shared/aws-constants.js";
10
+ export async function execute(opts) {
11
+ const projectPath = resolve(opts.project);
12
+ const configPath = resolve(projectPath, "config.toml");
13
+ if (!existsSync(configPath)) {
14
+ console.log("No config.toml found. Nothing to tear down.");
15
+ return;
16
+ }
17
+ const rawConfig = parseTOML(readFileSync(configPath, "utf-8"));
18
+ const cloud = rawConfig.cloud;
19
+ if (!cloud || !cloud.provider) {
20
+ console.log("No [cloud] section in config.toml. Nothing to tear down.");
21
+ return;
22
+ }
23
+ console.log(`\n=== Cloud Teardown (${cloud.provider}) ===\n`);
24
+ const ok = await confirm({
25
+ message: "This will delete per-agent IAM resources and remove the [cloud] config. Continue?",
26
+ default: false,
27
+ });
28
+ if (!ok) {
29
+ console.log("Aborted.");
30
+ return;
31
+ }
32
+ await teardownCloud(projectPath, cloud);
33
+ // Remove [cloud] from config.toml
34
+ delete rawConfig.cloud;
35
+ writeFileSync(configPath, stringifyTOML(rawConfig));
36
+ console.log(`Removed [cloud] section from ${configPath}`);
37
+ console.log("\nCloud teardown complete.");
38
+ }
39
+ export async function teardownCloud(projectPath, cloud) {
40
+ if (cloud.provider === "cloud-run") {
41
+ await teardownGcp(projectPath, cloud);
42
+ }
43
+ else if (cloud.provider === "ecs") {
44
+ await teardownAws(projectPath, cloud);
45
+ }
46
+ else {
47
+ throw new Error(`Unknown cloud provider: "${cloud.provider}"`);
48
+ }
49
+ }
50
+ async function teardownGcp(projectPath, cloud) {
51
+ const { gcpProject } = cloud;
52
+ if (!gcpProject) {
53
+ console.log("Incomplete GCP config (no project). Skipping IAM teardown.");
54
+ return;
55
+ }
56
+ try {
57
+ gcloud(["auth", "print-access-token"], gcpProject);
58
+ }
59
+ catch (err) {
60
+ throw new Error("gcloud CLI is not authenticated. Run 'gcloud auth login' first.\n" +
61
+ `Original error: ${err.message}`);
62
+ }
63
+ const agents = discoverAgents(projectPath);
64
+ if (agents.length === 0) {
65
+ console.log("No agents found. Skipping IAM teardown.");
66
+ return;
67
+ }
68
+ console.log(`Removing Cloud Run service accounts for ${agents.length} agent(s)...\n`);
69
+ for (const name of agents) {
70
+ const saName = AWS_CONSTANTS.serviceAccountName(name);
71
+ const saEmail = AWS_CONSTANTS.serviceAccountEmail(name, gcpProject);
72
+ console.log(` Agent: ${name}`);
73
+ console.log(` Deleting SA: ${saEmail}`);
74
+ try {
75
+ gcloud([
76
+ "iam", "service-accounts", "delete", saEmail,
77
+ "--quiet",
78
+ "--project", gcpProject,
79
+ ], gcpProject);
80
+ console.log(` Deleted`);
81
+ }
82
+ catch (err) {
83
+ if (err.message?.includes("NOT_FOUND") || err.message?.includes("not found")) {
84
+ console.log(` Not found (already deleted)`);
85
+ }
86
+ else {
87
+ console.log(` Warning: ${err.message}`);
88
+ }
89
+ }
90
+ console.log("");
91
+ }
92
+ }
93
+ async function teardownAws(projectPath, cloud) {
94
+ const { awsRegion } = cloud;
95
+ if (!awsRegion) {
96
+ console.log("Incomplete AWS config (no region). Skipping IAM teardown.");
97
+ return;
98
+ }
99
+ const stsClient = new STSClient({ region: awsRegion });
100
+ const iamClient = new IAMClient({ region: awsRegion });
101
+ try {
102
+ await stsClient.send(new GetCallerIdentityCommand({}));
103
+ }
104
+ catch (err) {
105
+ throw new Error("AWS CLI is not authenticated. Run 'aws configure' or set AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY.\n" +
106
+ `Original error: ${err.message}`);
107
+ }
108
+ const agents = discoverAgents(projectPath);
109
+ if (agents.length === 0) {
110
+ console.log("No agents found. Skipping IAM teardown.");
111
+ return;
112
+ }
113
+ console.log(`Removing ECS task roles for ${agents.length} agent(s)...\n`);
114
+ for (const name of agents) {
115
+ const roleName = AWS_CONSTANTS.taskRoleName(name);
116
+ console.log(` Agent: ${name}`);
117
+ console.log(` Deleting role: ${roleName}`);
118
+ // Must delete inline policies before deleting the role
119
+ try {
120
+ await iamClient.send(new DeleteRolePolicyCommand({
121
+ RoleName: roleName,
122
+ PolicyName: "SecretsAccess",
123
+ }));
124
+ }
125
+ catch {
126
+ // Policy may not exist
127
+ }
128
+ try {
129
+ await iamClient.send(new DeleteRoleCommand({
130
+ RoleName: roleName,
131
+ }));
132
+ console.log(` Deleted`);
133
+ }
134
+ catch (err) {
135
+ if (err.name === "NoSuchEntityException") {
136
+ console.log(` Not found (already deleted)`);
137
+ }
138
+ else {
139
+ console.log(` Warning: ${err.message}`);
140
+ }
141
+ }
142
+ console.log("");
143
+ }
144
+ }
145
+ function gcloud(args, _project) {
146
+ return execFileSync("gcloud", args, {
147
+ encoding: "utf-8",
148
+ timeout: 30_000,
149
+ stdio: ["pipe", "pipe", "pipe"],
150
+ }).trim();
151
+ }
152
+ //# sourceMappingURL=cloud-teardown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-teardown.js","sourceRoot":"","sources":["../../../src/cli/commands/cloud-teardown.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/console.ts"],"names":[],"mappings":"AA2DA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqHtE"}
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/console.ts"],"names":[],"mappings":"AA0EA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ItE"}
@@ -1,8 +1,9 @@
1
1
  import { resolve, join } from "path";
2
- import { readFileSync, existsSync, mkdirSync, writeFileSync } from "fs";
2
+ import { readFileSync, existsSync, mkdirSync, writeFileSync, readdirSync, statSync } from "fs";
3
3
  import { homedir } from "os";
4
4
  import { loadCredentialField } from "../../shared/credentials.js";
5
- import { discoverAgents, loadAgentConfig } from "../../shared/config.js";
5
+ import { discoverAgents, loadAgentConfig, loadGlobalConfig } from "../../shared/config.js";
6
+ import { CREDENTIALS_DIR } from "../../shared/paths.js";
6
7
  const AL_KEYBINDINGS = {
7
8
  newLine: ["shift+enter", "alt+enter"],
8
9
  followUp: [],
@@ -47,9 +48,23 @@ USER node
47
48
 
48
49
  If the agent needs a fundamentally different base (e.g. a Python-heavy agent that should use \`python:3.12-slim\` instead of \`node:20-slim\`), you can use any base image — just make sure to install Node.js and set up the \`node\` user (uid 1000) since the container entry point requires them.
49
50
 
51
+ ### Model configuration
52
+
53
+ The project's \`config.toml\` defines a default \`[model]\` that all agents inherit. Do NOT add a \`[model]\` section to an agent's \`agent-config.toml\` unless the user specifically wants that agent to use a different model or thinking level than the project default. Omitting \`[model]\` from the agent config is correct — it will inherit from the project.
54
+
55
+ ### Credentials
56
+
57
+ The available credentials are listed below under "Available Credentials". Use these when writing the agent's \`credentials\` array in \`agent-config.toml\`. Reference them as \`"type:instance"\` (e.g. \`"github_token:default"\`). For default instances, you can omit the \`:default\` suffix.
58
+
59
+ When a credential type has **multiple instances** (e.g. \`github_webhook_secret:myapp\` and \`github_webhook_secret:staging\`), ask the user which instance they want to use for this agent. Do not guess.
60
+
61
+ If a required credential is missing from the available list, tell the user to run \`al doctor\` to set it up, then re-open the console.
62
+
50
63
  When the user asks to create an agent:
51
64
  - Ask which template they want and walk them through configuring it
65
+ - Check the available credentials and use what's there; ask the user to choose when there are multiple instances of a credential type
52
66
  - Create the agent directory with \`agent-config.toml\`, \`PLAYBOOK.md\`, and a \`Dockerfile\` if the playbook requires tools not in the base image
67
+ - Do NOT include \`[model]\` in agent-config.toml unless the user asks for a different model than the project default
53
68
  - **IMPORTANT:** Agent playbooks must be detailed and prescriptive with step-by-step commands. Copy the example playbook from the "Example Playbook" section above and customize it — do NOT write simplified or abbreviated instructions.
54
69
  `;
55
70
  const NO_AGENTS_INITIAL_MESSAGE = `Help me create my first agent.`;
@@ -64,7 +79,7 @@ export async function execute(opts) {
64
79
  const agentSummaries = agents.map((name) => {
65
80
  try {
66
81
  const config = loadAgentConfig(projectPath, name);
67
- return `- ${name}: repos=${config.repos.join(",")}, schedule=${config.schedule || "webhook-only"}`;
82
+ return `- ${name}: schedule=${config.schedule || "webhook-only"}`;
68
83
  }
69
84
  catch {
70
85
  return `- ${name}: (could not load config)`;
@@ -106,12 +121,29 @@ export async function execute(opts) {
106
121
  console.log(`Shortcuts: ${shortcuts.join(", ")}\n`);
107
122
  const { AuthStorage, createAgentSession, DefaultResourceLoader, SessionManager, SettingsManager, createCodingTools, InteractiveMode, } = await import("@mariozechner/pi-coding-agent");
108
123
  const { getModel } = await import("@mariozechner/pi-ai");
124
+ const globalConfig = loadGlobalConfig(projectPath);
125
+ const modelConfig = globalConfig.model || {
126
+ provider: "anthropic",
127
+ model: "claude-sonnet-4-20250514",
128
+ thinkingLevel: "medium",
129
+ authType: "api_key",
130
+ };
109
131
  const authStorage = AuthStorage.create();
110
- const credential = loadCredentialField("anthropic_key", "default", "token");
111
- if (credential) {
112
- authStorage.setRuntimeApiKey("anthropic", credential);
132
+ if (modelConfig.authType !== "pi_auth") {
133
+ if (modelConfig.provider === "anthropic") {
134
+ const credential = loadCredentialField("anthropic_key", "default", "token");
135
+ if (credential) {
136
+ authStorage.setRuntimeApiKey("anthropic", credential);
137
+ }
138
+ }
139
+ else if (modelConfig.provider === "openai") {
140
+ const credential = loadCredentialField("openai_key", "default", "token");
141
+ if (credential) {
142
+ authStorage.setRuntimeApiKey("openai", credential);
143
+ }
144
+ }
113
145
  }
114
- const model = getModel("anthropic", "claude-sonnet-4-20250514");
146
+ const model = getModel(modelConfig.provider, modelConfig.model);
115
147
  // Load AGENTS.md context, appending agent summaries or no-agents guidance
116
148
  let fullContext = agentsContent || "";
117
149
  if (agents.length === 0) {
@@ -120,6 +152,14 @@ export async function execute(opts) {
120
152
  else if (agentSummaries.length > 0) {
121
153
  fullContext += `\n\n## Current Agents\n\n${agentSummaries.join("\n")}`;
122
154
  }
155
+ // Append available credentials
156
+ const credInventory = collectCredentialInventory();
157
+ if (credInventory) {
158
+ fullContext += `\n\n## Available Credentials\n\nThese credentials are configured locally (from \`al creds ls\`):\n\n${credInventory}\n`;
159
+ }
160
+ else {
161
+ fullContext += `\n\n## Available Credentials\n\nNo credentials configured yet. The user should run \`al doctor\` to set them up.\n`;
162
+ }
123
163
  const resourceLoader = new DefaultResourceLoader({
124
164
  noExtensions: true,
125
165
  ...(fullContext
@@ -140,7 +180,7 @@ export async function execute(opts) {
140
180
  const { session } = await createAgentSession({
141
181
  cwd: projectPath,
142
182
  model,
143
- thinkingLevel: "medium",
183
+ thinkingLevel: modelConfig.thinkingLevel,
144
184
  authStorage,
145
185
  resourceLoader,
146
186
  tools: createCodingTools(projectPath),
@@ -170,4 +210,64 @@ function readKeybindings() {
170
210
  return {};
171
211
  }
172
212
  }
213
+ /**
214
+ * Collect a credential inventory: type → instance[] → field[]
215
+ * Returns a formatted string like `al creds ls` output, or empty string if none.
216
+ */
217
+ function collectCredentialInventory() {
218
+ let types;
219
+ try {
220
+ types = readdirSync(CREDENTIALS_DIR).filter((e) => {
221
+ try {
222
+ return statSync(resolve(CREDENTIALS_DIR, e)).isDirectory();
223
+ }
224
+ catch {
225
+ return false;
226
+ }
227
+ }).sort();
228
+ }
229
+ catch {
230
+ return "";
231
+ }
232
+ const lines = [];
233
+ for (const type of types) {
234
+ const typeDir = resolve(CREDENTIALS_DIR, type);
235
+ let instances;
236
+ try {
237
+ instances = readdirSync(typeDir).filter((e) => {
238
+ try {
239
+ return statSync(resolve(typeDir, e)).isDirectory();
240
+ }
241
+ catch {
242
+ return false;
243
+ }
244
+ }).sort();
245
+ }
246
+ catch {
247
+ continue;
248
+ }
249
+ for (const instance of instances) {
250
+ const instanceDir = resolve(typeDir, instance);
251
+ let fields;
252
+ try {
253
+ fields = readdirSync(instanceDir).filter((e) => {
254
+ try {
255
+ return statSync(resolve(instanceDir, e)).isFile();
256
+ }
257
+ catch {
258
+ return false;
259
+ }
260
+ }).sort();
261
+ }
262
+ catch {
263
+ fields = [];
264
+ }
265
+ if (fields.length === 0)
266
+ continue;
267
+ const ref = instance === "default" ? type : `${type}:${instance}`;
268
+ lines.push(` ${ref} (${fields.join(", ")})`);
269
+ }
270
+ }
271
+ return lines.join("\n");
272
+ }
173
273
  //# sourceMappingURL=console.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/cli/commands/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/cli/commands/console.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function list(): Promise<void>;
2
+ //# sourceMappingURL=creds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creds.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/creds.ts"],"names":[],"mappings":"AAIA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuD1C"}
@@ -0,0 +1,62 @@
1
+ import { readdirSync, statSync } from "fs";
2
+ import { resolve } from "path";
3
+ import { CREDENTIALS_DIR } from "../../shared/paths.js";
4
+ export async function list() {
5
+ let entries;
6
+ try {
7
+ entries = readdirSync(CREDENTIALS_DIR).filter((e) => {
8
+ try {
9
+ return statSync(resolve(CREDENTIALS_DIR, e)).isDirectory();
10
+ }
11
+ catch {
12
+ return false;
13
+ }
14
+ });
15
+ }
16
+ catch {
17
+ console.log(`No credentials found at ${CREDENTIALS_DIR}`);
18
+ return;
19
+ }
20
+ if (entries.length === 0) {
21
+ console.log(`No credentials found at ${CREDENTIALS_DIR}`);
22
+ return;
23
+ }
24
+ for (const type of entries.sort()) {
25
+ const typeDir = resolve(CREDENTIALS_DIR, type);
26
+ let instances;
27
+ try {
28
+ instances = readdirSync(typeDir).filter((e) => {
29
+ try {
30
+ return statSync(resolve(typeDir, e)).isDirectory();
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ });
36
+ }
37
+ catch {
38
+ continue;
39
+ }
40
+ for (const instance of instances.sort()) {
41
+ const instanceDir = resolve(typeDir, instance);
42
+ let fields;
43
+ try {
44
+ fields = readdirSync(instanceDir).filter((e) => {
45
+ try {
46
+ return statSync(resolve(instanceDir, e)).isFile();
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ });
52
+ }
53
+ catch {
54
+ fields = [];
55
+ }
56
+ const ref = instance === "default" ? type : `${type}:${instance}`;
57
+ const fieldList = fields.sort().join(", ");
58
+ console.log(` ${ref} (${fieldList})`);
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=creds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creds.js","sourceRoot":"","sources":["../../../src/cli/commands/creds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAClD,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAe,EAAE,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAe,EAAE,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,SAAmB,CAAC;QACxB,IAAI,CAAC;YACH,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5C,IAAI,CAAC;oBACH,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,MAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC7C,IAAI,CAAC;wBACH,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACpD,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,EAAE,CAAC;YACd,CAAC;YAED,MAAM,GAAG,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;YAClE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,SAAS,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { CloudConfig } from "../../shared/config.js";
2
+ export declare function execute(opts: {
3
+ project: string;
4
+ cloud?: boolean;
5
+ }): Promise<void>;
6
+ export declare function reconcileCloudIam(projectPath: string, cloud: CloudConfig): Promise<void>;
7
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAc1D,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGvF;AAID,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9F"}