@oomerevren/tryforge 0.1.2 → 0.1.3
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 +107 -13
- package/README.md +172 -232
- package/dist/cli/src/adapters/agents-md.js +24 -0
- package/dist/cli/src/adapters/base.js +99 -0
- package/dist/cli/src/adapters/claude.js +43 -14
- package/dist/cli/src/adapters/codex.js +18 -17
- package/dist/cli/src/adapters/cursor.js +44 -30
- package/dist/cli/src/adapters/dsh.js +28 -30
- package/dist/cli/src/adapters/generic.js +10 -7
- package/dist/cli/src/adapters/opencode.js +23 -23
- package/dist/cli/src/adapters/types.js +12 -9
- package/dist/cli/src/adapters/windsurf.js +48 -28
- package/dist/cli/src/commands/add-external.js +111 -0
- package/dist/cli/src/commands/audit.js +68 -30
- package/dist/cli/src/commands/init.js +2 -2
- package/dist/cli/src/commands/install.js +90 -15
- package/dist/cli/src/commands/pack.js +119 -0
- package/dist/cli/src/commands/sync.js +181 -0
- package/dist/cli/src/commands/test.js +72 -0
- package/dist/cli/src/commands/tui.js +191 -0
- package/dist/cli/src/commands/update.js +4 -4
- package/dist/cli/src/commands/verify.js +62 -0
- package/dist/cli/src/core/fsutil.js +37 -0
- package/dist/cli/src/core/installer.js +9 -9
- package/dist/cli/src/core/lock.js +97 -10
- package/dist/cli/src/core/merge.js +108 -0
- package/dist/cli/src/core/plugin.js +2 -2
- package/dist/cli/src/core/project.js +136 -4
- package/dist/cli/src/core/registry.js +9 -9
- package/dist/cli/src/core/scan.js +159 -0
- package/dist/cli/src/core/semver.js +7 -7
- package/dist/cli/src/core/sign.js +2 -2
- package/dist/cli/src/core/sources.js +171 -0
- package/dist/cli/src/index.js +83 -16
- package/dist/index.cjs +359 -0
- package/dist/scripts/build-registry.js +2 -4
- package/dist/scripts/publish-verified.js +17 -9
- package/dist/scripts/seed-registry-13lite.js +5 -5
- package/dist/scripts/seed-registry.js +4 -4
- package/dist/scripts/verify-npm-mcps.js +6 -4
- package/package.json +15 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,25 +1,119 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
All notable changes are kept in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), versions follow [SemVer](https://semver.org/).
|
|
4
|
+
|
|
5
|
+
## [Unreleased] — Stage 5: README transformation, docs portal, GTM launch
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- `forge tui` — interactive terminal dashboard (category browse, search, sync, init)
|
|
9
|
+
- `forge test <pkg>` — validate package against adapter matrix (dry-run)
|
|
10
|
+
- `forge pack` — build verified tarball from current directory
|
|
11
|
+
- `forge verify <pkg>` — schema + security + adapter verification
|
|
12
|
+
- GitHub Action template (`examples/github-action/forge-audit.yml`)
|
|
13
|
+
- Viral badge: `[](https://github.com/oomerevren-beep/forge)`
|
|
14
|
+
- Documentation portal (`docs/README.md`)
|
|
15
|
+
- GTM launch texts (`docs/private/GTM-LAUNCH-TEXTS.md`) — HN, X thread, Reddit
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- `README.md` rewritten: hero section, 60-second quickstart, comparison matrix, security section, full command reference
|
|
19
|
+
- `verify` and `test` use `process.exitCode` (testable) instead of `process.exit`
|
|
20
|
+
|
|
21
|
+
## [Unreleased] — Stage 4: TUI, developer experience, viral loops
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- Interactive TUI dashboard (`cli/src/commands/tui.ts`) — `@clack/prompts` + `picocolors`
|
|
25
|
+
- `forge test` command (`cli/src/commands/test.ts`)
|
|
26
|
+
- `forge pack` command (`cli/src/commands/pack.ts`)
|
|
27
|
+
- `forge verify` command (`cli/src/commands/verify.ts`)
|
|
28
|
+
- GitHub Action template for CI audit
|
|
29
|
+
- Viral README badge
|
|
30
|
+
|
|
31
|
+
## [Unreleased] — Stage 3: universal context, decentralized sources, audit engine
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- Decentralized sources: `forge add github:owner/repo[#ref]`, `owner/repo`
|
|
35
|
+
(registry-first fallback), `<git-url>[#ref]`, `./local/path`
|
|
36
|
+
(`cli/src/core/sources.ts`, shallow clones, manifest auto-parse).
|
|
37
|
+
- Universal `forge.toml`: `[project]`, `[agents.<role>]`, `[skills]`
|
|
38
|
+
(version or `{ version, source, ref }`), `[mcp.servers.*]`, `[permissions]`
|
|
39
|
+
— parser, validator, and `schema/forge.schema.json` (with `$id`) updated.
|
|
40
|
+
- `forge sync`: one-command team sync — skills + rule files + MCP servers +
|
|
41
|
+
agent-roles block + deterministic `forge.lock` (`cli/src/commands/sync.ts`).
|
|
42
|
+
- Static security engine (`cli/src/core/scan.ts`, 19 rules): shell-danger,
|
|
43
|
+
prompt-inject/exfiltration, perm-violation; HIGH blocks external installs
|
|
44
|
+
and fails `forge audit` (exit 1).
|
|
45
|
+
- `copyDirRecursive` (`cli/src/core/fsutil.ts`): `fs.cpSync` silently yields
|
|
46
|
+
empty dirs under non-ASCII Windows home paths (Node 24) — all store
|
|
47
|
+
staging and install fallbacks now copy file-by-file (fail-closed).
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
- `forge install` consumes `[skills]` (any source) and injects
|
|
51
|
+
`[mcp.servers.*]` into every detected adapter config.
|
|
52
|
+
- `forge add` runs a pre-install scan (`--skip-scan` opt-out) and resolves
|
|
53
|
+
non-registry refs; `LinkRecord` records `source`.
|
|
54
|
+
- `Adapter.install` call sites pass version/description for rule sync.
|
|
55
|
+
|
|
56
|
+
## [Unreleased] — Stage 2: core engine, zero-friction DX, dynamic adapters
|
|
57
|
+
|
|
58
|
+
### Added
|
|
59
|
+
- Zero-install runtime: `npx -y tryforge` / `bunx tryforge` via single-file
|
|
60
|
+
esbuild bundle (`npm run bundle` → `dist/index.cjs`, published `bin`).
|
|
61
|
+
- Non-destructive merge engine (`cli/src/core/merge.ts`):
|
|
62
|
+
`<!-- FORGE:START/END -->` blocks, byte-preserved user content, idempotent
|
|
63
|
+
reinstalls, block-only uninstall, marker-injection refusal.
|
|
64
|
+
- 2026 adapter rule formats: Cursor `.cursor/rules/*.mdc` (frontmatter),
|
|
65
|
+
Claude `<project>/CLAUDE.md` merged blocks, Windsurf `.windsurfrules`
|
|
66
|
+
merged blocks, shared `<project>/AGENTS.md` blocks (OpenCode/Codex/DSH).
|
|
67
|
+
- Deterministic `forge.lock` with pinned integrity (`tarball` + `sha256` +
|
|
68
|
+
`source`); `forge install --frozen` refuses yanked versions and hash drift.
|
|
69
|
+
- `FORGE_TEST_HOME` test hook — adapter tests never touch the real home dir.
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
- Adapters refactored onto `cli/src/adapters/base.ts` (scope resolution,
|
|
73
|
+
list/isInstalled loops, rule sync); `Adapter.install` takes optional
|
|
74
|
+
`PackageMeta` (version/description) for rule-file sync.
|
|
75
|
+
- `docs/SPEC.md`, `ARCHITECTURE.md`, `REGISTRY.md`, `PRD.md` translated to
|
|
76
|
+
English (Stage 1 debt); SPEC gains the forge.lock section (§4).
|
|
77
|
+
|
|
78
|
+
### Fixed
|
|
79
|
+
- `Adapter` interface doc in `docs/ADAPTERS.md` matched the real signature;
|
|
80
|
+
support matrix now lists 2026 rule formats per harness.
|
|
81
|
+
|
|
82
|
+
## [Unreleased] — Stage 1: repo hygiene & OSS standardization
|
|
83
|
+
|
|
84
|
+
### Removed
|
|
85
|
+
- `docs/run-state/` (agent loop leftovers), `.hermes/`, `.kiro/` (local IDE state) — untracked and deleted.
|
|
86
|
+
- All `registry-content/*.tar.gz` prebuilt binaries (15 files) — source dirs kept; `scripts/publish-verified.ts` now stages tarballs under gitignored `.cache/forge-publish/`.
|
|
87
|
+
|
|
88
|
+
### Changed
|
|
89
|
+
- `.gitignore` rebuilt to the OSS standard set (deps/build/archives/IDE/env/OS) plus Forge guards (`docs/private/`, `.npmrc`, `.forge/`).
|
|
90
|
+
- 100% English across CLI, scripts, tests, and public docs (comments, test names, console strings).
|
|
91
|
+
- `SECURITY.md`: responsible-disclosure steps + PGP policy clarified. `CONTRIBUTING.md`: skill-package flow added.
|
|
92
|
+
- Toolchain: dev TypeScript pinned to v6 line (typescript-eslint has no TS 7 support yet, upstream #10940) — build/test output unchanged.
|
|
93
|
+
- `npm run build` now uses `tsconfig.build.json` (tests excluded from emit); `npm run typecheck` covers `cli/` + `scripts/` + `tests/` strict.
|
|
94
|
+
|
|
95
|
+
### Added
|
|
96
|
+
- `npm run lint` (ESLint flat config, `--max-warnings 0`) and `npm run typecheck` (`tsc --noEmit`).
|
|
97
|
+
- CI: strict `lint` + `typecheck` jobs gating `validate` on every push/PR.
|
|
4
98
|
|
|
5
99
|
## [0.1.1] — 2026-09-03
|
|
6
100
|
|
|
7
101
|
### Added
|
|
8
|
-
- `tryforge` npm
|
|
9
|
-
- 7 harness
|
|
10
|
-
- 21 verified
|
|
11
|
-
- `forge.toml` + `forge.lock`
|
|
12
|
-
- `forge audit` (mock/unverified
|
|
13
|
-
- Fail-closed installer: `sha256`
|
|
102
|
+
- `tryforge` npm package published (`npm i -g tryforge`).
|
|
103
|
+
- 7 harness adapters: Claude Code, Codex, OpenCode, Cursor, DeepSeek (dsh), Windsurf, Generic.
|
|
104
|
+
- 21-package verified registry (`registry/index.json` + `search.json` + `stats.json`).
|
|
105
|
+
- Team sync via `forge.toml` + `forge.lock` (`forge install`, `--frozen`).
|
|
106
|
+
- `forge audit` (mock/unverified marking), `forge doctor` health check.
|
|
107
|
+
- Fail-closed installer: content whose `sha256` cannot be verified is not installed without `--mock`.
|
|
14
108
|
|
|
15
109
|
### Security
|
|
16
|
-
- `tar`
|
|
17
|
-
- `add`/`remove`
|
|
18
|
-
-
|
|
110
|
+
- `tar` extraction moved to `execFileSync` arg-array; symlink/escape scanning added.
|
|
111
|
+
- `add`/`remove` dependency-name validation (`owner/name`).
|
|
112
|
+
- `.bak` backup before MCP config writes.
|
|
19
113
|
|
|
20
114
|
## [0.1.0] — 2026-09-01
|
|
21
115
|
|
|
22
116
|
### Added
|
|
23
|
-
-
|
|
24
|
-
- Semver
|
|
25
|
-
- `install.sh` / `install.ps1`
|
|
117
|
+
- First CLI skeleton: `add/search/list/info/doctor/init/install/update/outdated/remove`.
|
|
118
|
+
- Semver resolution (`^`, `~`, pin) and offline scored search (<200ms).
|
|
119
|
+
- `install.sh` / `install.ps1` installers.
|