@aion0/forge 0.3.0 → 0.3.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/CLAUDE.md +9 -2
- package/README.md +9 -9
- package/app/api/claude-templates/route.ts +145 -0
- package/app/api/docs/sessions/route.ts +3 -3
- package/app/api/monitor/route.ts +2 -2
- package/app/api/pipelines/route.ts +2 -2
- package/app/api/preview/[...path]/route.ts +2 -2
- package/app/api/preview/route.ts +3 -4
- package/app/api/projects/route.ts +19 -0
- package/app/api/skills/local/route.ts +228 -0
- package/app/api/skills/route.ts +36 -11
- package/app/api/terminal-state/route.ts +2 -2
- package/app/login/page.tsx +1 -1
- package/bin/forge-server.mjs +49 -33
- package/cli/mw.ts +27 -9
- package/components/Dashboard.tsx +14 -0
- package/components/ProjectManager.tsx +581 -42
- package/components/SessionView.tsx +1 -1
- package/components/SettingsModal.tsx +18 -1
- package/components/SkillsPanel.tsx +515 -29
- package/components/WebTerminal.tsx +50 -5
- package/instrumentation.ts +2 -2
- package/lib/claude-sessions.ts +2 -2
- package/lib/claude-templates.ts +227 -0
- package/lib/cloudflared.ts +4 -3
- package/lib/crypto.ts +3 -4
- package/lib/dirs.ts +34 -0
- package/lib/flows.ts +2 -2
- package/lib/init.ts +2 -2
- package/lib/password.ts +2 -2
- package/lib/pipeline.ts +3 -3
- package/lib/session-watcher.ts +2 -2
- package/lib/settings.ts +4 -2
- package/lib/skills.ts +444 -79
- package/lib/telegram-bot.ts +12 -5
- package/lib/terminal-standalone.ts +3 -2
- package/package.json +1 -1
- package/src/config/index.ts +6 -7
- package/src/core/db/database.ts +17 -5
|
@@ -337,7 +337,7 @@ export default function SessionView({
|
|
|
337
337
|
</p>
|
|
338
338
|
)}
|
|
339
339
|
|
|
340
|
-
{Object.entries(sessionTree).map(([project, sessions]) => (
|
|
340
|
+
{Object.entries(sessionTree).sort(([a], [b]) => a.localeCompare(b)).map(([project, sessions]) => (
|
|
341
341
|
<div key={project}>
|
|
342
342
|
{/* Project node */}
|
|
343
343
|
<div
|
|
@@ -446,6 +446,23 @@ export default function SettingsModal({ onClose }: { onClose: () => void }) {
|
|
|
446
446
|
</p>
|
|
447
447
|
</div>
|
|
448
448
|
|
|
449
|
+
{/* Claude Home Directory */}
|
|
450
|
+
<div className="space-y-2">
|
|
451
|
+
<label className="text-xs text-[var(--text-secondary)] font-semibold uppercase">
|
|
452
|
+
Claude Home Directory
|
|
453
|
+
</label>
|
|
454
|
+
<input
|
|
455
|
+
type="text"
|
|
456
|
+
value={(settings as any).claudeHome || ''}
|
|
457
|
+
onChange={e => setSettings({ ...settings, claudeHome: e.target.value } as any)}
|
|
458
|
+
placeholder="~/.claude (default)"
|
|
459
|
+
className="w-full px-2 py-1 bg-[var(--bg-tertiary)] border border-[var(--border)] rounded text-xs text-[var(--text-primary)] font-mono"
|
|
460
|
+
/>
|
|
461
|
+
<p className="text-[9px] text-[var(--text-secondary)]">
|
|
462
|
+
Where Claude Code stores skills, commands, and sessions. Leave empty for default (~/.claude).
|
|
463
|
+
</p>
|
|
464
|
+
</div>
|
|
465
|
+
|
|
449
466
|
{/* Telegram Notifications */}
|
|
450
467
|
<div className="space-y-2">
|
|
451
468
|
<label className="text-xs text-[var(--text-secondary)] font-semibold uppercase">
|
|
@@ -824,7 +841,7 @@ export default function SettingsModal({ onClose }: { onClose: () => void }) {
|
|
|
824
841
|
onEdit={() => setEditingSecret({ field: 'telegramTunnelPassword', label: 'Admin Password' })}
|
|
825
842
|
/>
|
|
826
843
|
<p className="text-[9px] text-[var(--text-secondary)]">
|
|
827
|
-
Forgot? Run: <code className="text-[var(--accent)]">forge
|
|
844
|
+
Forgot? Run: <code className="text-[var(--accent)]">forge --reset-password</code>
|
|
828
845
|
</p>
|
|
829
846
|
</div>
|
|
830
847
|
|