switchroom 0.15.15 → 0.15.17
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/agent-scheduler/index.js +4 -12
- package/dist/auth-broker/index.js +2 -10
- package/dist/cli/notion-write-pretool.mjs +2 -10
- package/dist/cli/switchroom.js +19 -15
- package/dist/host-control/main.js +2 -10
- package/dist/vault/approvals/kernel-server.js +3 -11
- package/dist/vault/broker/server.js +3 -11
- package/package.json +1 -1
- package/profiles/_base/cron-session.sh.hbs +15 -0
- package/telegram-plugin/dist/gateway/gateway.js +7 -15
|
@@ -10978,16 +10978,8 @@ var HttpDiffPollSchema = exports_external.object({
|
|
|
10978
10978
|
diff_jsonpath: exports_external.string().describe("JSONPath into the response; the extracted value is compared to state_key."),
|
|
10979
10979
|
state_key: exports_external.string().describe("Key under /state/agent/poll-state.json holding the last-seen value.")
|
|
10980
10980
|
});
|
|
10981
|
-
var TelegramReactionsPollSchema = exports_external.object({
|
|
10982
|
-
type: exports_external.literal("telegram-reactions"),
|
|
10983
|
-
chat_id: exports_external.union([exports_external.string().min(1), exports_external.number().int()]).describe("Chat to scan for reactions (model-free internal gateway query)."),
|
|
10984
|
-
emoji: exports_external.string().min(1).describe("Reaction emoji that marks a message for capture (e.g. \uD83D\uDC68\uD83D\uDCBB)."),
|
|
10985
|
-
lookback: exports_external.number().int().positive().max(200).default(40),
|
|
10986
|
-
state_key: exports_external.string().describe("Key under poll-state.json holding the last-processed message id.")
|
|
10987
|
-
});
|
|
10988
10981
|
var PollSpecSchema = exports_external.discriminatedUnion("type", [
|
|
10989
|
-
HttpDiffPollSchema
|
|
10990
|
-
TelegramReactionsPollSchema
|
|
10982
|
+
HttpDiffPollSchema
|
|
10991
10983
|
]);
|
|
10992
10984
|
var TelegramMessageActionSchema = exports_external.object({
|
|
10993
10985
|
type: exports_external.literal("telegram-message"),
|
|
@@ -11025,7 +11017,7 @@ var ScheduleEntrySchema = exports_external.object({
|
|
|
11025
11017
|
ctx.addIssue({
|
|
11026
11018
|
code: exports_external.ZodIssueCode.custom,
|
|
11027
11019
|
path: ["poll"],
|
|
11028
|
-
message: "kind: poll requires a `poll` spec (http-diff
|
|
11020
|
+
message: "kind: poll requires a `poll` spec (http-diff)."
|
|
11029
11021
|
});
|
|
11030
11022
|
}
|
|
11031
11023
|
if (kind !== "poll" && entry.poll) {
|
|
@@ -12432,7 +12424,7 @@ function estimateCronGapMin(expr) {
|
|
|
12432
12424
|
var DEFAULT_FREQUENT_GAP_MIN = 60;
|
|
12433
12425
|
function resolveCronAutoTier(env = process.env) {
|
|
12434
12426
|
const v = (env.SWITCHROOM_CRON_AUTO_TIER ?? "").toLowerCase();
|
|
12435
|
-
return v === "
|
|
12427
|
+
return !(v === "0" || v === "false" || v === "off");
|
|
12436
12428
|
}
|
|
12437
12429
|
function recommendCronTier(input, frequentGapMin = DEFAULT_FREQUENT_GAP_MIN) {
|
|
12438
12430
|
if (input.kind === "action") {
|
|
@@ -13315,7 +13307,7 @@ function buildCheapCronHooks(config, env, deps = {}) {
|
|
|
13315
13307
|
now
|
|
13316
13308
|
});
|
|
13317
13309
|
}
|
|
13318
|
-
return { hit: false, baseline: false, error:
|
|
13310
|
+
return { hit: false, baseline: false, error: "poll type not yet wired" };
|
|
13319
13311
|
};
|
|
13320
13312
|
const runAction2 = async (spec, ctx) => {
|
|
13321
13313
|
return runAction(spec, {
|
|
@@ -10978,16 +10978,8 @@ var HttpDiffPollSchema = exports_external.object({
|
|
|
10978
10978
|
diff_jsonpath: exports_external.string().describe("JSONPath into the response; the extracted value is compared to state_key."),
|
|
10979
10979
|
state_key: exports_external.string().describe("Key under /state/agent/poll-state.json holding the last-seen value.")
|
|
10980
10980
|
});
|
|
10981
|
-
var TelegramReactionsPollSchema = exports_external.object({
|
|
10982
|
-
type: exports_external.literal("telegram-reactions"),
|
|
10983
|
-
chat_id: exports_external.union([exports_external.string().min(1), exports_external.number().int()]).describe("Chat to scan for reactions (model-free internal gateway query)."),
|
|
10984
|
-
emoji: exports_external.string().min(1).describe("Reaction emoji that marks a message for capture (e.g. \uD83D\uDC68\uD83D\uDCBB)."),
|
|
10985
|
-
lookback: exports_external.number().int().positive().max(200).default(40),
|
|
10986
|
-
state_key: exports_external.string().describe("Key under poll-state.json holding the last-processed message id.")
|
|
10987
|
-
});
|
|
10988
10981
|
var PollSpecSchema = exports_external.discriminatedUnion("type", [
|
|
10989
|
-
HttpDiffPollSchema
|
|
10990
|
-
TelegramReactionsPollSchema
|
|
10982
|
+
HttpDiffPollSchema
|
|
10991
10983
|
]);
|
|
10992
10984
|
var TelegramMessageActionSchema = exports_external.object({
|
|
10993
10985
|
type: exports_external.literal("telegram-message"),
|
|
@@ -11025,7 +11017,7 @@ var ScheduleEntrySchema = exports_external.object({
|
|
|
11025
11017
|
ctx.addIssue({
|
|
11026
11018
|
code: exports_external.ZodIssueCode.custom,
|
|
11027
11019
|
path: ["poll"],
|
|
11028
|
-
message: "kind: poll requires a `poll` spec (http-diff
|
|
11020
|
+
message: "kind: poll requires a `poll` spec (http-diff)."
|
|
11029
11021
|
});
|
|
11030
11022
|
}
|
|
11031
11023
|
if (kind !== "poll" && entry.poll) {
|
|
@@ -11726,16 +11726,8 @@ var HttpDiffPollSchema = exports_external.object({
|
|
|
11726
11726
|
diff_jsonpath: exports_external.string().describe("JSONPath into the response; the extracted value is compared to state_key."),
|
|
11727
11727
|
state_key: exports_external.string().describe("Key under /state/agent/poll-state.json holding the last-seen value.")
|
|
11728
11728
|
});
|
|
11729
|
-
var TelegramReactionsPollSchema = exports_external.object({
|
|
11730
|
-
type: exports_external.literal("telegram-reactions"),
|
|
11731
|
-
chat_id: exports_external.union([exports_external.string().min(1), exports_external.number().int()]).describe("Chat to scan for reactions (model-free internal gateway query)."),
|
|
11732
|
-
emoji: exports_external.string().min(1).describe("Reaction emoji that marks a message for capture (e.g. \uD83D\uDC68\u200d\uD83D\uDCBB)."),
|
|
11733
|
-
lookback: exports_external.number().int().positive().max(200).default(40),
|
|
11734
|
-
state_key: exports_external.string().describe("Key under poll-state.json holding the last-processed message id.")
|
|
11735
|
-
});
|
|
11736
11729
|
var PollSpecSchema = exports_external.discriminatedUnion("type", [
|
|
11737
|
-
HttpDiffPollSchema
|
|
11738
|
-
TelegramReactionsPollSchema
|
|
11730
|
+
HttpDiffPollSchema
|
|
11739
11731
|
]);
|
|
11740
11732
|
var TelegramMessageActionSchema = exports_external.object({
|
|
11741
11733
|
type: exports_external.literal("telegram-message"),
|
|
@@ -11773,7 +11765,7 @@ var ScheduleEntrySchema = exports_external.object({
|
|
|
11773
11765
|
ctx.addIssue({
|
|
11774
11766
|
code: exports_external.ZodIssueCode.custom,
|
|
11775
11767
|
path: ["poll"],
|
|
11776
|
-
message: "kind: poll requires a `poll` spec (http-diff
|
|
11768
|
+
message: "kind: poll requires a `poll` spec (http-diff)."
|
|
11777
11769
|
});
|
|
11778
11770
|
}
|
|
11779
11771
|
if (kind !== "poll" && entry.poll) {
|
package/dist/cli/switchroom.js
CHANGED
|
@@ -13520,7 +13520,7 @@ var init_zod = __esm(() => {
|
|
|
13520
13520
|
});
|
|
13521
13521
|
|
|
13522
13522
|
// src/config/schema.ts
|
|
13523
|
-
var CodeRepoEntrySchema, AgentBindMountSchema, HttpDiffPollSchema,
|
|
13523
|
+
var CodeRepoEntrySchema, AgentBindMountSchema, HttpDiffPollSchema, PollSpecSchema, TelegramMessageActionSchema, WebhookActionSchema, ActionSpecSchema, ScheduleEntrySchema, AgentSoulSchema, AgentToolsSchema, AgentMemorySchema, HookEntrySchema, AgentHooksSchema, SubagentSchema, SessionSchema, SessionContinuitySchema, webhookDispatchRule, TelegramChannelSchema, ChannelsSchema, TIMEZONE_REGEX, ApproverIdSchema, GoogleWorkspaceTierSchema, GoogleWorkspaceConfigSchema, MicrosoftWorkspaceConfigSchema, NotionWorkspaceConfigSchema, AgentGoogleWorkspaceConfigSchema, AgentMicrosoftWorkspaceConfigSchema, AgentNotionWorkspaceConfigSchema, ReactionsSchema, ReactionDispatchSchema, ReleaseBlock, NetworkIsolationSchema, profileFields, ProfileSchema, _omitExtends, defaultsFields, AgentDefaultsSchema, DEFAULT_PROFILE = "default", AgentSchema, TelegramConfigSchema, MemoryBackendConfigSchema, VaultConfigSchema, QuotaConfigSchema, AutoReleaseCheckSchema, HostControlConfigSchema, WebServiceConfigSchema, HostdConfigSchema, CronEgressSchema, CronConfigSchema, SwitchroomConfigSchema;
|
|
13524
13524
|
var init_schema = __esm(() => {
|
|
13525
13525
|
init_zod();
|
|
13526
13526
|
CodeRepoEntrySchema = exports_external.object({
|
|
@@ -13542,16 +13542,8 @@ var init_schema = __esm(() => {
|
|
|
13542
13542
|
diff_jsonpath: exports_external.string().describe("JSONPath into the response; the extracted value is compared to state_key."),
|
|
13543
13543
|
state_key: exports_external.string().describe("Key under /state/agent/poll-state.json holding the last-seen value.")
|
|
13544
13544
|
});
|
|
13545
|
-
TelegramReactionsPollSchema = exports_external.object({
|
|
13546
|
-
type: exports_external.literal("telegram-reactions"),
|
|
13547
|
-
chat_id: exports_external.union([exports_external.string().min(1), exports_external.number().int()]).describe("Chat to scan for reactions (model-free internal gateway query)."),
|
|
13548
|
-
emoji: exports_external.string().min(1).describe("Reaction emoji that marks a message for capture (e.g. \uD83D\uDC68\u200d\uD83D\uDCBB)."),
|
|
13549
|
-
lookback: exports_external.number().int().positive().max(200).default(40),
|
|
13550
|
-
state_key: exports_external.string().describe("Key under poll-state.json holding the last-processed message id.")
|
|
13551
|
-
});
|
|
13552
13545
|
PollSpecSchema = exports_external.discriminatedUnion("type", [
|
|
13553
|
-
HttpDiffPollSchema
|
|
13554
|
-
TelegramReactionsPollSchema
|
|
13546
|
+
HttpDiffPollSchema
|
|
13555
13547
|
]);
|
|
13556
13548
|
TelegramMessageActionSchema = exports_external.object({
|
|
13557
13549
|
type: exports_external.literal("telegram-message"),
|
|
@@ -13589,7 +13581,7 @@ var init_schema = __esm(() => {
|
|
|
13589
13581
|
ctx.addIssue({
|
|
13590
13582
|
code: exports_external.ZodIssueCode.custom,
|
|
13591
13583
|
path: ["poll"],
|
|
13592
|
-
message: "kind: poll requires a `poll` spec (http-diff
|
|
13584
|
+
message: "kind: poll requires a `poll` spec (http-diff)."
|
|
13593
13585
|
});
|
|
13594
13586
|
}
|
|
13595
13587
|
if (kind !== "poll" && entry.poll) {
|
|
@@ -15551,7 +15543,7 @@ function estimateCronGapMin(expr) {
|
|
|
15551
15543
|
// src/scheduler/tier-selector.ts
|
|
15552
15544
|
function resolveCronAutoTier(env2 = process.env) {
|
|
15553
15545
|
const v = (env2.SWITCHROOM_CRON_AUTO_TIER ?? "").toLowerCase();
|
|
15554
|
-
return v === "
|
|
15546
|
+
return !(v === "0" || v === "false" || v === "off");
|
|
15555
15547
|
}
|
|
15556
15548
|
function recommendCronTier(input, frequentGapMin = DEFAULT_FREQUENT_GAP_MIN) {
|
|
15557
15549
|
if (input.kind === "action") {
|
|
@@ -50467,8 +50459,8 @@ var {
|
|
|
50467
50459
|
} = import__.default;
|
|
50468
50460
|
|
|
50469
50461
|
// src/build-info.ts
|
|
50470
|
-
var VERSION = "0.15.
|
|
50471
|
-
var COMMIT_SHA = "
|
|
50462
|
+
var VERSION = "0.15.17";
|
|
50463
|
+
var COMMIT_SHA = "a5129bd3";
|
|
50472
50464
|
|
|
50473
50465
|
// src/cli/agent.ts
|
|
50474
50466
|
init_source();
|
|
@@ -51265,7 +51257,19 @@ function createMinimalClaudeConfig(agentDir, configDirName = ".claude") {
|
|
|
51265
51257
|
}
|
|
51266
51258
|
}
|
|
51267
51259
|
function seedCronConfigDir(agentDir, serverKeys) {
|
|
51268
|
-
|
|
51260
|
+
const mainConfig = join7(agentDir, ".claude", ".claude.json");
|
|
51261
|
+
const cronDir = join7(agentDir, ".claude-cron");
|
|
51262
|
+
const cronConfig = join7(cronDir, ".claude.json");
|
|
51263
|
+
mkdirSync7(cronDir, { recursive: true });
|
|
51264
|
+
if (existsSync11(mainConfig)) {
|
|
51265
|
+
try {
|
|
51266
|
+
copyFileSync3(mainConfig, cronConfig);
|
|
51267
|
+
} catch {
|
|
51268
|
+
createMinimalClaudeConfig(agentDir, ".claude-cron");
|
|
51269
|
+
}
|
|
51270
|
+
} else {
|
|
51271
|
+
createMinimalClaudeConfig(agentDir, ".claude-cron");
|
|
51272
|
+
}
|
|
51269
51273
|
preTrustWorkspace(agentDir, ".claude-cron");
|
|
51270
51274
|
ensureMcpServersTrusted(agentDir, serverKeys, ".claude-cron");
|
|
51271
51275
|
}
|
|
@@ -13713,16 +13713,8 @@ var HttpDiffPollSchema = exports_external.object({
|
|
|
13713
13713
|
diff_jsonpath: exports_external.string().describe("JSONPath into the response; the extracted value is compared to state_key."),
|
|
13714
13714
|
state_key: exports_external.string().describe("Key under /state/agent/poll-state.json holding the last-seen value.")
|
|
13715
13715
|
});
|
|
13716
|
-
var TelegramReactionsPollSchema = exports_external.object({
|
|
13717
|
-
type: exports_external.literal("telegram-reactions"),
|
|
13718
|
-
chat_id: exports_external.union([exports_external.string().min(1), exports_external.number().int()]).describe("Chat to scan for reactions (model-free internal gateway query)."),
|
|
13719
|
-
emoji: exports_external.string().min(1).describe("Reaction emoji that marks a message for capture (e.g. \uD83D\uDC68\uD83D\uDCBB)."),
|
|
13720
|
-
lookback: exports_external.number().int().positive().max(200).default(40),
|
|
13721
|
-
state_key: exports_external.string().describe("Key under poll-state.json holding the last-processed message id.")
|
|
13722
|
-
});
|
|
13723
13716
|
var PollSpecSchema = exports_external.discriminatedUnion("type", [
|
|
13724
|
-
HttpDiffPollSchema
|
|
13725
|
-
TelegramReactionsPollSchema
|
|
13717
|
+
HttpDiffPollSchema
|
|
13726
13718
|
]);
|
|
13727
13719
|
var TelegramMessageActionSchema = exports_external.object({
|
|
13728
13720
|
type: exports_external.literal("telegram-message"),
|
|
@@ -13760,7 +13752,7 @@ var ScheduleEntrySchema = exports_external.object({
|
|
|
13760
13752
|
ctx.addIssue({
|
|
13761
13753
|
code: exports_external.ZodIssueCode.custom,
|
|
13762
13754
|
path: ["poll"],
|
|
13763
|
-
message: "kind: poll requires a `poll` spec (http-diff
|
|
13755
|
+
message: "kind: poll requires a `poll` spec (http-diff)."
|
|
13764
13756
|
});
|
|
13765
13757
|
}
|
|
13766
13758
|
if (kind !== "poll" && entry.poll) {
|
|
@@ -11299,7 +11299,7 @@ var init_dist = __esm(() => {
|
|
|
11299
11299
|
});
|
|
11300
11300
|
|
|
11301
11301
|
// src/config/schema.ts
|
|
11302
|
-
var CodeRepoEntrySchema, AgentBindMountSchema, HttpDiffPollSchema,
|
|
11302
|
+
var CodeRepoEntrySchema, AgentBindMountSchema, HttpDiffPollSchema, PollSpecSchema, TelegramMessageActionSchema, WebhookActionSchema, ActionSpecSchema, ScheduleEntrySchema, AgentSoulSchema, AgentToolsSchema, AgentMemorySchema, HookEntrySchema, AgentHooksSchema, SubagentSchema, SessionSchema, SessionContinuitySchema, webhookDispatchRule, TelegramChannelSchema, ChannelsSchema, TIMEZONE_REGEX, ApproverIdSchema, GoogleWorkspaceTierSchema, GoogleWorkspaceConfigSchema, MicrosoftWorkspaceConfigSchema, NotionWorkspaceConfigSchema, AgentGoogleWorkspaceConfigSchema, AgentMicrosoftWorkspaceConfigSchema, AgentNotionWorkspaceConfigSchema, ReactionsSchema, ReactionDispatchSchema, ReleaseBlock, NetworkIsolationSchema, profileFields, ProfileSchema, _omitExtends, defaultsFields, AgentDefaultsSchema, AgentSchema, TelegramConfigSchema, MemoryBackendConfigSchema, VaultConfigSchema, QuotaConfigSchema, AutoReleaseCheckSchema, HostControlConfigSchema, WebServiceConfigSchema, HostdConfigSchema, CronEgressSchema, CronConfigSchema, SwitchroomConfigSchema;
|
|
11303
11303
|
var init_schema = __esm(() => {
|
|
11304
11304
|
init_zod();
|
|
11305
11305
|
CodeRepoEntrySchema = exports_external.object({
|
|
@@ -11321,16 +11321,8 @@ var init_schema = __esm(() => {
|
|
|
11321
11321
|
diff_jsonpath: exports_external.string().describe("JSONPath into the response; the extracted value is compared to state_key."),
|
|
11322
11322
|
state_key: exports_external.string().describe("Key under /state/agent/poll-state.json holding the last-seen value.")
|
|
11323
11323
|
});
|
|
11324
|
-
TelegramReactionsPollSchema = exports_external.object({
|
|
11325
|
-
type: exports_external.literal("telegram-reactions"),
|
|
11326
|
-
chat_id: exports_external.union([exports_external.string().min(1), exports_external.number().int()]).describe("Chat to scan for reactions (model-free internal gateway query)."),
|
|
11327
|
-
emoji: exports_external.string().min(1).describe("Reaction emoji that marks a message for capture (e.g. \uD83D\uDC68\uD83D\uDCBB)."),
|
|
11328
|
-
lookback: exports_external.number().int().positive().max(200).default(40),
|
|
11329
|
-
state_key: exports_external.string().describe("Key under poll-state.json holding the last-processed message id.")
|
|
11330
|
-
});
|
|
11331
11324
|
PollSpecSchema = exports_external.discriminatedUnion("type", [
|
|
11332
|
-
HttpDiffPollSchema
|
|
11333
|
-
TelegramReactionsPollSchema
|
|
11325
|
+
HttpDiffPollSchema
|
|
11334
11326
|
]);
|
|
11335
11327
|
TelegramMessageActionSchema = exports_external.object({
|
|
11336
11328
|
type: exports_external.literal("telegram-message"),
|
|
@@ -11368,7 +11360,7 @@ var init_schema = __esm(() => {
|
|
|
11368
11360
|
ctx.addIssue({
|
|
11369
11361
|
code: exports_external.ZodIssueCode.custom,
|
|
11370
11362
|
path: ["poll"],
|
|
11371
|
-
message: "kind: poll requires a `poll` spec (http-diff
|
|
11363
|
+
message: "kind: poll requires a `poll` spec (http-diff)."
|
|
11372
11364
|
});
|
|
11373
11365
|
}
|
|
11374
11366
|
if (kind !== "poll" && entry.poll) {
|
|
@@ -11299,7 +11299,7 @@ var init_zod = __esm(() => {
|
|
|
11299
11299
|
});
|
|
11300
11300
|
|
|
11301
11301
|
// src/config/schema.ts
|
|
11302
|
-
var CodeRepoEntrySchema, AgentBindMountSchema, HttpDiffPollSchema,
|
|
11302
|
+
var CodeRepoEntrySchema, AgentBindMountSchema, HttpDiffPollSchema, PollSpecSchema, TelegramMessageActionSchema, WebhookActionSchema, ActionSpecSchema, ScheduleEntrySchema, AgentSoulSchema, AgentToolsSchema, AgentMemorySchema, HookEntrySchema, AgentHooksSchema, SubagentSchema, SessionSchema, SessionContinuitySchema, webhookDispatchRule, TelegramChannelSchema, ChannelsSchema, TIMEZONE_REGEX, ApproverIdSchema, GoogleWorkspaceTierSchema, GoogleWorkspaceConfigSchema, MicrosoftWorkspaceConfigSchema, NotionWorkspaceConfigSchema, AgentGoogleWorkspaceConfigSchema, AgentMicrosoftWorkspaceConfigSchema, AgentNotionWorkspaceConfigSchema, ReactionsSchema, ReactionDispatchSchema, ReleaseBlock, NetworkIsolationSchema, profileFields, ProfileSchema, _omitExtends, defaultsFields, AgentDefaultsSchema, AgentSchema, TelegramConfigSchema, MemoryBackendConfigSchema, VaultConfigSchema, QuotaConfigSchema, AutoReleaseCheckSchema, HostControlConfigSchema, WebServiceConfigSchema, HostdConfigSchema, CronEgressSchema, CronConfigSchema, SwitchroomConfigSchema;
|
|
11303
11303
|
var init_schema = __esm(() => {
|
|
11304
11304
|
init_zod();
|
|
11305
11305
|
CodeRepoEntrySchema = exports_external.object({
|
|
@@ -11321,16 +11321,8 @@ var init_schema = __esm(() => {
|
|
|
11321
11321
|
diff_jsonpath: exports_external.string().describe("JSONPath into the response; the extracted value is compared to state_key."),
|
|
11322
11322
|
state_key: exports_external.string().describe("Key under /state/agent/poll-state.json holding the last-seen value.")
|
|
11323
11323
|
});
|
|
11324
|
-
TelegramReactionsPollSchema = exports_external.object({
|
|
11325
|
-
type: exports_external.literal("telegram-reactions"),
|
|
11326
|
-
chat_id: exports_external.union([exports_external.string().min(1), exports_external.number().int()]).describe("Chat to scan for reactions (model-free internal gateway query)."),
|
|
11327
|
-
emoji: exports_external.string().min(1).describe("Reaction emoji that marks a message for capture (e.g. \uD83D\uDC68\uD83D\uDCBB)."),
|
|
11328
|
-
lookback: exports_external.number().int().positive().max(200).default(40),
|
|
11329
|
-
state_key: exports_external.string().describe("Key under poll-state.json holding the last-processed message id.")
|
|
11330
|
-
});
|
|
11331
11324
|
PollSpecSchema = exports_external.discriminatedUnion("type", [
|
|
11332
|
-
HttpDiffPollSchema
|
|
11333
|
-
TelegramReactionsPollSchema
|
|
11325
|
+
HttpDiffPollSchema
|
|
11334
11326
|
]);
|
|
11335
11327
|
TelegramMessageActionSchema = exports_external.object({
|
|
11336
11328
|
type: exports_external.literal("telegram-message"),
|
|
@@ -11368,7 +11360,7 @@ var init_schema = __esm(() => {
|
|
|
11368
11360
|
ctx.addIssue({
|
|
11369
11361
|
code: exports_external.ZodIssueCode.custom,
|
|
11370
11362
|
path: ["poll"],
|
|
11371
|
-
message: "kind: poll requires a `poll` spec (http-diff
|
|
11363
|
+
message: "kind: poll requires a `poll` spec (http-diff)."
|
|
11372
11364
|
});
|
|
11373
11365
|
}
|
|
11374
11366
|
if (kind !== "poll" && entry.poll) {
|
package/package.json
CHANGED
|
@@ -105,6 +105,21 @@ tmux -L "$CRON_SOCKET" \
|
|
|
105
105
|
--append-system-prompt "$CRON_APPEND_PROMPT"{{#if dangerousMode}} \
|
|
106
106
|
--dangerously-skip-permissions{{/if}}
|
|
107
107
|
|
|
108
|
+
# Dismiss the cron session's per-boot first-run prompt. Even with the seeded
|
|
109
|
+
# .claude-cron/.claude.json (copied from the fully-onboarded main config),
|
|
110
|
+
# `--dangerously-load-development-channels` re-prompts EVERY launch ("I am using
|
|
111
|
+
# this for local development") — that ack is not persisted to config. The MAIN
|
|
112
|
+
# autoaccept-poll watches only `switchroom-<name>`; this one watches
|
|
113
|
+
# `switchroom-${CRON_NAME}` (the cron socket) and dispatches the same prompt
|
|
114
|
+
# rule. Boot-phase only (WEDGE_WATCHDOG off → dismiss then exit); re-forked on
|
|
115
|
+
# every cron-session.sh (re)spawn so a later respawn's prompt is caught too.
|
|
116
|
+
# Without this the cron `claude` wedges and the <name>-cron bridge never
|
|
117
|
+
# registers (every Tier-1 fire then falls back to main).
|
|
118
|
+
if [ -f /opt/switchroom/autoaccept-poll.js ] && command -v bun >/dev/null 2>&1; then
|
|
119
|
+
SWITCHROOM_WEDGE_WATCHDOG=0 bun /opt/switchroom/autoaccept-poll.js "$CRON_NAME" \
|
|
120
|
+
>> /var/log/switchroom/cron-session.log 2>&1 &
|
|
121
|
+
fi
|
|
122
|
+
|
|
108
123
|
# `new-session -d` returns immediately (tmux daemonizes the session), so block
|
|
109
124
|
# here while the session lives — this keeps cron-session.sh as the supervisor's
|
|
110
125
|
# long-running child. When the cron claude exits (crash / kill), the session
|
|
@@ -23802,7 +23802,7 @@ var init_dist = __esm(() => {
|
|
|
23802
23802
|
});
|
|
23803
23803
|
|
|
23804
23804
|
// ../src/config/schema.ts
|
|
23805
|
-
var CodeRepoEntrySchema, AgentBindMountSchema, HttpDiffPollSchema,
|
|
23805
|
+
var CodeRepoEntrySchema, AgentBindMountSchema, HttpDiffPollSchema, PollSpecSchema, TelegramMessageActionSchema, WebhookActionSchema, ActionSpecSchema, ScheduleEntrySchema, AgentSoulSchema, AgentToolsSchema, AgentMemorySchema, HookEntrySchema, AgentHooksSchema, SubagentSchema, SessionSchema, SessionContinuitySchema, webhookDispatchRule, TelegramChannelSchema, ChannelsSchema, TIMEZONE_REGEX, ApproverIdSchema, GoogleWorkspaceTierSchema, GoogleWorkspaceConfigSchema, MicrosoftWorkspaceConfigSchema, NotionWorkspaceConfigSchema, AgentGoogleWorkspaceConfigSchema, AgentMicrosoftWorkspaceConfigSchema, AgentNotionWorkspaceConfigSchema, ReactionsSchema, ReactionDispatchSchema, ReleaseBlock, NetworkIsolationSchema, profileFields, ProfileSchema, _omitExtends, defaultsFields, AgentDefaultsSchema, AgentSchema, TelegramConfigSchema, MemoryBackendConfigSchema, VaultConfigSchema, QuotaConfigSchema, AutoReleaseCheckSchema, HostControlConfigSchema, WebServiceConfigSchema, HostdConfigSchema, CronEgressSchema, CronConfigSchema, SwitchroomConfigSchema;
|
|
23806
23806
|
var init_schema = __esm(() => {
|
|
23807
23807
|
init_zod();
|
|
23808
23808
|
CodeRepoEntrySchema = exports_external.object({
|
|
@@ -23824,16 +23824,8 @@ var init_schema = __esm(() => {
|
|
|
23824
23824
|
diff_jsonpath: exports_external.string().describe("JSONPath into the response; the extracted value is compared to state_key."),
|
|
23825
23825
|
state_key: exports_external.string().describe("Key under /state/agent/poll-state.json holding the last-seen value.")
|
|
23826
23826
|
});
|
|
23827
|
-
TelegramReactionsPollSchema = exports_external.object({
|
|
23828
|
-
type: exports_external.literal("telegram-reactions"),
|
|
23829
|
-
chat_id: exports_external.union([exports_external.string().min(1), exports_external.number().int()]).describe("Chat to scan for reactions (model-free internal gateway query)."),
|
|
23830
|
-
emoji: exports_external.string().min(1).describe("Reaction emoji that marks a message for capture (e.g. \uD83D\uDC68\u200d\uD83D\uDCBB)."),
|
|
23831
|
-
lookback: exports_external.number().int().positive().max(200).default(40),
|
|
23832
|
-
state_key: exports_external.string().describe("Key under poll-state.json holding the last-processed message id.")
|
|
23833
|
-
});
|
|
23834
23827
|
PollSpecSchema = exports_external.discriminatedUnion("type", [
|
|
23835
|
-
HttpDiffPollSchema
|
|
23836
|
-
TelegramReactionsPollSchema
|
|
23828
|
+
HttpDiffPollSchema
|
|
23837
23829
|
]);
|
|
23838
23830
|
TelegramMessageActionSchema = exports_external.object({
|
|
23839
23831
|
type: exports_external.literal("telegram-message"),
|
|
@@ -23871,7 +23863,7 @@ var init_schema = __esm(() => {
|
|
|
23871
23863
|
ctx.addIssue({
|
|
23872
23864
|
code: exports_external.ZodIssueCode.custom,
|
|
23873
23865
|
path: ["poll"],
|
|
23874
|
-
message: "kind: poll requires a `poll` spec (http-diff
|
|
23866
|
+
message: "kind: poll requires a `poll` spec (http-diff)."
|
|
23875
23867
|
});
|
|
23876
23868
|
}
|
|
23877
23869
|
if (kind !== "poll" && entry.poll) {
|
|
@@ -54166,10 +54158,10 @@ function readTurnActiveMarkerAgeMs(stateDir, now) {
|
|
|
54166
54158
|
}
|
|
54167
54159
|
|
|
54168
54160
|
// ../src/build-info.ts
|
|
54169
|
-
var VERSION = "0.15.
|
|
54170
|
-
var COMMIT_SHA = "
|
|
54171
|
-
var COMMIT_DATE = "2026-06-
|
|
54172
|
-
var LATEST_PR =
|
|
54161
|
+
var VERSION = "0.15.17";
|
|
54162
|
+
var COMMIT_SHA = "a5129bd3";
|
|
54163
|
+
var COMMIT_DATE = "2026-06-13T22:07:37Z";
|
|
54164
|
+
var LATEST_PR = 2332;
|
|
54173
54165
|
var COMMITS_AHEAD_OF_TAG = 0;
|
|
54174
54166
|
|
|
54175
54167
|
// gateway/boot-version.ts
|