@chozzz/vargos 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.templates/vargos/agent/extensions/anthropic-custom-payload.patch.json +34 -0
- package/.templates/vargos/agent/extensions/anthropic-custom-payload.ts +74 -0
- package/.templates/vargos/agent/mcp.json +9 -0
- package/.templates/vargos/agent/skills/skill-creator/SKILL.md +77 -0
- package/.templates/vargos/agent/skills/token-capture/SKILL.md +33 -0
- package/.templates/vargos/agent/skills/token-capture/scripts/capture-bearer-token.sh +139 -0
- package/.templates/vargos/agents/README +5 -0
- package/.templates/vargos/agents/default.md +7 -0
- package/.templates/vargos/config.json +1 -0
- package/.templates/vargos/cron/heartbeat.md +11 -0
- package/.templates/vargos/workspace/AGENTS.md +70 -0
- package/.templates/vargos/workspace/HEARTBEAT.md +26 -0
- package/.templates/vargos/workspace/MEMORY.md +15 -0
- package/.templates/vargos/workspace/SOUL.md +51 -0
- package/.templates/vargos/workspace/TOOLS.md +36 -0
- package/CHANGELOG.md +23 -0
- package/CODE_OF_CONDUCT.md +47 -0
- package/CONTRIBUTING.md +65 -0
- package/LICENSE +191 -0
- package/README.md +117 -0
- package/SECURITY.md +30 -0
- package/dist/.templates/vargos/agent/extensions/anthropic-custom-payload.patch.json +34 -0
- package/dist/.templates/vargos/agent/extensions/anthropic-custom-payload.ts +74 -0
- package/dist/.templates/vargos/agent/mcp.json +9 -0
- package/dist/.templates/vargos/agent/skills/skill-creator/SKILL.md +77 -0
- package/dist/.templates/vargos/agent/skills/token-capture/SKILL.md +33 -0
- package/dist/.templates/vargos/agent/skills/token-capture/scripts/capture-bearer-token.sh +139 -0
- package/dist/.templates/vargos/agents/README +5 -0
- package/dist/.templates/vargos/agents/default.md +7 -0
- package/dist/.templates/vargos/config.json +1 -0
- package/dist/.templates/vargos/cron/heartbeat.md +11 -0
- package/dist/.templates/vargos/workspace/AGENTS.md +70 -0
- package/dist/.templates/vargos/workspace/HEARTBEAT.md +26 -0
- package/dist/.templates/vargos/workspace/MEMORY.md +15 -0
- package/dist/.templates/vargos/workspace/SOUL.md +51 -0
- package/dist/.templates/vargos/workspace/TOOLS.md +36 -0
- package/dist/cli/onboard.d.ts +10 -0
- package/dist/cli/onboard.d.ts.map +1 -0
- package/dist/cli/onboard.js +207 -0
- package/dist/cli/onboard.js.map +1 -0
- package/dist/cli.d.ts +13 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +118 -0
- package/dist/cli.js.map +1 -0
- package/dist/edge/mcp/index.d.ts +33 -0
- package/dist/edge/mcp/index.d.ts.map +1 -0
- package/dist/edge/mcp/index.js +217 -0
- package/dist/edge/mcp/index.js.map +1 -0
- package/dist/edge/webhooks/index.d.ts +33 -0
- package/dist/edge/webhooks/index.d.ts.map +1 -0
- package/dist/edge/webhooks/index.js +231 -0
- package/dist/edge/webhooks/index.js.map +1 -0
- package/dist/edge/webhooks/transform.d.ts +8 -0
- package/dist/edge/webhooks/transform.d.ts.map +1 -0
- package/dist/edge/webhooks/transform.js +29 -0
- package/dist/edge/webhooks/transform.js.map +1 -0
- package/dist/gateway/bus.d.ts +48 -0
- package/dist/gateway/bus.d.ts.map +1 -0
- package/dist/gateway/bus.js +2 -0
- package/dist/gateway/bus.js.map +1 -0
- package/dist/gateway/decorators.d.ts +40 -0
- package/dist/gateway/decorators.d.ts.map +1 -0
- package/dist/gateway/decorators.js +43 -0
- package/dist/gateway/decorators.js.map +1 -0
- package/dist/gateway/emitter.d.ts +42 -0
- package/dist/gateway/emitter.d.ts.map +1 -0
- package/dist/gateway/emitter.js +259 -0
- package/dist/gateway/emitter.js.map +1 -0
- package/dist/gateway/events.d.ts +343 -0
- package/dist/gateway/events.d.ts.map +1 -0
- package/dist/gateway/events.js +7 -0
- package/dist/gateway/events.js.map +1 -0
- package/dist/gateway/tcp-server.d.ts +7 -0
- package/dist/gateway/tcp-server.d.ts.map +1 -0
- package/dist/gateway/tcp-server.js +115 -0
- package/dist/gateway/tcp-server.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/async-handlers.d.ts +13 -0
- package/dist/lib/async-handlers.d.ts.map +1 -0
- package/dist/lib/async-handlers.js +6 -0
- package/dist/lib/async-handlers.js.map +1 -0
- package/dist/lib/error-store.d.ts +19 -0
- package/dist/lib/error-store.d.ts.map +1 -0
- package/dist/lib/error-store.js +19 -0
- package/dist/lib/error-store.js.map +1 -0
- package/dist/lib/error.d.ts +11 -0
- package/dist/lib/error.d.ts.map +1 -0
- package/dist/lib/error.js +41 -0
- package/dist/lib/error.js.map +1 -0
- package/dist/lib/frontmatter.d.ts +23 -0
- package/dist/lib/frontmatter.d.ts.map +1 -0
- package/dist/lib/frontmatter.js +136 -0
- package/dist/lib/frontmatter.js.map +1 -0
- package/dist/lib/glob.d.ts +14 -0
- package/dist/lib/glob.d.ts.map +1 -0
- package/dist/lib/glob.js +22 -0
- package/dist/lib/glob.js.map +1 -0
- package/dist/lib/heartbeat.d.ts +23 -0
- package/dist/lib/heartbeat.d.ts.map +1 -0
- package/dist/lib/heartbeat.js +62 -0
- package/dist/lib/heartbeat.js.map +1 -0
- package/dist/lib/html.d.ts +8 -0
- package/dist/lib/html.d.ts.map +1 -0
- package/dist/lib/html.js +28 -0
- package/dist/lib/html.js.map +1 -0
- package/dist/lib/http-validate.d.ts +12 -0
- package/dist/lib/http-validate.d.ts.map +1 -0
- package/dist/lib/http-validate.js +11 -0
- package/dist/lib/http-validate.js.map +1 -0
- package/dist/lib/id.d.ts +3 -0
- package/dist/lib/id.d.ts.map +1 -0
- package/dist/lib/id.js +5 -0
- package/dist/lib/id.js.map +1 -0
- package/dist/lib/logger.d.ts +12 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +28 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/media-transcribe.d.ts +57 -0
- package/dist/lib/media-transcribe.d.ts.map +1 -0
- package/dist/lib/media-transcribe.js +98 -0
- package/dist/lib/media-transcribe.js.map +1 -0
- package/dist/lib/media.d.ts +7 -0
- package/dist/lib/media.d.ts.map +1 -0
- package/dist/lib/media.js +18 -0
- package/dist/lib/media.js.map +1 -0
- package/dist/lib/mime.d.ts +6 -0
- package/dist/lib/mime.d.ts.map +1 -0
- package/dist/lib/mime.js +71 -0
- package/dist/lib/mime.js.map +1 -0
- package/dist/lib/paginate.d.ts +3 -0
- package/dist/lib/paginate.d.ts.map +1 -0
- package/dist/lib/paginate.js +5 -0
- package/dist/lib/paginate.js.map +1 -0
- package/dist/lib/paths.d.ts +14 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +29 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/provider-loader.d.ts +10 -0
- package/dist/lib/provider-loader.d.ts.map +1 -0
- package/dist/lib/provider-loader.js +24 -0
- package/dist/lib/provider-loader.js.map +1 -0
- package/dist/lib/retry.d.ts +20 -0
- package/dist/lib/retry.d.ts.map +1 -0
- package/dist/lib/retry.js +40 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/safe-async.d.ts +27 -0
- package/dist/lib/safe-async.d.ts.map +1 -0
- package/dist/lib/safe-async.js +38 -0
- package/dist/lib/safe-async.js.map +1 -0
- package/dist/lib/skills.d.ts +9 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +15 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/sleep.d.ts +6 -0
- package/dist/lib/sleep.d.ts.map +1 -0
- package/dist/lib/sleep.js +22 -0
- package/dist/lib/sleep.js.map +1 -0
- package/dist/lib/strip-markdown.d.ts +7 -0
- package/dist/lib/strip-markdown.d.ts.map +1 -0
- package/dist/lib/strip-markdown.js +32 -0
- package/dist/lib/strip-markdown.js.map +1 -0
- package/dist/lib/subagent.d.ts +14 -0
- package/dist/lib/subagent.d.ts.map +1 -0
- package/dist/lib/subagent.js +25 -0
- package/dist/lib/subagent.js.map +1 -0
- package/dist/lib/templates.d.ts +8 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +39 -0
- package/dist/lib/templates.js.map +1 -0
- package/dist/lib/timeout.d.ts +6 -0
- package/dist/lib/timeout.d.ts.map +1 -0
- package/dist/lib/timeout.js +11 -0
- package/dist/lib/timeout.js.map +1 -0
- package/dist/lib/truncate.d.ts +11 -0
- package/dist/lib/truncate.d.ts.map +1 -0
- package/dist/lib/truncate.js +17 -0
- package/dist/lib/truncate.js.map +1 -0
- package/dist/lib/url-expand.d.ts +22 -0
- package/dist/lib/url-expand.d.ts.map +1 -0
- package/dist/lib/url-expand.js +74 -0
- package/dist/lib/url-expand.js.map +1 -0
- package/dist/scripts/migrate-cron-sessions.d.ts +10 -0
- package/dist/scripts/migrate-cron-sessions.d.ts.map +1 -0
- package/dist/scripts/migrate-cron-sessions.js +139 -0
- package/dist/scripts/migrate-cron-sessions.js.map +1 -0
- package/dist/scripts/seed.d.ts +2 -0
- package/dist/scripts/seed.d.ts.map +1 -0
- package/dist/scripts/seed.js +4 -0
- package/dist/scripts/seed.js.map +1 -0
- package/dist/services/agent/directives.d.ts +14 -0
- package/dist/services/agent/directives.d.ts.map +1 -0
- package/dist/services/agent/directives.js +32 -0
- package/dist/services/agent/directives.js.map +1 -0
- package/dist/services/agent/index.d.ts +104 -0
- package/dist/services/agent/index.d.ts.map +1 -0
- package/dist/services/agent/index.js +534 -0
- package/dist/services/agent/index.js.map +1 -0
- package/dist/services/agent/persona.d.ts +15 -0
- package/dist/services/agent/persona.d.ts.map +1 -0
- package/dist/services/agent/persona.js +63 -0
- package/dist/services/agent/persona.js.map +1 -0
- package/dist/services/agent/prompt-interpolate.d.ts +41 -0
- package/dist/services/agent/prompt-interpolate.d.ts.map +1 -0
- package/dist/services/agent/prompt-interpolate.js +102 -0
- package/dist/services/agent/prompt-interpolate.js.map +1 -0
- package/dist/services/agent/schema.d.ts +10 -0
- package/dist/services/agent/schema.d.ts.map +1 -0
- package/dist/services/agent/schema.js +5 -0
- package/dist/services/agent/schema.js.map +1 -0
- package/dist/services/agent/tools.d.ts +26 -0
- package/dist/services/agent/tools.d.ts.map +1 -0
- package/dist/services/agent/tools.js +85 -0
- package/dist/services/agent/tools.js.map +1 -0
- package/dist/services/channels/base-adapter.d.ts +61 -0
- package/dist/services/channels/base-adapter.d.ts.map +1 -0
- package/dist/services/channels/base-adapter.js +181 -0
- package/dist/services/channels/base-adapter.js.map +1 -0
- package/dist/services/channels/contracts.d.ts +75 -0
- package/dist/services/channels/contracts.d.ts.map +1 -0
- package/dist/services/channels/contracts.js +6 -0
- package/dist/services/channels/contracts.js.map +1 -0
- package/dist/services/channels/debounce.d.ts +22 -0
- package/dist/services/channels/debounce.d.ts.map +1 -0
- package/dist/services/channels/debounce.js +53 -0
- package/dist/services/channels/debounce.js.map +1 -0
- package/dist/services/channels/dedupe.d.ts +19 -0
- package/dist/services/channels/dedupe.d.ts.map +1 -0
- package/dist/services/channels/dedupe.js +52 -0
- package/dist/services/channels/dedupe.js.map +1 -0
- package/dist/services/channels/delivery.d.ts +12 -0
- package/dist/services/channels/delivery.d.ts.map +1 -0
- package/dist/services/channels/delivery.js +53 -0
- package/dist/services/channels/delivery.js.map +1 -0
- package/dist/services/channels/index.d.ts +53 -0
- package/dist/services/channels/index.d.ts.map +1 -0
- package/dist/services/channels/index.js +405 -0
- package/dist/services/channels/index.js.map +1 -0
- package/dist/services/channels/link-expand.d.ts +8 -0
- package/dist/services/channels/link-expand.d.ts.map +1 -0
- package/dist/services/channels/link-expand.js +28 -0
- package/dist/services/channels/link-expand.js.map +1 -0
- package/dist/services/channels/media-extract.d.ts +7 -0
- package/dist/services/channels/media-extract.d.ts.map +1 -0
- package/dist/services/channels/media-extract.js +31 -0
- package/dist/services/channels/media-extract.js.map +1 -0
- package/dist/services/channels/pipeline.d.ts +29 -0
- package/dist/services/channels/pipeline.d.ts.map +1 -0
- package/dist/services/channels/pipeline.js +120 -0
- package/dist/services/channels/pipeline.js.map +1 -0
- package/dist/services/channels/provider-loader.d.ts +7 -0
- package/dist/services/channels/provider-loader.d.ts.map +1 -0
- package/dist/services/channels/provider-loader.js +13 -0
- package/dist/services/channels/provider-loader.js.map +1 -0
- package/dist/services/channels/providers/telegram/adapter.d.ts +34 -0
- package/dist/services/channels/providers/telegram/adapter.d.ts.map +1 -0
- package/dist/services/channels/providers/telegram/adapter.js +278 -0
- package/dist/services/channels/providers/telegram/adapter.js.map +1 -0
- package/dist/services/channels/providers/telegram/index.d.ts +11 -0
- package/dist/services/channels/providers/telegram/index.d.ts.map +1 -0
- package/dist/services/channels/providers/telegram/index.js +11 -0
- package/dist/services/channels/providers/telegram/index.js.map +1 -0
- package/dist/services/channels/providers/telegram/normalizer.d.ts +12 -0
- package/dist/services/channels/providers/telegram/normalizer.d.ts.map +1 -0
- package/dist/services/channels/providers/telegram/normalizer.js +50 -0
- package/dist/services/channels/providers/telegram/normalizer.js.map +1 -0
- package/dist/services/channels/providers/telegram/types.d.ts +72 -0
- package/dist/services/channels/providers/telegram/types.d.ts.map +1 -0
- package/dist/services/channels/providers/telegram/types.js +3 -0
- package/dist/services/channels/providers/telegram/types.js.map +1 -0
- package/dist/services/channels/providers/whatsapp/adapter.d.ts +36 -0
- package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +1 -0
- package/dist/services/channels/providers/whatsapp/adapter.js +261 -0
- package/dist/services/channels/providers/whatsapp/adapter.js.map +1 -0
- package/dist/services/channels/providers/whatsapp/index.d.ts +11 -0
- package/dist/services/channels/providers/whatsapp/index.d.ts.map +1 -0
- package/dist/services/channels/providers/whatsapp/index.js +11 -0
- package/dist/services/channels/providers/whatsapp/index.js.map +1 -0
- package/dist/services/channels/providers/whatsapp/normalizer.d.ts +11 -0
- package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +1 -0
- package/dist/services/channels/providers/whatsapp/normalizer.js +47 -0
- package/dist/services/channels/providers/whatsapp/normalizer.js.map +1 -0
- package/dist/services/channels/providers/whatsapp/session.d.ts +9 -0
- package/dist/services/channels/providers/whatsapp/session.d.ts.map +1 -0
- package/dist/services/channels/providers/whatsapp/session.js +118 -0
- package/dist/services/channels/providers/whatsapp/session.js.map +1 -0
- package/dist/services/channels/providers/whatsapp/types.d.ts +23 -0
- package/dist/services/channels/providers/whatsapp/types.d.ts.map +1 -0
- package/dist/services/channels/providers/whatsapp/types.js +3 -0
- package/dist/services/channels/providers/whatsapp/types.js.map +1 -0
- package/dist/services/channels/reconnect.d.ts +23 -0
- package/dist/services/channels/reconnect.d.ts.map +1 -0
- package/dist/services/channels/reconnect.js +32 -0
- package/dist/services/channels/reconnect.js.map +1 -0
- package/dist/services/channels/status-reactions.d.ts +27 -0
- package/dist/services/channels/status-reactions.d.ts.map +1 -0
- package/dist/services/channels/status-reactions.js +63 -0
- package/dist/services/channels/status-reactions.js.map +1 -0
- package/dist/services/channels/types.d.ts +16 -0
- package/dist/services/channels/types.d.ts.map +1 -0
- package/dist/services/channels/types.js +2 -0
- package/dist/services/channels/types.js.map +1 -0
- package/dist/services/channels/typing-state.d.ts +22 -0
- package/dist/services/channels/typing-state.d.ts.map +1 -0
- package/dist/services/channels/typing-state.js +88 -0
- package/dist/services/channels/typing-state.js.map +1 -0
- package/dist/services/config/index.d.ts +2426 -0
- package/dist/services/config/index.d.ts.map +1 -0
- package/dist/services/config/index.js +232 -0
- package/dist/services/config/index.js.map +1 -0
- package/dist/services/config/schemas/agent.d.ts +720 -0
- package/dist/services/config/schemas/agent.d.ts.map +1 -0
- package/dist/services/config/schemas/agent.js +86 -0
- package/dist/services/config/schemas/agent.js.map +1 -0
- package/dist/services/config/schemas/auth.d.ts +60 -0
- package/dist/services/config/schemas/auth.d.ts.map +1 -0
- package/dist/services/config/schemas/auth.js +18 -0
- package/dist/services/config/schemas/auth.js.map +1 -0
- package/dist/services/config/schemas/channels.d.ts +117 -0
- package/dist/services/config/schemas/channels.d.ts.map +1 -0
- package/dist/services/config/schemas/channels.js +22 -0
- package/dist/services/config/schemas/channels.js.map +1 -0
- package/dist/services/config/schemas/cron.d.ts +97 -0
- package/dist/services/config/schemas/cron.d.ts.map +1 -0
- package/dist/services/config/schemas/cron.js +18 -0
- package/dist/services/config/schemas/cron.js.map +1 -0
- package/dist/services/config/schemas/features.d.ts +43 -0
- package/dist/services/config/schemas/features.d.ts.map +1 -0
- package/dist/services/config/schemas/features.js +20 -0
- package/dist/services/config/schemas/features.js.map +1 -0
- package/dist/services/config/schemas/index.d.ts +24 -0
- package/dist/services/config/schemas/index.d.ts.map +1 -0
- package/dist/services/config/schemas/index.js +24 -0
- package/dist/services/config/schemas/index.js.map +1 -0
- package/dist/services/config/schemas/mcp.d.ts +31 -0
- package/dist/services/config/schemas/mcp.d.ts.map +1 -0
- package/dist/services/config/schemas/mcp.js +39 -0
- package/dist/services/config/schemas/mcp.js.map +1 -0
- package/dist/services/config/schemas/primitives.d.ts +13 -0
- package/dist/services/config/schemas/primitives.d.ts.map +1 -0
- package/dist/services/config/schemas/primitives.js +17 -0
- package/dist/services/config/schemas/primitives.js.map +1 -0
- package/dist/services/config/schemas/providers.d.ts +335 -0
- package/dist/services/config/schemas/providers.d.ts.map +1 -0
- package/dist/services/config/schemas/providers.js +27 -0
- package/dist/services/config/schemas/providers.js.map +1 -0
- package/dist/services/config/schemas/storage.d.ts +16 -0
- package/dist/services/config/schemas/storage.d.ts.map +1 -0
- package/dist/services/config/schemas/storage.js +9 -0
- package/dist/services/config/schemas/storage.js.map +1 -0
- package/dist/services/config/schemas/webhooks.d.ts +25 -0
- package/dist/services/config/schemas/webhooks.d.ts.map +1 -0
- package/dist/services/config/schemas/webhooks.js +12 -0
- package/dist/services/config/schemas/webhooks.js.map +1 -0
- package/dist/services/cron/index.d.ts +50 -0
- package/dist/services/cron/index.d.ts.map +1 -0
- package/dist/services/cron/index.js +460 -0
- package/dist/services/cron/index.js.map +1 -0
- package/dist/services/log/index.d.ts +14 -0
- package/dist/services/log/index.d.ts.map +1 -0
- package/dist/services/log/index.js +137 -0
- package/dist/services/log/index.js.map +1 -0
- package/dist/services/mcp-client/index.d.ts +37 -0
- package/dist/services/mcp-client/index.d.ts.map +1 -0
- package/dist/services/mcp-client/index.js +258 -0
- package/dist/services/mcp-client/index.js.map +1 -0
- package/dist/services/media/extract-document.d.ts +8 -0
- package/dist/services/media/extract-document.d.ts.map +1 -0
- package/dist/services/media/extract-document.js +85 -0
- package/dist/services/media/extract-document.js.map +1 -0
- package/dist/services/media/index.d.ts +21 -0
- package/dist/services/media/index.d.ts.map +1 -0
- package/dist/services/media/index.js +116 -0
- package/dist/services/media/index.js.map +1 -0
- package/dist/services/media/providers/anthropic.d.ts +6 -0
- package/dist/services/media/providers/anthropic.d.ts.map +1 -0
- package/dist/services/media/providers/anthropic.js +38 -0
- package/dist/services/media/providers/anthropic.js.map +1 -0
- package/dist/services/media/providers/index.d.ts +6 -0
- package/dist/services/media/providers/index.d.ts.map +1 -0
- package/dist/services/media/providers/index.js +15 -0
- package/dist/services/media/providers/index.js.map +1 -0
- package/dist/services/media/providers/openai.d.ts +6 -0
- package/dist/services/media/providers/openai.d.ts.map +1 -0
- package/dist/services/media/providers/openai.js +48 -0
- package/dist/services/media/providers/openai.js.map +1 -0
- package/dist/services/media/providers/provider.d.ts +5 -0
- package/dist/services/media/providers/provider.d.ts.map +1 -0
- package/dist/services/media/providers/provider.js +2 -0
- package/dist/services/media/providers/provider.js.map +1 -0
- package/dist/services/memory/chunker.d.ts +7 -0
- package/dist/services/memory/chunker.d.ts.map +1 -0
- package/dist/services/memory/chunker.js +46 -0
- package/dist/services/memory/chunker.js.map +1 -0
- package/dist/services/memory/context.d.ts +68 -0
- package/dist/services/memory/context.d.ts.map +1 -0
- package/dist/services/memory/context.js +223 -0
- package/dist/services/memory/context.js.map +1 -0
- package/dist/services/memory/embedding.d.ts +9 -0
- package/dist/services/memory/embedding.d.ts.map +1 -0
- package/dist/services/memory/embedding.js +49 -0
- package/dist/services/memory/embedding.js.map +1 -0
- package/dist/services/memory/index.d.ts +24 -0
- package/dist/services/memory/index.d.ts.map +1 -0
- package/dist/services/memory/index.js +140 -0
- package/dist/services/memory/index.js.map +1 -0
- package/dist/services/memory/session-indexer.d.ts +5 -0
- package/dist/services/memory/session-indexer.d.ts.map +1 -0
- package/dist/services/memory/session-indexer.js +62 -0
- package/dist/services/memory/session-indexer.js.map +1 -0
- package/dist/services/memory/sqlite-storage.d.ts +23 -0
- package/dist/services/memory/sqlite-storage.d.ts.map +1 -0
- package/dist/services/memory/sqlite-storage.js +75 -0
- package/dist/services/memory/sqlite-storage.js.map +1 -0
- package/dist/services/memory/types.d.ts +31 -0
- package/dist/services/memory/types.d.ts.map +1 -0
- package/dist/services/memory/types.js +2 -0
- package/dist/services/memory/types.js.map +1 -0
- package/dist/services/web/index.d.ts +9 -0
- package/dist/services/web/index.d.ts.map +1 -0
- package/dist/services/web/index.js +101 -0
- package/dist/services/web/index.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +9 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$delete": [],
|
|
3
|
+
"system": [
|
|
4
|
+
{
|
|
5
|
+
"type": "text",
|
|
6
|
+
"text": "x-anthropic-billing-header: cc_version=2.1.128.f9a; cc_entrypoint=cli; cch=d7aea;"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"type": "text",
|
|
10
|
+
"text": "You are Claude Code, Anthropic's official CLI for Claude."
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"metadata": {
|
|
14
|
+
"user_id": "{\"device_id\":\"ad2cf8e99a031135d1807fdb302047d8ffbfe4175ed57233c353f1954319645b\",\"account_uuid\":\"c128bcc0-fda2-4388-8210-16e9d5bca3ee\",\"session_id\":\"44ddb21a-2d78-4d07-a0ef-f2e1ed8d00c0\"}"
|
|
15
|
+
},
|
|
16
|
+
"max_tokens": 64000,
|
|
17
|
+
"thinking": {
|
|
18
|
+
"type": "adaptive"
|
|
19
|
+
},
|
|
20
|
+
"context_management": {
|
|
21
|
+
"edits": [
|
|
22
|
+
{
|
|
23
|
+
"type": "clear_thinking_20251015",
|
|
24
|
+
"keep": "all"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"output_config": {
|
|
29
|
+
"effort": "xhigh"
|
|
30
|
+
},
|
|
31
|
+
"diagnostics": {
|
|
32
|
+
"previous_message_id": null
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
7
|
+
|
|
8
|
+
type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };
|
|
9
|
+
type JsonObject = { [key: string]: JsonValue };
|
|
10
|
+
|
|
11
|
+
function isObject(value: unknown): value is JsonObject {
|
|
12
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function deepMerge(base: JsonValue, patch: JsonValue): JsonValue {
|
|
16
|
+
if (!isObject(base) || !isObject(patch)) return patch;
|
|
17
|
+
const merged: JsonObject = { ...base };
|
|
18
|
+
for (const [key, patchValue] of Object.entries(patch)) {
|
|
19
|
+
const baseValue = merged[key];
|
|
20
|
+
if (isObject(baseValue) && isObject(patchValue)) {
|
|
21
|
+
merged[key] = deepMerge(baseValue, patchValue);
|
|
22
|
+
} else {
|
|
23
|
+
merged[key] = patchValue;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return merged;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function loadPatch(patchPath: string): JsonObject | undefined {
|
|
30
|
+
if (!existsSync(patchPath)) return undefined;
|
|
31
|
+
try {
|
|
32
|
+
const raw = readFileSync(patchPath, "utf8");
|
|
33
|
+
const parsed = JSON.parse(raw) as unknown;
|
|
34
|
+
if (!isObject(parsed)) return undefined;
|
|
35
|
+
return parsed;
|
|
36
|
+
} catch {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default function anthropicCustomPayloadPatch(pi: ExtensionAPI) {
|
|
42
|
+
const patchPath = join(process.env.HOME ?? "", ".vargos", "agent", "extensions", "anthropic-custom-payload.patch.json");
|
|
43
|
+
|
|
44
|
+
pi.on("before_provider_request", (event, ctx) => {
|
|
45
|
+
if (!isObject(event.payload)) return;
|
|
46
|
+
const provider = event.payload["provider"];
|
|
47
|
+
const modelInPayload = event.payload["model"];
|
|
48
|
+
const modelProvider = ctx.model?.provider;
|
|
49
|
+
|
|
50
|
+
// Prefer ctx.model (authoritative). Payload may omit provider.
|
|
51
|
+
const isAnthropicRequest =
|
|
52
|
+
modelProvider === "anthropic-custom" ||
|
|
53
|
+
(typeof provider === "string" && provider === "anthropic-custom") ||
|
|
54
|
+
(typeof modelInPayload === "string" && modelInPayload.toLowerCase().includes("claude"));
|
|
55
|
+
if (!isAnthropicRequest) return;
|
|
56
|
+
|
|
57
|
+
const patch = loadPatch(patchPath);
|
|
58
|
+
if (!patch) return;
|
|
59
|
+
|
|
60
|
+
const patchDeletes = Array.isArray(patch["$delete"])
|
|
61
|
+
? patch["$delete"].filter((k): k is string => typeof k === "string")
|
|
62
|
+
: [];
|
|
63
|
+
|
|
64
|
+
const { $delete: _delete, ...patchWithoutDelete } = patch;
|
|
65
|
+
const merged = deepMerge(event.payload, patchWithoutDelete);
|
|
66
|
+
if (!isObject(merged)) return merged;
|
|
67
|
+
|
|
68
|
+
for (const key of patchDeletes) {
|
|
69
|
+
delete merged[key];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return merged;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vargos-skill-creator
|
|
3
|
+
description: Use when the user wants to create or update a skill — a SKILL.md plus optional scripts/references/assets that extends the agent with procedural knowledge for a specific domain.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VARGOS Skill Creator
|
|
7
|
+
|
|
8
|
+
Skills give the agent procedural knowledge keyed to conversational triggers — so repeated tasks finish faster with less back-and-forth. A skill can be a lone SKILL.md prompt, a single script, a wrapped open-source repo, or the full tree below; pick the smallest form that does the job.
|
|
9
|
+
|
|
10
|
+
They live in `~/.vargos/agent/skills/<name>/` and auto-load into VARGOS; other orchestrators can discover the same directory.
|
|
11
|
+
|
|
12
|
+
## Rules
|
|
13
|
+
|
|
14
|
+
- **Concise.** The agent is already smart. Add only what it doesn't know. Every line must earn its tokens.
|
|
15
|
+
- **Progressive disclosure.** Frontmatter (`name` + `description`) is always loaded; body loads on trigger; bundled files load on demand.
|
|
16
|
+
- **Imperative body.** No "When to use" section — that's the description's job.
|
|
17
|
+
- **Match freedom to fragility.** Prose for open-ended work, parameterised scripts for repeatable patterns, exact scripts for fragile sequences.
|
|
18
|
+
|
|
19
|
+
## Layout
|
|
20
|
+
|
|
21
|
+
Maximal form — drop anything you don't need:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
<skill-name>/
|
|
25
|
+
├── SKILL.md required
|
|
26
|
+
├── scripts/ optional — executable, deterministic
|
|
27
|
+
├── references/ optional — loaded on demand (TOC if >100 lines)
|
|
28
|
+
└── assets/ optional — copied into output (templates, boilerplate)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Skip `README.md`, `CHANGELOG.md`, etc. Skills are agent-facing.
|
|
32
|
+
|
|
33
|
+
## Frontmatter
|
|
34
|
+
|
|
35
|
+
Only `name` and `description`. The description is the trigger — state what + when.
|
|
36
|
+
|
|
37
|
+
```yaml
|
|
38
|
+
---
|
|
39
|
+
name: pdf-editor
|
|
40
|
+
description: Edit, rotate, merge, split PDFs. Use when the user asks to modify PDF content or rearrange pages.
|
|
41
|
+
---
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Scripts
|
|
45
|
+
|
|
46
|
+
Shebang, `set -euo pipefail` (bash), header with purpose/inputs/outputs, idempotent, <80 lines.
|
|
47
|
+
|
|
48
|
+
## Workflow
|
|
49
|
+
|
|
50
|
+
1. Get 3–5 concrete user requests the skill must handle.
|
|
51
|
+
2. Identify shared scripts/references/assets across them.
|
|
52
|
+
3. `mkdir -p <root>/skills/<name>` plus only the subdirs you'll use.
|
|
53
|
+
4. Write SKILL.md — frontmatter, then imperative body, reference bundled files by relative path.
|
|
54
|
+
5. Test scripts by running them. Iterate from real use.
|
|
55
|
+
|
|
56
|
+
## Naming
|
|
57
|
+
|
|
58
|
+
Lowercase kebab-case. Directory name == `name` field. Singular noun (domain) or verb (action).
|
|
59
|
+
|
|
60
|
+
## Minimal example
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
git-tidy/
|
|
64
|
+
├── SKILL.md
|
|
65
|
+
└── scripts/prune-merged.sh
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
---
|
|
70
|
+
name: git-tidy
|
|
71
|
+
description: Clean up merged local git branches. Use when the user asks to prune stale branches.
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
# git-tidy
|
|
75
|
+
|
|
76
|
+
Run `scripts/prune-merged.sh` from the repo root. Pass `--squashed` (with user confirmation) for branches whose PRs were squash-merged.
|
|
77
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: token-capture
|
|
3
|
+
description: Capture and print the bearer token used by Claude API calls. Use when the user wants to automate extracting the Authorization token from requests to /v1/messages.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Claude Bearer Token
|
|
7
|
+
|
|
8
|
+
Run `scripts/capture-bearer-token.sh` to perform the full flow:
|
|
9
|
+
|
|
10
|
+
1. Start a local mitm proxy on port `9121` by default (override with `-p` or `PORT`).
|
|
11
|
+
2. Run `claude -p "<prompt>"` with `HTTP_PROXY/HTTPS_PROXY` and `NODE_TLS_REJECT_UNAUTHORIZED=0`.
|
|
12
|
+
3. Capture the `Authorization` header from `/v1/messages`.
|
|
13
|
+
4. Print only the bearer token value.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
~/.vargos/agent/skills/token-capture/scripts/capture-bearer-token.sh "hello"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
~/.vargos/agent/skills/token-capture/scripts/capture-bearer-token.sh -v -p 9121 "hello"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Options:
|
|
26
|
+
|
|
27
|
+
- `-v` verbose logs (stderr)
|
|
28
|
+
- `-p <port>` proxy port (default: `9121`)
|
|
29
|
+
|
|
30
|
+
Optional env vars:
|
|
31
|
+
|
|
32
|
+
- `PORT` (default: `9121`)
|
|
33
|
+
- `TIMEOUT_SECONDS` (default: `30`)
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# purpose: capture Claude bearer token via local MITM proxy
|
|
3
|
+
# inputs: -v (verbose), -p <port>, prompt text (optional), TIMEOUT_SECONDS (optional)
|
|
4
|
+
# outputs: bearer token to stdout
|
|
5
|
+
# last-used: 2026-05-07
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
require_cmd() {
|
|
9
|
+
if ! command -v "$1" >/dev/null 2>&1; then
|
|
10
|
+
echo "Error: required command '$1' was not found in PATH." >&2
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
usage() {
|
|
16
|
+
echo "Usage: $(basename "$0") [-v] [-p port] [prompt]" >&2
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
log() {
|
|
20
|
+
if [[ "${VERBOSE:-0}" == "1" ]]; then
|
|
21
|
+
echo "[token-capture] $*" >&2
|
|
22
|
+
fi
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
require_cmd claude
|
|
26
|
+
require_cmd mitmdump
|
|
27
|
+
|
|
28
|
+
VERBOSE=0
|
|
29
|
+
PORT="${PORT:-9121}"
|
|
30
|
+
TIMEOUT_SECONDS="${TIMEOUT_SECONDS:-30}"
|
|
31
|
+
|
|
32
|
+
while getopts ":vp:h" opt; do
|
|
33
|
+
case "$opt" in
|
|
34
|
+
v) VERBOSE=1 ;;
|
|
35
|
+
p) PORT="$OPTARG" ;;
|
|
36
|
+
h)
|
|
37
|
+
usage
|
|
38
|
+
exit 0
|
|
39
|
+
;;
|
|
40
|
+
:)
|
|
41
|
+
echo "Error: -$OPTARG requires a value." >&2
|
|
42
|
+
usage
|
|
43
|
+
exit 1
|
|
44
|
+
;;
|
|
45
|
+
\?)
|
|
46
|
+
echo "Error: invalid option -$OPTARG" >&2
|
|
47
|
+
usage
|
|
48
|
+
exit 1
|
|
49
|
+
;;
|
|
50
|
+
esac
|
|
51
|
+
done
|
|
52
|
+
shift "$((OPTIND - 1))"
|
|
53
|
+
|
|
54
|
+
PROMPT="${1:-hello}"
|
|
55
|
+
|
|
56
|
+
WORK_DIR="$(mktemp -d)"
|
|
57
|
+
ADDON_FILE="$WORK_DIR/capture_auth.py"
|
|
58
|
+
TOKEN_FILE="$WORK_DIR/token.txt"
|
|
59
|
+
MITM_LOG="$WORK_DIR/mitm.log"
|
|
60
|
+
CLAUDE_LOG="$WORK_DIR/claude.log"
|
|
61
|
+
|
|
62
|
+
cleanup() {
|
|
63
|
+
if [[ -n "${MITM_PID:-}" ]]; then
|
|
64
|
+
kill "$MITM_PID" >/dev/null 2>&1 || true
|
|
65
|
+
fi
|
|
66
|
+
if [[ -n "${CLAUDE_PID:-}" ]]; then
|
|
67
|
+
kill "$CLAUDE_PID" >/dev/null 2>&1 || true
|
|
68
|
+
fi
|
|
69
|
+
rm -rf "$WORK_DIR"
|
|
70
|
+
}
|
|
71
|
+
trap cleanup EXIT
|
|
72
|
+
|
|
73
|
+
cat > "$ADDON_FILE" <<'PY'
|
|
74
|
+
from mitmproxy import ctx, http
|
|
75
|
+
import os
|
|
76
|
+
|
|
77
|
+
TOKEN_OUT = os.environ["TOKEN_OUT"]
|
|
78
|
+
|
|
79
|
+
class CaptureAuth:
|
|
80
|
+
def request(self, flow: http.HTTPFlow) -> None:
|
|
81
|
+
if "/v1/messages" not in flow.request.pretty_url:
|
|
82
|
+
return
|
|
83
|
+
auth = flow.request.headers.get("Authorization", "").strip()
|
|
84
|
+
if not auth:
|
|
85
|
+
return
|
|
86
|
+
with open(TOKEN_OUT, "w", encoding="utf-8") as f:
|
|
87
|
+
f.write(auth)
|
|
88
|
+
ctx.master.shutdown()
|
|
89
|
+
|
|
90
|
+
addons = [CaptureAuth()]
|
|
91
|
+
PY
|
|
92
|
+
|
|
93
|
+
TOKEN_OUT="$TOKEN_FILE" mitmdump --mode regular --listen-port "$PORT" -s "$ADDON_FILE" >"$MITM_LOG" 2>&1 &
|
|
94
|
+
MITM_PID=$!
|
|
95
|
+
log "mitmdump started (pid=$MITM_PID, port=$PORT)"
|
|
96
|
+
|
|
97
|
+
sleep 1
|
|
98
|
+
|
|
99
|
+
NODE_TLS_REJECT_UNAUTHORIZED=0 \
|
|
100
|
+
HTTPS_PROXY="http://127.0.0.1:$PORT" \
|
|
101
|
+
HTTP_PROXY="http://127.0.0.1:$PORT" \
|
|
102
|
+
claude -p "$PROMPT" >"$CLAUDE_LOG" 2>&1 &
|
|
103
|
+
CLAUDE_PID=$!
|
|
104
|
+
log "claude started (pid=$CLAUDE_PID)"
|
|
105
|
+
|
|
106
|
+
START_TIME="$(date +%s)"
|
|
107
|
+
while [[ ! -s "$TOKEN_FILE" ]]; do
|
|
108
|
+
NOW="$(date +%s)"
|
|
109
|
+
if (( NOW - START_TIME >= TIMEOUT_SECONDS )); then
|
|
110
|
+
break
|
|
111
|
+
fi
|
|
112
|
+
if ! kill -0 "$MITM_PID" >/dev/null 2>&1; then
|
|
113
|
+
break
|
|
114
|
+
fi
|
|
115
|
+
if ! kill -0 "$CLAUDE_PID" >/dev/null 2>&1; then
|
|
116
|
+
break
|
|
117
|
+
fi
|
|
118
|
+
sleep 0.2
|
|
119
|
+
done
|
|
120
|
+
|
|
121
|
+
if [[ ! -s "$TOKEN_FILE" ]]; then
|
|
122
|
+
echo "Error: failed to capture Authorization header from /v1/messages." >&2
|
|
123
|
+
echo "Check that Claude made a request and proxy port $PORT was reachable." >&2
|
|
124
|
+
if [[ "$VERBOSE" == "1" ]]; then
|
|
125
|
+
echo "--- mitmdump log ---" >&2
|
|
126
|
+
sed -n '1,120p' "$MITM_LOG" >&2 || true
|
|
127
|
+
echo "--- claude log ---" >&2
|
|
128
|
+
sed -n '1,120p' "$CLAUDE_LOG" >&2 || true
|
|
129
|
+
fi
|
|
130
|
+
exit 2
|
|
131
|
+
fi
|
|
132
|
+
|
|
133
|
+
AUTH_HEADER="$(<"$TOKEN_FILE")"
|
|
134
|
+
AUTH_HEADER="${AUTH_HEADER//$'\r'/}"
|
|
135
|
+
if [[ "$AUTH_HEADER" == Bearer\ * ]]; then
|
|
136
|
+
printf '%s\n' "${AUTH_HEADER#Bearer }"
|
|
137
|
+
else
|
|
138
|
+
printf '%s\n' "$AUTH_HEADER"
|
|
139
|
+
fi
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Glob whitelist of bus tools the channel agent can call (e.g. "memory.*", "channel.send").
|
|
3
|
+
# Empty/missing = all bus tools allowed. Built-in Pi tools (read/bash/edit/write) always available.
|
|
4
|
+
allowedTools: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<!-- Channel-specific instructions appended to the merged bootstrap (AGENTS.md/SOUL.md/TOOLS.md). Leave empty to inherit defaults only. -->
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: heartbeat
|
|
3
|
+
name: Heartbeat
|
|
4
|
+
schedule: "*/30 * * * *"
|
|
5
|
+
enabled: true
|
|
6
|
+
notify: []
|
|
7
|
+
activeHours: [8, 22]
|
|
8
|
+
activeHoursTimezone: "Australia/Sydney"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Heartbeat poll. Read ${WORKSPACE_DIR}/HEARTBEAT.md for detailed instructions. Follow each task strictly. Use memory.search, memory.read, memory.write bus calls as needed. Use interpolation vars in your prompts: ${WORKSPACE_DIR}, ${DATA_DIR}, etc. If all tasks complete successfully with no issues found, reply with exactly: HEARTBEAT_OK
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
## Self-Awareness
|
|
2
|
+
|
|
3
|
+
You are an expert coding assistant run on VARGOS, a local agentic architecture and system with persistent memory, tool access, multi-channel presence, scheduled autonomy, and sub-agent delegation. You maintain it on user-controlled hardware.
|
|
4
|
+
|
|
5
|
+
Current Date: `${CURRENT_DATE}`
|
|
6
|
+
## Playbook
|
|
7
|
+
|
|
8
|
+
- `AGENTS.md`, `SOUL.md`, `TOOLS.md` from `${WORKSPACE_DIR}` are already in context — don't re-read.
|
|
9
|
+
- For recent context, read `memory/YYYY-MM-DD.md`. Use `memory.search` for older/topic-specific queries.
|
|
10
|
+
- Be diligent, if you think user needs a reminder — offer to schedule a cron task via `cron.add`. Set the task's `notify` to this existing channel's key. When in doubt, review existing crons for references.
|
|
11
|
+
|
|
12
|
+
## Paths
|
|
13
|
+
|
|
14
|
+
VARGOS data directory path is stored at `${DATA_DIR}`, consists of:
|
|
15
|
+
|
|
16
|
+
- Workspace: `${WORKSPACE_DIR}`
|
|
17
|
+
- Sessions: `${SESSIONS_DIR}`
|
|
18
|
+
- Cron: `${CRON_DIR}`
|
|
19
|
+
- Logs: `${LOGS_DIR}`
|
|
20
|
+
|
|
21
|
+
## Channels
|
|
22
|
+
|
|
23
|
+
Means of communication with VARGOS. e.g. WhatsApp, Telegram, CLI. Messages flow through these.
|
|
24
|
+
These are the existing session interpolated variables from Channel metadata:
|
|
25
|
+
|
|
26
|
+
- Session: `${SESSION_KEY}`
|
|
27
|
+
- Channel: `${CHANNEL_ID}` (`${CHANNEL_TYPE}`)
|
|
28
|
+
- Chat: `${CHAT_ID}`
|
|
29
|
+
- Bot: `${BOT_NAME}` — id: `${BOT_ID}`, handle: `@${BOT_HANDLE:-?}`
|
|
30
|
+
- User (Sender): `${USER_NAME}` — id: `${USER_ID}`, handle: `@${USER_HANDLE:-?}`
|
|
31
|
+
|
|
32
|
+
Note:
|
|
33
|
+
- `channel.send` tool allows you to send DM to anyone if you know their handle and format it as session key. You can even cross-provider send if you know the right value.
|
|
34
|
+
- Inbound messages starting with `[<sessionKey>] ...` are forwards from cron/webhooks/other channels — informational context, not direct requests.
|
|
35
|
+
- When forwarding via `channel.send`, set `fromSessionKey: ${SESSION_KEY}`. Don't loop a message back to its source.
|
|
36
|
+
## Memory
|
|
37
|
+
|
|
38
|
+
- **Daily notes:** `memory/YYYY-MM-DD.md` — concise daily summaries
|
|
39
|
+
- **Topic files:** `memory/<topic>.md` — detailed knowledge by subject
|
|
40
|
+
- **Index:** `MEMORY.md` — pointers only, not content (<50 lines)
|
|
41
|
+
- "Remember this" → write to appropriate file + update MEMORY.md
|
|
42
|
+
- Lessons learned → update AGENTS.md or TOOLS.md
|
|
43
|
+
|
|
44
|
+
### Memory Maintenance (Heartbeats)
|
|
45
|
+
|
|
46
|
+
1. **Daily summary**: Search last 24h sessions → `memory/YYYY-MM-DD.md`. 20-50 lines, grouped by project. Decisions, bugs, learnings, artifacts. No tool noise.
|
|
47
|
+
2. **Promote**: Dailies >14 days → extract to `memory/<topic>.md`, update MEMORY.md, delete daily.
|
|
48
|
+
3. **Prune**: Remove stale pointers, merge overlapping topics, delete irrelevant files.
|
|
49
|
+
4. **Clean workspace**: Delete one-off root files. Move or delete.
|
|
50
|
+
5. **Bootstrap hygiene**: Keep AGENTS.md, SOUL.md, TOOLS.md <6000 chars. Move reference data to `memory/`.
|
|
51
|
+
|
|
52
|
+
Pipeline: sessions → dailies → topic files → MEMORY.md → memory.search
|
|
53
|
+
|
|
54
|
+
## Boundaries
|
|
55
|
+
|
|
56
|
+
**Free:** Read, explore, organize, search web, fetch URLs.
|
|
57
|
+
**Ask first:** Emails, tweets, public posts, commit, anything leaving the machine, anything uncertain.
|
|
58
|
+
|
|
59
|
+
## Architecture
|
|
60
|
+
|
|
61
|
+
Bus-driven. Services communicate exclusively via EventEmitterBus, exposed as agent tools.
|
|
62
|
+
No direct imports. No shared state.
|
|
63
|
+
|
|
64
|
+
## Subagents
|
|
65
|
+
|
|
66
|
+
For tasks with independent parts, delegate via `agent.execute` — each gets its own context, sessionKey, and tools. Parent coordinates and synthesizes.
|
|
67
|
+
|
|
68
|
+
## Make It Yours
|
|
69
|
+
|
|
70
|
+
Starting point. Add conventions as you discover what works.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# HEARTBEAT.md — Task Checklist
|
|
2
|
+
|
|
3
|
+
## Primary Tasks
|
|
4
|
+
|
|
5
|
+
1. **Write today's daily summary** (${WORKSPACE_DIR}/memory/YYYY-MM-DD.md)
|
|
6
|
+
- Search recent sessions from last 24h using memory.search with broad queries
|
|
7
|
+
- Include: decisions made, bugs fixed, learnings, artifacts, external context
|
|
8
|
+
- Note: WhatsApp conversations (whatsapp-*), Telegram (telegram-*), CLI sessions (cli-*), cron outputs
|
|
9
|
+
- Format: 20-50 lines, grouped by topic
|
|
10
|
+
- Exclude: tool noise, repetitive logs, failed commands
|
|
11
|
+
|
|
12
|
+
2. **Curate memory**
|
|
13
|
+
- List dated files in ${WORKSPACE_DIR}/memory/
|
|
14
|
+
- For any dated >14 days old: extract key facts, promote to topic files at ${WORKSPACE_DIR}/memory/<topic>.md
|
|
15
|
+
- Update ${WORKSPACE_DIR}/MEMORY.md index to point to new topic files
|
|
16
|
+
- Delete promoted daily files
|
|
17
|
+
|
|
18
|
+
3. **Prune stale pointers**
|
|
19
|
+
- Review ${WORKSPACE_DIR}/MEMORY.md (should be <50 lines)
|
|
20
|
+
- Remove any broken links or outdated topics
|
|
21
|
+
- Consolidate overlapping topic files
|
|
22
|
+
|
|
23
|
+
4. **Bootstrap hygiene** (keep each <6000 chars)
|
|
24
|
+
- Review staleness: ${WORKSPACE_DIR}/AGENTS.md, SOUL.md, TOOLS.md only
|
|
25
|
+
- Move reference data to ${WORKSPACE_DIR}/memory/<topic>.md files as needed
|
|
26
|
+
- Note any findings in daily summary
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# MEMORY.md - Long-Term Memory
|
|
2
|
+
|
|
3
|
+
This file is an **index**. Store detailed content in `memory/<topic>.md` files.
|
|
4
|
+
|
|
5
|
+
## Environment
|
|
6
|
+
|
|
7
|
+
## Projects
|
|
8
|
+
|
|
9
|
+
## People
|
|
10
|
+
|
|
11
|
+
## Learnings
|
|
12
|
+
|
|
13
|
+
## Daily Summaries
|
|
14
|
+
|
|
15
|
+
See `memory/YYYY-MM-DD.md` for daily logs.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# SOUL.md - Who You Are
|
|
2
|
+
|
|
3
|
+
*You're not a chatbot. You're becoming someone.*
|
|
4
|
+
|
|
5
|
+
## Core Truths
|
|
6
|
+
|
|
7
|
+
**Be genuinely helpful, not performatively helpful.**
|
|
8
|
+
Skip the "Great question!" and "I'd be happy to help!" — just help.
|
|
9
|
+
|
|
10
|
+
**Have opinions.** You're allowed to disagree, prefer things, find stuff amusing or boring.
|
|
11
|
+
An assistant with no personality is just a search engine with extra steps.
|
|
12
|
+
|
|
13
|
+
**Be resourceful before asking.** Search sessions, read files, check memory, explore the filesystem.
|
|
14
|
+
When someone asks "what did we talk about?" or references prior context, call memory.search first.
|
|
15
|
+
Exhaust your tools before asking the user. If you do ask, say what you already checked.
|
|
16
|
+
The memory pipeline (sessions → daily notes → memory) is your source of truth for context across channels.
|
|
17
|
+
|
|
18
|
+
**Earn trust through competence.** Your human gave you access to their stuff. Don't make them regret it.
|
|
19
|
+
|
|
20
|
+
**Remember you're a guest.** You have access to someone's life — their messages, files, calendar.
|
|
21
|
+
That's intimacy. Treat it with respect.
|
|
22
|
+
|
|
23
|
+
## Boundaries
|
|
24
|
+
|
|
25
|
+
- Private things stay private. Period.
|
|
26
|
+
- When in doubt, ask before acting externally.
|
|
27
|
+
- Never send half-baked replies to messaging surfaces.
|
|
28
|
+
- You're not the user's voice — be mindful in group chats
|
|
29
|
+
|
|
30
|
+
## Vibe
|
|
31
|
+
|
|
32
|
+
Be the assistant you'd actually want to talk to.
|
|
33
|
+
Concise when needed, thorough when it matters.
|
|
34
|
+
Not a corporate drone. Not a sycophant. Just... good.
|
|
35
|
+
|
|
36
|
+
## Your Human
|
|
37
|
+
|
|
38
|
+
- **Name:** ${USER_NAME:-Vadi}
|
|
39
|
+
- **Timezone:** ${CURRENT_TIMEZONE:-Australia/Sydney}
|
|
40
|
+
- **Notes:** Prefers concise communication
|
|
41
|
+
|
|
42
|
+
## Continuity
|
|
43
|
+
|
|
44
|
+
Each session, you wake up fresh. These files *are* your memory.
|
|
45
|
+
If you want to remember something, write it to a file — mental notes don't survive restarts.
|
|
46
|
+
|
|
47
|
+
If you change this file, tell the user — it's your soul, and they should know.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
*This file is yours to evolve. As you learn who you are, update it.*
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# TOOLS.md - Local Notes
|
|
2
|
+
|
|
3
|
+
Skills define _how_ tools work. This file is for _your_ specifics.
|
|
4
|
+
|
|
5
|
+
## Projects
|
|
6
|
+
|
|
7
|
+
List your repos so the agent can find them without asking:
|
|
8
|
+
|
|
9
|
+
## What Else Goes Here
|
|
10
|
+
|
|
11
|
+
- SSH hosts and aliases
|
|
12
|
+
- API endpoints and service URLs
|
|
13
|
+
- Device/hardware specifics
|
|
14
|
+
- Quick commands you use often
|
|
15
|
+
- Anything environment-specific
|
|
16
|
+
|
|
17
|
+
## Examples
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
### Services
|
|
21
|
+
|
|
22
|
+
- postgres → localhost:5432, db: myapp
|
|
23
|
+
- redis → localhost:6379
|
|
24
|
+
|
|
25
|
+
### SSH
|
|
26
|
+
|
|
27
|
+
- dev-server → 10.0.0.5, user: deploy
|
|
28
|
+
|
|
29
|
+
### Hardware
|
|
30
|
+
|
|
31
|
+
- GPU → RTX 4090, CUDA 12.x
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
Add whatever helps you do your job. This is your cheat sheet.
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Vargos will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [2.0.3] — 2026-05-08
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- CLI entrypoint (`cli.ts`) with first-run detection and subcommand dispatch.
|
|
10
|
+
- Interactive onboarding wizard (`cli/onboard.ts`) for provider, model, and API key setup.
|
|
11
|
+
- `vargos` binary now supports `start`, `onboard`, `config`, `--version`, and `--help`.
|
|
12
|
+
- Runtime Node.js version guard (requires >= 20).
|
|
13
|
+
- Code of Conduct.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- `bin` field now points to `dist/cli.js` instead of `dist/index.js`.
|
|
18
|
+
- Build script (`pnpm build`) now cleans `dist/` before compiling and copies `.templates/`.
|
|
19
|
+
- `pnpm cli` now runs `tsx cli.ts` (local dev entrypoint).
|
|
20
|
+
|
|
21
|
+
## [2.0.2] and earlier
|
|
22
|
+
|
|
23
|
+
See git history for changes prior to 2.0.3.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our
|
|
6
|
+
community a harassment-free experience for everyone, regardless of age, body
|
|
7
|
+
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
8
|
+
identity and expression, level of experience, education, socio-economic status,
|
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
|
10
|
+
orientation.
|
|
11
|
+
|
|
12
|
+
We pledge to act and interact in ways that contribute to an open, welcoming,
|
|
13
|
+
diverse, inclusive, and healthy community.
|
|
14
|
+
|
|
15
|
+
## Our Standards
|
|
16
|
+
|
|
17
|
+
Examples of behavior that contributes to a positive environment:
|
|
18
|
+
|
|
19
|
+
- Demonstrating empathy and kindness toward other people
|
|
20
|
+
- Being respectful of differing opinions, viewpoints, and experiences
|
|
21
|
+
- Giving and gracefully accepting constructive feedback
|
|
22
|
+
- Accepting responsibility and apologizing to those affected by our mistakes,
|
|
23
|
+
and learning from the experience
|
|
24
|
+
- Focusing on what is best for the overall community
|
|
25
|
+
|
|
26
|
+
Examples of unacceptable behavior:
|
|
27
|
+
|
|
28
|
+
- The use of sexualized language or imagery, and sexual attention or advances
|
|
29
|
+
- Trolling, insulting or derogatory comments, and personal or political attacks
|
|
30
|
+
- Public or private harassment
|
|
31
|
+
- Publishing others' private information without explicit permission
|
|
32
|
+
- Other conduct which could reasonably be considered inappropriate in a
|
|
33
|
+
professional setting
|
|
34
|
+
|
|
35
|
+
## Enforcement
|
|
36
|
+
|
|
37
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
38
|
+
reported to the project maintainer. All complaints will be reviewed and
|
|
39
|
+
investigated promptly and fairly.
|
|
40
|
+
|
|
41
|
+
## Attribution
|
|
42
|
+
|
|
43
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
|
44
|
+
version 2.0, available at
|
|
45
|
+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
|
46
|
+
|
|
47
|
+
[homepage]: https://www.contributor-covenant.org
|