charness 3.3.2 → 3.4.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/CHANGELOG.md +612 -0
- package/DEVELOPMENT.md +76 -0
- package/README.md +5 -2
- package/SETUP.md +65 -19
- package/dist/adapters/openCodeAdapter.d.ts +11 -0
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/openCodeAdapter.js +24 -9
- package/dist/adapters/openCodeAdapter.js.map +1 -1
- package/dist/agentLogin/agentLogin.d.ts +1 -0
- package/dist/agentLogin/agentLogin.d.ts.map +1 -1
- package/dist/agentLogin/agentLogin.js +5 -0
- package/dist/agentLogin/agentLogin.js.map +1 -1
- package/dist/bot.d.ts +0 -3
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +311 -159
- package/dist/bot.js.map +1 -1
- package/dist/changelogEntries.d.ts +25 -0
- package/dist/changelogEntries.d.ts.map +1 -0
- package/dist/changelogEntries.js +66 -0
- package/dist/changelogEntries.js.map +1 -0
- package/dist/cli/bot.d.ts +6 -2
- package/dist/cli/bot.d.ts.map +1 -1
- package/dist/cli/bot.js +34 -2
- package/dist/cli/bot.js.map +1 -1
- package/dist/cli/hot.d.ts +7 -0
- package/dist/cli/hot.d.ts.map +1 -1
- package/dist/cli/hot.js +53 -3
- package/dist/cli/hot.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/connectors/telegram/bindPicker.d.ts +64 -0
- package/dist/connectors/telegram/bindPicker.d.ts.map +1 -0
- package/dist/connectors/telegram/bindPicker.js +97 -0
- package/dist/connectors/telegram/bindPicker.js.map +1 -0
- package/dist/connectors/telegram/commands/selfUpdate.d.ts +16 -0
- package/dist/connectors/telegram/commands/selfUpdate.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/selfUpdate.js +210 -0
- package/dist/connectors/telegram/commands/selfUpdate.js.map +1 -0
- package/dist/connectors/telegram/commands/stt.d.ts +1 -0
- package/dist/connectors/telegram/commands/stt.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/stt.js +5 -0
- package/dist/connectors/telegram/commands/stt.js.map +1 -1
- package/dist/connectors/telegram/commands/topicCommand.d.ts +75 -0
- package/dist/connectors/telegram/commands/topicCommand.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/topicCommand.js +391 -0
- package/dist/connectors/telegram/commands/topicCommand.js.map +1 -0
- package/dist/i18n/de.d.ts.map +1 -1
- package/dist/i18n/de.js +108 -2
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +108 -2
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +108 -2
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +108 -2
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +108 -2
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +108 -2
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +108 -2
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +108 -2
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +108 -2
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +108 -2
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +108 -2
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +108 -2
- package/dist/i18n/zh.js.map +1 -1
- package/dist/instanceSettings.d.ts +12 -1
- package/dist/instanceSettings.d.ts.map +1 -1
- package/dist/instanceSettings.js +40 -4
- package/dist/instanceSettings.js.map +1 -1
- package/dist/selfUpdate/bootRollback.d.ts +22 -0
- package/dist/selfUpdate/bootRollback.d.ts.map +1 -0
- package/dist/selfUpdate/bootRollback.js +79 -0
- package/dist/selfUpdate/bootRollback.js.map +1 -0
- package/dist/selfUpdate/commandRunner.d.ts +21 -0
- package/dist/selfUpdate/commandRunner.d.ts.map +1 -0
- package/dist/selfUpdate/commandRunner.js +32 -0
- package/dist/selfUpdate/commandRunner.js.map +1 -0
- package/dist/selfUpdate/constants.d.ts +26 -0
- package/dist/selfUpdate/constants.d.ts.map +1 -0
- package/dist/selfUpdate/constants.js +31 -0
- package/dist/selfUpdate/constants.js.map +1 -0
- package/dist/selfUpdate/gitSource.d.ts +58 -0
- package/dist/selfUpdate/gitSource.d.ts.map +1 -0
- package/dist/selfUpdate/gitSource.js +183 -0
- package/dist/selfUpdate/gitSource.js.map +1 -0
- package/dist/selfUpdate/hostLock.d.ts +16 -0
- package/dist/selfUpdate/hostLock.d.ts.map +1 -0
- package/dist/selfUpdate/hostLock.js +101 -0
- package/dist/selfUpdate/hostLock.js.map +1 -0
- package/dist/selfUpdate/hotSupervisor.d.ts +47 -0
- package/dist/selfUpdate/hotSupervisor.d.ts.map +1 -0
- package/dist/selfUpdate/hotSupervisor.js +125 -0
- package/dist/selfUpdate/hotSupervisor.js.map +1 -0
- package/dist/selfUpdate/installKind.d.ts +45 -0
- package/dist/selfUpdate/installKind.d.ts.map +1 -0
- package/dist/selfUpdate/installKind.js +99 -0
- package/dist/selfUpdate/installKind.js.map +1 -0
- package/dist/selfUpdate/launchEnvironment.d.ts +3 -0
- package/dist/selfUpdate/launchEnvironment.d.ts.map +1 -0
- package/dist/selfUpdate/launchEnvironment.js +16 -0
- package/dist/selfUpdate/launchEnvironment.js.map +1 -0
- package/dist/selfUpdate/npmSource.d.ts +34 -0
- package/dist/selfUpdate/npmSource.d.ts.map +1 -0
- package/dist/selfUpdate/npmSource.js +107 -0
- package/dist/selfUpdate/npmSource.js.map +1 -0
- package/dist/selfUpdate/releaseNotes.d.ts +33 -0
- package/dist/selfUpdate/releaseNotes.d.ts.map +1 -0
- package/dist/selfUpdate/releaseNotes.js +115 -0
- package/dist/selfUpdate/releaseNotes.js.map +1 -0
- package/dist/selfUpdate/restart.d.ts +33 -0
- package/dist/selfUpdate/restart.d.ts.map +1 -0
- package/dist/selfUpdate/restart.js +94 -0
- package/dist/selfUpdate/restart.js.map +1 -0
- package/dist/selfUpdate/selfCheck.d.ts +20 -0
- package/dist/selfUpdate/selfCheck.d.ts.map +1 -0
- package/dist/selfUpdate/selfCheck.js +126 -0
- package/dist/selfUpdate/selfCheck.js.map +1 -0
- package/dist/selfUpdate/semver.d.ts +24 -0
- package/dist/selfUpdate/semver.d.ts.map +1 -0
- package/dist/selfUpdate/semver.js +165 -0
- package/dist/selfUpdate/semver.js.map +1 -0
- package/dist/selfUpdate/types.d.ts +51 -0
- package/dist/selfUpdate/types.d.ts.map +1 -0
- package/dist/selfUpdate/types.js +3 -0
- package/dist/selfUpdate/types.js.map +1 -0
- package/dist/selfUpdate/updateEngine.d.ts +110 -0
- package/dist/selfUpdate/updateEngine.d.ts.map +1 -0
- package/dist/selfUpdate/updateEngine.js +727 -0
- package/dist/selfUpdate/updateEngine.js.map +1 -0
- package/dist/selfUpdate/updateMessages.d.ts +84 -0
- package/dist/selfUpdate/updateMessages.d.ts.map +1 -0
- package/dist/selfUpdate/updateMessages.js +115 -0
- package/dist/selfUpdate/updateMessages.js.map +1 -0
- package/dist/selfUpdate/updateModes.d.ts +17 -0
- package/dist/selfUpdate/updateModes.d.ts.map +1 -0
- package/dist/selfUpdate/updateModes.js +14 -0
- package/dist/selfUpdate/updateModes.js.map +1 -0
- package/dist/selfUpdate/updatePending.d.ts +76 -0
- package/dist/selfUpdate/updatePending.d.ts.map +1 -0
- package/dist/selfUpdate/updatePending.js +131 -0
- package/dist/selfUpdate/updatePending.js.map +1 -0
- package/dist/selfUpdate/updatePolicy.d.ts +115 -0
- package/dist/selfUpdate/updatePolicy.d.ts.map +1 -0
- package/dist/selfUpdate/updatePolicy.js +83 -0
- package/dist/selfUpdate/updatePolicy.js.map +1 -0
- package/dist/selfUpdate/updateRuntime.d.ts +22 -0
- package/dist/selfUpdate/updateRuntime.d.ts.map +1 -0
- package/dist/selfUpdate/updateRuntime.js +148 -0
- package/dist/selfUpdate/updateRuntime.js.map +1 -0
- package/dist/startupPromptBuffer.d.ts +2 -0
- package/dist/startupPromptBuffer.d.ts.map +1 -1
- package/dist/startupPromptBuffer.js +4 -0
- package/dist/startupPromptBuffer.js.map +1 -1
- package/dist/state.d.ts +12 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +18 -0
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/updateScreenPlan.d.ts +38 -0
- package/dist/utils/updateScreenPlan.d.ts.map +1 -0
- package/dist/utils/updateScreenPlan.js +143 -0
- package/dist/utils/updateScreenPlan.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One entry of a CHANGELOG section: a top-level paragraph or a top-level list item.
|
|
3
|
+
*
|
|
4
|
+
* `subsection` is the `###` heading in force (`Upgrading`, `Added`, …), `null` before the first one.
|
|
5
|
+
* `text` is the entry's lines joined by a space, list marker removed; `leadLine` is its first line as
|
|
6
|
+
* written, for quoting it in a message, and `leadLineIndex` its 0-based position in the text it came from.
|
|
7
|
+
*/
|
|
8
|
+
export type ChangelogEntry = {
|
|
9
|
+
subsection: string | null;
|
|
10
|
+
text: string;
|
|
11
|
+
leadLine: string;
|
|
12
|
+
leadLineIndex: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @description Splits the body of a CHANGELOG section into its entries.
|
|
16
|
+
*
|
|
17
|
+
* A top-level line (no indent) starts an entry when it opens a list item, or a paragraph after a blank
|
|
18
|
+
* line / heading; an indented line and a wrapped paragraph line continue the entry above. A fenced block at
|
|
19
|
+
* column 0 holds no entry. Shared by the release gate (bold-lead check) and the what's-new summary, so both
|
|
20
|
+
* read the same text the same way.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getChangelogEntries(sectionText: string): ChangelogEntry[];
|
|
23
|
+
/** @description Whether an entry's text opens with a bold first sentence (`**…**`). */
|
|
24
|
+
export declare function checkHasBoldLead(entryText: string): boolean;
|
|
25
|
+
//# sourceMappingURL=changelogEntries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelogEntries.d.ts","sourceRoot":"","sources":["../src/changelogEntries.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAQF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CA+CzE;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getChangelogEntries = getChangelogEntries;
|
|
4
|
+
exports.checkHasBoldLead = checkHasBoldLead;
|
|
5
|
+
const headingPattern = /^(#{1,6})\s+(.*)$/;
|
|
6
|
+
const subsectionHeadingLevel = 3;
|
|
7
|
+
const listMarkerPattern = /^(?:[-*+]|\d+[.)])\s+/;
|
|
8
|
+
const fencePattern = /^(?:```|~~~)/;
|
|
9
|
+
const boldLeadPattern = /^\*\*(?=\S)[\s\S]*?\S\*\*/;
|
|
10
|
+
/**
|
|
11
|
+
* @description Splits the body of a CHANGELOG section into its entries.
|
|
12
|
+
*
|
|
13
|
+
* A top-level line (no indent) starts an entry when it opens a list item, or a paragraph after a blank
|
|
14
|
+
* line / heading; an indented line and a wrapped paragraph line continue the entry above. A fenced block at
|
|
15
|
+
* column 0 holds no entry. Shared by the release gate (bold-lead check) and the what's-new summary, so both
|
|
16
|
+
* read the same text the same way.
|
|
17
|
+
*/
|
|
18
|
+
function getChangelogEntries(sectionText) {
|
|
19
|
+
const entries = [];
|
|
20
|
+
let subsection = null;
|
|
21
|
+
let current = null;
|
|
22
|
+
let isInFence = false;
|
|
23
|
+
for (const [lineIndex, line] of sectionText.split('\n').entries()) {
|
|
24
|
+
if (fencePattern.test(line)) {
|
|
25
|
+
isInFence = !isInFence;
|
|
26
|
+
current = null;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (isInFence)
|
|
30
|
+
continue;
|
|
31
|
+
if (line.trim() === '') {
|
|
32
|
+
current = null;
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const heading = headingPattern.exec(line);
|
|
36
|
+
if (heading) {
|
|
37
|
+
// A `###` names the subsection; a `##` (the next version's section) ends it.
|
|
38
|
+
subsection = heading[1].length >= subsectionHeadingLevel ? heading[2].trim() : null;
|
|
39
|
+
current = null;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (/^\s/.test(line)) {
|
|
43
|
+
if (current)
|
|
44
|
+
current.text = `${current.text} ${line.trim()}`;
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const marker = listMarkerPattern.exec(line);
|
|
48
|
+
if (marker) {
|
|
49
|
+
current = { subsection, text: line.slice(marker[0].length).trim(), leadLine: line, leadLineIndex: lineIndex };
|
|
50
|
+
entries.push(current);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (current) {
|
|
54
|
+
current.text = `${current.text} ${line.trim()}`;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
current = { subsection, text: line.trim(), leadLine: line, leadLineIndex: lineIndex };
|
|
58
|
+
entries.push(current);
|
|
59
|
+
}
|
|
60
|
+
return entries;
|
|
61
|
+
}
|
|
62
|
+
/** @description Whether an entry's text opens with a bold first sentence (`**…**`). */
|
|
63
|
+
function checkHasBoldLead(entryText) {
|
|
64
|
+
return boldLeadPattern.test(entryText);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=changelogEntries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelogEntries.js","sourceRoot":"","sources":["../src/changelogEntries.ts"],"names":[],"mappings":";;AA4BA,kDA+CC;AAGD,4CAEC;AAlED,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAC3C,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAClD,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAEpD;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAClE,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,SAAS,GAAG,CAAC,SAAS,CAAC;YACvB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,SAAS;YAAE,SAAS;QAExB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,6EAA6E;YAC7E,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,OAAO;gBAAE,OAAO,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7D,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;YAC9G,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QACD,OAAO,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uFAAuF;AACvF,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/cli/bot.d.ts
CHANGED
|
@@ -15,10 +15,14 @@
|
|
|
15
15
|
* 3. Validate `WORK_ROOT` resolves to an existing directory — fail fast
|
|
16
16
|
* with a clear message if not.
|
|
17
17
|
* 4. Acquire the single-instance lock and wire cleanup handlers.
|
|
18
|
-
* 5.
|
|
18
|
+
* 5. Count this boot against a pending update (`update-pending.json`): a new version that has failed to start twice
|
|
19
|
+
* is rolled back here — before the bot module can break the boot — and the process restarts onto the old one.
|
|
20
|
+
* After the lock, never before: a start that loses the lock is not a boot, and counting it would let two stray
|
|
21
|
+
* starts roll a healthy running version back from underneath it.
|
|
22
|
+
* 6. Dynamically import `../bot` (which reads env at module scope) and
|
|
19
23
|
* call `startBot()`.
|
|
20
24
|
*
|
|
21
|
-
* The dynamic import in step
|
|
25
|
+
* The dynamic import in step 6 is deliberate: a static `import` at the top
|
|
22
26
|
* of this file would resolve `process.env` at module-load time, before
|
|
23
27
|
* the env load ran, and we'd see undefined tokens. `await import(...)`
|
|
24
28
|
* defers binding until after env is populated.
|
package/dist/cli/bot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../src/cli/bot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../src/cli/bot.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDnF"}
|
package/dist/cli/bot.js
CHANGED
|
@@ -35,12 +35,17 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.runBot = runBot;
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
38
39
|
const connectorGuards_1 = require("./connectorGuards");
|
|
39
40
|
const instanceLock_1 = require("../instanceLock");
|
|
40
41
|
const state_1 = require("../state");
|
|
41
42
|
const consoleFileTap_1 = require("../utils/consoleFileTap");
|
|
42
43
|
const legacyNames_1 = require("../legacyNames");
|
|
43
44
|
const legacyMigration_1 = require("../legacyMigration");
|
|
45
|
+
const bootRollback_1 = require("../selfUpdate/bootRollback");
|
|
46
|
+
const launchEnvironment_1 = require("../selfUpdate/launchEnvironment");
|
|
47
|
+
const restart_1 = require("../selfUpdate/restart");
|
|
48
|
+
const updatePending_1 = require("../selfUpdate/updatePending");
|
|
44
49
|
/**
|
|
45
50
|
* @description Shared bot startup used by the public no-arg CLI and the
|
|
46
51
|
* internal hot-worker entry.
|
|
@@ -58,10 +63,14 @@ const legacyMigration_1 = require("../legacyMigration");
|
|
|
58
63
|
* 3. Validate `WORK_ROOT` resolves to an existing directory — fail fast
|
|
59
64
|
* with a clear message if not.
|
|
60
65
|
* 4. Acquire the single-instance lock and wire cleanup handlers.
|
|
61
|
-
* 5.
|
|
66
|
+
* 5. Count this boot against a pending update (`update-pending.json`): a new version that has failed to start twice
|
|
67
|
+
* is rolled back here — before the bot module can break the boot — and the process restarts onto the old one.
|
|
68
|
+
* After the lock, never before: a start that loses the lock is not a boot, and counting it would let two stray
|
|
69
|
+
* starts roll a healthy running version back from underneath it.
|
|
70
|
+
* 6. Dynamically import `../bot` (which reads env at module scope) and
|
|
62
71
|
* call `startBot()`.
|
|
63
72
|
*
|
|
64
|
-
* The dynamic import in step
|
|
73
|
+
* The dynamic import in step 6 is deliberate: a static `import` at the top
|
|
65
74
|
* of this file would resolve `process.env` at module-load time, before
|
|
66
75
|
* the env load ran, and we'd see undefined tokens. `await import(...)`
|
|
67
76
|
* defers binding until after env is populated.
|
|
@@ -92,6 +101,7 @@ async function runBot(options = {}) {
|
|
|
92
101
|
}
|
|
93
102
|
await (0, instanceLock_1.acquireLock)();
|
|
94
103
|
(0, instanceLock_1.installLockCleanupHandlers)();
|
|
104
|
+
await handleUpdateRollbackAtBoot(options.isHotWorker === true);
|
|
95
105
|
// The pre-rename config / data dirs and keys move to the Charness names here: a COLD start, under the
|
|
96
106
|
// lock, before the bot module (and its state) loads. A hot worker's reload never migrates. What it
|
|
97
107
|
// could not move is announced next, once — after the tee, so the lines reach the bot log.
|
|
@@ -103,4 +113,26 @@ async function runBot(options = {}) {
|
|
|
103
113
|
const { startBot } = await Promise.resolve().then(() => __importStar(require('../bot')));
|
|
104
114
|
await startBot();
|
|
105
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* @description The boot-time half of a safe update: a version that cannot start is put back by the process that failed to
|
|
118
|
+
* start it, holding the instance lock. A plain process then releases the lock and restarts onto the restored install
|
|
119
|
+
* (`process.execve` keeps the pid, and the new image takes the lock afresh); a hot worker exits cleanly instead (the exit
|
|
120
|
+
* handler releases the lock), and its watcher rebuilds the reset checkout and starts a new worker.
|
|
121
|
+
*/
|
|
122
|
+
async function handleUpdateRollbackAtBoot(isHotWorker) {
|
|
123
|
+
const packageRoot = path.resolve(__dirname, '..', '..');
|
|
124
|
+
const outcome = await (0, updatePending_1.runBootUpdateCheck)({
|
|
125
|
+
dataDir: (0, state_1.resolveDataDir)(),
|
|
126
|
+
rollback: (0, bootRollback_1.createBootRollback)({ packageRoot, execPath: process.execPath, platform: process.platform, hasExecve: typeof process.execve === 'function', isHotWorker }),
|
|
127
|
+
log: (line) => console.error(line),
|
|
128
|
+
});
|
|
129
|
+
if (outcome !== 'rolledBack')
|
|
130
|
+
return;
|
|
131
|
+
if (isHotWorker) {
|
|
132
|
+
process.exit(0);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
(0, instanceLock_1.releaseLock)();
|
|
136
|
+
(0, restart_1.reexecProcess)((0, restart_1.getReexecTarget)({ execPath: process.execPath, packageRoot, argv: process.argv }), (0, launchEnvironment_1.getLaunchEnvironment)(), (0, restart_1.createDefaultReexecDeps)());
|
|
137
|
+
}
|
|
106
138
|
//# sourceMappingURL=bot.js.map
|
package/dist/cli/bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/cli/bot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/cli/bot.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/hot.d.ts
CHANGED
|
@@ -27,6 +27,13 @@ type HotChildName = 'tsc' | 'nodemon';
|
|
|
27
27
|
* resolve the project root from the bin's own realpath. `yarn hot` in the
|
|
28
28
|
* repo is the in-project equivalent.
|
|
29
29
|
*
|
|
30
|
+
* **Re-executing itself.** A worker reload is all an update needs — until a file the SUPERVISOR itself loaded changed.
|
|
31
|
+
* Right at its start the supervisor writes `DATA_DIR/hot-supervisor.json` (its pid, start token and the hash of every
|
|
32
|
+
* `dist/` module it loaded); a worker that finds one of those files changed signals it with `SIGUSR2` at an idle point,
|
|
33
|
+
* and the supervisor stops `tsc -w` and nodemon, leaves the OpenCode server and the speech sidecar alone, and replaces
|
|
34
|
+
* itself with `process.execve` — the same pid, so a Docker entrypoint `wait`ing on it, `charness-restart-bot` and systemd
|
|
35
|
+
* see nothing. The new image gets the environment this one was launched with, not what it loaded since.
|
|
36
|
+
*
|
|
30
37
|
* The supervisor is also the OWNER of the local speech engine's sidecar: it exports its pid and start
|
|
31
38
|
* token to the worker (`buildHotWorkerEnv`), the sidecar dies with it (its own watchdog covers a SIGKILL), and
|
|
32
39
|
* the supervisor's shutdown stops the recorded one. A reload of the worker leaves it running for the next
|
package/dist/cli/hot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hot.d.ts","sourceRoot":"","sources":["../../src/cli/hot.ts"],"names":[],"mappings":"AAgBA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"hot.d.ts","sourceRoot":"","sources":["../../src/cli/hot.ts"],"names":[],"mappings":"AAgBA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAMhC,UAAU,eAAe;IACvB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,KAAK,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;AAMtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAyN5C;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,YAAY,EACvB,aAAa,EAAE,MAAM,CAAC,OAAO,GAC5B,MAAM,CAAC,OAAO,CAEhB;AAED,yEAAyE;AACzE,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEzE;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,OAAO,CAAC,QAAQ,GAAG,OAAO,CAElF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,GAAE,eAKL,GACA,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,UAAU,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,eAAe,GACzB,MAAM,CAAC,UAAU,CAWnB"}
|
package/dist/cli/hot.js
CHANGED
|
@@ -49,6 +49,9 @@ const installManager_1 = require("../installManager");
|
|
|
49
49
|
const legacyNames_1 = require("../legacyNames");
|
|
50
50
|
const sttSidecarOwner_1 = require("../stt/sttSidecarOwner");
|
|
51
51
|
const legacyMigration_1 = require("../legacyMigration");
|
|
52
|
+
const launchEnvironment_1 = require("../selfUpdate/launchEnvironment");
|
|
53
|
+
const restart_1 = require("../selfUpdate/restart");
|
|
54
|
+
const hotSupervisor_1 = require("../selfUpdate/hotSupervisor");
|
|
52
55
|
const tscWatchCompleteMarker = 'Watching for file changes.';
|
|
53
56
|
const tscWatchReadyMarker = `Found 0 errors. ${tscWatchCompleteMarker}`;
|
|
54
57
|
const tscWatchTailLength = tscWatchReadyMarker.length - 1;
|
|
@@ -73,6 +76,13 @@ const tscWatchTailLength = tscWatchReadyMarker.length - 1;
|
|
|
73
76
|
* resolve the project root from the bin's own realpath. `yarn hot` in the
|
|
74
77
|
* repo is the in-project equivalent.
|
|
75
78
|
*
|
|
79
|
+
* **Re-executing itself.** A worker reload is all an update needs — until a file the SUPERVISOR itself loaded changed.
|
|
80
|
+
* Right at its start the supervisor writes `DATA_DIR/hot-supervisor.json` (its pid, start token and the hash of every
|
|
81
|
+
* `dist/` module it loaded); a worker that finds one of those files changed signals it with `SIGUSR2` at an idle point,
|
|
82
|
+
* and the supervisor stops `tsc -w` and nodemon, leaves the OpenCode server and the speech sidecar alone, and replaces
|
|
83
|
+
* itself with `process.execve` — the same pid, so a Docker entrypoint `wait`ing on it, `charness-restart-bot` and systemd
|
|
84
|
+
* see nothing. The new image gets the environment this one was launched with, not what it loaded since.
|
|
85
|
+
*
|
|
76
86
|
* The supervisor is also the OWNER of the local speech engine's sidecar: it exports its pid and start
|
|
77
87
|
* token to the worker (`buildHotWorkerEnv`), the sidecar dies with it (its own watchdog covers a SIGKILL), and
|
|
78
88
|
* the supervisor's shutdown stops the recorded one. A reload of the worker leaves it running for the next
|
|
@@ -141,8 +151,24 @@ async function runHot() {
|
|
|
141
151
|
if (connectors.ok && connectors.connectors.includes('telegram'))
|
|
142
152
|
await prepareHotOpenCodeServer();
|
|
143
153
|
// The data dir the worker will use (a relative DATA_DIR resolves against the project root, nodemon's cwd).
|
|
144
|
-
const
|
|
154
|
+
const workerDataDir = path.resolve(projectRoot, process.env.DATA_DIR || (0, legacyNames_1.resolveDefaultDataDir)());
|
|
145
155
|
const supervisorIdentity = (0, installManager_1.getProcessIdentity)(process.pid);
|
|
156
|
+
const reexecTarget = (0, restart_1.getReexecTarget)({ execPath: process.execPath, packageRoot: projectRoot, argv: process.argv });
|
|
157
|
+
const canReexec = supervisorIdentity !== null && typeof process.execve === 'function';
|
|
158
|
+
// Before anything rebuilds `dist/`: the hashes must be those of the code this process actually loaded.
|
|
159
|
+
if (supervisorIdentity) {
|
|
160
|
+
try {
|
|
161
|
+
(0, hotSupervisor_1.writeHotSupervisorRecord)(workerDataDir, {
|
|
162
|
+
pid: supervisorIdentity.pid,
|
|
163
|
+
startToken: supervisorIdentity.startToken,
|
|
164
|
+
canReexec,
|
|
165
|
+
modules: (0, hotSupervisor_1.collectLoadedDistModules)(path.join(projectRoot, 'dist'), Object.keys(require.cache)),
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
process.stderr.write(`charness hot: could not write the supervisor record: ${error instanceof Error ? error.message : error}\n`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
146
172
|
const sttOwner = supervisorIdentity
|
|
147
173
|
? { pid: supervisorIdentity.pid, startToken: supervisorIdentity.startToken }
|
|
148
174
|
: undefined;
|
|
@@ -156,6 +182,7 @@ async function runHot() {
|
|
|
156
182
|
const children = new Set();
|
|
157
183
|
let nodemonChild = null;
|
|
158
184
|
let shuttingDown = false;
|
|
185
|
+
let isReexecuting = false;
|
|
159
186
|
let isSidecarStopped = false;
|
|
160
187
|
let finalCode = 0;
|
|
161
188
|
let resolveChildrenStopped = null;
|
|
@@ -166,19 +193,26 @@ async function runHot() {
|
|
|
166
193
|
if (shuttingDown && children.size === 0 && isSidecarStopped)
|
|
167
194
|
resolveChildrenStopped?.();
|
|
168
195
|
};
|
|
169
|
-
const forwardSignal = (sig) => {
|
|
196
|
+
const forwardSignal = (sig, options = {}) => {
|
|
170
197
|
if (shuttingDown)
|
|
171
198
|
return;
|
|
172
199
|
shuttingDown = true;
|
|
200
|
+
isReexecuting = options.isReexec === true;
|
|
173
201
|
for (const child of children) {
|
|
174
202
|
if (child.killed || child.exitCode !== null)
|
|
175
203
|
continue;
|
|
176
204
|
const childName = child === nodemonChild ? 'nodemon' : 'tsc';
|
|
177
205
|
child.kill(getHotChildShutdownSignal(childName, sig));
|
|
178
206
|
}
|
|
207
|
+
// A re-exec keeps the sidecar (and the OpenCode server): the new image is the same process, the same owner.
|
|
208
|
+
if (isReexecuting) {
|
|
209
|
+
isSidecarStopped = true;
|
|
210
|
+
checkShouldResolveChildren();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
179
213
|
// The sidecar does not outlive its owner: stop the recorded one (guarded, bounded at ~3 s) while the
|
|
180
214
|
// watchers wind down; the wrapper exits only after both.
|
|
181
|
-
void (0, sttSidecarOwner_1.stopRecordedSttSidecar)((0, sttSidecarOwner_1.createDefaultSttSidecarOwnerDeps)(() =>
|
|
215
|
+
void (0, sttSidecarOwner_1.stopRecordedSttSidecar)((0, sttSidecarOwner_1.createDefaultSttSidecarOwnerDeps)(() => workerDataDir))
|
|
182
216
|
.catch((error) => {
|
|
183
217
|
process.stderr.write(`charness hot: stopping the local speech engine failed: ${error instanceof Error ? error.message : error}\n`);
|
|
184
218
|
})
|
|
@@ -191,6 +225,18 @@ async function runHot() {
|
|
|
191
225
|
for (const sig of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
|
|
192
226
|
process.on(sig, () => forwardSignal(sig));
|
|
193
227
|
}
|
|
228
|
+
// A worker asks for a re-exec (see the docstring). Checked first: nothing is stopped when the new image could not start.
|
|
229
|
+
process.on(hotSupervisor_1.supervisorReexecSignal, () => {
|
|
230
|
+
if (shuttingDown || !canReexec)
|
|
231
|
+
return;
|
|
232
|
+
const problems = (0, restart_1.getReexecProblems)(reexecTarget);
|
|
233
|
+
if (problems.length > 0) {
|
|
234
|
+
process.stderr.write(`charness hot: not re-executing — ${problems.join('; ')}\n`);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
process.stderr.write('charness hot: re-executing the supervisor (a file it loaded changed)\n');
|
|
238
|
+
forwardSignal('SIGTERM', { isReexec: true });
|
|
239
|
+
});
|
|
194
240
|
const registerChild = (child, childName) => {
|
|
195
241
|
children.add(child);
|
|
196
242
|
let isSettled = false;
|
|
@@ -260,6 +306,10 @@ async function runHot() {
|
|
|
260
306
|
'Check the TypeScript output path and save; nodemon will keep waiting.\n');
|
|
261
307
|
});
|
|
262
308
|
await childrenStopped;
|
|
309
|
+
if (isReexecuting) {
|
|
310
|
+
(0, restart_1.reexecProcess)(reexecTarget, (0, launchEnvironment_1.getLaunchEnvironment)(), (0, restart_1.createDefaultReexecDeps)());
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
263
313
|
process.exit(finalCode);
|
|
264
314
|
}
|
|
265
315
|
/**
|
package/dist/cli/hot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hot.js","sourceRoot":"","sources":["../../src/cli/hot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"hot.js","sourceRoot":"","sources":["../../src/cli/hot.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,gCAAgC,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -34,6 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
};
|
|
35
35
|
})();
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
// FIRST import, on purpose: it snapshots the launch environment before anything reads a `.env` file into `process.env`.
|
|
38
|
+
require("./selfUpdate/launchEnvironment");
|
|
37
39
|
const fs = __importStar(require("fs"));
|
|
38
40
|
const path = __importStar(require("path"));
|
|
39
41
|
const applyDnsFix_1 = require("./cli/applyDnsFix");
|
|
@@ -129,6 +131,12 @@ async function main() {
|
|
|
129
131
|
process.exitCode = await runClaudeProfilesCli(process.argv.slice(3));
|
|
130
132
|
return;
|
|
131
133
|
}
|
|
134
|
+
// The updater's pre-switch probe of a new install (hidden: not in --help).
|
|
135
|
+
if (sub === 'self-check') {
|
|
136
|
+
const { runSelfCheckCli } = await Promise.resolve().then(() => __importStar(require('./selfUpdate/selfCheck')));
|
|
137
|
+
process.exitCode = await runSelfCheckCli(process.argv.slice(3), path.resolve(__dirname, '..'));
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
132
140
|
process.stderr.write(`Unknown command: ${sub}\n\n`);
|
|
133
141
|
printUsage();
|
|
134
142
|
process.exit(2);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAgD;AAChD,mCAAmC;AACnC,mCAAmC;AAEnC,IAAA,yBAAW,GAAE,CAAC;AAEd;;;;;;GAMG;AACH,SAAS,YAAY;IACnB,IAAI,OAAO,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5F,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU;QACR,0EAA0E;QAC1E,8EAA8E;QAC9E,6EAA6E;QAC7E,2EAA2E;QAC3E,qFAAqF;QACrF,qFAAqF;QACrF,2EAA2E;QAC3E,8CAA8C;QAC9C,iDAAiD;QACjD,IAAI;QACJ,gBAAgB;QAChB,2EAA2E;QAC3E,+DAA+D;QAC/D,oFAAoF;QACpF,oFAAoF;QACpF,0EAA0E;QAC1E,oEAAoE;QACpE,0CAA0C,CAC7C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAA,YAAM,GAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,MAAM,IAAA,YAAM,GAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACvD,UAAU,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7D,YAAY,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,sGAAsG;IACtG,6DAA6D;IAC7D,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;QAC9B,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QACtE,OAAO,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC,CAAC;IACpD,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The folder picker of `/bind` — and of `/topic`, which shows the same keyboard with its buttons pointing at a
|
|
3
|
+
* wizard instead of at the topic it sits in. A leaf module (no `bot.ts`, no environment): the command modules take it
|
|
4
|
+
* as a plain import.
|
|
5
|
+
*/
|
|
6
|
+
import { Markup } from 'telegraf';
|
|
7
|
+
/** Inline-keyboard page size for `/bind`. 20 fits one phone screen comfortably. */
|
|
8
|
+
export declare const BIND_PAGE_SIZE = 20;
|
|
9
|
+
/**
|
|
10
|
+
* «Create new folder» button of the `/bind` picker. The callback id deliberately does NOT start with `bind_`, so the
|
|
11
|
+
* `bind_<subdir>` action regex can't mistake it for a folder pick.
|
|
12
|
+
*/
|
|
13
|
+
export declare const bindCreateFolderCallback = "bindCreateFolder";
|
|
14
|
+
/**
|
|
15
|
+
* «Leave current dir» button — the folded-in `/unbind`. Like {@link bindCreateFolderCallback}, the callback id
|
|
16
|
+
* deliberately does NOT start with `bind_`. Only rendered in a bound topic.
|
|
17
|
+
*/
|
|
18
|
+
export declare const bindLeaveCurrentCallback = "bindLeaveCurrent";
|
|
19
|
+
/** The middle «N/M» pill of the nav row: pure UI, answered without a state change (shared by every picker built here). */
|
|
20
|
+
export declare const bindPageNoopCallback = "bind_page_noop";
|
|
21
|
+
/** The callback data of a picker's buttons: `/bind` acts on the topic the keyboard sits in, `/topic` on its wizard. */
|
|
22
|
+
export interface BindPickerCallbacks {
|
|
23
|
+
/** The folder button of `subdir`, the `index`-th entry of the WHOLE list (not of its page). */
|
|
24
|
+
getFolderCallback: (subdir: string, index: number) => string;
|
|
25
|
+
getPageCallback: (page: number) => string;
|
|
26
|
+
createFolderCallback: string;
|
|
27
|
+
/** A full-width last row of its own — the way out of a wizard (`/bind`'s picker has none). */
|
|
28
|
+
cancelButton?: {
|
|
29
|
+
label: string;
|
|
30
|
+
callback: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** `/bind`'s own: the folder name rides in the data, pages are numbered. */
|
|
34
|
+
export declare const bindPickerCallbacks: BindPickerCallbacks;
|
|
35
|
+
/**
|
|
36
|
+
* @description Build a `subdir`-suggestion keyboard for `/bind` and friends.
|
|
37
|
+
*
|
|
38
|
+
* Lists are paginated at {@link BIND_PAGE_SIZE} entries: a `WORK_ROOT` with
|
|
39
|
+
* many subfolders (mono-repo workspace, packages dir, etc.) would otherwise
|
|
40
|
+
* push the inline keyboard past Telegram's per-message height limit and
|
|
41
|
+
* lose entries below the fold.
|
|
42
|
+
*
|
|
43
|
+
* The nav row appears only when there's more than one page. The middle
|
|
44
|
+
* `pageLabel` button is a no-op ({@link bindPageNoopCallback}) — it exists
|
|
45
|
+
* solely so the user sees "2/5" without us having to fake a divider with
|
|
46
|
+
* a separate message.
|
|
47
|
+
*
|
|
48
|
+
* Subdirs whose callback_data exceeds 64 bytes are filtered out upstream
|
|
49
|
+
* in `listAvailableSubdirs`. `page` is clamped to a valid index so a stale
|
|
50
|
+
* callback (folders disappeared since the keyboard was sent) just lands
|
|
51
|
+
* on the last available page.
|
|
52
|
+
*
|
|
53
|
+
* When `isBound` the FIRST row is a full-width «leave current dir» button
|
|
54
|
+
* ({@link bindLeaveCurrentCallback}, the folded-in `/unbind`); the «create new folder»
|
|
55
|
+
* button ({@link bindCreateFolderCallback}) follows. Both callbacks deliberately do
|
|
56
|
+
* NOT start with `bind_`, so they can't be mistaken for a folder pick by the
|
|
57
|
+
* `bind_<subdir>` action regex. They ride on every page so they're reachable
|
|
58
|
+
* regardless of pagination.
|
|
59
|
+
*
|
|
60
|
+
* `callbacks` re-targets the buttons (the `/topic` wizard's, which adds a «cancel» row at the bottom); the layout
|
|
61
|
+
* stays the one `/bind` has.
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildBindKeyboard(subdirs: readonly string[], page?: number, pageSize?: number, isBound?: boolean, callbacks?: BindPickerCallbacks): Markup.Markup<import("@telegraf/types").InlineKeyboardMarkup>;
|
|
64
|
+
//# sourceMappingURL=bindPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bindPicker.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/bindPicker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,mFAAmF;AACnF,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D,0HAA0H;AAC1H,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,uHAAuH;AACvH,MAAM,WAAW,mBAAmB;IAClC,+FAA+F;IAC/F,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8FAA8F;IAC9F,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,EAAE,mBAIjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,GAAE,MAAU,EAChB,QAAQ,GAAE,MAAuB,EACjC,OAAO,GAAE,OAAe,EACxB,SAAS,GAAE,mBAAyC,iEAwCrD"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bindPickerCallbacks = exports.bindPageNoopCallback = exports.bindLeaveCurrentCallback = exports.bindCreateFolderCallback = exports.BIND_PAGE_SIZE = void 0;
|
|
4
|
+
exports.buildBindKeyboard = buildBindKeyboard;
|
|
5
|
+
/**
|
|
6
|
+
* The folder picker of `/bind` — and of `/topic`, which shows the same keyboard with its buttons pointing at a
|
|
7
|
+
* wizard instead of at the topic it sits in. A leaf module (no `bot.ts`, no environment): the command modules take it
|
|
8
|
+
* as a plain import.
|
|
9
|
+
*/
|
|
10
|
+
const telegraf_1 = require("telegraf");
|
|
11
|
+
const i18n_1 = require("../../i18n");
|
|
12
|
+
const validation_1 = require("../../validation");
|
|
13
|
+
/** Inline-keyboard page size for `/bind`. 20 fits one phone screen comfortably. */
|
|
14
|
+
exports.BIND_PAGE_SIZE = 20;
|
|
15
|
+
/**
|
|
16
|
+
* «Create new folder» button of the `/bind` picker. The callback id deliberately does NOT start with `bind_`, so the
|
|
17
|
+
* `bind_<subdir>` action regex can't mistake it for a folder pick.
|
|
18
|
+
*/
|
|
19
|
+
exports.bindCreateFolderCallback = 'bindCreateFolder';
|
|
20
|
+
/**
|
|
21
|
+
* «Leave current dir» button — the folded-in `/unbind`. Like {@link bindCreateFolderCallback}, the callback id
|
|
22
|
+
* deliberately does NOT start with `bind_`. Only rendered in a bound topic.
|
|
23
|
+
*/
|
|
24
|
+
exports.bindLeaveCurrentCallback = 'bindLeaveCurrent';
|
|
25
|
+
/** The middle «N/M» pill of the nav row: pure UI, answered without a state change (shared by every picker built here). */
|
|
26
|
+
exports.bindPageNoopCallback = 'bind_page_noop';
|
|
27
|
+
/** `/bind`'s own: the folder name rides in the data, pages are numbered. */
|
|
28
|
+
exports.bindPickerCallbacks = {
|
|
29
|
+
getFolderCallback: (subdir) => `bind_${subdir}`,
|
|
30
|
+
getPageCallback: (page) => `bind_page_${page}`,
|
|
31
|
+
createFolderCallback: exports.bindCreateFolderCallback,
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* @description Build a `subdir`-suggestion keyboard for `/bind` and friends.
|
|
35
|
+
*
|
|
36
|
+
* Lists are paginated at {@link BIND_PAGE_SIZE} entries: a `WORK_ROOT` with
|
|
37
|
+
* many subfolders (mono-repo workspace, packages dir, etc.) would otherwise
|
|
38
|
+
* push the inline keyboard past Telegram's per-message height limit and
|
|
39
|
+
* lose entries below the fold.
|
|
40
|
+
*
|
|
41
|
+
* The nav row appears only when there's more than one page. The middle
|
|
42
|
+
* `pageLabel` button is a no-op ({@link bindPageNoopCallback}) — it exists
|
|
43
|
+
* solely so the user sees "2/5" without us having to fake a divider with
|
|
44
|
+
* a separate message.
|
|
45
|
+
*
|
|
46
|
+
* Subdirs whose callback_data exceeds 64 bytes are filtered out upstream
|
|
47
|
+
* in `listAvailableSubdirs`. `page` is clamped to a valid index so a stale
|
|
48
|
+
* callback (folders disappeared since the keyboard was sent) just lands
|
|
49
|
+
* on the last available page.
|
|
50
|
+
*
|
|
51
|
+
* When `isBound` the FIRST row is a full-width «leave current dir» button
|
|
52
|
+
* ({@link bindLeaveCurrentCallback}, the folded-in `/unbind`); the «create new folder»
|
|
53
|
+
* button ({@link bindCreateFolderCallback}) follows. Both callbacks deliberately do
|
|
54
|
+
* NOT start with `bind_`, so they can't be mistaken for a folder pick by the
|
|
55
|
+
* `bind_<subdir>` action regex. They ride on every page so they're reachable
|
|
56
|
+
* regardless of pagination.
|
|
57
|
+
*
|
|
58
|
+
* `callbacks` re-targets the buttons (the `/topic` wizard's, which adds a «cancel» row at the bottom); the layout
|
|
59
|
+
* stays the one `/bind` has.
|
|
60
|
+
*/
|
|
61
|
+
function buildBindKeyboard(subdirs, page = 0, pageSize = exports.BIND_PAGE_SIZE, isBound = false, callbacks = exports.bindPickerCallbacks) {
|
|
62
|
+
const { slice, currentPage, totalPages } = (0, validation_1.paginateBindList)(subdirs, page, pageSize);
|
|
63
|
+
const firstIndex = currentPage * pageSize;
|
|
64
|
+
const rows = [
|
|
65
|
+
[telegraf_1.Markup.button.callback((0, i18n_1.t)('bind.create_button'), callbacks.createFolderCallback)],
|
|
66
|
+
];
|
|
67
|
+
// A bound topic gets a full-width «leave current dir» row PREPENDED above the
|
|
68
|
+
// «create new folder» row — this is the folded-in `/unbind`. Its callback
|
|
69
|
+
// deliberately avoids the `bind_` prefix so the `bind_<subdir>` action regex
|
|
70
|
+
// can't catch it. The row is omitted when unbound (nothing to leave).
|
|
71
|
+
if (isBound) {
|
|
72
|
+
rows.unshift([telegraf_1.Markup.button.callback((0, i18n_1.t)('bind.leave_button'), exports.bindLeaveCurrentCallback)]);
|
|
73
|
+
}
|
|
74
|
+
for (let i = 0; i < slice.length; i += 2) {
|
|
75
|
+
const row = [telegraf_1.Markup.button.callback(`📁 ${slice[i]}`, callbacks.getFolderCallback(slice[i], firstIndex + i))];
|
|
76
|
+
if (slice[i + 1]) {
|
|
77
|
+
row.push(telegraf_1.Markup.button.callback(`📁 ${slice[i + 1]}`, callbacks.getFolderCallback(slice[i + 1], firstIndex + i + 1)));
|
|
78
|
+
}
|
|
79
|
+
rows.push(row);
|
|
80
|
+
}
|
|
81
|
+
if (totalPages > 1) {
|
|
82
|
+
const nav = [];
|
|
83
|
+
if (currentPage > 0) {
|
|
84
|
+
nav.push(telegraf_1.Markup.button.callback('⬅️ Prev', callbacks.getPageCallback(currentPage - 1)));
|
|
85
|
+
}
|
|
86
|
+
nav.push(telegraf_1.Markup.button.callback(`${currentPage + 1}/${totalPages}`, exports.bindPageNoopCallback));
|
|
87
|
+
if (currentPage < totalPages - 1) {
|
|
88
|
+
nav.push(telegraf_1.Markup.button.callback('Next ➡️', callbacks.getPageCallback(currentPage + 1)));
|
|
89
|
+
}
|
|
90
|
+
rows.push(nav);
|
|
91
|
+
}
|
|
92
|
+
if (callbacks.cancelButton) {
|
|
93
|
+
rows.push([telegraf_1.Markup.button.callback(callbacks.cancelButton.label, callbacks.cancelButton.callback)]);
|
|
94
|
+
}
|
|
95
|
+
return telegraf_1.Markup.inlineKeyboard(rows);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=bindPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bindPicker.js","sourceRoot":"","sources":["../../../src/connectors/telegram/bindPicker.ts"],"names":[],"mappings":"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"}
|