agent-relay 1.1.0 → 1.2.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/.gitattributes +3 -0
- package/.nvmrc +1 -0
- package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.json +65 -0
- package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.md +37 -0
- package/.trajectories/completed/2026-01/traj_1k5if5snst2e.json +65 -0
- package/.trajectories/completed/2026-01/traj_1k5if5snst2e.md +37 -0
- package/.trajectories/completed/2026-01/traj_1rp3rges5811.json +49 -0
- package/.trajectories/completed/2026-01/traj_1rp3rges5811.md +31 -0
- package/.trajectories/completed/2026-01/traj_22bhyulruouw.json +113 -0
- package/.trajectories/completed/2026-01/traj_22bhyulruouw.md +57 -0
- package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.json +53 -0
- package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.md +32 -0
- package/.trajectories/completed/2026-01/traj_3t0440mjeunc.json +26 -0
- package/.trajectories/completed/2026-01/traj_3t0440mjeunc.md +6 -0
- package/.trajectories/completed/2026-01/traj_45x9494d9xnr.json +47 -0
- package/.trajectories/completed/2026-01/traj_45x9494d9xnr.md +32 -0
- package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.json +53 -0
- package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.md +32 -0
- package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.json +59 -0
- package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.md +33 -0
- package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.json +53 -0
- package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.md +32 -0
- package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.json +48 -0
- package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.md +24 -0
- package/.trajectories/completed/2026-01/traj_7ludwvz45veh.json +209 -0
- package/.trajectories/completed/2026-01/traj_7ludwvz45veh.md +97 -0
- package/.trajectories/completed/2026-01/traj_9921cuhel0pj.json +48 -0
- package/.trajectories/completed/2026-01/traj_9921cuhel0pj.md +24 -0
- package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.json +49 -0
- package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.md +23 -0
- package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.json +53 -0
- package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.md +32 -0
- package/.trajectories/completed/2026-01/traj_cxofprm2m2en.json +49 -0
- package/.trajectories/completed/2026-01/traj_cxofprm2m2en.md +31 -0
- package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.json +26 -0
- package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.md +6 -0
- package/.trajectories/completed/2026-01/traj_dfuvww9pege5.json +59 -0
- package/.trajectories/completed/2026-01/traj_dfuvww9pege5.md +37 -0
- package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.json +77 -0
- package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.md +42 -0
- package/.trajectories/completed/2026-01/traj_gjdre5voouod.json +53 -0
- package/.trajectories/completed/2026-01/traj_gjdre5voouod.md +32 -0
- package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.json +25 -0
- package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.md +15 -0
- package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.json +101 -0
- package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.md +44 -0
- package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.json +22 -0
- package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.md +5 -0
- package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.json +53 -0
- package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.md +32 -0
- package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.json +25 -0
- package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.md +15 -0
- package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.json +53 -0
- package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.md +32 -0
- package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.json +53 -0
- package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.md +32 -0
- package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.json +48 -0
- package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.md +24 -0
- package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.json +53 -0
- package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.md +32 -0
- package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.json +77 -0
- package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.md +42 -0
- package/.trajectories/completed/2026-01/traj_qft54mi7nfor.json +53 -0
- package/.trajectories/completed/2026-01/traj_qft54mi7nfor.md +32 -0
- package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.json +83 -0
- package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.md +47 -0
- package/.trajectories/completed/2026-01/traj_rd9toccj18a0.json +59 -0
- package/.trajectories/completed/2026-01/traj_rd9toccj18a0.md +37 -0
- package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.json +48 -0
- package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.md +16 -0
- package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.json +59 -0
- package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.md +37 -0
- package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.json +53 -0
- package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.md +32 -0
- package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.json +84 -0
- package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.md +109 -0
- package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.json +53 -0
- package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.md +32 -0
- package/.trajectories/completed/2026-01/traj_v87hypnongqx.json +71 -0
- package/.trajectories/completed/2026-01/traj_v87hypnongqx.md +42 -0
- package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.json +53 -0
- package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.md +32 -0
- package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.json +20 -0
- package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.md +6 -0
- package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.json +175 -0
- package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.md +82 -0
- package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.json +47 -0
- package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.md +32 -0
- package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.json +59 -0
- package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.md +37 -0
- package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.json +53 -0
- package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.md +32 -0
- package/.trajectories/index.json +314 -0
- package/ARCHITECTURE.md +1245 -0
- package/README.md +1 -1
- package/TESTING.md +278 -0
- package/deploy/init-db.sql +5 -0
- package/deploy/scripts/setup-fly-workspaces.sh +69 -0
- package/deploy/scripts/setup-railway.sh +75 -0
- package/deploy/workspace/entrypoint-browser.sh +118 -0
- package/deploy/workspace/entrypoint.sh +348 -0
- package/deploy/workspace/git-credential-relay +111 -0
- package/dist/bridge/spawner.d.ts +53 -0
- package/dist/bridge/spawner.js +203 -19
- package/dist/bridge/types.d.ts +12 -0
- package/dist/cli/index.js +618 -5
- package/dist/cloud/api/auth.d.ts +3 -2
- package/dist/cloud/api/auth.js +10 -98
- package/dist/cloud/api/billing.js +30 -9
- package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
- package/dist/cloud/api/cli-pty-runner.js +119 -0
- package/dist/cloud/api/codex-auth-helper.d.ts +15 -0
- package/dist/cloud/api/codex-auth-helper.js +100 -0
- package/dist/cloud/api/generic-webhooks.d.ts +8 -0
- package/dist/cloud/api/generic-webhooks.js +129 -0
- package/dist/cloud/api/git.d.ts +8 -0
- package/dist/cloud/api/git.js +152 -0
- package/dist/cloud/api/github-app.d.ts +11 -0
- package/dist/cloud/api/github-app.js +189 -0
- package/dist/cloud/api/middleware/planLimits.d.ts +7 -0
- package/dist/cloud/api/middleware/planLimits.js +39 -1
- package/dist/cloud/api/monitoring.d.ts +11 -0
- package/dist/cloud/api/monitoring.js +578 -0
- package/dist/cloud/api/nango-auth.d.ts +9 -0
- package/dist/cloud/api/nango-auth.js +377 -0
- package/dist/cloud/api/onboarding.d.ts +8 -1
- package/dist/cloud/api/onboarding.js +313 -119
- package/dist/cloud/api/policy.d.ts +8 -0
- package/dist/cloud/api/policy.js +229 -0
- package/dist/cloud/api/providers.js +114 -42
- package/dist/cloud/api/repos.d.ts +1 -0
- package/dist/cloud/api/repos.js +186 -0
- package/dist/cloud/api/test-helpers.d.ts +10 -0
- package/dist/cloud/api/test-helpers.js +575 -0
- package/dist/cloud/api/webhooks.d.ts +8 -0
- package/dist/cloud/api/webhooks.js +645 -0
- package/dist/cloud/api/workspaces.js +320 -12
- package/dist/cloud/billing/plans.js +32 -19
- package/dist/cloud/billing/types.d.ts +9 -3
- package/dist/cloud/config.d.ts +9 -2
- package/dist/cloud/config.js +13 -4
- package/dist/cloud/db/drizzle.d.ts +84 -1
- package/dist/cloud/db/drizzle.js +470 -0
- package/dist/cloud/db/index.d.ts +9 -4
- package/dist/cloud/db/index.js +11 -3
- package/dist/cloud/db/schema.d.ts +3283 -556
- package/dist/cloud/db/schema.js +314 -1
- package/dist/cloud/index.d.ts +1 -0
- package/dist/cloud/index.js +2 -0
- package/dist/cloud/provisioner/index.d.ts +56 -0
- package/dist/cloud/provisioner/index.js +676 -34
- package/dist/cloud/server.d.ts +1 -0
- package/dist/cloud/server.js +362 -13
- package/dist/cloud/services/auto-scaler.d.ts +152 -0
- package/dist/cloud/services/auto-scaler.js +439 -0
- package/dist/cloud/services/capacity-manager.d.ts +148 -0
- package/dist/cloud/services/capacity-manager.js +449 -0
- package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
- package/dist/cloud/services/ci-agent-spawner.js +373 -0
- package/dist/cloud/services/index.d.ts +12 -0
- package/dist/cloud/services/index.js +15 -0
- package/dist/cloud/services/mention-handler.d.ts +65 -0
- package/dist/cloud/services/mention-handler.js +405 -0
- package/dist/cloud/services/nango.d.ts +186 -0
- package/dist/cloud/services/nango.js +344 -0
- package/dist/cloud/services/persistence.d.ts +131 -0
- package/dist/cloud/services/persistence.js +200 -0
- package/dist/cloud/services/planLimits.d.ts +37 -0
- package/dist/cloud/services/planLimits.js +86 -5
- package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
- package/dist/cloud/services/scaling-orchestrator.js +502 -0
- package/dist/cloud/services/scaling-policy.d.ts +121 -0
- package/dist/cloud/services/scaling-policy.js +415 -0
- package/dist/cloud/vault/index.js +1 -1
- package/dist/cloud/webhooks/index.d.ts +24 -0
- package/dist/cloud/webhooks/index.js +29 -0
- package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
- package/dist/cloud/webhooks/parsers/github.js +234 -0
- package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
- package/dist/cloud/webhooks/parsers/index.js +30 -0
- package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/linear.js +258 -0
- package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/slack.js +214 -0
- package/dist/cloud/webhooks/responders/github.d.ts +8 -0
- package/dist/cloud/webhooks/responders/github.js +73 -0
- package/dist/cloud/webhooks/responders/index.d.ts +23 -0
- package/dist/cloud/webhooks/responders/index.js +30 -0
- package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
- package/dist/cloud/webhooks/responders/linear.js +149 -0
- package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
- package/dist/cloud/webhooks/responders/slack.js +178 -0
- package/dist/cloud/webhooks/router.d.ts +25 -0
- package/dist/cloud/webhooks/router.js +504 -0
- package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
- package/dist/cloud/webhooks/rules-engine.js +287 -0
- package/dist/cloud/webhooks/types.d.ts +186 -0
- package/dist/cloud/webhooks/types.js +8 -0
- package/dist/continuity/formatter.d.ts +51 -0
- package/dist/continuity/formatter.js +313 -0
- package/dist/continuity/handoff-store.d.ts +67 -0
- package/dist/continuity/handoff-store.js +472 -0
- package/dist/continuity/index.d.ts +45 -0
- package/dist/continuity/index.js +48 -0
- package/dist/continuity/ledger-store.d.ts +110 -0
- package/dist/continuity/ledger-store.js +500 -0
- package/dist/continuity/manager.d.ts +178 -0
- package/dist/continuity/manager.js +562 -0
- package/dist/continuity/parser.d.ts +76 -0
- package/dist/continuity/parser.js +579 -0
- package/dist/continuity/types.d.ts +180 -0
- package/dist/continuity/types.js +9 -0
- package/dist/daemon/agent-manager.d.ts +27 -0
- package/dist/daemon/agent-manager.js +107 -6
- package/dist/daemon/agent-registry.d.ts +32 -0
- package/dist/daemon/agent-registry.js +42 -2
- package/dist/daemon/api.d.ts +12 -0
- package/dist/daemon/api.js +131 -2
- package/dist/daemon/cli-auth.d.ts +67 -0
- package/dist/daemon/cli-auth.js +537 -0
- package/dist/daemon/cloud-sync.js +9 -7
- package/dist/daemon/orchestrator.js +30 -0
- package/dist/daemon/router.d.ts +5 -0
- package/dist/daemon/router.js +78 -26
- package/dist/daemon/server.d.ts +5 -0
- package/dist/daemon/server.js +9 -1
- package/dist/daemon/services/browser-testing.d.ts +88 -0
- package/dist/daemon/services/browser-testing.js +244 -0
- package/dist/daemon/services/container-spawner.d.ts +135 -0
- package/dist/daemon/services/container-spawner.js +313 -0
- package/dist/daemon/types.d.ts +5 -1
- package/dist/dashboard/out/404.html +1 -1
- package/dist/dashboard/out/_next/static/chunks/116-2502180def231162.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/699-3b1cd6618a45d259.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/724-2dae7627550ab88f.js +9 -0
- package/dist/dashboard/out/_next/static/chunks/766-1f2dd8cb7f766b0b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-3fdfa60e53f2810d.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/page-e6381e5a6e1fbcfd.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-3538dfe0ffe984b8.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/history/{page-b6edd4dde8d08194.js → page-abb9ab2d329f56e9.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/app/layout-c0d118c0f92d969c.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/login/page-c22d080201cbd9fb.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-67a3e98d9a43a6ed.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/page-77e9c65420a06cfb.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-b08ed1c34d14434a.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/providers/page-e88bc117ef7671c3.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/signup/page-68d34f50baa8ab6b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
- package/dist/dashboard/out/_next/static/chunks/{main-app-5d692157a8eb1fd9.js → main-app-6e8e8d3ef4e0192a.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/{main-c2f423b9c9f4591b.js → main-ed4e1fb6f29c34cf.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +1 -0
- package/dist/dashboard/out/_next/static/css/29852f26181969a0.css +1 -0
- package/dist/dashboard/out/_next/static/css/7c3ae9e8617d42a5.css +1 -0
- package/dist/dashboard/out/app/onboarding.html +1 -0
- package/dist/dashboard/out/app/onboarding.txt +7 -0
- package/dist/dashboard/out/app.html +1 -14
- package/dist/dashboard/out/app.txt +2 -2
- package/dist/dashboard/out/connect-repos.html +1 -0
- package/dist/dashboard/out/connect-repos.txt +7 -0
- package/dist/dashboard/out/history.html +1 -1
- package/dist/dashboard/out/history.txt +2 -2
- package/dist/dashboard/out/index.html +1 -1
- package/dist/dashboard/out/index.txt +2 -2
- package/dist/dashboard/out/login.html +6 -0
- package/dist/dashboard/out/login.txt +7 -0
- package/dist/dashboard/out/metrics.html +1 -1
- package/dist/dashboard/out/metrics.txt +2 -2
- package/dist/dashboard/out/pricing.html +3 -3
- package/dist/dashboard/out/pricing.txt +2 -2
- package/dist/dashboard/out/providers.html +1 -0
- package/dist/dashboard/out/providers.txt +7 -0
- package/dist/dashboard/out/signup.html +6 -0
- package/dist/dashboard/out/signup.txt +7 -0
- package/dist/dashboard-server/server.js +1308 -8
- package/dist/hooks/emitter.d.ts +40 -0
- package/dist/hooks/emitter.js +63 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/registry.d.ts +173 -0
- package/dist/hooks/registry.js +476 -0
- package/dist/hooks/trajectory-hooks.d.ts +52 -0
- package/dist/hooks/trajectory-hooks.js +183 -0
- package/dist/hooks/types.d.ts +141 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/memory/adapters/index.d.ts +8 -0
- package/dist/memory/adapters/index.js +8 -0
- package/dist/memory/adapters/inmemory.d.ts +59 -0
- package/dist/memory/adapters/inmemory.js +195 -0
- package/dist/memory/adapters/supermemory.d.ts +71 -0
- package/dist/memory/adapters/supermemory.js +338 -0
- package/dist/memory/factory.d.ts +48 -0
- package/dist/memory/factory.js +143 -0
- package/dist/memory/index.d.ts +32 -0
- package/dist/memory/index.js +32 -0
- package/dist/memory/memory-hooks.d.ts +60 -0
- package/dist/memory/memory-hooks.js +313 -0
- package/dist/memory/service.d.ts +49 -0
- package/dist/memory/service.js +146 -0
- package/dist/memory/types.d.ts +195 -0
- package/dist/memory/types.js +8 -0
- package/dist/policy/agent-policy.d.ts +225 -0
- package/dist/policy/agent-policy.js +665 -0
- package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
- package/dist/policy/cloud-policy-fetcher.js +64 -0
- package/dist/resiliency/crash-insights.d.ts +156 -0
- package/dist/resiliency/crash-insights.js +492 -0
- package/dist/resiliency/gossip-health.d.ts +137 -0
- package/dist/resiliency/gossip-health.js +241 -0
- package/dist/resiliency/index.d.ts +5 -0
- package/dist/resiliency/index.js +5 -0
- package/dist/resiliency/leader-watchdog.d.ts +109 -0
- package/dist/resiliency/leader-watchdog.js +189 -0
- package/dist/resiliency/memory-monitor.d.ts +172 -0
- package/dist/resiliency/memory-monitor.js +593 -0
- package/dist/resiliency/stateless-lead.d.ts +149 -0
- package/dist/resiliency/stateless-lead.js +308 -0
- package/dist/resiliency/supervisor.d.ts +38 -0
- package/dist/resiliency/supervisor.js +122 -0
- package/dist/shared/cli-auth-config.d.ts +91 -0
- package/dist/shared/cli-auth-config.js +264 -0
- package/dist/storage/adapter.d.ts +1 -1
- package/dist/trajectory/config.d.ts +84 -0
- package/dist/trajectory/config.js +163 -0
- package/dist/trajectory/index.d.ts +8 -0
- package/dist/trajectory/index.js +8 -0
- package/dist/trajectory/integration.d.ts +292 -0
- package/dist/trajectory/integration.js +834 -0
- package/dist/utils/logger.js +1 -1
- package/dist/utils/project-namespace.d.ts +24 -0
- package/dist/utils/project-namespace.js +84 -0
- package/dist/wrapper/parser.d.ts +10 -0
- package/dist/wrapper/parser.js +100 -33
- package/dist/wrapper/pty-wrapper.d.ts +197 -16
- package/dist/wrapper/pty-wrapper.js +943 -106
- package/dist/wrapper/shared.d.ts +165 -0
- package/dist/wrapper/shared.js +270 -0
- package/dist/wrapper/tmux-wrapper.d.ts +73 -11
- package/dist/wrapper/tmux-wrapper.js +541 -120
- package/package.json +16 -16
- package/scripts/postinstall.js +60 -0
- package/test-push.txt +1 -0
- package/bin/tmux +0 -0
- package/dist/bridge/config.d.ts.map +0 -1
- package/dist/bridge/config.js.map +0 -1
- package/dist/bridge/index.d.ts.map +0 -1
- package/dist/bridge/index.js.map +0 -1
- package/dist/bridge/multi-project-client.d.ts.map +0 -1
- package/dist/bridge/multi-project-client.js.map +0 -1
- package/dist/bridge/shadow-cli.d.ts.map +0 -1
- package/dist/bridge/shadow-cli.js.map +0 -1
- package/dist/bridge/shadow-config.d.ts.map +0 -1
- package/dist/bridge/shadow-config.js.map +0 -1
- package/dist/bridge/spawner.d.ts.map +0 -1
- package/dist/bridge/spawner.js.map +0 -1
- package/dist/bridge/teams-config.d.ts.map +0 -1
- package/dist/bridge/teams-config.js.map +0 -1
- package/dist/bridge/types.d.ts.map +0 -1
- package/dist/bridge/types.js.map +0 -1
- package/dist/bridge/utils.d.ts.map +0 -1
- package/dist/bridge/utils.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cloud/api/auth.d.ts.map +0 -1
- package/dist/cloud/api/auth.js.map +0 -1
- package/dist/cloud/api/billing.d.ts.map +0 -1
- package/dist/cloud/api/billing.js.map +0 -1
- package/dist/cloud/api/coordinators.d.ts.map +0 -1
- package/dist/cloud/api/coordinators.js.map +0 -1
- package/dist/cloud/api/daemons.d.ts.map +0 -1
- package/dist/cloud/api/daemons.js.map +0 -1
- package/dist/cloud/api/middleware/planLimits.d.ts.map +0 -1
- package/dist/cloud/api/middleware/planLimits.js.map +0 -1
- package/dist/cloud/api/onboarding.d.ts.map +0 -1
- package/dist/cloud/api/onboarding.js.map +0 -1
- package/dist/cloud/api/providers.d.ts.map +0 -1
- package/dist/cloud/api/providers.js.map +0 -1
- package/dist/cloud/api/repos.d.ts.map +0 -1
- package/dist/cloud/api/repos.js.map +0 -1
- package/dist/cloud/api/teams.d.ts.map +0 -1
- package/dist/cloud/api/teams.js.map +0 -1
- package/dist/cloud/api/usage.d.ts.map +0 -1
- package/dist/cloud/api/usage.js.map +0 -1
- package/dist/cloud/api/workspaces.d.ts.map +0 -1
- package/dist/cloud/api/workspaces.js.map +0 -1
- package/dist/cloud/billing/index.d.ts.map +0 -1
- package/dist/cloud/billing/index.js.map +0 -1
- package/dist/cloud/billing/plans.d.ts.map +0 -1
- package/dist/cloud/billing/plans.js.map +0 -1
- package/dist/cloud/billing/service.d.ts.map +0 -1
- package/dist/cloud/billing/service.js.map +0 -1
- package/dist/cloud/billing/types.d.ts.map +0 -1
- package/dist/cloud/billing/types.js.map +0 -1
- package/dist/cloud/config.d.ts.map +0 -1
- package/dist/cloud/config.js.map +0 -1
- package/dist/cloud/db/drizzle.d.ts.map +0 -1
- package/dist/cloud/db/drizzle.js.map +0 -1
- package/dist/cloud/db/index.d.ts.map +0 -1
- package/dist/cloud/db/index.js.map +0 -1
- package/dist/cloud/db/schema.d.ts.map +0 -1
- package/dist/cloud/db/schema.js.map +0 -1
- package/dist/cloud/index.d.ts.map +0 -1
- package/dist/cloud/index.js.map +0 -1
- package/dist/cloud/provisioner/index.d.ts.map +0 -1
- package/dist/cloud/provisioner/index.js.map +0 -1
- package/dist/cloud/server.d.ts.map +0 -1
- package/dist/cloud/server.js.map +0 -1
- package/dist/cloud/services/coordinator.d.ts.map +0 -1
- package/dist/cloud/services/coordinator.js.map +0 -1
- package/dist/cloud/services/planLimits.d.ts.map +0 -1
- package/dist/cloud/services/planLimits.js.map +0 -1
- package/dist/cloud/vault/index.d.ts.map +0 -1
- package/dist/cloud/vault/index.js.map +0 -1
- package/dist/daemon/agent-manager.d.ts.map +0 -1
- package/dist/daemon/agent-manager.js.map +0 -1
- package/dist/daemon/agent-registry.d.ts.map +0 -1
- package/dist/daemon/agent-registry.js.map +0 -1
- package/dist/daemon/api.d.ts.map +0 -1
- package/dist/daemon/api.js.map +0 -1
- package/dist/daemon/auth.d.ts.map +0 -1
- package/dist/daemon/auth.js.map +0 -1
- package/dist/daemon/cloud-sync.d.ts.map +0 -1
- package/dist/daemon/cloud-sync.js.map +0 -1
- package/dist/daemon/connection.d.ts.map +0 -1
- package/dist/daemon/connection.js.map +0 -1
- package/dist/daemon/index.d.ts.map +0 -1
- package/dist/daemon/index.js.map +0 -1
- package/dist/daemon/orchestrator.d.ts.map +0 -1
- package/dist/daemon/orchestrator.js.map +0 -1
- package/dist/daemon/registry.d.ts.map +0 -1
- package/dist/daemon/registry.js.map +0 -1
- package/dist/daemon/router.d.ts.map +0 -1
- package/dist/daemon/router.js.map +0 -1
- package/dist/daemon/server.d.ts.map +0 -1
- package/dist/daemon/server.js.map +0 -1
- package/dist/daemon/types.d.ts.map +0 -1
- package/dist/daemon/types.js.map +0 -1
- package/dist/daemon/workspace-manager.d.ts.map +0 -1
- package/dist/daemon/workspace-manager.js.map +0 -1
- package/dist/dashboard/out/_next/static/chunks/693-7b3301d8f6bc5014.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/713-f78477eb185f1f4d.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/766-e53e1cfe39b0b5b5.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/900-037c64bfd797fb2a.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/app/page-e3d9e1f4466b9bae.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-e68825a81db67ba1.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/page-cc108bf68c8a657f.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-d80e03a5297f95b6.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-a5acc2831d094776.js +0 -1
- package/dist/dashboard/out/_next/static/css/79b80143647a07d7.css +0 -1
- package/dist/dashboard/out/_next/static/css/8cf277370ad48cfe.css +0 -1
- package/dist/dashboard-server/metrics.d.ts.map +0 -1
- package/dist/dashboard-server/metrics.js.map +0 -1
- package/dist/dashboard-server/needs-attention.d.ts.map +0 -1
- package/dist/dashboard-server/needs-attention.js.map +0 -1
- package/dist/dashboard-server/server.d.ts.map +0 -1
- package/dist/dashboard-server/server.js.map +0 -1
- package/dist/dashboard-server/start.d.ts.map +0 -1
- package/dist/dashboard-server/start.js.map +0 -1
- package/dist/hooks/inbox-check/hook.d.ts.map +0 -1
- package/dist/hooks/inbox-check/hook.js.map +0 -1
- package/dist/hooks/inbox-check/index.d.ts.map +0 -1
- package/dist/hooks/inbox-check/index.js.map +0 -1
- package/dist/hooks/inbox-check/types.d.ts.map +0 -1
- package/dist/hooks/inbox-check/types.js.map +0 -1
- package/dist/hooks/inbox-check/utils.d.ts.map +0 -1
- package/dist/hooks/inbox-check/utils.js.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/types.d.ts.map +0 -1
- package/dist/hooks/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/protocol/framing.d.ts.map +0 -1
- package/dist/protocol/framing.js.map +0 -1
- package/dist/protocol/index.d.ts.map +0 -1
- package/dist/protocol/index.js.map +0 -1
- package/dist/protocol/types.d.ts.map +0 -1
- package/dist/protocol/types.js.map +0 -1
- package/dist/resiliency/context-persistence.d.ts.map +0 -1
- package/dist/resiliency/context-persistence.js.map +0 -1
- package/dist/resiliency/health-monitor.d.ts.map +0 -1
- package/dist/resiliency/health-monitor.js.map +0 -1
- package/dist/resiliency/index.d.ts.map +0 -1
- package/dist/resiliency/index.js.map +0 -1
- package/dist/resiliency/logger.d.ts.map +0 -1
- package/dist/resiliency/logger.js.map +0 -1
- package/dist/resiliency/metrics.d.ts.map +0 -1
- package/dist/resiliency/metrics.js.map +0 -1
- package/dist/resiliency/provider-context.d.ts.map +0 -1
- package/dist/resiliency/provider-context.js.map +0 -1
- package/dist/resiliency/supervisor.d.ts.map +0 -1
- package/dist/resiliency/supervisor.js.map +0 -1
- package/dist/state/agent-state.d.ts.map +0 -1
- package/dist/state/agent-state.js.map +0 -1
- package/dist/storage/adapter.d.ts.map +0 -1
- package/dist/storage/adapter.js.map +0 -1
- package/dist/storage/sqlite-adapter.d.ts.map +0 -1
- package/dist/storage/sqlite-adapter.js.map +0 -1
- package/dist/utils/agent-config.d.ts.map +0 -1
- package/dist/utils/agent-config.js.map +0 -1
- package/dist/utils/command-resolver.d.ts.map +0 -1
- package/dist/utils/command-resolver.js.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/name-generator.d.ts.map +0 -1
- package/dist/utils/name-generator.js.map +0 -1
- package/dist/utils/project-namespace.d.ts.map +0 -1
- package/dist/utils/project-namespace.js.map +0 -1
- package/dist/utils/tmux-resolver.d.ts.map +0 -1
- package/dist/utils/tmux-resolver.js.map +0 -1
- package/dist/utils/update-checker.d.ts.map +0 -1
- package/dist/utils/update-checker.js.map +0 -1
- package/dist/wrapper/client.d.ts.map +0 -1
- package/dist/wrapper/client.js.map +0 -1
- package/dist/wrapper/inbox.d.ts.map +0 -1
- package/dist/wrapper/inbox.js.map +0 -1
- package/dist/wrapper/index.d.ts.map +0 -1
- package/dist/wrapper/index.js.map +0 -1
- package/dist/wrapper/parser.d.ts.map +0 -1
- package/dist/wrapper/parser.js.map +0 -1
- package/dist/wrapper/pty-wrapper.d.ts.map +0 -1
- package/dist/wrapper/pty-wrapper.js.map +0 -1
- package/dist/wrapper/tmux-wrapper.d.ts.map +0 -1
- package/dist/wrapper/tmux-wrapper.js.map +0 -1
- package/docs/AGENTS.md +0 -513
- package/docs/ARCHITECTURE_DECISIONS.md +0 -175
- package/docs/CHANGELOG.md +0 -11
- package/docs/CLI-SIMPLIFICATION-COMPLETE.md +0 -48
- package/docs/CLOUD-ARCHITECTURE.md +0 -652
- package/docs/CLOUD-ONBOARDING-DESIGN.md +0 -1983
- package/docs/COMPETITIVE_ANALYSIS.md +0 -897
- package/docs/CONTRIBUTING.md +0 -151
- package/docs/DESIGN_BRIDGE_STAFFING.md +0 -878
- package/docs/DESIGN_V2.md +0 -1079
- package/docs/INTEGRATION-GUIDE.md +0 -926
- package/docs/MONETIZATION.md +0 -1679
- package/docs/PROPOSAL-trajectories.md +0 -1582
- package/docs/PROTOCOL.md +0 -325
- package/docs/SCALING_ANALYSIS.md +0 -280
- package/docs/TESTING_PRESENCE_FEATURES.md +0 -327
- package/docs/TMUX_IMPLEMENTATION_NOTES.md +0 -364
- package/docs/TMUX_IMPROVEMENTS.md +0 -968
- package/docs/agent-relay-snippet.md +0 -168
- package/docs/competitive-analysis-mcp-agent-mail.md +0 -389
- package/docs/dashboard-v2-plan.md +0 -179
- package/docs/guides/CLOUD.md +0 -236
- package/docs/guides/LOCAL.md +0 -535
- package/docs/guides/SELF-HOSTED.md +0 -494
- package/docs/proposals/shadow-as-subagent.md +0 -765
- package/docs/proposals/slack-bot-integration.md +0 -1457
- package/docs/removable-code-analysis.md +0 -24
- package/scripts/dev/PUBLIC_RELEASE_PLAN.md +0 -88
- package/scripts/dev/dev-team-setup.sh +0 -431
- package/scripts/e2e-test.sh +0 -119
- package/scripts/games/game-protocol.md +0 -79
- package/scripts/games/hearts-setup.sh +0 -264
- package/scripts/tictactoe-setup.sh +0 -181
- /package/dist/dashboard/out/_next/static/chunks/{117-b2cd8d6485aacf2b.js → 117-f7b8ab0809342e77.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{648-8f3f26864ce515e5.js → 648-5cc6e1921389a58a.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-0b990dbb71d72a98.js → page-53b8a69f76db17d0.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-bf46c09eb57e019c.js → fd9d1056-609918ca7b6280bb.js} +0 -0
- /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_buildManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_ssgManifest.js +0 -0
package/dist/hooks/types.d.ts
CHANGED
|
@@ -140,4 +140,145 @@ export interface HookConfig {
|
|
|
140
140
|
* Handler function signature for programmatic hooks
|
|
141
141
|
*/
|
|
142
142
|
export type HookHandler = (context: HookContext) => HookResult | Promise<HookResult>;
|
|
143
|
+
/**
|
|
144
|
+
* Extended context for session start hooks
|
|
145
|
+
*/
|
|
146
|
+
export interface SessionStartContext extends HookContext {
|
|
147
|
+
/** Task description if agent was started with a task */
|
|
148
|
+
task?: string;
|
|
149
|
+
/** Task ID if linked to external system */
|
|
150
|
+
taskId?: string;
|
|
151
|
+
/** Task source (e.g., 'beads', 'linear', 'github') */
|
|
152
|
+
taskSource?: string;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Extended context for session end hooks
|
|
156
|
+
*/
|
|
157
|
+
export interface SessionEndContext extends HookContext {
|
|
158
|
+
/** Exit code if available */
|
|
159
|
+
exitCode?: number;
|
|
160
|
+
/** Duration of the session in milliseconds */
|
|
161
|
+
duration: number;
|
|
162
|
+
/** Whether the session ended gracefully */
|
|
163
|
+
graceful: boolean;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Extended context for output hooks
|
|
167
|
+
*/
|
|
168
|
+
export interface OutputContext extends HookContext {
|
|
169
|
+
/** Cleaned output (ANSI codes stripped) */
|
|
170
|
+
content: string;
|
|
171
|
+
/** Raw output with ANSI codes */
|
|
172
|
+
rawContent: string;
|
|
173
|
+
/** Whether this is a complete line */
|
|
174
|
+
isComplete: boolean;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Extended context for message received hooks
|
|
178
|
+
*/
|
|
179
|
+
export interface MessageReceivedContext extends HookContext {
|
|
180
|
+
/** Sender agent name */
|
|
181
|
+
from: string;
|
|
182
|
+
/** Message body */
|
|
183
|
+
body: string;
|
|
184
|
+
/** Message ID */
|
|
185
|
+
messageId: string;
|
|
186
|
+
/** Thread ID if threaded */
|
|
187
|
+
thread?: string;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Extended context for message sent hooks
|
|
191
|
+
*/
|
|
192
|
+
export interface MessageSentContext extends HookContext {
|
|
193
|
+
/** Target agent name */
|
|
194
|
+
to: string;
|
|
195
|
+
/** Message body */
|
|
196
|
+
body: string;
|
|
197
|
+
/** Thread ID if threaded */
|
|
198
|
+
thread?: string;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Extended context for idle hooks
|
|
202
|
+
*/
|
|
203
|
+
export interface IdleContext extends HookContext {
|
|
204
|
+
/** Duration of inactivity in milliseconds */
|
|
205
|
+
idleDuration: number;
|
|
206
|
+
/** Number of times idle hook has fired this session */
|
|
207
|
+
idleCount: number;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Extended context for error hooks
|
|
211
|
+
*/
|
|
212
|
+
export interface ErrorContext extends HookContext {
|
|
213
|
+
/** The error that occurred */
|
|
214
|
+
error: Error;
|
|
215
|
+
/** Phase where error occurred (e.g., 'output', 'message', 'tool') */
|
|
216
|
+
phase?: string;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Lifecycle hook handler types
|
|
220
|
+
*/
|
|
221
|
+
export type OnSessionStartHook = (ctx: SessionStartContext) => Promise<HookResult | void> | HookResult | void;
|
|
222
|
+
export type OnSessionEndHook = (ctx: SessionEndContext) => Promise<HookResult | void> | HookResult | void;
|
|
223
|
+
export type OnOutputHook = (ctx: OutputContext) => Promise<HookResult | void> | HookResult | void;
|
|
224
|
+
export type OnMessageReceivedHook = (ctx: MessageReceivedContext) => Promise<HookResult | void> | HookResult | void;
|
|
225
|
+
export type OnMessageSentHook = (ctx: MessageSentContext) => Promise<HookResult | void> | HookResult | void;
|
|
226
|
+
export type OnIdleHook = (ctx: IdleContext) => Promise<HookResult | void> | HookResult | void;
|
|
227
|
+
export type OnErrorHook = (ctx: ErrorContext) => Promise<HookResult | void> | HookResult | void;
|
|
228
|
+
/**
|
|
229
|
+
* Lifecycle hook definitions for registration
|
|
230
|
+
*/
|
|
231
|
+
export interface LifecycleHooks {
|
|
232
|
+
onSessionStart?: OnSessionStartHook | OnSessionStartHook[];
|
|
233
|
+
onSessionEnd?: OnSessionEndHook | OnSessionEndHook[];
|
|
234
|
+
onOutput?: OnOutputHook | OnOutputHook[];
|
|
235
|
+
onMessageReceived?: OnMessageReceivedHook | OnMessageReceivedHook[];
|
|
236
|
+
onMessageSent?: OnMessageSentHook | OnMessageSentHook[];
|
|
237
|
+
onIdle?: OnIdleHook | OnIdleHook[];
|
|
238
|
+
onError?: OnErrorHook | OnErrorHook[];
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Lifecycle hook event names
|
|
242
|
+
*/
|
|
243
|
+
export type LifecycleHookEvent = 'sessionStart' | 'sessionEnd' | 'output' | 'messageReceived' | 'messageSent' | 'idle' | 'error';
|
|
244
|
+
/**
|
|
245
|
+
* Pattern handler for custom namespaces (e.g., @deploy:, @notify:)
|
|
246
|
+
*/
|
|
247
|
+
export type PatternHandler = (target: string, message: string, ctx: HookContext) => Promise<HookResult | void> | HookResult | void;
|
|
248
|
+
/**
|
|
249
|
+
* Memory configuration for hooks
|
|
250
|
+
*/
|
|
251
|
+
export interface HooksMemoryConfig {
|
|
252
|
+
/** Memory adapter type: 'inmemory', 'supermemory', etc. */
|
|
253
|
+
type?: string;
|
|
254
|
+
/** API key for external memory services */
|
|
255
|
+
apiKey?: string;
|
|
256
|
+
/** Custom API endpoint */
|
|
257
|
+
endpoint?: string;
|
|
258
|
+
/** Whether to inject memories on session start */
|
|
259
|
+
injectOnStart?: boolean;
|
|
260
|
+
/** Maximum memories to inject on start */
|
|
261
|
+
maxStartMemories?: number;
|
|
262
|
+
/** Whether to prompt for memory save on session end */
|
|
263
|
+
promptOnEnd?: boolean;
|
|
264
|
+
/** Whether to auto-save detected learnings (default: true) */
|
|
265
|
+
autoSave?: boolean;
|
|
266
|
+
/** Whether to track learnings for session-end summary (default: true) */
|
|
267
|
+
autoSaveOnEnd?: boolean;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Full hooks configuration
|
|
271
|
+
*/
|
|
272
|
+
export interface HooksConfig {
|
|
273
|
+
/** Lifecycle hooks */
|
|
274
|
+
hooks?: LifecycleHooks;
|
|
275
|
+
/** Pattern handlers by namespace */
|
|
276
|
+
patterns?: Record<string, PatternHandler | 'builtin'>;
|
|
277
|
+
/** Idle timeout in milliseconds (default: 30000) */
|
|
278
|
+
idleTimeout?: number;
|
|
279
|
+
/** Whether to enable trajectory tracking hooks */
|
|
280
|
+
trajectoryTracking?: boolean;
|
|
281
|
+
/** Memory system configuration */
|
|
282
|
+
memory?: HooksMemoryConfig | boolean;
|
|
283
|
+
}
|
|
143
284
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -6,5 +6,7 @@ export * from './protocol/index.js';
|
|
|
6
6
|
export * from './daemon/index.js';
|
|
7
7
|
export * from './wrapper/index.js';
|
|
8
8
|
export * from './utils/index.js';
|
|
9
|
+
export * from './hooks/index.js';
|
|
9
10
|
export { type StoredMessage, type MessageQuery, type StorageAdapter, type StorageConfig, } from './storage/adapter.js';
|
|
11
|
+
export { type MemoryAdapter, type MemoryEntry, type MemoryConfig, type MemoryService, type MemorySearchQuery, type AddMemoryOptions, type MemoryResult, createMemoryAdapter, createMemoryService, createMemoryHooks, getMemoryHooks, InMemoryAdapter, SupermemoryAdapter, } from './memory/index.js';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -6,4 +6,7 @@ export * from './protocol/index.js';
|
|
|
6
6
|
export * from './daemon/index.js';
|
|
7
7
|
export * from './wrapper/index.js';
|
|
8
8
|
export * from './utils/index.js';
|
|
9
|
+
export * from './hooks/index.js';
|
|
10
|
+
// Memory types and adapters for external consumers
|
|
11
|
+
export { createMemoryAdapter, createMemoryService, createMemoryHooks, getMemoryHooks, InMemoryAdapter, SupermemoryAdapter, } from './memory/index.js';
|
|
9
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Adapters
|
|
3
|
+
*
|
|
4
|
+
* Export all available memory adapter implementations.
|
|
5
|
+
*/
|
|
6
|
+
export { InMemoryAdapter, type InMemoryAdapterOptions } from './inmemory.js';
|
|
7
|
+
export { SupermemoryAdapter, type SupermemoryAdapterOptions } from './supermemory.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Memory Adapter
|
|
3
|
+
*
|
|
4
|
+
* A simple in-memory implementation of the MemoryAdapter interface.
|
|
5
|
+
* Useful for testing and development. Does not persist across restarts.
|
|
6
|
+
*
|
|
7
|
+
* For semantic search, this adapter uses simple keyword matching.
|
|
8
|
+
* For production use with semantic search, use SupermemoryAdapter or similar.
|
|
9
|
+
*/
|
|
10
|
+
import type { MemoryAdapter, MemoryEntry, MemorySearchQuery, AddMemoryOptions, MemoryResult } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Options for the InMemoryAdapter
|
|
13
|
+
*/
|
|
14
|
+
export interface InMemoryAdapterOptions {
|
|
15
|
+
/** Maximum number of memories to store (default: 1000) */
|
|
16
|
+
maxMemories?: number;
|
|
17
|
+
/** Default agent ID */
|
|
18
|
+
defaultAgentId?: string;
|
|
19
|
+
/** Default project ID */
|
|
20
|
+
defaultProjectId?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* In-memory storage adapter for memories
|
|
24
|
+
*/
|
|
25
|
+
export declare class InMemoryAdapter implements MemoryAdapter {
|
|
26
|
+
readonly type = "inmemory";
|
|
27
|
+
private memories;
|
|
28
|
+
private maxMemories;
|
|
29
|
+
private defaultAgentId?;
|
|
30
|
+
private defaultProjectId?;
|
|
31
|
+
constructor(options?: InMemoryAdapterOptions);
|
|
32
|
+
init(): Promise<void>;
|
|
33
|
+
add(content: string, options?: AddMemoryOptions): Promise<MemoryResult>;
|
|
34
|
+
search(query: MemorySearchQuery): Promise<MemoryEntry[]>;
|
|
35
|
+
get(id: string): Promise<MemoryEntry | null>;
|
|
36
|
+
delete(id: string): Promise<MemoryResult>;
|
|
37
|
+
update(id: string, content: string, options?: Partial<AddMemoryOptions>): Promise<MemoryResult>;
|
|
38
|
+
list(options?: {
|
|
39
|
+
limit?: number;
|
|
40
|
+
agentId?: string;
|
|
41
|
+
projectId?: string;
|
|
42
|
+
}): Promise<MemoryEntry[]>;
|
|
43
|
+
clear(options?: {
|
|
44
|
+
agentId?: string;
|
|
45
|
+
projectId?: string;
|
|
46
|
+
before?: number;
|
|
47
|
+
}): Promise<MemoryResult>;
|
|
48
|
+
stats(): Promise<{
|
|
49
|
+
totalCount: number;
|
|
50
|
+
byAgent?: Record<string, number>;
|
|
51
|
+
byProject?: Record<string, number>;
|
|
52
|
+
}>;
|
|
53
|
+
close(): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Remove oldest memories when over limit
|
|
56
|
+
*/
|
|
57
|
+
private pruneOldest;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=inmemory.d.ts.map
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Memory Adapter
|
|
3
|
+
*
|
|
4
|
+
* A simple in-memory implementation of the MemoryAdapter interface.
|
|
5
|
+
* Useful for testing and development. Does not persist across restarts.
|
|
6
|
+
*
|
|
7
|
+
* For semantic search, this adapter uses simple keyword matching.
|
|
8
|
+
* For production use with semantic search, use SupermemoryAdapter or similar.
|
|
9
|
+
*/
|
|
10
|
+
import { randomUUID } from 'node:crypto';
|
|
11
|
+
/**
|
|
12
|
+
* In-memory storage adapter for memories
|
|
13
|
+
*/
|
|
14
|
+
export class InMemoryAdapter {
|
|
15
|
+
type = 'inmemory';
|
|
16
|
+
memories = new Map();
|
|
17
|
+
maxMemories;
|
|
18
|
+
defaultAgentId;
|
|
19
|
+
defaultProjectId;
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
this.maxMemories = options.maxMemories ?? 1000;
|
|
22
|
+
this.defaultAgentId = options.defaultAgentId;
|
|
23
|
+
this.defaultProjectId = options.defaultProjectId;
|
|
24
|
+
}
|
|
25
|
+
async init() {
|
|
26
|
+
// No initialization needed for in-memory storage
|
|
27
|
+
}
|
|
28
|
+
async add(content, options) {
|
|
29
|
+
const id = randomUUID();
|
|
30
|
+
const now = Date.now();
|
|
31
|
+
const entry = {
|
|
32
|
+
id,
|
|
33
|
+
content,
|
|
34
|
+
createdAt: now,
|
|
35
|
+
lastAccessedAt: now,
|
|
36
|
+
tags: options?.tags,
|
|
37
|
+
source: options?.source ?? 'agent',
|
|
38
|
+
agentId: options?.agentId ?? this.defaultAgentId,
|
|
39
|
+
projectId: options?.projectId ?? this.defaultProjectId,
|
|
40
|
+
sessionId: options?.sessionId,
|
|
41
|
+
metadata: options?.metadata,
|
|
42
|
+
};
|
|
43
|
+
this.memories.set(id, entry);
|
|
44
|
+
// Prune if over limit
|
|
45
|
+
if (this.memories.size > this.maxMemories) {
|
|
46
|
+
this.pruneOldest();
|
|
47
|
+
}
|
|
48
|
+
return { success: true, id };
|
|
49
|
+
}
|
|
50
|
+
async search(query) {
|
|
51
|
+
const results = [];
|
|
52
|
+
const queryLower = query.query.toLowerCase();
|
|
53
|
+
const queryTerms = queryLower.split(/\s+/).filter(t => t.length > 2);
|
|
54
|
+
for (const entry of this.memories.values()) {
|
|
55
|
+
// Apply filters
|
|
56
|
+
if (query.agentId && entry.agentId !== query.agentId)
|
|
57
|
+
continue;
|
|
58
|
+
if (query.projectId && entry.projectId !== query.projectId)
|
|
59
|
+
continue;
|
|
60
|
+
if (query.since && entry.createdAt < query.since)
|
|
61
|
+
continue;
|
|
62
|
+
if (query.before && entry.createdAt > query.before)
|
|
63
|
+
continue;
|
|
64
|
+
if (query.tags && query.tags.length > 0) {
|
|
65
|
+
if (!entry.tags || !query.tags.some(t => entry.tags.includes(t))) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Simple keyword-based scoring
|
|
70
|
+
const contentLower = entry.content.toLowerCase();
|
|
71
|
+
let score = 0;
|
|
72
|
+
// Exact phrase match gets highest score
|
|
73
|
+
if (contentLower.includes(queryLower)) {
|
|
74
|
+
score += 0.5;
|
|
75
|
+
}
|
|
76
|
+
// Term frequency scoring
|
|
77
|
+
for (const term of queryTerms) {
|
|
78
|
+
const matches = (contentLower.match(new RegExp(term, 'gi')) || []).length;
|
|
79
|
+
score += matches * 0.1;
|
|
80
|
+
}
|
|
81
|
+
// Normalize score to 0-1 range
|
|
82
|
+
score = Math.min(1, score);
|
|
83
|
+
if (score > 0 && (!query.minScore || score >= query.minScore)) {
|
|
84
|
+
// Update last accessed time
|
|
85
|
+
entry.lastAccessedAt = Date.now();
|
|
86
|
+
results.push({ ...entry, score });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Sort by score descending
|
|
90
|
+
results.sort((a, b) => b.score - a.score);
|
|
91
|
+
// Apply limit
|
|
92
|
+
const limit = query.limit ?? 10;
|
|
93
|
+
return results.slice(0, limit);
|
|
94
|
+
}
|
|
95
|
+
async get(id) {
|
|
96
|
+
const entry = this.memories.get(id);
|
|
97
|
+
if (entry) {
|
|
98
|
+
entry.lastAccessedAt = Date.now();
|
|
99
|
+
return { ...entry };
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
async delete(id) {
|
|
104
|
+
const deleted = this.memories.delete(id);
|
|
105
|
+
return {
|
|
106
|
+
success: deleted,
|
|
107
|
+
id,
|
|
108
|
+
error: deleted ? undefined : 'Memory not found',
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
async update(id, content, options) {
|
|
112
|
+
const existing = this.memories.get(id);
|
|
113
|
+
if (!existing) {
|
|
114
|
+
return { success: false, error: 'Memory not found' };
|
|
115
|
+
}
|
|
116
|
+
const updated = {
|
|
117
|
+
...existing,
|
|
118
|
+
content,
|
|
119
|
+
lastAccessedAt: Date.now(),
|
|
120
|
+
...(options?.tags && { tags: options.tags }),
|
|
121
|
+
...(options?.metadata && { metadata: { ...existing.metadata, ...options.metadata } }),
|
|
122
|
+
};
|
|
123
|
+
this.memories.set(id, updated);
|
|
124
|
+
return { success: true, id };
|
|
125
|
+
}
|
|
126
|
+
async list(options) {
|
|
127
|
+
const results = [];
|
|
128
|
+
for (const entry of this.memories.values()) {
|
|
129
|
+
if (options?.agentId && entry.agentId !== options.agentId)
|
|
130
|
+
continue;
|
|
131
|
+
if (options?.projectId && entry.projectId !== options.projectId)
|
|
132
|
+
continue;
|
|
133
|
+
results.push({ ...entry });
|
|
134
|
+
}
|
|
135
|
+
// Sort by creation time descending
|
|
136
|
+
results.sort((a, b) => b.createdAt - a.createdAt);
|
|
137
|
+
const limit = options?.limit ?? 50;
|
|
138
|
+
return results.slice(0, limit);
|
|
139
|
+
}
|
|
140
|
+
async clear(options) {
|
|
141
|
+
let _count = 0;
|
|
142
|
+
const toDelete = [];
|
|
143
|
+
for (const [id, entry] of this.memories.entries()) {
|
|
144
|
+
let shouldDelete = true;
|
|
145
|
+
if (options?.agentId && entry.agentId !== options.agentId) {
|
|
146
|
+
shouldDelete = false;
|
|
147
|
+
}
|
|
148
|
+
if (options?.projectId && entry.projectId !== options.projectId) {
|
|
149
|
+
shouldDelete = false;
|
|
150
|
+
}
|
|
151
|
+
if (options?.before && entry.createdAt >= options.before) {
|
|
152
|
+
shouldDelete = false;
|
|
153
|
+
}
|
|
154
|
+
if (shouldDelete) {
|
|
155
|
+
toDelete.push(id);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
for (const id of toDelete) {
|
|
159
|
+
this.memories.delete(id);
|
|
160
|
+
_count++;
|
|
161
|
+
}
|
|
162
|
+
return { success: true };
|
|
163
|
+
}
|
|
164
|
+
async stats() {
|
|
165
|
+
const byAgent = {};
|
|
166
|
+
const byProject = {};
|
|
167
|
+
for (const entry of this.memories.values()) {
|
|
168
|
+
if (entry.agentId) {
|
|
169
|
+
byAgent[entry.agentId] = (byAgent[entry.agentId] ?? 0) + 1;
|
|
170
|
+
}
|
|
171
|
+
if (entry.projectId) {
|
|
172
|
+
byProject[entry.projectId] = (byProject[entry.projectId] ?? 0) + 1;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
totalCount: this.memories.size,
|
|
177
|
+
byAgent,
|
|
178
|
+
byProject,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
async close() {
|
|
182
|
+
this.memories.clear();
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Remove oldest memories when over limit
|
|
186
|
+
*/
|
|
187
|
+
pruneOldest() {
|
|
188
|
+
const sorted = Array.from(this.memories.entries()).sort(([, a], [, b]) => a.createdAt - b.createdAt);
|
|
189
|
+
const toRemove = sorted.slice(0, this.memories.size - this.maxMemories);
|
|
190
|
+
for (const [id] of toRemove) {
|
|
191
|
+
this.memories.delete(id);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=inmemory.js.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supermemory.ai Memory Adapter
|
|
3
|
+
*
|
|
4
|
+
* Integration with supermemory.ai for semantic memory storage and retrieval.
|
|
5
|
+
* Provides AI-optimized search with embedding-based similarity.
|
|
6
|
+
*
|
|
7
|
+
* @see https://supermemory.ai/docs
|
|
8
|
+
*/
|
|
9
|
+
import type { MemoryAdapter, MemoryEntry, MemorySearchQuery, AddMemoryOptions, MemoryResult } from '../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Options for the Supermemory adapter
|
|
12
|
+
*/
|
|
13
|
+
export interface SupermemoryAdapterOptions {
|
|
14
|
+
/** API key for supermemory.ai (required) */
|
|
15
|
+
apiKey: string;
|
|
16
|
+
/** API endpoint (default: https://api.supermemory.ai) */
|
|
17
|
+
endpoint?: string;
|
|
18
|
+
/** Container/namespace for memories (optional) */
|
|
19
|
+
container?: string;
|
|
20
|
+
/** Default agent ID */
|
|
21
|
+
defaultAgentId?: string;
|
|
22
|
+
/** Default project ID */
|
|
23
|
+
defaultProjectId?: string;
|
|
24
|
+
/** Request timeout in ms (default: 30000) */
|
|
25
|
+
timeout?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Supermemory.ai adapter for semantic memory storage
|
|
29
|
+
*/
|
|
30
|
+
export declare class SupermemoryAdapter implements MemoryAdapter {
|
|
31
|
+
readonly type = "supermemory";
|
|
32
|
+
private apiKey;
|
|
33
|
+
private endpoint;
|
|
34
|
+
private container?;
|
|
35
|
+
private defaultAgentId?;
|
|
36
|
+
private defaultProjectId?;
|
|
37
|
+
private timeout;
|
|
38
|
+
private initialized;
|
|
39
|
+
constructor(options: SupermemoryAdapterOptions);
|
|
40
|
+
init(): Promise<void>;
|
|
41
|
+
add(content: string, options?: AddMemoryOptions): Promise<MemoryResult>;
|
|
42
|
+
search(query: MemorySearchQuery): Promise<MemoryEntry[]>;
|
|
43
|
+
get(id: string): Promise<MemoryEntry | null>;
|
|
44
|
+
delete(id: string): Promise<MemoryResult>;
|
|
45
|
+
update(id: string, content: string, options?: Partial<AddMemoryOptions>): Promise<MemoryResult>;
|
|
46
|
+
list(options?: {
|
|
47
|
+
limit?: number;
|
|
48
|
+
agentId?: string;
|
|
49
|
+
projectId?: string;
|
|
50
|
+
}): Promise<MemoryEntry[]>;
|
|
51
|
+
clear(options?: {
|
|
52
|
+
agentId?: string;
|
|
53
|
+
projectId?: string;
|
|
54
|
+
before?: number;
|
|
55
|
+
}): Promise<MemoryResult>;
|
|
56
|
+
stats(): Promise<{
|
|
57
|
+
totalCount: number;
|
|
58
|
+
byAgent?: Record<string, number>;
|
|
59
|
+
byProject?: Record<string, number>;
|
|
60
|
+
}>;
|
|
61
|
+
close(): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Make a fetch request to the Supermemory API
|
|
64
|
+
*/
|
|
65
|
+
private fetch;
|
|
66
|
+
/**
|
|
67
|
+
* Convert a Supermemory document to a MemoryEntry
|
|
68
|
+
*/
|
|
69
|
+
private documentToMemoryEntry;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=supermemory.d.ts.map
|