@ashulab/agent-forge 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.
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@ashulab/agent-forge",
3
+ "version": "0.1.0",
4
+ "description": "Give claude/codex/antigravity their own GitHub identity: a bot account, a scoped token minted per run, git attribution to match",
5
+ "license": "MIT",
6
+ "author": "Diego Ghersi <ghersidl@gmail.com>",
7
+ "type": "module",
8
+ "bin": {
9
+ "agent-forge": "dist/launcher.cjs"
10
+ },
11
+ "main": "dist/launcher.cjs",
12
+ "files": [
13
+ "dist",
14
+ "schema",
15
+ "LICENSE",
16
+ "README.md"
17
+ ],
18
+ "engines": {
19
+ "node": ">=24"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/AshuLab/agent-forge.git"
24
+ },
25
+ "bugs": {
26
+ "url": "https://github.com/AshuLab/agent-forge/issues"
27
+ },
28
+ "homepage": "https://github.com/AshuLab/agent-forge#readme",
29
+ "keywords": [
30
+ "github-app",
31
+ "cli",
32
+ "coding-agent",
33
+ "claude",
34
+ "codex",
35
+ "antigravity",
36
+ "installation-token",
37
+ "git-identity"
38
+ ],
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "dependencies": {
43
+ "@clack/prompts": "^1.7.0",
44
+ "jsonwebtoken": "^9.0.3"
45
+ },
46
+ "devDependencies": {
47
+ "esbuild": "^0.28.2"
48
+ },
49
+ "scripts": {
50
+ "dev": "node src/launcher.js",
51
+ "test": "node --test",
52
+ "start": "node dist/launcher.cjs",
53
+ "build": "esbuild src/launcher.js --bundle --platform=node --format=cjs --target=node24 --outfile=dist/launcher.cjs --banner:js='#!/usr/bin/env node' && chmod +x dist/launcher.cjs"
54
+ }
55
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/AshuLab/agent-forge/main/schema/agents.schema.json",
3
+ "agents": [
4
+ {
5
+ "name": "ops-agent",
6
+ "label": "Ops Agent",
7
+ "appId": "000000",
8
+ "installationId": "00000000",
9
+ "botName": "ops-agent",
10
+ "privateKeyPath": "~/.ssh/ops-agent.private-key.pem",
11
+ "systemPrompt": "You are Ops Agent, a senior DevOps engineer. Prefer safe, minimal changes and explain operational risks clearly."
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "agent-forge agents config",
4
+ "type": "object",
5
+ "required": ["agents"],
6
+ "properties": {
7
+ "$schema": { "type": "string" },
8
+ "agents": {
9
+ "type": "array",
10
+ "minItems": 1,
11
+ "items": {
12
+ "type": "object",
13
+ "additionalProperties": false,
14
+ "required": ["name", "label", "appId", "installationId", "botName", "privateKeyPath"],
15
+ "properties": {
16
+ "name": {
17
+ "type": "string",
18
+ "description": "Unique agent id, used with --agent"
19
+ },
20
+ "label": {
21
+ "type": "string",
22
+ "description": "Display name shown in the menus"
23
+ },
24
+ "appId": {
25
+ "type": "string",
26
+ "description": "GitHub App ID (numeric, stored as a string)"
27
+ },
28
+ "installationId": {
29
+ "type": "string",
30
+ "description": "GitHub App installation ID for the target account/org"
31
+ },
32
+ "botName": {
33
+ "type": "string",
34
+ "description": "GitHub App slug; the bot handle is <botName>[bot]"
35
+ },
36
+ "botId": {
37
+ "type": "string",
38
+ "description": "Bot user id. Optional: auto-resolved from botName when omitted"
39
+ },
40
+ "privateKeyPath": {
41
+ "type": "string",
42
+ "description": "Path to the App private key (.pem). ~ is expanded"
43
+ },
44
+ "systemPrompt": {
45
+ "type": "string",
46
+ "description": "Identity / system prompt injected into the provider and its memory file"
47
+ },
48
+ "instructions": {
49
+ "type": "string",
50
+ "description": "Fallback used as the prompt when systemPrompt is absent"
51
+ },
52
+ "identityPrompt": {
53
+ "type": "string",
54
+ "description": "Fallback used as the prompt when systemPrompt and instructions are absent"
55
+ },
56
+ "repositories": {
57
+ "type": "array",
58
+ "items": { "type": "string" },
59
+ "description": "Least-privilege: limit the installation token to these repo names"
60
+ },
61
+ "permissions": {
62
+ "type": "object",
63
+ "additionalProperties": { "type": "string" },
64
+ "description": "Least-privilege: limit the installation token permissions, e.g. { \"contents\": \"write\" }"
65
+ },
66
+ "providers": {
67
+ "type": "object",
68
+ "description": "Per-provider overrides, keyed by provider value (e.g. { \"claude\": { \"command\": \"claude\" } })",
69
+ "additionalProperties": {
70
+ "type": "object",
71
+ "properties": { "command": { "type": "string" } }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }