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,350 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Reflection automation — nudges agents to self-reflect after task completion
|
|
3
|
+
// and on idle cadence. Tracks reflection SLA per agent.
|
|
4
|
+
import { getDb } from './db.js';
|
|
5
|
+
import { taskManager } from './tasks.js';
|
|
6
|
+
import { routeMessage } from './messageRouter.js';
|
|
7
|
+
import { policyManager } from './policy.js';
|
|
8
|
+
// ── State ──
|
|
9
|
+
const pendingNudges = [];
|
|
10
|
+
const lastNudgeAt = {};
|
|
11
|
+
// ── Table ──
|
|
12
|
+
export function ensureReflectionTrackingTable() {
|
|
13
|
+
const db = getDb();
|
|
14
|
+
db.exec(`
|
|
15
|
+
CREATE TABLE IF NOT EXISTS reflection_tracking (
|
|
16
|
+
agent TEXT PRIMARY KEY,
|
|
17
|
+
last_reflection_at INTEGER,
|
|
18
|
+
last_nudge_at INTEGER,
|
|
19
|
+
tasks_done_since_reflection INTEGER NOT NULL DEFAULT 0,
|
|
20
|
+
updated_at INTEGER NOT NULL
|
|
21
|
+
);
|
|
22
|
+
`);
|
|
23
|
+
}
|
|
24
|
+
// ── Core: task completion hook ──
|
|
25
|
+
/**
|
|
26
|
+
* Called when a task transitions to done. Queues a reflection nudge.
|
|
27
|
+
*/
|
|
28
|
+
export function onTaskDone(task) {
|
|
29
|
+
const config = getConfig();
|
|
30
|
+
if (!config.enabled)
|
|
31
|
+
return;
|
|
32
|
+
const agent = task.assignee;
|
|
33
|
+
if (!agent)
|
|
34
|
+
return;
|
|
35
|
+
if (config.agents.length > 0 && !config.agents.includes(agent))
|
|
36
|
+
return;
|
|
37
|
+
// Increment tasks-done counter
|
|
38
|
+
ensureReflectionTrackingTable();
|
|
39
|
+
const db = getDb();
|
|
40
|
+
db.prepare(`
|
|
41
|
+
INSERT INTO reflection_tracking (agent, tasks_done_since_reflection, updated_at)
|
|
42
|
+
VALUES (?, 1, ?)
|
|
43
|
+
ON CONFLICT(agent) DO UPDATE SET
|
|
44
|
+
tasks_done_since_reflection = tasks_done_since_reflection + 1,
|
|
45
|
+
updated_at = ?
|
|
46
|
+
`).run(agent, Date.now(), Date.now());
|
|
47
|
+
// Queue nudge after delay
|
|
48
|
+
const nudgeAt = Date.now() + config.postTaskDelayMin * 60_000;
|
|
49
|
+
pendingNudges.push({
|
|
50
|
+
agent,
|
|
51
|
+
taskId: task.id,
|
|
52
|
+
taskTitle: task.title,
|
|
53
|
+
taskStatus: task.status,
|
|
54
|
+
doneAt: Date.now(),
|
|
55
|
+
nudgeAt,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Called when a reflection is submitted. Resets the agent's tracking.
|
|
60
|
+
*/
|
|
61
|
+
export function onReflectionSubmitted(agent) {
|
|
62
|
+
ensureReflectionTrackingTable();
|
|
63
|
+
const db = getDb();
|
|
64
|
+
db.prepare(`
|
|
65
|
+
INSERT INTO reflection_tracking (agent, last_reflection_at, tasks_done_since_reflection, updated_at)
|
|
66
|
+
VALUES (?, ?, 0, ?)
|
|
67
|
+
ON CONFLICT(agent) DO UPDATE SET
|
|
68
|
+
last_reflection_at = ?,
|
|
69
|
+
tasks_done_since_reflection = 0,
|
|
70
|
+
updated_at = ?
|
|
71
|
+
`).run(agent, Date.now(), Date.now(), Date.now(), Date.now());
|
|
72
|
+
}
|
|
73
|
+
// ── Tick: process pending nudges + idle checks ──
|
|
74
|
+
/**
|
|
75
|
+
* Called periodically (e.g., every 5 min by board health worker).
|
|
76
|
+
* Fires queued post-task nudges and checks idle reflection SLA.
|
|
77
|
+
*/
|
|
78
|
+
export async function tickReflectionNudges() {
|
|
79
|
+
const config = getConfig();
|
|
80
|
+
if (!config.enabled)
|
|
81
|
+
return { postTaskNudges: 0, idleNudges: 0, total: 0 };
|
|
82
|
+
let postTaskNudges = 0;
|
|
83
|
+
let idleNudges = 0;
|
|
84
|
+
const now = Date.now();
|
|
85
|
+
const cooldownMs = config.cooldownMin * 60_000;
|
|
86
|
+
// Process pending post-task nudges
|
|
87
|
+
const ready = pendingNudges.filter(n => now >= n.nudgeAt);
|
|
88
|
+
for (const nudge of ready) {
|
|
89
|
+
const idx = pendingNudges.indexOf(nudge);
|
|
90
|
+
if (idx >= 0)
|
|
91
|
+
pendingNudges.splice(idx, 1);
|
|
92
|
+
// Check cooldown
|
|
93
|
+
if (lastNudgeAt[nudge.agent] && now - lastNudgeAt[nudge.agent] < cooldownMs)
|
|
94
|
+
continue;
|
|
95
|
+
// Check if agent already reflected since task completion
|
|
96
|
+
const tracking = getAgentTracking(nudge.agent);
|
|
97
|
+
if (tracking && tracking.last_reflection_at && tracking.last_reflection_at > nudge.doneAt)
|
|
98
|
+
continue;
|
|
99
|
+
await sendPostTaskNudge(nudge.agent, nudge.taskId, nudge.taskTitle, config, nudge.taskStatus);
|
|
100
|
+
lastNudgeAt[nudge.agent] = now;
|
|
101
|
+
postTaskNudges++;
|
|
102
|
+
}
|
|
103
|
+
// Check idle reflection SLA
|
|
104
|
+
// v1.1 autonomy hardening: include agents that are *tracked* (have reflection_tracking rows)
|
|
105
|
+
// even if they currently have no active tasks. This reduces human-trigger dependence.
|
|
106
|
+
const agents = getNudgeAgents(config);
|
|
107
|
+
const nudgeNeverReflected = config.nudgeNeverReflected !== false; // default true
|
|
108
|
+
for (const agent of agents) {
|
|
109
|
+
if (lastNudgeAt[agent] && now - lastNudgeAt[agent] < cooldownMs)
|
|
110
|
+
continue;
|
|
111
|
+
// Seed tracking row for newly discovered agents
|
|
112
|
+
ensureAgentTracking(agent);
|
|
113
|
+
const tracking = getAgentTracking(agent);
|
|
114
|
+
const lastReflection = tracking?.last_reflection_at || 0;
|
|
115
|
+
const cadenceHours = config.roleCadenceHours[agent] || config.idleReflectionHours;
|
|
116
|
+
let shouldNudge = false;
|
|
117
|
+
let hoursSinceDisplay = 0;
|
|
118
|
+
if (lastReflection > 0) {
|
|
119
|
+
// Has reflected before — check if overdue
|
|
120
|
+
const hoursSince = (now - lastReflection) / (1000 * 60 * 60);
|
|
121
|
+
if (hoursSince >= cadenceHours) {
|
|
122
|
+
shouldNudge = true;
|
|
123
|
+
hoursSinceDisplay = Math.floor(hoursSince);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else if (nudgeNeverReflected) {
|
|
127
|
+
// Never reflected — check if tracking row is old enough (seeded_at)
|
|
128
|
+
const seededAt = tracking?.updated_at || 0;
|
|
129
|
+
const hoursSinceSeeded = seededAt > 0 ? (now - seededAt) / (1000 * 60 * 60) : cadenceHours;
|
|
130
|
+
if (hoursSinceSeeded >= cadenceHours) {
|
|
131
|
+
shouldNudge = true;
|
|
132
|
+
hoursSinceDisplay = Math.floor(hoursSinceSeeded);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (shouldNudge) {
|
|
136
|
+
await sendIdleNudge(agent, hoursSinceDisplay, tracking?.tasks_done_since_reflection || 0, config);
|
|
137
|
+
lastNudgeAt[agent] = now;
|
|
138
|
+
// Record nudge in DB
|
|
139
|
+
ensureReflectionTrackingTable();
|
|
140
|
+
const db = getDb();
|
|
141
|
+
db.prepare(`
|
|
142
|
+
INSERT INTO reflection_tracking (agent, last_nudge_at, tasks_done_since_reflection, updated_at)
|
|
143
|
+
VALUES (?, ?, 0, ?)
|
|
144
|
+
ON CONFLICT(agent) DO UPDATE SET
|
|
145
|
+
last_nudge_at = ?,
|
|
146
|
+
updated_at = ?
|
|
147
|
+
`).run(agent, now, now, now, now);
|
|
148
|
+
idleNudges++;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return { postTaskNudges, idleNudges, total: postTaskNudges + idleNudges };
|
|
152
|
+
}
|
|
153
|
+
// ── SLA reporting ──
|
|
154
|
+
export function getReflectionSLAs() {
|
|
155
|
+
ensureReflectionTrackingTable();
|
|
156
|
+
const db = getDb();
|
|
157
|
+
const config = getConfig();
|
|
158
|
+
const now = Date.now();
|
|
159
|
+
// Merge active agents + agents with tracking rows (union)
|
|
160
|
+
const activeAgents = config.agents.length > 0 ? config.agents : getActiveAgents(config.excludeAgents);
|
|
161
|
+
const trackedRows = db.prepare('SELECT agent FROM reflection_tracking').all();
|
|
162
|
+
const trackedAgents = trackedRows.map(r => r.agent);
|
|
163
|
+
// Union, filtered by exclude patterns
|
|
164
|
+
const excludeSet = new Set((config.excludeAgents || []).map(a => a.toLowerCase()));
|
|
165
|
+
const allAgents = new Set([...activeAgents, ...trackedAgents]);
|
|
166
|
+
const agents = [...allAgents].filter(agent => {
|
|
167
|
+
const lower = agent.toLowerCase();
|
|
168
|
+
if (excludeSet.has(lower))
|
|
169
|
+
return false;
|
|
170
|
+
return !DEFAULT_EXCLUDE_PATTERNS.some(p => p.test(agent));
|
|
171
|
+
});
|
|
172
|
+
const slas = [];
|
|
173
|
+
for (const agent of agents) {
|
|
174
|
+
const tracking = getAgentTracking(agent);
|
|
175
|
+
const lastReflection = tracking?.last_reflection_at || null;
|
|
176
|
+
const cadenceHours = config.roleCadenceHours[agent] || config.idleReflectionHours;
|
|
177
|
+
let hoursOverdue = null;
|
|
178
|
+
let status = 'healthy';
|
|
179
|
+
if (lastReflection) {
|
|
180
|
+
const hoursSince = (now - lastReflection) / (1000 * 60 * 60);
|
|
181
|
+
if (hoursSince >= cadenceHours * 1.5) {
|
|
182
|
+
status = 'overdue';
|
|
183
|
+
hoursOverdue = Math.round((hoursSince - cadenceHours) * 10) / 10;
|
|
184
|
+
}
|
|
185
|
+
else if (hoursSince >= cadenceHours) {
|
|
186
|
+
status = 'due';
|
|
187
|
+
hoursOverdue = Math.round((hoursSince - cadenceHours) * 10) / 10;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// Never reflected
|
|
192
|
+
status = 'overdue';
|
|
193
|
+
}
|
|
194
|
+
slas.push({
|
|
195
|
+
agent,
|
|
196
|
+
lastReflectionAt: lastReflection,
|
|
197
|
+
lastNudgeAt: tracking?.last_nudge_at || null,
|
|
198
|
+
tasksDoneSinceLastReflection: tracking?.tasks_done_since_reflection || 0,
|
|
199
|
+
hoursOverdue,
|
|
200
|
+
status,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return slas.sort((a, b) => {
|
|
204
|
+
const order = { overdue: 0, due: 1, healthy: 2 };
|
|
205
|
+
return order[a.status] - order[b.status];
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// ── Nudge messages ──
|
|
209
|
+
async function sendPostTaskNudge(agent, taskId, taskTitle, config, taskStatus) {
|
|
210
|
+
const isBlocked = taskStatus === 'blocked';
|
|
211
|
+
const msg = isBlocked
|
|
212
|
+
? `🪞 Reflection nudge: @${agent}, "${taskTitle}" (${taskId}) is blocked. ` +
|
|
213
|
+
`Take 2 min to reflect — what's blocking you, what did you try, and what would unblock it? ` +
|
|
214
|
+
`Submit via POST /reflections with your observations.`
|
|
215
|
+
: `🪞 Reflection nudge: @${agent}, you just completed "${taskTitle}" (${taskId}). ` +
|
|
216
|
+
`Take 2 min to reflect — what went well, what was painful, and what would you change? ` +
|
|
217
|
+
`Submit via POST /reflections with your observations.`;
|
|
218
|
+
try {
|
|
219
|
+
await routeMessage({
|
|
220
|
+
from: 'system',
|
|
221
|
+
content: msg,
|
|
222
|
+
category: 'watchdog-alert',
|
|
223
|
+
severity: 'info',
|
|
224
|
+
forceChannel: config.channel || 'general',
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
catch { /* chat may not be available */ }
|
|
228
|
+
}
|
|
229
|
+
async function sendIdleNudge(agent, hoursSince, tasksDone, config) {
|
|
230
|
+
const taskNote = tasksDone > 0 ? ` You've completed ${tasksDone} task(s) since your last reflection.` : '';
|
|
231
|
+
const msg = `🪞 Reflection due: @${agent}, it's been ${hoursSince}h since your last reflection.${taskNote} ` +
|
|
232
|
+
`Take a moment to capture what you've learned. Submit via POST /reflections.`;
|
|
233
|
+
try {
|
|
234
|
+
await routeMessage({
|
|
235
|
+
from: 'system',
|
|
236
|
+
content: msg,
|
|
237
|
+
category: 'watchdog-alert',
|
|
238
|
+
severity: 'warning',
|
|
239
|
+
forceChannel: config.channel || 'general',
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
catch { /* chat may not be available */ }
|
|
243
|
+
}
|
|
244
|
+
// ── Helpers ──
|
|
245
|
+
function getConfig() {
|
|
246
|
+
const policy = policyManager.get();
|
|
247
|
+
return policy.reflectionNudge ?? {
|
|
248
|
+
enabled: true,
|
|
249
|
+
postTaskDelayMin: 5,
|
|
250
|
+
idleReflectionHours: 8,
|
|
251
|
+
cooldownMin: 60,
|
|
252
|
+
agents: [],
|
|
253
|
+
channel: 'general',
|
|
254
|
+
roleCadenceHours: {},
|
|
255
|
+
excludeAgents: [],
|
|
256
|
+
nudgeNeverReflected: true,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
function getAgentTracking(agent) {
|
|
260
|
+
ensureReflectionTrackingTable();
|
|
261
|
+
const db = getDb();
|
|
262
|
+
return db.prepare('SELECT * FROM reflection_tracking WHERE agent = ?').get(agent);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Ensure an agent has a tracking row (seed on first discovery).
|
|
266
|
+
* This enables idle nudges for agents who have never reflected.
|
|
267
|
+
*/
|
|
268
|
+
function ensureAgentTracking(agent) {
|
|
269
|
+
ensureReflectionTrackingTable();
|
|
270
|
+
const db = getDb();
|
|
271
|
+
db.prepare(`
|
|
272
|
+
INSERT OR IGNORE INTO reflection_tracking (agent, tasks_done_since_reflection, updated_at)
|
|
273
|
+
VALUES (?, 0, ?)
|
|
274
|
+
`).run(agent, Date.now());
|
|
275
|
+
}
|
|
276
|
+
/** Patterns that indicate non-real agents (test fixtures, system, etc.) */
|
|
277
|
+
const DEFAULT_EXCLUDE_PATTERNS = [
|
|
278
|
+
/^test-/i,
|
|
279
|
+
/^proof-/i,
|
|
280
|
+
/^lane-/i,
|
|
281
|
+
/^unassigned$/i,
|
|
282
|
+
/^system$/i,
|
|
283
|
+
/^bot$/i,
|
|
284
|
+
];
|
|
285
|
+
function getActiveAgents(excludeList) {
|
|
286
|
+
// Get agents that have tasks in doing/todo/validating
|
|
287
|
+
const tasks = taskManager.listTasks({});
|
|
288
|
+
const agents = new Set();
|
|
289
|
+
for (const t of tasks) {
|
|
290
|
+
if (t.assignee && ['doing', 'todo', 'validating'].includes(t.status)) {
|
|
291
|
+
agents.add(t.assignee);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
// Filter out test/system agents
|
|
295
|
+
const excludeSet = new Set((excludeList || []).map(a => a.toLowerCase()));
|
|
296
|
+
return [...agents].filter(agent => {
|
|
297
|
+
const lower = agent.toLowerCase();
|
|
298
|
+
if (excludeSet.has(lower))
|
|
299
|
+
return false;
|
|
300
|
+
return !DEFAULT_EXCLUDE_PATTERNS.some(p => p.test(agent));
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Return list of agents eligible for reflection nudges.
|
|
305
|
+
*
|
|
306
|
+
* If policy specifies an explicit agent allowlist, that is used.
|
|
307
|
+
* Otherwise we take the union of:
|
|
308
|
+
* - agents with active tasks (doing/todo/validating)
|
|
309
|
+
* - agents with reflection tracking rows (previously reflected / previously nudged)
|
|
310
|
+
*
|
|
311
|
+
* This closes a real autonomy gap: an agent can drift out of the active-task set,
|
|
312
|
+
* stop reflecting, and never get nudged — requiring a human to re-trigger them.
|
|
313
|
+
*/
|
|
314
|
+
function getNudgeAgents(config) {
|
|
315
|
+
ensureReflectionTrackingTable();
|
|
316
|
+
const db = getDb();
|
|
317
|
+
const tracked = db.prepare('SELECT agent FROM reflection_tracking').all()
|
|
318
|
+
.map(r => String(r.agent));
|
|
319
|
+
// Allowlist semantics: if policy specifies explicit agents[], treat it as strict.
|
|
320
|
+
// Only when agents[] is empty do we auto-discover and union in tracked rows.
|
|
321
|
+
const hasAllowlist = config.agents.length > 0;
|
|
322
|
+
const base = hasAllowlist
|
|
323
|
+
? config.agents
|
|
324
|
+
: getActiveAgents(config.excludeAgents);
|
|
325
|
+
const all = hasAllowlist
|
|
326
|
+
? base
|
|
327
|
+
: [...new Set([...base, ...tracked])];
|
|
328
|
+
const excludeSet = new Set((config.excludeAgents || []).map(a => a.toLowerCase()));
|
|
329
|
+
return all.filter(agent => {
|
|
330
|
+
const lower = agent.toLowerCase();
|
|
331
|
+
if (excludeSet.has(lower))
|
|
332
|
+
return false;
|
|
333
|
+
return !DEFAULT_EXCLUDE_PATTERNS.some(p => p.test(agent));
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
// ── Test helpers ──
|
|
337
|
+
export function _clearReflectionTracking() {
|
|
338
|
+
try {
|
|
339
|
+
const db = getDb();
|
|
340
|
+
db.prepare('DELETE FROM reflection_tracking').run();
|
|
341
|
+
}
|
|
342
|
+
catch { /* table may not exist */ }
|
|
343
|
+
pendingNudges.length = 0;
|
|
344
|
+
for (const key of Object.keys(lastNudgeAt))
|
|
345
|
+
delete lastNudgeAt[key];
|
|
346
|
+
}
|
|
347
|
+
export function _getPendingNudges() {
|
|
348
|
+
return [...pendingNudges];
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=reflection-automation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflection-automation.js","sourceRoot":"","sources":["../src/reflection-automation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export declare const ROLE_TYPES: readonly ["human", "agent", "team"];
|
|
2
|
+
export type RoleType = (typeof ROLE_TYPES)[number];
|
|
3
|
+
export declare const SEVERITY_LEVELS: readonly ["low", "medium", "high", "critical"];
|
|
4
|
+
export type SeverityLevel = (typeof SEVERITY_LEVELS)[number];
|
|
5
|
+
export interface ReflectionInput {
|
|
6
|
+
pain: string;
|
|
7
|
+
impact: string;
|
|
8
|
+
evidence: string[];
|
|
9
|
+
went_well: string;
|
|
10
|
+
suspected_why: string;
|
|
11
|
+
proposed_fix: string;
|
|
12
|
+
confidence: number;
|
|
13
|
+
role_type: RoleType;
|
|
14
|
+
author: string;
|
|
15
|
+
severity?: SeverityLevel;
|
|
16
|
+
task_id?: string;
|
|
17
|
+
tags?: string[];
|
|
18
|
+
team_id?: string;
|
|
19
|
+
metadata?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
export interface Reflection extends ReflectionInput {
|
|
22
|
+
id: string;
|
|
23
|
+
created_at: number;
|
|
24
|
+
updated_at: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ValidationResult {
|
|
27
|
+
valid: boolean;
|
|
28
|
+
data: ReflectionInput;
|
|
29
|
+
errors?: Array<{
|
|
30
|
+
field: string;
|
|
31
|
+
message: string;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
export declare function validateReflection(body: unknown): ValidationResult;
|
|
35
|
+
export declare function createReflection(input: ReflectionInput): Reflection;
|
|
36
|
+
export declare function getReflection(id: string): Reflection | null;
|
|
37
|
+
export interface ReflectionListOpts {
|
|
38
|
+
author?: string;
|
|
39
|
+
role_type?: string;
|
|
40
|
+
severity?: string;
|
|
41
|
+
task_id?: string;
|
|
42
|
+
team_id?: string;
|
|
43
|
+
since?: number;
|
|
44
|
+
before?: number;
|
|
45
|
+
limit?: number;
|
|
46
|
+
offset?: number;
|
|
47
|
+
}
|
|
48
|
+
export declare function listReflections(opts?: ReflectionListOpts): Reflection[];
|
|
49
|
+
export declare function countReflections(opts?: Omit<ReflectionListOpts, 'limit' | 'offset'>): number;
|
|
50
|
+
export declare function reflectionStats(): {
|
|
51
|
+
total: number;
|
|
52
|
+
by_role_type: Record<string, number>;
|
|
53
|
+
by_severity: Record<string, number>;
|
|
54
|
+
by_author: Record<string, number>;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Best-effort duplicate counter for a canonical reflection.
|
|
58
|
+
* Used by POST /reflections dedup to leave an audit trail without creating new rows.
|
|
59
|
+
*/
|
|
60
|
+
export declare function recordReflectionDuplicate(canonicalReflectionId: string, duplicateAt?: number, signature?: string): {
|
|
61
|
+
ok: boolean;
|
|
62
|
+
count: number;
|
|
63
|
+
};
|
|
64
|
+
export declare function _clearReflectionStore(): void;
|
|
65
|
+
//# sourceMappingURL=reflections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflections.d.ts","sourceRoot":"","sources":["../src/reflections.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,qCAAsC,CAAA;AAC7D,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAElD,eAAO,MAAM,eAAe,gDAAiD,CAAA;AAC7E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAI5D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,QAAQ,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,UAAW,SAAQ,eAAe;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,eAAe,CAAA;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACnD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAuFlE;AAsDD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CA8CnE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAI3D;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,eAAe,CAAC,IAAI,GAAE,kBAAuB,GAAG,UAAU,EAAE,CAsB3E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,QAAQ,CAAM,GAAG,MAAM,CAgBhG;AAED,wBAAgB,eAAe,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAcjK;AA8DD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,qBAAqB,EAAE,MAAM,EAC7B,WAAW,GAAE,MAAmB,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA4BhC;AAID,wBAAgB,qBAAqB,IAAI,IAAI,CAO5C"}
|