@agent-workspace/cli 0.4.0 → 0.5.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/dist/commands/artifact.d.ts.map +1 -1
- package/dist/commands/artifact.js.map +1 -1
- package/dist/commands/swarm.d.ts +40 -0
- package/dist/commands/swarm.d.ts.map +1 -0
- package/dist/commands/swarm.js +373 -0
- package/dist/commands/swarm.js.map +1 -0
- package/dist/commands/task.d.ts +8 -0
- package/dist/commands/task.d.ts.map +1 -1
- package/dist/commands/task.js +113 -14
- package/dist/commands/task.js.map +1 -1
- package/dist/index.js +53 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/artifact.d.ts +2 -8
- package/dist/lib/artifact.d.ts.map +1 -1
- package/dist/lib/artifact.js +3 -21
- package/dist/lib/artifact.js.map +1 -1
- package/dist/lib/frontmatter.d.ts +2 -11
- package/dist/lib/frontmatter.d.ts.map +1 -1
- package/dist/lib/frontmatter.js +2 -25
- package/dist/lib/frontmatter.js.map +1 -1
- package/dist/lib/reputation.d.ts +3 -19
- package/dist/lib/reputation.d.ts.map +1 -1
- package/dist/lib/reputation.js +4 -54
- package/dist/lib/reputation.js.map +1 -1
- package/dist/lib/swarm.d.ts +22 -0
- package/dist/lib/swarm.d.ts.map +1 -0
- package/dist/lib/swarm.js +59 -0
- package/dist/lib/swarm.js.map +1 -0
- package/dist/lib/workspace.d.ts +2 -8
- package/dist/lib/workspace.d.ts.map +1 -1
- package/dist/lib/workspace.js +5 -41
- package/dist/lib/workspace.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { readdir, mkdir } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { SWARMS_DIR } from "@agent-workspace/core";
|
|
4
|
+
import { parseWorkspaceFile } from "./frontmatter.js";
|
|
5
|
+
const SLUG_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
|
|
6
|
+
/**
|
|
7
|
+
* Validate a swarm slug
|
|
8
|
+
*/
|
|
9
|
+
export function validateSlug(slug) {
|
|
10
|
+
return SLUG_PATTERN.test(slug);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get the file path for a swarm slug
|
|
14
|
+
*/
|
|
15
|
+
export function slugToSwarmPath(workspaceRoot, slug) {
|
|
16
|
+
return join(workspaceRoot, SWARMS_DIR, `${slug}.md`);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Load a swarm by slug
|
|
20
|
+
*/
|
|
21
|
+
export async function loadSwarm(workspaceRoot, slug) {
|
|
22
|
+
const filePath = slugToSwarmPath(workspaceRoot, slug);
|
|
23
|
+
return parseWorkspaceFile(filePath);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* List all swarms in the workspace
|
|
27
|
+
*/
|
|
28
|
+
export async function listSwarms(workspaceRoot) {
|
|
29
|
+
const swarmsDir = join(workspaceRoot, SWARMS_DIR);
|
|
30
|
+
let entries;
|
|
31
|
+
try {
|
|
32
|
+
entries = await readdir(swarmsDir);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const mdFiles = entries.filter((f) => f.endsWith(".md")).sort();
|
|
38
|
+
const swarms = [];
|
|
39
|
+
for (const f of mdFiles) {
|
|
40
|
+
try {
|
|
41
|
+
const parsed = await parseWorkspaceFile(join(swarmsDir, f));
|
|
42
|
+
if (parsed.frontmatter.type === "swarm") {
|
|
43
|
+
swarms.push(parsed);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Skip unparseable files
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return swarms;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Ensure the swarms directory exists
|
|
54
|
+
*/
|
|
55
|
+
export async function ensureSwarmsDir(workspaceRoot) {
|
|
56
|
+
const swarmsDir = join(workspaceRoot, SWARMS_DIR);
|
|
57
|
+
await mkdir(swarmsDir, { recursive: true });
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=swarm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/lib/swarm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,aAAqB,EAAE,IAAY;IACjE,OAAO,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,aAAqB,EACrB,IAAY;IAEZ,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACtD,OAAO,kBAAkB,CAAmB,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,MAAM,MAAM,GAAsC,EAAE,CAAC;IAErD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAmB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,aAAqB;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/lib/workspace.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type WorkspaceManifest } from "@agent-workspace/core";
|
|
2
|
+
import { findWorkspaceRoot, loadManifest, fileExists } from "@agent-workspace/utils";
|
|
3
|
+
export { findWorkspaceRoot, loadManifest, fileExists };
|
|
2
4
|
export interface WorkspaceInfo {
|
|
3
5
|
root: string;
|
|
4
6
|
manifest: WorkspaceManifest;
|
|
@@ -14,14 +16,6 @@ export interface WorkspaceInfo {
|
|
|
14
16
|
}[];
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Find workspace root by walking up from cwd looking for .awp/workspace.json
|
|
19
|
-
*/
|
|
20
|
-
export declare function findWorkspaceRoot(startDir?: string): Promise<string | null>;
|
|
21
|
-
/**
|
|
22
|
-
* Load workspace manifest
|
|
23
|
-
*/
|
|
24
|
-
export declare function loadManifest(workspaceRoot: string): Promise<WorkspaceManifest>;
|
|
25
19
|
/**
|
|
26
20
|
* Gather full workspace info for inspection/validation
|
|
27
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/lib/workspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/lib/workspace.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIrF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE;QACL,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,EAAE,CAAC;QAC9D,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,OAAO,CAAA;SAAE,EAAE,CAAC;KAC/C,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA8BpF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAe1F"}
|
package/dist/lib/workspace.js
CHANGED
|
@@ -1,45 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { REQUIRED_FILES, OPTIONAL_FILES, AWP_VERSION, } from "@agent-workspace/core";
|
|
3
|
+
import { findWorkspaceRoot, loadManifest, fileExists } from "@agent-workspace/utils";
|
|
4
4
|
import { parseWorkspaceFile } from "./frontmatter.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
export async function findWorkspaceRoot(startDir) {
|
|
9
|
-
let dir = resolve(startDir || process.cwd());
|
|
10
|
-
const root = resolve("/");
|
|
11
|
-
while (dir !== root) {
|
|
12
|
-
const manifestPath = join(dir, MANIFEST_PATH);
|
|
13
|
-
try {
|
|
14
|
-
await access(manifestPath);
|
|
15
|
-
return dir;
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
dir = resolve(dir, "..");
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Load workspace manifest
|
|
25
|
-
*/
|
|
26
|
-
export async function loadManifest(workspaceRoot) {
|
|
27
|
-
const manifestPath = join(workspaceRoot, MANIFEST_PATH);
|
|
28
|
-
const raw = await readFile(manifestPath, "utf-8");
|
|
29
|
-
return JSON.parse(raw);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Check if a file exists
|
|
33
|
-
*/
|
|
34
|
-
async function fileExists(path) {
|
|
35
|
-
try {
|
|
36
|
-
await access(path);
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
5
|
+
// Re-export from @agent-workspace/utils
|
|
6
|
+
export { findWorkspaceRoot, loadManifest, fileExists };
|
|
43
7
|
/**
|
|
44
8
|
* Gather full workspace info for inspection/validation
|
|
45
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/lib/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/lib/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,GAEZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,wCAAwC;AACxC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAWvD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,aAAqB;IAC1D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC9C,KAAK;oBACH,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,QAAQ;wBAC1C,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,qBAAqB,GAAG,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,UAAmB;IACrE,OAAO;QACL,GAAG,EAAE,WAAW;QAChB,EAAE,EAAE,mBAAmB,EAAE;QACzB,IAAI;QACJ,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,KAAK,EAAE;YACL,YAAY,EAAE,aAAa;SAC5B;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE;YACT,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;SACV;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-workspace/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "CLI for the Agent Workspace Protocol — init, validate, inspect, and manage agent workspaces",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
"prepublishOnly": "npm run build"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@agent-workspace/core": "0.
|
|
43
|
+
"@agent-workspace/core": "0.5.0",
|
|
44
|
+
"@agent-workspace/utils": "0.5.0",
|
|
44
45
|
"ajv": "^8.17.0",
|
|
45
46
|
"ajv-formats": "^3.0.1",
|
|
46
47
|
"commander": "^13.0.0",
|