@tsfpp/agents 1.1.0 → 1.1.1
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 +7 -0
- package/bin/bootstrap.sh +103 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,13 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [1.1.1] - 2026-05-16
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Added bootstrap shell script at `bin/bootstrap.sh`.
|
|
18
|
+
- Exposed bootstrap command in package metadata via `tsfpp-bootstrap`.
|
|
19
|
+
|
|
13
20
|
## [1.1.0] - 2026-05-16
|
|
14
21
|
|
|
15
22
|
### Added
|
package/bin/bootstrap.sh
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# tsfpp-bootstrap.sh — spin up a TSF++ sandbox in the current directory
|
|
3
|
+
# Usage: bash tsfpp-bootstrap.sh [project-name]
|
|
4
|
+
# If no name is given, the current directory is used as-is.
|
|
5
|
+
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
# ── Colours ───────────────────────────────────────────────────────────────────
|
|
9
|
+
|
|
10
|
+
GREEN='\033[0;32m'
|
|
11
|
+
DIM='\033[2m'
|
|
12
|
+
RESET='\033[0m'
|
|
13
|
+
|
|
14
|
+
ok() { echo -e "${GREEN}✓${RESET} $1"; }
|
|
15
|
+
dim() { echo -e "${DIM}$1${RESET}"; }
|
|
16
|
+
|
|
17
|
+
# ── Project directory ─────────────────────────────────────────────────────────
|
|
18
|
+
|
|
19
|
+
PROJECT_NAME="${1:-}"
|
|
20
|
+
|
|
21
|
+
if [[ -n "$PROJECT_NAME" ]]; then
|
|
22
|
+
mkdir -p "$PROJECT_NAME"
|
|
23
|
+
cd "$PROJECT_NAME"
|
|
24
|
+
ok "Created directory: $PROJECT_NAME"
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# ── 1. pnpm init ──────────────────────────────────────────────────────────────
|
|
28
|
+
|
|
29
|
+
dim "Initialising package.json…"
|
|
30
|
+
pnpm init --yes > /dev/null
|
|
31
|
+
ok "pnpm init"
|
|
32
|
+
|
|
33
|
+
# ── 2. Install TSF++ ecosystem ────────────────────────────────────────────────
|
|
34
|
+
|
|
35
|
+
dim "Installing TSF++ packages (this may take a moment)…"
|
|
36
|
+
pnpm add -D \
|
|
37
|
+
typescript \
|
|
38
|
+
@tsfpp/standard \
|
|
39
|
+
@tsfpp/tsconfig \
|
|
40
|
+
@tsfpp/eslint-config \
|
|
41
|
+
@tsfpp/prelude \
|
|
42
|
+
@tsfpp/boundary \
|
|
43
|
+
@tsfpp/agents
|
|
44
|
+
ok "Installed TSF++ ecosystem"
|
|
45
|
+
|
|
46
|
+
# ── 3. tsconfig.json ──────────────────────────────────────────────────────────
|
|
47
|
+
|
|
48
|
+
dim "Writing tsconfig.json…"
|
|
49
|
+
cat > tsconfig.json << 'EOF'
|
|
50
|
+
{
|
|
51
|
+
"extends": "@tsfpp/tsconfig/app",
|
|
52
|
+
"compilerOptions": {
|
|
53
|
+
"rootDir": "src"
|
|
54
|
+
},
|
|
55
|
+
"include": ["src"]
|
|
56
|
+
}
|
|
57
|
+
EOF
|
|
58
|
+
ok "tsconfig.json"
|
|
59
|
+
|
|
60
|
+
# ── 4. eslint.config.js ───────────────────────────────────────────────────────
|
|
61
|
+
|
|
62
|
+
dim "Writing eslint.config.js…"
|
|
63
|
+
cat > eslint.config.js << 'EOF'
|
|
64
|
+
import tsfpp from '@tsfpp/eslint-config'
|
|
65
|
+
export default tsfpp
|
|
66
|
+
EOF
|
|
67
|
+
ok "eslint.config.js"
|
|
68
|
+
|
|
69
|
+
# ── 5. package.json — type + scripts ─────────────────────────────────────────
|
|
70
|
+
|
|
71
|
+
dim "Patching package.json…"
|
|
72
|
+
npm pkg set type="module" --silent
|
|
73
|
+
npm pkg set scripts.typecheck="tsc --noEmit" --silent
|
|
74
|
+
npm pkg set scripts.lint="eslint src" --silent
|
|
75
|
+
npm pkg set scripts.check="pnpm typecheck && pnpm lint" --silent
|
|
76
|
+
ok "package.json scripts"
|
|
77
|
+
|
|
78
|
+
# ── 6. src/index.ts ───────────────────────────────────────────────────────────
|
|
79
|
+
|
|
80
|
+
dim "Creating src/index.ts…"
|
|
81
|
+
mkdir -p src
|
|
82
|
+
cat > src/index.ts << 'EOF'
|
|
83
|
+
// TSF++ sandbox — start here
|
|
84
|
+
// Import from @tsfpp/prelude to explore ADTs and combinators:
|
|
85
|
+
//
|
|
86
|
+
// import { ok, err, some, none, pipe, absurd } from '@tsfpp/prelude'
|
|
87
|
+
EOF
|
|
88
|
+
ok "src/index.ts"
|
|
89
|
+
|
|
90
|
+
# ── 7. Copilot agents (.github) ───────────────────────────────────────────────
|
|
91
|
+
|
|
92
|
+
dim "Installing Copilot agents…"
|
|
93
|
+
node node_modules/@tsfpp/agents/init.mjs
|
|
94
|
+
ok "Copilot agents installed"
|
|
95
|
+
|
|
96
|
+
# ── 8. Done ───────────────────────────────────────────────────────────────────
|
|
97
|
+
|
|
98
|
+
echo ""
|
|
99
|
+
echo -e "${GREEN}TSF++ sandbox ready.${RESET}"
|
|
100
|
+
echo ""
|
|
101
|
+
echo " pnpm check — typecheck + lint"
|
|
102
|
+
echo " code . — open in VS Code"
|
|
103
|
+
echo ""
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsfpp/agents",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Workspace AI tooling for TSF++ projects: scoped instructions, coding agents, and reusable prompts",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tsfpp",
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"node": ">=18.0.0"
|
|
26
26
|
},
|
|
27
27
|
"bin": {
|
|
28
|
-
"tsfpp-agents": "./init.mjs"
|
|
28
|
+
"tsfpp-agents": "./init.mjs",
|
|
29
|
+
"tsfpp-bootstrap": "./bin/bootstrap.sh"
|
|
29
30
|
},
|
|
30
31
|
"files": [
|
|
31
32
|
"copilot/",
|