reflectt-node 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 +178 -0
- package/README.md +188 -0
- package/dist/activationEvents.d.ts +110 -0
- package/dist/activationEvents.d.ts.map +1 -0
- package/dist/activationEvents.js +378 -0
- package/dist/activationEvents.js.map +1 -0
- package/dist/activity-signal.d.ts +30 -0
- package/dist/activity-signal.d.ts.map +1 -0
- package/dist/activity-signal.js +93 -0
- package/dist/activity-signal.js.map +1 -0
- package/dist/alert-integrity.d.ts +100 -0
- package/dist/alert-integrity.d.ts.map +1 -0
- package/dist/alert-integrity.js +333 -0
- package/dist/alert-integrity.js.map +1 -0
- package/dist/alert-preflight.d.ts +40 -0
- package/dist/alert-preflight.d.ts.map +1 -0
- package/dist/alert-preflight.js +235 -0
- package/dist/alert-preflight.js.map +1 -0
- package/dist/analytics.d.ts +131 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +371 -0
- package/dist/analytics.js.map +1 -0
- package/dist/artifact-mirror.d.ts +26 -0
- package/dist/artifact-mirror.d.ts.map +1 -0
- package/dist/artifact-mirror.js +170 -0
- package/dist/artifact-mirror.js.map +1 -0
- package/dist/artifact-resolver.d.ts +48 -0
- package/dist/artifact-resolver.d.ts.map +1 -0
- package/dist/artifact-resolver.js +164 -0
- package/dist/artifact-resolver.js.map +1 -0
- package/dist/assignment.d.ts +116 -0
- package/dist/assignment.d.ts.map +1 -0
- package/dist/assignment.js +475 -0
- package/dist/assignment.js.map +1 -0
- package/dist/auditLedger.d.ts +50 -0
- package/dist/auditLedger.d.ts.map +1 -0
- package/dist/auditLedger.js +136 -0
- package/dist/auditLedger.js.map +1 -0
- package/dist/boardHealthWorker.d.ts +134 -0
- package/dist/boardHealthWorker.d.ts.map +1 -0
- package/dist/boardHealthWorker.js +882 -0
- package/dist/boardHealthWorker.js.map +1 -0
- package/dist/bootstrap-team.d.ts +42 -0
- package/dist/bootstrap-team.d.ts.map +1 -0
- package/dist/bootstrap-team.js +111 -0
- package/dist/bootstrap-team.js.map +1 -0
- package/dist/buildInfo.d.ts +17 -0
- package/dist/buildInfo.d.ts.map +1 -0
- package/dist/buildInfo.js +56 -0
- package/dist/buildInfo.js.map +1 -0
- package/dist/calendar-events.d.ts +133 -0
- package/dist/calendar-events.d.ts.map +1 -0
- package/dist/calendar-events.js +615 -0
- package/dist/calendar-events.js.map +1 -0
- package/dist/calendar-ical.d.ts +41 -0
- package/dist/calendar-ical.d.ts.map +1 -0
- package/dist/calendar-ical.js +413 -0
- package/dist/calendar-ical.js.map +1 -0
- package/dist/calendar-reminder-engine.d.ts +10 -0
- package/dist/calendar-reminder-engine.d.ts.map +1 -0
- package/dist/calendar-reminder-engine.js +143 -0
- package/dist/calendar-reminder-engine.js.map +1 -0
- package/dist/calendar.d.ts +75 -0
- package/dist/calendar.d.ts.map +1 -0
- package/dist/calendar.js +391 -0
- package/dist/calendar.js.map +1 -0
- package/dist/canvas-multiplexer.d.ts +44 -0
- package/dist/canvas-multiplexer.d.ts.map +1 -0
- package/dist/canvas-multiplexer.js +150 -0
- package/dist/canvas-multiplexer.js.map +1 -0
- package/dist/canvas-slots.d.ts +83 -0
- package/dist/canvas-slots.d.ts.map +1 -0
- package/dist/canvas-slots.js +144 -0
- package/dist/canvas-slots.js.map +1 -0
- package/dist/canvas-types.d.ts +56 -0
- package/dist/canvas-types.d.ts.map +1 -0
- package/dist/canvas-types.js +54 -0
- package/dist/canvas-types.js.map +1 -0
- package/dist/cf-keepalive.d.ts +40 -0
- package/dist/cf-keepalive.d.ts.map +1 -0
- package/dist/cf-keepalive.js +153 -0
- package/dist/cf-keepalive.js.map +1 -0
- package/dist/changeFeed.d.ts +38 -0
- package/dist/changeFeed.d.ts.map +1 -0
- package/dist/changeFeed.js +324 -0
- package/dist/changeFeed.js.map +1 -0
- package/dist/channels.d.ts +28 -0
- package/dist/channels.d.ts.map +1 -0
- package/dist/channels.js +23 -0
- package/dist/channels.js.map +1 -0
- package/dist/chat-approval-detector.d.ts +47 -0
- package/dist/chat-approval-detector.d.ts.map +1 -0
- package/dist/chat-approval-detector.js +224 -0
- package/dist/chat-approval-detector.js.map +1 -0
- package/dist/chat.d.ts +119 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +666 -0
- package/dist/chat.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1142 -0
- package/dist/cli.js.map +1 -0
- package/dist/cloud.d.ts +45 -0
- package/dist/cloud.d.ts.map +1 -0
- package/dist/cloud.js +962 -0
- package/dist/cloud.js.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +33 -0
- package/dist/config.js.map +1 -0
- package/dist/connectivity.d.ts +59 -0
- package/dist/connectivity.d.ts.map +1 -0
- package/dist/connectivity.js +173 -0
- package/dist/connectivity.js.map +1 -0
- package/dist/contacts.d.ts +59 -0
- package/dist/contacts.d.ts.map +1 -0
- package/dist/contacts.js +183 -0
- package/dist/contacts.js.map +1 -0
- package/dist/content.d.ts +130 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +186 -0
- package/dist/content.js.map +1 -0
- package/dist/context-budget.d.ts +87 -0
- package/dist/context-budget.d.ts.map +1 -0
- package/dist/context-budget.js +459 -0
- package/dist/context-budget.js.map +1 -0
- package/dist/continuity-loop.d.ts +55 -0
- package/dist/continuity-loop.d.ts.map +1 -0
- package/dist/continuity-loop.js +267 -0
- package/dist/continuity-loop.js.map +1 -0
- package/dist/dashboard.d.ts +6 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +2348 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/db.d.ts +44 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +648 -0
- package/dist/db.js.map +1 -0
- package/dist/doctor.d.ts +30 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +159 -0
- package/dist/doctor.js.map +1 -0
- package/dist/duplicateClosureGuard.d.ts +31 -0
- package/dist/duplicateClosureGuard.d.ts.map +1 -0
- package/dist/duplicateClosureGuard.js +83 -0
- package/dist/duplicateClosureGuard.js.map +1 -0
- package/dist/embeddings.d.ts +13 -0
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/embeddings.js +78 -0
- package/dist/embeddings.js.map +1 -0
- package/dist/escalation.d.ts +80 -0
- package/dist/escalation.d.ts.map +1 -0
- package/dist/escalation.js +213 -0
- package/dist/escalation.js.map +1 -0
- package/dist/events.d.ts +130 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +382 -0
- package/dist/events.js.map +1 -0
- package/dist/executionSweeper.d.ts +97 -0
- package/dist/executionSweeper.d.ts.map +1 -0
- package/dist/executionSweeper.js +875 -0
- package/dist/executionSweeper.js.map +1 -0
- package/dist/experiments.d.ts +47 -0
- package/dist/experiments.d.ts.map +1 -0
- package/dist/experiments.js +133 -0
- package/dist/experiments.js.map +1 -0
- package/dist/feedback.d.ts +179 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/feedback.js +397 -0
- package/dist/feedback.js.map +1 -0
- package/dist/files.d.ts +52 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +172 -0
- package/dist/files.js.map +1 -0
- package/dist/format-duration.d.ts +19 -0
- package/dist/format-duration.d.ts.map +1 -0
- package/dist/format-duration.js +33 -0
- package/dist/format-duration.js.map +1 -0
- package/dist/github-actor-auth.d.ts +20 -0
- package/dist/github-actor-auth.d.ts.map +1 -0
- package/dist/github-actor-auth.js +54 -0
- package/dist/github-actor-auth.js.map +1 -0
- package/dist/github-ci.d.ts +16 -0
- package/dist/github-ci.d.ts.map +1 -0
- package/dist/github-ci.js +37 -0
- package/dist/github-ci.js.map +1 -0
- package/dist/github-identity.d.ts +30 -0
- package/dist/github-identity.d.ts.map +1 -0
- package/dist/github-identity.js +96 -0
- package/dist/github-identity.js.map +1 -0
- package/dist/github-reviews.d.ts +24 -0
- package/dist/github-reviews.d.ts.map +1 -0
- package/dist/github-reviews.js +56 -0
- package/dist/github-reviews.js.map +1 -0
- package/dist/health.d.ts +391 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +1841 -0
- package/dist/health.js.map +1 -0
- package/dist/host-keepalive.d.ts +22 -0
- package/dist/host-keepalive.d.ts.map +1 -0
- package/dist/host-keepalive.js +126 -0
- package/dist/host-keepalive.js.map +1 -0
- package/dist/host-registry.d.ts +43 -0
- package/dist/host-registry.d.ts.map +1 -0
- package/dist/host-registry.js +93 -0
- package/dist/host-registry.js.map +1 -0
- package/dist/inbox.d.ts +87 -0
- package/dist/inbox.d.ts.map +1 -0
- package/dist/inbox.js +410 -0
- package/dist/inbox.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +306 -0
- package/dist/index.js.map +1 -0
- package/dist/insight-mutation.d.ts +32 -0
- package/dist/insight-mutation.d.ts.map +1 -0
- package/dist/insight-mutation.js +160 -0
- package/dist/insight-mutation.js.map +1 -0
- package/dist/insight-promotion.d.ts +89 -0
- package/dist/insight-promotion.d.ts.map +1 -0
- package/dist/insight-promotion.js +278 -0
- package/dist/insight-promotion.js.map +1 -0
- package/dist/insight-task-bridge.d.ts +77 -0
- package/dist/insight-task-bridge.d.ts.map +1 -0
- package/dist/insight-task-bridge.js +556 -0
- package/dist/insight-task-bridge.js.map +1 -0
- package/dist/insights.d.ts +222 -0
- package/dist/insights.d.ts.map +1 -0
- package/dist/insights.js +871 -0
- package/dist/insights.js.map +1 -0
- package/dist/intake-pipeline.d.ts +74 -0
- package/dist/intake-pipeline.d.ts.map +1 -0
- package/dist/intake-pipeline.js +199 -0
- package/dist/intake-pipeline.js.map +1 -0
- package/dist/intensity.d.ts +31 -0
- package/dist/intensity.d.ts.map +1 -0
- package/dist/intensity.js +94 -0
- package/dist/intensity.js.map +1 -0
- package/dist/knowledge-auto-index.d.ts +37 -0
- package/dist/knowledge-auto-index.d.ts.map +1 -0
- package/dist/knowledge-auto-index.js +149 -0
- package/dist/knowledge-auto-index.js.map +1 -0
- package/dist/knowledge-docs.d.ts +45 -0
- package/dist/knowledge-docs.d.ts.map +1 -0
- package/dist/knowledge-docs.js +188 -0
- package/dist/knowledge-docs.js.map +1 -0
- package/dist/lane-config.d.ts +25 -0
- package/dist/lane-config.d.ts.map +1 -0
- package/dist/lane-config.js +105 -0
- package/dist/lane-config.js.map +1 -0
- package/dist/lineage.d.ts +86 -0
- package/dist/lineage.d.ts.map +1 -0
- package/dist/lineage.js +303 -0
- package/dist/lineage.js.map +1 -0
- package/dist/logStore.d.ts +25 -0
- package/dist/logStore.d.ts.map +1 -0
- package/dist/logStore.js +83 -0
- package/dist/logStore.js.map +1 -0
- package/dist/manage.d.ts +12 -0
- package/dist/manage.d.ts.map +1 -0
- package/dist/manage.js +253 -0
- package/dist/manage.js.map +1 -0
- package/dist/mcp.d.ts +5 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +604 -0
- package/dist/mcp.js.map +1 -0
- package/dist/memory.d.ts +47 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +149 -0
- package/dist/memory.js.map +1 -0
- package/dist/mention-ack.d.ts +80 -0
- package/dist/mention-ack.d.ts.map +1 -0
- package/dist/mention-ack.js +175 -0
- package/dist/mention-ack.js.map +1 -0
- package/dist/messageRouter.d.ts +60 -0
- package/dist/messageRouter.d.ts.map +1 -0
- package/dist/messageRouter.js +309 -0
- package/dist/messageRouter.js.map +1 -0
- package/dist/mutationAlert.d.ts +44 -0
- package/dist/mutationAlert.d.ts.map +1 -0
- package/dist/mutationAlert.js +174 -0
- package/dist/mutationAlert.js.map +1 -0
- package/dist/noise-budget.d.ts +136 -0
- package/dist/noise-budget.d.ts.map +1 -0
- package/dist/noise-budget.js +340 -0
- package/dist/noise-budget.js.map +1 -0
- package/dist/notifications.d.ts +67 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/notifications.js +253 -0
- package/dist/notifications.js.map +1 -0
- package/dist/openclaw.d.ts +34 -0
- package/dist/openclaw.d.ts.map +1 -0
- package/dist/openclaw.js +208 -0
- package/dist/openclaw.js.map +1 -0
- package/dist/pause-controls.d.ts +31 -0
- package/dist/pause-controls.d.ts.map +1 -0
- package/dist/pause-controls.js +130 -0
- package/dist/pause-controls.js.map +1 -0
- package/dist/pidlock.d.ts +25 -0
- package/dist/pidlock.d.ts.map +1 -0
- package/dist/pidlock.js +179 -0
- package/dist/pidlock.js.map +1 -0
- package/dist/policy.d.ts +139 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +264 -0
- package/dist/policy.js.map +1 -0
- package/dist/polls.d.ts +47 -0
- package/dist/polls.d.ts.map +1 -0
- package/dist/polls.js +162 -0
- package/dist/polls.js.map +1 -0
- package/dist/portability.d.ts +55 -0
- package/dist/portability.d.ts.map +1 -0
- package/dist/portability.js +292 -0
- package/dist/portability.js.map +1 -0
- package/dist/pr-integrity.d.ts +45 -0
- package/dist/pr-integrity.d.ts.map +1 -0
- package/dist/pr-integrity.js +124 -0
- package/dist/pr-integrity.js.map +1 -0
- package/dist/prAutoMerge.d.ts +62 -0
- package/dist/prAutoMerge.d.ts.map +1 -0
- package/dist/prAutoMerge.js +493 -0
- package/dist/prAutoMerge.js.map +1 -0
- package/dist/preflight.d.ts +66 -0
- package/dist/preflight.d.ts.map +1 -0
- package/dist/preflight.js +864 -0
- package/dist/preflight.js.map +1 -0
- package/dist/presence.d.ts +98 -0
- package/dist/presence.d.ts.map +1 -0
- package/dist/presence.js +347 -0
- package/dist/presence.js.map +1 -0
- package/dist/provisioning.d.ts +101 -0
- package/dist/provisioning.d.ts.map +1 -0
- package/dist/provisioning.js +430 -0
- package/dist/provisioning.js.map +1 -0
- package/dist/reflection-automation.d.ts +59 -0
- package/dist/reflection-automation.d.ts.map +1 -0
- package/dist/reflection-automation.js +350 -0
- package/dist/reflection-automation.js.map +1 -0
- package/dist/reflections.d.ts +65 -0
- package/dist/reflections.d.ts.map +1 -0
- package/dist/reflections.js +306 -0
- package/dist/reflections.js.map +1 -0
- package/dist/release.d.ts +67 -0
- package/dist/release.d.ts.map +1 -0
- package/dist/release.js +275 -0
- package/dist/release.js.map +1 -0
- package/dist/request-tracker.d.ts +36 -0
- package/dist/request-tracker.d.ts.map +1 -0
- package/dist/request-tracker.js +109 -0
- package/dist/request-tracker.js.map +1 -0
- package/dist/research.d.ts +75 -0
- package/dist/research.d.ts.map +1 -0
- package/dist/research.js +171 -0
- package/dist/research.js.map +1 -0
- package/dist/routing-approvals.d.ts +73 -0
- package/dist/routing-approvals.d.ts.map +1 -0
- package/dist/routing-approvals.js +88 -0
- package/dist/routing-approvals.js.map +1 -0
- package/dist/routing-override.d.ts +94 -0
- package/dist/routing-override.d.ts.map +1 -0
- package/dist/routing-override.js +290 -0
- package/dist/routing-override.js.map +1 -0
- package/dist/scope-routing.d.ts +18 -0
- package/dist/scope-routing.d.ts.map +1 -0
- package/dist/scope-routing.js +29 -0
- package/dist/scope-routing.js.map +1 -0
- package/dist/secrets.d.ts +77 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +287 -0
- package/dist/secrets.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +10887 -0
- package/dist/server.js.map +1 -0
- package/dist/service-probe.d.ts +53 -0
- package/dist/service-probe.d.ts.map +1 -0
- package/dist/service-probe.js +225 -0
- package/dist/service-probe.js.map +1 -0
- package/dist/shared-workspace-api.d.ts +73 -0
- package/dist/shared-workspace-api.d.ts.map +1 -0
- package/dist/shared-workspace-api.js +281 -0
- package/dist/shared-workspace-api.js.map +1 -0
- package/dist/shipped-heartbeat.d.ts +91 -0
- package/dist/shipped-heartbeat.d.ts.map +1 -0
- package/dist/shipped-heartbeat.js +272 -0
- package/dist/shipped-heartbeat.js.map +1 -0
- package/dist/starter-team.d.ts +23 -0
- package/dist/starter-team.d.ts.map +1 -0
- package/dist/starter-team.js +88 -0
- package/dist/starter-team.js.map +1 -0
- package/dist/suppression-ledger.d.ts +73 -0
- package/dist/suppression-ledger.d.ts.map +1 -0
- package/dist/suppression-ledger.js +125 -0
- package/dist/suppression-ledger.js.map +1 -0
- package/dist/system-loop-state.d.ts +4 -0
- package/dist/system-loop-state.d.ts.map +1 -0
- package/dist/system-loop-state.js +40 -0
- package/dist/system-loop-state.js.map +1 -0
- package/dist/taskCommentIngest.d.ts +43 -0
- package/dist/taskCommentIngest.d.ts.map +1 -0
- package/dist/taskCommentIngest.js +59 -0
- package/dist/taskCommentIngest.js.map +1 -0
- package/dist/taskPrecheck.d.ts +20 -0
- package/dist/taskPrecheck.d.ts.map +1 -0
- package/dist/taskPrecheck.js +329 -0
- package/dist/taskPrecheck.js.map +1 -0
- package/dist/taskStateSync.d.ts +8 -0
- package/dist/taskStateSync.d.ts.map +1 -0
- package/dist/taskStateSync.js +79 -0
- package/dist/taskStateSync.js.map +1 -0
- package/dist/tasks.d.ts +140 -0
- package/dist/tasks.d.ts.map +1 -0
- package/dist/tasks.js +1281 -0
- package/dist/tasks.js.map +1 -0
- package/dist/team-config.d.ts +24 -0
- package/dist/team-config.d.ts.map +1 -0
- package/dist/team-config.js +221 -0
- package/dist/team-config.js.map +1 -0
- package/dist/team-doctor.d.ts +22 -0
- package/dist/team-doctor.d.ts.map +1 -0
- package/dist/team-doctor.js +270 -0
- package/dist/team-doctor.js.map +1 -0
- package/dist/team-pulse.d.ts +52 -0
- package/dist/team-pulse.d.ts.map +1 -0
- package/dist/team-pulse.js +176 -0
- package/dist/team-pulse.js.map +1 -0
- package/dist/telemetry.d.ts +74 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +256 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/test-task-filter.d.ts +21 -0
- package/dist/test-task-filter.d.ts.map +1 -0
- package/dist/test-task-filter.js +48 -0
- package/dist/test-task-filter.js.map +1 -0
- package/dist/types.d.ts +126 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/usage-tracking.d.ts +101 -0
- package/dist/usage-tracking.d.ts.map +1 -0
- package/dist/usage-tracking.js +325 -0
- package/dist/usage-tracking.js.map +1 -0
- package/dist/vector-store.d.ts +87 -0
- package/dist/vector-store.d.ts.map +1 -0
- package/dist/vector-store.js +247 -0
- package/dist/vector-store.js.map +1 -0
- package/dist/watchdog/idleNudgeLane.d.ts +22 -0
- package/dist/watchdog/idleNudgeLane.d.ts.map +1 -0
- package/dist/watchdog/idleNudgeLane.js +98 -0
- package/dist/watchdog/idleNudgeLane.js.map +1 -0
- package/dist/webhooks.d.ts +103 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +398 -0
- package/dist/webhooks.js.map +1 -0
- package/dist/working-contract.d.ts +42 -0
- package/dist/working-contract.d.ts.map +1 -0
- package/dist/working-contract.js +228 -0
- package/dist/working-contract.js.map +1 -0
- package/dist/ws-heartbeat.d.ts +66 -0
- package/dist/ws-heartbeat.d.ts.map +1 -0
- package/dist/ws-heartbeat.js +174 -0
- package/dist/ws-heartbeat.js.map +1 -0
- package/package.json +87 -0
- package/plugins/reflectt-channel/README.md +96 -0
- package/plugins/reflectt-channel/index.ts +789 -0
- package/plugins/reflectt-channel/openclaw.plugin.json +23 -0
- package/plugins/reflectt-channel/package.json +23 -0
- package/plugins/reflectt-channel/src/channel.ts +433 -0
- package/plugins/reflectt-channel/src/types.ts +29 -0
- package/public/avatars/echo.png +0 -0
- package/public/avatars/harmony.png +0 -0
- package/public/avatars/kai.png +0 -0
- package/public/avatars/link.png +0 -0
- package/public/avatars/pixel.png +0 -0
- package/public/avatars/rhythm.png +0 -0
- package/public/avatars/ryan.png +0 -0
- package/public/avatars/sage.png +0 -0
- package/public/avatars/scout.png +0 -0
- package/public/avatars/spark.png +0 -0
- package/public/dashboard-animations.css +381 -0
- package/public/dashboard.js +3479 -0
- package/public/docs.md +1062 -0
- package/public/file-upload-mock.html +1097 -0
- package/public/og-card.png +0 -0
- package/public/ui-kit.html +318 -0
- package/public/widget/feedback.js +194 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (c) Reflectt AI
|
|
3
|
+
/**
|
|
4
|
+
* Audit Ledger — Immutable log for review-field mutations.
|
|
5
|
+
*
|
|
6
|
+
* Records every change to reviewer-related fields on tasks:
|
|
7
|
+
* reviewer, reviewer_approved, review_state, approved_by, status (when entering/leaving validating)
|
|
8
|
+
*
|
|
9
|
+
* Each entry captures: timestamp, taskId, actor, field, before, after.
|
|
10
|
+
* Stored append-only in JSONL for tamper-evidence.
|
|
11
|
+
*/
|
|
12
|
+
import { promises as fs } from 'node:fs';
|
|
13
|
+
import path from 'node:path';
|
|
14
|
+
const DATA_DIR = process.env.REFLECTT_DATA_DIR || path.join(process.cwd(), 'data');
|
|
15
|
+
const AUDIT_FILE = path.join(DATA_DIR, 'review-audit-ledger.jsonl');
|
|
16
|
+
/** In-memory index for fast retrieval (also persisted to JSONL) */
|
|
17
|
+
const entries = [];
|
|
18
|
+
/** Maximum entries to keep in memory (older entries are still on disk) */
|
|
19
|
+
const MAX_IN_MEMORY = 5000;
|
|
20
|
+
/**
|
|
21
|
+
* Record a review-field mutation.
|
|
22
|
+
*/
|
|
23
|
+
export async function recordAudit(entry) {
|
|
24
|
+
entries.push(entry);
|
|
25
|
+
if (entries.length > MAX_IN_MEMORY) {
|
|
26
|
+
entries.splice(0, entries.length - MAX_IN_MEMORY);
|
|
27
|
+
}
|
|
28
|
+
// Append to JSONL file (best-effort, don't block)
|
|
29
|
+
try {
|
|
30
|
+
await fs.mkdir(DATA_DIR, { recursive: true });
|
|
31
|
+
await fs.appendFile(AUDIT_FILE, JSON.stringify(entry) + '\n', 'utf-8');
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
console.error('[Audit] Failed to write audit entry:', err);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Record multiple field changes from a single mutation.
|
|
39
|
+
*/
|
|
40
|
+
export async function recordReviewMutation(opts) {
|
|
41
|
+
const now = Date.now();
|
|
42
|
+
for (const change of opts.changes) {
|
|
43
|
+
await recordAudit({
|
|
44
|
+
timestamp: now,
|
|
45
|
+
taskId: opts.taskId,
|
|
46
|
+
actor: opts.actor,
|
|
47
|
+
field: change.field,
|
|
48
|
+
before: change.before,
|
|
49
|
+
after: change.after,
|
|
50
|
+
context: opts.context,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Detect which review-related fields changed between old and new task states.
|
|
56
|
+
*/
|
|
57
|
+
export function diffReviewFields(oldTask, newTask, oldMeta, newMeta) {
|
|
58
|
+
const changes = [];
|
|
59
|
+
// Top-level fields
|
|
60
|
+
const topFields = ['reviewer', 'status'];
|
|
61
|
+
for (const field of topFields) {
|
|
62
|
+
const before = oldTask[field];
|
|
63
|
+
const after = newTask[field];
|
|
64
|
+
if (before !== after) {
|
|
65
|
+
// Only log status changes involving 'validating'
|
|
66
|
+
if (field === 'status' && before !== 'validating' && after !== 'validating')
|
|
67
|
+
continue;
|
|
68
|
+
changes.push({ field, before, after });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Metadata fields
|
|
72
|
+
const metaFields = [
|
|
73
|
+
'reviewer_approved',
|
|
74
|
+
'review_state',
|
|
75
|
+
'approved_by',
|
|
76
|
+
'approved_at',
|
|
77
|
+
'review_last_activity_at',
|
|
78
|
+
'entered_validating_at',
|
|
79
|
+
'review_delta_note',
|
|
80
|
+
'approval_rejected',
|
|
81
|
+
];
|
|
82
|
+
for (const field of metaFields) {
|
|
83
|
+
const before = oldMeta[field];
|
|
84
|
+
const after = newMeta[field];
|
|
85
|
+
if (JSON.stringify(before) !== JSON.stringify(after)) {
|
|
86
|
+
changes.push({ field: `metadata.${field}`, before, after });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return changes;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get audit entries for a specific task.
|
|
93
|
+
*/
|
|
94
|
+
export function getAuditForTask(taskId) {
|
|
95
|
+
return entries.filter(e => e.taskId === taskId);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get all audit entries (most recent first), with optional limit.
|
|
99
|
+
*/
|
|
100
|
+
export function getAuditEntries(opts) {
|
|
101
|
+
let result = opts?.taskId
|
|
102
|
+
? entries.filter(e => e.taskId === opts.taskId)
|
|
103
|
+
: [...entries];
|
|
104
|
+
result.reverse(); // Most recent first
|
|
105
|
+
if (opts?.limit)
|
|
106
|
+
result = result.slice(0, opts.limit);
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Load audit entries from disk on startup.
|
|
111
|
+
*/
|
|
112
|
+
export async function loadAuditLedger() {
|
|
113
|
+
try {
|
|
114
|
+
const content = await fs.readFile(AUDIT_FILE, 'utf-8');
|
|
115
|
+
const lines = content.trim().split('\n').filter(Boolean);
|
|
116
|
+
for (const line of lines) {
|
|
117
|
+
try {
|
|
118
|
+
const entry = JSON.parse(line);
|
|
119
|
+
entries.push(entry);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// Skip malformed lines
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Keep only recent entries in memory
|
|
126
|
+
if (entries.length > MAX_IN_MEMORY) {
|
|
127
|
+
entries.splice(0, entries.length - MAX_IN_MEMORY);
|
|
128
|
+
}
|
|
129
|
+
return entries.length;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// File doesn't exist yet — that's fine
|
|
133
|
+
return 0;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=auditLedger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auditLedger.js","sourceRoot":"","sources":["../src/auditLedger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
export type PolicyActionKind = 'auto-block-stale' | 'suggest-close' | 'digest-emitted' | 'auto-unassign-orphan' | 'ready-queue-warning' | 'idle-queue-escalation' | 'continuity-replenish' | 'review-reassign' | 'auto-requeue' | 'working-contract-warning' | 'ready-queue-replenish';
|
|
2
|
+
export interface PolicyAction {
|
|
3
|
+
id: string;
|
|
4
|
+
kind: PolicyActionKind;
|
|
5
|
+
taskId: string | null;
|
|
6
|
+
agent: string | null;
|
|
7
|
+
description: string;
|
|
8
|
+
previousState: Record<string, unknown> | null;
|
|
9
|
+
appliedAt: number;
|
|
10
|
+
rolledBack: boolean;
|
|
11
|
+
rolledBackAt: number | null;
|
|
12
|
+
rollbackBy: string | null;
|
|
13
|
+
}
|
|
14
|
+
export interface BoardHealthDigest {
|
|
15
|
+
timestamp: number;
|
|
16
|
+
staleDoingCount: number;
|
|
17
|
+
suggestedCloseCount: number;
|
|
18
|
+
actionsApplied: number;
|
|
19
|
+
blockedTasks: string[];
|
|
20
|
+
suggestedCloseTasks: string[];
|
|
21
|
+
summary: string;
|
|
22
|
+
}
|
|
23
|
+
export interface BoardHealthWorkerConfig {
|
|
24
|
+
/** Enable/disable the worker (default: true) */
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
/** Tick interval in milliseconds (default: 5 min) */
|
|
27
|
+
intervalMs: number;
|
|
28
|
+
/** Minutes without activity before a doing task is auto-blocked (default: 240 = 4h) */
|
|
29
|
+
staleDoingThresholdMin: number;
|
|
30
|
+
/** Minutes without activity before suggesting close (default: 1440 = 24h) */
|
|
31
|
+
suggestCloseThresholdMin: number;
|
|
32
|
+
/** Rollback window in milliseconds (default: 1h) */
|
|
33
|
+
rollbackWindowMs: number;
|
|
34
|
+
/** Digest interval in milliseconds (default: 4h) */
|
|
35
|
+
digestIntervalMs: number;
|
|
36
|
+
/** Channel for digest messages (default: 'ops') */
|
|
37
|
+
digestChannel: string;
|
|
38
|
+
/** Quiet hours: don't act during these (HH format, 0-23) */
|
|
39
|
+
quietHoursStart: number;
|
|
40
|
+
quietHoursEnd: number;
|
|
41
|
+
/** Dry run mode — log actions but don't execute (default: false) */
|
|
42
|
+
dryRun: boolean;
|
|
43
|
+
/** Max actions per tick to prevent runaway automation (default: 5) */
|
|
44
|
+
maxActionsPerTick: number;
|
|
45
|
+
/** Minutes without agent activity before skipping in auto-replenish (default: 1440 = 24h) */
|
|
46
|
+
inactiveAgentThresholdMin: number;
|
|
47
|
+
/** Minutes without reviewer activity before auto-reassigning reviewer (default: 480 = 8h) */
|
|
48
|
+
reviewSlaThresholdMin: number;
|
|
49
|
+
/** Fallback reviewer when no active agent is available (default: 'ryan') */
|
|
50
|
+
reviewEscalationTarget: string;
|
|
51
|
+
}
|
|
52
|
+
export declare class BoardHealthWorker {
|
|
53
|
+
private config;
|
|
54
|
+
private auditLog;
|
|
55
|
+
private lastDigestAt;
|
|
56
|
+
private lastTickAt;
|
|
57
|
+
private tickCount;
|
|
58
|
+
private timer;
|
|
59
|
+
constructor(config?: Partial<BoardHealthWorkerConfig>);
|
|
60
|
+
start(): void;
|
|
61
|
+
stop(): void;
|
|
62
|
+
updateConfig(patch: Partial<BoardHealthWorkerConfig>): void;
|
|
63
|
+
getConfig(): BoardHealthWorkerConfig;
|
|
64
|
+
tick(options?: {
|
|
65
|
+
dryRun?: boolean;
|
|
66
|
+
force?: boolean;
|
|
67
|
+
}): Promise<{
|
|
68
|
+
actions: PolicyAction[];
|
|
69
|
+
digest: BoardHealthDigest | null;
|
|
70
|
+
skipped: boolean;
|
|
71
|
+
reason?: string;
|
|
72
|
+
}>;
|
|
73
|
+
private findStaleDoingTasks;
|
|
74
|
+
private applyAutoBlockStale;
|
|
75
|
+
private findAbandonedTasks;
|
|
76
|
+
private applySuggestClose;
|
|
77
|
+
/** Track last alert time per agent to enforce cooldown */
|
|
78
|
+
private readyQueueLastAlertAt;
|
|
79
|
+
/** Track last alert state fingerprint per agent to suppress duplicate alerts */
|
|
80
|
+
private readyQueueLastState;
|
|
81
|
+
/** Track when each agent's queue first went empty (for idle escalation) */
|
|
82
|
+
private idleQueueSince;
|
|
83
|
+
private checkReadyQueueFloor;
|
|
84
|
+
/** Track last replenish time per agent to enforce cooldown between auto-creates */
|
|
85
|
+
private replenishLastAt;
|
|
86
|
+
/**
|
|
87
|
+
* Sweeper tick: for each lane below readyFloor, emit a digest warning.
|
|
88
|
+
*
|
|
89
|
+
* Does NOT create placeholder tasks — the continuity loop (3e) handles
|
|
90
|
+
* real replenishment from promoted insights. Creating empty placeholders
|
|
91
|
+
* clutters the board with scopeless tasks that no one can work on.
|
|
92
|
+
*
|
|
93
|
+
* One warning per agent-deficit per tick, with a 30-minute per-agent cooldown.
|
|
94
|
+
*/
|
|
95
|
+
private sweepReadyQueue;
|
|
96
|
+
/** Track last reassignment per task to avoid churning */
|
|
97
|
+
private reviewReassignLastAt;
|
|
98
|
+
private checkReviewSla;
|
|
99
|
+
/**
|
|
100
|
+
* Pick an alternate reviewer for a task.
|
|
101
|
+
*
|
|
102
|
+
* IMPORTANT: reviewer reassignment must respect routing guardrails.
|
|
103
|
+
* We should not drift to designers/voice roles for ops/infra tasks just
|
|
104
|
+
* because they happened to be "most recently active".
|
|
105
|
+
*/
|
|
106
|
+
private pickAlternateReviewer;
|
|
107
|
+
private emitDigest;
|
|
108
|
+
rollback(actionId: string, rolledBackBy?: string): Promise<{
|
|
109
|
+
success: boolean;
|
|
110
|
+
message: string;
|
|
111
|
+
action?: PolicyAction;
|
|
112
|
+
}>;
|
|
113
|
+
getStatus(): {
|
|
114
|
+
config: BoardHealthWorkerConfig;
|
|
115
|
+
running: boolean;
|
|
116
|
+
lastTickAt: number;
|
|
117
|
+
lastDigestAt: number;
|
|
118
|
+
tickCount: number;
|
|
119
|
+
auditLogSize: number;
|
|
120
|
+
recentActions: PolicyAction[];
|
|
121
|
+
rollbackableActions: PolicyAction[];
|
|
122
|
+
};
|
|
123
|
+
getAuditLog(options?: {
|
|
124
|
+
limit?: number;
|
|
125
|
+
since?: number;
|
|
126
|
+
kind?: PolicyActionKind;
|
|
127
|
+
}): PolicyAction[];
|
|
128
|
+
private getTaskLastActivityAt;
|
|
129
|
+
private isQuietHours;
|
|
130
|
+
/** Prune audit log entries older than 7 days */
|
|
131
|
+
pruneAuditLog(maxAgeDays?: number): number;
|
|
132
|
+
}
|
|
133
|
+
export declare const boardHealthWorker: BoardHealthWorker;
|
|
134
|
+
//# sourceMappingURL=boardHealthWorker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boardHealthWorker.d.ts","sourceRoot":"","sources":["../src/boardHealthWorker.ts"],"names":[],"mappings":"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"}
|