augure 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/dist/bin.js +2 -0
- package/dist/bin.js.map +1 -1
- package/dist/colors.d.ts +8 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +9 -0
- package/dist/colors.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +9 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/skills.d.ts +2 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +230 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +4 -3
- package/dist/commands/start.js.map +1 -1
- package/package.json +31 -19
package/README.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# augure
|
|
2
|
+
|
|
3
|
+
A personal AI agent that sees, learns & acts. Deploy in 5 minutes. Own your data.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/augure)
|
|
6
|
+
[](https://github.com/FaureAlexis/augure/blob/master/LICENSE)
|
|
7
|
+
[](https://github.com/FaureAlexis/augure/actions)
|
|
8
|
+
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g augure
|
|
13
|
+
augure init # generates augure.json5 + .env
|
|
14
|
+
augure start # start the agent
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Or with Docker Compose:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
git clone https://github.com/FaureAlexis/augure.git && cd augure
|
|
21
|
+
cp .env.example .env
|
|
22
|
+
cp config/augure.example.json5 config/augure.json5
|
|
23
|
+
docker compose up -d
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## What is Augure?
|
|
27
|
+
|
|
28
|
+
Augure is an open-source AI agent built on six primitives: **think, execute, remember, communicate, watch, learn**. It runs 24/7 on your server, connects to your messaging apps, learns your preferences, and acts proactively on a schedule.
|
|
29
|
+
|
|
30
|
+
- **Filesystem-first** — Memory, config, logs: everything is human-readable files. No vector DB.
|
|
31
|
+
- **Proactive** — Cron jobs, heartbeat monitoring, and actions on your behalf 24/7.
|
|
32
|
+
- **Secure by default** — All execution in Docker containers. Credentials never touch disk.
|
|
33
|
+
- **Self-improving** — Generates reusable skills, tests them, and auto-heals on failure.
|
|
34
|
+
- **Cost-aware** — Per-usage model routing. Cheap models for monitoring, full models for reasoning.
|
|
35
|
+
- **Readable** — Under 5K lines of source code.
|
|
36
|
+
|
|
37
|
+
## Commands
|
|
38
|
+
|
|
39
|
+
| Command | Description |
|
|
40
|
+
|---------|-------------|
|
|
41
|
+
| `augure init` | Generate `augure.json5` and `.env` templates |
|
|
42
|
+
| `augure start` | Start the agent |
|
|
43
|
+
| `augure start --config path/to/config.json5` | Start with a custom config path |
|
|
44
|
+
| `augure --version` | Print version |
|
|
45
|
+
| `augure --help` | Show help |
|
|
46
|
+
|
|
47
|
+
## Configuration
|
|
48
|
+
|
|
49
|
+
`augure init` generates two files:
|
|
50
|
+
|
|
51
|
+
- **`augure.json5`** — Agent config: identity, LLM provider, channels, memory, scheduler, tools, sandbox, skills, security
|
|
52
|
+
- **`.env`** — API keys (`OPENROUTER_API_KEY`, `TELEGRAM_BOT_TOKEN`)
|
|
53
|
+
|
|
54
|
+
## Documentation
|
|
55
|
+
|
|
56
|
+
Full docs at **[augure.dev](https://augure.dev)**
|
|
57
|
+
|
|
58
|
+
## License
|
|
59
|
+
|
|
60
|
+
[MIT](https://github.com/FaureAlexis/augure/blob/master/LICENSE)
|
package/dist/bin.js
CHANGED
|
@@ -3,6 +3,7 @@ import { createRequire } from "node:module";
|
|
|
3
3
|
import { defineCommand, runMain } from "citty";
|
|
4
4
|
import { startCommand } from "./commands/start.js";
|
|
5
5
|
import { initCommand } from "./commands/init.js";
|
|
6
|
+
import { skillsCommand } from "./commands/skills.js";
|
|
6
7
|
const require = createRequire(import.meta.url);
|
|
7
8
|
const { version } = require("../package.json");
|
|
8
9
|
const main = defineCommand({
|
|
@@ -14,6 +15,7 @@ const main = defineCommand({
|
|
|
14
15
|
subCommands: {
|
|
15
16
|
start: startCommand,
|
|
16
17
|
init: initCommand,
|
|
18
|
+
skills: skillsCommand,
|
|
17
19
|
},
|
|
18
20
|
});
|
|
19
21
|
runMain(main);
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,IAAI,GAAG,aAAa,CAAC;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kCAAkC;QAC/C,OAAO;KACR;IACD,WAAW,EAAE;QACX,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,aAAa;KACtB;CACF,CAAC,CAAC;AAEH,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/colors.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const brand: (s: string) => string;
|
|
2
|
+
export declare const ok: (s: string) => string;
|
|
3
|
+
export declare const err: (s: string) => string;
|
|
4
|
+
export declare const dim: (s: string) => string;
|
|
5
|
+
export declare const bold: (s: string) => string;
|
|
6
|
+
export declare const cyan: (s: string) => string;
|
|
7
|
+
export declare const prefix: string;
|
|
8
|
+
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,WAA2B,CAAC;AAC3D,eAAO,MAAM,EAAE,GAAI,GAAG,MAAM,WAA0B,CAAC;AACvD,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAwB,CAAC;AACtD,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAwB,CAAC;AACtD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAyB,CAAC;AACxD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAyB,CAAC;AAExD,eAAO,MAAM,MAAM,QAAoB,CAAC"}
|
package/dist/colors.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { styleText } from "node:util";
|
|
2
|
+
export const brand = (s) => styleText("yellow", s);
|
|
3
|
+
export const ok = (s) => styleText("green", s);
|
|
4
|
+
export const err = (s) => styleText("red", s);
|
|
5
|
+
export const dim = (s) => styleText("dim", s);
|
|
6
|
+
export const bold = (s) => styleText("bold", s);
|
|
7
|
+
export const cyan = (s) => styleText("cyan", s);
|
|
8
|
+
export const prefix = brand("▲ augure");
|
|
9
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkFA,eAAO,MAAM,WAAW,qDA4BtB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineCommand } from "citty";
|
|
2
2
|
import { writeFile, access } from "node:fs/promises";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
|
+
import { prefix, ok, dim, bold, cyan } from "../colors.js";
|
|
4
5
|
const CONFIG_TEMPLATE = `{
|
|
5
6
|
// Identity
|
|
6
7
|
identity: {
|
|
@@ -85,23 +86,23 @@ export const initCommand = defineCommand({
|
|
|
85
86
|
const configPath = resolve("augure.json5");
|
|
86
87
|
const envPath = resolve(".env");
|
|
87
88
|
if (await fileExists(configPath)) {
|
|
88
|
-
console.log(
|
|
89
|
+
console.log(`${prefix} ${dim("augure.json5 already exists, skipping.")}`);
|
|
89
90
|
}
|
|
90
91
|
else {
|
|
91
92
|
await writeFile(configPath, CONFIG_TEMPLATE, "utf-8");
|
|
92
|
-
console.log(
|
|
93
|
+
console.log(`${prefix} ${ok("Created")} augure.json5`);
|
|
93
94
|
}
|
|
94
95
|
if (await fileExists(envPath)) {
|
|
95
|
-
console.log(
|
|
96
|
+
console.log(`${prefix} ${dim(".env already exists, skipping.")}`);
|
|
96
97
|
}
|
|
97
98
|
else {
|
|
98
99
|
await writeFile(envPath, ENV_TEMPLATE, "utf-8");
|
|
99
|
-
console.log(
|
|
100
|
+
console.log(`${prefix} ${ok("Created")} .env`);
|
|
100
101
|
}
|
|
101
|
-
console.log(`\
|
|
102
|
-
console.log(` 1. Edit augure.json5 with your settings`);
|
|
103
|
-
console.log(` 2. Fill in .env with your API keys`);
|
|
104
|
-
console.log(` 3. Run: augure start`);
|
|
102
|
+
console.log(`\n${bold("Next steps:")}`);
|
|
103
|
+
console.log(` 1. Edit ${cyan("augure.json5")} with your settings`);
|
|
104
|
+
console.log(` 2. Fill in ${cyan(".env")} with your API keys`);
|
|
105
|
+
console.log(` 3. Run: ${bold("augure start")}`);
|
|
105
106
|
},
|
|
106
107
|
});
|
|
107
108
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DvB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;CAKpB,CAAC;AAEF,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;IACvC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,0DAA0D;KACxE;IACD,KAAK,CAAC,GAAG;QACP,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAqPA,eAAO,MAAM,aAAa,qDAWxB,CAAC"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { defineCommand } from "citty";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { SkillManager, SkillRunner } from "@augure/skills";
|
|
4
|
+
import { DockerContainerPool } from "@augure/sandbox";
|
|
5
|
+
import { loadConfig } from "@augure/core";
|
|
6
|
+
import Dockerode from "dockerode";
|
|
7
|
+
import { prefix, ok, err, dim, bold, cyan } from "../colors.js";
|
|
8
|
+
async function createManager(configArg) {
|
|
9
|
+
const configPath = resolve(configArg);
|
|
10
|
+
const config = await loadConfig(configPath);
|
|
11
|
+
const skillsPath = resolve(configPath, "..", config.skills?.path ?? "./skills");
|
|
12
|
+
return { manager: new SkillManager(skillsPath), config, configPath };
|
|
13
|
+
}
|
|
14
|
+
function validateSkillId(id) {
|
|
15
|
+
if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) {
|
|
16
|
+
console.error(`${prefix} ${err(`Invalid skill ID: "${id}".`)} IDs must be lowercase alphanumeric with hyphens.`);
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function statusColor(status) {
|
|
21
|
+
switch (status) {
|
|
22
|
+
case "active": return ok(status);
|
|
23
|
+
case "broken": return err(status);
|
|
24
|
+
case "paused":
|
|
25
|
+
case "draft":
|
|
26
|
+
case "testing": return dim(status);
|
|
27
|
+
default: return status;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const configArg = {
|
|
31
|
+
type: "string",
|
|
32
|
+
description: "Path to config file",
|
|
33
|
+
alias: "c",
|
|
34
|
+
default: "./augure.json5",
|
|
35
|
+
};
|
|
36
|
+
const listCommand = defineCommand({
|
|
37
|
+
meta: { name: "list", description: "List all skills with status" },
|
|
38
|
+
args: { config: configArg },
|
|
39
|
+
async run({ args }) {
|
|
40
|
+
const { manager } = await createManager(args.config);
|
|
41
|
+
const skills = await manager.list();
|
|
42
|
+
if (skills.length === 0) {
|
|
43
|
+
console.log(`${prefix} ${dim("No skills found.")}`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
console.log(bold(["ID".padEnd(24), "NAME".padEnd(28), "STATUS".padEnd(10), "V".padEnd(4), "TRIGGER".padEnd(18), "UPDATED"].join("")));
|
|
47
|
+
for (const s of skills) {
|
|
48
|
+
const trigger = s.trigger.type === "cron"
|
|
49
|
+
? `cron ${s.trigger.schedule}`
|
|
50
|
+
: s.trigger.type;
|
|
51
|
+
const updated = dim(s.updated.slice(0, 10));
|
|
52
|
+
console.log([
|
|
53
|
+
cyan(s.id.padEnd(24)),
|
|
54
|
+
s.name.slice(0, 26).padEnd(28),
|
|
55
|
+
statusColor(s.status).padEnd(10 + (statusColor(s.status).length - s.status.length)),
|
|
56
|
+
String(s.version).padEnd(4),
|
|
57
|
+
trigger.slice(0, 16).padEnd(18),
|
|
58
|
+
updated,
|
|
59
|
+
].join(""));
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
const showCommand = defineCommand({
|
|
64
|
+
meta: { name: "show", description: "Show skill details" },
|
|
65
|
+
args: {
|
|
66
|
+
config: configArg,
|
|
67
|
+
id: { type: "positional", description: "Skill ID", required: true },
|
|
68
|
+
},
|
|
69
|
+
async run({ args }) {
|
|
70
|
+
validateSkillId(args.id);
|
|
71
|
+
const { manager } = await createManager(args.config);
|
|
72
|
+
try {
|
|
73
|
+
const skill = await manager.get(args.id);
|
|
74
|
+
console.log(`${bold("ID:")} ${cyan(skill.meta.id)}`);
|
|
75
|
+
console.log(`${bold("Name:")} ${skill.meta.name}`);
|
|
76
|
+
console.log(`${bold("Version:")} ${skill.meta.version}`);
|
|
77
|
+
console.log(`${bold("Status:")} ${statusColor(skill.meta.status)}`);
|
|
78
|
+
console.log(`${bold("Trigger:")} ${skill.meta.trigger.type}${skill.meta.trigger.schedule ? ` ${skill.meta.trigger.schedule}` : ""}`);
|
|
79
|
+
console.log(`${bold("Tags:")} ${skill.meta.tags.join(", ") || dim("(none)")}`);
|
|
80
|
+
console.log(`${bold("Created:")} ${dim(skill.meta.created)}`);
|
|
81
|
+
console.log(`${bold("Updated:")} ${dim(skill.meta.updated)}`);
|
|
82
|
+
console.log(`${bold("Code:")} ${skill.code ? ok("yes") : err("no")}`);
|
|
83
|
+
console.log(`${bold("Tests:")} ${skill.testCode ? ok("yes") : err("no")}`);
|
|
84
|
+
console.log("");
|
|
85
|
+
console.log(skill.body);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
console.error(`${prefix} ${err(`Skill "${args.id}" not found.`)}`);
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
const runCommand = defineCommand({
|
|
94
|
+
meta: { name: "run", description: "Run a skill manually" },
|
|
95
|
+
args: {
|
|
96
|
+
config: configArg,
|
|
97
|
+
id: { type: "positional", description: "Skill ID", required: true },
|
|
98
|
+
},
|
|
99
|
+
async run({ args }) {
|
|
100
|
+
validateSkillId(args.id);
|
|
101
|
+
const { manager, config } = await createManager(args.config);
|
|
102
|
+
if (!(await manager.exists(args.id))) {
|
|
103
|
+
console.error(`${prefix} ${err(`Skill "${args.id}" not found.`)}`);
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
console.log(`${prefix} Running skill ${cyan(args.id)}...`);
|
|
107
|
+
const docker = new Dockerode();
|
|
108
|
+
const pool = new DockerContainerPool(docker, {
|
|
109
|
+
image: config.sandbox.image ?? "augure-sandbox:latest",
|
|
110
|
+
maxTotal: config.security.maxConcurrentSandboxes,
|
|
111
|
+
});
|
|
112
|
+
const runner = new SkillRunner({
|
|
113
|
+
pool,
|
|
114
|
+
manager,
|
|
115
|
+
defaults: config.sandbox.defaults,
|
|
116
|
+
});
|
|
117
|
+
try {
|
|
118
|
+
const result = await runner.run(args.id);
|
|
119
|
+
console.log(`${bold("Status:")} ${result.success ? ok("OK") : err("FAILED")}`);
|
|
120
|
+
console.log(`${bold("Duration:")} ${dim(`${result.durationMs}ms`)}`);
|
|
121
|
+
if (result.output)
|
|
122
|
+
console.log(`${bold("Output:")} ${result.output}`);
|
|
123
|
+
if (result.error)
|
|
124
|
+
console.error(`${bold("Error:")} ${err(result.error)}`);
|
|
125
|
+
if (!result.success)
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
try {
|
|
130
|
+
await pool.destroyAll();
|
|
131
|
+
}
|
|
132
|
+
catch { /* cleanup failure should not mask original error */ }
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
const pauseCommand = defineCommand({
|
|
137
|
+
meta: { name: "pause", description: "Pause a skill" },
|
|
138
|
+
args: {
|
|
139
|
+
config: configArg,
|
|
140
|
+
id: { type: "positional", description: "Skill ID", required: true },
|
|
141
|
+
},
|
|
142
|
+
async run({ args }) {
|
|
143
|
+
validateSkillId(args.id);
|
|
144
|
+
const { manager } = await createManager(args.config);
|
|
145
|
+
try {
|
|
146
|
+
await manager.updateStatus(args.id, "paused");
|
|
147
|
+
console.log(`${prefix} ${ok(`Skill "${args.id}" paused.`)}`);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
console.error(`${prefix} ${err(`Skill "${args.id}" not found.`)}`);
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
});
|
|
155
|
+
const resumeCommand = defineCommand({
|
|
156
|
+
meta: { name: "resume", description: "Resume a paused skill" },
|
|
157
|
+
args: {
|
|
158
|
+
config: configArg,
|
|
159
|
+
id: { type: "positional", description: "Skill ID", required: true },
|
|
160
|
+
},
|
|
161
|
+
async run({ args }) {
|
|
162
|
+
validateSkillId(args.id);
|
|
163
|
+
const { manager } = await createManager(args.config);
|
|
164
|
+
try {
|
|
165
|
+
await manager.updateStatus(args.id, "active");
|
|
166
|
+
console.log(`${prefix} ${ok(`Skill "${args.id}" resumed.`)}`);
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
console.error(`${prefix} ${err(`Skill "${args.id}" not found.`)}`);
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
const deleteCommand = defineCommand({
|
|
175
|
+
meta: { name: "delete", description: "Delete a skill" },
|
|
176
|
+
args: {
|
|
177
|
+
config: configArg,
|
|
178
|
+
id: { type: "positional", description: "Skill ID", required: true },
|
|
179
|
+
},
|
|
180
|
+
async run({ args }) {
|
|
181
|
+
validateSkillId(args.id);
|
|
182
|
+
const { manager } = await createManager(args.config);
|
|
183
|
+
if (!(await manager.exists(args.id))) {
|
|
184
|
+
console.error(`${prefix} ${err(`Skill "${args.id}" not found.`)}`);
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
await manager.delete(args.id);
|
|
188
|
+
console.log(`${prefix} ${ok(`Skill "${args.id}" deleted.`)}`);
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
const logsCommand = defineCommand({
|
|
192
|
+
meta: { name: "logs", description: "Show recent execution logs for a skill" },
|
|
193
|
+
args: {
|
|
194
|
+
config: configArg,
|
|
195
|
+
id: { type: "positional", description: "Skill ID", required: true },
|
|
196
|
+
},
|
|
197
|
+
async run({ args }) {
|
|
198
|
+
validateSkillId(args.id);
|
|
199
|
+
const { manager } = await createManager(args.config);
|
|
200
|
+
const runs = await manager.getRuns(args.id, 10);
|
|
201
|
+
if (runs.length === 0) {
|
|
202
|
+
console.log(`${prefix} ${dim(`No runs found for skill "${args.id}".`)}`);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
console.log(bold(["TIMESTAMP".padEnd(26), "OK".padEnd(6), "DURATION".padEnd(12), "OUTPUT"].join("")));
|
|
206
|
+
for (const r of runs) {
|
|
207
|
+
const status = r.success ? ok("yes") : err("no ");
|
|
208
|
+
const output = (r.output ?? r.error ?? "").slice(0, 60);
|
|
209
|
+
console.log([
|
|
210
|
+
dim(r.timestamp.slice(0, 24).padEnd(26)),
|
|
211
|
+
(status + " ".repeat(Math.max(0, 6 - (r.success ? 3 : 3)))),
|
|
212
|
+
dim(`${r.durationMs}ms`.padEnd(12)),
|
|
213
|
+
r.success ? output : err(output),
|
|
214
|
+
].join(""));
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
export const skillsCommand = defineCommand({
|
|
219
|
+
meta: { name: "skills", description: "Manage skills" },
|
|
220
|
+
subCommands: {
|
|
221
|
+
list: listCommand,
|
|
222
|
+
show: showCommand,
|
|
223
|
+
run: runCommand,
|
|
224
|
+
pause: pauseCommand,
|
|
225
|
+
resume: resumeCommand,
|
|
226
|
+
delete: deleteCommand,
|
|
227
|
+
logs: logsCommand,
|
|
228
|
+
},
|
|
229
|
+
});
|
|
230
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;;;;EAyBvB,CAAC"}
|
package/dist/commands/start.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineCommand } from "citty";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
|
+
import { prefix, dim, err } from "../colors.js";
|
|
3
4
|
export const startCommand = defineCommand({
|
|
4
5
|
meta: {
|
|
5
6
|
name: "start",
|
|
@@ -15,13 +16,13 @@ export const startCommand = defineCommand({
|
|
|
15
16
|
},
|
|
16
17
|
async run({ args }) {
|
|
17
18
|
const configPath = resolve(args.config);
|
|
18
|
-
console.log(
|
|
19
|
+
console.log(`${prefix} Starting with config: ${dim(configPath)}`);
|
|
19
20
|
try {
|
|
20
21
|
const { startAgent } = await import("@augure/core");
|
|
21
22
|
await startAgent(configPath);
|
|
22
23
|
}
|
|
23
|
-
catch (
|
|
24
|
-
console.error("
|
|
24
|
+
catch (e) {
|
|
25
|
+
console.error(`${prefix} ${err("Fatal error:")} ${e instanceof Error ? e.message : e}`);
|
|
25
26
|
process.exit(1);
|
|
26
27
|
}
|
|
27
28
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;IACxC,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,wBAAwB;KACtC;IACD,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qBAAqB;YAClC,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,gBAAgB;SAC1B;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,0BAA0B,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YACpD,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "augure",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Augure — your proactive AI agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -12,25 +12,28 @@
|
|
|
12
12
|
"engines": {
|
|
13
13
|
"node": ">=22.0.0"
|
|
14
14
|
},
|
|
15
|
-
"scripts": {
|
|
16
|
-
"build": "tsc",
|
|
17
|
-
"dev": "tsc --watch",
|
|
18
|
-
"test": "vitest run",
|
|
19
|
-
"test:unit": "vitest run",
|
|
20
|
-
"typecheck": "tsc --noEmit",
|
|
21
|
-
"lint": "eslint src/",
|
|
22
|
-
"clean": "rm -rf dist .turbo"
|
|
23
|
-
},
|
|
24
15
|
"dependencies": {
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"@augure/
|
|
28
|
-
"@augure/
|
|
29
|
-
"@augure/
|
|
30
|
-
"@augure/
|
|
31
|
-
"
|
|
16
|
+
"citty": "^0.2.1",
|
|
17
|
+
"dockerode": "^4.0.7",
|
|
18
|
+
"@augure/core": "0.0.1",
|
|
19
|
+
"@augure/channels": "0.0.1",
|
|
20
|
+
"@augure/skills": "0.0.1",
|
|
21
|
+
"@augure/sandbox": "0.0.1",
|
|
22
|
+
"@augure/memory": "0.0.1",
|
|
23
|
+
"@augure/scheduler": "0.0.1",
|
|
24
|
+
"@augure/types": "0.0.1",
|
|
25
|
+
"@augure/tools": "0.0.1"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/dockerode": "^4.0.1"
|
|
32
29
|
},
|
|
33
|
-
"keywords": [
|
|
30
|
+
"keywords": [
|
|
31
|
+
"ai",
|
|
32
|
+
"agent",
|
|
33
|
+
"assistant",
|
|
34
|
+
"telegram",
|
|
35
|
+
"llm"
|
|
36
|
+
],
|
|
34
37
|
"author": "Alexis",
|
|
35
38
|
"license": "MIT",
|
|
36
39
|
"repository": {
|
|
@@ -40,5 +43,14 @@
|
|
|
40
43
|
},
|
|
41
44
|
"publishConfig": {
|
|
42
45
|
"access": "public"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "tsc",
|
|
49
|
+
"dev": "tsc --watch",
|
|
50
|
+
"test": "vitest run",
|
|
51
|
+
"test:unit": "vitest run",
|
|
52
|
+
"typecheck": "tsc --noEmit",
|
|
53
|
+
"lint": "eslint src/",
|
|
54
|
+
"clean": "rm -rf dist .turbo"
|
|
43
55
|
}
|
|
44
|
-
}
|
|
56
|
+
}
|