@aitne/daemon 0.1.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/LICENSE +21 -0
- package/dist/adapters/composite-dashboard-stream.d.ts +42 -0
- package/dist/adapters/composite-dashboard-stream.d.ts.map +1 -0
- package/dist/adapters/composite-dashboard-stream.js +49 -0
- package/dist/adapters/composite-dashboard-stream.js.map +1 -0
- package/dist/adapters/dashboard-adapter.d.ts +104 -0
- package/dist/adapters/dashboard-adapter.d.ts.map +1 -0
- package/dist/adapters/dashboard-adapter.js +216 -0
- package/dist/adapters/dashboard-adapter.js.map +1 -0
- package/dist/adapters/discord.d.ts +77 -0
- package/dist/adapters/discord.d.ts.map +1 -0
- package/dist/adapters/discord.js +339 -0
- package/dist/adapters/discord.js.map +1 -0
- package/dist/adapters/docs-qa-adapter.d.ts +123 -0
- package/dist/adapters/docs-qa-adapter.d.ts.map +1 -0
- package/dist/adapters/docs-qa-adapter.js +218 -0
- package/dist/adapters/docs-qa-adapter.js.map +1 -0
- package/dist/adapters/message-hub.d.ts +70 -0
- package/dist/adapters/message-hub.d.ts.map +1 -0
- package/dist/adapters/message-hub.js +359 -0
- package/dist/adapters/message-hub.js.map +1 -0
- package/dist/adapters/notification-manager.d.ts +99 -0
- package/dist/adapters/notification-manager.d.ts.map +1 -0
- package/dist/adapters/notification-manager.js +498 -0
- package/dist/adapters/notification-manager.js.map +1 -0
- package/dist/adapters/outbound-text.d.ts +28 -0
- package/dist/adapters/outbound-text.d.ts.map +1 -0
- package/dist/adapters/outbound-text.js +58 -0
- package/dist/adapters/outbound-text.js.map +1 -0
- package/dist/adapters/slack-adapter.d.ts +82 -0
- package/dist/adapters/slack-adapter.d.ts.map +1 -0
- package/dist/adapters/slack-adapter.js +359 -0
- package/dist/adapters/slack-adapter.js.map +1 -0
- package/dist/adapters/telegram-adapter.d.ts +107 -0
- package/dist/adapters/telegram-adapter.d.ts.map +1 -0
- package/dist/adapters/telegram-adapter.js +477 -0
- package/dist/adapters/telegram-adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +92 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/whatsapp-adapter.d.ts +213 -0
- package/dist/adapters/whatsapp-adapter.d.ts.map +1 -0
- package/dist/adapters/whatsapp-adapter.js +1216 -0
- package/dist/adapters/whatsapp-adapter.js.map +1 -0
- package/dist/api/chat-binding-query.d.ts +36 -0
- package/dist/api/chat-binding-query.d.ts.map +1 -0
- package/dist/api/chat-binding-query.js +63 -0
- package/dist/api/chat-binding-query.js.map +1 -0
- package/dist/api/chat-session-resume.d.ts +12 -0
- package/dist/api/chat-session-resume.d.ts.map +1 -0
- package/dist/api/chat-session-resume.js +21 -0
- package/dist/api/chat-session-resume.js.map +1 -0
- package/dist/api/delegated-proxy-helper.d.ts +33 -0
- package/dist/api/delegated-proxy-helper.d.ts.map +1 -0
- package/dist/api/delegated-proxy-helper.js +54 -0
- package/dist/api/delegated-proxy-helper.js.map +1 -0
- package/dist/api/directory-picker.d.ts +38 -0
- package/dist/api/directory-picker.d.ts.map +1 -0
- package/dist/api/directory-picker.js +278 -0
- package/dist/api/directory-picker.js.map +1 -0
- package/dist/api/env-writer.d.ts +25 -0
- package/dist/api/env-writer.d.ts.map +1 -0
- package/dist/api/env-writer.js +421 -0
- package/dist/api/env-writer.js.map +1 -0
- package/dist/api/integration-route-gate.d.ts +60 -0
- package/dist/api/integration-route-gate.d.ts.map +1 -0
- package/dist/api/integration-route-gate.js +83 -0
- package/dist/api/integration-route-gate.js.map +1 -0
- package/dist/api/json-body.d.ts +29 -0
- package/dist/api/json-body.d.ts.map +1 -0
- package/dist/api/json-body.js +87 -0
- package/dist/api/json-body.js.map +1 -0
- package/dist/api/routes/activity-sources.d.ts +20 -0
- package/dist/api/routes/activity-sources.d.ts.map +1 -0
- package/dist/api/routes/activity-sources.js +18 -0
- package/dist/api/routes/activity-sources.js.map +1 -0
- package/dist/api/routes/agent.d.ts +4 -0
- package/dist/api/routes/agent.d.ts.map +1 -0
- package/dist/api/routes/agent.js +619 -0
- package/dist/api/routes/agent.js.map +1 -0
- package/dist/api/routes/apple-calendar.d.ts +31 -0
- package/dist/api/routes/apple-calendar.d.ts.map +1 -0
- package/dist/api/routes/apple-calendar.js +310 -0
- package/dist/api/routes/apple-calendar.js.map +1 -0
- package/dist/api/routes/attachments.d.ts +36 -0
- package/dist/api/routes/attachments.d.ts.map +1 -0
- package/dist/api/routes/attachments.js +305 -0
- package/dist/api/routes/attachments.js.map +1 -0
- package/dist/api/routes/backends.d.ts +4 -0
- package/dist/api/routes/backends.d.ts.map +1 -0
- package/dist/api/routes/backends.js +1132 -0
- package/dist/api/routes/backends.js.map +1 -0
- package/dist/api/routes/books.d.ts +63 -0
- package/dist/api/routes/books.d.ts.map +1 -0
- package/dist/api/routes/books.js +467 -0
- package/dist/api/routes/books.js.map +1 -0
- package/dist/api/routes/calendar.d.ts +36 -0
- package/dist/api/routes/calendar.d.ts.map +1 -0
- package/dist/api/routes/calendar.js +351 -0
- package/dist/api/routes/calendar.js.map +1 -0
- package/dist/api/routes/commands.d.ts +4 -0
- package/dist/api/routes/commands.d.ts.map +1 -0
- package/dist/api/routes/commands.js +251 -0
- package/dist/api/routes/commands.js.map +1 -0
- package/dist/api/routes/context.d.ts +57 -0
- package/dist/api/routes/context.d.ts.map +1 -0
- package/dist/api/routes/context.js +1765 -0
- package/dist/api/routes/context.js.map +1 -0
- package/dist/api/routes/dashboard.d.ts +29 -0
- package/dist/api/routes/dashboard.d.ts.map +1 -0
- package/dist/api/routes/dashboard.js +2062 -0
- package/dist/api/routes/dashboard.js.map +1 -0
- package/dist/api/routes/delegated-sync.d.ts +4 -0
- package/dist/api/routes/delegated-sync.d.ts.map +1 -0
- package/dist/api/routes/delegated-sync.js +192 -0
- package/dist/api/routes/delegated-sync.js.map +1 -0
- package/dist/api/routes/delegated.d.ts +42 -0
- package/dist/api/routes/delegated.d.ts.map +1 -0
- package/dist/api/routes/delegated.js +250 -0
- package/dist/api/routes/delegated.js.map +1 -0
- package/dist/api/routes/docs.d.ts +34 -0
- package/dist/api/routes/docs.d.ts.map +1 -0
- package/dist/api/routes/docs.js +580 -0
- package/dist/api/routes/docs.js.map +1 -0
- package/dist/api/routes/entities.d.ts +9 -0
- package/dist/api/routes/entities.d.ts.map +1 -0
- package/dist/api/routes/entities.js +176 -0
- package/dist/api/routes/entities.js.map +1 -0
- package/dist/api/routes/git-accounts.d.ts +23 -0
- package/dist/api/routes/git-accounts.d.ts.map +1 -0
- package/dist/api/routes/git-accounts.js +227 -0
- package/dist/api/routes/git-accounts.js.map +1 -0
- package/dist/api/routes/git-templates.d.ts +50 -0
- package/dist/api/routes/git-templates.d.ts.map +1 -0
- package/dist/api/routes/git-templates.js +276 -0
- package/dist/api/routes/git-templates.js.map +1 -0
- package/dist/api/routes/git.d.ts +34 -0
- package/dist/api/routes/git.d.ts.map +1 -0
- package/dist/api/routes/git.js +126 -0
- package/dist/api/routes/git.js.map +1 -0
- package/dist/api/routes/github.d.ts +34 -0
- package/dist/api/routes/github.d.ts.map +1 -0
- package/dist/api/routes/github.js +465 -0
- package/dist/api/routes/github.js.map +1 -0
- package/dist/api/routes/health.d.ts +4 -0
- package/dist/api/routes/health.d.ts.map +1 -0
- package/dist/api/routes/health.js +257 -0
- package/dist/api/routes/health.js.map +1 -0
- package/dist/api/routes/integrations-reconcile.d.ts +33 -0
- package/dist/api/routes/integrations-reconcile.d.ts.map +1 -0
- package/dist/api/routes/integrations-reconcile.js +463 -0
- package/dist/api/routes/integrations-reconcile.js.map +1 -0
- package/dist/api/routes/integrations.d.ts +19 -0
- package/dist/api/routes/integrations.d.ts.map +1 -0
- package/dist/api/routes/integrations.js +1384 -0
- package/dist/api/routes/integrations.js.map +1 -0
- package/dist/api/routes/knowledge.d.ts +4 -0
- package/dist/api/routes/knowledge.d.ts.map +1 -0
- package/dist/api/routes/knowledge.js +224 -0
- package/dist/api/routes/knowledge.js.map +1 -0
- package/dist/api/routes/mail.d.ts +39 -0
- package/dist/api/routes/mail.d.ts.map +1 -0
- package/dist/api/routes/mail.js +1406 -0
- package/dist/api/routes/mail.js.map +1 -0
- package/dist/api/routes/managed-tasks.d.ts +48 -0
- package/dist/api/routes/managed-tasks.d.ts.map +1 -0
- package/dist/api/routes/managed-tasks.js +844 -0
- package/dist/api/routes/managed-tasks.js.map +1 -0
- package/dist/api/routes/mcp.d.ts +50 -0
- package/dist/api/routes/mcp.d.ts.map +1 -0
- package/dist/api/routes/mcp.js +470 -0
- package/dist/api/routes/mcp.js.map +1 -0
- package/dist/api/routes/metrics.d.ts +13 -0
- package/dist/api/routes/metrics.d.ts.map +1 -0
- package/dist/api/routes/metrics.js +117 -0
- package/dist/api/routes/metrics.js.map +1 -0
- package/dist/api/routes/notion.d.ts +35 -0
- package/dist/api/routes/notion.d.ts.map +1 -0
- package/dist/api/routes/notion.js +442 -0
- package/dist/api/routes/notion.js.map +1 -0
- package/dist/api/routes/observations.d.ts +4 -0
- package/dist/api/routes/observations.d.ts.map +1 -0
- package/dist/api/routes/observations.js +177 -0
- package/dist/api/routes/observations.js.map +1 -0
- package/dist/api/routes/obsidian.d.ts +16 -0
- package/dist/api/routes/obsidian.d.ts.map +1 -0
- package/dist/api/routes/obsidian.js +321 -0
- package/dist/api/routes/obsidian.js.map +1 -0
- package/dist/api/routes/profile-questions.d.ts +17 -0
- package/dist/api/routes/profile-questions.d.ts.map +1 -0
- package/dist/api/routes/profile-questions.js +115 -0
- package/dist/api/routes/profile-questions.js.map +1 -0
- package/dist/api/routes/receipts.d.ts +4 -0
- package/dist/api/routes/receipts.d.ts.map +1 -0
- package/dist/api/routes/receipts.js +155 -0
- package/dist/api/routes/receipts.js.map +1 -0
- package/dist/api/routes/recurring-schedules.d.ts +4 -0
- package/dist/api/routes/recurring-schedules.d.ts.map +1 -0
- package/dist/api/routes/recurring-schedules.js +137 -0
- package/dist/api/routes/recurring-schedules.js.map +1 -0
- package/dist/api/routes/repositories.d.ts +40 -0
- package/dist/api/routes/repositories.d.ts.map +1 -0
- package/dist/api/routes/repositories.js +857 -0
- package/dist/api/routes/repositories.js.map +1 -0
- package/dist/api/routes/setup-migrate.d.ts +74 -0
- package/dist/api/routes/setup-migrate.d.ts.map +1 -0
- package/dist/api/routes/setup-migrate.js +944 -0
- package/dist/api/routes/setup-migrate.js.map +1 -0
- package/dist/api/routes/setup.d.ts +4 -0
- package/dist/api/routes/setup.d.ts.map +1 -0
- package/dist/api/routes/setup.js +443 -0
- package/dist/api/routes/setup.js.map +1 -0
- package/dist/api/routes/skill-curation.d.ts +5 -0
- package/dist/api/routes/skill-curation.d.ts.map +1 -0
- package/dist/api/routes/skill-curation.js +728 -0
- package/dist/api/routes/skill-curation.js.map +1 -0
- package/dist/api/routes/skills.d.ts +52 -0
- package/dist/api/routes/skills.d.ts.map +1 -0
- package/dist/api/routes/skills.js +429 -0
- package/dist/api/routes/skills.js.map +1 -0
- package/dist/api/routes/sot-bindings.d.ts +20 -0
- package/dist/api/routes/sot-bindings.d.ts.map +1 -0
- package/dist/api/routes/sot-bindings.js +163 -0
- package/dist/api/routes/sot-bindings.js.map +1 -0
- package/dist/api/routes/sse.d.ts +86 -0
- package/dist/api/routes/sse.d.ts.map +1 -0
- package/dist/api/routes/sse.js +378 -0
- package/dist/api/routes/sse.js.map +1 -0
- package/dist/api/routes/system.d.ts +4 -0
- package/dist/api/routes/system.d.ts.map +1 -0
- package/dist/api/routes/system.js +207 -0
- package/dist/api/routes/system.js.map +1 -0
- package/dist/api/routes/task-flows.d.ts +30 -0
- package/dist/api/routes/task-flows.d.ts.map +1 -0
- package/dist/api/routes/task-flows.js +155 -0
- package/dist/api/routes/task-flows.js.map +1 -0
- package/dist/api/routes/travel-bookings.d.ts +4 -0
- package/dist/api/routes/travel-bookings.d.ts.map +1 -0
- package/dist/api/routes/travel-bookings.js +142 -0
- package/dist/api/routes/travel-bookings.js.map +1 -0
- package/dist/api/routes/travel-time.d.ts +8 -0
- package/dist/api/routes/travel-time.d.ts.map +1 -0
- package/dist/api/routes/travel-time.js +87 -0
- package/dist/api/routes/travel-time.js.map +1 -0
- package/dist/api/routes/triggers.d.ts +4 -0
- package/dist/api/routes/triggers.d.ts.map +1 -0
- package/dist/api/routes/triggers.js +101 -0
- package/dist/api/routes/triggers.js.map +1 -0
- package/dist/api/routes/voice.d.ts +48 -0
- package/dist/api/routes/voice.d.ts.map +1 -0
- package/dist/api/routes/voice.js +232 -0
- package/dist/api/routes/voice.js.map +1 -0
- package/dist/api/server.d.ts +428 -0
- package/dist/api/server.d.ts.map +1 -0
- package/dist/api/server.js +558 -0
- package/dist/api/server.js.map +1 -0
- package/dist/config.d.ts +136 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +699 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-core.d.ts +517 -0
- package/dist/core/agent-core.d.ts.map +1 -0
- package/dist/core/agent-core.js +102 -0
- package/dist/core/agent-core.js.map +1 -0
- package/dist/core/alerts.d.ts +86 -0
- package/dist/core/alerts.d.ts.map +1 -0
- package/dist/core/alerts.js +304 -0
- package/dist/core/alerts.js.map +1 -0
- package/dist/core/atomic-write.d.ts +51 -0
- package/dist/core/atomic-write.d.ts.map +1 -0
- package/dist/core/atomic-write.js +135 -0
- package/dist/core/atomic-write.js.map +1 -0
- package/dist/core/backends/api-key-probe.d.ts +40 -0
- package/dist/core/backends/api-key-probe.d.ts.map +1 -0
- package/dist/core/backends/api-key-probe.js +116 -0
- package/dist/core/backends/api-key-probe.js.map +1 -0
- package/dist/core/backends/auth-health-monitor.d.ts +373 -0
- package/dist/core/backends/auth-health-monitor.d.ts.map +1 -0
- package/dist/core/backends/auth-health-monitor.js +950 -0
- package/dist/core/backends/auth-health-monitor.js.map +1 -0
- package/dist/core/backends/auth-recovery.d.ts +263 -0
- package/dist/core/backends/auth-recovery.d.ts.map +1 -0
- package/dist/core/backends/auth-recovery.js +1086 -0
- package/dist/core/backends/auth-recovery.js.map +1 -0
- package/dist/core/backends/auth-telemetry.d.ts +81 -0
- package/dist/core/backends/auth-telemetry.d.ts.map +1 -0
- package/dist/core/backends/auth-telemetry.js +108 -0
- package/dist/core/backends/auth-telemetry.js.map +1 -0
- package/dist/core/backends/backend-router.d.ts +272 -0
- package/dist/core/backends/backend-router.d.ts.map +1 -0
- package/dist/core/backends/backend-router.js +759 -0
- package/dist/core/backends/backend-router.js.map +1 -0
- package/dist/core/backends/claude-code-core.d.ts +299 -0
- package/dist/core/backends/claude-code-core.d.ts.map +1 -0
- package/dist/core/backends/claude-code-core.js +2541 -0
- package/dist/core/backends/claude-code-core.js.map +1 -0
- package/dist/core/backends/claude-credentials-store.d.ts +83 -0
- package/dist/core/backends/claude-credentials-store.d.ts.map +1 -0
- package/dist/core/backends/claude-credentials-store.js +243 -0
- package/dist/core/backends/claude-credentials-store.js.map +1 -0
- package/dist/core/backends/cli-utils.d.ts +95 -0
- package/dist/core/backends/cli-utils.d.ts.map +1 -0
- package/dist/core/backends/cli-utils.js +464 -0
- package/dist/core/backends/cli-utils.js.map +1 -0
- package/dist/core/backends/codex-core.d.ts +127 -0
- package/dist/core/backends/codex-core.d.ts.map +1 -0
- package/dist/core/backends/codex-core.js +1693 -0
- package/dist/core/backends/codex-core.js.map +1 -0
- package/dist/core/backends/gemini-cli-core.d.ts +367 -0
- package/dist/core/backends/gemini-cli-core.d.ts.map +1 -0
- package/dist/core/backends/gemini-cli-core.js +2331 -0
- package/dist/core/backends/gemini-cli-core.js.map +1 -0
- package/dist/core/backends/idle-watchdog.d.ts +77 -0
- package/dist/core/backends/idle-watchdog.d.ts.map +1 -0
- package/dist/core/backends/idle-watchdog.js +94 -0
- package/dist/core/backends/idle-watchdog.js.map +1 -0
- package/dist/core/backends/install-methods.d.ts +93 -0
- package/dist/core/backends/install-methods.d.ts.map +1 -0
- package/dist/core/backends/install-methods.js +267 -0
- package/dist/core/backends/install-methods.js.map +1 -0
- package/dist/core/backends/model-registry.d.ts +58 -0
- package/dist/core/backends/model-registry.d.ts.map +1 -0
- package/dist/core/backends/model-registry.js +539 -0
- package/dist/core/backends/model-registry.js.map +1 -0
- package/dist/core/backends/plan-presets.d.ts +123 -0
- package/dist/core/backends/plan-presets.d.ts.map +1 -0
- package/dist/core/backends/plan-presets.js +235 -0
- package/dist/core/backends/plan-presets.js.map +1 -0
- package/dist/core/backends/price-fetcher.d.ts +48 -0
- package/dist/core/backends/price-fetcher.d.ts.map +1 -0
- package/dist/core/backends/price-fetcher.js +248 -0
- package/dist/core/backends/price-fetcher.js.map +1 -0
- package/dist/core/backends/process-config-cascade.d.ts +68 -0
- package/dist/core/backends/process-config-cascade.d.ts.map +1 -0
- package/dist/core/backends/process-config-cascade.js +173 -0
- package/dist/core/backends/process-config-cascade.js.map +1 -0
- package/dist/core/backends/prompt-utils.d.ts +6 -0
- package/dist/core/backends/prompt-utils.d.ts.map +1 -0
- package/dist/core/backends/prompt-utils.js +80 -0
- package/dist/core/backends/prompt-utils.js.map +1 -0
- package/dist/core/backends/proxy-model-registry.d.ts +110 -0
- package/dist/core/backends/proxy-model-registry.d.ts.map +1 -0
- package/dist/core/backends/proxy-model-registry.js +195 -0
- package/dist/core/backends/proxy-model-registry.js.map +1 -0
- package/dist/core/backends/silent-api-error-detector.d.ts +31 -0
- package/dist/core/backends/silent-api-error-detector.d.ts.map +1 -0
- package/dist/core/backends/silent-api-error-detector.js +44 -0
- package/dist/core/backends/silent-api-error-detector.js.map +1 -0
- package/dist/core/bang-commands/commands-cost.d.ts +13 -0
- package/dist/core/bang-commands/commands-cost.d.ts.map +1 -0
- package/dist/core/bang-commands/commands-cost.js +91 -0
- package/dist/core/bang-commands/commands-cost.js.map +1 -0
- package/dist/core/bang-commands/commands-report.d.ts +18 -0
- package/dist/core/bang-commands/commands-report.d.ts.map +1 -0
- package/dist/core/bang-commands/commands-report.js +105 -0
- package/dist/core/bang-commands/commands-report.js.map +1 -0
- package/dist/core/bang-commands/commands-stop-start.d.ts +4 -0
- package/dist/core/bang-commands/commands-stop-start.d.ts.map +1 -0
- package/dist/core/bang-commands/commands-stop-start.js +88 -0
- package/dist/core/bang-commands/commands-stop-start.js.map +1 -0
- package/dist/core/bang-commands/format-utils.d.ts +34 -0
- package/dist/core/bang-commands/format-utils.d.ts.map +1 -0
- package/dist/core/bang-commands/format-utils.js +118 -0
- package/dist/core/bang-commands/format-utils.js.map +1 -0
- package/dist/core/bang-commands/index.d.ts +20 -0
- package/dist/core/bang-commands/index.d.ts.map +1 -0
- package/dist/core/bang-commands/index.js +31 -0
- package/dist/core/bang-commands/index.js.map +1 -0
- package/dist/core/bang-commands/registry.d.ts +72 -0
- package/dist/core/bang-commands/registry.d.ts.map +1 -0
- package/dist/core/bang-commands/registry.js +174 -0
- package/dist/core/bang-commands/registry.js.map +1 -0
- package/dist/core/bang-commands/user-commands.d.ts +86 -0
- package/dist/core/bang-commands/user-commands.d.ts.map +1 -0
- package/dist/core/bang-commands/user-commands.js +212 -0
- package/dist/core/bang-commands/user-commands.js.map +1 -0
- package/dist/core/channel-timeline.d.ts +28 -0
- package/dist/core/channel-timeline.d.ts.map +1 -0
- package/dist/core/channel-timeline.js +117 -0
- package/dist/core/channel-timeline.js.map +1 -0
- package/dist/core/character-block.d.ts +37 -0
- package/dist/core/character-block.d.ts.map +1 -0
- package/dist/core/character-block.js +162 -0
- package/dist/core/character-block.js.map +1 -0
- package/dist/core/context/activity-sources.d.ts +37 -0
- package/dist/core/context/activity-sources.d.ts.map +1 -0
- package/dist/core/context/activity-sources.js +69 -0
- package/dist/core/context/activity-sources.js.map +1 -0
- package/dist/core/context/activity-view-reconciler.d.ts +110 -0
- package/dist/core/context/activity-view-reconciler.d.ts.map +1 -0
- package/dist/core/context/activity-view-reconciler.js +252 -0
- package/dist/core/context/activity-view-reconciler.js.map +1 -0
- package/dist/core/context/activity-view-runner.d.ts +38 -0
- package/dist/core/context/activity-view-runner.d.ts.map +1 -0
- package/dist/core/context/activity-view-runner.js +402 -0
- package/dist/core/context/activity-view-runner.js.map +1 -0
- package/dist/core/context/default-schedules-reconciler.d.ts +85 -0
- package/dist/core/context/default-schedules-reconciler.d.ts.map +1 -0
- package/dist/core/context/default-schedules-reconciler.js +153 -0
- package/dist/core/context/default-schedules-reconciler.js.map +1 -0
- package/dist/core/context/default-schedules-runner.d.ts +40 -0
- package/dist/core/context/default-schedules-runner.d.ts.map +1 -0
- package/dist/core/context/default-schedules-runner.js +233 -0
- package/dist/core/context/default-schedules-runner.js.map +1 -0
- package/dist/core/context/domain-index-reconciler.d.ts +81 -0
- package/dist/core/context/domain-index-reconciler.d.ts.map +1 -0
- package/dist/core/context/domain-index-reconciler.js +199 -0
- package/dist/core/context/domain-index-reconciler.js.map +1 -0
- package/dist/core/context/domain-index-runner.d.ts +35 -0
- package/dist/core/context/domain-index-runner.d.ts.map +1 -0
- package/dist/core/context/domain-index-runner.js +223 -0
- package/dist/core/context/domain-index-runner.js.map +1 -0
- package/dist/core/context/entity-mirror.d.ts +227 -0
- package/dist/core/context/entity-mirror.d.ts.map +1 -0
- package/dist/core/context/entity-mirror.js +629 -0
- package/dist/core/context/entity-mirror.js.map +1 -0
- package/dist/core/context/entity-source-rename.d.ts +61 -0
- package/dist/core/context/entity-source-rename.d.ts.map +1 -0
- package/dist/core/context/entity-source-rename.js +237 -0
- package/dist/core/context/entity-source-rename.js.map +1 -0
- package/dist/core/context/index-reconciler.d.ts +61 -0
- package/dist/core/context/index-reconciler.d.ts.map +1 -0
- package/dist/core/context/index-reconciler.js +329 -0
- package/dist/core/context/index-reconciler.js.map +1 -0
- package/dist/core/context/policy-index-reconciler.d.ts +102 -0
- package/dist/core/context/policy-index-reconciler.d.ts.map +1 -0
- package/dist/core/context/policy-index-reconciler.js +202 -0
- package/dist/core/context/policy-index-reconciler.js.map +1 -0
- package/dist/core/context/policy-index-runner.d.ts +66 -0
- package/dist/core/context/policy-index-runner.d.ts.map +1 -0
- package/dist/core/context/policy-index-runner.js +406 -0
- package/dist/core/context/policy-index-runner.js.map +1 -0
- package/dist/core/context/reconciler-runner.d.ts +44 -0
- package/dist/core/context/reconciler-runner.d.ts.map +1 -0
- package/dist/core/context/reconciler-runner.js +273 -0
- package/dist/core/context/reconciler-runner.js.map +1 -0
- package/dist/core/context-builder.d.ts +115 -0
- package/dist/core/context-builder.d.ts.map +1 -0
- package/dist/core/context-builder.js +1148 -0
- package/dist/core/context-builder.js.map +1 -0
- package/dist/core/context-frontmatter-backfill.d.ts +33 -0
- package/dist/core/context-frontmatter-backfill.d.ts.map +1 -0
- package/dist/core/context-frontmatter-backfill.js +111 -0
- package/dist/core/context-frontmatter-backfill.js.map +1 -0
- package/dist/core/context-frontmatter.d.ts +13 -0
- package/dist/core/context-frontmatter.d.ts.map +1 -0
- package/dist/core/context-frontmatter.js +325 -0
- package/dist/core/context-frontmatter.js.map +1 -0
- package/dist/core/context-health.d.ts +51 -0
- package/dist/core/context-health.d.ts.map +1 -0
- package/dist/core/context-health.js +304 -0
- package/dist/core/context-health.js.map +1 -0
- package/dist/core/context-paths.d.ts +183 -0
- package/dist/core/context-paths.d.ts.map +1 -0
- package/dist/core/context-paths.js +241 -0
- package/dist/core/context-paths.js.map +1 -0
- package/dist/core/context-staleness.d.ts +45 -0
- package/dist/core/context-staleness.d.ts.map +1 -0
- package/dist/core/context-staleness.js +88 -0
- package/dist/core/context-staleness.js.map +1 -0
- package/dist/core/custom-routine-scheduler.d.ts +151 -0
- package/dist/core/custom-routine-scheduler.d.ts.map +1 -0
- package/dist/core/custom-routine-scheduler.js +335 -0
- package/dist/core/custom-routine-scheduler.js.map +1 -0
- package/dist/core/daemon-api-cli.d.ts +33 -0
- package/dist/core/daemon-api-cli.d.ts.map +1 -0
- package/dist/core/daemon-api-cli.js +614 -0
- package/dist/core/daemon-api-cli.js.map +1 -0
- package/dist/core/dashboard-session-cleanup.d.ts +39 -0
- package/dist/core/dashboard-session-cleanup.d.ts.map +1 -0
- package/dist/core/dashboard-session-cleanup.js +108 -0
- package/dist/core/dashboard-session-cleanup.js.map +1 -0
- package/dist/core/dashboard-session-controls.d.ts +41 -0
- package/dist/core/dashboard-session-controls.d.ts.map +1 -0
- package/dist/core/dashboard-session-controls.js +154 -0
- package/dist/core/dashboard-session-controls.js.map +1 -0
- package/dist/core/delegated-connector-health.d.ts +63 -0
- package/dist/core/delegated-connector-health.d.ts.map +1 -0
- package/dist/core/delegated-connector-health.js +157 -0
- package/dist/core/delegated-connector-health.js.map +1 -0
- package/dist/core/dispatcher.d.ts +999 -0
- package/dist/core/dispatcher.d.ts.map +1 -0
- package/dist/core/dispatcher.js +4378 -0
- package/dist/core/dispatcher.js.map +1 -0
- package/dist/core/dm-freshness-metrics.d.ts +73 -0
- package/dist/core/dm-freshness-metrics.d.ts.map +1 -0
- package/dist/core/dm-freshness-metrics.js +138 -0
- package/dist/core/dm-freshness-metrics.js.map +1 -0
- package/dist/core/docs/citation-validator.d.ts +73 -0
- package/dist/core/docs/citation-validator.d.ts.map +1 -0
- package/dist/core/docs/citation-validator.js +195 -0
- package/dist/core/docs/citation-validator.js.map +1 -0
- package/dist/core/docs/extract-terms.d.ts +78 -0
- package/dist/core/docs/extract-terms.d.ts.map +1 -0
- package/dist/core/docs/extract-terms.js +147 -0
- package/dist/core/docs/extract-terms.js.map +1 -0
- package/dist/core/docs/indexer.d.ts +104 -0
- package/dist/core/docs/indexer.d.ts.map +1 -0
- package/dist/core/docs/indexer.js +340 -0
- package/dist/core/docs/indexer.js.map +1 -0
- package/dist/core/drift-effects.d.ts +30 -0
- package/dist/core/drift-effects.d.ts.map +1 -0
- package/dist/core/drift-effects.js +384 -0
- package/dist/core/drift-effects.js.map +1 -0
- package/dist/core/event-bus.d.ts +56 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +135 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/git-project-docs.d.ts +77 -0
- package/dist/core/git-project-docs.d.ts.map +1 -0
- package/dist/core/git-project-docs.js +439 -0
- package/dist/core/git-project-docs.js.map +1 -0
- package/dist/core/health-monitor.d.ts +57 -0
- package/dist/core/health-monitor.d.ts.map +1 -0
- package/dist/core/health-monitor.js +137 -0
- package/dist/core/health-monitor.js.map +1 -0
- package/dist/core/heartbeat.d.ts +26 -0
- package/dist/core/heartbeat.d.ts.map +1 -0
- package/dist/core/heartbeat.js +48 -0
- package/dist/core/heartbeat.js.map +1 -0
- package/dist/core/integration-health.d.ts +49 -0
- package/dist/core/integration-health.d.ts.map +1 -0
- package/dist/core/integration-health.js +89 -0
- package/dist/core/integration-health.js.map +1 -0
- package/dist/core/integration-lifecycle.d.ts +79 -0
- package/dist/core/integration-lifecycle.d.ts.map +1 -0
- package/dist/core/integration-lifecycle.js +153 -0
- package/dist/core/integration-lifecycle.js.map +1 -0
- package/dist/core/integration-main-backend.d.ts +36 -0
- package/dist/core/integration-main-backend.d.ts.map +1 -0
- package/dist/core/integration-main-backend.js +59 -0
- package/dist/core/integration-main-backend.js.map +1 -0
- package/dist/core/integration-probe.d.ts +98 -0
- package/dist/core/integration-probe.d.ts.map +1 -0
- package/dist/core/integration-probe.js +152 -0
- package/dist/core/integration-probe.js.map +1 -0
- package/dist/core/management-md-write-lock.d.ts +68 -0
- package/dist/core/management-md-write-lock.d.ts.map +1 -0
- package/dist/core/management-md-write-lock.js +93 -0
- package/dist/core/management-md-write-lock.js.map +1 -0
- package/dist/core/management-md.d.ts +186 -0
- package/dist/core/management-md.d.ts.map +1 -0
- package/dist/core/management-md.js +652 -0
- package/dist/core/management-md.js.map +1 -0
- package/dist/core/management-registry.d.ts +245 -0
- package/dist/core/management-registry.d.ts.map +1 -0
- package/dist/core/management-registry.js +906 -0
- package/dist/core/management-registry.js.map +1 -0
- package/dist/core/management-telemetry.d.ts +100 -0
- package/dist/core/management-telemetry.d.ts.map +1 -0
- package/dist/core/management-telemetry.js +156 -0
- package/dist/core/management-telemetry.js.map +1 -0
- package/dist/core/message-recorder.d.ts +38 -0
- package/dist/core/message-recorder.d.ts.map +1 -0
- package/dist/core/message-recorder.js +88 -0
- package/dist/core/message-recorder.js.map +1 -0
- package/dist/core/metrics.d.ts +338 -0
- package/dist/core/metrics.d.ts.map +1 -0
- package/dist/core/metrics.js +747 -0
- package/dist/core/metrics.js.map +1 -0
- package/dist/core/migration-backup.d.ts +218 -0
- package/dist/core/migration-backup.d.ts.map +1 -0
- package/dist/core/migration-backup.js +934 -0
- package/dist/core/migration-backup.js.map +1 -0
- package/dist/core/overview-write-lock.d.ts +48 -0
- package/dist/core/overview-write-lock.d.ts.map +1 -0
- package/dist/core/overview-write-lock.js +56 -0
- package/dist/core/overview-write-lock.js.map +1 -0
- package/dist/core/path-compat.d.ts +22 -0
- package/dist/core/path-compat.d.ts.map +1 -0
- package/dist/core/path-compat.js +67 -0
- package/dist/core/path-compat.js.map +1 -0
- package/dist/core/path-rewrite.d.ts +58 -0
- package/dist/core/path-rewrite.d.ts.map +1 -0
- package/dist/core/path-rewrite.js +141 -0
- package/dist/core/path-rewrite.js.map +1 -0
- package/dist/core/policy-files.d.ts +108 -0
- package/dist/core/policy-files.d.ts.map +1 -0
- package/dist/core/policy-files.js +198 -0
- package/dist/core/policy-files.js.map +1 -0
- package/dist/core/profile-questions/seed.d.ts +44 -0
- package/dist/core/profile-questions/seed.d.ts.map +1 -0
- package/dist/core/profile-questions/seed.js +173 -0
- package/dist/core/profile-questions/seed.js.map +1 -0
- package/dist/core/profile-questions/slot-filled.d.ts +51 -0
- package/dist/core/profile-questions/slot-filled.d.ts.map +1 -0
- package/dist/core/profile-questions/slot-filled.js +118 -0
- package/dist/core/profile-questions/slot-filled.js.map +1 -0
- package/dist/core/prompts.d.ts +111 -0
- package/dist/core/prompts.d.ts.map +1 -0
- package/dist/core/prompts.js +267 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/quiet-hours-sync.d.ts +15 -0
- package/dist/core/quiet-hours-sync.d.ts.map +1 -0
- package/dist/core/quiet-hours-sync.js +51 -0
- package/dist/core/quiet-hours-sync.js.map +1 -0
- package/dist/core/read-sensitive-token-manager.d.ts +19 -0
- package/dist/core/read-sensitive-token-manager.d.ts.map +1 -0
- package/dist/core/read-sensitive-token-manager.js +29 -0
- package/dist/core/read-sensitive-token-manager.js.map +1 -0
- package/dist/core/recurrence.d.ts +24 -0
- package/dist/core/recurrence.d.ts.map +1 -0
- package/dist/core/recurrence.js +162 -0
- package/dist/core/recurrence.js.map +1 -0
- package/dist/core/reinstall.d.ts +107 -0
- package/dist/core/reinstall.d.ts.map +1 -0
- package/dist/core/reinstall.js +163 -0
- package/dist/core/reinstall.js.map +1 -0
- package/dist/core/release-assets.d.ts +106 -0
- package/dist/core/release-assets.d.ts.map +1 -0
- package/dist/core/release-assets.js +434 -0
- package/dist/core/release-assets.js.map +1 -0
- package/dist/core/repository-management-docs.d.ts +216 -0
- package/dist/core/repository-management-docs.d.ts.map +1 -0
- package/dist/core/repository-management-docs.js +855 -0
- package/dist/core/repository-management-docs.js.map +1 -0
- package/dist/core/retention.d.ts +164 -0
- package/dist/core/retention.d.ts.map +1 -0
- package/dist/core/retention.js +1008 -0
- package/dist/core/retention.js.map +1 -0
- package/dist/core/review-context.d.ts +48 -0
- package/dist/core/review-context.d.ts.map +1 -0
- package/dist/core/review-context.js +282 -0
- package/dist/core/review-context.js.map +1 -0
- package/dist/core/roadmap-horizon.d.ts +48 -0
- package/dist/core/roadmap-horizon.d.ts.map +1 -0
- package/dist/core/roadmap-horizon.js +213 -0
- package/dist/core/roadmap-horizon.js.map +1 -0
- package/dist/core/roadmap-ids.d.ts +57 -0
- package/dist/core/roadmap-ids.d.ts.map +1 -0
- package/dist/core/roadmap-ids.js +118 -0
- package/dist/core/roadmap-ids.js.map +1 -0
- package/dist/core/roadmap-merge.d.ts +7 -0
- package/dist/core/roadmap-merge.d.ts.map +1 -0
- package/dist/core/roadmap-merge.js +187 -0
- package/dist/core/roadmap-merge.js.map +1 -0
- package/dist/core/roadmap-refresh-triggers.d.ts +32 -0
- package/dist/core/roadmap-refresh-triggers.d.ts.map +1 -0
- package/dist/core/roadmap-refresh-triggers.js +51 -0
- package/dist/core/roadmap-refresh-triggers.js.map +1 -0
- package/dist/core/roadmap-truncate.d.ts +49 -0
- package/dist/core/roadmap-truncate.d.ts.map +1 -0
- package/dist/core/roadmap-truncate.js +152 -0
- package/dist/core/roadmap-truncate.js.map +1 -0
- package/dist/core/roadmap-validate.d.ts +31 -0
- package/dist/core/roadmap-validate.d.ts.map +1 -0
- package/dist/core/roadmap-validate.js +403 -0
- package/dist/core/roadmap-validate.js.map +1 -0
- package/dist/core/roadmap-write-lock.d.ts +53 -0
- package/dist/core/roadmap-write-lock.d.ts.map +1 -0
- package/dist/core/roadmap-write-lock.js +59 -0
- package/dist/core/roadmap-write-lock.js.map +1 -0
- package/dist/core/schedule-insert-helper.d.ts +46 -0
- package/dist/core/schedule-insert-helper.d.ts.map +1 -0
- package/dist/core/schedule-insert-helper.js +52 -0
- package/dist/core/schedule-insert-helper.js.map +1 -0
- package/dist/core/schedule-maintenance.d.ts +22 -0
- package/dist/core/schedule-maintenance.d.ts.map +1 -0
- package/dist/core/schedule-maintenance.js +57 -0
- package/dist/core/schedule-maintenance.js.map +1 -0
- package/dist/core/scheduler.d.ts +208 -0
- package/dist/core/scheduler.d.ts.map +1 -0
- package/dist/core/scheduler.js +896 -0
- package/dist/core/scheduler.js.map +1 -0
- package/dist/core/semaphore.d.ts +13 -0
- package/dist/core/semaphore.d.ts.map +1 -0
- package/dist/core/semaphore.js +31 -0
- package/dist/core/semaphore.js.map +1 -0
- package/dist/core/session-gate.d.ts +37 -0
- package/dist/core/session-gate.d.ts.map +1 -0
- package/dist/core/session-gate.js +69 -0
- package/dist/core/session-gate.js.map +1 -0
- package/dist/core/session-manager.d.ts +252 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +716 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/signal-detector.d.ts +97 -0
- package/dist/core/signal-detector.d.ts.map +1 -0
- package/dist/core/signal-detector.js +215 -0
- package/dist/core/signal-detector.js.map +1 -0
- package/dist/core/skeleton.d.ts +83 -0
- package/dist/core/skeleton.d.ts.map +1 -0
- package/dist/core/skeleton.js +255 -0
- package/dist/core/skeleton.js.map +1 -0
- package/dist/core/skill-curation/apply-proposal.d.ts +71 -0
- package/dist/core/skill-curation/apply-proposal.d.ts.map +1 -0
- package/dist/core/skill-curation/apply-proposal.js +175 -0
- package/dist/core/skill-curation/apply-proposal.js.map +1 -0
- package/dist/core/skill-curation/auto-revert.d.ts +43 -0
- package/dist/core/skill-curation/auto-revert.d.ts.map +1 -0
- package/dist/core/skill-curation/auto-revert.js +155 -0
- package/dist/core/skill-curation/auto-revert.js.map +1 -0
- package/dist/core/skill-curation/classify-diff.d.ts +27 -0
- package/dist/core/skill-curation/classify-diff.d.ts.map +1 -0
- package/dist/core/skill-curation/classify-diff.js +0 -0
- package/dist/core/skill-curation/classify-diff.js.map +1 -0
- package/dist/core/skill-curation/declarations.d.ts +32 -0
- package/dist/core/skill-curation/declarations.d.ts.map +1 -0
- package/dist/core/skill-curation/declarations.js +171 -0
- package/dist/core/skill-curation/declarations.js.map +1 -0
- package/dist/core/skill-curation/knowledge-map.d.ts +26 -0
- package/dist/core/skill-curation/knowledge-map.d.ts.map +1 -0
- package/dist/core/skill-curation/knowledge-map.js +154 -0
- package/dist/core/skill-curation/knowledge-map.js.map +1 -0
- package/dist/core/skill-curation/orphan-overlay.d.ts +35 -0
- package/dist/core/skill-curation/orphan-overlay.d.ts.map +1 -0
- package/dist/core/skill-curation/orphan-overlay.js +167 -0
- package/dist/core/skill-curation/orphan-overlay.js.map +1 -0
- package/dist/core/skill-curation/overlay-store.d.ts +41 -0
- package/dist/core/skill-curation/overlay-store.d.ts.map +1 -0
- package/dist/core/skill-curation/overlay-store.js +143 -0
- package/dist/core/skill-curation/overlay-store.js.map +1 -0
- package/dist/core/skill-curation/render/convention-notes.d.ts +4 -0
- package/dist/core/skill-curation/render/convention-notes.d.ts.map +1 -0
- package/dist/core/skill-curation/render/convention-notes.js +13 -0
- package/dist/core/skill-curation/render/convention-notes.js.map +1 -0
- package/dist/core/skill-curation/render/cross-references.d.ts +4 -0
- package/dist/core/skill-curation/render/cross-references.d.ts.map +1 -0
- package/dist/core/skill-curation/render/cross-references.js +10 -0
- package/dist/core/skill-curation/render/cross-references.js.map +1 -0
- package/dist/core/skill-curation/render/frontmatter-schema.d.ts +4 -0
- package/dist/core/skill-curation/render/frontmatter-schema.d.ts.map +1 -0
- package/dist/core/skill-curation/render/frontmatter-schema.js +25 -0
- package/dist/core/skill-curation/render/frontmatter-schema.js.map +1 -0
- package/dist/core/skill-curation/render/index.d.ts +5 -0
- package/dist/core/skill-curation/render/index.d.ts.map +1 -0
- package/dist/core/skill-curation/render/index.js +42 -0
- package/dist/core/skill-curation/render/index.js.map +1 -0
- package/dist/core/skill-curation/render/knowledge-layout.d.ts +4 -0
- package/dist/core/skill-curation/render/knowledge-layout.d.ts.map +1 -0
- package/dist/core/skill-curation/render/knowledge-layout.js +36 -0
- package/dist/core/skill-curation/render/knowledge-layout.js.map +1 -0
- package/dist/core/skill-curation/render/routing-table.d.ts +4 -0
- package/dist/core/skill-curation/render/routing-table.d.ts.map +1 -0
- package/dist/core/skill-curation/render/routing-table.js +37 -0
- package/dist/core/skill-curation/render/routing-table.js.map +1 -0
- package/dist/core/skill-curation/render/search-recipes.d.ts +4 -0
- package/dist/core/skill-curation/render/search-recipes.d.ts.map +1 -0
- package/dist/core/skill-curation/render/search-recipes.js +39 -0
- package/dist/core/skill-curation/render/search-recipes.js.map +1 -0
- package/dist/core/skill-curation/run-token.d.ts +27 -0
- package/dist/core/skill-curation/run-token.d.ts.map +1 -0
- package/dist/core/skill-curation/run-token.js +81 -0
- package/dist/core/skill-curation/run-token.js.map +1 -0
- package/dist/core/skill-curation/signals.d.ts +49 -0
- package/dist/core/skill-curation/signals.d.ts.map +1 -0
- package/dist/core/skill-curation/signals.js +149 -0
- package/dist/core/skill-curation/signals.js.map +1 -0
- package/dist/core/skill-curation/smoke-test.d.ts +39 -0
- package/dist/core/skill-curation/smoke-test.d.ts.map +1 -0
- package/dist/core/skill-curation/smoke-test.js +313 -0
- package/dist/core/skill-curation/smoke-test.js.map +1 -0
- package/dist/core/skill-curation/splicer.d.ts +16 -0
- package/dist/core/skill-curation/splicer.d.ts.map +1 -0
- package/dist/core/skill-curation/splicer.js +78 -0
- package/dist/core/skill-curation/splicer.js.map +1 -0
- package/dist/core/skill-curation/workdir.d.ts +40 -0
- package/dist/core/skill-curation/workdir.d.ts.map +1 -0
- package/dist/core/skill-curation/workdir.js +242 -0
- package/dist/core/skill-curation/workdir.js.map +1 -0
- package/dist/core/skills-compiler.d.ts +391 -0
- package/dist/core/skills-compiler.d.ts.map +1 -0
- package/dist/core/skills-compiler.js +1271 -0
- package/dist/core/skills-compiler.js.map +1 -0
- package/dist/core/skills-manifest.d.ts +8 -0
- package/dist/core/skills-manifest.d.ts.map +1 -0
- package/dist/core/skills-manifest.js +408 -0
- package/dist/core/skills-manifest.js.map +1 -0
- package/dist/core/system-reset.d.ts +268 -0
- package/dist/core/system-reset.d.ts.map +1 -0
- package/dist/core/system-reset.js +816 -0
- package/dist/core/system-reset.js.map +1 -0
- package/dist/core/template-store.d.ts +170 -0
- package/dist/core/template-store.d.ts.map +1 -0
- package/dist/core/template-store.js +388 -0
- package/dist/core/template-store.js.map +1 -0
- package/dist/core/template-versions.d.ts +95 -0
- package/dist/core/template-versions.d.ts.map +1 -0
- package/dist/core/template-versions.js +175 -0
- package/dist/core/template-versions.js.map +1 -0
- package/dist/core/today-agent-plan.d.ts +33 -0
- package/dist/core/today-agent-plan.d.ts.map +1 -0
- package/dist/core/today-agent-plan.js +120 -0
- package/dist/core/today-agent-plan.js.map +1 -0
- package/dist/core/today-direct-writer.d.ts +62 -0
- package/dist/core/today-direct-writer.d.ts.map +1 -0
- package/dist/core/today-direct-writer.js +132 -0
- package/dist/core/today-direct-writer.js.map +1 -0
- package/dist/core/today-write-lock.d.ts +89 -0
- package/dist/core/today-write-lock.d.ts.map +1 -0
- package/dist/core/today-write-lock.js +154 -0
- package/dist/core/today-write-lock.js.map +1 -0
- package/dist/core/trigger-dispatch.d.ts +31 -0
- package/dist/core/trigger-dispatch.d.ts.map +1 -0
- package/dist/core/trigger-dispatch.js +100 -0
- package/dist/core/trigger-dispatch.js.map +1 -0
- package/dist/core/trigger-evaluator.d.ts +59 -0
- package/dist/core/trigger-evaluator.d.ts.map +1 -0
- package/dist/core/trigger-evaluator.js +243 -0
- package/dist/core/trigger-evaluator.js.map +1 -0
- package/dist/core/workdir.d.ts +241 -0
- package/dist/core/workdir.d.ts.map +1 -0
- package/dist/core/workdir.js +565 -0
- package/dist/core/workdir.js.map +1 -0
- package/dist/db/automation-triggers.d.ts +90 -0
- package/dist/db/automation-triggers.d.ts.map +1 -0
- package/dist/db/automation-triggers.js +199 -0
- package/dist/db/automation-triggers.js.map +1 -0
- package/dist/db/client.d.ts +6 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +47 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/entities-store.d.ts +92 -0
- package/dist/db/entities-store.d.ts.map +1 -0
- package/dist/db/entities-store.js +180 -0
- package/dist/db/entities-store.js.map +1 -0
- package/dist/db/hourly-check-signals.d.ts +78 -0
- package/dist/db/hourly-check-signals.d.ts.map +1 -0
- package/dist/db/hourly-check-signals.js +289 -0
- package/dist/db/hourly-check-signals.js.map +1 -0
- package/dist/db/integration-probe-store.d.ts +27 -0
- package/dist/db/integration-probe-store.d.ts.map +1 -0
- package/dist/db/integration-probe-store.js +75 -0
- package/dist/db/integration-probe-store.js.map +1 -0
- package/dist/db/integrations-store.d.ts +19 -0
- package/dist/db/integrations-store.d.ts.map +1 -0
- package/dist/db/integrations-store.js +85 -0
- package/dist/db/integrations-store.js.map +1 -0
- package/dist/db/managed-tasks-store.d.ts +130 -0
- package/dist/db/managed-tasks-store.d.ts.map +1 -0
- package/dist/db/managed-tasks-store.js +238 -0
- package/dist/db/managed-tasks-store.js.map +1 -0
- package/dist/db/management-parse-failures-store.d.ts +45 -0
- package/dist/db/management-parse-failures-store.d.ts.map +1 -0
- package/dist/db/management-parse-failures-store.js +36 -0
- package/dist/db/management-parse-failures-store.js.map +1 -0
- package/dist/db/observations.d.ts +145 -0
- package/dist/db/observations.d.ts.map +1 -0
- package/dist/db/observations.js +287 -0
- package/dist/db/observations.js.map +1 -0
- package/dist/db/recurring-schedules.d.ts +70 -0
- package/dist/db/recurring-schedules.d.ts.map +1 -0
- package/dist/db/recurring-schedules.js +213 -0
- package/dist/db/recurring-schedules.js.map +1 -0
- package/dist/db/repositories-store.d.ts +296 -0
- package/dist/db/repositories-store.d.ts.map +1 -0
- package/dist/db/repositories-store.js +754 -0
- package/dist/db/repositories-store.js.map +1 -0
- package/dist/db/runtime-state.d.ts +61 -0
- package/dist/db/runtime-state.d.ts.map +1 -0
- package/dist/db/runtime-state.js +104 -0
- package/dist/db/runtime-state.js.map +1 -0
- package/dist/db/schema.d.ts +4 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +1338 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/db/sot-bindings-store.d.ts +41 -0
- package/dist/db/sot-bindings-store.d.ts.map +1 -0
- package/dist/db/sot-bindings-store.js +64 -0
- package/dist/db/sot-bindings-store.js.map +1 -0
- package/dist/db/test-schemas.d.ts +23 -0
- package/dist/db/test-schemas.d.ts.map +1 -0
- package/dist/db/test-schemas.js +111 -0
- package/dist/db/test-schemas.js.map +1 -0
- package/dist/db/voice-transcripts-store.d.ts +28 -0
- package/dist/db/voice-transcripts-store.d.ts.map +1 -0
- package/dist/db/voice-transcripts-store.js +43 -0
- package/dist/db/voice-transcripts-store.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2913 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +7 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +32 -0
- package/dist/init.js.map +1 -0
- package/dist/log-buffer.d.ts +71 -0
- package/dist/log-buffer.d.ts.map +1 -0
- package/dist/log-buffer.js +201 -0
- package/dist/log-buffer.js.map +1 -0
- package/dist/logging.d.ts +5 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +130 -0
- package/dist/logging.js.map +1 -0
- package/dist/management-rules.d.ts +2 -0
- package/dist/management-rules.d.ts.map +1 -0
- package/dist/management-rules.js +62 -0
- package/dist/management-rules.js.map +1 -0
- package/dist/messaging/constants.d.ts +33 -0
- package/dist/messaging/constants.d.ts.map +1 -0
- package/dist/messaging/constants.js +52 -0
- package/dist/messaging/constants.js.map +1 -0
- package/dist/messaging/magic-phrase.d.ts +16 -0
- package/dist/messaging/magic-phrase.d.ts.map +1 -0
- package/dist/messaging/magic-phrase.js +103 -0
- package/dist/messaging/magic-phrase.js.map +1 -0
- package/dist/messaging/owner-channels.d.ts +20 -0
- package/dist/messaging/owner-channels.d.ts.map +1 -0
- package/dist/messaging/owner-channels.js +41 -0
- package/dist/messaging/owner-channels.js.map +1 -0
- package/dist/observers/calendar-poller.d.ts +51 -0
- package/dist/observers/calendar-poller.d.ts.map +1 -0
- package/dist/observers/calendar-poller.js +128 -0
- package/dist/observers/calendar-poller.js.map +1 -0
- package/dist/observers/context-index-reconciler-observer.d.ts +72 -0
- package/dist/observers/context-index-reconciler-observer.d.ts.map +1 -0
- package/dist/observers/context-index-reconciler-observer.js +253 -0
- package/dist/observers/context-index-reconciler-observer.js.map +1 -0
- package/dist/observers/delegated-probe-observer.d.ts +83 -0
- package/dist/observers/delegated-probe-observer.d.ts.map +1 -0
- package/dist/observers/delegated-probe-observer.js +237 -0
- package/dist/observers/delegated-probe-observer.js.map +1 -0
- package/dist/observers/delegated-sync-worker.d.ts +375 -0
- package/dist/observers/delegated-sync-worker.d.ts.map +1 -0
- package/dist/observers/delegated-sync-worker.js +1087 -0
- package/dist/observers/delegated-sync-worker.js.map +1 -0
- package/dist/observers/entity-mirror-observer.d.ts +55 -0
- package/dist/observers/entity-mirror-observer.d.ts.map +1 -0
- package/dist/observers/entity-mirror-observer.js +73 -0
- package/dist/observers/entity-mirror-observer.js.map +1 -0
- package/dist/observers/git-delegated-cron.d.ts +41 -0
- package/dist/observers/git-delegated-cron.d.ts.map +1 -0
- package/dist/observers/git-delegated-cron.js +159 -0
- package/dist/observers/git-delegated-cron.js.map +1 -0
- package/dist/observers/git-event-classifier.d.ts +52 -0
- package/dist/observers/git-event-classifier.d.ts.map +1 -0
- package/dist/observers/git-event-classifier.js +70 -0
- package/dist/observers/git-event-classifier.js.map +1 -0
- package/dist/observers/git-watcher.d.ts +162 -0
- package/dist/observers/git-watcher.d.ts.map +1 -0
- package/dist/observers/git-watcher.js +768 -0
- package/dist/observers/git-watcher.js.map +1 -0
- package/dist/observers/github-poller-classifier.d.ts +101 -0
- package/dist/observers/github-poller-classifier.d.ts.map +1 -0
- package/dist/observers/github-poller-classifier.js +199 -0
- package/dist/observers/github-poller-classifier.js.map +1 -0
- package/dist/observers/github-poller.d.ts +291 -0
- package/dist/observers/github-poller.d.ts.map +1 -0
- package/dist/observers/github-poller.js +609 -0
- package/dist/observers/github-poller.js.map +1 -0
- package/dist/observers/imminent-event-scheduler.d.ts +34 -0
- package/dist/observers/imminent-event-scheduler.d.ts.map +1 -0
- package/dist/observers/imminent-event-scheduler.js +125 -0
- package/dist/observers/imminent-event-scheduler.js.map +1 -0
- package/dist/observers/mail-poller.d.ts +133 -0
- package/dist/observers/mail-poller.d.ts.map +1 -0
- package/dist/observers/mail-poller.js +563 -0
- package/dist/observers/mail-poller.js.map +1 -0
- package/dist/observers/mail-reconciliation.d.ts +87 -0
- package/dist/observers/mail-reconciliation.d.ts.map +1 -0
- package/dist/observers/mail-reconciliation.js +241 -0
- package/dist/observers/mail-reconciliation.js.map +1 -0
- package/dist/observers/manager.d.ts +67 -0
- package/dist/observers/manager.d.ts.map +1 -0
- package/dist/observers/manager.js +136 -0
- package/dist/observers/manager.js.map +1 -0
- package/dist/observers/notion-poller.d.ts +43 -0
- package/dist/observers/notion-poller.d.ts.map +1 -0
- package/dist/observers/notion-poller.js +184 -0
- package/dist/observers/notion-poller.js.map +1 -0
- package/dist/observers/observation-summarizer/index.d.ts +13 -0
- package/dist/observers/observation-summarizer/index.d.ts.map +1 -0
- package/dist/observers/observation-summarizer/index.js +13 -0
- package/dist/observers/observation-summarizer/index.js.map +1 -0
- package/dist/observers/observation-summarizer/pre-filter.d.ts +62 -0
- package/dist/observers/observation-summarizer/pre-filter.d.ts.map +1 -0
- package/dist/observers/observation-summarizer/pre-filter.js +189 -0
- package/dist/observers/observation-summarizer/pre-filter.js.map +1 -0
- package/dist/observers/observation-summarizer/response-parser.d.ts +30 -0
- package/dist/observers/observation-summarizer/response-parser.d.ts.map +1 -0
- package/dist/observers/observation-summarizer/response-parser.js +106 -0
- package/dist/observers/observation-summarizer/response-parser.js.map +1 -0
- package/dist/observers/observation-summarizer/summarizer-client.d.ts +83 -0
- package/dist/observers/observation-summarizer/summarizer-client.d.ts.map +1 -0
- package/dist/observers/observation-summarizer/summarizer-client.js +185 -0
- package/dist/observers/observation-summarizer/summarizer-client.js.map +1 -0
- package/dist/observers/observation-summarizer/summarizer-prompts.d.ts +51 -0
- package/dist/observers/observation-summarizer/summarizer-prompts.d.ts.map +1 -0
- package/dist/observers/observation-summarizer/summarizer-prompts.js +286 -0
- package/dist/observers/observation-summarizer/summarizer-prompts.js.map +1 -0
- package/dist/observers/observation-summarizer/worker.d.ts +106 -0
- package/dist/observers/observation-summarizer/worker.d.ts.map +1 -0
- package/dist/observers/observation-summarizer/worker.js +311 -0
- package/dist/observers/observation-summarizer/worker.js.map +1 -0
- package/dist/observers/obsidian-watcher.d.ts +90 -0
- package/dist/observers/obsidian-watcher.d.ts.map +1 -0
- package/dist/observers/obsidian-watcher.js +166 -0
- package/dist/observers/obsidian-watcher.js.map +1 -0
- package/dist/observers/primary-vault-watcher.d.ts +73 -0
- package/dist/observers/primary-vault-watcher.d.ts.map +1 -0
- package/dist/observers/primary-vault-watcher.js +115 -0
- package/dist/observers/primary-vault-watcher.js.map +1 -0
- package/dist/observers/repository-management-cron.d.ts +70 -0
- package/dist/observers/repository-management-cron.d.ts.map +1 -0
- package/dist/observers/repository-management-cron.js +166 -0
- package/dist/observers/repository-management-cron.js.map +1 -0
- package/dist/observers/skill-curation-walker.d.ts +33 -0
- package/dist/observers/skill-curation-walker.d.ts.map +1 -0
- package/dist/observers/skill-curation-walker.js +216 -0
- package/dist/observers/skill-curation-walker.js.map +1 -0
- package/dist/safety/absolute-block-audit.d.ts +22 -0
- package/dist/safety/absolute-block-audit.d.ts.map +1 -0
- package/dist/safety/absolute-block-audit.js +32 -0
- package/dist/safety/absolute-block-audit.js.map +1 -0
- package/dist/safety/agent-write-tracker.d.ts +42 -0
- package/dist/safety/agent-write-tracker.d.ts.map +1 -0
- package/dist/safety/agent-write-tracker.js +82 -0
- package/dist/safety/agent-write-tracker.js.map +1 -0
- package/dist/safety/always-disallowed.d.ts +66 -0
- package/dist/safety/always-disallowed.d.ts.map +1 -0
- package/dist/safety/always-disallowed.js +347 -0
- package/dist/safety/always-disallowed.js.map +1 -0
- package/dist/safety/audit.d.ts +118 -0
- package/dist/safety/audit.d.ts.map +1 -0
- package/dist/safety/audit.js +324 -0
- package/dist/safety/audit.js.map +1 -0
- package/dist/safety/integration-write-tracker.d.ts +58 -0
- package/dist/safety/integration-write-tracker.d.ts.map +1 -0
- package/dist/safety/integration-write-tracker.js +41 -0
- package/dist/safety/integration-write-tracker.js.map +1 -0
- package/dist/safety/risk-classifier.d.ts +65 -0
- package/dist/safety/risk-classifier.d.ts.map +1 -0
- package/dist/safety/risk-classifier.js +763 -0
- package/dist/safety/risk-classifier.js.map +1 -0
- package/dist/scheduler/hourly-check-gate.d.ts +73 -0
- package/dist/scheduler/hourly-check-gate.d.ts.map +1 -0
- package/dist/scheduler/hourly-check-gate.js +128 -0
- package/dist/scheduler/hourly-check-gate.js.map +1 -0
- package/dist/secrets/backend-api-key-env.d.ts +104 -0
- package/dist/secrets/backend-api-key-env.d.ts.map +1 -0
- package/dist/secrets/backend-api-key-env.js +197 -0
- package/dist/secrets/backend-api-key-env.js.map +1 -0
- package/dist/secrets/codex-home-materializer.d.ts +35 -0
- package/dist/secrets/codex-home-materializer.d.ts.map +1 -0
- package/dist/secrets/codex-home-materializer.js +76 -0
- package/dist/secrets/codex-home-materializer.js.map +1 -0
- package/dist/secrets/encrypted-blob-store.d.ts +20 -0
- package/dist/secrets/encrypted-blob-store.d.ts.map +1 -0
- package/dist/secrets/encrypted-blob-store.js +80 -0
- package/dist/secrets/encrypted-blob-store.js.map +1 -0
- package/dist/secrets/platform-secret-store.d.ts +17 -0
- package/dist/secrets/platform-secret-store.d.ts.map +1 -0
- package/dist/secrets/platform-secret-store.js +37 -0
- package/dist/secrets/platform-secret-store.js.map +1 -0
- package/dist/secrets/redaction.d.ts +2 -0
- package/dist/secrets/redaction.d.ts.map +1 -0
- package/dist/secrets/redaction.js +2 -0
- package/dist/secrets/redaction.js.map +1 -0
- package/dist/secrets/secret-broker.d.ts +61 -0
- package/dist/secrets/secret-broker.d.ts.map +1 -0
- package/dist/secrets/secret-broker.js +160 -0
- package/dist/secrets/secret-broker.js.map +1 -0
- package/dist/secrets/secret-names.d.ts +34 -0
- package/dist/secrets/secret-names.d.ts.map +1 -0
- package/dist/secrets/secret-names.js +39 -0
- package/dist/secrets/secret-names.js.map +1 -0
- package/dist/secrets/secret-store.d.ts +8 -0
- package/dist/secrets/secret-store.d.ts.map +1 -0
- package/dist/secrets/secret-store.js +2 -0
- package/dist/secrets/secret-store.js.map +1 -0
- package/dist/secrets/types.d.ts +7 -0
- package/dist/secrets/types.d.ts.map +1 -0
- package/dist/secrets/types.js +2 -0
- package/dist/secrets/types.js.map +1 -0
- package/dist/services/apple-calendar/caldav-client.d.ts +48 -0
- package/dist/services/apple-calendar/caldav-client.d.ts.map +1 -0
- package/dist/services/apple-calendar/caldav-client.js +86 -0
- package/dist/services/apple-calendar/caldav-client.js.map +1 -0
- package/dist/services/apple-calendar/caldav-codec.d.ts +67 -0
- package/dist/services/apple-calendar/caldav-codec.d.ts.map +1 -0
- package/dist/services/apple-calendar/caldav-codec.js +341 -0
- package/dist/services/apple-calendar/caldav-codec.js.map +1 -0
- package/dist/services/apple-calendar/index.d.ts +3 -0
- package/dist/services/apple-calendar/index.d.ts.map +1 -0
- package/dist/services/apple-calendar/index.js +2 -0
- package/dist/services/apple-calendar/index.js.map +1 -0
- package/dist/services/apple-calendar/service.d.ts +75 -0
- package/dist/services/apple-calendar/service.d.ts.map +1 -0
- package/dist/services/apple-calendar/service.js +374 -0
- package/dist/services/apple-calendar/service.js.map +1 -0
- package/dist/services/apple-calendar/types.d.ts +78 -0
- package/dist/services/apple-calendar/types.d.ts.map +1 -0
- package/dist/services/apple-calendar/types.js +17 -0
- package/dist/services/apple-calendar/types.js.map +1 -0
- package/dist/services/attachments/hardlink.d.ts +11 -0
- package/dist/services/attachments/hardlink.d.ts.map +1 -0
- package/dist/services/attachments/hardlink.js +56 -0
- package/dist/services/attachments/hardlink.js.map +1 -0
- package/dist/services/attachments/sanitize.d.ts +21 -0
- package/dist/services/attachments/sanitize.d.ts.map +1 -0
- package/dist/services/attachments/sanitize.js +128 -0
- package/dist/services/attachments/sanitize.js.map +1 -0
- package/dist/services/attachments/store.d.ts +146 -0
- package/dist/services/attachments/store.d.ts.map +1 -0
- package/dist/services/attachments/store.js +477 -0
- package/dist/services/attachments/store.js.map +1 -0
- package/dist/services/calendar/outlook/graph-calendar-client.d.ts +114 -0
- package/dist/services/calendar/outlook/graph-calendar-client.d.ts.map +1 -0
- package/dist/services/calendar/outlook/graph-calendar-client.js +146 -0
- package/dist/services/calendar/outlook/graph-calendar-client.js.map +1 -0
- package/dist/services/calendar.d.ts +115 -0
- package/dist/services/calendar.d.ts.map +1 -0
- package/dist/services/calendar.js +281 -0
- package/dist/services/calendar.js.map +1 -0
- package/dist/services/delegated-backend-invoker.d.ts +414 -0
- package/dist/services/delegated-backend-invoker.d.ts.map +1 -0
- package/dist/services/delegated-backend-invoker.js +2372 -0
- package/dist/services/delegated-backend-invoker.js.map +1 -0
- package/dist/services/delegated-proxy-config.d.ts +93 -0
- package/dist/services/delegated-proxy-config.d.ts.map +1 -0
- package/dist/services/delegated-proxy-config.js +98 -0
- package/dist/services/delegated-proxy-config.js.map +1 -0
- package/dist/services/delegated-task-result-cache.d.ts +176 -0
- package/dist/services/delegated-task-result-cache.d.ts.map +1 -0
- package/dist/services/delegated-task-result-cache.js +0 -0
- package/dist/services/delegated-task-result-cache.js.map +1 -0
- package/dist/services/delegated-task-runtime.d.ts +346 -0
- package/dist/services/delegated-task-runtime.d.ts.map +1 -0
- package/dist/services/delegated-task-runtime.js +589 -0
- package/dist/services/delegated-task-runtime.js.map +1 -0
- package/dist/services/delegated-task-session-pool.d.ts +182 -0
- package/dist/services/delegated-task-session-pool.d.ts.map +1 -0
- package/dist/services/delegated-task-session-pool.js +292 -0
- package/dist/services/delegated-task-session-pool.js.map +1 -0
- package/dist/services/delegated-tool-runtime.d.ts +50 -0
- package/dist/services/delegated-tool-runtime.d.ts.map +1 -0
- package/dist/services/delegated-tool-runtime.js +120 -0
- package/dist/services/delegated-tool-runtime.js.map +1 -0
- package/dist/services/fts5.d.ts +40 -0
- package/dist/services/fts5.d.ts.map +1 -0
- package/dist/services/fts5.js +54 -0
- package/dist/services/fts5.js.map +1 -0
- package/dist/services/git-account-registry.d.ts +164 -0
- package/dist/services/git-account-registry.d.ts.map +1 -0
- package/dist/services/git-account-registry.js +297 -0
- package/dist/services/git-account-registry.js.map +1 -0
- package/dist/services/github.d.ts +49 -0
- package/dist/services/github.d.ts.map +1 -0
- package/dist/services/github.js +123 -0
- package/dist/services/github.js.map +1 -0
- package/dist/services/gmail-classifier.d.ts +62 -0
- package/dist/services/gmail-classifier.d.ts.map +1 -0
- package/dist/services/gmail-classifier.js +221 -0
- package/dist/services/gmail-classifier.js.map +1 -0
- package/dist/services/gmail.d.ts +192 -0
- package/dist/services/gmail.d.ts.map +1 -0
- package/dist/services/gmail.js +678 -0
- package/dist/services/gmail.js.map +1 -0
- package/dist/services/google-auth.d.ts +16 -0
- package/dist/services/google-auth.d.ts.map +1 -0
- package/dist/services/google-auth.js +37 -0
- package/dist/services/google-auth.js.map +1 -0
- package/dist/services/google-maps.d.ts +35 -0
- package/dist/services/google-maps.d.ts.map +1 -0
- package/dist/services/google-maps.js +82 -0
- package/dist/services/google-maps.js.map +1 -0
- package/dist/services/integrations/extract-write-item-id.d.ts +64 -0
- package/dist/services/integrations/extract-write-item-id.d.ts.map +1 -0
- package/dist/services/integrations/extract-write-item-id.js +188 -0
- package/dist/services/integrations/extract-write-item-id.js.map +1 -0
- package/dist/services/integrations/reconcile.d.ts +136 -0
- package/dist/services/integrations/reconcile.d.ts.map +1 -0
- package/dist/services/integrations/reconcile.js +218 -0
- package/dist/services/integrations/reconcile.js.map +1 -0
- package/dist/services/integrations/snapshot-partitions.d.ts +40 -0
- package/dist/services/integrations/snapshot-partitions.d.ts.map +1 -0
- package/dist/services/integrations/snapshot-partitions.js +113 -0
- package/dist/services/integrations/snapshot-partitions.js.map +1 -0
- package/dist/services/journal/render.d.ts +15 -0
- package/dist/services/journal/render.d.ts.map +1 -0
- package/dist/services/journal/render.js +17 -0
- package/dist/services/journal/render.js.map +1 -0
- package/dist/services/journal/writer.d.ts +26 -0
- package/dist/services/journal/writer.d.ts.map +1 -0
- package/dist/services/journal/writer.js +50 -0
- package/dist/services/journal/writer.js.map +1 -0
- package/dist/services/mail/account-registry.d.ts +208 -0
- package/dist/services/mail/account-registry.d.ts.map +1 -0
- package/dist/services/mail/account-registry.js +554 -0
- package/dist/services/mail/account-registry.js.map +1 -0
- package/dist/services/mail/gmail/auth-failure-classifier.d.ts +24 -0
- package/dist/services/mail/gmail/auth-failure-classifier.d.ts.map +1 -0
- package/dist/services/mail/gmail/auth-failure-classifier.js +67 -0
- package/dist/services/mail/gmail/auth-failure-classifier.js.map +1 -0
- package/dist/services/mail/gmail/gmail-provider.d.ts +58 -0
- package/dist/services/mail/gmail/gmail-provider.d.ts.map +1 -0
- package/dist/services/mail/gmail/gmail-provider.js +434 -0
- package/dist/services/mail/gmail/gmail-provider.js.map +1 -0
- package/dist/services/mail/gmail/legacy-row.d.ts +24 -0
- package/dist/services/mail/gmail/legacy-row.d.ts.map +1 -0
- package/dist/services/mail/gmail/legacy-row.js +71 -0
- package/dist/services/mail/gmail/legacy-row.js.map +1 -0
- package/dist/services/mail/gmail/poll-cursor.d.ts +12 -0
- package/dist/services/mail/gmail/poll-cursor.d.ts.map +1 -0
- package/dist/services/mail/gmail/poll-cursor.js +32 -0
- package/dist/services/mail/gmail/poll-cursor.js.map +1 -0
- package/dist/services/mail/html-to-plaintext.d.ts +27 -0
- package/dist/services/mail/html-to-plaintext.d.ts.map +1 -0
- package/dist/services/mail/html-to-plaintext.js +163 -0
- package/dist/services/mail/html-to-plaintext.js.map +1 -0
- package/dist/services/mail/imap/app-password.d.ts +27 -0
- package/dist/services/mail/imap/app-password.d.ts.map +1 -0
- package/dist/services/mail/imap/app-password.js +86 -0
- package/dist/services/mail/imap/app-password.js.map +1 -0
- package/dist/services/mail/imap/auth-failure-classifier.d.ts +21 -0
- package/dist/services/mail/imap/auth-failure-classifier.d.ts.map +1 -0
- package/dist/services/mail/imap/auth-failure-classifier.js +54 -0
- package/dist/services/mail/imap/auth-failure-classifier.js.map +1 -0
- package/dist/services/mail/imap/capabilities.d.ts +30 -0
- package/dist/services/mail/imap/capabilities.d.ts.map +1 -0
- package/dist/services/mail/imap/capabilities.js +70 -0
- package/dist/services/mail/imap/capabilities.js.map +1 -0
- package/dist/services/mail/imap/client.d.ts +15 -0
- package/dist/services/mail/imap/client.d.ts.map +1 -0
- package/dist/services/mail/imap/client.js +60 -0
- package/dist/services/mail/imap/client.js.map +1 -0
- package/dist/services/mail/imap/cursor.d.ts +19 -0
- package/dist/services/mail/imap/cursor.d.ts.map +1 -0
- package/dist/services/mail/imap/cursor.js +47 -0
- package/dist/services/mail/imap/cursor.js.map +1 -0
- package/dist/services/mail/imap/folder-resolver.d.ts +24 -0
- package/dist/services/mail/imap/folder-resolver.d.ts.map +1 -0
- package/dist/services/mail/imap/folder-resolver.js +58 -0
- package/dist/services/mail/imap/folder-resolver.js.map +1 -0
- package/dist/services/mail/imap/icloud-provider.d.ts +5 -0
- package/dist/services/mail/imap/icloud-provider.d.ts.map +1 -0
- package/dist/services/mail/imap/icloud-provider.js +5 -0
- package/dist/services/mail/imap/icloud-provider.js.map +1 -0
- package/dist/services/mail/imap/imap-provider-base.d.ts +173 -0
- package/dist/services/mail/imap/imap-provider-base.d.ts.map +1 -0
- package/dist/services/mail/imap/imap-provider-base.js +1004 -0
- package/dist/services/mail/imap/imap-provider-base.js.map +1 -0
- package/dist/services/mail/imap/query-translator.d.ts +13 -0
- package/dist/services/mail/imap/query-translator.d.ts.map +1 -0
- package/dist/services/mail/imap/query-translator.js +114 -0
- package/dist/services/mail/imap/query-translator.js.map +1 -0
- package/dist/services/mail/imap/reconcile-planner.d.ts +56 -0
- package/dist/services/mail/imap/reconcile-planner.d.ts.map +1 -0
- package/dist/services/mail/imap/reconcile-planner.js +52 -0
- package/dist/services/mail/imap/reconcile-planner.js.map +1 -0
- package/dist/services/mail/imap/reply-mime.d.ts +24 -0
- package/dist/services/mail/imap/reply-mime.d.ts.map +1 -0
- package/dist/services/mail/imap/reply-mime.js +77 -0
- package/dist/services/mail/imap/reply-mime.js.map +1 -0
- package/dist/services/mail/imap/yahoo-provider.d.ts +5 -0
- package/dist/services/mail/imap/yahoo-provider.d.ts.map +1 -0
- package/dist/services/mail/imap/yahoo-provider.js +5 -0
- package/dist/services/mail/imap/yahoo-provider.js.map +1 -0
- package/dist/services/mail/mail-search.d.ts +35 -0
- package/dist/services/mail/mail-search.d.ts.map +1 -0
- package/dist/services/mail/mail-search.js +59 -0
- package/dist/services/mail/mail-search.js.map +1 -0
- package/dist/services/mail/outlook/auth-failure-classifier.d.ts +38 -0
- package/dist/services/mail/outlook/auth-failure-classifier.d.ts.map +1 -0
- package/dist/services/mail/outlook/auth-failure-classifier.js +91 -0
- package/dist/services/mail/outlook/auth-failure-classifier.js.map +1 -0
- package/dist/services/mail/outlook/client-config.d.ts +34 -0
- package/dist/services/mail/outlook/client-config.d.ts.map +1 -0
- package/dist/services/mail/outlook/client-config.js +58 -0
- package/dist/services/mail/outlook/client-config.js.map +1 -0
- package/dist/services/mail/outlook/delta-cursor.d.ts +66 -0
- package/dist/services/mail/outlook/delta-cursor.d.ts.map +1 -0
- package/dist/services/mail/outlook/delta-cursor.js +85 -0
- package/dist/services/mail/outlook/delta-cursor.js.map +1 -0
- package/dist/services/mail/outlook/graph-client.d.ts +98 -0
- package/dist/services/mail/outlook/graph-client.d.ts.map +1 -0
- package/dist/services/mail/outlook/graph-client.js +198 -0
- package/dist/services/mail/outlook/graph-client.js.map +1 -0
- package/dist/services/mail/outlook/msal-app-factory.d.ts +20 -0
- package/dist/services/mail/outlook/msal-app-factory.d.ts.map +1 -0
- package/dist/services/mail/outlook/msal-app-factory.js +62 -0
- package/dist/services/mail/outlook/msal-app-factory.js.map +1 -0
- package/dist/services/mail/outlook/msal-cache-plugin.d.ts +19 -0
- package/dist/services/mail/outlook/msal-cache-plugin.d.ts.map +1 -0
- package/dist/services/mail/outlook/msal-cache-plugin.js +30 -0
- package/dist/services/mail/outlook/msal-cache-plugin.js.map +1 -0
- package/dist/services/mail/outlook/oauth-device-code.d.ts +26 -0
- package/dist/services/mail/outlook/oauth-device-code.d.ts.map +1 -0
- package/dist/services/mail/outlook/oauth-device-code.js +32 -0
- package/dist/services/mail/outlook/oauth-device-code.js.map +1 -0
- package/dist/services/mail/outlook/oauth-loopback.d.ts +41 -0
- package/dist/services/mail/outlook/oauth-loopback.d.ts.map +1 -0
- package/dist/services/mail/outlook/oauth-loopback.js +223 -0
- package/dist/services/mail/outlook/oauth-loopback.js.map +1 -0
- package/dist/services/mail/outlook/outlook-provider.d.ts +100 -0
- package/dist/services/mail/outlook/outlook-provider.d.ts.map +1 -0
- package/dist/services/mail/outlook/outlook-provider.js +619 -0
- package/dist/services/mail/outlook/outlook-provider.js.map +1 -0
- package/dist/services/mail/outlook/query-translator.d.ts +10 -0
- package/dist/services/mail/outlook/query-translator.d.ts.map +1 -0
- package/dist/services/mail/outlook/query-translator.js +103 -0
- package/dist/services/mail/outlook/query-translator.js.map +1 -0
- package/dist/services/mail/provider.d.ts +267 -0
- package/dist/services/mail/provider.d.ts.map +1 -0
- package/dist/services/mail/provider.js +34 -0
- package/dist/services/mail/provider.js.map +1 -0
- package/dist/services/mail/query-utils.d.ts +13 -0
- package/dist/services/mail/query-utils.d.ts.map +1 -0
- package/dist/services/mail/query-utils.js +18 -0
- package/dist/services/mail/query-utils.js.map +1 -0
- package/dist/services/mail-classifier.d.ts +25 -0
- package/dist/services/mail-classifier.d.ts.map +1 -0
- package/dist/services/mail-classifier.js +52 -0
- package/dist/services/mail-classifier.js.map +1 -0
- package/dist/services/mail-ingestion.d.ts +139 -0
- package/dist/services/mail-ingestion.d.ts.map +1 -0
- package/dist/services/mail-ingestion.js +223 -0
- package/dist/services/mail-ingestion.js.map +1 -0
- package/dist/services/mcp/auto-probe.d.ts +76 -0
- package/dist/services/mcp/auto-probe.d.ts.map +1 -0
- package/dist/services/mcp/auto-probe.js +147 -0
- package/dist/services/mcp/auto-probe.js.map +1 -0
- package/dist/services/mcp/generators/claude.d.ts +18 -0
- package/dist/services/mcp/generators/claude.d.ts.map +1 -0
- package/dist/services/mcp/generators/claude.js +90 -0
- package/dist/services/mcp/generators/claude.js.map +1 -0
- package/dist/services/mcp/generators/codex.d.ts +22 -0
- package/dist/services/mcp/generators/codex.d.ts.map +1 -0
- package/dist/services/mcp/generators/codex.js +102 -0
- package/dist/services/mcp/generators/codex.js.map +1 -0
- package/dist/services/mcp/generators/gemini.d.ts +20 -0
- package/dist/services/mcp/generators/gemini.d.ts.map +1 -0
- package/dist/services/mcp/generators/gemini.js +97 -0
- package/dist/services/mcp/generators/gemini.js.map +1 -0
- package/dist/services/mcp/generators/index.d.ts +20 -0
- package/dist/services/mcp/generators/index.d.ts.map +1 -0
- package/dist/services/mcp/generators/index.js +29 -0
- package/dist/services/mcp/generators/index.js.map +1 -0
- package/dist/services/mcp/generators/types.d.ts +47 -0
- package/dist/services/mcp/generators/types.d.ts.map +1 -0
- package/dist/services/mcp/generators/types.js +40 -0
- package/dist/services/mcp/generators/types.js.map +1 -0
- package/dist/services/mcp/probe.d.ts +31 -0
- package/dist/services/mcp/probe.d.ts.map +1 -0
- package/dist/services/mcp/probe.js +437 -0
- package/dist/services/mcp/probe.js.map +1 -0
- package/dist/services/mcp/registry.d.ts +84 -0
- package/dist/services/mcp/registry.d.ts.map +1 -0
- package/dist/services/mcp/registry.js +387 -0
- package/dist/services/mcp/registry.js.map +1 -0
- package/dist/services/mcp/risk.d.ts +82 -0
- package/dist/services/mcp/risk.d.ts.map +1 -0
- package/dist/services/mcp/risk.js +126 -0
- package/dist/services/mcp/risk.js.map +1 -0
- package/dist/services/mcp/session-materializer.d.ts +123 -0
- package/dist/services/mcp/session-materializer.d.ts.map +1 -0
- package/dist/services/mcp/session-materializer.js +361 -0
- package/dist/services/mcp/session-materializer.js.map +1 -0
- package/dist/services/mcp/tool-audit.d.ts +53 -0
- package/dist/services/mcp/tool-audit.d.ts.map +1 -0
- package/dist/services/mcp/tool-audit.js +74 -0
- package/dist/services/mcp/tool-audit.js.map +1 -0
- package/dist/services/mcp/types.d.ts +88 -0
- package/dist/services/mcp/types.d.ts.map +1 -0
- package/dist/services/mcp/types.js +94 -0
- package/dist/services/mcp/types.js.map +1 -0
- package/dist/services/notion.d.ts +134 -0
- package/dist/services/notion.d.ts.map +1 -0
- package/dist/services/notion.js +350 -0
- package/dist/services/notion.js.map +1 -0
- package/dist/services/obsidian.d.ts +116 -0
- package/dist/services/obsidian.d.ts.map +1 -0
- package/dist/services/obsidian.js +305 -0
- package/dist/services/obsidian.js.map +1 -0
- package/dist/services/service-registry.d.ts +31 -0
- package/dist/services/service-registry.d.ts.map +1 -0
- package/dist/services/service-registry.js +15 -0
- package/dist/services/service-registry.js.map +1 -0
- package/dist/services/voice/transcriber-impl.d.ts +15 -0
- package/dist/services/voice/transcriber-impl.d.ts.map +1 -0
- package/dist/services/voice/transcriber-impl.js +129 -0
- package/dist/services/voice/transcriber-impl.js.map +1 -0
- package/dist/services/voice/transcriber.d.ts +117 -0
- package/dist/services/voice/transcriber.d.ts.map +1 -0
- package/dist/services/voice/transcriber.js +201 -0
- package/dist/services/voice/transcriber.js.map +1 -0
- package/dist/settings/runtime-settings.d.ts +232 -0
- package/dist/settings/runtime-settings.d.ts.map +1 -0
- package/dist/settings/runtime-settings.js +769 -0
- package/dist/settings/runtime-settings.js.map +1 -0
- package/dist/settings/settings-store.d.ts +13 -0
- package/dist/settings/settings-store.d.ts.map +1 -0
- package/dist/settings/settings-store.js +87 -0
- package/dist/settings/settings-store.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,855 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { execFileSync } from "node:child_process";
|
|
3
|
+
import { existsSync, readFileSync, readdirSync, statSync, } from "node:fs";
|
|
4
|
+
import { basename, join } from "node:path";
|
|
5
|
+
import { formatSqliteDatetime, localDateStr } from "@aitne/shared";
|
|
6
|
+
import { writeFileAtomically } from "./atomic-write.js";
|
|
7
|
+
import { gitRepoJournalPath, gitRepoOverviewPath } from "./context-paths.js";
|
|
8
|
+
import { withOverviewWriteLock } from "./overview-write-lock.js";
|
|
9
|
+
import { createLogger } from "../logging.js";
|
|
10
|
+
const logger = createLogger("repository-management-docs");
|
|
11
|
+
const LOG_LIMIT = 200;
|
|
12
|
+
const MAX_TEXT_BYTES = 16_000;
|
|
13
|
+
const MAX_STAT_BYTES = 20_000;
|
|
14
|
+
const ARCHITECTURE_BEGIN_MARKER = "<!-- architecture:start -->";
|
|
15
|
+
const ARCHITECTURE_END_MARKER = "<!-- architecture:end -->";
|
|
16
|
+
const ARCHITECTURE_PLACEHOLDER = "_Architecture analysis pending. Click \"Refresh architecture\" on the Daily git management panel — an agent will read the repository and replace this block with a detailed module / data-flow / integration breakdown._";
|
|
17
|
+
const ARCHITECTURE_SECTION_MAX_BYTES = 64 * 1024;
|
|
18
|
+
/**
|
|
19
|
+
* How long a `git.project.refresh_architecture` row may sit in
|
|
20
|
+
* `pending` or `running` before the in-flight check treats it as stuck
|
|
21
|
+
* and rescues it (`status = 'skipped'`). A pending row older than this
|
|
22
|
+
* means the scheduler never picked it up — backend quota out, an
|
|
23
|
+
* unrecoverable pre-condition failure, or the dispatcher pruning it
|
|
24
|
+
* mid-flight. A running row older than this means the daemon crashed
|
|
25
|
+
* mid-execution without flipping status, and the next startup
|
|
26
|
+
* `recoverOrphanedRunningSchedules` would resolve it — but that leaves
|
|
27
|
+
* dashboard buttons disabled until the daemon restarts.
|
|
28
|
+
*
|
|
29
|
+
* Without this rescue the dashboard's Generate-overview / Refresh-
|
|
30
|
+
* architecture buttons stay disabled forever for the affected repo.
|
|
31
|
+
* Sixty minutes is comfortably longer than any real architecture
|
|
32
|
+
* analysis (typical runs settle in single-digit minutes) but short
|
|
33
|
+
* enough that a user who hits a stuck row early in the day can
|
|
34
|
+
* recover the same session by clicking again. Manual cancel and
|
|
35
|
+
* timeout warnings are tracked separately.
|
|
36
|
+
*/
|
|
37
|
+
export const STUCK_ARCHITECTURE_REFRESH_THRESHOLD_MS = 60 * 60 * 1000;
|
|
38
|
+
/**
|
|
39
|
+
* Initialize (or reuse) the per-repository overview document and ensure the
|
|
40
|
+
* agent will fill in the `## Architecture` section.
|
|
41
|
+
*
|
|
42
|
+
* The init flow is intentionally split into two phases that the daemon
|
|
43
|
+
* owns end-to-end so that one click — manual init from the dashboard, the
|
|
44
|
+
* GitWatcher baseline, or the cron-driven daily scan that finds the file
|
|
45
|
+
* missing — always lands a complete overview.md once the queued agent run
|
|
46
|
+
* settles:
|
|
47
|
+
*
|
|
48
|
+
* 1. **Skeleton** (synchronous, deterministic): write the YAML
|
|
49
|
+
* frontmatter, the git-evidence Summary, the placeholder Architecture
|
|
50
|
+
* block bracketed by markers, the Notable Changes list rendered from
|
|
51
|
+
* `git log`, and the empty Open Threads / Daily Activity Log sections.
|
|
52
|
+
* Mirror the repository's README into `git/<slug>/README.md` so the
|
|
53
|
+
* agent can read it through the daemon-owned context dir without
|
|
54
|
+
* leaving the workspace.
|
|
55
|
+
* 2. **Architecture refresh** (asynchronous, agent-driven): enqueue a
|
|
56
|
+
* `git.project.refresh_architecture` row in `agent_schedule`. The
|
|
57
|
+
* scheduler dispatches it through the standard scheduled.task path,
|
|
58
|
+
* the agent reads the repo, and writes the body back through the
|
|
59
|
+
* `PUT /api/repositories/:id/architecture-section` chokepoint which
|
|
60
|
+
* surgically replaces the marker-bracketed Architecture block.
|
|
61
|
+
*
|
|
62
|
+
* The enqueue is idempotent in two dimensions:
|
|
63
|
+
*
|
|
64
|
+
* - When the overview already exists with `architecture_status: complete`
|
|
65
|
+
* (a previous refresh landed), no new schedule row is inserted.
|
|
66
|
+
* - When a `pending`/`running` `git.project.refresh_architecture` row
|
|
67
|
+
* already exists for this repository, the existing row is returned
|
|
68
|
+
* instead of inserting a duplicate. Two concurrent agent sessions
|
|
69
|
+
* would race on the chokepoint write and burn quota.
|
|
70
|
+
*
|
|
71
|
+
* Re-init on an existing overview whose `architecture_status` is still
|
|
72
|
+
* `pending` re-enqueues a refresh — that recovers cases where a prior
|
|
73
|
+
* agent run failed or never landed (e.g. before the `{context}`-injection
|
|
74
|
+
* fix that gave the task-flow access to `<task_context>`).
|
|
75
|
+
*/
|
|
76
|
+
export function runRepositoryManagementInit(deps) {
|
|
77
|
+
const localPath = requireLocalPath(deps.repo);
|
|
78
|
+
const now = deps.now ?? new Date();
|
|
79
|
+
const date = dateStamp(now, deps.timezone);
|
|
80
|
+
const overviewPath = gitRepoOverviewPath(deps.repo.slug);
|
|
81
|
+
const absolutePath = join(deps.contextDir, overviewPath);
|
|
82
|
+
if (existsSync(absolutePath)) {
|
|
83
|
+
const readmeCopiedTo = copyRepositoryReadme(deps, localPath);
|
|
84
|
+
const architectureScheduleId = ensureArchitectureRefreshForExisting(deps, absolutePath, now);
|
|
85
|
+
return {
|
|
86
|
+
status: "exists",
|
|
87
|
+
overviewPath,
|
|
88
|
+
absolutePath,
|
|
89
|
+
readmeCopiedTo,
|
|
90
|
+
architectureScheduleId,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const evidence = collectGitEvidence(localPath);
|
|
94
|
+
const content = renderOverview({
|
|
95
|
+
repo: deps.repo,
|
|
96
|
+
evidence,
|
|
97
|
+
date,
|
|
98
|
+
});
|
|
99
|
+
writeManagedContextFile(deps, overviewPath, content, "repository_management_init");
|
|
100
|
+
const readmeCopiedTo = copyRepositoryReadme(deps, localPath);
|
|
101
|
+
const architectureScheduleId = ensureArchitectureRefreshEnqueued(deps.db, deps.repo, now);
|
|
102
|
+
return {
|
|
103
|
+
status: "written",
|
|
104
|
+
overviewPath,
|
|
105
|
+
absolutePath,
|
|
106
|
+
readmeCopiedTo,
|
|
107
|
+
architectureScheduleId,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* For the "overview already exists" branch of init: only enqueue a
|
|
112
|
+
* refresh when the existing file's frontmatter explicitly reports
|
|
113
|
+
* `architecture_status: pending`. Any other state — `complete`, an
|
|
114
|
+
* unrecognized value, missing frontmatter, or malformed YAML — produces
|
|
115
|
+
* `null` and falls through to the explicit "Refresh architecture" button.
|
|
116
|
+
*
|
|
117
|
+
* The strict reading is deliberate: `runRepositoryArchitectureSectionReplace`
|
|
118
|
+
* only writes the status field back when the file already starts with
|
|
119
|
+
* `---\n`, so a file that was hand-edited to drop its frontmatter will
|
|
120
|
+
* never have the field re-added by an agent run. Treating "missing
|
|
121
|
+
* frontmatter" as `pending` would queue a refresh, the agent would land
|
|
122
|
+
* the architecture body, the field would still be absent, and the next
|
|
123
|
+
* init click would queue the same work again — an unbounded loop bounded
|
|
124
|
+
* only by the in-flight guard. Returning `null` here makes the behavior
|
|
125
|
+
* stable for hand-managed files: the user must explicitly click
|
|
126
|
+
* "Refresh architecture" to opt into a re-run.
|
|
127
|
+
*/
|
|
128
|
+
function ensureArchitectureRefreshForExisting(deps, absolutePath, now) {
|
|
129
|
+
const status = readArchitectureStatus(absolutePath);
|
|
130
|
+
if (status !== "pending")
|
|
131
|
+
return null;
|
|
132
|
+
return ensureArchitectureRefreshEnqueued(deps.db, deps.repo, now);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Inspect the YAML frontmatter of a managed overview file and classify
|
|
136
|
+
* its `architecture_status` field. Three explicit states keep the init
|
|
137
|
+
* decision logic narrow:
|
|
138
|
+
*
|
|
139
|
+
* - `"pending"`: the agent has not yet landed an analysis. The init
|
|
140
|
+
* flow will (re-)enqueue a refresh.
|
|
141
|
+
* - `"complete"`: an analysis already landed. Init skips so re-running
|
|
142
|
+
* it is reserved for the explicit "Refresh architecture" button.
|
|
143
|
+
* - `"unknown"`: anything else — frontmatter missing, no closing
|
|
144
|
+
* `---`, no `architecture_status` field, or an unrecognized value.
|
|
145
|
+
* Init treats this as "do not auto-enqueue" because
|
|
146
|
+
* `runRepositoryArchitectureSectionReplace` only writes the field
|
|
147
|
+
* back on files that already start with `---\n`, so a queued
|
|
148
|
+
* refresh cannot move a hand-managed file out of "unknown".
|
|
149
|
+
*
|
|
150
|
+
* Caller is responsible for `existsSync(absolutePath)` — this helper
|
|
151
|
+
* follows the read-after-exists pattern used elsewhere in this file
|
|
152
|
+
* (`appendOverviewDailyLog`, `runRepositoryArchitectureSectionReplace`)
|
|
153
|
+
* and lets the I/O error surface up to the route's 500 path.
|
|
154
|
+
*/
|
|
155
|
+
function readArchitectureStatus(absolutePath) {
|
|
156
|
+
const body = readFileSync(absolutePath, "utf-8");
|
|
157
|
+
if (!body.startsWith("---\n"))
|
|
158
|
+
return "unknown";
|
|
159
|
+
const closeIdx = body.indexOf("\n---\n", 4);
|
|
160
|
+
if (closeIdx < 0)
|
|
161
|
+
return "unknown";
|
|
162
|
+
const frontmatter = body.slice(4, closeIdx);
|
|
163
|
+
const match = /^architecture_status:\s*(\S+)\s*$/m.exec(frontmatter);
|
|
164
|
+
if (!match)
|
|
165
|
+
return "unknown";
|
|
166
|
+
if (match[1] === "complete")
|
|
167
|
+
return "complete";
|
|
168
|
+
if (match[1] === "pending")
|
|
169
|
+
return "pending";
|
|
170
|
+
return "unknown";
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Enqueue a `git.project.refresh_architecture` agent run for `repo`,
|
|
174
|
+
* skipping when one is already in flight. Used by both the init flow
|
|
175
|
+
* (auto-enqueue when a fresh skeleton lands or recovery on a pending
|
|
176
|
+
* existing file) and the dashboard's "Refresh architecture" button.
|
|
177
|
+
*
|
|
178
|
+
* The scheduled row carries the full `task_context` the task-flow reads
|
|
179
|
+
* (`repositoryId`, `slug`, `localPath`, `githubRepo`, `classification`,
|
|
180
|
+
* `category`, `correlationId`). The dispatcher's `executeScheduledTask`
|
|
181
|
+
* picks up the `processKey` field to route the prompt through the
|
|
182
|
+
* `git.project.refresh_architecture.md` task-flow; the `<task_context>`
|
|
183
|
+
* block is materialized into the prompt by the context-builder via the
|
|
184
|
+
* `{context}` placeholder at the top of that task-flow file.
|
|
185
|
+
*/
|
|
186
|
+
export function ensureArchitectureRefreshEnqueued(db, repo, now = new Date()) {
|
|
187
|
+
if (!repo.localPath) {
|
|
188
|
+
throw new Error("Architecture refresh requires a local clone");
|
|
189
|
+
}
|
|
190
|
+
const existing = findInFlightArchitectureRefresh(db, repo.id);
|
|
191
|
+
if (existing)
|
|
192
|
+
return existing.scheduleId;
|
|
193
|
+
const inserted = enqueueArchitectureRefresh(db, repo, now);
|
|
194
|
+
return inserted.scheduleId;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Insert a fresh `git.project.refresh_architecture` row unconditionally.
|
|
198
|
+
* Callers that need idempotency should go through
|
|
199
|
+
* `ensureArchitectureRefreshEnqueued` instead — this primitive exists so
|
|
200
|
+
* the dashboard's "Refresh architecture" route can compose its own
|
|
201
|
+
* 409-on-in-flight response rather than collapsing the two cases.
|
|
202
|
+
*/
|
|
203
|
+
export function enqueueArchitectureRefresh(db, repo, now = new Date()) {
|
|
204
|
+
if (!repo.localPath) {
|
|
205
|
+
throw new Error("Architecture refresh requires a local clone");
|
|
206
|
+
}
|
|
207
|
+
const correlationId = randomUUID();
|
|
208
|
+
const taskContext = {
|
|
209
|
+
processKey: "git.project.refresh_architecture",
|
|
210
|
+
repositoryId: repo.id,
|
|
211
|
+
slug: repo.slug,
|
|
212
|
+
localPath: repo.localPath,
|
|
213
|
+
githubRepo: repo.githubOwner && repo.githubRepo
|
|
214
|
+
? `${repo.githubOwner}/${repo.githubRepo}`
|
|
215
|
+
: null,
|
|
216
|
+
classification: repo.classification,
|
|
217
|
+
category: repo.category,
|
|
218
|
+
correlationId,
|
|
219
|
+
};
|
|
220
|
+
const result = db
|
|
221
|
+
.prepare(`INSERT INTO agent_schedule
|
|
222
|
+
(scheduled_for, task_type, task_description, task_context, correlation_id, model, status)
|
|
223
|
+
VALUES (?, 'git.project.refresh_architecture', ?, ?, ?, NULL, 'pending')`)
|
|
224
|
+
.run(formatSqliteDatetime(now), `Refresh architecture analysis for ${repo.slug}.`, JSON.stringify(taskContext), correlationId);
|
|
225
|
+
return { scheduleId: Number(result.lastInsertRowid), correlationId };
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Locate an in-flight `git.project.refresh_architecture` row for this
|
|
229
|
+
* repository so the init / refresh-architecture flows can short-circuit
|
|
230
|
+
* duplicate enqueues. Two concurrent agent sessions for the same repo
|
|
231
|
+
* would race on the chokepoint write and burn quota for no benefit.
|
|
232
|
+
*
|
|
233
|
+
* Before reading, this also rescues any pending/running row older than
|
|
234
|
+
* `STUCK_ARCHITECTURE_REFRESH_THRESHOLD_MS` by flipping its status to
|
|
235
|
+
* `skipped`. Without that sweep, a row stuck in `pending` (scheduler
|
|
236
|
+
* never picked it up — quota out, backend down) or `running` (daemon
|
|
237
|
+
* crashed mid-execution) would keep the dashboard's Generate-overview
|
|
238
|
+
* and Refresh-architecture buttons disabled forever, and the next
|
|
239
|
+
* click — even at full health — would 409 because this function would
|
|
240
|
+
* still report the row in flight. The rescue lets the user click
|
|
241
|
+
* again immediately and inserts a fresh row, while leaving an audit
|
|
242
|
+
* trail (status: skipped) of the stuck attempt. Manual cancel and
|
|
243
|
+
* timeout warnings are tracked separately.
|
|
244
|
+
*
|
|
245
|
+
* Reads `task_context.repositoryId` via JSON path; the table is small and
|
|
246
|
+
* this call is rare so a per-row scan is fine.
|
|
247
|
+
*/
|
|
248
|
+
export function findInFlightArchitectureRefresh(db, repositoryId, now = new Date()) {
|
|
249
|
+
const stuckBefore = formatSqliteDatetime(new Date(now.getTime() - STUCK_ARCHITECTURE_REFRESH_THRESHOLD_MS));
|
|
250
|
+
// `scheduled_for` is the canonical "when should this run" timestamp
|
|
251
|
+
// for an agent_schedule row — it's set explicitly at enqueue and is
|
|
252
|
+
// the value the scheduler watches. `created_at` defaults to
|
|
253
|
+
// `CURRENT_TIMESTAMP` and is *not* test-controlled, so using it here
|
|
254
|
+
// would prevent any deterministic test of the rescue threshold and
|
|
255
|
+
// leak wall-clock time into the production check. For an
|
|
256
|
+
// architecture refresh, `scheduled_for` is set to "now" at enqueue
|
|
257
|
+
// (immediate dispatch), so freshness based on `scheduled_for`
|
|
258
|
+
// matches the freshness based on enqueue time in production.
|
|
259
|
+
db.prepare(`UPDATE agent_schedule
|
|
260
|
+
SET status = 'skipped'
|
|
261
|
+
WHERE task_type = 'git.project.refresh_architecture'
|
|
262
|
+
AND status IN ('pending', 'running')
|
|
263
|
+
AND json_extract(task_context, '$.repositoryId') = ?
|
|
264
|
+
AND scheduled_for < ?`).run(repositoryId, stuckBefore);
|
|
265
|
+
const row = db
|
|
266
|
+
.prepare(`SELECT id, correlation_id, status
|
|
267
|
+
FROM agent_schedule
|
|
268
|
+
WHERE task_type = 'git.project.refresh_architecture'
|
|
269
|
+
AND status IN ('pending', 'running')
|
|
270
|
+
AND json_extract(task_context, '$.repositoryId') = ?
|
|
271
|
+
ORDER BY id DESC
|
|
272
|
+
LIMIT 1`)
|
|
273
|
+
.get(repositoryId);
|
|
274
|
+
if (!row)
|
|
275
|
+
return null;
|
|
276
|
+
return {
|
|
277
|
+
scheduleId: row.id,
|
|
278
|
+
correlationId: row.correlation_id ?? "",
|
|
279
|
+
status: row.status,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
export async function runRepositoryManagementScan(deps) {
|
|
283
|
+
const localPath = requireLocalPath(deps.repo);
|
|
284
|
+
const now = deps.now ?? new Date();
|
|
285
|
+
const lookbackHours = deps.lookbackHours ?? 24;
|
|
286
|
+
const date = dateStamp(now, deps.timezone);
|
|
287
|
+
const since = new Date(now.getTime() - lookbackHours * 60 * 60 * 1000);
|
|
288
|
+
const overviewPath = gitRepoOverviewPath(deps.repo.slug);
|
|
289
|
+
const journalPath = gitRepoJournalPath(deps.repo.slug, date);
|
|
290
|
+
const absoluteJournalPath = join(deps.contextDir, journalPath);
|
|
291
|
+
const commits = gitLog(localPath, [
|
|
292
|
+
`--since=${since.toISOString()}`,
|
|
293
|
+
`--max-count=${LOG_LIMIT}`,
|
|
294
|
+
]);
|
|
295
|
+
const observations = recentRepositoryObservations(deps.db, deps.repo, since);
|
|
296
|
+
const prEvents = observations.filter((row) => row.source.startsWith("github:notification:")).length;
|
|
297
|
+
const workflowEvents = observations.filter((row) => row.source.startsWith("github:workflow:")).length;
|
|
298
|
+
if (commits.length === 0 && observations.length === 0) {
|
|
299
|
+
return {
|
|
300
|
+
status: "skipped_no_activity",
|
|
301
|
+
overviewPath,
|
|
302
|
+
journalPath,
|
|
303
|
+
absoluteJournalPath,
|
|
304
|
+
commitCount: 0,
|
|
305
|
+
prEvents: 0,
|
|
306
|
+
workflowEvents: 0,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
if (!existsSync(join(deps.contextDir, overviewPath))) {
|
|
310
|
+
runRepositoryManagementInit(deps);
|
|
311
|
+
}
|
|
312
|
+
const statSummary = gitStatSummary(localPath, [
|
|
313
|
+
"log",
|
|
314
|
+
"--stat",
|
|
315
|
+
`--since=${since.toISOString()}`,
|
|
316
|
+
`--max-count=${LOG_LIMIT}`,
|
|
317
|
+
]);
|
|
318
|
+
const journal = renderJournal({
|
|
319
|
+
repo: deps.repo,
|
|
320
|
+
date,
|
|
321
|
+
commits,
|
|
322
|
+
observations,
|
|
323
|
+
prEvents,
|
|
324
|
+
workflowEvents,
|
|
325
|
+
statSummary,
|
|
326
|
+
});
|
|
327
|
+
writeManagedContextFile(deps, journalPath, journal, "repository_management_scan");
|
|
328
|
+
await appendOverviewDailyLog(deps, {
|
|
329
|
+
date,
|
|
330
|
+
overviewPath,
|
|
331
|
+
commitCount: commits.length,
|
|
332
|
+
prEvents,
|
|
333
|
+
workflowEvents,
|
|
334
|
+
});
|
|
335
|
+
return {
|
|
336
|
+
status: "written",
|
|
337
|
+
overviewPath,
|
|
338
|
+
journalPath,
|
|
339
|
+
absoluteJournalPath,
|
|
340
|
+
commitCount: commits.length,
|
|
341
|
+
prEvents,
|
|
342
|
+
workflowEvents,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
function requireLocalPath(repo) {
|
|
346
|
+
if (!repo.localPath) {
|
|
347
|
+
throw new Error("repository management requires a local clone");
|
|
348
|
+
}
|
|
349
|
+
assertGitWorkTree(repo.localPath);
|
|
350
|
+
return repo.localPath;
|
|
351
|
+
}
|
|
352
|
+
function assertGitWorkTree(localPath) {
|
|
353
|
+
const value = git(localPath, ["rev-parse", "--is-inside-work-tree"]).trim();
|
|
354
|
+
if (value !== "true") {
|
|
355
|
+
throw new Error(`repository management requires a git worktree: ${localPath}`);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
function collectGitEvidence(localPath) {
|
|
359
|
+
return {
|
|
360
|
+
currentBranch: git(localPath, ["branch", "--show-current"]).trim() || "unknown",
|
|
361
|
+
remoteUrl: nullableGit(localPath, ["remote", "get-url", "origin"]),
|
|
362
|
+
firstCommitDate: nullableGit(localPath, ["log", "--reverse", "--format=%cs", "-1"]),
|
|
363
|
+
lastCommitDate: nullableGit(localPath, ["log", "-1", "--format=%cs"]),
|
|
364
|
+
recentCommits: gitLog(localPath, [`--max-count=${LOG_LIMIT}`]),
|
|
365
|
+
readmeFileName: findReadmeFileName(localPath),
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Locate the repo's README file in the worktree root. Prefers the
|
|
370
|
+
* dominant convention (`.md` extension) over alternative formats so a
|
|
371
|
+
* directory containing both `README.md` and `README.txt` always selects
|
|
372
|
+
* the markdown one regardless of `readdirSync` ordering. Returns the
|
|
373
|
+
* file *name* (relative to `localPath`), not the absolute path.
|
|
374
|
+
*/
|
|
375
|
+
function findReadmeFileName(localPath) {
|
|
376
|
+
let entries;
|
|
377
|
+
try {
|
|
378
|
+
entries = readdirSync(localPath);
|
|
379
|
+
}
|
|
380
|
+
catch {
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
const candidates = entries.filter((name) => /^readme(\.|$)/i.test(name));
|
|
384
|
+
if (candidates.length === 0)
|
|
385
|
+
return null;
|
|
386
|
+
const score = (name) => {
|
|
387
|
+
const lower = name.toLowerCase();
|
|
388
|
+
if (lower === "readme.md")
|
|
389
|
+
return 0;
|
|
390
|
+
if (lower.endsWith(".md"))
|
|
391
|
+
return 1;
|
|
392
|
+
if (lower.endsWith(".markdown"))
|
|
393
|
+
return 2;
|
|
394
|
+
if (lower === "readme")
|
|
395
|
+
return 3;
|
|
396
|
+
if (lower.endsWith(".rst"))
|
|
397
|
+
return 4;
|
|
398
|
+
if (lower.endsWith(".txt"))
|
|
399
|
+
return 5;
|
|
400
|
+
return 6;
|
|
401
|
+
};
|
|
402
|
+
candidates.sort((a, b) => score(a) - score(b) || a.localeCompare(b));
|
|
403
|
+
for (const candidate of candidates) {
|
|
404
|
+
const fullPath = join(localPath, candidate);
|
|
405
|
+
try {
|
|
406
|
+
if (statSync(fullPath).isFile())
|
|
407
|
+
return candidate;
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
continue;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
return null;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Mirror the repository's `README.*` verbatim to
|
|
417
|
+
* `<contextDir>/git/<slug>/README.md`. Mechanical copy — no truncation,
|
|
418
|
+
* no processing — but routed through `writeManagedContextFile` so the
|
|
419
|
+
* write picks up the same chokepoint guarantees as every other managed
|
|
420
|
+
* write in this module:
|
|
421
|
+
*
|
|
422
|
+
* - Atomic write (no partial-state visible to readers).
|
|
423
|
+
* - Snapshot of the previous body into `md_file_snapshots` so an
|
|
424
|
+
* accidental upstream README rewrite is recoverable from history.
|
|
425
|
+
* - `AgentWriteTracker.markWriting` fires *before* the rename
|
|
426
|
+
* completes, so observer-fired indexers tag the resulting fs event
|
|
427
|
+
* `actor='agent'` instead of mis-attributing it to the user.
|
|
428
|
+
*
|
|
429
|
+
* Returns the relative context-file path it wrote, or `null` if no
|
|
430
|
+
* README was found in the repo root or the source could not be read.
|
|
431
|
+
* Errors during the read are logged at warn — the init endpoint should
|
|
432
|
+
* not blow up just because a README is unreadable.
|
|
433
|
+
*/
|
|
434
|
+
function copyRepositoryReadme(deps, localPath) {
|
|
435
|
+
const fileName = findReadmeFileName(localPath);
|
|
436
|
+
if (!fileName)
|
|
437
|
+
return null;
|
|
438
|
+
const src = join(localPath, fileName);
|
|
439
|
+
const relPath = `git/${deps.repo.slug}/README.md`;
|
|
440
|
+
let body;
|
|
441
|
+
try {
|
|
442
|
+
body = readFileSync(src, "utf-8");
|
|
443
|
+
}
|
|
444
|
+
catch (err) {
|
|
445
|
+
logger.warn({ err, repositoryId: deps.repo.id, src }, "Failed to read repository README — skipping mirror copy");
|
|
446
|
+
return null;
|
|
447
|
+
}
|
|
448
|
+
writeManagedContextFile(deps, relPath, body, "repository_management_readme_copy");
|
|
449
|
+
return relPath;
|
|
450
|
+
}
|
|
451
|
+
function gitLog(localPath, extraArgs) {
|
|
452
|
+
const recordSep = "\x1e";
|
|
453
|
+
const fieldSep = "\x1f";
|
|
454
|
+
let stdout;
|
|
455
|
+
try {
|
|
456
|
+
stdout = git(localPath, [
|
|
457
|
+
"log",
|
|
458
|
+
`--format=%H${fieldSep}%h${fieldSep}%cs${fieldSep}%an${fieldSep}%s${recordSep}`,
|
|
459
|
+
...extraArgs,
|
|
460
|
+
], MAX_TEXT_BYTES);
|
|
461
|
+
}
|
|
462
|
+
catch (err) {
|
|
463
|
+
if (isEmptyGitHistoryError(err))
|
|
464
|
+
return [];
|
|
465
|
+
throw err;
|
|
466
|
+
}
|
|
467
|
+
return stdout
|
|
468
|
+
.split(recordSep)
|
|
469
|
+
.map((record) => record.trim())
|
|
470
|
+
.filter(Boolean)
|
|
471
|
+
.map((record) => {
|
|
472
|
+
const [hash = "", short = "", date = "", author = "", ...subjectParts] = record.split(fieldSep);
|
|
473
|
+
return {
|
|
474
|
+
hash,
|
|
475
|
+
short,
|
|
476
|
+
date,
|
|
477
|
+
author,
|
|
478
|
+
subject: subjectParts.join(fieldSep).trim(),
|
|
479
|
+
};
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
function isEmptyGitHistoryError(err) {
|
|
483
|
+
const stderr = String(err?.stderr ?? "");
|
|
484
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
485
|
+
const text = `${stderr}\n${message}`;
|
|
486
|
+
return text.includes("does not have any commits yet") ||
|
|
487
|
+
text.includes("bad default revision 'HEAD'");
|
|
488
|
+
}
|
|
489
|
+
function gitStatSummary(localPath, args) {
|
|
490
|
+
try {
|
|
491
|
+
return git(localPath, args, MAX_STAT_BYTES);
|
|
492
|
+
}
|
|
493
|
+
catch (err) {
|
|
494
|
+
if (isEmptyGitHistoryError(err))
|
|
495
|
+
return "";
|
|
496
|
+
throw err;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
function git(localPath, args, maxBuffer = MAX_TEXT_BYTES) {
|
|
500
|
+
return execFileSync("git", args, {
|
|
501
|
+
cwd: localPath,
|
|
502
|
+
encoding: "utf8",
|
|
503
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
504
|
+
timeout: 10_000,
|
|
505
|
+
maxBuffer,
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
function nullableGit(localPath, args) {
|
|
509
|
+
try {
|
|
510
|
+
const value = git(localPath, args).trim();
|
|
511
|
+
return value.length > 0 ? value : null;
|
|
512
|
+
}
|
|
513
|
+
catch {
|
|
514
|
+
return null;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
function recentRepositoryObservations(db, repo, since) {
|
|
518
|
+
const sources = [`git:${repo.localPath}`];
|
|
519
|
+
if (repo.githubOwner && repo.githubRepo) {
|
|
520
|
+
const slug = `${repo.githubOwner}/${repo.githubRepo}`;
|
|
521
|
+
sources.push(`github:notification:${slug}`, `github:workflow:${slug}`);
|
|
522
|
+
}
|
|
523
|
+
const placeholders = sources.map(() => "?").join(", ");
|
|
524
|
+
const rows = db
|
|
525
|
+
.prepare(`SELECT source, ref, change_type, observed_at, payload, summary_text
|
|
526
|
+
FROM observations
|
|
527
|
+
WHERE observed_at >= ?
|
|
528
|
+
AND source IN (${placeholders})
|
|
529
|
+
ORDER BY observed_at ASC`)
|
|
530
|
+
.all(formatSqliteDatetime(since), ...sources);
|
|
531
|
+
return rows.map((row) => ({
|
|
532
|
+
source: row.source,
|
|
533
|
+
ref: row.ref,
|
|
534
|
+
changeType: row.change_type,
|
|
535
|
+
observedAt: row.observed_at,
|
|
536
|
+
summary: row.summary_text ?? payloadSummary(row.payload),
|
|
537
|
+
}));
|
|
538
|
+
}
|
|
539
|
+
function payloadSummary(payload) {
|
|
540
|
+
if (!payload)
|
|
541
|
+
return null;
|
|
542
|
+
try {
|
|
543
|
+
const parsed = JSON.parse(payload);
|
|
544
|
+
const title = parsed.title ?? parsed.subject ?? parsed.name ?? parsed.workflow;
|
|
545
|
+
return typeof title === "string" && title.trim().length > 0
|
|
546
|
+
? title.trim()
|
|
547
|
+
: null;
|
|
548
|
+
}
|
|
549
|
+
catch {
|
|
550
|
+
return null;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
function renderOverview(params) {
|
|
554
|
+
const { repo, evidence, date } = params;
|
|
555
|
+
const displayName = repo.displayName ?? repo.githubRepo ?? basename(repo.localPath ?? repo.slug);
|
|
556
|
+
const commits = evidence.recentCommits.slice(0, 30);
|
|
557
|
+
const lifecycleSection = repo.classification === "project"
|
|
558
|
+
? "\n## Lifecycle Phases\n\n- Initial documentation created from Git history.\n"
|
|
559
|
+
: "";
|
|
560
|
+
const readmeNote = evidence.readmeFileName
|
|
561
|
+
? `- Source README: see [README.md](./README.md) (mirrored on init).`
|
|
562
|
+
: "- README not found in the repository root.";
|
|
563
|
+
return [
|
|
564
|
+
"---",
|
|
565
|
+
"type: git-project",
|
|
566
|
+
"owner: agent",
|
|
567
|
+
`repository_id: ${yamlValue(repo.id)}`,
|
|
568
|
+
`slug: ${yamlValue(repo.slug)}`,
|
|
569
|
+
`github_repo: ${yamlValue(repo.githubOwner && repo.githubRepo ? `${repo.githubOwner}/${repo.githubRepo}` : null)}`,
|
|
570
|
+
`local_path: ${yamlValue(repo.localPath)}`,
|
|
571
|
+
`classification: ${yamlValue(repo.classification)}`,
|
|
572
|
+
`category: ${yamlValue(repo.category)}`,
|
|
573
|
+
`created: ${date}`,
|
|
574
|
+
`updated: ${date}`,
|
|
575
|
+
"architecture_status: pending",
|
|
576
|
+
"architecture_refreshed_at: null",
|
|
577
|
+
"---",
|
|
578
|
+
`# ${displayName}`,
|
|
579
|
+
"",
|
|
580
|
+
"## Summary",
|
|
581
|
+
"",
|
|
582
|
+
`- Repository: ${repo.githubOwner && repo.githubRepo ? `${repo.githubOwner}/${repo.githubRepo}` : repo.localPath}`,
|
|
583
|
+
`- Default/current branch: ${evidence.currentBranch}`,
|
|
584
|
+
`- Remote: ${evidence.remoteUrl ?? "none recorded"}`,
|
|
585
|
+
`- First commit: ${evidence.firstCommitDate ?? "unknown"}`,
|
|
586
|
+
`- Last commit: ${evidence.lastCommitDate ?? "unknown"}`,
|
|
587
|
+
readmeNote,
|
|
588
|
+
"",
|
|
589
|
+
"## Architecture",
|
|
590
|
+
"",
|
|
591
|
+
ARCHITECTURE_BEGIN_MARKER,
|
|
592
|
+
"",
|
|
593
|
+
ARCHITECTURE_PLACEHOLDER,
|
|
594
|
+
"",
|
|
595
|
+
ARCHITECTURE_END_MARKER,
|
|
596
|
+
"",
|
|
597
|
+
"## Notable Changes",
|
|
598
|
+
"",
|
|
599
|
+
commits.length > 0
|
|
600
|
+
? commits.map((commit) => `- ${commit.date} ${commit.short}: ${commit.subject}`).join("\n")
|
|
601
|
+
: "- No commits found in the sampled history.",
|
|
602
|
+
lifecycleSection.trimEnd(),
|
|
603
|
+
"## Open Threads",
|
|
604
|
+
"",
|
|
605
|
+
"- Add follow-ups that should remain visible across sessions.",
|
|
606
|
+
"",
|
|
607
|
+
"## Daily Activity Log",
|
|
608
|
+
"",
|
|
609
|
+
"- Initial documentation created from Git history.",
|
|
610
|
+
"",
|
|
611
|
+
].filter((part) => part !== "").join("\n") + "\n";
|
|
612
|
+
}
|
|
613
|
+
function renderJournal(params) {
|
|
614
|
+
const { repo, date, commits, observations, prEvents, workflowEvents, statSummary } = params;
|
|
615
|
+
return [
|
|
616
|
+
"---",
|
|
617
|
+
"type: git-journal",
|
|
618
|
+
"owner: agent",
|
|
619
|
+
`repository_id: ${yamlValue(repo.id)}`,
|
|
620
|
+
`date: ${date}`,
|
|
621
|
+
`updated: ${date}`,
|
|
622
|
+
`commit_count: ${commits.length}`,
|
|
623
|
+
`pr_events: ${prEvents}`,
|
|
624
|
+
`workflow_events: ${workflowEvents}`,
|
|
625
|
+
"---",
|
|
626
|
+
`# ${date} - ${repo.slug}`,
|
|
627
|
+
"",
|
|
628
|
+
"## Commits",
|
|
629
|
+
"",
|
|
630
|
+
commits.length > 0
|
|
631
|
+
? commits.map((commit) => `- ${commit.date} ${commit.short}: ${commit.subject} (${commit.author})`).join("\n")
|
|
632
|
+
: "- No commits in the lookback window.",
|
|
633
|
+
"",
|
|
634
|
+
"## PR / Workflow Events",
|
|
635
|
+
"",
|
|
636
|
+
observations.length > 0
|
|
637
|
+
? observations.map((row) => `- ${row.observedAt} ${row.source} ${row.changeType} ${row.ref}${row.summary ? ` - ${row.summary}` : ""}`).join("\n")
|
|
638
|
+
: "- No PR or workflow observations in the lookback window.",
|
|
639
|
+
"",
|
|
640
|
+
"## Files Changed",
|
|
641
|
+
"",
|
|
642
|
+
statSummary.trim().length > 0 ? fenced(statSummary.trim().slice(0, MAX_STAT_BYTES)) : "- No file-change stat available.",
|
|
643
|
+
"",
|
|
644
|
+
].join("\n") + "\n";
|
|
645
|
+
}
|
|
646
|
+
async function appendOverviewDailyLog(deps, params) {
|
|
647
|
+
const absolutePath = join(deps.contextDir, params.overviewPath);
|
|
648
|
+
// Serialize against `runRepositoryArchitectureSectionReplace` on the
|
|
649
|
+
// same overview file. Both follow read-modify-write, both use atomic
|
|
650
|
+
// rename on commit; without a shared lock the second writer can clobber
|
|
651
|
+
// the first by replaying a stale read. See `overview-write-lock.ts`.
|
|
652
|
+
await withOverviewWriteLock(absolutePath, () => {
|
|
653
|
+
if (!existsSync(absolutePath))
|
|
654
|
+
return;
|
|
655
|
+
const current = readFileSync(absolutePath, "utf-8");
|
|
656
|
+
const summary = `- ${params.date}: ${params.commitCount} commits; ${params.prEvents} PR/notification events; ${params.workflowEvents} workflow events.`;
|
|
657
|
+
const withoutOldSameDay = current
|
|
658
|
+
.split("\n")
|
|
659
|
+
.filter((line) => keepDailyLogLine(line, params.date))
|
|
660
|
+
.join("\n");
|
|
661
|
+
const withUpdated = replaceUpdatedDate(withoutOldSameDay, params.date);
|
|
662
|
+
const marker = "## Daily Activity Log";
|
|
663
|
+
const next = withUpdated.includes(marker)
|
|
664
|
+
? withUpdated.replace(marker, `${marker}\n\n${summary}`)
|
|
665
|
+
: `${withUpdated.trimEnd()}\n\n${marker}\n\n${summary}\n`;
|
|
666
|
+
writeManagedContextFile(deps, params.overviewPath, next, "repository_management_scan_overview");
|
|
667
|
+
});
|
|
668
|
+
}
|
|
669
|
+
function keepDailyLogLine(line, today) {
|
|
670
|
+
const match = /^- (\d{4}-\d{2}-\d{2}): /.exec(line);
|
|
671
|
+
if (!match)
|
|
672
|
+
return true;
|
|
673
|
+
if (match[1] === today)
|
|
674
|
+
return false;
|
|
675
|
+
const lineMs = Date.parse(`${match[1]}T00:00:00Z`);
|
|
676
|
+
const todayMs = Date.parse(`${today}T00:00:00Z`);
|
|
677
|
+
if (!Number.isFinite(lineMs) || !Number.isFinite(todayMs))
|
|
678
|
+
return true;
|
|
679
|
+
return lineMs >= todayMs - 30 * 24 * 60 * 60 * 1000;
|
|
680
|
+
}
|
|
681
|
+
function writeManagedContextFile(deps, relativePath, content, trigger) {
|
|
682
|
+
const absolutePath = join(deps.contextDir, relativePath);
|
|
683
|
+
const previous = existsSync(absolutePath) ? readFileSync(absolutePath, "utf-8") : null;
|
|
684
|
+
if (previous !== null) {
|
|
685
|
+
deps.db
|
|
686
|
+
.prepare("INSERT INTO md_file_snapshots (file_path, content, trigger, session_id) VALUES (?, ?, ?, ?)")
|
|
687
|
+
.run(relativePath, previous, trigger, null);
|
|
688
|
+
}
|
|
689
|
+
writeFileAtomically(absolutePath, content);
|
|
690
|
+
deps.writeTracker?.markWriting(absolutePath, content);
|
|
691
|
+
deps.onIndexableContextChange?.(relativePath);
|
|
692
|
+
}
|
|
693
|
+
function replaceUpdatedDate(content, date) {
|
|
694
|
+
if (/^updated:\s*.*$/m.test(content)) {
|
|
695
|
+
return content.replace(/^updated:\s*.*$/m, `updated: ${date}`);
|
|
696
|
+
}
|
|
697
|
+
if (content.startsWith("---\n")) {
|
|
698
|
+
return content.replace(/^---\n/, `---\nupdated: ${date}\n`);
|
|
699
|
+
}
|
|
700
|
+
return content;
|
|
701
|
+
}
|
|
702
|
+
function yamlValue(value) {
|
|
703
|
+
return value === null ? "null" : JSON.stringify(value);
|
|
704
|
+
}
|
|
705
|
+
function fenced(value) {
|
|
706
|
+
return "```text\n" + value + "\n```";
|
|
707
|
+
}
|
|
708
|
+
function dateStamp(date, timezone) {
|
|
709
|
+
return localDateStr(date, timezone);
|
|
710
|
+
}
|
|
711
|
+
/**
|
|
712
|
+
* Replace the marker-bracketed `## Architecture` block in
|
|
713
|
+
* `git/<slug>/overview.md` with `markdown`. Other sections (Summary,
|
|
714
|
+
* Notable Changes, Daily Activity Log) and the YAML frontmatter are
|
|
715
|
+
* preserved; the agent only ever submits the body of the Architecture
|
|
716
|
+
* block via `PUT /api/repositories/:id/architecture-section`, the
|
|
717
|
+
* daemon owns the surgical merge.
|
|
718
|
+
*
|
|
719
|
+
* Updates `architecture_status: complete`, `architecture_refreshed_at`,
|
|
720
|
+
* and `updated:` frontmatter fields. If the overview file is missing
|
|
721
|
+
* (e.g. management init has not run yet), returns `no_overview`
|
|
722
|
+
* without writing.
|
|
723
|
+
*/
|
|
724
|
+
export async function runRepositoryArchitectureSectionReplace(deps, markdown) {
|
|
725
|
+
const overviewPath = gitRepoOverviewPath(deps.repo.slug);
|
|
726
|
+
const absolutePath = join(deps.contextDir, overviewPath);
|
|
727
|
+
const now = deps.now ?? new Date();
|
|
728
|
+
const refreshedAt = now.toISOString();
|
|
729
|
+
// Serialize against `appendOverviewDailyLog` (the scan flow's daily
|
|
730
|
+
// log append) on the same overview file. See `overview-write-lock.ts`
|
|
731
|
+
// for the race this prevents.
|
|
732
|
+
return withOverviewWriteLock(absolutePath, () => {
|
|
733
|
+
if (!existsSync(absolutePath)) {
|
|
734
|
+
return { status: "no_overview", overviewPath, absolutePath, refreshedAt };
|
|
735
|
+
}
|
|
736
|
+
const current = readFileSync(absolutePath, "utf-8");
|
|
737
|
+
const merged = mergeArchitectureSection(current, markdown);
|
|
738
|
+
const withFrontmatter = updateArchitectureFrontmatter(merged, {
|
|
739
|
+
refreshedAt,
|
|
740
|
+
date: dateStamp(now, deps.timezone),
|
|
741
|
+
});
|
|
742
|
+
writeManagedContextFile(deps, overviewPath, withFrontmatter, "repository_management_refresh_architecture");
|
|
743
|
+
return { status: "written", overviewPath, absolutePath, refreshedAt };
|
|
744
|
+
});
|
|
745
|
+
}
|
|
746
|
+
function mergeArchitectureSection(current, markdown) {
|
|
747
|
+
const beginIdx = current.indexOf(ARCHITECTURE_BEGIN_MARKER);
|
|
748
|
+
const endIdx = current.indexOf(ARCHITECTURE_END_MARKER);
|
|
749
|
+
const body = markdown.trim();
|
|
750
|
+
const block = `${ARCHITECTURE_BEGIN_MARKER}\n\n${body}\n\n${ARCHITECTURE_END_MARKER}`;
|
|
751
|
+
if (beginIdx >= 0 && endIdx > beginIdx) {
|
|
752
|
+
return (current.slice(0, beginIdx)
|
|
753
|
+
+ block
|
|
754
|
+
+ current.slice(endIdx + ARCHITECTURE_END_MARKER.length));
|
|
755
|
+
}
|
|
756
|
+
// Fallback: inject the block right after `## Architecture` if the
|
|
757
|
+
// markers were stripped, or append a new Architecture section before
|
|
758
|
+
// the next canonical section. Either path keeps the file usable
|
|
759
|
+
// without manual repair.
|
|
760
|
+
const headingIdx = current.indexOf("\n## Architecture\n");
|
|
761
|
+
if (headingIdx >= 0) {
|
|
762
|
+
const afterHeading = headingIdx + "\n## Architecture\n".length;
|
|
763
|
+
const nextSectionRel = findNextSectionOffset(current.slice(afterHeading));
|
|
764
|
+
const sliceEnd = nextSectionRel >= 0 ? afterHeading + nextSectionRel : current.length;
|
|
765
|
+
return (current.slice(0, afterHeading)
|
|
766
|
+
+ `\n${block}\n\n`
|
|
767
|
+
+ current.slice(sliceEnd));
|
|
768
|
+
}
|
|
769
|
+
// No Architecture section at all — append before Notable Changes / EOF.
|
|
770
|
+
const insertAt = current.indexOf("\n## Notable Changes\n");
|
|
771
|
+
const newSection = `\n## Architecture\n\n${block}\n`;
|
|
772
|
+
if (insertAt >= 0) {
|
|
773
|
+
return current.slice(0, insertAt) + newSection + current.slice(insertAt);
|
|
774
|
+
}
|
|
775
|
+
return current.trimEnd() + "\n" + newSection;
|
|
776
|
+
}
|
|
777
|
+
function findNextSectionOffset(s) {
|
|
778
|
+
// Match the start of the next `## ` heading, anchored on a newline.
|
|
779
|
+
const match = /\n## /.exec(s);
|
|
780
|
+
return match ? match.index : -1;
|
|
781
|
+
}
|
|
782
|
+
function updateArchitectureFrontmatter(content, params) {
|
|
783
|
+
const setField = (text, key, value) => {
|
|
784
|
+
const re = new RegExp(`^${key}:\\s*.*$`, "m");
|
|
785
|
+
if (re.test(text)) {
|
|
786
|
+
return text.replace(re, `${key}: ${value}`);
|
|
787
|
+
}
|
|
788
|
+
if (text.startsWith("---\n")) {
|
|
789
|
+
const closeIdx = text.indexOf("\n---\n", 4);
|
|
790
|
+
if (closeIdx > 0) {
|
|
791
|
+
return (text.slice(0, closeIdx)
|
|
792
|
+
+ `\n${key}: ${value}`
|
|
793
|
+
+ text.slice(closeIdx));
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
return text;
|
|
797
|
+
};
|
|
798
|
+
let next = setField(content, "architecture_status", "complete");
|
|
799
|
+
next = setField(next, "architecture_refreshed_at", JSON.stringify(params.refreshedAt));
|
|
800
|
+
next = setField(next, "updated", params.date);
|
|
801
|
+
return next;
|
|
802
|
+
}
|
|
803
|
+
/**
|
|
804
|
+
* Re-copy the repository's README.* into `git/<slug>/README.md`,
|
|
805
|
+
* snapshotting the previous mirror to `md_file_snapshots`. Used by both
|
|
806
|
+
* the management-init flow (initial mirror) and the architecture-refresh
|
|
807
|
+
* flow (keep mirror in sync with the source the agent just analyzed).
|
|
808
|
+
*
|
|
809
|
+
* Returns the relative context-file path on success or `null` if no
|
|
810
|
+
* README was found.
|
|
811
|
+
*/
|
|
812
|
+
export function copyRepositoryReadmeForRefresh(deps) {
|
|
813
|
+
const localPath = requireLocalPath(deps.repo);
|
|
814
|
+
return copyRepositoryReadme(deps, localPath);
|
|
815
|
+
}
|
|
816
|
+
/** Validate that a body submitted to PUT /architecture-section is well-formed. */
|
|
817
|
+
export function validateArchitectureMarkdown(markdown) {
|
|
818
|
+
if (typeof markdown !== "string") {
|
|
819
|
+
return {
|
|
820
|
+
ok: false,
|
|
821
|
+
error: "validation_error",
|
|
822
|
+
message: "markdown (string) required",
|
|
823
|
+
};
|
|
824
|
+
}
|
|
825
|
+
const trimmed = markdown.trim();
|
|
826
|
+
if (trimmed.length === 0) {
|
|
827
|
+
return {
|
|
828
|
+
ok: false,
|
|
829
|
+
error: "validation_error",
|
|
830
|
+
message: "markdown must be non-empty",
|
|
831
|
+
};
|
|
832
|
+
}
|
|
833
|
+
if (Buffer.byteLength(trimmed, "utf-8") > ARCHITECTURE_SECTION_MAX_BYTES) {
|
|
834
|
+
return {
|
|
835
|
+
ok: false,
|
|
836
|
+
error: "payload_too_large",
|
|
837
|
+
message: `markdown exceeds ${ARCHITECTURE_SECTION_MAX_BYTES} bytes`,
|
|
838
|
+
};
|
|
839
|
+
}
|
|
840
|
+
if (trimmed.includes(ARCHITECTURE_BEGIN_MARKER)
|
|
841
|
+
|| trimmed.includes(ARCHITECTURE_END_MARKER)) {
|
|
842
|
+
return {
|
|
843
|
+
ok: false,
|
|
844
|
+
error: "validation_error",
|
|
845
|
+
message: "markdown must not include architecture begin/end markers — submit body content only",
|
|
846
|
+
};
|
|
847
|
+
}
|
|
848
|
+
return { ok: true, body: trimmed };
|
|
849
|
+
}
|
|
850
|
+
export const ARCHITECTURE_MARKERS = {
|
|
851
|
+
begin: ARCHITECTURE_BEGIN_MARKER,
|
|
852
|
+
end: ARCHITECTURE_END_MARKER,
|
|
853
|
+
placeholder: ARCHITECTURE_PLACEHOLDER,
|
|
854
|
+
};
|
|
855
|
+
//# sourceMappingURL=repository-management-docs.js.map
|