@sayknow-cli/coding-agent 0.3.12 → 0.3.15
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/dist/types/autoresearch/tools/init-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/log-experiment.d.ts +2 -2
- package/dist/types/cli/classify-install-target.d.ts +0 -10
- package/dist/types/cli/daemon-cli.d.ts +2 -0
- package/dist/types/cli/initial-message.d.ts +1 -1
- package/dist/types/cli/malloc-env-guard.d.ts +65 -0
- package/dist/types/cli/malloc-env-guard.test.d.ts +1 -0
- package/dist/types/cli/notify-cli.d.ts +3 -1
- package/dist/types/cli/session-picker.d.ts +4 -3
- package/dist/types/cli/update-cli.d.ts +22 -3
- package/dist/types/cli.d.ts +5 -0
- package/dist/types/commands/daemon.d.ts +6 -2
- package/dist/types/commands/launch.d.ts +1 -0
- package/dist/types/commands/notify.d.ts +6 -0
- package/dist/types/commands/web-search.d.ts +1 -1
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +4 -4
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +9 -9
- package/dist/types/commit/agentic/tools/schemas.d.ts +9 -9
- package/dist/types/commit/agentic/tools/split-commit.d.ts +9 -9
- package/dist/types/commit/analysis/conventional.d.ts +1 -1
- package/dist/types/commit/analysis/summary.d.ts +1 -1
- package/dist/types/commit/changelog/generate.d.ts +3 -3
- package/dist/types/commit/changelog/index.d.ts +2 -2
- package/dist/types/commit/map-reduce/map-phase.d.ts +1 -1
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +1 -1
- package/dist/types/commit/shared-llm.d.ts +9 -9
- package/dist/types/config/keybindings.d.ts +134 -129
- package/dist/types/config/model-profile-activation.d.ts +1 -0
- package/dist/types/config/model-registry.d.ts +35 -35
- package/dist/types/config/models-config-schema.d.ts +111 -111
- package/dist/types/config/settings-schema.d.ts +56 -16
- package/dist/types/config/settings.d.ts +2 -0
- package/dist/types/coordinator/contract.d.ts +1 -1
- package/dist/types/coordinator-mcp/model-preset.d.ts +45 -0
- package/dist/types/coordinator-mcp/policy.d.ts +3 -0
- package/dist/types/coordinator-mcp/server.d.ts +79 -6
- package/dist/types/coordinator-mcp/session-reaper.d.ts +53 -0
- package/dist/types/daemon/control-types.d.ts +10 -0
- package/dist/types/daemon/operator-contract.d.ts +47 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/models/catalog.d.ts +4 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/shared/errors.d.ts +12 -12
- package/dist/types/discovery/helpers.d.ts +1 -1
- package/dist/types/discovery/substitute-plugin-root.d.ts +0 -4
- package/dist/types/edit/modes/patch.d.ts +2 -2
- package/dist/types/extensibility/extensions/types.d.ts +3 -1
- package/dist/types/goals/tools/goal-tool.d.ts +6 -6
- package/dist/types/i18n/messages/en.d.ts +8 -8
- package/dist/types/internal-urls/local-protocol.d.ts +13 -9
- package/dist/types/lsp/index.d.ts +9 -9
- package/dist/types/lsp/types.d.ts +9 -9
- package/dist/types/main.d.ts +66 -2
- package/dist/types/modes/acp/acp-agent.d.ts +19 -2
- package/dist/types/modes/acp/acp-mode.d.ts +12 -0
- package/dist/types/modes/components/assistant-message.d.ts +1 -1
- package/dist/types/modes/components/custom-editor.d.ts +2 -0
- package/dist/types/modes/components/hook-selector.d.ts +5 -0
- package/dist/types/modes/components/irc-sidebar.d.ts +32 -0
- package/dist/types/modes/components/pet-selector.d.ts +11 -0
- package/dist/types/modes/components/sayknow-pet-widget.d.ts +59 -0
- package/dist/types/modes/components/session-selector.d.ts +22 -9
- package/dist/types/modes/components/settings-selector.d.ts +2 -0
- package/dist/types/modes/components/status-line/types.d.ts +1 -1
- package/dist/types/modes/components/status-line.d.ts +0 -10
- package/dist/types/modes/components/tool-execution.d.ts +1 -0
- package/dist/types/modes/components/user-message.d.ts +2 -1
- package/dist/types/modes/controllers/event-controller.d.ts +4 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +1 -0
- package/dist/types/modes/interactive-mode.d.ts +24 -2
- package/dist/types/modes/irc-observation-ledger.d.ts +22 -0
- package/dist/types/modes/print-mode.d.ts +3 -4
- package/dist/types/modes/rpc/rpc-client.d.ts +7 -1
- package/dist/types/modes/rpc/rpc-mode.d.ts +2 -1
- package/dist/types/modes/rpc/rpc-types.d.ts +17 -1
- package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +8 -0
- package/dist/types/modes/shared/agent-wire/unattended-run-controller.d.ts +5 -0
- package/dist/types/modes/shared/agent-wire/unattended-session.d.ts +45 -0
- package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +42 -2
- package/dist/types/modes/theme/defaults/index.d.ts +568 -568
- package/dist/types/modes/types.d.ts +28 -2
- package/dist/types/modes/utils/abort-message.d.ts +1 -1
- package/dist/types/modes/utils/context-usage.d.ts +4 -19
- package/dist/types/modes/utils/irc-message.d.ts +38 -0
- package/dist/types/modes/utils/ui-helpers.d.ts +13 -4
- package/dist/types/notifications/config.d.ts +34 -0
- package/dist/types/notifications/daemon-paths.d.ts +7 -0
- package/dist/types/notifications/index.d.ts +27 -0
- package/dist/types/notifications/lifecycle-control-runtime.d.ts +12 -4
- package/dist/types/notifications/notification-service.d.ts +144 -0
- package/dist/types/notifications/rate-limit-pool.d.ts +27 -9
- package/dist/types/notifications/telegram-daemon-control.d.ts +6 -0
- package/dist/types/notifications/telegram-daemon.d.ts +130 -3
- package/dist/types/notifications/telegram-reference.d.ts +19 -2
- package/dist/types/notifications/topic-registry.d.ts +24 -4
- package/dist/types/registry/agent-registry.d.ts +2 -0
- package/dist/types/rlm/index.d.ts +1 -1
- package/dist/types/sdk.d.ts +2 -0
- package/dist/types/secrets/obfuscator.d.ts +1 -1
- package/dist/types/session/agent-session.d.ts +40 -3
- package/dist/types/session/cache-economics.d.ts +79 -0
- package/dist/types/session/context-estimation.d.ts +31 -0
- package/dist/types/session/provider-safety-stop.d.ts +5 -0
- package/dist/types/session/session-manager.d.ts +124 -4
- package/dist/types/session/session-storage.d.ts +155 -13
- package/dist/types/setup/credential-auto-import.d.ts +2 -2
- package/dist/types/skc-runtime/session-state-sidecar.d.ts +34 -3
- package/dist/types/skc-runtime/state-schema.d.ts +19 -19
- package/dist/types/skc-runtime/tmux-common.d.ts +6 -0
- package/dist/types/skc-runtime/tmux-owner-isolation-cli.d.ts +5 -0
- package/dist/types/skc-runtime/tmux-owner-isolation.d.ts +309 -0
- package/dist/types/skc-runtime/tmux-sessions.d.ts +49 -17
- package/dist/types/task/agents.d.ts +2 -2
- package/dist/types/task/executor.d.ts +3 -0
- package/dist/types/task/receipt.d.ts +3 -1
- package/dist/types/task/types.d.ts +35 -27
- package/dist/types/tools/ask-answer-registry.d.ts +5 -0
- package/dist/types/tools/bash.d.ts +1 -1
- package/dist/types/tools/browser/tab-supervisor.d.ts +6 -0
- package/dist/types/tools/browser.d.ts +28 -28
- package/dist/types/tools/computer.d.ts +20 -20
- package/dist/types/tools/cron.d.ts +2 -2
- package/dist/types/tools/debug.d.ts +40 -40
- package/dist/types/tools/gh.d.ts +10 -10
- package/dist/types/tools/image-gen.d.ts +2 -2
- package/dist/types/tools/index.d.ts +58 -6
- package/dist/types/tools/monitor.d.ts +6 -6
- package/dist/types/tools/skill-discovery.d.ts +4 -4
- package/dist/types/tools/subagent.d.ts +12 -12
- package/dist/types/tools/telegram-send.d.ts +7 -0
- package/dist/types/tools/todo-write.d.ts +8 -8
- package/dist/types/utils/external-editor.d.ts +2 -0
- package/dist/types/web/insane/bridge.d.ts +9 -9
- package/dist/types/web/search/index.d.ts +4 -4
- package/package.json +8 -8
- package/scripts/g004-tmux-smoke.ts +196 -36
- package/src/cli/daemon-cli.ts +19 -29
- package/src/cli/malloc-env-guard.test.ts +104 -0
- package/src/cli/malloc-env-guard.ts +149 -0
- package/src/cli/notify-cli.ts +78 -14
- package/src/cli/session-picker.ts +23 -40
- package/src/cli/update-cli.ts +56 -37
- package/src/cli.ts +51 -10
- package/src/commands/daemon.ts +19 -5
- package/src/commands/harness.ts +515 -47
- package/src/commands/launch.ts +11 -3
- package/src/commands/notify.ts +5 -1
- package/src/commands/session.ts +6 -1
- package/src/config/keybindings.ts +5 -0
- package/src/config/model-profile-activation.ts +1 -1
- package/src/config/model-profiles.ts +14 -14
- package/src/config/settings-schema.ts +41 -1
- package/src/config/settings.ts +96 -45
- package/src/coordinator/contract.ts +1 -0
- package/src/coordinator-mcp/model-preset.ts +100 -0
- package/src/coordinator-mcp/policy.ts +30 -0
- package/src/coordinator-mcp/server.ts +2958 -430
- package/src/coordinator-mcp/session-reaper.ts +129 -0
- package/src/daemon/control-types.ts +11 -0
- package/src/daemon/operator-contract.ts +121 -0
- package/src/defaults/skc/extensions/grok-cli-vendor/src/models/catalog.ts +57 -17
- package/src/defaults/skc/extensions/grok-cli-vendor/src/payload/sanitize.ts +15 -2
- package/src/defaults/skc/extensions/grok-cli-vendor/src/provider/register.ts +5 -1
- package/src/extensibility/extensions/runner.ts +1 -1
- package/src/extensibility/extensions/types.ts +3 -1
- package/src/internal-urls/docs-index.generated.ts +10 -9
- package/src/internal-urls/local-protocol.ts +29 -10
- package/src/main.ts +301 -80
- package/src/modes/acp/acp-agent.ts +730 -100
- package/src/modes/acp/acp-mode.ts +29 -2
- package/src/modes/components/assistant-message.ts +32 -3
- package/src/modes/components/bash-execution.ts +43 -13
- package/src/modes/components/custom-editor.ts +5 -0
- package/src/modes/components/footer.ts +3 -3
- package/src/modes/components/hook-selector.ts +12 -0
- package/src/modes/components/irc-sidebar.ts +206 -0
- package/src/modes/components/pet-selector.ts +55 -0
- package/src/modes/components/sayknow-pet-widget.ts +360 -0
- package/src/modes/components/session-selector.ts +222 -221
- package/src/modes/components/settings-selector.ts +10 -0
- package/src/modes/components/status-line/segments.ts +14 -7
- package/src/modes/components/status-line/types.ts +1 -1
- package/src/modes/components/status-line.ts +4 -171
- package/src/modes/components/tool-execution.ts +47 -6
- package/src/modes/components/user-message.ts +26 -9
- package/src/modes/controllers/command-controller.ts +28 -2
- package/src/modes/controllers/event-controller.ts +159 -36
- package/src/modes/controllers/extension-ui-controller.ts +37 -18
- package/src/modes/controllers/input-controller.ts +8 -2
- package/src/modes/controllers/selector-controller.ts +62 -15
- package/src/modes/interactive-mode.ts +199 -7
- package/src/modes/irc-observation-ledger.ts +127 -0
- package/src/modes/print-mode.ts +228 -92
- package/src/modes/rpc/rpc-client.ts +58 -1
- package/src/modes/rpc/rpc-mode.ts +286 -85
- package/src/modes/rpc/rpc-types.ts +15 -1
- package/src/modes/shared/agent-wire/command-dispatch.ts +33 -1
- package/src/modes/shared/agent-wire/command-validation.ts +10 -0
- package/src/modes/shared/agent-wire/deep-interview-gate.ts +45 -2
- package/src/modes/shared/agent-wire/scopes.ts +1 -0
- package/src/modes/shared/agent-wire/unattended-session.ts +288 -1
- package/src/modes/shared/agent-wire/workflow-gate-broker.ts +130 -20
- package/src/modes/types.ts +34 -2
- package/src/modes/utils/context-usage.ts +56 -92
- package/src/modes/utils/hotkeys-markdown.ts +1 -0
- package/src/modes/utils/irc-message.ts +138 -0
- package/src/modes/utils/ui-helpers.ts +216 -50
- package/src/notifications/config.ts +44 -0
- package/src/notifications/daemon-paths.ts +8 -0
- package/src/notifications/index.ts +535 -75
- package/src/notifications/lifecycle-control-runtime.ts +930 -77
- package/src/notifications/notification-service.ts +710 -0
- package/src/notifications/rate-limit-pool.ts +46 -12
- package/src/notifications/telegram-daemon-control.ts +27 -2
- package/src/notifications/telegram-daemon.ts +635 -94
- package/src/notifications/telegram-reference.ts +73 -13
- package/src/notifications/topic-registry.ts +86 -9
- package/src/prompts/system/irc-peer-roster.md +1 -0
- package/src/prompts/system/subagent-system-prompt.md +1 -0
- package/src/prompts/system/system-prompt.md +1 -0
- package/src/prompts/tools/irc.md +1 -1
- package/src/registry/agent-registry.ts +3 -0
- package/src/sdk.ts +52 -1
- package/src/secrets/obfuscator.ts +4 -2
- package/src/session/agent-session.ts +670 -217
- package/src/session/cache-economics.ts +275 -0
- package/src/session/context-estimation.ts +91 -0
- package/src/session/provider-safety-stop.ts +9 -0
- package/src/session/session-dump-format.ts +6 -0
- package/src/session/session-manager.ts +809 -39
- package/src/session/session-storage.ts +582 -38
- package/src/skc-runtime/session-state-sidecar.ts +756 -135
- package/src/skc-runtime/tmux-common.ts +26 -7
- package/src/skc-runtime/tmux-gc.ts +52 -9
- package/src/skc-runtime/tmux-owner-isolation-cli.ts +185 -0
- package/src/skc-runtime/tmux-owner-isolation.ts +2060 -0
- package/src/skc-runtime/tmux-sessions.ts +871 -68
- package/src/slash-commands/builtin-registry.ts +153 -9
- package/src/slash-commands/helpers/context-report.ts +26 -4
- package/src/task/executor.ts +12 -3
- package/src/task/index.ts +8 -0
- package/src/task/receipt.ts +7 -2
- package/src/task/types.ts +26 -0
- package/src/tools/ask-answer-registry.ts +25 -0
- package/src/tools/browser/tab-supervisor.ts +63 -6
- package/src/tools/browser.ts +8 -3
- package/src/tools/index.ts +81 -6
- package/src/tools/sqlite-reader.ts +8 -4
- package/src/tui/output-block.ts +18 -6
- package/src/utils/external-editor.ts +6 -1
|
@@ -32,11 +32,15 @@ export interface RateLimitItem<T = unknown> {
|
|
|
32
32
|
/** Priority lane. */
|
|
33
33
|
lane: RateLimitLane;
|
|
34
34
|
/**
|
|
35
|
-
* Optional coalesce key. Submitting another item with the
|
|
36
|
-
* `(sessionId, lane, coalesceKey)` replaces the queued payload with
|
|
37
|
-
* newer one instead of enqueuing a duplicate (used for live edits).
|
|
35
|
+
* Optional coalesce key. Submitting another unidentifiable item with the
|
|
36
|
+
* same `(sessionId, lane, coalesceKey)` replaces the queued payload with
|
|
37
|
+
* the newer one instead of enqueuing a duplicate (used for live edits).
|
|
38
38
|
*/
|
|
39
39
|
coalesceKey?: string;
|
|
40
|
+
/** Optional stable identifier for exact queued-item removal. Identified items never coalesce. */
|
|
41
|
+
itemId?: string;
|
|
42
|
+
/** Absolute Unix timestamp in ms. The item expires when `now >= deadlineAt`. */
|
|
43
|
+
deadlineAt?: number;
|
|
40
44
|
/** Opaque payload the caller maps to an actual Telegram send. */
|
|
41
45
|
payload: T;
|
|
42
46
|
}
|
|
@@ -56,6 +60,14 @@ interface QueuedItem<T> {
|
|
|
56
60
|
seq: number;
|
|
57
61
|
}
|
|
58
62
|
|
|
63
|
+
/** The deterministic result of draining queued work at a point in time. */
|
|
64
|
+
export interface RateLimitDrainResult<T = unknown> {
|
|
65
|
+
/** Items granted a token and ready to send. */
|
|
66
|
+
granted: RateLimitItem<T>[];
|
|
67
|
+
/** Items removed because their absolute deadline has elapsed. */
|
|
68
|
+
expired: RateLimitItem<T>[];
|
|
69
|
+
}
|
|
70
|
+
|
|
59
71
|
/**
|
|
60
72
|
* A deterministic, pull-based shared rate-limit scheduler.
|
|
61
73
|
*
|
|
@@ -100,16 +112,19 @@ export class RateLimitPool<T = unknown> {
|
|
|
100
112
|
}
|
|
101
113
|
|
|
102
114
|
/**
|
|
103
|
-
* Submit an item.
|
|
104
|
-
* the same `(sessionId, lane)
|
|
105
|
-
*
|
|
115
|
+
* Submit an item. Unidentified items with a `coalesceKey` matching a queued
|
|
116
|
+
* item in the same `(sessionId, lane)` replace its payload (latest wins)
|
|
117
|
+
* while preserving FIFO position; identified items are always appended.
|
|
106
118
|
*/
|
|
107
119
|
submit(item: RateLimitItem<T>): void {
|
|
108
120
|
const queue = this.lanes.get(item.lane);
|
|
109
121
|
if (!queue) throw new Error(`unknown rate-limit lane: ${item.lane}`);
|
|
110
|
-
if (item.coalesceKey !== undefined) {
|
|
122
|
+
if (item.itemId === undefined && item.coalesceKey !== undefined) {
|
|
111
123
|
const existing = queue.find(
|
|
112
|
-
q =>
|
|
124
|
+
q =>
|
|
125
|
+
q.item.itemId === undefined &&
|
|
126
|
+
q.item.sessionId === item.sessionId &&
|
|
127
|
+
q.item.coalesceKey === item.coalesceKey,
|
|
113
128
|
);
|
|
114
129
|
if (existing) {
|
|
115
130
|
existing.item = item;
|
|
@@ -120,12 +135,21 @@ export class RateLimitPool<T = unknown> {
|
|
|
120
135
|
}
|
|
121
136
|
|
|
122
137
|
/**
|
|
123
|
-
* Grant as many queued items as tokens allow at `nowMs`.
|
|
124
|
-
*
|
|
125
|
-
* single session monopolises a lane), consuming one token each.
|
|
138
|
+
* Grant as many queued items as tokens allow at `nowMs`. This compatibility
|
|
139
|
+
* wrapper discards items that expired during the drain.
|
|
126
140
|
*/
|
|
127
141
|
drain(nowMs: number = this.now()): RateLimitItem<T>[] {
|
|
142
|
+
return this.drainWithExpired(nowMs).granted;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Deterministically expire elapsed-deadline items, then grant as many live
|
|
147
|
+
* items as tokens allow. Expired items never consume tokens or receive a
|
|
148
|
+
* grant; both result lists preserve their deterministic queue ordering.
|
|
149
|
+
*/
|
|
150
|
+
drainWithExpired(nowMs: number = this.now()): RateLimitDrainResult<T> {
|
|
128
151
|
this.refill(nowMs);
|
|
152
|
+
const expired = this.removeWhere(item => item.deadlineAt !== undefined && item.deadlineAt <= nowMs);
|
|
129
153
|
const granted: RateLimitItem<T>[] = [];
|
|
130
154
|
while (this.tokens >= 1) {
|
|
131
155
|
const next = this.takeNext();
|
|
@@ -133,7 +157,7 @@ export class RateLimitPool<T = unknown> {
|
|
|
133
157
|
this.tokens -= 1;
|
|
134
158
|
granted.push(next);
|
|
135
159
|
}
|
|
136
|
-
return granted;
|
|
160
|
+
return { granted, expired };
|
|
137
161
|
}
|
|
138
162
|
|
|
139
163
|
/** Remove queued items matching `predicate` without consuming tokens. Returns removed items in lane/FIFO order. */
|
|
@@ -155,6 +179,16 @@ export class RateLimitPool<T = unknown> {
|
|
|
155
179
|
return removed;
|
|
156
180
|
}
|
|
157
181
|
|
|
182
|
+
/** Remove exactly one queued item by its stable id without consuming a token. */
|
|
183
|
+
removeById(itemId: string): RateLimitItem<T> | undefined {
|
|
184
|
+
for (const lane of LANE_PRIORITY) {
|
|
185
|
+
const queue = this.lanes.get(lane)!;
|
|
186
|
+
const index = queue.findIndex(queued => queued.item.itemId === itemId);
|
|
187
|
+
if (index >= 0) return queue.splice(index, 1)[0]!.item;
|
|
188
|
+
}
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
|
|
158
192
|
private refill(nowMs: number): void {
|
|
159
193
|
if (nowMs <= this.lastRefill) return;
|
|
160
194
|
const elapsedSec = (nowMs - this.lastRefill) / 1000;
|
|
@@ -16,9 +16,11 @@ import type {
|
|
|
16
16
|
DaemonHealth,
|
|
17
17
|
DaemonOperationOptions,
|
|
18
18
|
DaemonOperationResult,
|
|
19
|
+
DaemonRecovery,
|
|
19
20
|
DaemonRuntimeInfo,
|
|
20
21
|
DaemonStatus,
|
|
21
22
|
} from "../daemon/control-types";
|
|
23
|
+
import { OWNERSHIP_MISMATCH_MESSAGE, ownershipMismatchRecovery } from "../daemon/operator-contract";
|
|
22
24
|
import { resolveSkcRuntimeSpawnInfo } from "../daemon/runtime";
|
|
23
25
|
import { getNotificationConfig, isTelegramConfigured, tokenFingerprint } from "./config";
|
|
24
26
|
import {
|
|
@@ -230,8 +232,9 @@ export class TelegramDaemonController implements BuiltInDaemonController {
|
|
|
230
232
|
before: DaemonStatus | undefined,
|
|
231
233
|
after: DaemonStatus | undefined,
|
|
232
234
|
warnings: string[],
|
|
235
|
+
recovery?: DaemonRecovery,
|
|
233
236
|
): DaemonOperationResult {
|
|
234
|
-
return { kind: this.kind, action, ok, before, after, message, warnings };
|
|
237
|
+
return { kind: this.kind, action, ok, before, after, message, warnings, recovery };
|
|
235
238
|
}
|
|
236
239
|
|
|
237
240
|
async reload(opts: DaemonOperationOptions = {}): Promise<DaemonOperationResult> {
|
|
@@ -271,6 +274,17 @@ export class TelegramDaemonController implements BuiltInDaemonController {
|
|
|
271
274
|
);
|
|
272
275
|
warnings.push(...spawned.warnings);
|
|
273
276
|
const after = await this.status();
|
|
277
|
+
if (spawned.result === "blocked") {
|
|
278
|
+
return this.result(
|
|
279
|
+
action,
|
|
280
|
+
false,
|
|
281
|
+
OWNERSHIP_MISMATCH_MESSAGE,
|
|
282
|
+
before,
|
|
283
|
+
after,
|
|
284
|
+
warnings,
|
|
285
|
+
ownershipMismatchRecovery(),
|
|
286
|
+
);
|
|
287
|
+
}
|
|
274
288
|
return this.result(
|
|
275
289
|
action,
|
|
276
290
|
spawned.result === "owner_spawned",
|
|
@@ -360,9 +374,20 @@ export class TelegramDaemonController implements BuiltInDaemonController {
|
|
|
360
374
|
} else if (after.ownerId && after.ownerId === oldOwnerId) {
|
|
361
375
|
warnings.push("owner id unchanged after reload");
|
|
362
376
|
}
|
|
377
|
+
if (spawned.result === "blocked") {
|
|
378
|
+
return this.result(
|
|
379
|
+
action,
|
|
380
|
+
false,
|
|
381
|
+
OWNERSHIP_MISMATCH_MESSAGE,
|
|
382
|
+
before,
|
|
383
|
+
after,
|
|
384
|
+
warnings,
|
|
385
|
+
ownershipMismatchRecovery(),
|
|
386
|
+
);
|
|
387
|
+
}
|
|
363
388
|
return this.result(
|
|
364
389
|
action,
|
|
365
|
-
spawned.result !== "disabled"
|
|
390
|
+
spawned.result !== "disabled",
|
|
366
391
|
`reloaded telegram daemon (${spawned.result})`,
|
|
367
392
|
before,
|
|
368
393
|
after,
|