@isaacriehm/cairn 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/README.md +37 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/backprop/id.d.ts +14 -0
- package/dist/backprop/id.js +40 -0
- package/dist/backprop/id.js.map +1 -0
- package/dist/backprop/index.d.ts +23 -0
- package/dist/backprop/index.js +21 -0
- package/dist/backprop/index.js.map +1 -0
- package/dist/backprop/prompt.d.ts +16 -0
- package/dist/backprop/prompt.js +101 -0
- package/dist/backprop/prompt.js.map +1 -0
- package/dist/backprop/runner.d.ts +18 -0
- package/dist/backprop/runner.js +95 -0
- package/dist/backprop/runner.js.map +1 -0
- package/dist/backprop/schema.d.ts +61 -0
- package/dist/backprop/schema.js +55 -0
- package/dist/backprop/schema.js.map +1 -0
- package/dist/backprop/types.d.ts +101 -0
- package/dist/backprop/types.js +24 -0
- package/dist/backprop/types.js.map +1 -0
- package/dist/backprop/writer.d.ts +27 -0
- package/dist/backprop/writer.js +301 -0
- package/dist/backprop/writer.js.map +1 -0
- package/dist/claude/error.d.ts +33 -0
- package/dist/claude/error.js +58 -0
- package/dist/claude/error.js.map +1 -0
- package/dist/claude/index.d.ts +3 -0
- package/dist/claude/index.js +3 -0
- package/dist/claude/index.js.map +1 -0
- package/dist/claude/runner.d.ts +11 -0
- package/dist/claude/runner.js +132 -0
- package/dist/claude/runner.js.map +1 -0
- package/dist/claude/types.d.ts +52 -0
- package/dist/claude/types.js +14 -0
- package/dist/claude/types.js.map +1 -0
- package/dist/cli/attention.d.ts +11 -0
- package/dist/cli/attention.js +234 -0
- package/dist/cli/attention.js.map +1 -0
- package/dist/cli/daemon.d.ts +54 -0
- package/dist/cli/daemon.js +351 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/doctor.d.ts +8 -0
- package/dist/cli/doctor.js +116 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/gc.d.ts +15 -0
- package/dist/cli/gc.js +139 -0
- package/dist/cli/gc.js.map +1 -0
- package/dist/cli/hook.d.ts +18 -0
- package/dist/cli/hook.js +57 -0
- package/dist/cli/hook.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +127 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +1 -0
- package/dist/cli/init.js +77 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/install.d.ts +52 -0
- package/dist/cli/install.js +308 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/join.d.ts +1 -0
- package/dist/cli/join.js +84 -0
- package/dist/cli/join.js.map +1 -0
- package/dist/cli/mcp.d.ts +1 -0
- package/dist/cli/mcp.js +62 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli/mirror.d.ts +1 -0
- package/dist/cli/mirror.js +97 -0
- package/dist/cli/mirror.js.map +1 -0
- package/dist/cli/run.d.ts +1 -0
- package/dist/cli/run.js +174 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/scope.d.ts +8 -0
- package/dist/cli/scope.js +65 -0
- package/dist/cli/scope.js.map +1 -0
- package/dist/cli/task.d.ts +18 -0
- package/dist/cli/task.js +137 -0
- package/dist/cli/task.js.map +1 -0
- package/dist/cli/watch.d.ts +1 -0
- package/dist/cli/watch.js +73 -0
- package/dist/cli/watch.js.map +1 -0
- package/dist/decision-capture/capture.d.ts +57 -0
- package/dist/decision-capture/capture.js +186 -0
- package/dist/decision-capture/capture.js.map +1 -0
- package/dist/decision-capture/extractor.d.ts +20 -0
- package/dist/decision-capture/extractor.js +103 -0
- package/dist/decision-capture/extractor.js.map +1 -0
- package/dist/decision-capture/id.d.ts +14 -0
- package/dist/decision-capture/id.js +44 -0
- package/dist/decision-capture/id.js.map +1 -0
- package/dist/decision-capture/index.d.ts +25 -0
- package/dist/decision-capture/index.js +21 -0
- package/dist/decision-capture/index.js.map +1 -0
- package/dist/decision-capture/prompt.d.ts +15 -0
- package/dist/decision-capture/prompt.js +68 -0
- package/dist/decision-capture/prompt.js.map +1 -0
- package/dist/decision-capture/refinement-prompt.d.ts +25 -0
- package/dist/decision-capture/refinement-prompt.js +146 -0
- package/dist/decision-capture/refinement-prompt.js.map +1 -0
- package/dist/decision-capture/refinement-schema.d.ts +52 -0
- package/dist/decision-capture/refinement-schema.js +61 -0
- package/dist/decision-capture/refinement-schema.js.map +1 -0
- package/dist/decision-capture/refinement.d.ts +60 -0
- package/dist/decision-capture/refinement.js +439 -0
- package/dist/decision-capture/refinement.js.map +1 -0
- package/dist/decision-capture/schema.d.ts +70 -0
- package/dist/decision-capture/schema.js +71 -0
- package/dist/decision-capture/schema.js.map +1 -0
- package/dist/decision-capture/types.d.ts +201 -0
- package/dist/decision-capture/types.js +20 -0
- package/dist/decision-capture/types.js.map +1 -0
- package/dist/decision-capture/writer.d.ts +90 -0
- package/dist/decision-capture/writer.js +267 -0
- package/dist/decision-capture/writer.js.map +1 -0
- package/dist/frontend/discord/acl.d.ts +6 -0
- package/dist/frontend/discord/acl.js +19 -0
- package/dist/frontend/discord/acl.js.map +1 -0
- package/dist/frontend/discord/channels.d.ts +29 -0
- package/dist/frontend/discord/channels.js +58 -0
- package/dist/frontend/discord/channels.js.map +1 -0
- package/dist/frontend/discord/classifier.d.ts +16 -0
- package/dist/frontend/discord/classifier.js +29 -0
- package/dist/frontend/discord/classifier.js.map +1 -0
- package/dist/frontend/discord/index.d.ts +118 -0
- package/dist/frontend/discord/index.js +1104 -0
- package/dist/frontend/discord/index.js.map +1 -0
- package/dist/frontend/discord/slash.d.ts +18 -0
- package/dist/frontend/discord/slash.js +90 -0
- package/dist/frontend/discord/slash.js.map +1 -0
- package/dist/frontend/inbox.d.ts +17 -0
- package/dist/frontend/inbox.js +30 -0
- package/dist/frontend/inbox.js.map +1 -0
- package/dist/frontend/index.d.ts +8 -0
- package/dist/frontend/index.js +6 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/frontend/stub/index.d.ts +58 -0
- package/dist/frontend/stub/index.js +144 -0
- package/dist/frontend/stub/index.js.map +1 -0
- package/dist/frontend/types.d.ts +247 -0
- package/dist/frontend/types.js +15 -0
- package/dist/frontend/types.js.map +1 -0
- package/dist/gc/apply.d.ts +26 -0
- package/dist/gc/apply.js +48 -0
- package/dist/gc/apply.js.map +1 -0
- package/dist/gc/canary.d.ts +42 -0
- package/dist/gc/canary.js +134 -0
- package/dist/gc/canary.js.map +1 -0
- package/dist/gc/classify.d.ts +25 -0
- package/dist/gc/classify.js +89 -0
- package/dist/gc/classify.js.map +1 -0
- package/dist/gc/doc-gardening.d.ts +29 -0
- package/dist/gc/doc-gardening.js +146 -0
- package/dist/gc/doc-gardening.js.map +1 -0
- package/dist/gc/frontmatter.d.ts +35 -0
- package/dist/gc/frontmatter.js +111 -0
- package/dist/gc/frontmatter.js.map +1 -0
- package/dist/gc/generator-drift.d.ts +28 -0
- package/dist/gc/generator-drift.js +53 -0
- package/dist/gc/generator-drift.js.map +1 -0
- package/dist/gc/index.d.ts +35 -0
- package/dist/gc/index.js +26 -0
- package/dist/gc/index.js.map +1 -0
- package/dist/gc/quality-update.d.ts +23 -0
- package/dist/gc/quality-update.js +69 -0
- package/dist/gc/quality-update.js.map +1 -0
- package/dist/gc/stub-hits.d.ts +31 -0
- package/dist/gc/stub-hits.js +125 -0
- package/dist/gc/stub-hits.js.map +1 -0
- package/dist/gc/sweep.d.ts +56 -0
- package/dist/gc/sweep.js +178 -0
- package/dist/gc/sweep.js.map +1 -0
- package/dist/gc/types.d.ts +129 -0
- package/dist/gc/types.js +26 -0
- package/dist/gc/types.js.map +1 -0
- package/dist/ground/drift.d.ts +8 -0
- package/dist/ground/drift.js +23 -0
- package/dist/ground/drift.js.map +1 -0
- package/dist/ground/frontmatter.d.ts +20 -0
- package/dist/ground/frontmatter.js +49 -0
- package/dist/ground/frontmatter.js.map +1 -0
- package/dist/ground/glob.d.ts +10 -0
- package/dist/ground/glob.js +46 -0
- package/dist/ground/glob.js.map +1 -0
- package/dist/ground/index.d.ts +14 -0
- package/dist/ground/index.js +10 -0
- package/dist/ground/index.js.map +1 -0
- package/dist/ground/ledgers.d.ts +18 -0
- package/dist/ground/ledgers.js +103 -0
- package/dist/ground/ledgers.js.map +1 -0
- package/dist/ground/manifest.d.ts +10 -0
- package/dist/ground/manifest.js +88 -0
- package/dist/ground/manifest.js.map +1 -0
- package/dist/ground/paths.d.ts +20 -0
- package/dist/ground/paths.js +61 -0
- package/dist/ground/paths.js.map +1 -0
- package/dist/ground/quality-grades.d.ts +11 -0
- package/dist/ground/quality-grades.js +98 -0
- package/dist/ground/quality-grades.js.map +1 -0
- package/dist/ground/schemas.d.ts +306 -0
- package/dist/ground/schemas.js +188 -0
- package/dist/ground/schemas.js.map +1 -0
- package/dist/ground/walk.d.ts +7 -0
- package/dist/ground/walk.js +53 -0
- package/dist/ground/walk.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/init/detect.d.ts +25 -0
- package/dist/init/detect.js +336 -0
- package/dist/init/detect.js.map +1 -0
- package/dist/init/index.d.ts +14 -0
- package/dist/init/index.js +9 -0
- package/dist/init/index.js.map +1 -0
- package/dist/init/init.d.ts +68 -0
- package/dist/init/init.js +673 -0
- package/dist/init/init.js.map +1 -0
- package/dist/init/mapper.d.ts +160 -0
- package/dist/init/mapper.js +248 -0
- package/dist/init/mapper.js.map +1 -0
- package/dist/init/prompts.d.ts +70 -0
- package/dist/init/prompts.js +80 -0
- package/dist/init/prompts.js.map +1 -0
- package/dist/init/secrets.d.ts +18 -0
- package/dist/init/secrets.js +76 -0
- package/dist/init/secrets.js.map +1 -0
- package/dist/init/seed.d.ts +21 -0
- package/dist/init/seed.js +75 -0
- package/dist/init/seed.js.map +1 -0
- package/dist/init/setup-runners.d.ts +17 -0
- package/dist/init/setup-runners.js +70 -0
- package/dist/init/setup-runners.js.map +1 -0
- package/dist/init/types.d.ts +59 -0
- package/dist/init/types.js +10 -0
- package/dist/init/types.js.map +1 -0
- package/dist/init/walker.d.ts +53 -0
- package/dist/init/walker.js +460 -0
- package/dist/init/walker.js.map +1 -0
- package/dist/init/workflow-block.d.ts +34 -0
- package/dist/init/workflow-block.js +110 -0
- package/dist/init/workflow-block.js.map +1 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.js +23 -0
- package/dist/logger.js.map +1 -0
- package/dist/mcp/context.d.ts +16 -0
- package/dist/mcp/context.js +8 -0
- package/dist/mcp/context.js.map +1 -0
- package/dist/mcp/errors.d.ts +17 -0
- package/dist/mcp/errors.js +23 -0
- package/dist/mcp/errors.js.map +1 -0
- package/dist/mcp/index.d.ts +10 -0
- package/dist/mcp/index.js +7 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/path-allowlist.d.ts +25 -0
- package/dist/mcp/path-allowlist.js +66 -0
- package/dist/mcp/path-allowlist.js.map +1 -0
- package/dist/mcp/result.d.ts +8 -0
- package/dist/mcp/result.js +18 -0
- package/dist/mcp/result.js.map +1 -0
- package/dist/mcp/schemas.d.ts +153 -0
- package/dist/mcp/schemas.js +135 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/server.d.ts +11 -0
- package/dist/mcp/server.js +58 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/telemetry.d.ts +15 -0
- package/dist/mcp/telemetry.js +13 -0
- package/dist/mcp/telemetry.js.map +1 -0
- package/dist/mcp/tools/append.d.ts +8 -0
- package/dist/mcp/tools/append.js +33 -0
- package/dist/mcp/tools/append.js.map +1 -0
- package/dist/mcp/tools/archive.d.ts +8 -0
- package/dist/mcp/tools/archive.js +49 -0
- package/dist/mcp/tools/archive.js.map +1 -0
- package/dist/mcp/tools/ask-operator.d.ts +34 -0
- package/dist/mcp/tools/ask-operator.js +93 -0
- package/dist/mcp/tools/ask-operator.js.map +1 -0
- package/dist/mcp/tools/canonical-for-topic.d.ts +6 -0
- package/dist/mcp/tools/canonical-for-topic.js +40 -0
- package/dist/mcp/tools/canonical-for-topic.js.map +1 -0
- package/dist/mcp/tools/decision-get.d.ts +6 -0
- package/dist/mcp/tools/decision-get.js +49 -0
- package/dist/mcp/tools/decision-get.js.map +1 -0
- package/dist/mcp/tools/decisions-for-symbol.d.ts +7 -0
- package/dist/mcp/tools/decisions-for-symbol.js +42 -0
- package/dist/mcp/tools/decisions-for-symbol.js.map +1 -0
- package/dist/mcp/tools/decisions-in-scope.d.ts +7 -0
- package/dist/mcp/tools/decisions-in-scope.js +47 -0
- package/dist/mcp/tools/decisions-in-scope.js.map +1 -0
- package/dist/mcp/tools/drop-task.d.ts +12 -0
- package/dist/mcp/tools/drop-task.js +47 -0
- package/dist/mcp/tools/drop-task.js.map +1 -0
- package/dist/mcp/tools/get-full.d.ts +7 -0
- package/dist/mcp/tools/get-full.js +46 -0
- package/dist/mcp/tools/get-full.js.map +1 -0
- package/dist/mcp/tools/ground-get.d.ts +7 -0
- package/dist/mcp/tools/ground-get.js +80 -0
- package/dist/mcp/tools/ground-get.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +3 -0
- package/dist/mcp/tools/index.js +44 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/invariant-get.d.ts +6 -0
- package/dist/mcp/tools/invariant-get.js +49 -0
- package/dist/mcp/tools/invariant-get.js.map +1 -0
- package/dist/mcp/tools/invariants-in-scope.d.ts +7 -0
- package/dist/mcp/tools/invariants-in-scope.js +65 -0
- package/dist/mcp/tools/invariants-in-scope.js.map +1 -0
- package/dist/mcp/tools/query-history.d.ts +9 -0
- package/dist/mcp/tools/query-history.js +33 -0
- package/dist/mcp/tools/query-history.js.map +1 -0
- package/dist/mcp/tools/record-decision.d.ts +14 -0
- package/dist/mcp/tools/record-decision.js +101 -0
- package/dist/mcp/tools/record-decision.js.map +1 -0
- package/dist/mcp/tools/record-run-event.d.ts +10 -0
- package/dist/mcp/tools/record-run-event.js +28 -0
- package/dist/mcp/tools/record-run-event.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +9 -0
- package/dist/mcp/tools/search.js +165 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/mcp/tools/supersedes-chain.d.ts +6 -0
- package/dist/mcp/tools/supersedes-chain.js +66 -0
- package/dist/mcp/tools/supersedes-chain.js.map +1 -0
- package/dist/mcp/tools/timeline.d.ts +9 -0
- package/dist/mcp/tools/timeline.js +65 -0
- package/dist/mcp/tools/timeline.js.map +1 -0
- package/dist/mcp/tools/types.d.ts +9 -0
- package/dist/mcp/tools/types.js +2 -0
- package/dist/mcp/tools/types.js.map +1 -0
- package/dist/mirror/clone.d.ts +6 -0
- package/dist/mirror/clone.js +48 -0
- package/dist/mirror/clone.js.map +1 -0
- package/dist/mirror/dirty-overlap.d.ts +13 -0
- package/dist/mirror/dirty-overlap.js +77 -0
- package/dist/mirror/dirty-overlap.js.map +1 -0
- package/dist/mirror/index.d.ts +7 -0
- package/dist/mirror/index.js +7 -0
- package/dist/mirror/index.js.map +1 -0
- package/dist/mirror/paths.d.ts +18 -0
- package/dist/mirror/paths.js +45 -0
- package/dist/mirror/paths.js.map +1 -0
- package/dist/mirror/push.d.ts +9 -0
- package/dist/mirror/push.js +27 -0
- package/dist/mirror/push.js.map +1 -0
- package/dist/mirror/state.d.ts +4 -0
- package/dist/mirror/state.js +36 -0
- package/dist/mirror/state.js.map +1 -0
- package/dist/mirror/sync.d.ts +9 -0
- package/dist/mirror/sync.js +33 -0
- package/dist/mirror/sync.js.map +1 -0
- package/dist/mirror/types.d.ts +77 -0
- package/dist/mirror/types.js +2 -0
- package/dist/mirror/types.js.map +1 -0
- package/dist/orchestrator/activity-summarizer.d.ts +33 -0
- package/dist/orchestrator/activity-summarizer.js +120 -0
- package/dist/orchestrator/activity-summarizer.js.map +1 -0
- package/dist/orchestrator/inbox.d.ts +78 -0
- package/dist/orchestrator/inbox.js +115 -0
- package/dist/orchestrator/inbox.js.map +1 -0
- package/dist/orchestrator/index.d.ts +9 -0
- package/dist/orchestrator/index.js +7 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestrator.d.ts +154 -0
- package/dist/orchestrator/orchestrator.js +2437 -0
- package/dist/orchestrator/orchestrator.js.map +1 -0
- package/dist/orchestrator/prompt.d.ts +19 -0
- package/dist/orchestrator/prompt.js +50 -0
- package/dist/orchestrator/prompt.js.map +1 -0
- package/dist/orchestrator/queue.d.ts +21 -0
- package/dist/orchestrator/queue.js +80 -0
- package/dist/orchestrator/queue.js.map +1 -0
- package/dist/orchestrator/run-log.d.ts +53 -0
- package/dist/orchestrator/run-log.js +92 -0
- package/dist/orchestrator/run-log.js.map +1 -0
- package/dist/orchestrator/runner.d.ts +56 -0
- package/dist/orchestrator/runner.js +172 -0
- package/dist/orchestrator/runner.js.map +1 -0
- package/dist/orchestrator/tool-digest.d.ts +35 -0
- package/dist/orchestrator/tool-digest.js +116 -0
- package/dist/orchestrator/tool-digest.js.map +1 -0
- package/dist/orchestrator/types.d.ts +263 -0
- package/dist/orchestrator/types.js +2 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/orchestrator/workspace.d.ts +21 -0
- package/dist/orchestrator/workspace.js +31 -0
- package/dist/orchestrator/workspace.js.map +1 -0
- package/dist/profiles/index.d.ts +3 -0
- package/dist/profiles/index.js +3 -0
- package/dist/profiles/index.js.map +1 -0
- package/dist/profiles/registry.d.ts +5 -0
- package/dist/profiles/registry.js +31 -0
- package/dist/profiles/registry.js.map +1 -0
- package/dist/profiles/types.d.ts +48 -0
- package/dist/profiles/types.js +11 -0
- package/dist/profiles/types.js.map +1 -0
- package/dist/profiles/unknown.d.ts +9 -0
- package/dist/profiles/unknown.js +17 -0
- package/dist/profiles/unknown.js.map +1 -0
- package/dist/reviewer/index.d.ts +6 -0
- package/dist/reviewer/index.js +5 -0
- package/dist/reviewer/index.js.map +1 -0
- package/dist/reviewer/prompt.d.ts +11 -0
- package/dist/reviewer/prompt.js +132 -0
- package/dist/reviewer/prompt.js.map +1 -0
- package/dist/reviewer/remediation.d.ts +15 -0
- package/dist/reviewer/remediation.js +61 -0
- package/dist/reviewer/remediation.js.map +1 -0
- package/dist/reviewer/reviewer.d.ts +9 -0
- package/dist/reviewer/reviewer.js +89 -0
- package/dist/reviewer/reviewer.js.map +1 -0
- package/dist/reviewer/schema.d.ts +45 -0
- package/dist/reviewer/schema.js +43 -0
- package/dist/reviewer/schema.js.map +1 -0
- package/dist/reviewer/types.d.ts +74 -0
- package/dist/reviewer/types.js +14 -0
- package/dist/reviewer/types.js.map +1 -0
- package/dist/sensors/attestation.d.ts +44 -0
- package/dist/sensors/attestation.js +262 -0
- package/dist/sensors/attestation.js.map +1 -0
- package/dist/sensors/catalog.d.ts +41 -0
- package/dist/sensors/catalog.js +123 -0
- package/dist/sensors/catalog.js.map +1 -0
- package/dist/sensors/decisions.d.ts +30 -0
- package/dist/sensors/decisions.js +393 -0
- package/dist/sensors/decisions.js.map +1 -0
- package/dist/sensors/diff.d.ts +27 -0
- package/dist/sensors/diff.js +148 -0
- package/dist/sensors/diff.js.map +1 -0
- package/dist/sensors/index.d.ts +13 -0
- package/dist/sensors/index.js +9 -0
- package/dist/sensors/index.js.map +1 -0
- package/dist/sensors/remediation.d.ts +20 -0
- package/dist/sensors/remediation.js +65 -0
- package/dist/sensors/remediation.js.map +1 -0
- package/dist/sensors/runner.d.ts +44 -0
- package/dist/sensors/runner.js +95 -0
- package/dist/sensors/runner.js.map +1 -0
- package/dist/sensors/structural.d.ts +30 -0
- package/dist/sensors/structural.js +204 -0
- package/dist/sensors/structural.js.map +1 -0
- package/dist/sensors/stub-catalog.d.ts +39 -0
- package/dist/sensors/stub-catalog.js +115 -0
- package/dist/sensors/stub-catalog.js.map +1 -0
- package/dist/sensors/types.d.ts +135 -0
- package/dist/sensors/types.js +14 -0
- package/dist/sensors/types.js.map +1 -0
- package/dist/tier0/classify.d.ts +5 -0
- package/dist/tier0/classify.js +91 -0
- package/dist/tier0/classify.js.map +1 -0
- package/dist/tier0/index.d.ts +3 -0
- package/dist/tier0/index.js +3 -0
- package/dist/tier0/index.js.map +1 -0
- package/dist/tier0/ollama.d.ts +22 -0
- package/dist/tier0/ollama.js +63 -0
- package/dist/tier0/ollama.js.map +1 -0
- package/dist/tier0/types.d.ts +24 -0
- package/dist/tier0/types.js +7 -0
- package/dist/tier0/types.js.map +1 -0
- package/dist/tightener/index.d.ts +4 -0
- package/dist/tightener/index.js +4 -0
- package/dist/tightener/index.js.map +1 -0
- package/dist/tightener/prompt.d.ts +3 -0
- package/dist/tightener/prompt.js +67 -0
- package/dist/tightener/prompt.js.map +1 -0
- package/dist/tightener/schema.d.ts +68 -0
- package/dist/tightener/schema.js +44 -0
- package/dist/tightener/schema.js.map +1 -0
- package/dist/tightener/tighten.d.ts +2 -0
- package/dist/tightener/tighten.js +66 -0
- package/dist/tightener/tighten.js.map +1 -0
- package/dist/tightener/types.d.ts +74 -0
- package/dist/tightener/types.js +6 -0
- package/dist/tightener/types.js.map +1 -0
- package/dist/uat/bundle.d.ts +68 -0
- package/dist/uat/bundle.js +168 -0
- package/dist/uat/bundle.js.map +1 -0
- package/dist/uat/index.d.ts +15 -0
- package/dist/uat/index.js +10 -0
- package/dist/uat/index.js.map +1 -0
- package/dist/uat/persistent.d.ts +64 -0
- package/dist/uat/persistent.js +206 -0
- package/dist/uat/persistent.js.map +1 -0
- package/dist/uat/probes/cli.d.ts +11 -0
- package/dist/uat/probes/cli.js +107 -0
- package/dist/uat/probes/cli.js.map +1 -0
- package/dist/uat/probes/http.d.ts +12 -0
- package/dist/uat/probes/http.js +139 -0
- package/dist/uat/probes/http.js.map +1 -0
- package/dist/uat/probes/index.d.ts +21 -0
- package/dist/uat/probes/index.js +30 -0
- package/dist/uat/probes/index.js.map +1 -0
- package/dist/uat/probes/integration.d.ts +18 -0
- package/dist/uat/probes/integration.js +188 -0
- package/dist/uat/probes/integration.js.map +1 -0
- package/dist/uat/probes/sql/config.d.ts +14 -0
- package/dist/uat/probes/sql/config.js +57 -0
- package/dist/uat/probes/sql/config.js.map +1 -0
- package/dist/uat/probes/sql/index.d.ts +29 -0
- package/dist/uat/probes/sql/index.js +43 -0
- package/dist/uat/probes/sql/index.js.map +1 -0
- package/dist/uat/probes/sql/mysql.d.ts +12 -0
- package/dist/uat/probes/sql/mysql.js +96 -0
- package/dist/uat/probes/sql/mysql.js.map +1 -0
- package/dist/uat/probes/sql/pg.d.ts +20 -0
- package/dist/uat/probes/sql/pg.js +102 -0
- package/dist/uat/probes/sql/pg.js.map +1 -0
- package/dist/uat/probes/sql/sqlite.d.ts +9 -0
- package/dist/uat/probes/sql/sqlite.js +58 -0
- package/dist/uat/probes/sql/sqlite.js.map +1 -0
- package/dist/uat/probes/sql/types.d.ts +46 -0
- package/dist/uat/probes/sql/types.js +10 -0
- package/dist/uat/probes/sql/types.js.map +1 -0
- package/dist/uat/probes/sql.d.ts +9 -0
- package/dist/uat/probes/sql.js +119 -0
- package/dist/uat/probes/sql.js.map +1 -0
- package/dist/uat/probes/ui.d.ts +19 -0
- package/dist/uat/probes/ui.js +244 -0
- package/dist/uat/probes/ui.js.map +1 -0
- package/dist/uat/prompt.d.ts +10 -0
- package/dist/uat/prompt.js +85 -0
- package/dist/uat/prompt.js.map +1 -0
- package/dist/uat/question.d.ts +50 -0
- package/dist/uat/question.js +139 -0
- package/dist/uat/question.js.map +1 -0
- package/dist/uat/rejection.d.ts +58 -0
- package/dist/uat/rejection.js +163 -0
- package/dist/uat/rejection.js.map +1 -0
- package/dist/uat/runner.d.ts +6 -0
- package/dist/uat/runner.js +96 -0
- package/dist/uat/runner.js.map +1 -0
- package/dist/uat/schema.d.ts +322 -0
- package/dist/uat/schema.js +189 -0
- package/dist/uat/schema.js.map +1 -0
- package/dist/uat/types.d.ts +268 -0
- package/dist/uat/types.js +18 -0
- package/dist/uat/types.js.map +1 -0
- package/dist/uat/uat.d.ts +89 -0
- package/dist/uat/uat.js +256 -0
- package/dist/uat/uat.js.map +1 -0
- package/dist/voice/index.d.ts +4 -0
- package/dist/voice/index.js +4 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/model.d.ts +23 -0
- package/dist/voice/model.js +46 -0
- package/dist/voice/model.js.map +1 -0
- package/dist/voice/pipe.d.ts +9 -0
- package/dist/voice/pipe.js +47 -0
- package/dist/voice/pipe.js.map +1 -0
- package/dist/voice/transcribe.d.ts +3 -0
- package/dist/voice/transcribe.js +43 -0
- package/dist/voice/transcribe.js.map +1 -0
- package/dist/voice/types.d.ts +26 -0
- package/dist/voice/types.js +9 -0
- package/dist/voice/types.js.map +1 -0
- package/dist/watch/daemon.d.ts +21 -0
- package/dist/watch/daemon.js +143 -0
- package/dist/watch/daemon.js.map +1 -0
- package/dist/watch/index.d.ts +4 -0
- package/dist/watch/index.js +3 -0
- package/dist/watch/index.js.map +1 -0
- package/dist/watch/regenerate.d.ts +25 -0
- package/dist/watch/regenerate.js +51 -0
- package/dist/watch/regenerate.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ChannelType, } from "discord.js";
|
|
2
|
+
/**
|
|
3
|
+
* Channel-per-task lifecycle per L09 + `WORKFLOW_GUIDE` ยง0:
|
|
4
|
+
* ๐ backlog โ proposed but not dispatched
|
|
5
|
+
* ๐ข active โ task in flight
|
|
6
|
+
* ๐ฆ archive โ task closed (locked for writes)
|
|
7
|
+
*/
|
|
8
|
+
export const CATEGORY_NAMES = {
|
|
9
|
+
backlog: "๐ backlog",
|
|
10
|
+
active: "๐ข active",
|
|
11
|
+
archive: "๐ฆ archive",
|
|
12
|
+
};
|
|
13
|
+
export async function ensureCategories(guild) {
|
|
14
|
+
const result = {};
|
|
15
|
+
for (const key of Object.keys(CATEGORY_NAMES)) {
|
|
16
|
+
const name = CATEGORY_NAMES[key];
|
|
17
|
+
const existing = guild.channels.cache.find((c) => c.type === ChannelType.GuildCategory && c.name === name);
|
|
18
|
+
if (existing) {
|
|
19
|
+
result[key] = existing;
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const created = await guild.channels.create({
|
|
23
|
+
name,
|
|
24
|
+
type: ChannelType.GuildCategory,
|
|
25
|
+
});
|
|
26
|
+
result[key] = created;
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Slugify task body to a channel-safe suffix. Discord channel names allow
|
|
32
|
+
* lowercase letters, digits, and hyphens; max 100 chars total.
|
|
33
|
+
*/
|
|
34
|
+
export function slugifyForChannel(body, max = 40) {
|
|
35
|
+
const cleaned = body
|
|
36
|
+
.toLowerCase()
|
|
37
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
38
|
+
.replace(/^-+|-+$/g, "")
|
|
39
|
+
.replace(/-{2,}/g, "-");
|
|
40
|
+
if (cleaned.length === 0)
|
|
41
|
+
return "task";
|
|
42
|
+
return cleaned.slice(0, max);
|
|
43
|
+
}
|
|
44
|
+
export async function createTaskChannel(args) {
|
|
45
|
+
const { guild, category, taskId, bodySlug } = args;
|
|
46
|
+
const name = `task-${bodySlug}-${taskId}`.slice(0, 95);
|
|
47
|
+
const channel = await guild.channels.create({
|
|
48
|
+
name,
|
|
49
|
+
type: ChannelType.GuildText,
|
|
50
|
+
parent: category.id,
|
|
51
|
+
});
|
|
52
|
+
return channel;
|
|
53
|
+
}
|
|
54
|
+
export async function moveChannelToCategory(args) {
|
|
55
|
+
const { channel, category } = args;
|
|
56
|
+
await channel.setParent(category.id, { lockPermissions: true });
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=channels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../../src/frontend/discord/channels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAIZ,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;CACb,CAAC;AAIX,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAY;IAEZ,MAAM,MAAM,GAAG,EAA0C,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAkB,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CACxC,CAAC,CAAC,EAAwB,EAAE,CAC1B,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAC1D,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1C,IAAI;YACJ,IAAI,EAAE,WAAW,CAAC,aAAa;SAChC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,GAAG,GAAG,EAAE;IACtD,MAAM,OAAO,GAAG,IAAI;SACjB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAKvC;IACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,QAAQ,QAAQ,IAAI,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1C,IAAI;QACJ,IAAI,EAAE,WAAW,CAAC,SAAS;QAC3B,MAAM,EAAE,QAAQ,CAAC,EAAE;KACpB,CAAC,CAAC;IACH,OAAO,OAAsB,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAG3C;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier-0 free-text intent classifier โ Phase 5 stub.
|
|
3
|
+
*
|
|
4
|
+
* Per `RESUME_PROMPT.md` ยง10 deliverable 4: real Tier-0 = Ollama llama3.2:3b
|
|
5
|
+
* (Phase 6, alongside Whisper). Phase 5 ships a deterministic regex matcher
|
|
6
|
+
* so smoke tests pass without an Ollama install. Same return shape as the
|
|
7
|
+
* future Ollama path โ drop-in replacement when Phase 6 lands.
|
|
8
|
+
*
|
|
9
|
+
* Output `intent` matches the inbox-row vocabulary the orchestrator (Phase 8)
|
|
10
|
+
* will dispatch on. Add intents here as they are needed.
|
|
11
|
+
*/
|
|
12
|
+
export type FreeTextIntent = "code_task" | "review" | "direction" | "question" | "halt" | "status" | "unknown";
|
|
13
|
+
export declare function classifyFreeText(text: string): {
|
|
14
|
+
intent: FreeTextIntent;
|
|
15
|
+
confidence: number;
|
|
16
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const RULES = [
|
|
2
|
+
{ intent: "halt", pattern: /^\s*(halt|stop|cancel|kill)\b/i },
|
|
3
|
+
{ intent: "status", pattern: /^\s*(status|state|how['โ]?s it going)\b/i },
|
|
4
|
+
{
|
|
5
|
+
intent: "direction",
|
|
6
|
+
pattern: /^\s*(scrap that|actually|new direction|going forward|from now on)\b/i,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
intent: "code_task",
|
|
10
|
+
pattern: /^\s*(fix|add|update|create|build|implement|refactor|delete|remove|migrate|wire|hook|land|rip out|rip)\b/i,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
intent: "review",
|
|
14
|
+
pattern: /^\s*(review|audit|check|inspect|look at|smoke|sanity)\b/i,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
intent: "question",
|
|
18
|
+
pattern: /^\s*(why|how|what|when|where|which|is|are|does|do|can|should)\b/i,
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
export function classifyFreeText(text) {
|
|
22
|
+
for (const rule of RULES) {
|
|
23
|
+
if (rule.pattern.test(text)) {
|
|
24
|
+
return { intent: rule.intent, confidence: 0.6 };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return { intent: "unknown", confidence: 0 };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=classifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/frontend/discord/classifier.ts"],"names":[],"mappings":"AAyBA,MAAM,KAAK,GAA4B;IACrC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gCAAgC,EAAE;IAC7D,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,0CAA0C,EAAE;IACzE;QACE,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,sEAAsE;KAChF;IACD;QACE,MAAM,EAAE,WAAW;QACnB,OAAO,EACL,0GAA0G;KAC7G;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,0DAA0D;KACpE;IACD;QACE,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,kEAAkE;KAC5E;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAI3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { Approval, ApprovalBundle, DialogResponse, DialogSpec, FreeTextEvent, FrontendAdapter, FrontendTask, IngestHandler, InteractionEvent, NotifyLevel, PostUpdate, SlashEvent, VoiceMessage } from "../types.js";
|
|
2
|
+
import type { Tier0ClassifyOptions } from "../../tier0/index.js";
|
|
3
|
+
import { CATEGORY_NAMES, ensureCategories, moveChannelToCategory, slugifyForChannel, type CategoryKey } from "./channels.js";
|
|
4
|
+
export interface DiscordFrontendAdapterOptions {
|
|
5
|
+
/** Repo root (mirror checkout in production; project root in dev/smoke). */
|
|
6
|
+
repoRoot: string;
|
|
7
|
+
/** Bot token from `harness/.env`. */
|
|
8
|
+
token: string;
|
|
9
|
+
/** Discord guild (server) id. */
|
|
10
|
+
guildId: string;
|
|
11
|
+
/**
|
|
12
|
+
* Application id (bot's user-id). Optional โ if omitted the adapter reads
|
|
13
|
+
* `client.application.id` after login.
|
|
14
|
+
*/
|
|
15
|
+
applicationId?: string;
|
|
16
|
+
/** Comma-separated owner Discord user-ids env value. */
|
|
17
|
+
ownerUserIdsEnv: string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Skip slash-command registration on start. Useful for tests; production
|
|
20
|
+
* always registers on every start to keep guild commands fresh.
|
|
21
|
+
*/
|
|
22
|
+
skipSlashRegistration?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Confidence floor for voice transcription. Below this, the bot posts a
|
|
25
|
+
* "Heard: '...' โ confirm?" prompt with ๐ข/๐ด buttons before treating the
|
|
26
|
+
* transcript as a real ingest. Default per L11/voice config: 0.85.
|
|
27
|
+
*/
|
|
28
|
+
confidenceFloor?: number;
|
|
29
|
+
/** Tier-0 classifier overrides (host, model, fallback). */
|
|
30
|
+
tier0?: Tier0ClassifyOptions;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Real Discord adapter. Implements `FrontendAdapter`. Phase 5 wires:
|
|
34
|
+
* - slash command surface per `WORKFLOW_GUIDE.md` ยง3
|
|
35
|
+
* - channel-per-task lifecycle in ๐/๐ข/๐ฆ categories
|
|
36
|
+
* - ACL on `DISCORD_OWNER_USER_IDS`
|
|
37
|
+
* - free-text โ regex Tier-0 stub (real Ollama in Phase 6)
|
|
38
|
+
* - voice attachments โ inbox row only (Whisper transcription Phase 6)
|
|
39
|
+
* - button interactions for approval / dialog round-trips
|
|
40
|
+
*
|
|
41
|
+
* Inbox rows are the only output Phase 5 produces โ the orchestrator (Phase
|
|
42
|
+
* 8) is the consumer. No code dispatch lives here.
|
|
43
|
+
*/
|
|
44
|
+
export declare class DiscordFrontendAdapter implements FrontendAdapter {
|
|
45
|
+
readonly name = "discord";
|
|
46
|
+
private readonly opts;
|
|
47
|
+
private readonly ownerIds;
|
|
48
|
+
private readonly client;
|
|
49
|
+
private readonly confidenceFloor;
|
|
50
|
+
private readonly tier0Opts;
|
|
51
|
+
private taskHandler;
|
|
52
|
+
private voiceHandler;
|
|
53
|
+
private slashHandler;
|
|
54
|
+
private freeTextHandler;
|
|
55
|
+
private interactionHandler;
|
|
56
|
+
private pendingApprovals;
|
|
57
|
+
private pendingDialogs;
|
|
58
|
+
/**
|
|
59
|
+
* ยง3.4 win 1 โ bundleId โ messageId for in-place dialog edit. When a
|
|
60
|
+
* follow-up DialogSpec arrives with `replaceBundleId` set, the adapter
|
|
61
|
+
* fetches that message and edits it (new prompt + new buttons) instead
|
|
62
|
+
* of posting a fresh one. Single edited message replaces the N+1
|
|
63
|
+
* scroll explosion.
|
|
64
|
+
*/
|
|
65
|
+
private dialogMessageIds;
|
|
66
|
+
/**
|
|
67
|
+
* In-memory map of taskId โ live status messageId. The live status
|
|
68
|
+
* message is one embed per task that gets edited in place on each
|
|
69
|
+
* postTaskUpdate call (instead of spamming the channel with a new
|
|
70
|
+
* message per phase). Restart loses the mapping; a fresh run posts a
|
|
71
|
+
* new live status message.
|
|
72
|
+
*/
|
|
73
|
+
private liveStatusMessages;
|
|
74
|
+
/**
|
|
75
|
+
* Channels that have responded with Unknown Channel (Discord error
|
|
76
|
+
* 10003). Once flagged dead, subsequent postTaskUpdate / sendTyping
|
|
77
|
+
* / requestDialog calls bail without hitting Discord. This stops the
|
|
78
|
+
* 8s typing heartbeat from spamming logs after the operator deletes
|
|
79
|
+
* a per-task channel mid-run.
|
|
80
|
+
*/
|
|
81
|
+
private deadChannels;
|
|
82
|
+
private started;
|
|
83
|
+
constructor(opts: DiscordFrontendAdapterOptions);
|
|
84
|
+
start(): Promise<void>;
|
|
85
|
+
stop(): Promise<void>;
|
|
86
|
+
onTask(handler: IngestHandler<FrontendTask>): void;
|
|
87
|
+
onVoice(handler: IngestHandler<VoiceMessage>): void;
|
|
88
|
+
onSlash(handler: IngestHandler<SlashEvent>): void;
|
|
89
|
+
onFreeText(handler: IngestHandler<FreeTextEvent>): void;
|
|
90
|
+
onInteraction(handler: IngestHandler<InteractionEvent>): void;
|
|
91
|
+
postTaskUpdate(update: PostUpdate): Promise<void>;
|
|
92
|
+
requestApproval(bundle: ApprovalBundle): Promise<Approval>;
|
|
93
|
+
requestDialog(spec: DialogSpec): Promise<DialogResponse>;
|
|
94
|
+
isChannelAlive(channelId: string): Promise<boolean>;
|
|
95
|
+
startTyping(channelId: string): () => void;
|
|
96
|
+
notify(level: NotifyLevel, message: string): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Discord error 10003 = Unknown Channel. Operator deleted the
|
|
99
|
+
* per-task channel after the harness recorded its id. Once flagged,
|
|
100
|
+
* silently no-op on every subsequent send/edit/typing call so we
|
|
101
|
+
* don't spam logs while the orchestrator winds the run down.
|
|
102
|
+
*/
|
|
103
|
+
private isChannelDead;
|
|
104
|
+
private markChannelDead;
|
|
105
|
+
private requireGuild;
|
|
106
|
+
private handleInteraction;
|
|
107
|
+
private handleSlash;
|
|
108
|
+
private handleTaskCommand;
|
|
109
|
+
private handleButton;
|
|
110
|
+
/**
|
|
111
|
+
* Stamp the bot's processing on the message: success โ โ
, decline โ
|
|
112
|
+
* โ, ask โ โ. Best-effort; reaction failures don't bubble.
|
|
113
|
+
*/
|
|
114
|
+
private ackReact;
|
|
115
|
+
private handleMessage;
|
|
116
|
+
private handleVoiceAttachment;
|
|
117
|
+
}
|
|
118
|
+
export { CATEGORY_NAMES, ensureCategories, moveChannelToCategory, slugifyForChannel, type CategoryKey, };
|