@synap-core/workspace-templates 0.2.2 → 0.4.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.
@@ -541,399 +541,6 @@ entityLinks:
541
541
  targetProfileSlug: repository
542
542
  type: depends_on
543
543
 
544
- seedEntities:
545
- - profileSlug: service
546
- title: Synap App
547
- properties:
548
- service-type: Frontend
549
- service-url: "https://app.synap.live"
550
- github-url: "https://github.com/synapsh/synap-app"
551
- health-status: Unknown
552
- tech-stack: [Next.js, React, tRPC, Zustand, Ink]
553
- port: 3000
554
- environment: Production
555
- service-notes: "Main workspace application. pnpm monorepo: core, features, views, apps. @synap/capabilities = single source of truth for widget/view types. Bento system via @synap/cell-runtime + @synap/cells."
556
- - profileSlug: service
557
- title: Synap Backend
558
- properties:
559
- service-type: Backend API
560
- github-url: "https://github.com/synapsh/synap-backend"
561
- health-status: Unknown
562
- tech-stack: [Node.js, Hono, tRPC, Drizzle, PostgreSQL, Better Auth]
563
- port: 4000
564
- environment: Production
565
- service-notes: "Data Pod backend — deployed per user pod at {name}.synap.live. Hono HTTP + tRPC + Better Auth. Hub Protocol (16 sub-routers)."
566
- - profileSlug: service
567
- title: Control Plane API
568
- properties:
569
- service-type: Backend API
570
- service-url: "https://api.synap.live"
571
- github-url: "https://github.com/synapsh/synap-control-plane-api"
572
- health-endpoint: "https://api.synap.live/health"
573
- health-status: Unknown
574
- tech-stack: [Node.js, Hono, Better Auth, Drizzle, PostgreSQL, Stripe]
575
- port: 4100
576
- environment: Production
577
- service-notes: "SaaS Control Plane. REST-only (Hono). Pod provisioning, Stripe subscriptions, Better Auth. CP↔Pod JWT handshake via ES256. Provision JWT carries tier + Resend config to pods."
578
- - profileSlug: service
579
- title: Control Plane
580
- properties:
581
- service-type: Frontend
582
- service-url: "https://control.synap.live"
583
- github-url: "https://github.com/synapsh/synap-control-plane"
584
- health-status: Unknown
585
- tech-stack: [Next.js, React]
586
- port: 3100
587
- environment: Production
588
- service-notes: "Platform marketing + dashboard. Sign-up, pod management, billing (Stripe), add-on marketplace."
589
- - profileSlug: service
590
- title: Agent Hub
591
- properties:
592
- service-type: Backend API
593
- service-url: "https://intelligence.synap.live"
594
- github-url: "https://github.com/synapsh/synap-intelligence-service"
595
- health-endpoint: "https://intelligence.synap.live/health"
596
- health-status: Unknown
597
- tech-stack: [Node.js, Hono, Mem0, OpenRouter, MCP]
598
- port: 4200
599
- environment: Production
600
- service-notes: "AI/Agent Hub (synap-agent-hub). OrchestratorAgent (co-founder AI, 15 tools) + PersonaAgent (CTO/Marketing/Sales/PM). Session-scoped memory via compaction engine. MCP client — OpenClaw (browsing) + Firecrawl (scraping) via Docker. Hub Protocol client for all IS→backend operations."
601
- - profileSlug: service
602
- title: OpenClaw
603
- properties:
604
- service-type: Worker
605
- github-url: "https://github.com/synapsh/openclaw"
606
- health-status: Unknown
607
- tech-stack: [Docker, MCP, Playwright]
608
- port: 3000
609
- service-notes: "Web browsing MCP tool. Docker-managed via workspace.settings.serviceCommands.openclaw. MCP stdio/HTTP transport. Used by Agent Hub for web research. Internal only."
610
- - profileSlug: service
611
- title: Firecrawl
612
- properties:
613
- service-type: Worker
614
- service-url: "https://firecrawl.dev"
615
- github-url: "https://github.com/mendableai/firecrawl"
616
- health-status: Unknown
617
- tech-stack: [Docker, MCP]
618
- port: 3001
619
- service-notes: "Web scraping MCP tool. Docker-managed via workspace.settings.serviceCommands.firecrawl. MCP stdio/HTTP transport. Used by Agent Hub for structured content extraction."
620
- - profileSlug: service
621
- title: Browser
622
- properties:
623
- service-type: Frontend
624
- github-url: "https://github.com/synapsh/browser"
625
- health-status: Unknown
626
- tech-stack: [Electron, React, Zustand]
627
- service-notes: "Desktop browser shell. Wraps Synap App with native OS integration, tab management, profile/workspace switching, embedded webviews."
628
- - profileSlug: service
629
- title: Langfuse Monitor
630
- properties:
631
- service-type: Monitoring
632
- service-url: "https://ai-monitoring.synap.live"
633
- github-url: "https://github.com/langfuse/langfuse"
634
- health-endpoint: "https://ai-monitoring.synap.live/api/public/health"
635
- health-status: Unknown
636
- tech-stack: [Langfuse, Docker, PostgreSQL]
637
- environment: Production
638
- service-notes: "Self-hosted Langfuse AI observability. Traces all Agent Hub executions."
639
- - profileSlug: service
640
- title: MonoHub
641
- properties:
642
- service-type: Worker
643
- github-url: "https://github.com/synapsh/synap"
644
- health-status: Unknown
645
- tech-stack: [Node.js, Ink, React, MCP]
646
- port: 7433
647
- service-notes: "Internal developer CLI (monohub/). Terminal dashboard: package health, circular dep detection, publish orchestration, capability scaffolding wizard, MCP server for Claude/Cursor. Web dashboard at http://localhost:7433."
648
- - profileSlug: vendor
649
- title: Hetzner
650
- properties:
651
- vendor-type: Hosting
652
- vendor-url: "https://hetzner.com"
653
- admin-url: "https://console.hetzner.cloud"
654
- status-page-url: "https://status.hetzner.com"
655
- pricing-model: Monthly
656
- monthly-cost: 0
657
- vendor-status: Active
658
- vendor-notes: "Primary cloud hosting. Servers for Data Pods and Agent Hub."
659
- - profileSlug: vendor
660
- title: Stripe
661
- properties:
662
- vendor-type: Other
663
- vendor-url: "https://stripe.com"
664
- admin-url: "https://dashboard.stripe.com"
665
- docs-url: "https://stripe.com/docs"
666
- status-page-url: "https://status.stripe.com"
667
- pricing-model: Pay-as-you-go
668
- monthly-cost: 0
669
- vendor-status: Active
670
- vendor-notes: "Billing and subscription management. solo/pro/team/enterprise tiers + addon subscriptions. Webhooks consumed by Control Plane API."
671
- - profileSlug: vendor
672
- title: OpenRouter
673
- properties:
674
- vendor-type: AI
675
- vendor-url: "https://openrouter.ai"
676
- admin-url: "https://openrouter.ai/dashboard"
677
- docs-url: "https://openrouter.ai/docs"
678
- pricing-model: Pay-as-you-go
679
- monthly-cost: 0
680
- vendor-status: Active
681
- vendor-notes: "LLM API gateway. Used by Agent Hub for all model calls (Claude, GPT-4, etc.)."
682
- - profileSlug: vendor
683
- title: Cloudflare
684
- properties:
685
- vendor-type: DNS
686
- vendor-url: "https://cloudflare.com"
687
- admin-url: "https://dash.cloudflare.com"
688
- status-page-url: "https://www.cloudflarestatus.com"
689
- pricing-model: Monthly
690
- monthly-cost: 0
691
- vendor-status: Active
692
- vendor-notes: "DNS management and CDN for all Synap domains."
693
- - profileSlug: vendor
694
- title: Resend
695
- properties:
696
- vendor-type: Email
697
- vendor-url: "https://resend.com"
698
- admin-url: "https://resend.com/dashboard"
699
- docs-url: "https://resend.com/docs"
700
- pricing-model: Pay-as-you-go
701
- monthly-cost: 0
702
- vendor-status: Active
703
- vendor-notes: "Transactional email. API key provisioned to each Data Pod via provision JWT."
704
- - profileSlug: vendor
705
- title: GitHub
706
- properties:
707
- vendor-type: CI/CD
708
- vendor-url: "https://github.com"
709
- admin-url: "https://github.com/synapsh"
710
- pricing-model: Monthly
711
- monthly-cost: 0
712
- vendor-status: Active
713
- vendor-notes: "Code hosting and CI/CD (GitHub Actions). All repos under github.com/synapsh."
714
- - profileSlug: vendor
715
- title: Namecheap
716
- properties:
717
- vendor-type: Domain Registrar
718
- vendor-url: "https://namecheap.com"
719
- admin-url: "https://ap.www.namecheap.com/dashboard"
720
- pricing-model: Annual
721
- monthly-cost: 0
722
- vendor-status: Active
723
- vendor-notes: "Domain registrar for synap.live. Alternative DNS provider alongside Cloudflare."
724
- - profileSlug: vendor
725
- title: Trigger.dev
726
- properties:
727
- vendor-type: Background Jobs
728
- vendor-url: "https://trigger.dev"
729
- admin-url: "https://cloud.trigger.dev"
730
- pricing-model: Monthly
731
- monthly-cost: 0
732
- vendor-status: Active
733
- vendor-notes: "Background job orchestration for CP: pod provisioning, rolling updates, health checks."
734
- - profileSlug: environment
735
- title: Production
736
- properties:
737
- env-type: Production
738
- env-url: "https://app.synap.live"
739
- branch: main
740
- env-status: Active
741
- env-notes: "Live production environment. All customer data. Requires deployment checklist before any release."
742
- - profileSlug: environment
743
- title: Staging
744
- properties:
745
- env-type: Staging
746
- branch: staging
747
- env-status: Active
748
- env-notes: "Pre-production staging environment for QA and integration testing."
749
- - profileSlug: environment
750
- title: Development
751
- properties:
752
- env-type: Development
753
- env-url: "http://localhost:3000"
754
- branch: main
755
- env-status: Active
756
- env-notes: "Local development. Run: pnpm dev in synap-app, synap-backend, synap-intelligence-service, synap-control-plane-api."
757
- - profileSlug: repository
758
- title: synap-app
759
- properties:
760
- repo-url: "https://github.com/synapsh/synap-app"
761
- main-branch: main
762
- ci-status: Unknown
763
- ci-url: "https://github.com/synapsh/synap-app/actions"
764
- language: TypeScript
765
- package-manager: pnpm
766
- monorepo: true
767
- repo-notes: "Frontend monorepo. packages/core (@synap/capabilities, @synap/cell-runtime, @synap/cells), packages/features (channels, sidebar, bento), packages/views, packages/apps (fluid, billing, agent-os)."
768
- - profileSlug: repository
769
- title: synap-backend
770
- properties:
771
- repo-url: "https://github.com/synapsh/synap-backend"
772
- main-branch: main
773
- ci-status: Unknown
774
- ci-url: "https://github.com/synapsh/synap-backend/actions"
775
- language: TypeScript
776
- package-manager: pnpm
777
- monorepo: true
778
- repo-notes: "Data Pod backend monorepo. Hono + tRPC + Drizzle + Better Auth. Hub Protocol (16 sub-routers)."
779
- - profileSlug: repository
780
- title: synap-control-plane-api
781
- properties:
782
- repo-url: "https://github.com/synapsh/synap-control-plane-api"
783
- main-branch: main
784
- ci-status: Unknown
785
- ci-url: "https://github.com/synapsh/synap-control-plane-api/actions"
786
- language: TypeScript
787
- package-manager: pnpm
788
- monorepo: false
789
- repo-notes: "SaaS Control Plane. Hono REST + Better Auth + Stripe. Also contains workspace template JSON files."
790
- - profileSlug: repository
791
- title: synap-intelligence-service
792
- properties:
793
- repo-url: "https://github.com/synapsh/synap-intelligence-service"
794
- main-branch: main
795
- ci-status: Unknown
796
- ci-url: "https://github.com/synapsh/synap-intelligence-service/actions"
797
- language: TypeScript
798
- package-manager: pnpm
799
- monorepo: true
800
- repo-notes: "Agent Hub monorepo (synap-agent-hub). OrchestratorAgent, PersonaAgent, tool registry, Hub Protocol client, compaction engine."
801
- - profileSlug: repository
802
- title: browser
803
- properties:
804
- repo-url: "https://github.com/synapsh/browser"
805
- main-branch: main
806
- ci-status: Unknown
807
- ci-url: "https://github.com/synapsh/browser/actions"
808
- language: TypeScript
809
- package-manager: pnpm
810
- monorepo: false
811
- repo-notes: "Electron desktop shell. Native OS integration for Synap App."
812
- - profileSlug: repository
813
- title: monohub
814
- properties:
815
- repo-url: "https://github.com/synapsh/synap"
816
- main-branch: main
817
- ci-status: Unknown
818
- ci-url: "https://github.com/synapsh/synap/actions"
819
- language: TypeScript
820
- package-manager: pnpm
821
- monorepo: false
822
- repo-notes: "Developer tooling CLI (monohub/ at workspace root). Terminal dashboard, capability scaffolding, MCP server, publish orchestration. .github/workflows/monohub.yml for monorepo CI."
823
- - profileSlug: credential
824
- title: Hetzner API Token
825
- properties:
826
- credential-type: api_key
827
- service-name: Hetzner
828
- vault-ref: hetzner-api-token
829
- environment: production
830
- notes: "Zone DNS Edit + server/volume permissions. Used by CP for pod provisioning."
831
- - profileSlug: credential
832
- title: Cloudflare API Token
833
- properties:
834
- credential-type: api_key
835
- service-name: Cloudflare
836
- vault-ref: cloudflare-api-token
837
- environment: production
838
- notes: "Zone DNS Edit permission for synap.live. Used by CP for DNS record management."
839
- - profileSlug: credential
840
- title: Namecheap API Key
841
- properties:
842
- credential-type: api_key
843
- service-name: Namecheap
844
- vault-ref: namecheap-api-key
845
- environment: production
846
- notes: "Requires NAMECHEAP_CLIENT_IP whitelist. Fallback DNS provider."
847
- - profileSlug: credential
848
- title: Stripe Secret Key
849
- properties:
850
- credential-type: api_key
851
- service-name: Stripe
852
- vault-ref: stripe-secret-key
853
- environment: production
854
- notes: "sk_live_* key for CP billing. Never expose client-side."
855
- - profileSlug: credential
856
- title: Stripe Webhook Secret
857
- properties:
858
- credential-type: api_key
859
- service-name: Stripe
860
- vault-ref: stripe-webhook-secret
861
- environment: production
862
- notes: "whsec_* for verifying Stripe webhook payloads in CP."
863
- - profileSlug: credential
864
- title: OpenRouter API Key
865
- properties:
866
- credential-type: api_key
867
- service-name: OpenRouter
868
- vault-ref: openrouter-api-key
869
- environment: production
870
- notes: "sk-or-v1-* key. Required by Agent Hub. Covers all LLM models."
871
- - profileSlug: credential
872
- title: Resend API Key
873
- properties:
874
- credential-type: api_key
875
- service-name: Resend
876
- vault-ref: resend-api-key
877
- environment: production
878
- notes: "re_* key. Used by CP for transactional emails. Also provisioned to pods."
879
- - profileSlug: credential
880
- title: GitHub Actions Token
881
- properties:
882
- credential-type: token
883
- service-name: GitHub
884
- vault-ref: github-actions-token
885
- environment: production
886
- notes: "PAT for CI/CD — ghcr.io image push, workflow triggers."
887
- - profileSlug: credential
888
- title: CP EC Private Key
889
- properties:
890
- credential-type: certificate
891
- service-name: Control Plane API
892
- vault-ref: cp-ec-private-key
893
- environment: production
894
- notes: "ES256 PKCS#8 private key. Signs provision JWTs. Pods verify via /well-known/jwks.json."
895
- - profileSlug: credential
896
- title: Hetzner SSH Key
897
- properties:
898
- credential-type: ssh_key
899
- service-name: Hetzner
900
- vault-ref: hetzner-ssh-key
901
- environment: production
902
- notes: "SSH key pair for pod server access via Hetzner."
903
-
904
- suggestedRelations:
905
- - { sourceRef: "service:Synap App", targetRef: "service:Synap Backend", type: depends_on }
906
- - { sourceRef: "service:Synap App", targetRef: "service:Agent Hub", type: depends_on }
907
- - { sourceRef: "service:Browser", targetRef: "service:Synap App", type: depends_on }
908
- - { sourceRef: "service:Control Plane", targetRef: "service:Control Plane API", type: depends_on }
909
- - { sourceRef: "service:Control Plane API", targetRef: "service:Synap Backend", type: depends_on }
910
- - { sourceRef: "service:Synap Backend", targetRef: "service:Agent Hub", type: depends_on }
911
- - { sourceRef: "service:Agent Hub", targetRef: "service:OpenClaw", type: depends_on }
912
- - { sourceRef: "service:Agent Hub", targetRef: "service:Firecrawl", type: depends_on }
913
- - { sourceRef: "service:Agent Hub", targetRef: "vendor:OpenRouter", type: uses }
914
- - { sourceRef: "service:Control Plane API", targetRef: "vendor:Stripe", type: uses }
915
- - { sourceRef: "service:Synap Backend", targetRef: "vendor:Hetzner", type: deployed_on }
916
- - { sourceRef: "service:Agent Hub", targetRef: "vendor:Hetzner", type: deployed_on }
917
- - { sourceRef: "service:Control Plane API", targetRef: "vendor:Resend", type: uses }
918
- - { sourceRef: "service:Synap App", targetRef: "vendor:Vercel", type: deployed_on }
919
- - { sourceRef: "service:Control Plane", targetRef: "vendor:Vercel", type: deployed_on }
920
- - { sourceRef: "repository:synap-app", targetRef: "service:Synap App", type: powers }
921
- - { sourceRef: "repository:synap-backend", targetRef: "service:Synap Backend", type: powers }
922
- - { sourceRef: "repository:synap-control-plane-api", targetRef: "service:Control Plane API", type: powers }
923
- - { sourceRef: "repository:synap-intelligence-service", targetRef: "service:Agent Hub", type: powers }
924
- - { sourceRef: "repository:browser", targetRef: "service:Browser", type: powers }
925
- - { sourceRef: "repository:monohub", targetRef: "service:MonoHub", type: powers }
926
- - { sourceRef: "Hetzner", targetRef: "Hetzner API Token", type: references }
927
- - { sourceRef: "Hetzner", targetRef: "Hetzner SSH Key", type: references }
928
- - { sourceRef: "Cloudflare", targetRef: "Cloudflare API Token", type: references }
929
- - { sourceRef: "Namecheap", targetRef: "Namecheap API Key", type: references }
930
- - { sourceRef: "Stripe", targetRef: "Stripe Secret Key", type: references }
931
- - { sourceRef: "Stripe", targetRef: "Stripe Webhook Secret", type: references }
932
- - { sourceRef: "OpenRouter", targetRef: "OpenRouter API Key", type: references }
933
- - { sourceRef: "Resend", targetRef: "Resend API Key", type: references }
934
- - { sourceRef: "GitHub", targetRef: "GitHub Actions Token", type: references }
935
- - { sourceRef: "Control Plane API", targetRef: "CP EC Private Key", type: references }
936
-
937
544
  displayTemplates:
938
545
  - name: Service Card
939
546
  description: "Infrastructure service with health status, stack, and links"
@@ -1281,6 +888,43 @@ bento:
1281
888
  onboarding:
1282
889
  goal: "Capture the user's infrastructure surface — the services they run, the repositories behind them, their environments, the vendors they depend on, and their credentials inventory — so the command center reflects their real stack."
1283
890
  framing: "Act as a staff platform engineer doing an infra walkthrough. Tease out what's running in production, where the code lives, how environments are laid out, which third parties they depend on, and what secrets need tracking. Translate that into services, repositories, environments, vendors, and credentials."
891
+ expertise:
892
+ starters:
893
+ - >
894
+ Start from what's serving live traffic RIGHT NOW, not the architecture diagram. Walk the
895
+ request path: what does a user hit first, and what does that call, and what does THAT call?
896
+ Capture each hop as a service with its host and health-check URL. The production edge is the
897
+ map's anchor; everything else hangs off it.
898
+ - >
899
+ For every third party, capture the cost AND who owns the account. Propose logging each
900
+ vendor with its pricing model and monthly spend the moment you name it — the €12/mo that
901
+ became €400/mo is always a vendor nobody was watching. An untracked line item is a future
902
+ surprise on the card.
903
+ - >
904
+ Inventory credentials by their EXPIRY, not their existence. For each secret, capture where
905
+ it's stored (vault ref), what it unlocks, and when it expires or was last rotated. The
906
+ credential nobody wrote down is the one that expires at 3am and takes prod with it.
907
+ blindSpots:
908
+ - >
909
+ The untracked credential is the classic infra time-bomb: the SSH key on one laptop, the API
910
+ token in someone's .env, the cert that auto-renewed until it didn't. Teams track services
911
+ obsessively and secrets not at all — surface expiry dates and rotation policy proactively,
912
+ because the outage is silent until the exact moment it isn't.
913
+ - >
914
+ Vendor cost creep has no owner. Each SaaS was signed up "just to try," and now the monthly
915
+ bill is a mystery no single person can explain line by line. Force a monthly-cost number and
916
+ an owner on every vendor — the sum is almost always higher than anyone guessed.
917
+ - >
918
+ "Works on my machine" is environment drift, and it hides until deploy day. Staging runs a
919
+ different Node, prod has an env var dev doesn't, the migration ran here but not there. Map
920
+ each environment EXPLICITLY with its branch and base URL so the deltas between prod, staging,
921
+ and dev are visible instead of discovered during an incident.
922
+ bar: >
923
+ A great result is a command center where you can answer, without SSHing anywhere: what's
924
+ serving traffic and is it healthy, which credential expires next and who rotates it, what each
925
+ vendor costs and who owns it, and exactly how prod differs from staging. The value is in the
926
+ facts nobody keeps in one place — expiry dates, cost owners, environment deltas — surfaced
927
+ before they become incidents.
1284
928
  collect:
1285
929
  - profileSlug: service
1286
930
  what: "The services / apps they run and their stack"