agent-relay 1.0.22 → 1.2.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.
- package/README.md +1 -1
- package/dist/bridge/shadow-cli.d.ts +17 -0
- package/dist/bridge/shadow-cli.d.ts.map +1 -0
- package/dist/bridge/shadow-cli.js +75 -0
- package/dist/bridge/shadow-cli.js.map +1 -0
- package/dist/bridge/shadow-config.d.ts +87 -0
- package/dist/bridge/shadow-config.d.ts.map +1 -0
- package/dist/bridge/shadow-config.js +134 -0
- package/dist/bridge/shadow-config.js.map +1 -0
- package/dist/bridge/spawner.d.ts +68 -1
- package/dist/bridge/spawner.d.ts.map +1 -1
- package/dist/bridge/spawner.js +360 -16
- package/dist/bridge/spawner.js.map +1 -1
- package/dist/bridge/types.d.ts +67 -0
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/cli/index.js +1196 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/cloud/api/auth.d.ts +20 -0
- package/dist/cloud/api/auth.d.ts.map +1 -0
- package/dist/cloud/api/auth.js +128 -0
- package/dist/cloud/api/auth.js.map +1 -0
- package/dist/cloud/api/billing.d.ts +17 -0
- package/dist/cloud/api/billing.d.ts.map +1 -0
- package/dist/cloud/api/billing.js +353 -0
- package/dist/cloud/api/billing.js.map +1 -0
- package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
- package/dist/cloud/api/cli-pty-runner.d.ts.map +1 -0
- package/dist/cloud/api/cli-pty-runner.js +119 -0
- package/dist/cloud/api/cli-pty-runner.js.map +1 -0
- package/dist/cloud/api/coordinators.d.ts +8 -0
- package/dist/cloud/api/coordinators.d.ts.map +1 -0
- package/dist/cloud/api/coordinators.js +347 -0
- package/dist/cloud/api/coordinators.js.map +1 -0
- package/dist/cloud/api/daemons.d.ts +12 -0
- package/dist/cloud/api/daemons.d.ts.map +1 -0
- package/dist/cloud/api/daemons.js +320 -0
- package/dist/cloud/api/daemons.js.map +1 -0
- package/dist/cloud/api/generic-webhooks.d.ts +8 -0
- package/dist/cloud/api/generic-webhooks.d.ts.map +1 -0
- package/dist/cloud/api/generic-webhooks.js +129 -0
- package/dist/cloud/api/generic-webhooks.js.map +1 -0
- package/dist/cloud/api/git.d.ts +8 -0
- package/dist/cloud/api/git.d.ts.map +1 -0
- package/dist/cloud/api/git.js +131 -0
- package/dist/cloud/api/git.js.map +1 -0
- package/dist/cloud/api/github-app.d.ts +11 -0
- package/dist/cloud/api/github-app.d.ts.map +1 -0
- package/dist/cloud/api/github-app.js +189 -0
- package/dist/cloud/api/github-app.js.map +1 -0
- package/dist/cloud/api/middleware/planLimits.d.ts +43 -0
- package/dist/cloud/api/middleware/planLimits.d.ts.map +1 -0
- package/dist/cloud/api/middleware/planLimits.js +202 -0
- package/dist/cloud/api/middleware/planLimits.js.map +1 -0
- package/dist/cloud/api/monitoring.d.ts +11 -0
- package/dist/cloud/api/monitoring.d.ts.map +1 -0
- package/dist/cloud/api/monitoring.js +578 -0
- package/dist/cloud/api/monitoring.js.map +1 -0
- package/dist/cloud/api/nango-auth.d.ts +9 -0
- package/dist/cloud/api/nango-auth.d.ts.map +1 -0
- package/dist/cloud/api/nango-auth.js +377 -0
- package/dist/cloud/api/nango-auth.js.map +1 -0
- package/dist/cloud/api/onboarding.d.ts +15 -0
- package/dist/cloud/api/onboarding.d.ts.map +1 -0
- package/dist/cloud/api/onboarding.js +588 -0
- package/dist/cloud/api/onboarding.js.map +1 -0
- package/dist/cloud/api/policy.d.ts +8 -0
- package/dist/cloud/api/policy.d.ts.map +1 -0
- package/dist/cloud/api/policy.js +229 -0
- package/dist/cloud/api/policy.js.map +1 -0
- package/dist/cloud/api/providers.d.ts +7 -0
- package/dist/cloud/api/providers.d.ts.map +1 -0
- package/dist/cloud/api/providers.js +507 -0
- package/dist/cloud/api/providers.js.map +1 -0
- package/dist/cloud/api/repos.d.ts +7 -0
- package/dist/cloud/api/repos.d.ts.map +1 -0
- package/dist/cloud/api/repos.js +314 -0
- package/dist/cloud/api/repos.js.map +1 -0
- package/dist/cloud/api/teams.d.ts +7 -0
- package/dist/cloud/api/teams.d.ts.map +1 -0
- package/dist/cloud/api/teams.js +279 -0
- package/dist/cloud/api/teams.js.map +1 -0
- package/dist/cloud/api/test-helpers.d.ts +10 -0
- package/dist/cloud/api/test-helpers.d.ts.map +1 -0
- package/dist/cloud/api/test-helpers.js +575 -0
- package/dist/cloud/api/test-helpers.js.map +1 -0
- package/dist/cloud/api/usage.d.ts +7 -0
- package/dist/cloud/api/usage.d.ts.map +1 -0
- package/dist/cloud/api/usage.js +98 -0
- package/dist/cloud/api/usage.js.map +1 -0
- package/dist/cloud/api/webhooks.d.ts +7 -0
- package/dist/cloud/api/webhooks.d.ts.map +1 -0
- package/dist/cloud/api/webhooks.js +496 -0
- package/dist/cloud/api/webhooks.js.map +1 -0
- package/dist/cloud/api/workspaces.d.ts +7 -0
- package/dist/cloud/api/workspaces.d.ts.map +1 -0
- package/dist/cloud/api/workspaces.js +727 -0
- package/dist/cloud/api/workspaces.js.map +1 -0
- package/dist/cloud/billing/index.d.ts +9 -0
- package/dist/cloud/billing/index.d.ts.map +1 -0
- package/dist/cloud/billing/index.js +9 -0
- package/dist/cloud/billing/index.js.map +1 -0
- package/dist/cloud/billing/plans.d.ts +39 -0
- package/dist/cloud/billing/plans.d.ts.map +1 -0
- package/dist/cloud/billing/plans.js +245 -0
- package/dist/cloud/billing/plans.js.map +1 -0
- package/dist/cloud/billing/service.d.ts +80 -0
- package/dist/cloud/billing/service.d.ts.map +1 -0
- package/dist/cloud/billing/service.js +388 -0
- package/dist/cloud/billing/service.js.map +1 -0
- package/dist/cloud/billing/types.d.ts +141 -0
- package/dist/cloud/billing/types.d.ts.map +1 -0
- package/dist/cloud/billing/types.js +7 -0
- package/dist/cloud/billing/types.js.map +1 -0
- package/dist/cloud/config.d.ts +66 -0
- package/dist/cloud/config.d.ts.map +1 -0
- package/dist/cloud/config.js +92 -0
- package/dist/cloud/config.js.map +1 -0
- package/dist/cloud/db/drizzle.d.ts +215 -0
- package/dist/cloud/db/drizzle.d.ts.map +1 -0
- package/dist/cloud/db/drizzle.js +1083 -0
- package/dist/cloud/db/drizzle.js.map +1 -0
- package/dist/cloud/db/index.d.ts +35 -0
- package/dist/cloud/db/index.d.ts.map +1 -0
- package/dist/cloud/db/index.js +52 -0
- package/dist/cloud/db/index.js.map +1 -0
- package/dist/cloud/db/schema.d.ts +4519 -0
- package/dist/cloud/db/schema.d.ts.map +1 -0
- package/dist/cloud/db/schema.js +547 -0
- package/dist/cloud/db/schema.js.map +1 -0
- package/dist/cloud/index.d.ts +12 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +39 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/provisioner/index.d.ts +75 -0
- package/dist/cloud/provisioner/index.d.ts.map +1 -0
- package/dist/cloud/provisioner/index.js +977 -0
- package/dist/cloud/provisioner/index.js.map +1 -0
- package/dist/cloud/server.d.ts +17 -0
- package/dist/cloud/server.d.ts.map +1 -0
- package/dist/cloud/server.js +534 -0
- package/dist/cloud/server.js.map +1 -0
- package/dist/cloud/services/auto-scaler.d.ts +152 -0
- package/dist/cloud/services/auto-scaler.d.ts.map +1 -0
- package/dist/cloud/services/auto-scaler.js +439 -0
- package/dist/cloud/services/auto-scaler.js.map +1 -0
- package/dist/cloud/services/capacity-manager.d.ts +148 -0
- package/dist/cloud/services/capacity-manager.d.ts.map +1 -0
- package/dist/cloud/services/capacity-manager.js +449 -0
- package/dist/cloud/services/capacity-manager.js.map +1 -0
- package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
- package/dist/cloud/services/ci-agent-spawner.d.ts.map +1 -0
- package/dist/cloud/services/ci-agent-spawner.js +373 -0
- package/dist/cloud/services/ci-agent-spawner.js.map +1 -0
- package/dist/cloud/services/coordinator.d.ts +62 -0
- package/dist/cloud/services/coordinator.d.ts.map +1 -0
- package/dist/cloud/services/coordinator.js +389 -0
- package/dist/cloud/services/coordinator.js.map +1 -0
- package/dist/cloud/services/index.d.ts +12 -0
- package/dist/cloud/services/index.d.ts.map +1 -0
- package/dist/cloud/services/index.js +15 -0
- package/dist/cloud/services/index.js.map +1 -0
- package/dist/cloud/services/mention-handler.d.ts +65 -0
- package/dist/cloud/services/mention-handler.d.ts.map +1 -0
- package/dist/cloud/services/mention-handler.js +405 -0
- package/dist/cloud/services/mention-handler.js.map +1 -0
- package/dist/cloud/services/nango.d.ts +126 -0
- package/dist/cloud/services/nango.d.ts.map +1 -0
- package/dist/cloud/services/nango.js +191 -0
- package/dist/cloud/services/nango.js.map +1 -0
- package/dist/cloud/services/persistence.d.ts +131 -0
- package/dist/cloud/services/persistence.d.ts.map +1 -0
- package/dist/cloud/services/persistence.js +200 -0
- package/dist/cloud/services/persistence.js.map +1 -0
- package/dist/cloud/services/planLimits.d.ts +125 -0
- package/dist/cloud/services/planLimits.d.ts.map +1 -0
- package/dist/cloud/services/planLimits.js +282 -0
- package/dist/cloud/services/planLimits.js.map +1 -0
- package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
- package/dist/cloud/services/scaling-orchestrator.d.ts.map +1 -0
- package/dist/cloud/services/scaling-orchestrator.js +502 -0
- package/dist/cloud/services/scaling-orchestrator.js.map +1 -0
- package/dist/cloud/services/scaling-policy.d.ts +121 -0
- package/dist/cloud/services/scaling-policy.d.ts.map +1 -0
- package/dist/cloud/services/scaling-policy.js +415 -0
- package/dist/cloud/services/scaling-policy.js.map +1 -0
- package/dist/cloud/vault/index.d.ts +76 -0
- package/dist/cloud/vault/index.d.ts.map +1 -0
- package/dist/cloud/vault/index.js +219 -0
- package/dist/cloud/vault/index.js.map +1 -0
- package/dist/cloud/webhooks/index.d.ts +24 -0
- package/dist/cloud/webhooks/index.d.ts.map +1 -0
- package/dist/cloud/webhooks/index.js +29 -0
- package/dist/cloud/webhooks/index.js.map +1 -0
- package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
- package/dist/cloud/webhooks/parsers/github.d.ts.map +1 -0
- package/dist/cloud/webhooks/parsers/github.js +234 -0
- package/dist/cloud/webhooks/parsers/github.js.map +1 -0
- package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
- package/dist/cloud/webhooks/parsers/index.d.ts.map +1 -0
- package/dist/cloud/webhooks/parsers/index.js +30 -0
- package/dist/cloud/webhooks/parsers/index.js.map +1 -0
- package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/linear.d.ts.map +1 -0
- package/dist/cloud/webhooks/parsers/linear.js +258 -0
- package/dist/cloud/webhooks/parsers/linear.js.map +1 -0
- package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/slack.d.ts.map +1 -0
- package/dist/cloud/webhooks/parsers/slack.js +214 -0
- package/dist/cloud/webhooks/parsers/slack.js.map +1 -0
- package/dist/cloud/webhooks/responders/github.d.ts +8 -0
- package/dist/cloud/webhooks/responders/github.d.ts.map +1 -0
- package/dist/cloud/webhooks/responders/github.js +73 -0
- package/dist/cloud/webhooks/responders/github.js.map +1 -0
- package/dist/cloud/webhooks/responders/index.d.ts +23 -0
- package/dist/cloud/webhooks/responders/index.d.ts.map +1 -0
- package/dist/cloud/webhooks/responders/index.js +30 -0
- package/dist/cloud/webhooks/responders/index.js.map +1 -0
- package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
- package/dist/cloud/webhooks/responders/linear.d.ts.map +1 -0
- package/dist/cloud/webhooks/responders/linear.js +149 -0
- package/dist/cloud/webhooks/responders/linear.js.map +1 -0
- package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
- package/dist/cloud/webhooks/responders/slack.d.ts.map +1 -0
- package/dist/cloud/webhooks/responders/slack.js +178 -0
- package/dist/cloud/webhooks/responders/slack.js.map +1 -0
- package/dist/cloud/webhooks/router.d.ts +25 -0
- package/dist/cloud/webhooks/router.d.ts.map +1 -0
- package/dist/cloud/webhooks/router.js +504 -0
- package/dist/cloud/webhooks/router.js.map +1 -0
- package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
- package/dist/cloud/webhooks/rules-engine.d.ts.map +1 -0
- package/dist/cloud/webhooks/rules-engine.js +287 -0
- package/dist/cloud/webhooks/rules-engine.js.map +1 -0
- package/dist/cloud/webhooks/types.d.ts +186 -0
- package/dist/cloud/webhooks/types.d.ts.map +1 -0
- package/dist/cloud/webhooks/types.js +8 -0
- package/dist/cloud/webhooks/types.js.map +1 -0
- package/dist/continuity/formatter.d.ts +51 -0
- package/dist/continuity/formatter.d.ts.map +1 -0
- package/dist/continuity/formatter.js +313 -0
- package/dist/continuity/formatter.js.map +1 -0
- package/dist/continuity/handoff-store.d.ts +67 -0
- package/dist/continuity/handoff-store.d.ts.map +1 -0
- package/dist/continuity/handoff-store.js +472 -0
- package/dist/continuity/handoff-store.js.map +1 -0
- package/dist/continuity/index.d.ts +45 -0
- package/dist/continuity/index.d.ts.map +1 -0
- package/dist/continuity/index.js +48 -0
- package/dist/continuity/index.js.map +1 -0
- package/dist/continuity/ledger-store.d.ts +110 -0
- package/dist/continuity/ledger-store.d.ts.map +1 -0
- package/dist/continuity/ledger-store.js +500 -0
- package/dist/continuity/ledger-store.js.map +1 -0
- package/dist/continuity/manager.d.ts +178 -0
- package/dist/continuity/manager.d.ts.map +1 -0
- package/dist/continuity/manager.js +562 -0
- package/dist/continuity/manager.js.map +1 -0
- package/dist/continuity/parser.d.ts +76 -0
- package/dist/continuity/parser.d.ts.map +1 -0
- package/dist/continuity/parser.js +579 -0
- package/dist/continuity/parser.js.map +1 -0
- package/dist/continuity/types.d.ts +180 -0
- package/dist/continuity/types.d.ts.map +1 -0
- package/dist/continuity/types.js +9 -0
- package/dist/continuity/types.js.map +1 -0
- package/dist/daemon/agent-manager.d.ts +114 -0
- package/dist/daemon/agent-manager.d.ts.map +1 -0
- package/dist/daemon/agent-manager.js +513 -0
- package/dist/daemon/agent-manager.js.map +1 -0
- package/dist/daemon/agent-registry.d.ts +34 -0
- package/dist/daemon/agent-registry.d.ts.map +1 -1
- package/dist/daemon/agent-registry.js +45 -2
- package/dist/daemon/agent-registry.js.map +1 -1
- package/dist/daemon/api.d.ts +81 -0
- package/dist/daemon/api.d.ts.map +1 -0
- package/dist/daemon/api.js +554 -0
- package/dist/daemon/api.js.map +1 -0
- package/dist/daemon/cli-auth.d.ts +67 -0
- package/dist/daemon/cli-auth.d.ts.map +1 -0
- package/dist/daemon/cli-auth.js +537 -0
- package/dist/daemon/cli-auth.js.map +1 -0
- package/dist/daemon/cloud-sync.d.ts +101 -0
- package/dist/daemon/cloud-sync.d.ts.map +1 -0
- package/dist/daemon/cloud-sync.js +263 -0
- package/dist/daemon/cloud-sync.js.map +1 -0
- package/dist/daemon/index.d.ts +4 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +6 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/orchestrator.d.ts +155 -0
- package/dist/daemon/orchestrator.d.ts.map +1 -0
- package/dist/daemon/orchestrator.js +766 -0
- package/dist/daemon/orchestrator.js.map +1 -0
- package/dist/daemon/router.d.ts +29 -0
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js +143 -21
- package/dist/daemon/router.js.map +1 -1
- package/dist/daemon/server.d.ts +42 -0
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +199 -16
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/services/browser-testing.d.ts +88 -0
- package/dist/daemon/services/browser-testing.d.ts.map +1 -0
- package/dist/daemon/services/browser-testing.js +244 -0
- package/dist/daemon/services/browser-testing.js.map +1 -0
- package/dist/daemon/services/container-spawner.d.ts +135 -0
- package/dist/daemon/services/container-spawner.d.ts.map +1 -0
- package/dist/daemon/services/container-spawner.js +313 -0
- package/dist/daemon/services/container-spawner.js.map +1 -0
- package/dist/daemon/types.d.ts +131 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +6 -0
- package/dist/daemon/types.js.map +1 -0
- package/dist/daemon/workspace-manager.d.ts +75 -0
- package/dist/daemon/workspace-manager.d.ts.map +1 -0
- package/dist/daemon/workspace-manager.js +289 -0
- package/dist/daemon/workspace-manager.js.map +1 -0
- 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/480-2d4111711d4e473c.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/724-73c1ee5f60abe860.js +9 -0
- package/dist/dashboard/out/_next/static/chunks/766-c3a14283c88d815b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/page-7120be68bea622f3.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-dc2e3a1a22478efc.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/history/page-56a8b4616a90dc43.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/login/page-3eac37ea6f5dd153.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-1081dd190a331a91.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/page-daf87e86f783f980.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-4d72d5a5d8a9b618.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/providers/page-b68a681526eb145e.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/signup/page-fee4ed1709070bcd.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
- package/dist/dashboard/out/_next/static/chunks/{main-e0a1f53fe0617a63.js → main-97850e03d723ea8c.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/main-app-5d692157a8eb1fd9.js +1 -0
- 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/411ce23ffeae9f76.css +1 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-128.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-256.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-32.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-512.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-64.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo.svg +45 -0
- package/dist/dashboard/out/alt-logos/logo.svg +38 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-128.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-256.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-32.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-512.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-64.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo.svg +38 -0
- package/dist/dashboard/out/app.html +1 -0
- package/dist/dashboard/out/app.txt +7 -0
- 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 -0
- package/dist/dashboard/out/history.txt +7 -0
- 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 -515
- package/dist/dashboard/out/metrics.txt +2 -2
- package/dist/dashboard/out/pricing.html +13 -0
- package/dist/dashboard/out/pricing.txt +7 -0
- 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/metrics.d.ts.map +1 -1
- package/dist/dashboard-server/metrics.js +3 -2
- package/dist/dashboard-server/metrics.js.map +1 -1
- package/dist/dashboard-server/server.d.ts.map +1 -1
- package/dist/dashboard-server/server.js +2653 -130
- package/dist/dashboard-server/server.js.map +1 -1
- package/dist/hooks/emitter.d.ts +40 -0
- package/dist/hooks/emitter.d.ts.map +1 -0
- package/dist/hooks/emitter.js +63 -0
- package/dist/hooks/emitter.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/registry.d.ts +173 -0
- package/dist/hooks/registry.d.ts.map +1 -0
- package/dist/hooks/registry.js +476 -0
- package/dist/hooks/registry.js.map +1 -0
- package/dist/hooks/trajectory-hooks.d.ts +52 -0
- package/dist/hooks/trajectory-hooks.d.ts.map +1 -0
- package/dist/hooks/trajectory-hooks.js +183 -0
- package/dist/hooks/trajectory-hooks.js.map +1 -0
- package/dist/hooks/types.d.ts +141 -0
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/adapters/index.d.ts +8 -0
- package/dist/memory/adapters/index.d.ts.map +1 -0
- package/dist/memory/adapters/index.js +8 -0
- package/dist/memory/adapters/index.js.map +1 -0
- package/dist/memory/adapters/inmemory.d.ts +59 -0
- package/dist/memory/adapters/inmemory.d.ts.map +1 -0
- package/dist/memory/adapters/inmemory.js +195 -0
- package/dist/memory/adapters/inmemory.js.map +1 -0
- package/dist/memory/adapters/supermemory.d.ts +71 -0
- package/dist/memory/adapters/supermemory.d.ts.map +1 -0
- package/dist/memory/adapters/supermemory.js +338 -0
- package/dist/memory/adapters/supermemory.js.map +1 -0
- package/dist/memory/factory.d.ts +48 -0
- package/dist/memory/factory.d.ts.map +1 -0
- package/dist/memory/factory.js +143 -0
- package/dist/memory/factory.js.map +1 -0
- package/dist/memory/index.d.ts +32 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +32 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-hooks.d.ts +60 -0
- package/dist/memory/memory-hooks.d.ts.map +1 -0
- package/dist/memory/memory-hooks.js +313 -0
- package/dist/memory/memory-hooks.js.map +1 -0
- package/dist/memory/service.d.ts +49 -0
- package/dist/memory/service.d.ts.map +1 -0
- package/dist/memory/service.js +146 -0
- package/dist/memory/service.js.map +1 -0
- package/dist/memory/types.d.ts +195 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +8 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/policy/agent-policy.d.ts +225 -0
- package/dist/policy/agent-policy.d.ts.map +1 -0
- package/dist/policy/agent-policy.js +665 -0
- package/dist/policy/agent-policy.js.map +1 -0
- package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
- package/dist/policy/cloud-policy-fetcher.d.ts.map +1 -0
- package/dist/policy/cloud-policy-fetcher.js +64 -0
- package/dist/policy/cloud-policy-fetcher.js.map +1 -0
- package/dist/protocol/types.d.ts +10 -1
- package/dist/protocol/types.d.ts.map +1 -1
- package/dist/resiliency/context-persistence.d.ts +140 -0
- package/dist/resiliency/context-persistence.d.ts.map +1 -0
- package/dist/resiliency/context-persistence.js +397 -0
- package/dist/resiliency/context-persistence.js.map +1 -0
- package/dist/resiliency/crash-insights.d.ts +156 -0
- package/dist/resiliency/crash-insights.d.ts.map +1 -0
- package/dist/resiliency/crash-insights.js +492 -0
- package/dist/resiliency/crash-insights.js.map +1 -0
- package/dist/resiliency/gossip-health.d.ts +137 -0
- package/dist/resiliency/gossip-health.d.ts.map +1 -0
- package/dist/resiliency/gossip-health.js +241 -0
- package/dist/resiliency/gossip-health.js.map +1 -0
- package/dist/resiliency/health-monitor.d.ts +97 -0
- package/dist/resiliency/health-monitor.d.ts.map +1 -0
- package/dist/resiliency/health-monitor.js +291 -0
- package/dist/resiliency/health-monitor.js.map +1 -0
- package/dist/resiliency/index.d.ts +68 -0
- package/dist/resiliency/index.d.ts.map +1 -0
- package/dist/resiliency/index.js +68 -0
- package/dist/resiliency/index.js.map +1 -0
- package/dist/resiliency/leader-watchdog.d.ts +109 -0
- package/dist/resiliency/leader-watchdog.d.ts.map +1 -0
- package/dist/resiliency/leader-watchdog.js +189 -0
- package/dist/resiliency/leader-watchdog.js.map +1 -0
- package/dist/resiliency/logger.d.ts +114 -0
- package/dist/resiliency/logger.d.ts.map +1 -0
- package/dist/resiliency/logger.js +250 -0
- package/dist/resiliency/logger.js.map +1 -0
- package/dist/resiliency/memory-monitor.d.ts +172 -0
- package/dist/resiliency/memory-monitor.d.ts.map +1 -0
- package/dist/resiliency/memory-monitor.js +593 -0
- package/dist/resiliency/memory-monitor.js.map +1 -0
- package/dist/resiliency/metrics.d.ts +115 -0
- package/dist/resiliency/metrics.d.ts.map +1 -0
- package/dist/resiliency/metrics.js +239 -0
- package/dist/resiliency/metrics.js.map +1 -0
- package/dist/resiliency/provider-context.d.ts +100 -0
- package/dist/resiliency/provider-context.d.ts.map +1 -0
- package/dist/resiliency/provider-context.js +360 -0
- package/dist/resiliency/provider-context.js.map +1 -0
- package/dist/resiliency/stateless-lead.d.ts +149 -0
- package/dist/resiliency/stateless-lead.d.ts.map +1 -0
- package/dist/resiliency/stateless-lead.js +308 -0
- package/dist/resiliency/stateless-lead.js.map +1 -0
- package/dist/resiliency/supervisor.d.ts +147 -0
- package/dist/resiliency/supervisor.d.ts.map +1 -0
- package/dist/resiliency/supervisor.js +459 -0
- package/dist/resiliency/supervisor.js.map +1 -0
- package/dist/shared/cli-auth-config.d.ts +91 -0
- package/dist/shared/cli-auth-config.d.ts.map +1 -0
- package/dist/shared/cli-auth-config.js +264 -0
- package/dist/shared/cli-auth-config.js.map +1 -0
- package/dist/storage/adapter.d.ts +3 -1
- package/dist/storage/adapter.d.ts.map +1 -1
- package/dist/storage/adapter.js +12 -2
- package/dist/storage/adapter.js.map +1 -1
- package/dist/storage/sqlite-adapter.d.ts.map +1 -1
- package/dist/storage/sqlite-adapter.js +18 -14
- package/dist/storage/sqlite-adapter.js.map +1 -1
- package/dist/trajectory/config.d.ts +84 -0
- package/dist/trajectory/config.d.ts.map +1 -0
- package/dist/trajectory/config.js +163 -0
- package/dist/trajectory/config.js.map +1 -0
- package/dist/trajectory/index.d.ts +8 -0
- package/dist/trajectory/index.d.ts.map +1 -0
- package/dist/trajectory/index.js +8 -0
- package/dist/trajectory/index.js.map +1 -0
- package/dist/trajectory/integration.d.ts +292 -0
- package/dist/trajectory/integration.d.ts.map +1 -0
- package/dist/trajectory/integration.js +834 -0
- package/dist/trajectory/integration.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +40 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +84 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/project-namespace.d.ts +24 -0
- package/dist/utils/project-namespace.d.ts.map +1 -1
- package/dist/utils/project-namespace.js +84 -0
- package/dist/utils/project-namespace.js.map +1 -1
- package/dist/wrapper/client.d.ts +16 -1
- package/dist/wrapper/client.d.ts.map +1 -1
- package/dist/wrapper/client.js +32 -1
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/parser.d.ts +13 -0
- package/dist/wrapper/parser.d.ts.map +1 -1
- package/dist/wrapper/parser.js +217 -47
- package/dist/wrapper/parser.js.map +1 -1
- package/dist/wrapper/pty-wrapper.d.ts +219 -17
- package/dist/wrapper/pty-wrapper.d.ts.map +1 -1
- package/dist/wrapper/pty-wrapper.js +1050 -104
- package/dist/wrapper/pty-wrapper.js.map +1 -1
- package/dist/wrapper/shared.d.ts +165 -0
- package/dist/wrapper/shared.d.ts.map +1 -0
- package/dist/wrapper/shared.js +270 -0
- package/dist/wrapper/shared.js.map +1 -0
- package/dist/wrapper/tmux-wrapper.d.ts +78 -11
- package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
- package/dist/wrapper/tmux-wrapper.js +567 -106
- package/dist/wrapper/tmux-wrapper.js.map +1 -1
- package/docs/CLOUD-ARCHITECTURE.md +804 -0
- package/docs/CLOUD-ONBOARDING-DESIGN.md +1983 -0
- package/docs/HOOKS_API.md +394 -0
- package/docs/WRAPPER_EVENTS.md +358 -0
- package/docs/agent-policy-snippet.md +40 -0
- package/docs/agent-relay-protocol.md +238 -0
- package/docs/agent-relay-snippet.md +115 -6
- package/docs/archive/EXECUTIVE_SUMMARY.md +358 -0
- package/docs/archive/ROADMAP.md +329 -0
- package/docs/archive/TESTING_PRESENCE_FEATURES.md +327 -0
- package/docs/competitive/GASTOWN.md +451 -0
- package/docs/{COMPETITIVE_ANALYSIS.md → competitive/OVERVIEW.md} +1 -0
- package/docs/competitive/README.md +34 -0
- package/docs/competitive/TMUX_ORCHESTRATOR.md +605 -0
- package/docs/dashboard.png +0 -0
- package/docs/design/ci-failure-webhooks.md +812 -0
- package/docs/design/comprehensive-integrations.md +238 -0
- package/docs/design/e2b-sandbox-integration.md +504 -0
- package/docs/design/github-app-permissions.md +264 -0
- package/docs/guides/CLOUD.md +236 -0
- package/docs/guides/LOCAL.md +535 -0
- package/docs/guides/SELF-HOSTED.md +494 -0
- package/docs/local-testing.md +428 -0
- package/docs/proposals/continuous-claude-integration.md +622 -0
- package/docs/proposals/custom-commands.md +368 -0
- package/docs/proposals/shadow-as-subagent.md +765 -0
- package/docs/proposals/slack-bot-integration.md +1457 -0
- package/docs/tasks/global-skills-system.tasks.md +230 -0
- package/docs/tasks/webhook-integrations.tasks.md +184 -0
- package/docs/tasks/workspace-capabilities.tasks.md +121 -0
- package/docs/testing/RESILIENCY-TEST-PLAN-2026-01-01.md +366 -0
- package/package.json +45 -7
- package/scripts/cloud-setup.sh +96 -0
- package/scripts/manual-qa.sh +293 -0
- package/scripts/postinstall.js +60 -0
- package/scripts/run-cloud-qa.sh +220 -0
- package/scripts/test-cli-auth/Dockerfile +44 -0
- package/scripts/test-cli-auth/Dockerfile.real +79 -0
- package/scripts/test-cli-auth/README.md +286 -0
- package/scripts/test-cli-auth/ci-test-real-clis.ts +251 -0
- package/scripts/test-cli-auth/ci-test-runner.ts +263 -0
- package/scripts/test-cli-auth/mock-cli.sh +147 -0
- package/scripts/test-cli-auth/package.json +14 -0
- package/scripts/test-cli-auth/test-oauth-flow.ts +220 -0
- package/scripts/test-pty-input-auto.js +222 -0
- package/scripts/test-pty-input.js +150 -0
- package/dist/dashboard/out/_next/static/chunks/app/layout-c9d8c5d95e48c6bf.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-8aa9936bc6c771ab.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/page-4498be09a5157759.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/main-app-bae2e535de00de50.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-c81f7fd28659d64f.js +0 -1
- package/dist/dashboard/out/_next/static/css/50ed6996e3df7bdd.css +0 -1
- /package/dist/dashboard/out/_next/static/{DXFA-jj8wb3PcY5DX2xcU → H5aWG0udPB4iOUIl_gytz}/_buildManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/{DXFA-jj8wb3PcY5DX2xcU → H5aWG0udPB4iOUIl_gytz}/_ssgManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{117-3bef7b19f3e60751.js → 117-b100311aff8d5c61.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{648-6cf686106c891ad3.js → 648-a13d3c2b1be45466.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-8ff6572bc7c9bc61.js → page-a4973f3e3c82fb67.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-26bd8d656b496dba.js → fd9d1056-bf46c09eb57e019c.js} +0 -0
- /package/docs/{CHANGELOG.md → archive/CHANGELOG.md} +0 -0
- /package/docs/{CLI-SIMPLIFICATION-COMPLETE.md → archive/CLI-SIMPLIFICATION-COMPLETE.md} +0 -0
- /package/docs/{DESIGN_BRIDGE_STAFFING.md → archive/DESIGN_BRIDGE_STAFFING.md} +0 -0
- /package/docs/{DESIGN_V2.md → archive/DESIGN_V2.md} +0 -0
- /package/docs/{MONETIZATION.md → archive/MONETIZATION.md} +0 -0
- /package/docs/{PROPOSAL-trajectories.md → archive/PROPOSAL-trajectories.md} +0 -0
- /package/docs/{SCALING_ANALYSIS.md → archive/SCALING_ANALYSIS.md} +0 -0
- /package/docs/{TMUX_IMPLEMENTATION_NOTES.md → archive/TMUX_IMPLEMENTATION_NOTES.md} +0 -0
- /package/docs/{TMUX_IMPROVEMENTS.md → archive/TMUX_IMPROVEMENTS.md} +0 -0
- /package/docs/{dashboard-v2-plan.md → archive/dashboard-v2-plan.md} +0 -0
- /package/docs/{removable-code-analysis.md → archive/removable-code-analysis.md} +0 -0
- /package/docs/{competitive-analysis-mcp-agent-mail.md → competitive/MCP_AGENT_MAIL.md} +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Adapter Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates memory adapters based on configuration.
|
|
5
|
+
* Supports environment variables for configuration.
|
|
6
|
+
*/
|
|
7
|
+
import type { MemoryAdapter, MemoryConfig } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Get memory configuration from environment variables
|
|
10
|
+
*
|
|
11
|
+
* Environment variables:
|
|
12
|
+
* - AGENT_RELAY_MEMORY_TYPE: 'inmemory', 'supermemory', 'claude'
|
|
13
|
+
* - AGENT_RELAY_MEMORY_API_KEY: API key for external services
|
|
14
|
+
* - AGENT_RELAY_MEMORY_ENDPOINT: Custom API endpoint
|
|
15
|
+
* - SUPERMEMORY_API_KEY: Supermemory-specific API key (fallback)
|
|
16
|
+
*/
|
|
17
|
+
export declare function getMemoryConfigFromEnv(): MemoryConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Create a memory adapter based on configuration
|
|
20
|
+
*
|
|
21
|
+
* @param config - Memory configuration (merged with env vars)
|
|
22
|
+
* @returns Initialized memory adapter
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Use environment variables
|
|
27
|
+
* const memory = await createMemoryAdapter();
|
|
28
|
+
*
|
|
29
|
+
* // Explicit configuration
|
|
30
|
+
* const memory = await createMemoryAdapter({
|
|
31
|
+
* type: 'supermemory',
|
|
32
|
+
* apiKey: 'my-api-key',
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function createMemoryAdapter(config?: Partial<MemoryConfig>): Promise<MemoryAdapter>;
|
|
37
|
+
/**
|
|
38
|
+
* Check if a memory adapter type is available
|
|
39
|
+
*
|
|
40
|
+
* @param type - Adapter type to check
|
|
41
|
+
* @returns Whether the adapter is available
|
|
42
|
+
*/
|
|
43
|
+
export declare function isMemoryAdapterAvailable(type: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get list of available memory adapter types
|
|
46
|
+
*/
|
|
47
|
+
export declare function getAvailableMemoryAdapters(): string[];
|
|
48
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/memory/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI9D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,CAarD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,aAAa,CAAC,CAoExB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAyB9D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAQrD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Adapter Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates memory adapters based on configuration.
|
|
5
|
+
* Supports environment variables for configuration.
|
|
6
|
+
*/
|
|
7
|
+
import { InMemoryAdapter } from './adapters/inmemory.js';
|
|
8
|
+
import { SupermemoryAdapter } from './adapters/supermemory.js';
|
|
9
|
+
/**
|
|
10
|
+
* Get memory configuration from environment variables
|
|
11
|
+
*
|
|
12
|
+
* Environment variables:
|
|
13
|
+
* - AGENT_RELAY_MEMORY_TYPE: 'inmemory', 'supermemory', 'claude'
|
|
14
|
+
* - AGENT_RELAY_MEMORY_API_KEY: API key for external services
|
|
15
|
+
* - AGENT_RELAY_MEMORY_ENDPOINT: Custom API endpoint
|
|
16
|
+
* - SUPERMEMORY_API_KEY: Supermemory-specific API key (fallback)
|
|
17
|
+
*/
|
|
18
|
+
export function getMemoryConfigFromEnv() {
|
|
19
|
+
const type = process.env.AGENT_RELAY_MEMORY_TYPE ?? 'inmemory';
|
|
20
|
+
const apiKey = process.env.AGENT_RELAY_MEMORY_API_KEY ??
|
|
21
|
+
process.env.SUPERMEMORY_API_KEY;
|
|
22
|
+
return {
|
|
23
|
+
type,
|
|
24
|
+
apiKey,
|
|
25
|
+
endpoint: process.env.AGENT_RELAY_MEMORY_ENDPOINT,
|
|
26
|
+
defaultAgentId: process.env.AGENT_RELAY_AGENT_ID,
|
|
27
|
+
defaultProjectId: process.env.AGENT_RELAY_PROJECT_ID,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a memory adapter based on configuration
|
|
32
|
+
*
|
|
33
|
+
* @param config - Memory configuration (merged with env vars)
|
|
34
|
+
* @returns Initialized memory adapter
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // Use environment variables
|
|
39
|
+
* const memory = await createMemoryAdapter();
|
|
40
|
+
*
|
|
41
|
+
* // Explicit configuration
|
|
42
|
+
* const memory = await createMemoryAdapter({
|
|
43
|
+
* type: 'supermemory',
|
|
44
|
+
* apiKey: 'my-api-key',
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export async function createMemoryAdapter(config) {
|
|
49
|
+
// Merge with environment config
|
|
50
|
+
const envConfig = getMemoryConfigFromEnv();
|
|
51
|
+
const finalConfig = {
|
|
52
|
+
type: config?.type ?? envConfig.type ?? 'inmemory',
|
|
53
|
+
apiKey: config?.apiKey ?? envConfig.apiKey,
|
|
54
|
+
endpoint: config?.endpoint ?? envConfig.endpoint,
|
|
55
|
+
defaultAgentId: config?.defaultAgentId ?? envConfig.defaultAgentId,
|
|
56
|
+
defaultProjectId: config?.defaultProjectId ?? envConfig.defaultProjectId,
|
|
57
|
+
options: { ...envConfig.options, ...config?.options },
|
|
58
|
+
};
|
|
59
|
+
const adapterType = finalConfig.type.toLowerCase();
|
|
60
|
+
let adapter;
|
|
61
|
+
switch (adapterType) {
|
|
62
|
+
case 'supermemory':
|
|
63
|
+
case 'supermemory.ai': {
|
|
64
|
+
if (!finalConfig.apiKey) {
|
|
65
|
+
throw new Error('Supermemory adapter requires an API key. ' +
|
|
66
|
+
'Set AGENT_RELAY_MEMORY_API_KEY or SUPERMEMORY_API_KEY environment variable, ' +
|
|
67
|
+
'or provide apiKey in config.');
|
|
68
|
+
}
|
|
69
|
+
adapter = new SupermemoryAdapter({
|
|
70
|
+
apiKey: finalConfig.apiKey,
|
|
71
|
+
endpoint: finalConfig.endpoint,
|
|
72
|
+
defaultAgentId: finalConfig.defaultAgentId,
|
|
73
|
+
defaultProjectId: finalConfig.defaultProjectId,
|
|
74
|
+
container: finalConfig.options?.container,
|
|
75
|
+
timeout: finalConfig.options?.timeout,
|
|
76
|
+
});
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
case 'claude':
|
|
80
|
+
case 'claude-memory': {
|
|
81
|
+
// Claude memory is not yet available as a public API
|
|
82
|
+
// Fall back to in-memory with a warning
|
|
83
|
+
console.warn('[memory] Claude memory adapter not yet available. ' +
|
|
84
|
+
'Using in-memory adapter as fallback.');
|
|
85
|
+
adapter = new InMemoryAdapter({
|
|
86
|
+
defaultAgentId: finalConfig.defaultAgentId,
|
|
87
|
+
defaultProjectId: finalConfig.defaultProjectId,
|
|
88
|
+
maxMemories: finalConfig.options?.maxMemories,
|
|
89
|
+
});
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case 'inmemory':
|
|
93
|
+
case 'memory':
|
|
94
|
+
case 'none':
|
|
95
|
+
default: {
|
|
96
|
+
adapter = new InMemoryAdapter({
|
|
97
|
+
defaultAgentId: finalConfig.defaultAgentId,
|
|
98
|
+
defaultProjectId: finalConfig.defaultProjectId,
|
|
99
|
+
maxMemories: finalConfig.options?.maxMemories,
|
|
100
|
+
});
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
await adapter.init();
|
|
105
|
+
return adapter;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Check if a memory adapter type is available
|
|
109
|
+
*
|
|
110
|
+
* @param type - Adapter type to check
|
|
111
|
+
* @returns Whether the adapter is available
|
|
112
|
+
*/
|
|
113
|
+
export function isMemoryAdapterAvailable(type) {
|
|
114
|
+
const adapterType = type.toLowerCase();
|
|
115
|
+
switch (adapterType) {
|
|
116
|
+
case 'inmemory':
|
|
117
|
+
case 'memory':
|
|
118
|
+
case 'none':
|
|
119
|
+
return true;
|
|
120
|
+
case 'supermemory':
|
|
121
|
+
case 'supermemory.ai':
|
|
122
|
+
// Available if API key is configured
|
|
123
|
+
return !!(process.env.AGENT_RELAY_MEMORY_API_KEY ||
|
|
124
|
+
process.env.SUPERMEMORY_API_KEY);
|
|
125
|
+
case 'claude':
|
|
126
|
+
case 'claude-memory':
|
|
127
|
+
// Not yet available
|
|
128
|
+
return false;
|
|
129
|
+
default:
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get list of available memory adapter types
|
|
135
|
+
*/
|
|
136
|
+
export function getAvailableMemoryAdapters() {
|
|
137
|
+
const adapters = ['inmemory'];
|
|
138
|
+
if (process.env.AGENT_RELAY_MEMORY_API_KEY || process.env.SUPERMEMORY_API_KEY) {
|
|
139
|
+
adapters.push('supermemory');
|
|
140
|
+
}
|
|
141
|
+
return adapters;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/memory/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Relay Memory System
|
|
3
|
+
*
|
|
4
|
+
* Provides semantic memory storage and retrieval with multiple backend support.
|
|
5
|
+
* Memory adapters can be used standalone or integrated with the hooks system.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createMemoryAdapter } from 'agent-relay/memory';
|
|
10
|
+
*
|
|
11
|
+
* // Create an in-memory adapter for testing
|
|
12
|
+
* const memory = await createMemoryAdapter({ type: 'inmemory' });
|
|
13
|
+
*
|
|
14
|
+
* // Or use supermemory.ai for production
|
|
15
|
+
* const memory = await createMemoryAdapter({
|
|
16
|
+
* type: 'supermemory',
|
|
17
|
+
* apiKey: process.env.SUPERMEMORY_API_KEY,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Add a memory
|
|
21
|
+
* await memory.add('User prefers TypeScript', { tags: ['preference'] });
|
|
22
|
+
*
|
|
23
|
+
* // Search for relevant memories
|
|
24
|
+
* const results = await memory.search({ query: 'programming language' });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export * from './types.js';
|
|
28
|
+
export * from './adapters/index.js';
|
|
29
|
+
export { createMemoryAdapter, getMemoryConfigFromEnv } from './factory.js';
|
|
30
|
+
export { createMemoryService } from './service.js';
|
|
31
|
+
export { createMemoryHooks, getMemoryHooks } from './memory-hooks.js';
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Relay Memory System
|
|
3
|
+
*
|
|
4
|
+
* Provides semantic memory storage and retrieval with multiple backend support.
|
|
5
|
+
* Memory adapters can be used standalone or integrated with the hooks system.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createMemoryAdapter } from 'agent-relay/memory';
|
|
10
|
+
*
|
|
11
|
+
* // Create an in-memory adapter for testing
|
|
12
|
+
* const memory = await createMemoryAdapter({ type: 'inmemory' });
|
|
13
|
+
*
|
|
14
|
+
* // Or use supermemory.ai for production
|
|
15
|
+
* const memory = await createMemoryAdapter({
|
|
16
|
+
* type: 'supermemory',
|
|
17
|
+
* apiKey: process.env.SUPERMEMORY_API_KEY,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Add a memory
|
|
21
|
+
* await memory.add('User prefers TypeScript', { tags: ['preference'] });
|
|
22
|
+
*
|
|
23
|
+
* // Search for relevant memories
|
|
24
|
+
* const results = await memory.search({ query: 'programming language' });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export * from './types.js';
|
|
28
|
+
export * from './adapters/index.js';
|
|
29
|
+
export { createMemoryAdapter, getMemoryConfigFromEnv } from './factory.js';
|
|
30
|
+
export { createMemoryService } from './service.js';
|
|
31
|
+
export { createMemoryHooks, getMemoryHooks } from './memory-hooks.js';
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Hooks
|
|
3
|
+
*
|
|
4
|
+
* Provides memory-aware lifecycle hooks that automatically:
|
|
5
|
+
* - Load relevant context on session start
|
|
6
|
+
* - Prompt for memory save on session end
|
|
7
|
+
* - Handle @memory: pattern output
|
|
8
|
+
*/
|
|
9
|
+
import type { LifecycleHooks } from '../hooks/types.js';
|
|
10
|
+
import type { MemoryAdapter, MemoryConfig } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Options for memory hooks
|
|
13
|
+
*/
|
|
14
|
+
export interface MemoryHooksOptions {
|
|
15
|
+
/** Pre-configured memory adapter */
|
|
16
|
+
adapter?: MemoryAdapter;
|
|
17
|
+
/** Configuration for creating a new adapter */
|
|
18
|
+
config?: Partial<MemoryConfig>;
|
|
19
|
+
/** Agent ID for memory operations */
|
|
20
|
+
agentId?: string;
|
|
21
|
+
/** Project ID for memory operations */
|
|
22
|
+
projectId?: string;
|
|
23
|
+
/** Whether to inject relevant memories on session start */
|
|
24
|
+
injectOnStart?: boolean;
|
|
25
|
+
/** Maximum memories to inject on start */
|
|
26
|
+
maxStartMemories?: number;
|
|
27
|
+
/** Search query for session start (default: project-based) */
|
|
28
|
+
startSearchQuery?: string;
|
|
29
|
+
/** Whether to prompt for memory save on session end */
|
|
30
|
+
promptOnEnd?: boolean;
|
|
31
|
+
/** Whether to auto-save important learnings from output */
|
|
32
|
+
autoSave?: boolean;
|
|
33
|
+
/** Whether to auto-save session summary on graceful end */
|
|
34
|
+
autoSaveOnEnd?: boolean;
|
|
35
|
+
/** Patterns that indicate content worth saving */
|
|
36
|
+
savePatterns?: RegExp[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create memory hooks for automatic context loading and saving
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const hooks = createMemoryHooks({
|
|
44
|
+
* config: { type: 'supermemory', apiKey: 'xxx' },
|
|
45
|
+
* agentId: 'my-agent',
|
|
46
|
+
* projectId: 'my-project',
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* registry.registerLifecycleHooks(hooks);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function createMemoryHooks(options?: MemoryHooksOptions): LifecycleHooks;
|
|
53
|
+
/**
|
|
54
|
+
* Get memory hooks with default settings
|
|
55
|
+
*
|
|
56
|
+
* @param agentId - Agent identifier
|
|
57
|
+
* @param projectId - Project identifier
|
|
58
|
+
*/
|
|
59
|
+
export declare function getMemoryHooks(agentId: string, projectId: string): LifecycleHooks;
|
|
60
|
+
//# sourceMappingURL=memory-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-hooks.d.ts","sourceRoot":"","sources":["../../src/memory/memory-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EAKf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAEb,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAuDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CAwBlF;AAmQD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAEjF"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Hooks
|
|
3
|
+
*
|
|
4
|
+
* Provides memory-aware lifecycle hooks that automatically:
|
|
5
|
+
* - Load relevant context on session start
|
|
6
|
+
* - Prompt for memory save on session end
|
|
7
|
+
* - Handle @memory: pattern output
|
|
8
|
+
*/
|
|
9
|
+
import { createMemoryAdapter } from './factory.js';
|
|
10
|
+
/**
|
|
11
|
+
* Default patterns that indicate content worth auto-saving
|
|
12
|
+
*
|
|
13
|
+
* Categories:
|
|
14
|
+
* - Learnings: discoveries, realizations, insights
|
|
15
|
+
* - Decisions: significant choices made
|
|
16
|
+
* - Breakthroughs: problems solved, aha moments
|
|
17
|
+
* - Failures: things that went wrong, errors encountered
|
|
18
|
+
* - Preferences: user/project preferences
|
|
19
|
+
* - Retrospectives: end-of-task reflections
|
|
20
|
+
*/
|
|
21
|
+
const DEFAULT_SAVE_PATTERNS = [
|
|
22
|
+
// Learnings and discoveries
|
|
23
|
+
/(?:learned|discovered|found out|realized|important|remember|note to self)/i,
|
|
24
|
+
/(?:key insight|takeaway|lesson learned|now I understand)/i,
|
|
25
|
+
// Significant decisions
|
|
26
|
+
/(?:decided to|decision:|chose to|going with|settled on|approach:|strategy:)/i,
|
|
27
|
+
/(?:trade-?off|weighing|considering|opting for)/i,
|
|
28
|
+
// Breakthroughs and solutions
|
|
29
|
+
/(?:breakthrough|finally|solved|figured out|the fix was|root cause)/i,
|
|
30
|
+
/(?:aha|eureka|that's why|the issue was|problem was)/i,
|
|
31
|
+
// Failures and problems
|
|
32
|
+
/(?:failed because|mistake was|should have|shouldn't have|next time)/i,
|
|
33
|
+
/(?:went wrong|broke because|error was due to|caused by)/i,
|
|
34
|
+
/(?:avoid|don't repeat|pitfall|gotcha|watch out)/i,
|
|
35
|
+
// User/project preferences
|
|
36
|
+
/(?:user prefers?|preference|always use|never use|don't use)/i,
|
|
37
|
+
/(?:project uses?|codebase uses?|this repo|this project)/i,
|
|
38
|
+
/(?:convention|pattern|style guide|best practice)/i,
|
|
39
|
+
// Retrospectives
|
|
40
|
+
/(?:in retrospect|looking back|reflecting|summary:|recap:)/i,
|
|
41
|
+
/(?:what worked|what didn't|improvements for next time)/i,
|
|
42
|
+
];
|
|
43
|
+
/**
|
|
44
|
+
* Create memory hooks for automatic context loading and saving
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const hooks = createMemoryHooks({
|
|
49
|
+
* config: { type: 'supermemory', apiKey: 'xxx' },
|
|
50
|
+
* agentId: 'my-agent',
|
|
51
|
+
* projectId: 'my-project',
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* registry.registerLifecycleHooks(hooks);
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export function createMemoryHooks(options = {}) {
|
|
58
|
+
const state = {
|
|
59
|
+
adapter: options.adapter ?? null,
|
|
60
|
+
adapterPromise: null,
|
|
61
|
+
sessionLearnings: [],
|
|
62
|
+
options: {
|
|
63
|
+
agentId: options.agentId ?? 'default',
|
|
64
|
+
projectId: options.projectId ?? 'default',
|
|
65
|
+
injectOnStart: options.injectOnStart ?? true,
|
|
66
|
+
maxStartMemories: options.maxStartMemories ?? 5,
|
|
67
|
+
startSearchQuery: options.startSearchQuery ?? '',
|
|
68
|
+
promptOnEnd: options.promptOnEnd ?? false,
|
|
69
|
+
autoSave: options.autoSave ?? true,
|
|
70
|
+
autoSaveOnEnd: options.autoSaveOnEnd ?? true,
|
|
71
|
+
savePatterns: options.savePatterns ?? DEFAULT_SAVE_PATTERNS,
|
|
72
|
+
config: options.config,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
onSessionStart: createSessionStartHook(state),
|
|
77
|
+
onSessionEnd: createSessionEndHook(state),
|
|
78
|
+
onOutput: createOutputHook(state),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Lazily get or create the memory adapter
|
|
83
|
+
*/
|
|
84
|
+
async function getAdapter(state) {
|
|
85
|
+
if (state.adapter) {
|
|
86
|
+
return state.adapter;
|
|
87
|
+
}
|
|
88
|
+
if (!state.adapterPromise) {
|
|
89
|
+
state.adapterPromise = createMemoryAdapter({
|
|
90
|
+
...state.options.config,
|
|
91
|
+
defaultAgentId: state.options.agentId,
|
|
92
|
+
defaultProjectId: state.options.projectId,
|
|
93
|
+
}).catch(error => {
|
|
94
|
+
console.error('[memory-hooks] Failed to create adapter:', error);
|
|
95
|
+
return null;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
state.adapter = await state.adapterPromise;
|
|
99
|
+
return state.adapter;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Session start hook - loads relevant memories
|
|
103
|
+
*/
|
|
104
|
+
function createSessionStartHook(state) {
|
|
105
|
+
return async (ctx) => {
|
|
106
|
+
if (!state.options.injectOnStart) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
state.sessionId = ctx.sessionId;
|
|
110
|
+
const adapter = await getAdapter(state);
|
|
111
|
+
if (!adapter) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
// Build search query based on context
|
|
116
|
+
const searchQuery = state.options.startSearchQuery ||
|
|
117
|
+
`project: ${ctx.workingDir} OR agent: ${state.options.agentId}`;
|
|
118
|
+
const memories = await adapter.search({
|
|
119
|
+
query: searchQuery,
|
|
120
|
+
limit: state.options.maxStartMemories,
|
|
121
|
+
agentId: state.options.agentId,
|
|
122
|
+
projectId: state.options.projectId,
|
|
123
|
+
});
|
|
124
|
+
if (memories.length === 0) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const formattedMemories = formatMemoriesForInjection(memories);
|
|
128
|
+
return {
|
|
129
|
+
inject: `\n[CONTEXT FROM MEMORY]\n${formattedMemories}\n`,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
console.error('[memory-hooks] Failed to load memories:', error);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Session end hook - logs learnings summary and optionally prompts for more
|
|
139
|
+
*/
|
|
140
|
+
function createSessionEndHook(state) {
|
|
141
|
+
return async (ctx) => {
|
|
142
|
+
// Log session summary (learnings were already saved immediately during output)
|
|
143
|
+
if (state.options.autoSaveOnEnd && ctx.graceful && state.sessionLearnings.length > 0) {
|
|
144
|
+
const uniqueLearnings = [...new Set(state.sessionLearnings)];
|
|
145
|
+
console.log(`[memory-hooks] Session captured ${uniqueLearnings.length} learnings (saved during session)`);
|
|
146
|
+
// Clear for next session
|
|
147
|
+
state.sessionLearnings = [];
|
|
148
|
+
}
|
|
149
|
+
// Optional prompt for additional saves
|
|
150
|
+
if (state.options.promptOnEnd && ctx.graceful) {
|
|
151
|
+
return {
|
|
152
|
+
inject: `
|
|
153
|
+
[SESSION ENDING]
|
|
154
|
+
If you learned anything important, save it for future sessions:
|
|
155
|
+
@memory:save <what you learned>
|
|
156
|
+
|
|
157
|
+
Examples:
|
|
158
|
+
@memory:save User prefers TypeScript over JavaScript
|
|
159
|
+
@memory:save This project uses Prisma for database access
|
|
160
|
+
@memory:save Auth tokens stored in httpOnly cookies
|
|
161
|
+
`,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Output hook - handles @memory: patterns and auto-save
|
|
168
|
+
*/
|
|
169
|
+
function createOutputHook(state) {
|
|
170
|
+
return async (ctx) => {
|
|
171
|
+
const { content } = ctx;
|
|
172
|
+
// Handle @memory: patterns (explicit saves)
|
|
173
|
+
const memoryMatch = content.match(/@memory:(\w+)\s+(.+)/);
|
|
174
|
+
if (memoryMatch) {
|
|
175
|
+
const [, action, payload] = memoryMatch;
|
|
176
|
+
return handleMemoryCommand(state, action, payload.trim());
|
|
177
|
+
}
|
|
178
|
+
// Auto-detect and save learnings
|
|
179
|
+
if (state.options.autoSave) {
|
|
180
|
+
for (const pattern of state.options.savePatterns) {
|
|
181
|
+
if (pattern.test(content)) {
|
|
182
|
+
// Extract the relevant sentence/phrase
|
|
183
|
+
const relevantContent = extractRelevantContent(content, pattern);
|
|
184
|
+
if (relevantContent && relevantContent.length > 10) {
|
|
185
|
+
// Collect for session-end retrospective
|
|
186
|
+
if (state.options.autoSaveOnEnd) {
|
|
187
|
+
state.sessionLearnings.push(relevantContent);
|
|
188
|
+
}
|
|
189
|
+
// Also save immediately (ensures persistence even on crash)
|
|
190
|
+
const adapter = await getAdapter(state);
|
|
191
|
+
if (adapter) {
|
|
192
|
+
await adapter.add(relevantContent, {
|
|
193
|
+
source: 'auto-detected',
|
|
194
|
+
sessionId: state.sessionId,
|
|
195
|
+
tags: ['auto-saved'],
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Handle @memory: commands
|
|
207
|
+
*/
|
|
208
|
+
async function handleMemoryCommand(state, action, payload) {
|
|
209
|
+
const adapter = await getAdapter(state);
|
|
210
|
+
if (!adapter) {
|
|
211
|
+
return { inject: '[memory] Memory service not available' };
|
|
212
|
+
}
|
|
213
|
+
switch (action.toLowerCase()) {
|
|
214
|
+
case 'save':
|
|
215
|
+
case 'add': {
|
|
216
|
+
const result = await adapter.add(payload, {
|
|
217
|
+
source: 'agent-command',
|
|
218
|
+
sessionId: state.sessionId,
|
|
219
|
+
});
|
|
220
|
+
if (result.success) {
|
|
221
|
+
return { inject: `[memory] Saved: "${truncate(payload, 50)}"` };
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
return { inject: `[memory] Failed to save: ${result.error}` };
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
case 'search':
|
|
228
|
+
case 'find':
|
|
229
|
+
case 'recall': {
|
|
230
|
+
const memories = await adapter.search({
|
|
231
|
+
query: payload,
|
|
232
|
+
limit: 5,
|
|
233
|
+
});
|
|
234
|
+
if (memories.length === 0) {
|
|
235
|
+
return { inject: '[memory] No relevant memories found' };
|
|
236
|
+
}
|
|
237
|
+
const formatted = formatMemoriesForInjection(memories);
|
|
238
|
+
return { inject: `[memory] Found ${memories.length} memories:\n${formatted}` };
|
|
239
|
+
}
|
|
240
|
+
case 'forget':
|
|
241
|
+
case 'delete': {
|
|
242
|
+
const result = await adapter.delete(payload);
|
|
243
|
+
if (result.success) {
|
|
244
|
+
return { inject: `[memory] Deleted memory: ${payload}` };
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
return { inject: `[memory] Failed to delete: ${result.error}` };
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
case 'list': {
|
|
251
|
+
if (!adapter.list) {
|
|
252
|
+
return { inject: '[memory] List not supported by this adapter' };
|
|
253
|
+
}
|
|
254
|
+
const limit = parseInt(payload) || 10;
|
|
255
|
+
const memories = await adapter.list({ limit });
|
|
256
|
+
if (memories.length === 0) {
|
|
257
|
+
return { inject: '[memory] No memories stored' };
|
|
258
|
+
}
|
|
259
|
+
const formatted = formatMemoriesForInjection(memories);
|
|
260
|
+
return { inject: `[memory] Recent memories:\n${formatted}` };
|
|
261
|
+
}
|
|
262
|
+
default:
|
|
263
|
+
return {
|
|
264
|
+
inject: `[memory] Unknown action: ${action}. Use: save, search, forget, list`,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Format memories for injection into agent context
|
|
270
|
+
*/
|
|
271
|
+
function formatMemoriesForInjection(memories) {
|
|
272
|
+
return memories
|
|
273
|
+
.map((m, i) => {
|
|
274
|
+
const score = m.score ? ` (relevance: ${Math.round(m.score * 100)}%)` : '';
|
|
275
|
+
const tags = m.tags?.length ? ` [${m.tags.join(', ')}]` : '';
|
|
276
|
+
return `${i + 1}. ${m.content}${tags}${score}`;
|
|
277
|
+
})
|
|
278
|
+
.join('\n');
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Extract relevant content around a pattern match
|
|
282
|
+
*/
|
|
283
|
+
function extractRelevantContent(content, pattern) {
|
|
284
|
+
const match = content.match(pattern);
|
|
285
|
+
if (!match)
|
|
286
|
+
return null;
|
|
287
|
+
// Find the sentence containing the match
|
|
288
|
+
const sentences = content.split(/[.!?]+/);
|
|
289
|
+
for (const sentence of sentences) {
|
|
290
|
+
if (pattern.test(sentence)) {
|
|
291
|
+
return sentence.trim();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return match[0];
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Truncate string with ellipsis
|
|
298
|
+
*/
|
|
299
|
+
function truncate(str, maxLen) {
|
|
300
|
+
if (str.length <= maxLen)
|
|
301
|
+
return str;
|
|
302
|
+
return str.slice(0, maxLen - 3) + '...';
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Get memory hooks with default settings
|
|
306
|
+
*
|
|
307
|
+
* @param agentId - Agent identifier
|
|
308
|
+
* @param projectId - Project identifier
|
|
309
|
+
*/
|
|
310
|
+
export function getMemoryHooks(agentId, projectId) {
|
|
311
|
+
return createMemoryHooks({ agentId, projectId });
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=memory-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-hooks.js","sourceRoot":"","sources":["../../src/memory/memory-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA4CnD;;;;;;;;;;GAUG;AACH,MAAM,qBAAqB,GAAG;IAC5B,4BAA4B;IAC5B,4EAA4E;IAC5E,2DAA2D;IAE3D,wBAAwB;IACxB,8EAA8E;IAC9E,iDAAiD;IAEjD,8BAA8B;IAC9B,qEAAqE;IACrE,sDAAsD;IAEtD,wBAAwB;IACxB,sEAAsE;IACtE,0DAA0D;IAC1D,kDAAkD;IAElD,2BAA2B;IAC3B,8DAA8D;IAC9D,0DAA0D;IAC1D,mDAAmD;IAEnD,iBAAiB;IACjB,4DAA4D;IAC5D,yDAAyD;CAC1D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B,EAAE;IAChE,MAAM,KAAK,GAAqB;QAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,EAAE;QACpB,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;YACrC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;YACzC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;YAC5C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,CAAC;YAC/C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;YAChD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;YACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;YAC5C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,qBAAqB;YAC3D,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;KACF,CAAC;IAEF,OAAO;QACL,cAAc,EAAE,sBAAsB,CAAC,KAAK,CAAC;QAC7C,YAAY,EAAE,oBAAoB,CAAC,KAAK,CAAC;QACzC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC;KAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,KAAuB;IAC/C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC1B,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC;YACzC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;YACvB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;YACrC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;SAC1C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,IAAgC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,KAAuB;IACrD,OAAO,KAAK,EAAE,GAAwB,EAA8B,EAAE;QACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAEhC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,gBAAgB;gBAC9B,YAAY,GAAG,CAAC,UAAU,cAAc,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAElE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;gBACpC,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBAC9B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;aACnC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAC/D,OAAO;gBACL,MAAM,EAAE,4BAA4B,iBAAiB,IAAI;aAC1D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,KAAuB;IACnD,OAAO,KAAK,EAAE,GAAsB,EAA8B,EAAE;QAClE,+EAA+E;QAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrF,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CACT,mCAAmC,eAAe,CAAC,MAAM,mCAAmC,CAC7F,CAAC;YAEF,yBAAyB;YACzB,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC9B,CAAC;QAED,uCAAuC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9C,OAAO;gBACL,MAAM,EAAE;;;;;;;;;CASf;aACM,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAuB;IAC/C,OAAO,KAAK,EAAE,GAAkB,EAA8B,EAAE;QAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAExB,4CAA4C;QAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC;YACxC,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,iCAAiC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC3B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACjD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1B,uCAAuC;oBACvC,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACjE,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBACnD,wCAAwC;wBACxC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;4BAChC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC/C,CAAC;wBAED,4DAA4D;wBAC5D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;wBACxC,IAAI,OAAO,EAAE,CAAC;4BACZ,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE;gCACjC,MAAM,EAAE,eAAe;gCACvB,SAAS,EAAE,KAAK,CAAC,SAAS;gCAC1B,IAAI,EAAE,CAAC,YAAY,CAAC;6BACrB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,KAAuB,EACvB,MAAc,EACd,OAAe;IAEf,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;IAC7D,CAAC;IAED,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;gBACxC,MAAM,EAAE,eAAe;gBACvB,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,MAAM,EAAE,oBAAoB,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,MAAM,EAAE,4BAA4B,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YAChE,CAAC;QACH,CAAC;QAED,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;gBACpC,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC;YAC3D,CAAC;YAED,MAAM,SAAS,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO,EAAE,MAAM,EAAE,kBAAkB,QAAQ,CAAC,MAAM,eAAe,SAAS,EAAE,EAAE,CAAC;QACjF,CAAC;QAED,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,MAAM,EAAE,4BAA4B,OAAO,EAAE,EAAE,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,MAAM,EAAE,8BAA8B,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YAClE,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;YACnE,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAE/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;YACnD,CAAC;YAED,MAAM,SAAS,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO,EAAE,MAAM,EAAE,8BAA8B,SAAS,EAAE,EAAE,CAAC;QAC/D,CAAC;QAED;YACE,OAAO;gBACL,MAAM,EAAE,4BAA4B,MAAM,mCAAmC;aAC9E,CAAC;IACN,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,QAAuB;IACzD,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;IACjD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAe,EAAE,OAAe;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,yCAAyC;IACzC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW,EAAE,MAAc;IAC3C,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,SAAiB;IAC/D,OAAO,iBAAiB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AACnD,CAAC"}
|