@agent-api/cli 0.0.1 → 0.1.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.
Files changed (41) hide show
  1. package/README.md +11 -0
  2. package/dist/index.js +20 -2
  3. package/dist/runtime/index.d.ts +1 -1
  4. package/dist/runtime/index.js +1 -1
  5. package/dist/tui/chat.d.ts +1 -5
  6. package/dist/tui/chat.js +1 -1276
  7. package/dist/tui/ink/app.d.ts +5 -0
  8. package/dist/tui/ink/app.js +308 -0
  9. package/dist/tui/ink/components.d.ts +10 -0
  10. package/dist/tui/ink/components.js +20 -0
  11. package/dist/tui/workbench.d.ts +30 -0
  12. package/dist/tui/workbench.js +101 -0
  13. package/dist/workbench/auth-controller.d.ts +43 -0
  14. package/dist/workbench/auth-controller.js +84 -0
  15. package/dist/workbench/auth-gate-controller.d.ts +62 -0
  16. package/dist/workbench/auth-gate-controller.js +231 -0
  17. package/dist/workbench/command-controller.d.ts +29 -0
  18. package/dist/workbench/command-controller.js +371 -0
  19. package/dist/workbench/conversation-controller.d.ts +32 -0
  20. package/dist/workbench/conversation-controller.js +53 -0
  21. package/dist/workbench/engine.d.ts +66 -0
  22. package/dist/workbench/engine.js +291 -0
  23. package/dist/workbench/input-controller.d.ts +44 -0
  24. package/dist/workbench/input-controller.js +71 -0
  25. package/dist/workbench/lifecycle-controller.d.ts +29 -0
  26. package/dist/workbench/lifecycle-controller.js +75 -0
  27. package/dist/workbench/local-controller.d.ts +19 -0
  28. package/dist/workbench/local-controller.js +89 -0
  29. package/dist/workbench/render-model.d.ts +46 -0
  30. package/dist/workbench/render-model.js +61 -0
  31. package/dist/workbench/runtime-controller.d.ts +12 -0
  32. package/dist/workbench/runtime-controller.js +57 -0
  33. package/dist/workbench/session.d.ts +27 -0
  34. package/dist/workbench/session.js +40 -0
  35. package/dist/workbench/settings-controller.d.ts +52 -0
  36. package/dist/workbench/settings-controller.js +120 -0
  37. package/dist/workbench/turn-controller.d.ts +25 -0
  38. package/dist/workbench/turn-controller.js +162 -0
  39. package/dist/workbench/view-model.d.ts +34 -0
  40. package/dist/workbench/view-model.js +121 -0
  41. package/package.json +2 -2
package/README.md CHANGED
@@ -73,6 +73,17 @@ Launch the first-class TUI from your current directory:
73
73
  agent-tui
74
74
  ```
75
75
 
76
+ Open a specific local workdir and expose local tools to the agent:
77
+
78
+ ```bash
79
+ agent-tui .
80
+ agent-tui ./my-workdir
81
+ agent-tui /absolute/path/to/my-workdir
82
+ ```
83
+
84
+ The workdir argument must point to an existing directory. When provided, the
85
+ workbench automatically turns on local workdir and shell tools in approval mode.
86
+
76
87
  The workbench opens with auth as the first gate. If the active profile is valid,
77
88
  it enters the conversation UI automatically. If not, it shows an in-terminal
78
89
  auth picker for browser session or API key login.
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command, Option } from "commander";
3
+ import { stat } from "node:fs/promises";
4
+ import { resolve } from "node:path";
3
5
  import { render } from "ink";
4
6
  import React from "react";
5
7
  import { conversationSummary, deleteConversation, getConversation, listConversations, runAgent } from "./agent.js";
@@ -15,15 +17,17 @@ program
15
17
  .alias("agentsway")
16
18
  .alias("agent-tui")
17
19
  .description("First-class command line interface for Agent API")
20
+ .argument("[workdir]", "local workdir to open and expose to the agent")
18
21
  .version(cliVersion)
19
22
  .showHelpAfterError()
20
23
  .showSuggestionAfterError();
21
- program.action(async () => {
24
+ program.action(async (workdir) => {
25
+ const launchWorkdir = workdir ? await validateLaunchWorkdir(workdir) : undefined;
22
26
  if (!process.stdin.isTTY) {
23
27
  program.help();
24
28
  return;
25
29
  }
26
- const options = normalizeChatOptions([], {});
30
+ const options = normalizeChatOptions([], launchWorkdir ? { workdir: launchWorkdir } : {});
27
31
  const app = render(React.createElement(ChatApp, { options }));
28
32
  await app.waitUntilExit();
29
33
  });
@@ -306,3 +310,17 @@ function optionalNumber(value, label) {
306
310
  throw new Error(`${label} must be a number`);
307
311
  return parsed;
308
312
  }
313
+ async function validateLaunchWorkdir(path) {
314
+ const resolved = resolve(path);
315
+ let info;
316
+ try {
317
+ info = await stat(resolved);
318
+ }
319
+ catch {
320
+ throw new Error(`Workdir does not exist: ${path}`);
321
+ }
322
+ if (!info.isDirectory()) {
323
+ throw new Error(`Workdir is not a directory: ${path}`);
324
+ }
325
+ return resolved;
326
+ }
@@ -1,5 +1,5 @@
1
1
  export declare const cliName = "agent-api-cli";
2
2
  export declare const cliAuthor = "AgentsWay";
3
- export declare const cliVersion = "0.0.1";
3
+ export declare const cliVersion = "0.1.0";
4
4
  export declare const runtime: import("@agent-api/sdk/local").LocalRuntime;
5
5
  export declare function ensureRuntime(): Promise<import("@agent-api/sdk/local").LocalRuntime>;
@@ -1,7 +1,7 @@
1
1
  import { createLocalRuntime } from "@agent-api/sdk/local";
2
2
  export const cliName = "agent-api-cli";
3
3
  export const cliAuthor = "AgentsWay";
4
- export const cliVersion = "0.0.1";
4
+ export const cliVersion = "0.1.0";
5
5
  export const runtime = createLocalRuntime({
6
6
  appName: cliName,
7
7
  appAuthor: cliAuthor,
@@ -1,5 +1 @@
1
- import React from "react";
2
- import { type AgentRunOptions } from "../agent.js";
3
- export declare function ChatApp({ options }: {
4
- options: AgentRunOptions;
5
- }): React.JSX.Element;
1
+ export { ChatApp } from "./ink/app.js";