@rse/ase 0.0.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 ADDED
@@ -0,0 +1,37 @@
1
+
2
+ $ npx @rse/ase init
3
+ $ npx @rse/ase config agent.dev.llm.type=anthropic-claude-sonnet-4.5
4
+ $ npx @rse/ase config agent.dev.llm.key=<foo>
5
+ $ npx @rse/ase agent dev start
6
+
7
+ Agents
8
+ ------
9
+
10
+ - PRJ (Project)
11
+ Objective: Project Steering
12
+ Input: time, cost, scope
13
+ Output: tasks
14
+
15
+ - PRD (Product)
16
+ Objective: Product Life-Cycle
17
+ Input: vision
18
+ Output: product roadmap
19
+
20
+ - BIZ (Business)
21
+ Objective: Product Specification
22
+ Input: product roadmap
23
+ Output: requirements specification
24
+
25
+ - ARC (Architecture)
26
+ Objective: Product Development
27
+ Input: requirements specification
28
+ Output: architecture description
29
+
30
+ - DEV (Development)
31
+ Objective: Product Development
32
+ Input: requirements specification, architecture description
33
+ Output: source code, deployment units
34
+
35
+ - OPS (Operations)
36
+ Objective: Solution Operations
37
+
package/bin/ase ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import("../dst/ase.js")
@@ -0,0 +1,43 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ /* create agent command module */
7
+ export const createAgentCommandModule = (category, description, subCommands) => {
8
+ /* create sub-command handler */
9
+ const createSubCommandHandler = (subCommand) => {
10
+ return (argv) => {
11
+ if (argv.debug)
12
+ console.log(`DEBUG: agent ${category} ${subCommand} command`);
13
+ if (argv.verbose)
14
+ console.log(`VERBOSE: executing agent ${category} ${subCommand}...`);
15
+ console.log(`Executing agent ${category} ${subCommand}...`);
16
+ /* TODO: implement agent ${category} sub-command logic */
17
+ };
18
+ };
19
+ return {
20
+ command: `${category} <subcommand>`,
21
+ describe: `Execute ${description} agent operations`,
22
+ builder: (yargs) => {
23
+ let builder = yargs
24
+ .option("verbose", {
25
+ alias: "v",
26
+ type: "boolean",
27
+ describe: "Enable verbose output",
28
+ default: false
29
+ })
30
+ .demandCommand(1, `You need to specify a ${category} subcommand`);
31
+ /* register all sub-commands */
32
+ for (const subCmd of subCommands) {
33
+ builder = builder.command(subCmd, `Execute agent ${category} ${subCmd} operation`, () => { }, createSubCommandHandler(subCmd));
34
+ }
35
+ return builder;
36
+ },
37
+ handler: (argv) => {
38
+ /* this handler is not called when sub-commands are used */
39
+ if (argv.debug)
40
+ console.log(`DEBUG: agent ${category} command (no subcommand)`);
41
+ }
42
+ };
43
+ };
@@ -0,0 +1,49 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ /* biz sub-commands */
7
+ const bizSubCommands = [
8
+ "understand",
9
+ "ideate",
10
+ "explore",
11
+ "specify"
12
+ ];
13
+ /* create sub-command handler */
14
+ const createSubCommandHandler = (subCommand) => {
15
+ return (argv) => {
16
+ if (argv.debug)
17
+ console.log(`DEBUG: agent biz ${subCommand} command`);
18
+ if (argv.verbose)
19
+ console.log(`VERBOSE: executing agent biz ${subCommand}...`);
20
+ console.log(`Executing agent biz ${subCommand}...`);
21
+ /* TODO: implement agent biz sub-command logic */
22
+ };
23
+ };
24
+ /* create and export biz command module */
25
+ const bizCommand = {
26
+ command: "biz <subcommand>",
27
+ describe: "Execute business agent operations",
28
+ builder: (yargs) => {
29
+ let builder = yargs
30
+ .option("verbose", {
31
+ alias: "v",
32
+ type: "boolean",
33
+ describe: "Enable verbose output",
34
+ default: false
35
+ })
36
+ .demandCommand(1, "You need to specify a biz subcommand");
37
+ /* register all sub-commands */
38
+ for (const subCmd of bizSubCommands) {
39
+ builder = builder.command(subCmd, `Execute agent biz ${subCmd} operation`, () => { }, createSubCommandHandler(subCmd));
40
+ }
41
+ return builder;
42
+ },
43
+ handler: (argv) => {
44
+ /* this handler is not called when sub-commands are used */
45
+ if (argv.debug)
46
+ console.log("DEBUG: agent biz command (no subcommand)");
47
+ }
48
+ };
49
+ export default bizCommand;
@@ -0,0 +1,49 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ /* dev sub-commands */
7
+ const devSubCommands = [
8
+ "design",
9
+ "implement",
10
+ "build",
11
+ "verify"
12
+ ];
13
+ /* create sub-command handler */
14
+ const createSubCommandHandler = (subCommand) => {
15
+ return (argv) => {
16
+ if (argv.debug)
17
+ console.log(`DEBUG: agent dev ${subCommand} command`);
18
+ if (argv.verbose)
19
+ console.log(`VERBOSE: executing agent dev ${subCommand}...`);
20
+ console.log(`Executing agent dev ${subCommand}...`);
21
+ /* TODO: implement agent dev sub-command logic */
22
+ };
23
+ };
24
+ /* create and export dev command module */
25
+ const devCommand = {
26
+ command: "dev <subcommand>",
27
+ describe: "Execute development agent operations",
28
+ builder: (yargs) => {
29
+ let builder = yargs
30
+ .option("verbose", {
31
+ alias: "v",
32
+ type: "boolean",
33
+ describe: "Enable verbose output",
34
+ default: false
35
+ })
36
+ .demandCommand(1, "You need to specify a dev subcommand");
37
+ /* register all sub-commands */
38
+ for (const subCmd of devSubCommands) {
39
+ builder = builder.command(subCmd, `Execute agent dev ${subCmd} operation`, () => { }, createSubCommandHandler(subCmd));
40
+ }
41
+ return builder;
42
+ },
43
+ handler: (argv) => {
44
+ /* this handler is not called when sub-commands are used */
45
+ if (argv.debug)
46
+ console.log("DEBUG: agent dev command (no subcommand)");
47
+ }
48
+ };
49
+ export default devCommand;
@@ -0,0 +1,49 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ /* ops sub-commands */
7
+ const opsSubCommands = [
8
+ "deploy",
9
+ "integrate",
10
+ "operate",
11
+ "monitor"
12
+ ];
13
+ /* create sub-command handler */
14
+ const createSubCommandHandler = (subCommand) => {
15
+ return (argv) => {
16
+ if (argv.debug)
17
+ console.log(`DEBUG: agent ops ${subCommand} command`);
18
+ if (argv.verbose)
19
+ console.log(`VERBOSE: executing agent ops ${subCommand}...`);
20
+ console.log(`Executing agent ops ${subCommand}...`);
21
+ /* TODO: implement agent ops sub-command logic */
22
+ };
23
+ };
24
+ /* create and export ops command module */
25
+ const opsCommand = {
26
+ command: "ops <subcommand>",
27
+ describe: "Execute operations agent operations",
28
+ builder: (yargs) => {
29
+ let builder = yargs
30
+ .option("verbose", {
31
+ alias: "v",
32
+ type: "boolean",
33
+ describe: "Enable verbose output",
34
+ default: false
35
+ })
36
+ .demandCommand(1, "You need to specify an ops subcommand");
37
+ /* register all sub-commands */
38
+ for (const subCmd of opsSubCommands) {
39
+ builder = builder.command(subCmd, `Execute agent ops ${subCmd} operation`, () => { }, createSubCommandHandler(subCmd));
40
+ }
41
+ return builder;
42
+ },
43
+ handler: (argv) => {
44
+ /* this handler is not called when sub-commands are used */
45
+ if (argv.debug)
46
+ console.log("DEBUG: agent ops command (no subcommand)");
47
+ }
48
+ };
49
+ export default opsCommand;
@@ -0,0 +1,49 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ /* prd sub-commands */
7
+ const prdSubCommands = [
8
+ "envision",
9
+ "configure",
10
+ "release",
11
+ "rollout"
12
+ ];
13
+ /* create sub-command handler */
14
+ const createSubCommandHandler = (subCommand) => {
15
+ return (argv) => {
16
+ if (argv.debug)
17
+ console.log(`DEBUG: agent prd ${subCommand} command`);
18
+ if (argv.verbose)
19
+ console.log(`VERBOSE: executing agent prd ${subCommand}...`);
20
+ console.log(`Executing agent prd ${subCommand}...`);
21
+ /* TODO: implement agent prd sub-command logic */
22
+ };
23
+ };
24
+ /* create and export prd command module */
25
+ const prdCommand = {
26
+ command: "prd <subcommand>",
27
+ describe: "Execute production agent operations",
28
+ builder: (yargs) => {
29
+ let builder = yargs
30
+ .option("verbose", {
31
+ alias: "v",
32
+ type: "boolean",
33
+ describe: "Enable verbose output",
34
+ default: false
35
+ })
36
+ .demandCommand(1, "You need to specify a prd subcommand");
37
+ /* register all sub-commands */
38
+ for (const subCmd of prdSubCommands) {
39
+ builder = builder.command(subCmd, `Execute agent prd ${subCmd} operation`, () => { }, createSubCommandHandler(subCmd));
40
+ }
41
+ return builder;
42
+ },
43
+ handler: (argv) => {
44
+ /* this handler is not called when sub-commands are used */
45
+ if (argv.debug)
46
+ console.log("DEBUG: agent prd command (no subcommand)");
47
+ }
48
+ };
49
+ export default prdCommand;
@@ -0,0 +1,49 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ /* prj sub-commands */
7
+ const prjSubCommands = [
8
+ "initiate",
9
+ "define",
10
+ "plan",
11
+ "steer"
12
+ ];
13
+ /* create sub-command handler */
14
+ const createSubCommandHandler = (subCommand) => {
15
+ return (argv) => {
16
+ if (argv.debug)
17
+ console.log(`DEBUG: agent prj ${subCommand} command`);
18
+ if (argv.verbose)
19
+ console.log(`VERBOSE: executing agent prj ${subCommand}...`);
20
+ console.log(`Executing agent prj ${subCommand}...`);
21
+ /* TODO: implement agent prj sub-command logic */
22
+ };
23
+ };
24
+ /* create and export prj command module */
25
+ const prjCommand = {
26
+ command: "prj <subcommand>",
27
+ describe: "Execute project agent operations",
28
+ builder: (yargs) => {
29
+ let builder = yargs
30
+ .option("verbose", {
31
+ alias: "v",
32
+ type: "boolean",
33
+ describe: "Enable verbose output",
34
+ default: false
35
+ })
36
+ .demandCommand(1, "You need to specify a prj subcommand");
37
+ /* register all sub-commands */
38
+ for (const subCmd of prjSubCommands) {
39
+ builder = builder.command(subCmd, `Execute agent prj ${subCmd} operation`, () => { }, createSubCommandHandler(subCmd));
40
+ }
41
+ return builder;
42
+ },
43
+ handler: (argv) => {
44
+ /* this handler is not called when sub-commands are used */
45
+ if (argv.debug)
46
+ console.log("DEBUG: agent prj command (no subcommand)");
47
+ }
48
+ };
49
+ export default prjCommand;
@@ -0,0 +1,35 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ import bizCommand from "./ase-agent-biz.js";
7
+ import devCommand from "./ase-agent-dev.js";
8
+ import opsCommand from "./ase-agent-ops.js";
9
+ import prdCommand from "./ase-agent-prd.js";
10
+ import prjCommand from "./ase-agent-prj.js";
11
+ const agentCommand = {
12
+ command: "agent <subcommand>",
13
+ describe: "Execute agent operations",
14
+ builder: (yargs) => {
15
+ return yargs
16
+ .option("verbose", {
17
+ alias: "v",
18
+ type: "boolean",
19
+ describe: "Enable verbose output",
20
+ default: false
21
+ })
22
+ .command(bizCommand)
23
+ .command(devCommand)
24
+ .command(opsCommand)
25
+ .command(prdCommand)
26
+ .command(prjCommand)
27
+ .demandCommand(1, "You need to specify an agent subcommand");
28
+ },
29
+ handler: (argv) => {
30
+ /* this handler is not called when sub-commands are used */
31
+ if (argv.debug)
32
+ console.log("DEBUG: agent command (no subcommand)");
33
+ }
34
+ };
35
+ export default agentCommand;
@@ -0,0 +1,36 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ const configCommand = {
7
+ command: "config [assignment]",
8
+ describe: "Manage ASE configuration",
9
+ builder: (yargs) => {
10
+ return yargs
11
+ .positional("assignment", {
12
+ type: "string",
13
+ describe: "Configuration assignment (key=value) or key to query"
14
+ });
15
+ },
16
+ handler: (argv) => {
17
+ if (argv.debug)
18
+ console.log("DEBUG: config command", argv);
19
+ const assignment = argv.assignment;
20
+ if (!assignment) {
21
+ console.log("Listing all configuration...");
22
+ /* TODO: implement configuration listing logic */
23
+ }
24
+ else if (assignment.includes("=")) {
25
+ const [key, ...valueParts] = assignment.split("=");
26
+ const value = valueParts.join("=");
27
+ console.log(`Setting configuration: ${key} = ${value}`);
28
+ /* TODO: implement configuration storage logic */
29
+ }
30
+ else {
31
+ console.log(`Getting configuration: ${assignment}`);
32
+ /* TODO: implement configuration retrieval logic */
33
+ }
34
+ }
35
+ };
36
+ export default configCommand;
@@ -0,0 +1,19 @@
1
+ /*
2
+ ** Agentic Software Engineering (ASE)
3
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
+ */
6
+ const initCommand = {
7
+ command: "init",
8
+ describe: "Initialize ASE configuration",
9
+ builder: (yargs) => {
10
+ return yargs;
11
+ },
12
+ handler: (argv) => {
13
+ if (argv.debug)
14
+ console.log("DEBUG: init command");
15
+ console.log("Initializing ASE configuration...");
16
+ /* TODO: implement initialization logic */
17
+ }
18
+ };
19
+ export default initCommand;
package/dst/ase.1 ADDED
@@ -0,0 +1,25 @@
1
+ .TH "ASE" "1" "April 2026" "" ""
2
+ .SH "NAME"
3
+ \fBase\fR - Agentic Software Engineering (ASE)
4
+ .SH "SYNOPSIS"
5
+ .P
6
+ \fBase\fR \[lB]\fB-h\fR|\fB--help\fR\[rB] \[lB]\fB-V\fR|\fB--version\fR\[rB] \[lB]\fIcommand\fR \[lB]\fIoptions\fR \[lB]...\[rB]\[rB]\[rB] \[lB]\fIargs\fR \[lB]...\[rB]\[rB]\[rB]
7
+ .SH "DESCRIPTION"
8
+ .P
9
+ \fBase\fR, \fIAgentic Software Engineeing (ASE)\fR, is a small command-line tool...
10
+ .SH "OPTIONS"
11
+ .P
12
+ The following command-line options and arguments exist:
13
+ .RS 0
14
+ .IP \(bu 4
15
+ \[lB]\fB-h\fR|\fB--help\fR\[rB]: Show program usage information only.
16
+ .IP \(bu 4
17
+ \[lB]\fB-V\fR|\fB--version\fR\[rB]: Show program version information only.
18
+ .RE 0
19
+
20
+ .SH "HISTORY"
21
+ .P
22
+ \fBase\fR was started to be developed in October 2025...
23
+ .SH "AUTHOR"
24
+ .P
25
+ Dr. Ralf S. Engelschall \fI\(larse@engelschall.com\(ra\fR
package/dst/ase.js ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env node
2
+ /*
3
+ ** Agentic Software Engineering (ASE)
4
+ ** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
5
+ ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
6
+ */
7
+ import yargs from "yargs";
8
+ import { hideBin } from "yargs/helpers";
9
+ import initCommand from "./ase-init.js";
10
+ import configCommand from "./ase-config.js";
11
+ import agentCommand from "./ase-agent.js";
12
+ /* parse CLI arguments */
13
+ yargs(hideBin(process.argv))
14
+ .scriptName("ase")
15
+ .usage("Usage: $0 <command> [options]")
16
+ .option("debug", {
17
+ alias: "d",
18
+ type: "boolean",
19
+ describe: "Enable debug output",
20
+ default: false
21
+ })
22
+ .command(initCommand)
23
+ .command(configCommand)
24
+ .command(agentCommand)
25
+ .demandCommand(1, "You need to specify a command")
26
+ .help()
27
+ .version()
28
+ .strict()
29
+ .parse();
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@rse/ase",
3
+ "description": "Agentic Software Engineering (ASE)",
4
+ "publishConfig": { "access": "public" },
5
+ "keywords": [ "agentic", "ai", "coding", "tool", "cli", "software", "engineering" ],
6
+ "homepage": "http://github.com/rse/ase",
7
+ "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
+ "bugs": { "url": "http://github.com/rse/ase/issues" },
9
+ "version": "0.0.0",
10
+ "license": "GPL-3.0-only",
11
+ "author": {
12
+ "name": "Dr. Ralf S. Engelschall",
13
+ "email": "rse@engelschall.com",
14
+ "url": "http://engelschall.com"
15
+ },
16
+ "type": "module",
17
+ "bin": { "ase": "bin/ase" },
18
+ "devDependencies": {
19
+ "eslint": "9.39.4",
20
+ "@eslint/js": "9.39.4",
21
+ "@typescript-eslint/parser": "8.58.0",
22
+ "@typescript-eslint/eslint-plugin": "8.58.0",
23
+ "eslint-plugin-n": "17.24.0",
24
+ "eslint-plugin-promise": "7.2.1",
25
+ "eslint-plugin-import": "2.32.0",
26
+ "neostandard": "0.13.0",
27
+ "globals": "17.4.0",
28
+ "typescript": "6.0.2",
29
+
30
+ "@rse/stx": "1.1.4",
31
+ "nodemon": "3.1.14",
32
+ "shx": "0.4.0",
33
+ "remark-cli": "12.0.1",
34
+ "remark": "15.0.1",
35
+ "remark-man": "9.0.0",
36
+
37
+ "@types/node": "25.5.2",
38
+ "@types/yargs": "17.0.35"
39
+ },
40
+ "dependencies": {
41
+ "yargs": "18.0.0"
42
+ },
43
+ "engines": {
44
+ "npm": ">=10.0.0",
45
+ "node": ">=20.0.0"
46
+ },
47
+ "upd": [ "!eslint", "!@eslint/js" ],
48
+ "files": [
49
+ "dst/**/*",
50
+ "bin/**/*",
51
+ "README.md"
52
+ ],
53
+ "scripts": {
54
+ "start": "stx -v4 -l warning -c etc/stx.conf"
55
+ }
56
+ }