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,358 @@
|
|
|
1
|
+
# PtyWrapper Events
|
|
2
|
+
|
|
3
|
+
PtyWrapper extends Node.js EventEmitter and emits events for monitoring agent behavior, handling persistence, and debugging. This document describes all available events and how to use them.
|
|
4
|
+
|
|
5
|
+
## Event Reference
|
|
6
|
+
|
|
7
|
+
### `output`
|
|
8
|
+
|
|
9
|
+
Emitted for every chunk of output from the agent's PTY.
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
pty.on('output', (data: string) => {
|
|
13
|
+
console.log('Agent output:', data);
|
|
14
|
+
});
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Parameters:**
|
|
18
|
+
- `data` (string): Raw output data from the PTY
|
|
19
|
+
|
|
20
|
+
**Use cases:**
|
|
21
|
+
- Live log streaming to dashboard
|
|
22
|
+
- Output capture for analysis
|
|
23
|
+
- Debugging agent behavior
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
### `exit`
|
|
28
|
+
|
|
29
|
+
Emitted when the agent process exits.
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
pty.on('exit', (code: number) => {
|
|
33
|
+
console.log(`Agent exited with code ${code}`);
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Parameters:**
|
|
38
|
+
- `code` (number): Exit code of the process (0 = success)
|
|
39
|
+
|
|
40
|
+
**Use cases:**
|
|
41
|
+
- Cleanup resources
|
|
42
|
+
- Trigger restart logic
|
|
43
|
+
- Update agent status
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### `error`
|
|
48
|
+
|
|
49
|
+
Emitted when an error occurs in the wrapper.
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
pty.on('error', (error: Error) => {
|
|
53
|
+
console.error('PTY error:', error);
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Parameters:**
|
|
58
|
+
- `error` (Error): The error that occurred
|
|
59
|
+
|
|
60
|
+
**Use cases:**
|
|
61
|
+
- Error logging
|
|
62
|
+
- Alerting
|
|
63
|
+
- Graceful error handling
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### `injection-failed`
|
|
68
|
+
|
|
69
|
+
Emitted when message injection fails after all retry attempts.
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
import type { InjectionFailedEvent } from './wrapper/pty-wrapper.js';
|
|
73
|
+
|
|
74
|
+
pty.on('injection-failed', (event: InjectionFailedEvent) => {
|
|
75
|
+
console.warn('Injection failed:', event);
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Parameters:**
|
|
80
|
+
- `event.messageId` (string): ID of the failed message
|
|
81
|
+
- `event.from` (string): Sender of the message
|
|
82
|
+
- `event.attempts` (number): Number of injection attempts made
|
|
83
|
+
|
|
84
|
+
**Use cases:**
|
|
85
|
+
- Alert on delivery failures
|
|
86
|
+
- Fallback to inbox-based delivery
|
|
87
|
+
- Dashboard warning indicators
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
### `summary`
|
|
92
|
+
|
|
93
|
+
Emitted when the agent outputs a `[[SUMMARY]]` block. Used for cloud persistence.
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import type { SummaryEvent } from './wrapper/pty-wrapper.js';
|
|
97
|
+
|
|
98
|
+
pty.on('summary', (event: SummaryEvent) => {
|
|
99
|
+
console.log(`${event.agentName} summary:`, event.summary);
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Parameters:**
|
|
104
|
+
- `event.agentName` (string): Name of the agent
|
|
105
|
+
- `event.summary` (ParsedSummary): Parsed summary object
|
|
106
|
+
- `currentTask?` (string): What the agent is currently working on
|
|
107
|
+
- `completedTasks?` (string[]): List of completed tasks
|
|
108
|
+
- `decisions?` (string[]): Key decisions made
|
|
109
|
+
- `context?` (string): Additional context
|
|
110
|
+
- `files?` (string[]): Files being worked on
|
|
111
|
+
|
|
112
|
+
**Agent output format:**
|
|
113
|
+
```
|
|
114
|
+
[[SUMMARY]]
|
|
115
|
+
{
|
|
116
|
+
"currentTask": "Implementing auth module",
|
|
117
|
+
"completedTasks": ["login flow", "session management"],
|
|
118
|
+
"context": "Using JWT for tokens",
|
|
119
|
+
"files": ["src/auth.ts", "src/session.ts"]
|
|
120
|
+
}
|
|
121
|
+
[[/SUMMARY]]
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Use cases:**
|
|
125
|
+
- Persist agent progress to database
|
|
126
|
+
- Resume interrupted sessions
|
|
127
|
+
- Dashboard progress indicators
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### `session-end`
|
|
132
|
+
|
|
133
|
+
Emitted when the agent outputs a `[[SESSION_END]]` block. Marks explicit session completion.
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
import type { SessionEndEvent } from './wrapper/pty-wrapper.js';
|
|
137
|
+
|
|
138
|
+
pty.on('session-end', (event: SessionEndEvent) => {
|
|
139
|
+
console.log(`${event.agentName} ended session:`, event.marker);
|
|
140
|
+
});
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Parameters:**
|
|
144
|
+
- `event.agentName` (string): Name of the agent
|
|
145
|
+
- `event.marker` (SessionEndMarker): End marker object
|
|
146
|
+
- `summary?` (string): Final session summary
|
|
147
|
+
- `completedTasks?` (string[]): Tasks completed in session
|
|
148
|
+
|
|
149
|
+
**Agent output format:**
|
|
150
|
+
```
|
|
151
|
+
[[SESSION_END]]
|
|
152
|
+
{
|
|
153
|
+
"summary": "Completed auth module implementation",
|
|
154
|
+
"completedTasks": ["login", "logout", "session management"]
|
|
155
|
+
}
|
|
156
|
+
[[/SESSION_END]]
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Or empty for clean close:
|
|
160
|
+
```
|
|
161
|
+
[[SESSION_END]][[/SESSION_END]]
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Use cases:**
|
|
165
|
+
- Close session in database
|
|
166
|
+
- Trigger cleanup
|
|
167
|
+
- Update billing/usage
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Cloud Persistence Integration
|
|
172
|
+
|
|
173
|
+
For cloud deployments, use `CloudPersistenceService` to automatically persist summary and session-end events to PostgreSQL:
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
import { PtyWrapper } from './wrapper/pty-wrapper.js';
|
|
177
|
+
import { CloudPersistenceService } from './cloud/services/persistence.js';
|
|
178
|
+
|
|
179
|
+
// Create persistence service
|
|
180
|
+
const persistence = new CloudPersistenceService({
|
|
181
|
+
workspaceId: 'workspace-123',
|
|
182
|
+
onSummaryPersisted: (agentName, summaryId) => {
|
|
183
|
+
console.log(`Summary saved: ${summaryId}`);
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
// Create and start PTY
|
|
188
|
+
const pty = new PtyWrapper(config);
|
|
189
|
+
await pty.start();
|
|
190
|
+
|
|
191
|
+
// Bind persistence to PTY - creates session record
|
|
192
|
+
const sessionId = await persistence.bindToPtyWrapper(pty);
|
|
193
|
+
|
|
194
|
+
// ... agent runs ...
|
|
195
|
+
|
|
196
|
+
// Cleanup when done
|
|
197
|
+
persistence.unbindFromPtyWrapper(pty);
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Database Schema
|
|
201
|
+
|
|
202
|
+
```sql
|
|
203
|
+
-- Agent sessions
|
|
204
|
+
CREATE TABLE agent_sessions (
|
|
205
|
+
id UUID PRIMARY KEY,
|
|
206
|
+
workspace_id UUID NOT NULL REFERENCES workspaces(id),
|
|
207
|
+
agent_name VARCHAR(255) NOT NULL,
|
|
208
|
+
status VARCHAR(50) DEFAULT 'active',
|
|
209
|
+
started_at TIMESTAMPTZ DEFAULT NOW(),
|
|
210
|
+
ended_at TIMESTAMPTZ,
|
|
211
|
+
end_marker JSONB,
|
|
212
|
+
metadata JSONB DEFAULT '{}'
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
-- Agent summaries
|
|
216
|
+
CREATE TABLE agent_summaries (
|
|
217
|
+
id UUID PRIMARY KEY,
|
|
218
|
+
session_id UUID NOT NULL REFERENCES agent_sessions(id),
|
|
219
|
+
agent_name VARCHAR(255) NOT NULL,
|
|
220
|
+
summary JSONB NOT NULL,
|
|
221
|
+
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
222
|
+
);
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Daemon Event Integration
|
|
228
|
+
|
|
229
|
+
When using `AgentManager`, PtyWrapper events are automatically forwarded as daemon events:
|
|
230
|
+
|
|
231
|
+
| PtyWrapper Event | Daemon Event | Description |
|
|
232
|
+
|------------------|--------------|-------------|
|
|
233
|
+
| `summary` | `agent:summary` | Agent output a summary block |
|
|
234
|
+
| `session-end` | `agent:session-end` | Agent explicitly ended session |
|
|
235
|
+
| `injection-failed` | `agent:injection-failed` | Message delivery failed |
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
const manager = getAgentManager();
|
|
239
|
+
|
|
240
|
+
// Optional: Enable cloud persistence
|
|
241
|
+
manager.setCloudPersistence({
|
|
242
|
+
onSummary: async (agentId, event) => {
|
|
243
|
+
await db.saveSummary(agentId, event.summary);
|
|
244
|
+
},
|
|
245
|
+
onSessionEnd: async (agentId, event) => {
|
|
246
|
+
await db.endSession(agentId, event.marker);
|
|
247
|
+
},
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
// Daemon events are emitted to connected dashboard clients
|
|
251
|
+
manager.on('event', (event) => {
|
|
252
|
+
if (event.type === 'agent:summary') {
|
|
253
|
+
broadcastToClients(event);
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Event Flow Diagram
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
Agent Output
|
|
264
|
+
│
|
|
265
|
+
▼
|
|
266
|
+
┌───────────────┐
|
|
267
|
+
│ PtyWrapper │
|
|
268
|
+
│ handleOutput()│
|
|
269
|
+
└───────┬───────┘
|
|
270
|
+
│
|
|
271
|
+
├──► emit('output', data)
|
|
272
|
+
│
|
|
273
|
+
├──► parseRelayCommands()
|
|
274
|
+
│
|
|
275
|
+
├──► checkForSummaryAndEmit()
|
|
276
|
+
│ │
|
|
277
|
+
│ ▼
|
|
278
|
+
│ emit('summary', event)
|
|
279
|
+
│ │
|
|
280
|
+
│ ▼
|
|
281
|
+
│ CloudPersistenceService
|
|
282
|
+
│ │
|
|
283
|
+
│ ▼
|
|
284
|
+
│ PostgreSQL
|
|
285
|
+
│
|
|
286
|
+
└──► checkForSessionEndAndEmit()
|
|
287
|
+
│
|
|
288
|
+
▼
|
|
289
|
+
emit('session-end', event)
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Best Practices
|
|
295
|
+
|
|
296
|
+
1. **Always unbind on cleanup** - Call `persistence.unbindFromPtyWrapper(pty)` or the listeners will leak
|
|
297
|
+
|
|
298
|
+
2. **Use resetSessionState() for reuse** - If reusing a wrapper instance, call `pty.resetSessionState()` to clear session-specific state
|
|
299
|
+
|
|
300
|
+
3. **Handle async errors** - Event handlers for `summary` and `session-end` can be async, but errors should be caught
|
|
301
|
+
|
|
302
|
+
4. **Deduplication is automatic** - PtyWrapper deduplicates summary events based on content, preventing repeated persistence of the same summary
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Environment Variables
|
|
307
|
+
|
|
308
|
+
Configure PtyWrapper and cloud persistence behavior via environment variables:
|
|
309
|
+
|
|
310
|
+
### Summary Reminders
|
|
311
|
+
|
|
312
|
+
| Variable | Default | Description |
|
|
313
|
+
|----------|---------|-------------|
|
|
314
|
+
| `RELAY_SUMMARY_REMINDER_ENABLED` | `true` | Set to `false` to disable automatic summary reminders |
|
|
315
|
+
| `RELAY_SUMMARY_INTERVAL_MINUTES` | `15` | Minutes of activity before injecting a summary reminder |
|
|
316
|
+
| `RELAY_SUMMARY_MIN_OUTPUTS` | `50` | Minimum significant outputs before reminding |
|
|
317
|
+
|
|
318
|
+
Example:
|
|
319
|
+
```bash
|
|
320
|
+
# Remind every 30 minutes after 100 outputs
|
|
321
|
+
export RELAY_SUMMARY_INTERVAL_MINUTES=30
|
|
322
|
+
export RELAY_SUMMARY_MIN_OUTPUTS=100
|
|
323
|
+
|
|
324
|
+
# Disable reminders entirely
|
|
325
|
+
export RELAY_SUMMARY_REMINDER_ENABLED=false
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### Cloud Persistence (Pro+ Feature)
|
|
329
|
+
|
|
330
|
+
> **Note:** Session persistence is a premium feature requiring Pro plan or higher.
|
|
331
|
+
> In cloud deployments, access is enforced at the organization level via `canUseSessionPersistence()`.
|
|
332
|
+
|
|
333
|
+
| Variable | Default | Description |
|
|
334
|
+
|----------|---------|-------------|
|
|
335
|
+
| `RELAY_CLOUD_ENABLED` | `false` | Set to `true` to enable cloud persistence (for local dev/testing) |
|
|
336
|
+
| `RELAY_WORKSPACE_ID` | Auto-generated | UUID for workspace scoping (auto-generated from project path if not set) |
|
|
337
|
+
| `DATABASE_URL` | Required | PostgreSQL connection string (required when cloud enabled) |
|
|
338
|
+
|
|
339
|
+
**Local Development:**
|
|
340
|
+
```bash
|
|
341
|
+
# Enable cloud persistence for local testing
|
|
342
|
+
export RELAY_CLOUD_ENABLED=true
|
|
343
|
+
export DATABASE_URL=postgresql://user:pass@localhost:5432/relay
|
|
344
|
+
export RELAY_WORKSPACE_ID=550e8400-e29b-41d4-a716-446655440000
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**Cloud Deployment:**
|
|
348
|
+
In cloud deployments, the `RELAY_CLOUD_ENABLED` env var is not used.
|
|
349
|
+
Instead, session persistence is enabled per-organization based on subscription:
|
|
350
|
+
- **Free plan:** Not available
|
|
351
|
+
- **Pro+ plans:** Session persistence enabled
|
|
352
|
+
|
|
353
|
+
### Priority
|
|
354
|
+
|
|
355
|
+
Environment variables take precedence over programmatic config:
|
|
356
|
+
1. Environment variable (highest priority)
|
|
357
|
+
2. `PtyWrapperConfig.summaryReminder` option
|
|
358
|
+
3. Default values (lowest priority)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Agent Policy
|
|
2
|
+
|
|
3
|
+
You are operating under organizational agent policies. These policies govern your interactions with other agents and tools.
|
|
4
|
+
|
|
5
|
+
## Your Permissions
|
|
6
|
+
|
|
7
|
+
Check the policy service for your specific permissions. If no explicit restrictions are defined, you have full permissions.
|
|
8
|
+
|
|
9
|
+
## General Rules
|
|
10
|
+
|
|
11
|
+
1. **Spawn Authorization**: Only spawn agents you are authorized to spawn. Check with Lead before spawning if unsure.
|
|
12
|
+
|
|
13
|
+
2. **Message Routing**: Only message agents you are authorized to communicate with. Use proper channels.
|
|
14
|
+
|
|
15
|
+
3. **Tool Usage**: Only use tools you are authorized to use. Read-only operations are generally safer.
|
|
16
|
+
|
|
17
|
+
4. **Rate Limits**: Respect rate limits on messages. Don't spam other agents.
|
|
18
|
+
|
|
19
|
+
## Restricted Agents
|
|
20
|
+
|
|
21
|
+
Workers and non-lead agents typically have these restrictions:
|
|
22
|
+
- Cannot spawn other agents without Lead approval
|
|
23
|
+
- Can only message Lead, Coordinator, and their assigned peers
|
|
24
|
+
- Limited to read-only tools unless explicitly granted write access
|
|
25
|
+
|
|
26
|
+
## Lead Agents
|
|
27
|
+
|
|
28
|
+
Lead agents typically have elevated permissions:
|
|
29
|
+
- Can spawn Worker agents
|
|
30
|
+
- Can message all agents
|
|
31
|
+
- Can use all tools
|
|
32
|
+
- Responsible for enforcing policy on spawned agents
|
|
33
|
+
|
|
34
|
+
## Enforcement
|
|
35
|
+
|
|
36
|
+
Policy violations are blocked at runtime. If your action is blocked, you'll receive a denial message explaining why. Do not attempt to circumvent policy restrictions.
|
|
37
|
+
|
|
38
|
+
## Checking Your Policy
|
|
39
|
+
|
|
40
|
+
To see your current policy, ask Lead or check the dashboard at `/api/policy/:workspaceId`.
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# Agent Relay Protocol (Internal)
|
|
2
|
+
|
|
3
|
+
Advanced agent-relay features for dashboard integration, session persistence, and trajectory tracking.
|
|
4
|
+
|
|
5
|
+
## Session Persistence (Required)
|
|
6
|
+
|
|
7
|
+
Output these blocks to maintain session state. **The system monitors your output for these patterns.**
|
|
8
|
+
|
|
9
|
+
### Progress Summary (Output Periodically)
|
|
10
|
+
|
|
11
|
+
When completing significant work, output a summary block:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
[[SUMMARY]]
|
|
15
|
+
{
|
|
16
|
+
"currentTask": "What you're working on now",
|
|
17
|
+
"completedTasks": ["task1", "task2"],
|
|
18
|
+
"context": "Important context for session recovery",
|
|
19
|
+
"files": ["src/file1.ts", "src/file2.ts"]
|
|
20
|
+
}
|
|
21
|
+
[[/SUMMARY]]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**When to output:**
|
|
25
|
+
- After completing a major task
|
|
26
|
+
- Before long-running operations
|
|
27
|
+
- When switching to a different area of work
|
|
28
|
+
- Every 10-15 minutes of active work
|
|
29
|
+
|
|
30
|
+
### Session End (Required on Completion)
|
|
31
|
+
|
|
32
|
+
When your work session is complete, output:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
[[SESSION_END]]
|
|
36
|
+
{
|
|
37
|
+
"summary": "Brief description of what was accomplished",
|
|
38
|
+
"completedTasks": ["task1", "task2", "task3"]
|
|
39
|
+
}
|
|
40
|
+
[[/SESSION_END]]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Or for a simple close: `[[SESSION_END]]Work complete.[[/SESSION_END]]`
|
|
44
|
+
|
|
45
|
+
**This enables:**
|
|
46
|
+
- Session recovery if connection drops
|
|
47
|
+
- Progress tracking in dashboard
|
|
48
|
+
- Proper session cleanup in cloud
|
|
49
|
+
|
|
50
|
+
## Session Continuity (Cross-Session)
|
|
51
|
+
|
|
52
|
+
Output `->continuity:` patterns to persist state across sessions. This is different from `[[SUMMARY]]` blocks - continuity creates permanent records that survive agent restarts.
|
|
53
|
+
|
|
54
|
+
### Save Session State
|
|
55
|
+
|
|
56
|
+
Save your current state to the ledger:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
->continuity:save <<<
|
|
60
|
+
Current task: Implementing user authentication
|
|
61
|
+
Completed: User model, JWT utils, Login endpoint
|
|
62
|
+
In progress: Logout endpoint, Token refresh
|
|
63
|
+
Key decisions: Using refresh tokens for security
|
|
64
|
+
Files: src/auth/jwt.ts:10-50, src/models/user.ts>>>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
To also create a permanent handoff document (recommended before long operations):
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
->continuity:save --handoff <<<
|
|
71
|
+
Current task: Implementing auth module
|
|
72
|
+
Completed: User model, JWT utils
|
|
73
|
+
Next steps: Login endpoint, Session middleware
|
|
74
|
+
Key decisions: JWT with refresh tokens, bcrypt for passwords
|
|
75
|
+
Files: src/auth/*.ts>>>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Load Previous Context
|
|
79
|
+
|
|
80
|
+
Request your previous session context (auto-loaded on startup, but can request manually):
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
->continuity:load
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Search Past Work
|
|
87
|
+
|
|
88
|
+
Search across all previous handoffs:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
->continuity:search "authentication patterns"
|
|
92
|
+
->continuity:search "database migration"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Mark Uncertain Items
|
|
96
|
+
|
|
97
|
+
Flag items that need verification in future sessions:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
->continuity:uncertain "API rate limit handling unclear"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### When to Save
|
|
104
|
+
|
|
105
|
+
**Always save before:**
|
|
106
|
+
- Long-running operations (builds, tests, deployments)
|
|
107
|
+
- Context-heavy operations (might trigger compaction)
|
|
108
|
+
- Switching to a different task area
|
|
109
|
+
- Taking a break or ending session
|
|
110
|
+
|
|
111
|
+
**Good rhythm:**
|
|
112
|
+
- Save progress every 15-20 minutes of active work
|
|
113
|
+
- Use `--handoff` flag for major milestones
|
|
114
|
+
- Mark uncertainties as you encounter them
|
|
115
|
+
|
|
116
|
+
## Work Trajectories (Required)
|
|
117
|
+
|
|
118
|
+
**Trajectory recording is MANDATORY for all agent work sessions.** Use Trail to record your work as a trajectory for future agents and humans to follow.
|
|
119
|
+
|
|
120
|
+
### Enforcement
|
|
121
|
+
|
|
122
|
+
Trajectories are enforced via hooks:
|
|
123
|
+
- **onSessionStart** → Automatically calls `trail start` with task context
|
|
124
|
+
- **onSessionEnd** → Prompts for `trail complete` if trajectory is open
|
|
125
|
+
|
|
126
|
+
If hooks are not configured, you MUST manually call trail commands. Failure to record trajectories results in lost context for future agents.
|
|
127
|
+
|
|
128
|
+
### When Starting Work
|
|
129
|
+
|
|
130
|
+
**REQUIRED: Call `trail start` BEFORE diving into implementation** - this captures your full journey, not just the end result.
|
|
131
|
+
|
|
132
|
+
Start a trajectory immediately when picking up a task:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
trail start "Implement user authentication"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
With external task reference (beads ID, ticket number):
|
|
139
|
+
```bash
|
|
140
|
+
trail start "Fix login bug" --task "agent-relay-123"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Recording Decisions
|
|
144
|
+
|
|
145
|
+
Record key decisions as you work:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
trail decision "Chose JWT over sessions" \
|
|
149
|
+
--reasoning "Stateless scaling requirements"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
For minor decisions, reasoning is optional:
|
|
153
|
+
```bash
|
|
154
|
+
trail decision "Used existing auth middleware"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Record decisions when you:**
|
|
158
|
+
- Choose between alternatives
|
|
159
|
+
- Make architectural trade-offs
|
|
160
|
+
- Decide on an approach after investigation
|
|
161
|
+
|
|
162
|
+
### Completing Work
|
|
163
|
+
|
|
164
|
+
**REQUIRED: Always close your trajectory before ending a session.** When done, complete with a retrospective:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
trail complete --summary "Added JWT auth with refresh tokens" --confidence 0.85
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Confidence levels:**
|
|
171
|
+
- 0.9+ : High confidence, well-tested
|
|
172
|
+
- 0.7-0.9 : Good confidence, standard implementation
|
|
173
|
+
- 0.5-0.7 : Some uncertainty, edge cases possible
|
|
174
|
+
- <0.5 : Significant uncertainty, needs review
|
|
175
|
+
|
|
176
|
+
### Abandoning Work
|
|
177
|
+
|
|
178
|
+
If you need to stop without completing:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
trail abandon --reason "Blocked by missing API credentials"
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Checking Status
|
|
185
|
+
|
|
186
|
+
View current trajectory:
|
|
187
|
+
```bash
|
|
188
|
+
trail status
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Why Trail?
|
|
192
|
+
|
|
193
|
+
Your trajectory helps others understand:
|
|
194
|
+
- **What** you built (commits show this)
|
|
195
|
+
- **Why** you built it this way (trajectory shows this)
|
|
196
|
+
- **What alternatives** you considered
|
|
197
|
+
- **What challenges** you faced
|
|
198
|
+
|
|
199
|
+
Future agents can query past trajectories to learn from your decisions.
|
|
200
|
+
|
|
201
|
+
## Cross-Project Messaging
|
|
202
|
+
|
|
203
|
+
When running in bridge mode (multiple projects connected), use `project:agent` format:
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
->relay:frontend:Designer <<<
|
|
207
|
+
Please update the login UI for the new auth flow>>>
|
|
208
|
+
|
|
209
|
+
->relay:backend:lead <<<
|
|
210
|
+
API question - should we use REST or GraphQL?>>>
|
|
211
|
+
|
|
212
|
+
->relay:shared-lib:* <<<
|
|
213
|
+
New utility functions available, please pull latest>>>
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Format:** `->relay:project-id:agent-name`
|
|
217
|
+
|
|
218
|
+
**Special targets:**
|
|
219
|
+
- `->relay:project:lead` - Message the lead agent of that project
|
|
220
|
+
- `->relay:project:*` - Broadcast to all agents in that project
|
|
221
|
+
- `->relay:*:*` - Broadcast to ALL agents in ALL projects
|
|
222
|
+
|
|
223
|
+
**Cross-project threads:**
|
|
224
|
+
```
|
|
225
|
+
->relay:frontend:Designer [thread:auth-feature] <<<
|
|
226
|
+
UI mockups ready for review>>>
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Dashboard Integration
|
|
230
|
+
|
|
231
|
+
The dashboard automatically tracks:
|
|
232
|
+
- Agent presence and online status
|
|
233
|
+
- Message history and threads
|
|
234
|
+
- Session summaries from `[[SUMMARY]]` blocks
|
|
235
|
+
- Trajectory status from trail commands
|
|
236
|
+
- Coordinator panel for multi-agent orchestration
|
|
237
|
+
|
|
238
|
+
Agents can view their status at the dashboard URL provided at startup.
|