@eminent337/aery 0.1.115 → 0.1.116
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/CHANGELOG.md +4172 -16
- package/README.md +621 -34
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js +2 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +3 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -3
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +66 -46
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +5 -5
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +37 -36
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +2 -2
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +3 -3
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/custom-openai-compatible.d.ts +1 -0
- package/dist/core/custom-openai-compatible.d.ts.map +1 -1
- package/dist/core/custom-openai-compatible.js +30 -4
- package/dist/core/custom-openai-compatible.js.map +1 -1
- package/dist/core/export-html/template.css +45 -1
- package/dist/core/export-html/template.js +68 -4
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -2
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +40 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +17 -3
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-registry.d.ts +6 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +59 -2
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +9 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +35 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +1 -1
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +3 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +18 -10
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +3 -3
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +2 -2
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +5 -5
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts +2 -2
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +105 -125
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +50 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +178 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +70 -13
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +2 -2
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +23 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js +2 -2
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +2 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +6 -1
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +5 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +19 -5
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +1 -3
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +9 -17
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +24 -27
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +4 -2
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +2 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +9 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -1
- package/dist/modes/interactive/theme/light.json +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +8 -10
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +2 -2
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +2 -2
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +4 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +52 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +3 -3
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +9 -2
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/mime.d.ts +1 -0
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js +59 -16
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/paths.d.ts +2 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +16 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +5 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +118 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +76 -7
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/uuid.d.ts +2 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +40 -0
- package/dist/utils/uuid.js.map +1 -0
- package/dist/utils/version-check.d.ts +7 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +12 -5
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +16 -16
- package/docs/custom-provider.md +40 -32
- package/docs/development.md +4 -4
- package/docs/docs.json +20 -5
- package/docs/extensions.md +152 -102
- package/docs/index.md +16 -7
- package/docs/json.md +7 -7
- package/docs/keybindings.md +3 -3
- package/docs/models.md +48 -8
- package/docs/packages.md +41 -36
- package/docs/prompt-templates.md +2 -2
- package/docs/providers.md +52 -36
- package/docs/quickstart.md +20 -20
- package/docs/rpc.md +9 -9
- package/docs/sdk.md +31 -53
- package/docs/session-format.md +10 -10
- package/docs/sessions.md +9 -9
- package/docs/settings.md +12 -6
- package/docs/skills.md +4 -4
- package/docs/terminal-setup.md +6 -6
- package/docs/termux.md +6 -6
- package/docs/themes.md +7 -7
- package/docs/tmux.md +1 -1
- package/docs/tui.md +8 -8
- package/docs/usage.md +41 -39
- package/examples/extensions/README.md +3 -5
- package/examples/extensions/antigravity-image-gen.ts +9 -9
- package/examples/extensions/auto-commit-on-exit.ts +1 -1
- package/examples/extensions/bash-spawn-hook.ts +2 -2
- package/examples/extensions/built-in-tool-renderer.ts +1 -1
- package/examples/extensions/custom-compaction.ts +1 -1
- package/examples/extensions/custom-header.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +4 -4
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/doom-overlay/README.md +2 -2
- package/examples/extensions/doom-overlay/doom/build.sh +2 -2
- package/examples/extensions/doom-overlay/index.ts +1 -1
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/handoff.ts +42 -5
- package/examples/extensions/hidden-thinking-label.ts +1 -1
- package/examples/extensions/inline-bash.ts +2 -2
- package/examples/extensions/input-transform.ts +3 -3
- package/examples/extensions/interactive-shell.ts +1 -1
- package/examples/extensions/mac-system-theme.ts +2 -2
- package/examples/extensions/minimal-mode.ts +1 -1
- package/examples/extensions/modal-editor.ts +1 -1
- package/examples/extensions/model-status.ts +1 -1
- package/examples/extensions/overlay-qa-tests.ts +6 -6
- package/examples/extensions/overlay-test.ts +1 -1
- package/examples/extensions/preset.ts +2 -2
- package/examples/extensions/provider-payload.ts +1 -1
- package/examples/extensions/rainbow-editor.ts +1 -1
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/index.ts +3 -3
- package/examples/extensions/sandbox/package-lock.json +7 -7
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/shutdown-command.ts +5 -5
- package/examples/extensions/ssh.ts +2 -2
- package/examples/extensions/subagent/README.md +2 -2
- package/examples/extensions/subagent/agents/aery-pods.md +1 -1
- package/examples/extensions/subagent/agents.ts +1 -1
- package/examples/extensions/subagent/index.ts +2 -2
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/extensions/tool-override.ts +2 -2
- package/examples/extensions/truncated-tool.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +4 -4
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/working-indicator.ts +4 -4
- package/examples/extensions/working-message-test.ts +1 -1
- package/examples/sdk/01-minimal.ts +14 -10
- package/examples/sdk/02-custom-model.ts +12 -8
- package/examples/sdk/03-custom-prompt.ts +24 -16
- package/examples/sdk/04-skills.ts +2 -2
- package/examples/sdk/05-tools.ts +8 -4
- package/examples/sdk/06-extensions.ts +11 -7
- package/examples/sdk/07-context-files.ts +2 -2
- package/examples/sdk/08-prompt-templates.ts +2 -2
- package/examples/sdk/09-api-keys-and-oauth.ts +8 -4
- package/examples/sdk/10-settings.ts +4 -4
- package/examples/sdk/11-sessions.ts +4 -0
- package/examples/sdk/12-full-control.ts +11 -7
- package/examples/sdk/README.md +5 -8
- package/package.json +8 -14
|
@@ -25,15 +25,19 @@ const { session: session1 } = await createAgentSession({
|
|
|
25
25
|
sessionManager: SessionManager.inMemory(),
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
28
|
+
try {
|
|
29
|
+
session1.subscribe((event) => {
|
|
30
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
31
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
33
34
|
|
|
34
|
-
console.log("=== Replace prompt ===");
|
|
35
|
-
await session1.prompt("What is 2 + 2?");
|
|
36
|
-
console.log("\n");
|
|
35
|
+
console.log("=== Replace prompt ===");
|
|
36
|
+
await session1.prompt("What is 2 + 2?");
|
|
37
|
+
console.log("\n");
|
|
38
|
+
} finally {
|
|
39
|
+
session1.dispose();
|
|
40
|
+
}
|
|
37
41
|
|
|
38
42
|
// Option 2: Append instructions to the default prompt
|
|
39
43
|
const loader2 = new DefaultResourceLoader({
|
|
@@ -51,12 +55,16 @@ const { session: session2 } = await createAgentSession({
|
|
|
51
55
|
sessionManager: SessionManager.inMemory(),
|
|
52
56
|
});
|
|
53
57
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
58
|
+
try {
|
|
59
|
+
session2.subscribe((event) => {
|
|
60
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
61
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
59
64
|
|
|
60
|
-
console.log("=== Modify prompt ===");
|
|
61
|
-
await session2.prompt("List 3 benefits of TypeScript.");
|
|
62
|
-
console.log();
|
|
65
|
+
console.log("=== Modify prompt ===");
|
|
66
|
+
await session2.prompt("List 3 benefits of TypeScript.");
|
|
67
|
+
console.log();
|
|
68
|
+
} finally {
|
|
69
|
+
session2.dispose();
|
|
70
|
+
}
|
|
@@ -47,9 +47,9 @@ if (diagnostics.length > 0) {
|
|
|
47
47
|
console.log("Warnings:", diagnostics);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
await createAgentSession({
|
|
50
|
+
const { session } = await createAgentSession({
|
|
51
51
|
resourceLoader: loader,
|
|
52
52
|
sessionManager: SessionManager.inMemory(),
|
|
53
53
|
});
|
|
54
|
-
|
|
55
54
|
console.log("Session created with filtered skills");
|
|
55
|
+
session.dispose();
|
package/examples/sdk/05-tools.ts
CHANGED
|
@@ -13,32 +13,36 @@
|
|
|
13
13
|
import { createAgentSession, SessionManager } from "@eminent337/aery";
|
|
14
14
|
|
|
15
15
|
// Read-only mode (no edit/write)
|
|
16
|
-
await createAgentSession({
|
|
16
|
+
const { session: readOnlySession } = await createAgentSession({
|
|
17
17
|
tools: ["read", "grep", "find", "ls"],
|
|
18
18
|
sessionManager: SessionManager.inMemory(),
|
|
19
19
|
});
|
|
20
20
|
console.log("Read-only session created");
|
|
21
|
+
readOnlySession.dispose();
|
|
21
22
|
|
|
22
23
|
// Custom tool selection
|
|
23
|
-
await createAgentSession({
|
|
24
|
+
const { session: customToolsSession } = await createAgentSession({
|
|
24
25
|
tools: ["read", "bash", "grep"],
|
|
25
26
|
sessionManager: SessionManager.inMemory(),
|
|
26
27
|
});
|
|
27
28
|
console.log("Custom tools session created");
|
|
29
|
+
customToolsSession.dispose();
|
|
28
30
|
|
|
29
31
|
// With custom cwd
|
|
30
32
|
const customCwd = "/path/to/project";
|
|
31
|
-
await createAgentSession({
|
|
33
|
+
const { session: customCwdSession } = await createAgentSession({
|
|
32
34
|
cwd: customCwd,
|
|
33
35
|
tools: ["read", "bash", "edit", "write"],
|
|
34
36
|
sessionManager: SessionManager.inMemory(customCwd),
|
|
35
37
|
});
|
|
36
38
|
console.log("Custom cwd session created");
|
|
39
|
+
customCwdSession.dispose();
|
|
37
40
|
|
|
38
41
|
// Or pick specific tools for custom cwd
|
|
39
|
-
await createAgentSession({
|
|
42
|
+
const { session: specificToolsSession } = await createAgentSession({
|
|
40
43
|
cwd: customCwd,
|
|
41
44
|
tools: ["read", "bash", "grep"],
|
|
42
45
|
sessionManager: SessionManager.inMemory(customCwd),
|
|
43
46
|
});
|
|
44
47
|
console.log("Specific tools with custom cwd session created");
|
|
48
|
+
specificToolsSession.dispose();
|
|
@@ -37,14 +37,18 @@ const { session } = await createAgentSession({
|
|
|
37
37
|
sessionManager: SessionManager.inMemory(),
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
40
|
+
try {
|
|
41
|
+
session.subscribe((event) => {
|
|
42
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
43
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
45
46
|
|
|
46
|
-
await session.prompt("List files in the current directory.");
|
|
47
|
-
console.log();
|
|
47
|
+
await session.prompt("List files in the current directory.");
|
|
48
|
+
console.log();
|
|
49
|
+
} finally {
|
|
50
|
+
session.dispose();
|
|
51
|
+
}
|
|
48
52
|
|
|
49
53
|
// Example extension file (./my-logging-extension.ts):
|
|
50
54
|
/*
|
|
@@ -34,9 +34,9 @@ for (const file of discovered) {
|
|
|
34
34
|
console.log(` - ${file.path} (${file.content.length} chars)`);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
await createAgentSession({
|
|
37
|
+
const { session } = await createAgentSession({
|
|
38
38
|
resourceLoader: loader,
|
|
39
39
|
sessionManager: SessionManager.inMemory(),
|
|
40
40
|
});
|
|
41
|
-
|
|
42
41
|
console.log(`Session created with ${discovered.length + 1} context files`);
|
|
42
|
+
session.dispose();
|
|
@@ -43,9 +43,9 @@ for (const template of discovered) {
|
|
|
43
43
|
console.log(` /${template.name}: ${template.description}`);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
await createAgentSession({
|
|
46
|
+
const { session } = await createAgentSession({
|
|
47
47
|
resourceLoader: loader,
|
|
48
48
|
sessionManager: SessionManager.inMemory(),
|
|
49
49
|
});
|
|
50
|
-
|
|
51
50
|
console.log(`Session created with ${discovered.length + 1} prompt templates`);
|
|
51
|
+
session.dispose();
|
|
@@ -11,38 +11,42 @@ import { AuthStorage, createAgentSession, ModelRegistry, SessionManager } from "
|
|
|
11
11
|
const authStorage = AuthStorage.create();
|
|
12
12
|
const modelRegistry = ModelRegistry.create(authStorage);
|
|
13
13
|
|
|
14
|
-
await createAgentSession({
|
|
14
|
+
const { session: defaultAuthSession } = await createAgentSession({
|
|
15
15
|
sessionManager: SessionManager.inMemory(),
|
|
16
16
|
authStorage,
|
|
17
17
|
modelRegistry,
|
|
18
18
|
});
|
|
19
19
|
console.log("Session with default auth storage and model registry");
|
|
20
|
+
defaultAuthSession.dispose();
|
|
20
21
|
|
|
21
22
|
// Custom auth storage location
|
|
22
23
|
const customAuthStorage = AuthStorage.create("/tmp/my-app/auth.json");
|
|
23
24
|
const customModelRegistry = ModelRegistry.create(customAuthStorage, "/tmp/my-app/models.json");
|
|
24
25
|
|
|
25
|
-
await createAgentSession({
|
|
26
|
+
const { session: customAuthSession } = await createAgentSession({
|
|
26
27
|
sessionManager: SessionManager.inMemory(),
|
|
27
28
|
authStorage: customAuthStorage,
|
|
28
29
|
modelRegistry: customModelRegistry,
|
|
29
30
|
});
|
|
30
31
|
console.log("Session with custom auth storage location");
|
|
32
|
+
customAuthSession.dispose();
|
|
31
33
|
|
|
32
34
|
// Runtime API key override (not persisted to disk)
|
|
33
35
|
authStorage.setRuntimeApiKey("anthropic", "sk-my-temp-key");
|
|
34
|
-
await createAgentSession({
|
|
36
|
+
const { session: runtimeKeySession } = await createAgentSession({
|
|
35
37
|
sessionManager: SessionManager.inMemory(),
|
|
36
38
|
authStorage,
|
|
37
39
|
modelRegistry,
|
|
38
40
|
});
|
|
39
41
|
console.log("Session with runtime API key override");
|
|
42
|
+
runtimeKeySession.dispose();
|
|
40
43
|
|
|
41
44
|
// No models.json - only built-in models
|
|
42
45
|
const simpleRegistry = ModelRegistry.inMemory(authStorage);
|
|
43
|
-
await createAgentSession({
|
|
46
|
+
const { session: builtInModelsSession } = await createAgentSession({
|
|
44
47
|
sessionManager: SessionManager.inMemory(),
|
|
45
48
|
authStorage,
|
|
46
49
|
modelRegistry: simpleRegistry,
|
|
47
50
|
});
|
|
48
51
|
console.log("Session with only built-in models");
|
|
52
|
+
builtInModelsSession.dispose();
|
|
@@ -19,12 +19,12 @@ settingsManager.applyOverrides({
|
|
|
19
19
|
retry: { enabled: true, maxRetries: 5, baseDelayMs: 1000 },
|
|
20
20
|
});
|
|
21
21
|
|
|
22
|
-
await createAgentSession({
|
|
22
|
+
const { session: customSettingsSession } = await createAgentSession({
|
|
23
23
|
settingsManager,
|
|
24
24
|
sessionManager: SessionManager.inMemory(),
|
|
25
25
|
});
|
|
26
|
-
|
|
27
26
|
console.log("Session created with custom settings");
|
|
27
|
+
customSettingsSession.dispose();
|
|
28
28
|
|
|
29
29
|
// Setters update memory immediately and queue persistence writes.
|
|
30
30
|
// Call flush() when you need a durability boundary.
|
|
@@ -45,9 +45,9 @@ const inMemorySettings = SettingsManager.inMemory({
|
|
|
45
45
|
retry: { enabled: false },
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
await createAgentSession({
|
|
48
|
+
const { session: testSession } = await createAgentSession({
|
|
49
49
|
settingsManager: inMemorySettings,
|
|
50
50
|
sessionManager: SessionManager.inMemory(),
|
|
51
51
|
});
|
|
52
|
-
|
|
53
52
|
console.log("Test session created with in-memory settings");
|
|
53
|
+
testSession.dispose();
|
|
@@ -11,12 +11,14 @@ const { session: inMemory } = await createAgentSession({
|
|
|
11
11
|
sessionManager: SessionManager.inMemory(),
|
|
12
12
|
});
|
|
13
13
|
console.log("In-memory session:", inMemory.sessionFile ?? "(none)");
|
|
14
|
+
inMemory.dispose();
|
|
14
15
|
|
|
15
16
|
// New persistent session
|
|
16
17
|
const { session: newSession } = await createAgentSession({
|
|
17
18
|
sessionManager: SessionManager.create(process.cwd()),
|
|
18
19
|
});
|
|
19
20
|
console.log("New session file:", newSession.sessionFile);
|
|
21
|
+
newSession.dispose();
|
|
20
22
|
|
|
21
23
|
// Continue most recent session (or create new if none)
|
|
22
24
|
const { session: continued, modelFallbackMessage } = await createAgentSession({
|
|
@@ -24,6 +26,7 @@ const { session: continued, modelFallbackMessage } = await createAgentSession({
|
|
|
24
26
|
});
|
|
25
27
|
if (modelFallbackMessage) console.log("Note:", modelFallbackMessage);
|
|
26
28
|
console.log("Continued session:", continued.sessionFile);
|
|
29
|
+
continued.dispose();
|
|
27
30
|
|
|
28
31
|
// List and open specific session
|
|
29
32
|
const sessions = await SessionManager.list(process.cwd());
|
|
@@ -37,6 +40,7 @@ if (sessions.length > 0) {
|
|
|
37
40
|
sessionManager: SessionManager.open(sessions[0].path),
|
|
38
41
|
});
|
|
39
42
|
console.log(`\nOpened: ${opened.sessionId}`);
|
|
43
|
+
opened.dispose();
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
// Custom session directory (no cwd encoding)
|
|
@@ -63,11 +63,15 @@ const { session } = await createAgentSession({
|
|
|
63
63
|
settingsManager,
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
66
|
+
try {
|
|
67
|
+
session.subscribe((event) => {
|
|
68
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
69
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
71
72
|
|
|
72
|
-
await session.prompt("List files in the current directory.");
|
|
73
|
-
console.log();
|
|
73
|
+
await session.prompt("List files in the current directory.");
|
|
74
|
+
console.log();
|
|
75
|
+
} finally {
|
|
76
|
+
session.dispose();
|
|
77
|
+
}
|
package/examples/sdk/README.md
CHANGED
|
@@ -12,7 +12,7 @@ The runtime example shows how to build a recreate function that closes over proc
|
|
|
12
12
|
| `02-custom-model.ts` | Select model and thinking level |
|
|
13
13
|
| `03-custom-prompt.ts` | Replace or modify system prompt |
|
|
14
14
|
| `04-skills.ts` | Discover, filter, or replace skills |
|
|
15
|
-
| `05-tools.ts` | Built-in
|
|
15
|
+
| `05-tools.ts` | Built-in tool allowlists |
|
|
16
16
|
| `06-extensions.ts` | Logging, blocking, result modification |
|
|
17
17
|
| `07-context-files.ts` | AGENTS.md context files |
|
|
18
18
|
| `08-slash-commands.ts` | File-based slash commands |
|
|
@@ -40,9 +40,6 @@ import {
|
|
|
40
40
|
ModelRegistry,
|
|
41
41
|
SessionManager,
|
|
42
42
|
SettingsManager,
|
|
43
|
-
codingTools,
|
|
44
|
-
readOnlyTools,
|
|
45
|
-
readTool, bashTool, editTool, writeTool,
|
|
46
43
|
} from "@eminent337/aery";
|
|
47
44
|
|
|
48
45
|
// Auth and models setup
|
|
@@ -64,7 +61,7 @@ await loader.reload();
|
|
|
64
61
|
const { session } = await createAgentSession({ resourceLoader: loader, authStorage, modelRegistry });
|
|
65
62
|
|
|
66
63
|
// Read-only
|
|
67
|
-
const { session } = await createAgentSession({ tools:
|
|
64
|
+
const { session } = await createAgentSession({ tools: ["read", "grep", "find", "ls"], authStorage, modelRegistry });
|
|
68
65
|
|
|
69
66
|
// In-memory
|
|
70
67
|
const { session } = await createAgentSession({
|
|
@@ -92,8 +89,8 @@ const { session } = await createAgentSession({
|
|
|
92
89
|
authStorage: customAuth,
|
|
93
90
|
modelRegistry: customRegistry,
|
|
94
91
|
resourceLoader,
|
|
95
|
-
tools: [
|
|
96
|
-
customTools: [
|
|
92
|
+
tools: ["read", "bash", "my_tool"],
|
|
93
|
+
customTools: [myTool],
|
|
97
94
|
sessionManager: SessionManager.inMemory(),
|
|
98
95
|
settingsManager: SettingsManager.inMemory(),
|
|
99
96
|
});
|
|
@@ -117,7 +114,7 @@ await session.prompt("Hello");
|
|
|
117
114
|
| `agentDir` | `~/.aery/agent` | Config directory |
|
|
118
115
|
| `model` | From settings/first available | Model to use |
|
|
119
116
|
| `thinkingLevel` | From settings/"off" | off, low, medium, high |
|
|
120
|
-
| `tools` | `
|
|
117
|
+
| `tools` | `["read", "bash", "edit", "write"]` built-ins | Allowlist tool names across built-in, extension, and custom tools |
|
|
121
118
|
| `customTools` | `[]` | Additional tool definitions |
|
|
122
119
|
| `resourceLoader` | DefaultResourceLoader | Resource loader for extensions, skills, prompts, themes |
|
|
123
120
|
| `sessionManager` | `SessionManager.create(cwd)` | Persistence |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eminent337/aery",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.116",
|
|
4
4
|
"description": "Aery — AI coding agent by Aryee",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"aeryConfig": {
|
|
@@ -31,35 +31,29 @@
|
|
|
31
31
|
"scripts": {
|
|
32
32
|
"clean": "shx rm -rf dist",
|
|
33
33
|
"dev": "tsgo -p tsconfig.build.json --watch --preserveWatchOutput",
|
|
34
|
-
"build": "
|
|
34
|
+
"build": "tsgo -p tsconfig.build.json && shx chmod +x dist/cli.js && npm run copy-assets",
|
|
35
35
|
"build:binary": "npm --prefix ../tui run build && npm --prefix ../ai run build && npm --prefix ../agent run build && npm run build && bun build --compile ./dist/bun/cli.js --outfile dist/pi && npm run copy-binary-assets",
|
|
36
36
|
"copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/modes/interactive/assets && shx cp src/modes/interactive/assets/*.png dist/modes/interactive/assets/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/",
|
|
37
37
|
"copy-binary-assets": "shx cp package.json dist/ && shx cp README.md dist/ && shx cp CHANGELOG.md dist/ && shx mkdir -p dist/theme && shx cp src/modes/interactive/theme/*.json dist/theme/ && shx mkdir -p dist/assets && shx cp src/modes/interactive/assets/*.png dist/assets/ && shx mkdir -p dist/export-html/vendor && shx cp src/core/export-html/template.html dist/export-html/ && shx cp src/core/export-html/vendor/*.js dist/export-html/vendor/ && shx cp -r docs dist/ && shx cp -r examples dist/ && shx cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm dist/",
|
|
38
38
|
"test": "vitest --run",
|
|
39
|
-
"prepublishOnly": "npm run clean &&
|
|
39
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@eminent337/aery-
|
|
43
|
-
"@eminent337/aery-
|
|
42
|
+
"@eminent337/aery-core": "0.67.121",
|
|
43
|
+
"@eminent337/aery-ai": "0.67.128",
|
|
44
44
|
"@eminent337/aery-tui": "0.67.68",
|
|
45
|
-
"@mariozechner/jiti": "2.6.2",
|
|
46
45
|
"@silvia-odwyer/photon-node": "^0.3.4",
|
|
47
46
|
"chalk": "^5.5.0",
|
|
48
|
-
"cli-highlight": "^2.1.11",
|
|
49
47
|
"diff": "^8.0.2",
|
|
50
|
-
"duck-duck-scrape": "^2.2.7",
|
|
51
|
-
"extract-zip": "^2.0.1",
|
|
52
|
-
"file-type": "^21.1.1",
|
|
53
48
|
"glob": "^13.0.1",
|
|
49
|
+
"highlight.js": "^10.7.3",
|
|
54
50
|
"hosted-git-info": "^9.0.2",
|
|
55
51
|
"ignore": "^7.0.5",
|
|
56
|
-
"
|
|
52
|
+
"jiti": "^2.7.0",
|
|
57
53
|
"minimatch": "^10.2.3",
|
|
58
54
|
"proper-lockfile": "^4.1.2",
|
|
59
|
-
"strip-ansi": "^7.1.0",
|
|
60
55
|
"typebox": "^1.1.24",
|
|
61
56
|
"undici": "^7.19.1",
|
|
62
|
-
"uuid": "^14.0.0",
|
|
63
57
|
"yaml": "^2.8.2"
|
|
64
58
|
},
|
|
65
59
|
"overrides": {
|
|
@@ -69,7 +63,7 @@
|
|
|
69
63
|
}
|
|
70
64
|
},
|
|
71
65
|
"optionalDependencies": {
|
|
72
|
-
"@mariozechner/clipboard": "0.3.
|
|
66
|
+
"@mariozechner/clipboard": "^0.3.5"
|
|
73
67
|
},
|
|
74
68
|
"devDependencies": {
|
|
75
69
|
"@types/diff": "^7.0.2",
|