cli-jaw 2.2.18 → 2.2.19
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/README.md +12 -0
- package/dist/bin/cli-jaw.js +1 -1
- package/dist/bin/cli-jaw.js.map +1 -1
- package/dist/bin/commands/dispatch.js +14 -4
- package/dist/bin/commands/dispatch.js.map +1 -1
- package/dist/bin/commands/service.js +322 -222
- package/dist/bin/commands/service.js.map +1 -1
- package/dist/bin/postinstall.js +20 -4
- package/dist/bin/postinstall.js.map +1 -1
- package/dist/server.js +28 -2
- package/dist/server.js.map +1 -1
- package/dist/src/agent/spawn.js +1 -12
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/cli/cli-status-worker.js +59 -6
- package/dist/src/cli/cli-status-worker.js.map +1 -1
- package/dist/src/core/cli-detect.js +54 -8
- package/dist/src/core/cli-detect.js.map +1 -1
- package/dist/src/core/config.js +10 -0
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/instance-lifecycle.js +120 -0
- package/dist/src/core/instance-lifecycle.js.map +1 -0
- package/dist/src/core/runtime-path.js +92 -12
- package/dist/src/core/runtime-path.js.map +1 -1
- package/dist/src/core/runtime-settings.js +4 -1
- package/dist/src/core/runtime-settings.js.map +1 -1
- package/dist/src/core/settings-watch.js +12 -1
- package/dist/src/core/settings-watch.js.map +1 -1
- package/dist/src/notes/search.js +25 -2
- package/dist/src/notes/search.js.map +1 -1
- package/dist/src/prompt/builder.js +59 -7
- package/dist/src/prompt/builder.js.map +1 -1
- package/dist/src/routes/settings.js +8 -1
- package/dist/src/routes/settings.js.map +1 -1
- package/dist/src/routes/system.js +5 -1
- package/dist/src/routes/system.js.map +1 -1
- package/dist/src/routes/wiki.js +17 -12
- package/dist/src/routes/wiki.js.map +1 -1
- package/dist/src/search/coordinator.js +13 -5
- package/dist/src/search/coordinator.js.map +1 -1
- package/dist/src/search/provider.js.map +1 -1
- package/dist/src/search/providers/wiki.js +17 -9
- package/dist/src/search/providers/wiki.js.map +1 -1
- package/dist/src/slack/manifest.js +14 -3
- package/dist/src/slack/manifest.js.map +1 -1
- package/dist/src/wiki/config.js +42 -14
- package/dist/src/wiki/config.js.map +1 -1
- package/dist/src/wiki/prompt.js +2 -2
- package/dist/src/wiki/prompt.js.map +1 -1
- package/package.json +1 -1
- package/public/dist/assets/{app-DqSJmDwP.js → app-is76CHGZ.js} +4 -4
- package/public/dist/assets/{bgtask-badge-D6XYRFI5.js → bgtask-badge-B0B1nXUs.js} +1 -1
- package/public/dist/assets/bgtask-badge-B2jUZ5mC.js +1 -0
- package/public/dist/assets/{employees-B_wKPfTO.js → employees-eiW0cC8z.js} +1 -1
- package/public/dist/assets/{iframe-renderer-D1-zDg8V.js → iframe-renderer-C7qQJX4c.js} +2 -2
- package/public/dist/assets/iframe-renderer-D7PB_yrC.js +1 -0
- package/public/dist/assets/{memory-CNUpXWEC.js → memory--Q8Tb5SZ.js} +1 -1
- package/public/dist/assets/memory-rsKN0aa2.js +1 -0
- package/public/dist/assets/message-history-BttkY77h.js +1 -0
- package/public/dist/assets/{message-history-DB1rynP-.js → message-history-CfAHmCDW.js} +1 -1
- package/public/dist/assets/{render-DXwQzjsJ.js → render-BDso7Yb5.js} +1 -1
- package/public/dist/assets/{settings-CXndjCad.js → settings-CqnIqxkG.js} +1 -1
- package/public/dist/assets/{settings-core-t5yYVRrv.js → settings-core-BxuFkt4a.js} +4 -4
- package/public/dist/assets/settings-core-CdZ7oKhM.js +1 -0
- package/public/dist/assets/settings-pPMHNs0G.js +1 -0
- package/public/dist/assets/{sidebar-DgIj-LuT.js → sidebar-BNT58qR0.js} +3 -3
- package/public/dist/assets/{skills-QqxjqDHg.js → skills-CwRBcm3m.js} +1 -1
- package/public/dist/assets/skills-DiVoaVdS.js +1 -0
- package/public/dist/assets/slash-commands-Bx4saHwR.js +1 -0
- package/public/dist/assets/{slash-commands-B2V_jngP.js → slash-commands-cm0U58n7.js} +1 -1
- package/public/dist/assets/{trace-drawer-CBe9nRjS.js → trace-drawer-BuwO4m2P.js} +1 -1
- package/public/dist/assets/{ui-CDozpEQt.js → ui-C-LHMki1.js} +1 -1
- package/public/dist/assets/ui-XPQDPe-5.js +1 -0
- package/public/dist/index.html +1 -1
- package/public/js/features/channel-onboarding.ts +8 -5
- package/public/locales/en.json +3 -2
- package/public/locales/ja.json +3 -2
- package/public/locales/ko.json +3 -2
- package/public/locales/zh.json +3 -2
- package/scripts/install-officecli.sh +28 -0
- package/public/dist/assets/bgtask-badge-CjWz0F6U.js +0 -1
- package/public/dist/assets/iframe-renderer-qRVLHPnT.js +0 -1
- package/public/dist/assets/memory-CcWGiPy_.js +0 -1
- package/public/dist/assets/message-history-BamMPUnL.js +0 -1
- package/public/dist/assets/settings-RGpifFHy.js +0 -1
- package/public/dist/assets/settings-core-X_5UHfr3.js +0 -1
- package/public/dist/assets/skills-CbwIimit.js +0 -1
- package/public/dist/assets/slash-commands-tCNRlNTC.js +0 -1
- package/public/dist/assets/ui-o-VpvrSv.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/search/coordinator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/search/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/search/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/search/provider.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,gBAAgB,CAC5B,QAAwB,EACxB,KAAkB,EAClB,IAAiB,EACjB,WAA4B,EAAE,EAC9B,OAAO,GAAG,KAAK;IAEf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC3C,OAAO;QACH,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;QACrF,QAAQ;QACR,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;QACnC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;KACvF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU,EAAE,MAAsB;IAChE,MAAM,QAAQ,GAAmB;QAC7B,EAAE;QACF,MAAM;QACN,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;QACnB,KAAK,CAAC,MAAM,CAAC,KAAK;YACd,OAAO,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;oBAC1C,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,8BAA8B;iBACvF,CAAC,CAAC,CAAC;QACR,CAAC;KACJ,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,OAAO,sBAAsB;IACd,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE/D,QAAQ,CAAC,QAAwB;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE;YACR,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC,CAAC;IACN,CAAC;IAED,IAAI,CAAC,MAAuB;QACxB,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAClG,CAAC;CACJ"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// link graph and vault index stay with the manager, because this provider needs neither.
|
|
4
4
|
import { searchNotes } from '../../notes/search.js';
|
|
5
5
|
import { providerEnvelope } from '../provider.js';
|
|
6
|
-
import { forbiddenWikiRoots, readUsableWikiConfig,
|
|
6
|
+
import { forbiddenWikiRoots, readUsableWikiConfig, wikiProviderHealth } from '../../wiki/config.js';
|
|
7
7
|
// The shared note search refuses a request for more than this many results, so a page
|
|
8
8
|
// deep enough to ask for more would throw rather than return an empty tail. Wiki search
|
|
9
9
|
// therefore stops at that boundary and says so, instead of pretending a next page exists
|
|
@@ -30,22 +30,30 @@ export class WikiSearchProvider {
|
|
|
30
30
|
return { enabled: false, root: '', promptDigest: false };
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
health(config = this.config()) {
|
|
34
|
+
return wikiProviderHealth(config);
|
|
35
|
+
}
|
|
33
36
|
status() {
|
|
34
|
-
return
|
|
37
|
+
return this.health().status;
|
|
38
|
+
}
|
|
39
|
+
safeFailureCode() {
|
|
40
|
+
return this.health().safeFailureCode ?? null;
|
|
35
41
|
}
|
|
36
42
|
async search(query, opts) {
|
|
37
43
|
const config = this.config();
|
|
38
|
-
const
|
|
39
|
-
if (status !== 'ready') {
|
|
44
|
+
const health = this.health(config);
|
|
45
|
+
if (health.status !== 'ready') {
|
|
40
46
|
// A disabled vault performs no filesystem read at all, which is what makes
|
|
41
47
|
// "off by default" mean something on disk and not just in the UI.
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
const warning = health.safeFailureCode === 'notes_search_unavailable'
|
|
49
|
+
? { code: 'notes_search_unavailable', provider: this.id,
|
|
50
|
+
message: 'ripgrep (rg) is not installed' }
|
|
51
|
+
: { code: health.status === 'off' ? 'provider_off' : 'provider_failed',
|
|
44
52
|
provider: this.id,
|
|
45
|
-
message: status === 'off'
|
|
53
|
+
message: health.status === 'off'
|
|
46
54
|
? 'wiki search provider is disabled'
|
|
47
|
-
: 'wiki vault is unavailable'
|
|
48
|
-
|
|
55
|
+
: 'wiki vault is unavailable' };
|
|
56
|
+
return providerEnvelope(this, query, [], [warning]);
|
|
49
57
|
}
|
|
50
58
|
const warnings = query.sessionFilter === undefined ? [] : [{
|
|
51
59
|
code: 'session_filter_ignored',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki.js","sourceRoot":"","sources":["../../../../src/search/providers/wiki.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,oFAAoF;AACpF,yFAAyF;AAEzF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAmD,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAmB,MAAM,sBAAsB,CAAC;AAErH,sFAAsF;AACtF,wFAAwF;AACxF,yFAAyF;AACzF,wCAAwC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C,MAAM,OAAO,kBAAkB;IASE;IARpB,EAAE,GAAG,YAAY,CAAC;IAClB,MAAM,GAAG,MAAe,CAAC;IAElC,oFAAoF;IACpF,4EAA4E;IAC5E,iFAAiF;IACjF,gFAAgF;IAChF,iEAAiE;IACjE,YAA6B,aAA+B,GAAG,EAAE,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;QAA/E,eAAU,GAAV,UAAU,CAAqE;IAAG,CAAC;IAExG,MAAM;QACV,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACL,+EAA+E;YAC/E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QAC7D,CAAC;IACL,CAAC;IAED,MAAM;QACF,OAAO,
|
|
1
|
+
{"version":3,"file":"wiki.js","sourceRoot":"","sources":["../../../../src/search/providers/wiki.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,13 +13,24 @@ export const DEFAULT_SLACK_APP_NAME = 'cli-jaw';
|
|
|
13
13
|
export const MAX_SLACK_APP_NAME_LENGTH = 35;
|
|
14
14
|
function normalizedSlackAppName(appName) {
|
|
15
15
|
const normalized = appName.trim();
|
|
16
|
-
if (!normalized || Array.from(normalized).length > MAX_SLACK_APP_NAME_LENGTH
|
|
17
|
-
throw new RangeError(`Slack app name must be 1-${MAX_SLACK_APP_NAME_LENGTH} characters
|
|
16
|
+
if (!normalized || Array.from(normalized).length > MAX_SLACK_APP_NAME_LENGTH) {
|
|
17
|
+
throw new RangeError(`Slack app name must be 1-${MAX_SLACK_APP_NAME_LENGTH} characters.`);
|
|
18
18
|
}
|
|
19
19
|
return normalized;
|
|
20
20
|
}
|
|
21
|
+
function derivedSlackBotDisplayName(appName) {
|
|
22
|
+
if (/^[a-z0-9._-]+$/.test(appName))
|
|
23
|
+
return appName;
|
|
24
|
+
const sanitized = appName
|
|
25
|
+
.toLowerCase()
|
|
26
|
+
.replace(/[^a-z0-9._-]+/g, '-')
|
|
27
|
+
.replace(/[._-]+/g, '-')
|
|
28
|
+
.replace(/^[._-]+|[._-]+$/g, '');
|
|
29
|
+
return sanitized || DEFAULT_SLACK_APP_NAME;
|
|
30
|
+
}
|
|
21
31
|
export function createSlackAppManifest(appName = DEFAULT_SLACK_APP_NAME) {
|
|
22
32
|
const name = normalizedSlackAppName(appName);
|
|
33
|
+
const botDisplayName = derivedSlackBotDisplayName(name);
|
|
23
34
|
return {
|
|
24
35
|
_metadata: { major_version: 1 },
|
|
25
36
|
display_information: {
|
|
@@ -28,7 +39,7 @@ export function createSlackAppManifest(appName = DEFAULT_SLACK_APP_NAME) {
|
|
|
28
39
|
},
|
|
29
40
|
features: {
|
|
30
41
|
bot_user: {
|
|
31
|
-
display_name:
|
|
42
|
+
display_name: botDisplayName,
|
|
32
43
|
always_online: false,
|
|
33
44
|
},
|
|
34
45
|
// The Messages tab is what gives users a DM composer for the app.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/slack/manifest.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,8BAA8B;AAC9B,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,SAAS,sBAAsB,CAAC,OAAe;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,yBAAyB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/slack/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/src/wiki/config.js
CHANGED
|
@@ -8,6 +8,7 @@ import { homedir } from 'node:os';
|
|
|
8
8
|
import { isAbsolute, join, parse, relative, resolve } from 'node:path';
|
|
9
9
|
import { settings } from '../core/config.js';
|
|
10
10
|
import { applyRuntimeSettingsPatch } from '../core/runtime-settings.js';
|
|
11
|
+
import { isRipgrepAvailable } from '../notes/search.js';
|
|
11
12
|
export const DEFAULT_WIKI_CONFIG = {
|
|
12
13
|
enabled: false,
|
|
13
14
|
root: '~/jaw-wiki',
|
|
@@ -128,10 +129,9 @@ export function storedWikiRoot() {
|
|
|
128
129
|
// Same lexical steps normalizeWikiConfig takes, stopping short of the realpath call.
|
|
129
130
|
return resolve(text.replace(/^~(?=$|\/)/, homedir()));
|
|
130
131
|
}
|
|
131
|
-
// The
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
// the setting arrived by.
|
|
132
|
+
// The wiki routes own lifecycle writes and the live watcher strips attempts to bypass
|
|
133
|
+
// them. This consume-side check still covers legacy settings and lifecycle fields loaded
|
|
134
|
+
// directly from settings.json during boot, before the watcher begins enforcing the rule.
|
|
135
135
|
export function readUsableWikiConfig(forbiddenRoots = []) {
|
|
136
136
|
const config = readWikiConfig();
|
|
137
137
|
if (!config.enabled)
|
|
@@ -150,34 +150,62 @@ export function readUsableWikiConfig(forbiddenRoots = []) {
|
|
|
150
150
|
// mutation uses, so a wiki change cannot race a concurrent settings write.
|
|
151
151
|
export async function writeWikiConfig(next) {
|
|
152
152
|
const normalized = normalizeWikiConfig(next);
|
|
153
|
-
await applyRuntimeSettingsPatch({ wiki: normalized });
|
|
153
|
+
await applyRuntimeSettingsPatch({ wiki: normalized }, { allowWikiLifecycle: true });
|
|
154
154
|
return normalized;
|
|
155
155
|
}
|
|
156
|
-
|
|
157
|
-
// setting is the source of truth, not the directory. That is what makes disabling a
|
|
158
|
-
// non-destructive operation — the files stay, the provider stops answering.
|
|
159
|
-
export function wikiProviderStatus(config) {
|
|
156
|
+
export function wikiProviderHealth(config, engineAvailable = isRipgrepAvailable) {
|
|
160
157
|
if (!config.enabled)
|
|
161
|
-
return 'off';
|
|
158
|
+
return { status: 'off' };
|
|
162
159
|
try {
|
|
163
160
|
for (const dir of ['', ...WIKI_REQUIRED_DIRS]) {
|
|
164
161
|
const path = dir ? join(config.root, dir) : config.root;
|
|
165
162
|
if (!lstatSync(path).isDirectory())
|
|
166
|
-
return 'error';
|
|
163
|
+
return { status: 'error' };
|
|
167
164
|
accessSync(path, fsConstants.R_OK);
|
|
168
165
|
}
|
|
169
166
|
for (const file of WIKI_REQUIRED_FILES) {
|
|
170
167
|
const path = join(config.root, file);
|
|
171
168
|
if (!lstatSync(path).isFile())
|
|
172
|
-
return 'error';
|
|
169
|
+
return { status: 'error' };
|
|
173
170
|
accessSync(path, fsConstants.R_OK);
|
|
174
171
|
}
|
|
175
|
-
|
|
172
|
+
if (!engineAvailable()) {
|
|
173
|
+
return { status: 'error', safeFailureCode: 'notes_search_unavailable' };
|
|
174
|
+
}
|
|
175
|
+
return { status: 'ready' };
|
|
176
176
|
}
|
|
177
177
|
catch {
|
|
178
178
|
// A vault that was renamed, deleted, or made unreadable is an error rather than
|
|
179
179
|
// an absence: the user asked for it to be on.
|
|
180
|
-
return 'error';
|
|
180
|
+
return { status: 'error' };
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
export function wikiProviderStatus(config) {
|
|
184
|
+
return wikiProviderHealth(config).status;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Produce a path-free startup diagnostic for a vault that was persisted as enabled
|
|
188
|
+
* but cannot serve searches. Lifecycle repair stays on the wiki routes; pointing at
|
|
189
|
+
* those routes keeps operators away from the generic settings back door.
|
|
190
|
+
*/
|
|
191
|
+
function formatWikiStartupWarning(reason) {
|
|
192
|
+
return `[jaw:wiki] enabled but unavailable at startup (${reason}); `
|
|
193
|
+
+ 'repair with POST /api/wiki/enable or disable with POST /api/wiki/configure';
|
|
194
|
+
}
|
|
195
|
+
export function wikiStartupWarning(config, health = wikiProviderHealth(config)) {
|
|
196
|
+
if (!config.enabled || health.status !== 'error')
|
|
197
|
+
return null;
|
|
198
|
+
return formatWikiStartupWarning(health.safeFailureCode ?? 'wiki_provider_unavailable');
|
|
199
|
+
}
|
|
200
|
+
/** Read the persisted startup state without letting an invalid legacy root abort boot. */
|
|
201
|
+
export function currentWikiStartupWarning(readConfig = readWikiConfig, enabled = isWikiEnabled) {
|
|
202
|
+
if (!enabled())
|
|
203
|
+
return null;
|
|
204
|
+
try {
|
|
205
|
+
return wikiStartupWarning(readConfig());
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
return formatWikiStartupWarning('wiki_configuration_invalid');
|
|
181
209
|
}
|
|
182
210
|
}
|
|
183
211
|
// The roots the vault must not occupy, registered once at composition. The registry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/wiki/config.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,oFAAoF;AACpF,mFAAmF;AACnF,qFAAqF;AACrF,WAAW;AAEX,OAAO,EAAE,UAAU,EAAE,SAAS,IAAI,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/wiki/config.ts"],"names":[],"mappings":"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"}
|
package/dist/src/wiki/prompt.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
// so it is a property of the prompt path rather than of this feature.
|
|
17
17
|
import { closeSync, openSync, fstatSync, readSync, realpathSync, statSync, constants as fsConstants } from 'node:fs';
|
|
18
18
|
import { isAbsolute, join, relative } from 'node:path';
|
|
19
|
-
import { forbiddenWikiRoots, readUsableWikiConfig,
|
|
19
|
+
import { forbiddenWikiRoots, readUsableWikiConfig, wikiProviderHealth } from './config.js';
|
|
20
20
|
export const MAX_DIGEST_BYTES = 32 * 1024;
|
|
21
21
|
export const DIGEST_RELATIVE_PATH = 'syntheses/compiled-digest.md';
|
|
22
22
|
// The fence the digest is wrapped in. Any occurrence of it inside the digest is
|
|
@@ -140,7 +140,7 @@ export const loadDigestFileForTest = readDigestFile;
|
|
|
140
140
|
export function loadCompiledDigest(config = readUsableWikiConfig(forbiddenWikiRoots())) {
|
|
141
141
|
if (!config.enabled || !config.promptDigest)
|
|
142
142
|
return { ok: false, reason: 'disabled' };
|
|
143
|
-
if (
|
|
143
|
+
if (wikiProviderHealth(config).status !== 'ready')
|
|
144
144
|
return { ok: false, reason: 'vault_unavailable' };
|
|
145
145
|
return readDigestFile(config.root, join(config.root, DIGEST_RELATIVE_PATH));
|
|
146
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/wiki/prompt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/wiki/prompt.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cli-jaw",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.19",
|
|
4
4
|
"description": "Personal AI assistant powered by Pi, Antigravity, AI-E, Claude, Claude E, Codex, Codex App, Cursor, Grok, Kiro, OpenCode, and Copilot — Web, Terminal, Telegram, and Discord interfaces with 107 built-in skills",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-render-Bjnw0wQ6.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e,r as t}from"./vendor-render-DCb9B75Q.js";import{t as n}from"./state-DxpgDKMO.js";import{a as r,i,n as a,r as o,t as s}from"./api-tVoG39dL.js";import{a as c,c as l,d as u,f as ee,i as te,l as ne,r as re,s as ie,t as ae,u as oe}from"./sidebar-
|
|
2
|
+
import{n as e,r as t}from"./vendor-render-DCb9B75Q.js";import{t as n}from"./state-DxpgDKMO.js";import{a as r,i,n as a,r as o,t as s}from"./api-tVoG39dL.js";import{a as c,c as l,d as u,f as ee,i as te,l as ne,r as re,s as ie,t as ae,u as oe}from"./sidebar-BNT58qR0.js";import{t as d}from"./preload-helper-DFYRRz9w.js";import{A as se,C as ce,D as le,E as ue,F as de,I as fe,L as pe,M as f,O as p,R as m,S as me,b as he,f as ge,h as _e,l as ve,m as h,n as ye,p as be,u as xe,v as Se,y as Ce}from"./render-BDso7Yb5.js";import{_ as g,d as we,f as _,n as Te,u as Ee}from"./iframe-renderer-C7qQJX4c.js";import{O as De,T as Oe,_ as v,t as ke,v as y}from"./message-history-CfAHmCDW.js";import{n as Ae,s as b}from"./idb-cache-lOntwU3S.js";import{c as je,f as Me,o as Ne}from"./ui-C-LHMki1.js";import{t as Pe}from"./locale-DC-ZsWOf.js";import{a as Fe,c as Ie,i as Le,n as Re,o as ze,r as Be,s as Ve,t as He}from"./slash-commands-cm0U58n7.js";import{i as Ue,o as We}from"./constants-Df7-7Rky.js";import{A as Ge,C as Ke,D as qe,E as Je,F as Ye,I as Xe,L as Ze,M as Qe,N as $e,O as et,P as tt,R as nt,S as x,T as rt,a as it,c as at,d as S,g as ot,h as st,i as ct,j as lt,k as ut,m as dt,o as ft,r as pt,s as mt,t as ht,u as C,v as gt,w,x as _t,y as vt,z as yt}from"./settings-core-BxuFkt4a.js";import{t as bt}from"./provider-icons-VDfahiUp.js";import{a as xt,i as St,t as Ct}from"./skills-CwRBcm3m.js";import{a as wt,c as Tt,d as Et,f as Dt,g as Ot,h as kt,i as At,l as jt,m as Mt,n as Nt,o as Pt,p as Ft,r as It,s as Lt,t as T,u as Rt}from"./settings-CqnIqxkG.js";import{a as zt,c as Bt,d as Vt,f as Ht,i as Ut,l as Wt,m as Gt,n as Kt,o as qt,p as Jt,r as Yt,s as Xt,t as Zt,u as Qt}from"./memory--Q8Tb5SZ.js";import{n as $t}from"./bgtask-badge-B0B1nXUs.js";var en=new Set([`.png`,`.jpg`,`.jpeg`,`.gif`,`.webp`,`.svg`]),tn=new Set([`.mp4`,`.webm`,`.mov`,`.ogg`]);function nn(e){let t=String(e||``).split(/[\\/]/).pop()||``,n=t.lastIndexOf(`.`),r=n>0?t.slice(n).toLowerCase():``;return en.has(r)?`image`:tn.has(r)?`video`:`file`}var E=[],rn=8e3;function an(e){return/^\/compact(?:\s|$)/i.test(String(e||``).trim())?300*1e3:1e4}var on={image:`chat.file.sentImage`,video:`chat.file.sentVideo`,file:`chat.file.sent`};function sn(e){return m(on[nn(e)],{path:e})}function cn(e,t=``){let n=e.map(sn).join(`
|
|
3
3
|
`);return t?`${n}${m(`chat.file.sentWithMsg`,{text:t})}`:n}function ln(e,t){let n=t.map(sn).join(`
|
|
4
4
|
`);return n?`${e}\n\n${n}`:e}function un(e){let t=me();return t?new Promise(n=>{let r=`preview-send-${Date.now()}-${Math.random().toString(36).slice(2)}`,i=!1,a=()=>{window.removeEventListener(`message`,s),window.clearTimeout(c)},o=e=>{i||(i=!0,a(),n(e))},s=e=>{if(e.source!==window.parent||!he(e.origin))return;let t=e.data;!t||t.type!==`jaw-preview-send-result`||t.requestId!==r||o({ok:!!t.ok,status:Number.isInteger(t.status)?t.status:t.ok?200:502,data:t.data||(t.error?{error:t.error}:{}),viaRelay:!0})},c=window.setTimeout(()=>o(null),rn);window.addEventListener(`message`,s);try{window.parent.postMessage(h({type:`jaw-preview-send-message`,requestId:r,prompt:e}),t)}catch{o(null)}}):Promise.resolve(null)}async function dn(e){let t=await un(e);if(t?.ok)return t;try{let t=await fetch(`${s}/api/message`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(h({prompt:e}))}),n=await t.json().catch(()=>({}));return{ok:t.ok,status:t.status,data:n}}catch(e){return{ok:!1,status:0,data:{error:e.message}}}}async function fn(e){let t,n,i=an(e);if(typeof AbortSignal?.timeout==`function`)t=AbortSignal.timeout(i);else{let e=new AbortController;t=e.signal,n=setTimeout(()=>e.abort(),i)}let a=Pe(),o=await r(),c=await fetch(`${s}/api/command`,{method:`POST`,headers:{"Content-Type":`application/json`,"Accept-Language":a,...o?{Authorization:`Bearer ${o}`}:{}},body:JSON.stringify(h({text:e,locale:a})),signal:t});n&&clearTimeout(n);let l=await c.json().catch(()=>({}));return{ok:c.ok,status:c.status,result:l}}async function pn(e,t,n){let r=t.result;if(r?.code===`not_command`){if(n){await n();return}v(`user`,e),b({role:`user`,content:e,timestamp:Date.now()}),await i(`/api/message`,`POST`,h({prompt:e}));return}if(!t.ok&&!r?.text)throw Error(`HTTP ${t.status}`);if(r?.code===`clear_screen`){ye(),g().clear();let e=document.getElementById(`chatMessages`);e&&(e.innerHTML=``)}(r?.text||r?.recovery)&&y(mn(r),``,r.type),r?.steerPrompt&&await i(`/api/message`,`POST`,h({prompt:r.steerPrompt}))}function mn(e){let t=e.recovery;if(!t?.originalText)return e.text?f(e.text):``;let n=(t.suggestedCommands||[]).slice(0,5),r=n.length?`<div class="cmd-recovery-suggestions">${n.map(e=>`<code>${f(e)}</code>`).join(` `)}</div>`:``,i=f(t.originalText);return`${e.text?`<div>${f(e.text)}</div>`:``}
|
|
5
5
|
<div class="cmd-recovery" data-cmd-recovery>
|
|
@@ -10,11 +10,11 @@ import{n as e,r as t}from"./vendor-render-DCb9B75Q.js";import{t as n}from"./stat
|
|
|
10
10
|
<button type="button" class="cmd-recovery-btn" data-cmd-recovery-action="reinsert" data-cmd-text="${i}">${f(m(`cmd.artifact.action.reinsert`))}</button>
|
|
11
11
|
<button type="button" class="cmd-recovery-btn" data-cmd-recovery-action="copy" data-cmd-text="${i}">${f(m(`cmd.artifact.action.copy`))}</button>
|
|
12
12
|
</div>
|
|
13
|
-
</div>`}document.addEventListener(`click`,async e=>{let t=e.target?.closest(`[data-cmd-recovery-action]`);if(!t)return;let n=t.dataset.cmdRecoveryAction||``,r=t.dataset.cmdText||``;if(r){if(n===`reinsert`){let e=document.getElementById(`chatInput`);if(!e)return;e.value=r,e.focus(),e.selectionStart=e.selectionEnd=e.value.length,e.dispatchEvent(new Event(`input`,{bubbles:!0}));return}n===`copy`&&await le(r)}});var hn=!1;async function gn(e=`enter`){let t=document.getElementById(`chatInput`),r=document.getElementById(`btnSend`);if(!t||!r)return;let a=t.value.trim();if(!ve(e===`button`&&r.classList.contains(`stop-mode`)?``:a)){be();return}let s=e===`button`;if(r.classList.contains(`stop-mode`)&&s){o(`/api/stop`,`POST`,h({}));return}if(hn||!a&&!n.attachedFiles.length)return;ne(),hn=!0;let c=r,u=c.disabled;c.disabled=!0;try{await dt();let e=a.slice(1).trim().split(/\s+/)[0]||``,r=e.includes(`/`)||e.includes(`\\`),o=a.startsWith(`/`)&&!r;if(o&&!n.attachedFiles.length){if(t.value=``,k(),He(),Ve(a))return;try{await pn(a,await fn(a))}catch(e){y(m(`chat.cmd.fail`,{msg:e.message}),``,`error`)}finally{l(`command`).catch(()=>{})}return}if(n.attachedFiles.length){let e=`📎 [${n.attachedFiles.map(e=>e.name).join(`, `)}] ${a}`;v(`user`,e),b({role:`user`,content:e,timestamp:Date.now()}),t.value=``,k();try{let e=await Promise.all(n.attachedFiles.map(e=>vn(e))),t=cn(e,a);if(D(),o){He();try{let n=ln(a,e);await pn(n,await fn(n),async()=>{await i(`/api/message`,`POST`,h({prompt:t}))})}catch(e){y(m(`chat.cmd.fail`,{msg:e.message}),``,`error`)}finally{l(`command`).catch(()=>{})}return}await i(`/api/message`,`POST`,h({prompt:t}))}catch(e){y(m(`chat.file.uploadFail`,{msg:e.message})),D()}}else{t.value=``,k();let e=await dn(a),n=e.data;if(e.status===409&&n.error===`duplicate`)return;if(!e.ok){y(`${p.error} ${f(n.error||m(`chat.requestFail`,{status:e.status}))}`,``,`error`);return}if(n.queued){let{updateQueueBadge:e}=await d(async()=>{let{updateQueueBadge:e}=await import(`./ui-
|
|
13
|
+
</div>`}document.addEventListener(`click`,async e=>{let t=e.target?.closest(`[data-cmd-recovery-action]`);if(!t)return;let n=t.dataset.cmdRecoveryAction||``,r=t.dataset.cmdText||``;if(r){if(n===`reinsert`){let e=document.getElementById(`chatInput`);if(!e)return;e.value=r,e.focus(),e.selectionStart=e.selectionEnd=e.value.length,e.dispatchEvent(new Event(`input`,{bubbles:!0}));return}n===`copy`&&await le(r)}});var hn=!1;async function gn(e=`enter`){let t=document.getElementById(`chatInput`),r=document.getElementById(`btnSend`);if(!t||!r)return;let a=t.value.trim();if(!ve(e===`button`&&r.classList.contains(`stop-mode`)?``:a)){be();return}let s=e===`button`;if(r.classList.contains(`stop-mode`)&&s){o(`/api/stop`,`POST`,h({}));return}if(hn||!a&&!n.attachedFiles.length)return;ne(),hn=!0;let c=r,u=c.disabled;c.disabled=!0;try{await dt();let e=a.slice(1).trim().split(/\s+/)[0]||``,r=e.includes(`/`)||e.includes(`\\`),o=a.startsWith(`/`)&&!r;if(o&&!n.attachedFiles.length){if(t.value=``,k(),He(),Ve(a))return;try{await pn(a,await fn(a))}catch(e){y(m(`chat.cmd.fail`,{msg:e.message}),``,`error`)}finally{l(`command`).catch(()=>{})}return}if(n.attachedFiles.length){let e=`📎 [${n.attachedFiles.map(e=>e.name).join(`, `)}] ${a}`;v(`user`,e),b({role:`user`,content:e,timestamp:Date.now()}),t.value=``,k();try{let e=await Promise.all(n.attachedFiles.map(e=>vn(e))),t=cn(e,a);if(D(),o){He();try{let n=ln(a,e);await pn(n,await fn(n),async()=>{await i(`/api/message`,`POST`,h({prompt:t}))})}catch(e){y(m(`chat.cmd.fail`,{msg:e.message}),``,`error`)}finally{l(`command`).catch(()=>{})}return}await i(`/api/message`,`POST`,h({prompt:t}))}catch(e){y(m(`chat.file.uploadFail`,{msg:e.message})),D()}}else{t.value=``,k();let e=await dn(a),n=e.data;if(e.status===409&&n.error===`duplicate`)return;if(!e.ok){y(`${p.error} ${f(n.error||m(`chat.requestFail`,{status:e.status}))}`,``,`error`);return}if(n.queued){let{updateQueueBadge:e}=await d(async()=>{let{updateQueueBadge:e}=await import(`./ui-XPQDPe-5.js`);return{updateQueueBadge:e}},__vite__mapDeps([0]));e(n.pending||1)}else e.viaRelay?(b({role:`user`,content:a,timestamp:Date.now()}),n.continued&&y(m(`chat.continue`)),_(!0)):n.noPendingContinue?(v(`user`,a),b({role:`user`,content:a,timestamp:Date.now()}),_(!0)):n.continued?(v(`user`,a),b({role:`user`,content:a,timestamp:Date.now()}),y(m(`chat.continue`)),_(!0)):(v(`user`,a),b({role:`user`,content:a,timestamp:Date.now()}),_(!0))}}finally{hn=!1,c.disabled=u}}function _n(e){e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.preventDefault(),gn(`enter`))}async function vn(e){let t=await fetch(`${s}/api/upload`,{method:`POST`,headers:{"X-Filename":encodeURIComponent(e.name)},body:e});if(!t.ok)throw Error(`upload failed`);return(await t.json()).path}function yn(e){for(let t of e)n.attachedFiles.some(e=>e.name===t.name)||n.attachedFiles.push(t);O(),document.getElementById(`chatInput`)?.focus()}function bn(e){n.attachedFiles.splice(e,1),O()}function D(){E.forEach(e=>URL.revokeObjectURL(e)),E=[],n.attachedFiles=[],O();let e=document.getElementById(`fileInput`);e&&(e.value=``)}function O(){let e=document.getElementById(`filePreview`),t=document.getElementById(`filePreviewList`);if(e){if(E.forEach(e=>URL.revokeObjectURL(e)),E=[],!n.attachedFiles.length){e.classList.remove(`visible`),t&&(t.innerHTML=``);return}e.classList.add(`visible`),t&&(t.innerHTML=n.attachedFiles.map((e,t)=>{let n=(e.size/1024).toFixed(1),r=e.type.startsWith(`image/`),i=``;if(r){let t=URL.createObjectURL(e);E.push(t),i=`<img src="${t}" class="file-chip-thumb" alt="">`}return`<div class="file-chip">
|
|
14
14
|
${i}
|
|
15
15
|
<span class="file-chip-name">${p.paperclip} ${f(e.name)} (${n}KB)</span>
|
|
16
16
|
<button class="file-chip-remove" data-file-idx="${t}" title="Remove">${p.close}</button>
|
|
17
|
-
</div>`}).join(``))}}async function xn(){ye(),g().clear();let e=document.getElementById(`chatMessages`);e&&(e.innerHTML=``);let{cleanupToolActivity:t}=await d(async()=>{let{cleanupToolActivity:e}=await import(`./ui-
|
|
17
|
+
</div>`}).join(``))}}async function xn(){ye(),g().clear();let e=document.getElementById(`chatMessages`);e&&(e.innerHTML=``);let{cleanupToolActivity:t}=await d(async()=>{let{cleanupToolActivity:e}=await import(`./ui-XPQDPe-5.js`);return{cleanupToolActivity:e}},__vite__mapDeps([0]));t(),Ae().catch(()=>{}),ne()}var Sn=0;function Cn(e){if(Sn)return;let t=Ee();Sn=requestAnimationFrame(()=>{if(Sn=0,e.style.height=`auto`,e.style.height=e.scrollHeight+`px`,t){let e=document.getElementById(`chatMessages`);e&&(e.scrollTop=e.scrollHeight,we())}})}function wn(){let e=document.getElementById(`chatInput`);e&&e.addEventListener(`input`,()=>Cn(e))}function k(){let e=document.getElementById(`chatInput`),t=Ee();if(e&&(e.style.height=`auto`),t){let e=document.getElementById(`chatMessages`);e&&(e.scrollTop=e.scrollHeight,we())}}function Tn(){let e=document.querySelector(`.chat-area`),t=document.getElementById(`dragOverlay`);if(!e||!t)return;let n=0;e.addEventListener(`dragenter`,e=>{e.preventDefault(),n++,t.classList.add(`visible`)}),e.addEventListener(`dragleave`,e=>{e.preventDefault(),n--,n<=0&&(n=0,t.classList.remove(`visible`))}),e.addEventListener(`dragover`,e=>e.preventDefault()),e.addEventListener(`drop`,e=>{e.preventDefault(),n=0,t.classList.remove(`visible`);let r=[...e.dataTransfer?.files||[]];r.length&&yn(r)}),document.getElementById(`fileInput`)?.addEventListener(`change`,e=>{let t=e.target,n=[...t.files||[]];n.length&&yn(n),t.value=``}),document.addEventListener(`paste`,e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t){if(e.kind!==`file`)continue;let t=e.getAsFile();if(t)if(!t.name||t.name===`image.png`){let e=new Date().toISOString().replace(/[:.]/g,`-`),r=t.type.split(`/`)[1]||`png`,i=new File([t],`pasted-${e}.${r}`,{type:t.type});n.push(i)}else n.push(t)}n.length&&(e.preventDefault(),yn(n))})}async function En(e,t,r){if(!ve()){be();return}let a=document.getElementById(`chatInput`),o=a?.value.trim()||``,c=[...n.attachedFiles],l=[m(`chat.voice.label`)];c.length&&l.push(`📎 [${c.map(e=>e.name).join(`, `)}]`),o&&l.push(o),v(`user`,l.join(` `)),b({role:`user`,content:l.join(` `),timestamp:Date.now()}),a&&o&&(a.value=``,k()),c.length&&D();try{let n=await fetch(`${s}/api/voice`,{method:`POST`,headers:{"Content-Type":r,"X-Voice-Ext":t,"X-STT-Only":`true`},body:e});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error||`HTTP ${n.status}`)}let a=await n.json().catch(()=>null);if(!a?.text)throw Error(`Empty STT result`);y(`${p.mic} STT (${f(a.engine||``)}, ${a.elapsed?.toFixed(1)}s): "${f(a.text.slice(0,100))}"`,``,`info`);let l=[];c.length&&(l=await Promise.all(c.map(e=>vn(e))));let u=[];for(let e of l)u.push(sn(e));u.push(`🎤 ${a.text}`),o&&u.push(o),await i(`/api/message`,`POST`,h({prompt:u.join(`
|
|
18
18
|
`)}))}catch(e){y(m(`voice.sttFail`,{msg:e.message}),``,`error`)}}var Dn={sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},On={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12};function kn(e){let t=typeof e==`string`?e.trim():``;if(t)try{return new Intl.DateTimeFormat(`en-US`,{timeZone:t}).format(new Date),t}catch{return}}function An(e){let t=e&&typeof e==`object`?e:{},n=t.kind,r=typeof t.timeZone==`string`?t.timeZone.trim():``,i=kn(t.timeZone);if(r&&!i)return{ok:!1,code:`invalid_timezone`,error:`invalid timeZone "${r}"`};if(n===`cron`){let e=typeof t.cron==`string`?t.cron.trim().replace(/\s+/g,` `):``;if(!e)return{ok:!1,code:`invalid_cron`,error:`cron expression required`};let n=jn(e);return n?{ok:!1,code:`invalid_cron`,error:n}:{ok:!0,schedule:i?{kind:`cron`,cron:e,timeZone:i}:{kind:`cron`,cron:e}}}if(n==null||n===`every`){let e=typeof t.minutes==`number`?t.minutes:Number(t.minutes);if(!Number.isInteger(e)||e<1)return{ok:!1,code:`invalid_minutes`,error:`minutes must be an integer >= 1`};let n=Math.max(1,Math.floor(e));return{ok:!0,schedule:i?{kind:`every`,minutes:n,timeZone:i}:{kind:`every`,minutes:n}}}return{ok:!1,code:`invalid_kind`,error:`invalid heartbeat schedule kind "${String(n)}"`}}function jn(e){try{let[t,n,r,i,a]=Mn(e);return A(t,{min:0,max:59}),A(n,{min:0,max:23}),A(r,{min:1,max:31}),A(i,{min:1,max:12,aliases:On}),A(a,{min:0,max:7,aliases:Dn,normalize:Fn}),null}catch(e){return e.message}}function Mn(e){let t=String(e||``).trim().replace(/\s+/g,` `).split(` `);if(t.length!==5)throw Error(`cron must have 5 fields, got ${t.length}`);return t}function A(e,t){for(let n of e.split(`,`))Nn(n.trim(),t)}function Nn(e,t){if(!e)throw Error(`empty cron segment`);let n=e;if(e.includes(`/`)){let[t,r,...i]=e.split(`/`);if(!t||!r||i.length>0)throw Error(`invalid cron step segment "${e}"`);n=t,Pn(r,`invalid cron step "${r}"`)}if(n!==`*`){if(n.includes(`-`)){let[e,r,...i]=n.split(`-`);if(!e||!r||i.length>0||j(e,t)>j(r,t))throw Error(`invalid cron range "${n}"`);return}j(n,t)}}function j(e,t){let n=e.trim().toLowerCase(),r=t.aliases?.[n]??Number(n);if(!Number.isInteger(r))throw Error(`invalid cron value "${e}"`);let i=t.normalize?t.normalize(r):r;if(!In(i,t.min,t.max))throw Error(`cron value "${e}" out of range ${t.min}-${t.max}`);return i}function Pn(e,t){let n=Number(e);if(!Number.isInteger(n)||n<=0)throw Error(t);return n}function Fn(e){return e===7?0:e}function In(e,t,n){return e>=t&&e<=n}async function Ln(){n.heartbeatJobs=((await a(`/api/heartbeat`))?.jobs||[]).map(P),n.heartbeatErrors=I(n.heartbeatJobs),M(),document.getElementById(`heartbeatModal`)?.classList.add(`open`)}function Rn(e){e&&e.target!==e.currentTarget||document.getElementById(`heartbeatModal`)?.classList.remove(`open`)}function M(){let e=document.getElementById(`hbJobsList`);if(!e)return;let t=n.heartbeatJobs.map(P);n.heartbeatJobs=t,n.heartbeatErrors=I(t),t.length===0?e.innerHTML=`<p style="color:var(--text-dim);font-size:12px;text-align:center">${m(`hb.empty`)}</p>`:e.innerHTML=t.map((e,t)=>{let r=Un(e.schedule),i=r.kind===`cron`,a=n.heartbeatErrors[e.id],o=a||Yn(r),s=a?`hb-schedule-meta hb-error`:`hb-schedule-meta hb-help`,c=i?`<input type="text" value="${f(r.cron)}" placeholder="${f(m(`hb.cronPlaceholder`))}"
|
|
19
19
|
data-hb-cron="${t}">`:`<input type="number" value="${r.minutes}" min="1" data-hb-minutes="${t}">`,l=i?`<span class="hb-chip">${f(m(`hb.cronLabel`))}</span>`:`<span class="hb-chip">${f(m(`hb.minutesLabel`))}</span>`;return`
|
|
20
20
|
<div class="hb-job-card">
|
|
@@ -52,4 +52,4 @@ import{n as e,r as t}from"./vendor-render-DCb9B75Q.js";import{t as n}from"./stat
|
|
|
52
52
|
<div class="media-lightbox-controls">
|
|
53
53
|
<button class="media-lightbox-open" aria-label="Open in browser">↗ Open</button>
|
|
54
54
|
<button class="media-lightbox-close" aria-label="Close">✕</button>
|
|
55
|
-
</div></div>`,document.body.appendChild(e);let t=``,n=()=>e.classList.add(`hidden`),r=()=>{t&&window.open(t,`_blank`)};e.querySelector(`.media-lightbox-backdrop`).addEventListener(`click`,n),e.querySelector(`.media-lightbox-close`).addEventListener(`click`,n),e.querySelector(`.media-lightbox-open`).addEventListener(`click`,r),e.querySelector(`.media-lightbox-img`).addEventListener(`dblclick`,r),document.addEventListener(`keydown`,t=>{t.key===`Escape`&&!e.classList.contains(`hidden`)&&n()}),document.addEventListener(`click`,n=>{let r=n.target;(r.classList.contains(`chat-inline-img`)||r.closest(`.file-preview-list`)&&r.tagName===`IMG`)&&(t=r.src,e.querySelector(`.media-lightbox-img`).src=t,e.classList.remove(`hidden`))})}var Xr=`jaw:stale-bundle-reload-pending`;function Zr(e){let t=typeof e==`string`?e:e instanceof Error||typeof e?.message==`string`?e.message:``;if(!/(failed to fetch dynamically imported module|error loading dynamically imported module|importing a module script failed|chunkloaderror)/i.test(t))return!1;console.warn(`[stale-bundle] detected dynamic import failure:`,t);try{if(sessionStorage.getItem(Xr)===`1`)return!0;sessionStorage.setItem(Xr,`1`)}catch{}let n=()=>window.location.reload();return`serviceWorker`in navigator?(navigator.serviceWorker.getRegistration().then(e=>e?.update()).catch(()=>{}).finally(n),!0):(n(),!0)}window.addEventListener(`unhandledrejection`,e=>{if(Zr(e.reason)){e.preventDefault();return}console.error(`[unhandled]`,e.reason),e.preventDefault()}),window.addEventListener(`error`,e=>{if(Zr(e.error||e.message)){e.preventDefault();return}console.error(`[error]`,e.message,e.filename,e.lineno)});var{loadEmployees:Qr,addEmployee:$r,deleteEmployee:ei,updateEmployee:Q,onEmpCliChange:ti,onEmpRoleChange:ni}=await d(async()=>{let{loadEmployees:e,addEmployee:t,deleteEmployee:n,updateEmployee:r,onEmpCliChange:i,onEmpRoleChange:a}=await import(`./employees-B_wKPfTO.js`);return{loadEmployees:e,addEmployee:t,deleteEmployee:n,updateEmployee:r,onEmpCliChange:i,onEmpRoleChange:a}},__vite__mapDeps([0]));function ri(e){if(e===window.location.origin)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`[::1]`}catch{return!1}}function ii(e){let t=(e.ctrlKey||e.metaKey)&&e.shiftKey&&e.code===`Space`,n=e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&e.code===`KeyM`;return t||n}document.getElementById(`btnSend`)?.addEventListener(`click`,()=>{gn(`button`)});var ai=document.getElementById(`chatInput`);ai?.addEventListener(`keydown`,e=>{Be(e)||_n(e)});var $=0;ai?.addEventListener(`input`,e=>{e.isComposing||($&&cancelAnimationFrame($),$=requestAnimationFrame(()=>{ze(e.target?.value||``),$=0}))}),ai?.addEventListener(`cmd-execute`,()=>{gn(`cmd-execute`)}),document.getElementById(`cmdDropdown`)?.addEventListener(`click`,Re),document.addEventListener(`click`,Le),u(),$t(),document.getElementById(`filePreviewClear`)?.addEventListener(`click`,D),document.getElementById(`filePreviewList`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-file-idx]`);t&&bn(+(t.dataset.fileIdx||`0`))}),document.querySelector(`.btn-attach`)?.addEventListener(`click`,()=>{document.getElementById(`fileInput`)?.click()}),document.getElementById(`btnVoice`)?.addEventListener(`click`,()=>jr()),document.getElementById(`btnVoiceCancel`)?.addEventListener(`click`,()=>Ar()),window.addEventListener(`message`,e=>{if(window.parent===window||e.source!==window.parent||!ri(e.origin))return;let t=e.data;!t||t.type!==`jaw-preview-stt-toggle`||jr()}),document.getElementById(`memorySidebarBtn`)?.addEventListener(`click`,Ut),document.getElementById(`btnClearChat`)?.addEventListener(`click`,xn),document.getElementById(`hbSidebarBtn`)?.addEventListener(`click`,Ln),document.getElementById(`langSelect`)?.addEventListener(`change`,async e=>{let t=e.target.value;[`ko`,`en`,`zh`,`ja`].includes(t)&&(await pe(t),ie())}),document.querySelector(`.tab-bar`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`.tab-btn`);if(!t)return;let n=[...t.parentElement?.children||[]].filter(e=>e.classList.contains(`tab-btn`)).indexOf(t),r=[`agents`,`skills`,`settings`];r[n]&&Me(r[n],t)}),document.querySelector(`.sidebar-save-bar .btn-save`)?.addEventListener(`click`,Ne);function oi(e){let t=(e instanceof HTMLSelectElement?e:document.getElementById(`selCliProvider`))?.value||``,n=document.getElementById(`providerAiE`);!t||!n||Array.from(n.options).some(e=>e.value===t)&&(n.value=t)}document.getElementById(`selCli`)?.addEventListener(`change`,()=>ft()),document.getElementById(`selCliProvider`)?.addEventListener(`change`,e=>{oi(e.target),ft(),C()}),document.getElementById(`selModel`)?.addEventListener(`change`,()=>C()),document.getElementById(`selEffort`)?.addEventListener(`change`,()=>C()),document.getElementById(`flushCli`)?.addEventListener(`change`,()=>mt()),document.getElementById(`flushModel`)?.addEventListener(`change`,()=>mt()),document.querySelector(`[data-action="addEmployee"]`)?.addEventListener(`click`,$r),document.getElementById(`employeesList`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-emp-delete]`);if(t){ei(t.dataset.empDelete||``);return}}),document.getElementById(`employeesList`)?.addEventListener(`change`,e=>{let t=e.target,n=t.closest(`[data-emp-name]`);if(n){Q(n.dataset.empName||``,{name:t.value});return}let r=t.closest(`[data-emp-cli]`);if(r){ti(r.dataset.empCli||``,t.value);return}let i=t.closest(`[data-emp-model]`);if(i){if(t.value===`__custom__`){let e=prompt(m(`model.promptInput`));if(e?.trim()){let n=document.createElement(`option`);n.value=e.trim(),n.textContent=e.trim();let r=t.querySelector(`option[value="__custom__"]`);r&&t.insertBefore(n,r),t.value=e.trim(),Q(i.dataset.empModel||``,{model:e.trim()})}else t.value=`default`}else Q(i.dataset.empModel||``,{model:t.value});return}let a=t.closest(`[data-emp-role]`);if(a){ni(a.dataset.empRole||``,t.value);return}let o=t.closest(`[data-emp-custom]`);if(o){Q(o.dataset.empCustom||``,{role:t.value});return}}),document.getElementById(`skillsList`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-skill-id]`);t&&xt(t.dataset.skillId||``,t.dataset.skillEnabled===`true`)}),document.querySelector(`#tabSkills`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`.skill-filter`);t&&Ct(t.dataset.filter||`all`,t)}),document.getElementById(`skillSearchInput`)?.addEventListener(`input`,e=>{St(e.target.value)}),document.querySelector(`[data-action="openPrompt"]`)?.addEventListener(`click`,It),document.getElementById(`tgOff`)?.addEventListener(`click`,()=>Ze(!1)),document.getElementById(`tgOn`)?.addEventListener(`click`,()=>Ze(!0)),document.getElementById(`tgForwardOff`)?.addEventListener(`click`,()=>Xe(!1)),document.getElementById(`tgForwardOn`)?.addEventListener(`click`,()=>Xe(!0)),document.getElementById(`tgMentionOff`)?.addEventListener(`click`,()=>nt(!1)),document.getElementById(`tgMentionOn`)?.addEventListener(`click`,()=>nt(!0)),document.getElementById(`tgToken`)?.addEventListener(`change`,Ye),document.getElementById(`tgChatIds`)?.addEventListener(`change`,Ye),document.getElementById(`chTelegram`)?.addEventListener(`click`,()=>x(`telegram`)),document.getElementById(`chDiscord`)?.addEventListener(`click`,()=>x(`discord`)),document.getElementById(`dcOff`)?.addEventListener(`click`,()=>lt(!1)),document.getElementById(`dcOn`)?.addEventListener(`click`,()=>lt(!0)),document.getElementById(`dcForwardOff`)?.addEventListener(`click`,()=>$e(!1)),document.getElementById(`dcForwardOn`)?.addEventListener(`click`,()=>$e(!0)),document.getElementById(`dcAllowBotsOff`)?.addEventListener(`click`,()=>Qe(!1)),document.getElementById(`dcAllowBotsOn`)?.addEventListener(`click`,()=>Qe(!0)),document.getElementById(`dcMentionOff`)?.addEventListener(`click`,()=>tt(!1)),document.getElementById(`dcMentionOn`)?.addEventListener(`click`,()=>tt(!0)),document.getElementById(`dcToken`)?.addEventListener(`change`,Ge),document.getElementById(`dcGuildId`)?.addEventListener(`change`,Ge),document.getElementById(`dcChannelIds`)?.addEventListener(`change`,Ge),document.getElementById(`chSlack`)?.addEventListener(`click`,()=>x(`slack`)),document.getElementById(`slOff`)?.addEventListener(`click`,()=>rt(!1)),document.getElementById(`slOn`)?.addEventListener(`click`,()=>rt(!0)),document.getElementById(`slForwardOff`)?.addEventListener(`click`,()=>qe(!1)),document.getElementById(`slForwardOn`)?.addEventListener(`click`,()=>qe(!0)),document.getElementById(`slAllowBotsOff`)?.addEventListener(`click`,()=>Je(!1)),document.getElementById(`slAllowBotsOn`)?.addEventListener(`click`,()=>Je(!0)),document.getElementById(`slMentionOff`)?.addEventListener(`click`,()=>et(!1)),document.getElementById(`slMentionOn`)?.addEventListener(`click`,()=>et(!0)),document.getElementById(`slThreadOff`)?.addEventListener(`click`,()=>ut(!1)),document.getElementById(`slThreadOn`)?.addEventListener(`click`,()=>ut(!0)),document.getElementById(`slBotToken`)?.addEventListener(`change`,w),document.getElementById(`slAppToken`)?.addEventListener(`change`,w),document.getElementById(`slTeamId`)?.addEventListener(`change`,w),document.getElementById(`slChannelIds`)?.addEventListener(`change`,w),document.getElementById(`slAttachPort`)?.addEventListener(`change`,w),yt(),Ke(),document.getElementById(`fallbackOrderList`)?.addEventListener(`change`,_t);function si(e){let t=document.getElementById(`codexFastOn`),n=document.getElementById(`codexFastOff`);t&&n&&(t.classList.toggle(`active`,e),n.classList.toggle(`active`,!e)),S()}document.getElementById(`codexFastOn`)?.addEventListener(`click`,()=>si(!0)),document.getElementById(`codexFastOff`)?.addEventListener(`click`,()=>si(!1));function ci(e){let t=document.getElementById(`codexCtxOn`),n=document.getElementById(`codexCtxOff`),r=document.getElementById(`codexCtxValues`);t&&n&&(t.classList.toggle(`active`,e),n.classList.toggle(`active`,!e)),r&&(r.style.display=e?``:`none`),S()}document.getElementById(`codexCtxOn`)?.addEventListener(`click`,()=>ci(!0)),document.getElementById(`codexCtxOff`)?.addEventListener(`click`,()=>ci(!1)),document.getElementById(`codexCtxWindow`)?.addEventListener(`change`,S),document.getElementById(`codexCtxCompact`)?.addEventListener(`change`,S);function li(e){let t=document.getElementById(`claude1mOn`),n=document.getElementById(`claude1mOff`),r=document.getElementById(`modelClaude`),i=e;if(r){let t=r.value||``;if(e&&!t.endsWith(`[1m]`)){let e=t+`[1m]`;Array.from(r.options).some(t=>t.value===e)?r.value=e:i=!1}else if(!e&&t.endsWith(`[1m]`)){let e=t.replace(/\[1m\]$/,``);Array.from(r.options).some(t=>t.value===e)?r.value=e:i=!0}else i=t.endsWith(`[1m]`)}t&&n&&(t.classList.toggle(`active`,i),n.classList.toggle(`active`,!i)),S()}document.getElementById(`claude1mOn`)?.addEventListener(`click`,()=>li(!0)),document.getElementById(`claude1mOff`)?.addEventListener(`click`,()=>li(!1));function ui(e){return e.split(/[^a-zA-Z0-9]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function di(){for(let e of Ue()){let t=ui(e),n=document.getElementById(`model`+t);n&&n.addEventListener(`change`,function(){pt(e,this)});let r=document.getElementById(`customModel`+t);r&&r.addEventListener(`change`,function(){ht(e,this)});let i=document.getElementById(`effort`+t);i&&i.addEventListener(`change`,S)}document.getElementById(`providerAiE`)?.addEventListener(`change`,at)}document.querySelector(`[data-action="openMcpModal"]`)?.addEventListener(`click`,gt),document.querySelector(`[data-action="syncMcp"]`)?.addEventListener(`click`,vt),document.querySelector(`[data-action="installMcp"]`)?.addEventListener(`click`,ot),st(),document.querySelector(`[data-action="refreshCli"]`)?.addEventListener(`click`,()=>{Dt()?Mt(!0):jt()}),document.getElementById(`cliStatusInterval`)?.addEventListener(`change`,function(){Ot(this.value)}),document.getElementById(`promptModal`)?.addEventListener(`click`,e=>T(e)),document.querySelector(`#promptModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.querySelector(`[data-action="closePrompt"]`)?.addEventListener(`click`,()=>T()),document.querySelector(`[data-action="cancelPrompt"]`)?.addEventListener(`click`,()=>T()),document.querySelector(`[data-action="savePrompt"]`)?.addEventListener(`click`,wt),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&!n.isRecording&&T()}),document.querySelector(`[data-action="openTemplates"]`)?.addEventListener(`click`,At),document.querySelector(`[data-action="saveTemplate"]`)?.addEventListener(`click`,Pt),document.querySelector(`[data-action="closeTemplate"]`)?.addEventListener(`click`,()=>Nt()),document.getElementById(`templateModal`)?.addEventListener(`click`,e=>Nt(e)),document.querySelector(`#templateModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.getElementById(`templateBack`)?.addEventListener(`click`,Lt),document.getElementById(`templateDevToggle`)?.addEventListener(`click`,Tt);var{openPiSettingsModal:fi,closePiSettingsModal:pi,registerPiProfile:mi,onPiModeChange:hi,syncPiModelDropdown:gi,getCachedPi:_i}=await d(async()=>{let{openPiSettingsModal:e,closePiSettingsModal:t,registerPiProfile:n,onPiModeChange:r,syncPiModelDropdown:i,getCachedPi:a}=await import(`./pi-settings-5HVg1sXJ.js`);return{openPiSettingsModal:e,closePiSettingsModal:t,registerPiProfile:n,onPiModeChange:r,syncPiModelDropdown:i,getCachedPi:a}},[]);document.getElementById(`btnPiSettings`)?.addEventListener(`click`,fi),document.getElementById(`piSettingsModal`)?.addEventListener(`click`,e=>{e.target===e.currentTarget&&pi()}),document.querySelector(`#piSettingsModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.querySelector(`[data-action="closePiSettings"]`)?.addEventListener(`click`,pi),document.getElementById(`btnPiRegister`)?.addEventListener(`click`,()=>void mi()),document.getElementById(`piMode`)?.addEventListener(`change`,hi),document.getElementById(`providerPi`)?.addEventListener(`change`,async()=>{let e=document.getElementById(`providerPi`);if(e?.value){gi(e.value,_i());let{savePerCli:t}=await d(async()=>{let{savePerCli:e}=await import(`./settings-core-X_5UHfr3.js`);return{savePerCli:e}},__vite__mapDeps([0]));await t()}}),document.getElementById(`heartbeatModal`)?.addEventListener(`click`,e=>Rn(e)),document.querySelector(`#heartbeatModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.querySelector(`[data-action="closeHeartbeat"]`)?.addEventListener(`click`,()=>Rn()),document.querySelector(`[data-action="addHeartbeat"]`)?.addEventListener(`click`,zn),document.getElementById(`hbJobsList`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-hb-toggle]`);if(t){Vn(+(t.dataset.hbToggle||`0`));return}let n=e.target?.closest(`[data-hb-remove]`);if(n){Bn(+(n.dataset.hbRemove||`0`));return}}),document.getElementById(`hbJobsList`)?.addEventListener(`change`,e=>{let t=e.target,r=t.closest(`[data-hb-name]`);if(r){n.heartbeatJobs[+(r.dataset.hbName||`0`)].name=t.value,N();return}let i=t.closest(`[data-hb-kind]`);if(i){let e=+(i.dataset.hbKind||`0`),r=n.heartbeatJobs[e]?.schedule,a=typeof r?.timeZone==`string`?r.timeZone:void 0;n.heartbeatJobs[e].schedule=t.value===`cron`?{kind:`cron`,cron:typeof r?.cron==`string`&&r.cron.trim()?r.cron:`0 9 * * *`,...a?{timeZone:a}:{}}:{kind:`every`,minutes:typeof r?.minutes==`number`&&r.minutes>0?Math.floor(r.minutes):5,...a?{timeZone:a}:{}},M(),N();return}let a=t.closest(`[data-hb-minutes]`);if(a){let e=+(a.dataset.hbMinutes||`0`),r=n.heartbeatJobs[e]?.schedule,i=Math.max(1,Math.floor(Number(t.value)||5)),o=typeof r?.timeZone==`string`?r.timeZone:void 0;n.heartbeatJobs[e].schedule={kind:`every`,minutes:i,...o?{timeZone:o}:{}},M(),N();return}let o=t.closest(`[data-hb-cron]`);if(o){let e=+(o.dataset.hbCron||`0`),r=n.heartbeatJobs[e]?.schedule,i=typeof r?.timeZone==`string`?r.timeZone:void 0,a=t.value.trim().replace(/\s+/g,` `);n.heartbeatJobs[e].schedule={kind:`cron`,cron:a,...i?{timeZone:i}:{}},M(),N();return}let s=t.closest(`[data-hb-timezone]`);if(s){let e=+(s.dataset.hbTimezone||`0`),r=n.heartbeatJobs[e]?.schedule;r?.kind===`cron`?n.heartbeatJobs[e].schedule={kind:`cron`,cron:typeof r.cron==`string`&&r.cron.trim()?r.cron:`0 9 * * *`,...t.value.trim()?{timeZone:t.value.trim()}:{}}:n.heartbeatJobs[e].schedule={kind:`every`,minutes:typeof r?.minutes==`number`&&r.minutes>0?Math.floor(r.minutes):5,...t.value.trim()?{timeZone:t.value.trim()}:{}},M(),N();return}let c=t.closest(`[data-hb-prompt]`);if(c){n.heartbeatJobs[+(c.dataset.hbPrompt||`0`)].prompt=t.value,N();return}}),document.getElementById(`memoryModal`)?.addEventListener(`click`,e=>Zt(e)),document.querySelector(`#memoryModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.querySelector(`[data-action="closeMemory"]`)?.addEventListener(`click`,()=>Zt()),document.getElementById(`memTabBtnSettings`)?.addEventListener(`click`,()=>Qt(`settings`)),document.getElementById(`memTabBtnAdvOps`)?.addEventListener(`click`,()=>Qt(`status`)),document.getElementById(`memTabBtnFiles`)?.addEventListener(`click`,()=>Qt(`files`)),document.getElementById(`memOn`)?.addEventListener(`click`,()=>Wt(!0)),document.getElementById(`memOff`)?.addEventListener(`click`,()=>Wt(!1)),document.getElementById(`memFlushEvery`)?.addEventListener(`change`,Bt),document.getElementById(`memRetention`)?.addEventListener(`change`,Bt),document.getElementById(`memFlushLang`)?.addEventListener(`change`,Bt),document.getElementById(`memFlushNowBtn`)?.addEventListener(`click`,Ht),document.getElementById(`advBootstrapBtn`)?.addEventListener(`click`,Xt),document.getElementById(`advReindexBtn`)?.addEventListener(`click`,qt),document.getElementById(`advReimportBtn`)?.addEventListener(`click`,Xt),document.getElementById(`advOpenCorruptedBtn`)?.addEventListener(`click`,Yt),document.getElementById(`advStatusBanner`)?.addEventListener(`click`,e=>{e.target?.id===`advUpgradeSoulBtn`&&Jt(),e.target?.id===`advSynthesizeSoulBtn`&&Vt()}),document.getElementById(`basicMemoryFiles`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-mem-delete]`);if(t){e.stopPropagation(),Kt(t.dataset.memDelete||``);return}let n=e.target?.closest(`[data-mem-view]`);if(n){Gt(n.dataset.memView||``);return}if(e.target?.closest(`[data-mem-back]`)){Ut();return}});async function vi(){se(),bt(),$n(),or(),Se(),Ce(),await fe();let e=await ge({cancelRecording:Ar});if(e===`redirect`)return;ee(xe);let t=document.getElementById(`langSelect`);if(t&&(t.value=de()),Ie(),e===`hub`){oe(),c();return}if(Lr(),Yr(),document.getElementById(`chatSearchTrigger`)?.addEventListener(`click`,Rr),oe(),c(),await We(),di(),Tn(),wn(),await Fe(),await it(),ct(),kt(),Et(),Rt(),Dt()&&Mt(),ae(),Qr(),Hn(),zt(),Oe(),await De(),je(),fr(),window.location.hash===`#settings`){let e=document.getElementById(`tabBtnSettings`);e&&Me(`settings`,e)}try{sessionStorage.removeItem(Xr)}catch{}setTimeout(()=>{document.querySelector(`.mermaid-pending, [data-mermaid-code-raw], .diagram-widget-pending`)&&ce()},3e3),`serviceWorker`in navigator&&!Ft()&&navigator.serviceWorker.register(`/sw.js`).catch(()=>{})}vi().catch(e=>{console.error(`[bootstrap]`,e)}),document.addEventListener(`keydown`,e=>{(e.ctrlKey||e.metaKey)&&e.key===`f`&&(e.preventDefault(),e.stopPropagation(),Rr())},!0),document.addEventListener(`keydown`,e=>{if(e.key===`Escape`){if(document.getElementById(`chatSearch`)?.classList.contains(`open`)){e.preventDefault(),Z();return}if(n.isRecording){e.preventDefault(),Ar();return}document.querySelectorAll(`.modal-overlay.open`).forEach(e=>{e.classList.remove(`open`)})}ii(e)&&(e.preventDefault(),jr())}),document.getElementById(`mobileMenuLeft`)?.addEventListener(`click`,re),document.getElementById(`mobileMenuRight`)?.addEventListener(`click`,te);
|
|
55
|
+
</div></div>`,document.body.appendChild(e);let t=``,n=()=>e.classList.add(`hidden`),r=()=>{t&&window.open(t,`_blank`)};e.querySelector(`.media-lightbox-backdrop`).addEventListener(`click`,n),e.querySelector(`.media-lightbox-close`).addEventListener(`click`,n),e.querySelector(`.media-lightbox-open`).addEventListener(`click`,r),e.querySelector(`.media-lightbox-img`).addEventListener(`dblclick`,r),document.addEventListener(`keydown`,t=>{t.key===`Escape`&&!e.classList.contains(`hidden`)&&n()}),document.addEventListener(`click`,n=>{let r=n.target;(r.classList.contains(`chat-inline-img`)||r.closest(`.file-preview-list`)&&r.tagName===`IMG`)&&(t=r.src,e.querySelector(`.media-lightbox-img`).src=t,e.classList.remove(`hidden`))})}var Xr=`jaw:stale-bundle-reload-pending`;function Zr(e){let t=typeof e==`string`?e:e instanceof Error||typeof e?.message==`string`?e.message:``;if(!/(failed to fetch dynamically imported module|error loading dynamically imported module|importing a module script failed|chunkloaderror)/i.test(t))return!1;console.warn(`[stale-bundle] detected dynamic import failure:`,t);try{if(sessionStorage.getItem(Xr)===`1`)return!0;sessionStorage.setItem(Xr,`1`)}catch{}let n=()=>window.location.reload();return`serviceWorker`in navigator?(navigator.serviceWorker.getRegistration().then(e=>e?.update()).catch(()=>{}).finally(n),!0):(n(),!0)}window.addEventListener(`unhandledrejection`,e=>{if(Zr(e.reason)){e.preventDefault();return}console.error(`[unhandled]`,e.reason),e.preventDefault()}),window.addEventListener(`error`,e=>{if(Zr(e.error||e.message)){e.preventDefault();return}console.error(`[error]`,e.message,e.filename,e.lineno)});var{loadEmployees:Qr,addEmployee:$r,deleteEmployee:ei,updateEmployee:Q,onEmpCliChange:ti,onEmpRoleChange:ni}=await d(async()=>{let{loadEmployees:e,addEmployee:t,deleteEmployee:n,updateEmployee:r,onEmpCliChange:i,onEmpRoleChange:a}=await import(`./employees-eiW0cC8z.js`);return{loadEmployees:e,addEmployee:t,deleteEmployee:n,updateEmployee:r,onEmpCliChange:i,onEmpRoleChange:a}},__vite__mapDeps([0]));function ri(e){if(e===window.location.origin)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`[::1]`}catch{return!1}}function ii(e){let t=(e.ctrlKey||e.metaKey)&&e.shiftKey&&e.code===`Space`,n=e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&e.code===`KeyM`;return t||n}document.getElementById(`btnSend`)?.addEventListener(`click`,()=>{gn(`button`)});var ai=document.getElementById(`chatInput`);ai?.addEventListener(`keydown`,e=>{Be(e)||_n(e)});var $=0;ai?.addEventListener(`input`,e=>{e.isComposing||($&&cancelAnimationFrame($),$=requestAnimationFrame(()=>{ze(e.target?.value||``),$=0}))}),ai?.addEventListener(`cmd-execute`,()=>{gn(`cmd-execute`)}),document.getElementById(`cmdDropdown`)?.addEventListener(`click`,Re),document.addEventListener(`click`,Le),u(),$t(),document.getElementById(`filePreviewClear`)?.addEventListener(`click`,D),document.getElementById(`filePreviewList`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-file-idx]`);t&&bn(+(t.dataset.fileIdx||`0`))}),document.querySelector(`.btn-attach`)?.addEventListener(`click`,()=>{document.getElementById(`fileInput`)?.click()}),document.getElementById(`btnVoice`)?.addEventListener(`click`,()=>jr()),document.getElementById(`btnVoiceCancel`)?.addEventListener(`click`,()=>Ar()),window.addEventListener(`message`,e=>{if(window.parent===window||e.source!==window.parent||!ri(e.origin))return;let t=e.data;!t||t.type!==`jaw-preview-stt-toggle`||jr()}),document.getElementById(`memorySidebarBtn`)?.addEventListener(`click`,Ut),document.getElementById(`btnClearChat`)?.addEventListener(`click`,xn),document.getElementById(`hbSidebarBtn`)?.addEventListener(`click`,Ln),document.getElementById(`langSelect`)?.addEventListener(`change`,async e=>{let t=e.target.value;[`ko`,`en`,`zh`,`ja`].includes(t)&&(await pe(t),ie())}),document.querySelector(`.tab-bar`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`.tab-btn`);if(!t)return;let n=[...t.parentElement?.children||[]].filter(e=>e.classList.contains(`tab-btn`)).indexOf(t),r=[`agents`,`skills`,`settings`];r[n]&&Me(r[n],t)}),document.querySelector(`.sidebar-save-bar .btn-save`)?.addEventListener(`click`,Ne);function oi(e){let t=(e instanceof HTMLSelectElement?e:document.getElementById(`selCliProvider`))?.value||``,n=document.getElementById(`providerAiE`);!t||!n||Array.from(n.options).some(e=>e.value===t)&&(n.value=t)}document.getElementById(`selCli`)?.addEventListener(`change`,()=>ft()),document.getElementById(`selCliProvider`)?.addEventListener(`change`,e=>{oi(e.target),ft(),C()}),document.getElementById(`selModel`)?.addEventListener(`change`,()=>C()),document.getElementById(`selEffort`)?.addEventListener(`change`,()=>C()),document.getElementById(`flushCli`)?.addEventListener(`change`,()=>mt()),document.getElementById(`flushModel`)?.addEventListener(`change`,()=>mt()),document.querySelector(`[data-action="addEmployee"]`)?.addEventListener(`click`,$r),document.getElementById(`employeesList`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-emp-delete]`);if(t){ei(t.dataset.empDelete||``);return}}),document.getElementById(`employeesList`)?.addEventListener(`change`,e=>{let t=e.target,n=t.closest(`[data-emp-name]`);if(n){Q(n.dataset.empName||``,{name:t.value});return}let r=t.closest(`[data-emp-cli]`);if(r){ti(r.dataset.empCli||``,t.value);return}let i=t.closest(`[data-emp-model]`);if(i){if(t.value===`__custom__`){let e=prompt(m(`model.promptInput`));if(e?.trim()){let n=document.createElement(`option`);n.value=e.trim(),n.textContent=e.trim();let r=t.querySelector(`option[value="__custom__"]`);r&&t.insertBefore(n,r),t.value=e.trim(),Q(i.dataset.empModel||``,{model:e.trim()})}else t.value=`default`}else Q(i.dataset.empModel||``,{model:t.value});return}let a=t.closest(`[data-emp-role]`);if(a){ni(a.dataset.empRole||``,t.value);return}let o=t.closest(`[data-emp-custom]`);if(o){Q(o.dataset.empCustom||``,{role:t.value});return}}),document.getElementById(`skillsList`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-skill-id]`);t&&xt(t.dataset.skillId||``,t.dataset.skillEnabled===`true`)}),document.querySelector(`#tabSkills`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`.skill-filter`);t&&Ct(t.dataset.filter||`all`,t)}),document.getElementById(`skillSearchInput`)?.addEventListener(`input`,e=>{St(e.target.value)}),document.querySelector(`[data-action="openPrompt"]`)?.addEventListener(`click`,It),document.getElementById(`tgOff`)?.addEventListener(`click`,()=>Ze(!1)),document.getElementById(`tgOn`)?.addEventListener(`click`,()=>Ze(!0)),document.getElementById(`tgForwardOff`)?.addEventListener(`click`,()=>Xe(!1)),document.getElementById(`tgForwardOn`)?.addEventListener(`click`,()=>Xe(!0)),document.getElementById(`tgMentionOff`)?.addEventListener(`click`,()=>nt(!1)),document.getElementById(`tgMentionOn`)?.addEventListener(`click`,()=>nt(!0)),document.getElementById(`tgToken`)?.addEventListener(`change`,Ye),document.getElementById(`tgChatIds`)?.addEventListener(`change`,Ye),document.getElementById(`chTelegram`)?.addEventListener(`click`,()=>x(`telegram`)),document.getElementById(`chDiscord`)?.addEventListener(`click`,()=>x(`discord`)),document.getElementById(`dcOff`)?.addEventListener(`click`,()=>lt(!1)),document.getElementById(`dcOn`)?.addEventListener(`click`,()=>lt(!0)),document.getElementById(`dcForwardOff`)?.addEventListener(`click`,()=>$e(!1)),document.getElementById(`dcForwardOn`)?.addEventListener(`click`,()=>$e(!0)),document.getElementById(`dcAllowBotsOff`)?.addEventListener(`click`,()=>Qe(!1)),document.getElementById(`dcAllowBotsOn`)?.addEventListener(`click`,()=>Qe(!0)),document.getElementById(`dcMentionOff`)?.addEventListener(`click`,()=>tt(!1)),document.getElementById(`dcMentionOn`)?.addEventListener(`click`,()=>tt(!0)),document.getElementById(`dcToken`)?.addEventListener(`change`,Ge),document.getElementById(`dcGuildId`)?.addEventListener(`change`,Ge),document.getElementById(`dcChannelIds`)?.addEventListener(`change`,Ge),document.getElementById(`chSlack`)?.addEventListener(`click`,()=>x(`slack`)),document.getElementById(`slOff`)?.addEventListener(`click`,()=>rt(!1)),document.getElementById(`slOn`)?.addEventListener(`click`,()=>rt(!0)),document.getElementById(`slForwardOff`)?.addEventListener(`click`,()=>qe(!1)),document.getElementById(`slForwardOn`)?.addEventListener(`click`,()=>qe(!0)),document.getElementById(`slAllowBotsOff`)?.addEventListener(`click`,()=>Je(!1)),document.getElementById(`slAllowBotsOn`)?.addEventListener(`click`,()=>Je(!0)),document.getElementById(`slMentionOff`)?.addEventListener(`click`,()=>et(!1)),document.getElementById(`slMentionOn`)?.addEventListener(`click`,()=>et(!0)),document.getElementById(`slThreadOff`)?.addEventListener(`click`,()=>ut(!1)),document.getElementById(`slThreadOn`)?.addEventListener(`click`,()=>ut(!0)),document.getElementById(`slBotToken`)?.addEventListener(`change`,w),document.getElementById(`slAppToken`)?.addEventListener(`change`,w),document.getElementById(`slTeamId`)?.addEventListener(`change`,w),document.getElementById(`slChannelIds`)?.addEventListener(`change`,w),document.getElementById(`slAttachPort`)?.addEventListener(`change`,w),yt(),Ke(),document.getElementById(`fallbackOrderList`)?.addEventListener(`change`,_t);function si(e){let t=document.getElementById(`codexFastOn`),n=document.getElementById(`codexFastOff`);t&&n&&(t.classList.toggle(`active`,e),n.classList.toggle(`active`,!e)),S()}document.getElementById(`codexFastOn`)?.addEventListener(`click`,()=>si(!0)),document.getElementById(`codexFastOff`)?.addEventListener(`click`,()=>si(!1));function ci(e){let t=document.getElementById(`codexCtxOn`),n=document.getElementById(`codexCtxOff`),r=document.getElementById(`codexCtxValues`);t&&n&&(t.classList.toggle(`active`,e),n.classList.toggle(`active`,!e)),r&&(r.style.display=e?``:`none`),S()}document.getElementById(`codexCtxOn`)?.addEventListener(`click`,()=>ci(!0)),document.getElementById(`codexCtxOff`)?.addEventListener(`click`,()=>ci(!1)),document.getElementById(`codexCtxWindow`)?.addEventListener(`change`,S),document.getElementById(`codexCtxCompact`)?.addEventListener(`change`,S);function li(e){let t=document.getElementById(`claude1mOn`),n=document.getElementById(`claude1mOff`),r=document.getElementById(`modelClaude`),i=e;if(r){let t=r.value||``;if(e&&!t.endsWith(`[1m]`)){let e=t+`[1m]`;Array.from(r.options).some(t=>t.value===e)?r.value=e:i=!1}else if(!e&&t.endsWith(`[1m]`)){let e=t.replace(/\[1m\]$/,``);Array.from(r.options).some(t=>t.value===e)?r.value=e:i=!0}else i=t.endsWith(`[1m]`)}t&&n&&(t.classList.toggle(`active`,i),n.classList.toggle(`active`,!i)),S()}document.getElementById(`claude1mOn`)?.addEventListener(`click`,()=>li(!0)),document.getElementById(`claude1mOff`)?.addEventListener(`click`,()=>li(!1));function ui(e){return e.split(/[^a-zA-Z0-9]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function di(){for(let e of Ue()){let t=ui(e),n=document.getElementById(`model`+t);n&&n.addEventListener(`change`,function(){pt(e,this)});let r=document.getElementById(`customModel`+t);r&&r.addEventListener(`change`,function(){ht(e,this)});let i=document.getElementById(`effort`+t);i&&i.addEventListener(`change`,S)}document.getElementById(`providerAiE`)?.addEventListener(`change`,at)}document.querySelector(`[data-action="openMcpModal"]`)?.addEventListener(`click`,gt),document.querySelector(`[data-action="syncMcp"]`)?.addEventListener(`click`,vt),document.querySelector(`[data-action="installMcp"]`)?.addEventListener(`click`,ot),st(),document.querySelector(`[data-action="refreshCli"]`)?.addEventListener(`click`,()=>{Dt()?Mt(!0):jt()}),document.getElementById(`cliStatusInterval`)?.addEventListener(`change`,function(){Ot(this.value)}),document.getElementById(`promptModal`)?.addEventListener(`click`,e=>T(e)),document.querySelector(`#promptModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.querySelector(`[data-action="closePrompt"]`)?.addEventListener(`click`,()=>T()),document.querySelector(`[data-action="cancelPrompt"]`)?.addEventListener(`click`,()=>T()),document.querySelector(`[data-action="savePrompt"]`)?.addEventListener(`click`,wt),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&!n.isRecording&&T()}),document.querySelector(`[data-action="openTemplates"]`)?.addEventListener(`click`,At),document.querySelector(`[data-action="saveTemplate"]`)?.addEventListener(`click`,Pt),document.querySelector(`[data-action="closeTemplate"]`)?.addEventListener(`click`,()=>Nt()),document.getElementById(`templateModal`)?.addEventListener(`click`,e=>Nt(e)),document.querySelector(`#templateModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.getElementById(`templateBack`)?.addEventListener(`click`,Lt),document.getElementById(`templateDevToggle`)?.addEventListener(`click`,Tt);var{openPiSettingsModal:fi,closePiSettingsModal:pi,registerPiProfile:mi,onPiModeChange:hi,syncPiModelDropdown:gi,getCachedPi:_i}=await d(async()=>{let{openPiSettingsModal:e,closePiSettingsModal:t,registerPiProfile:n,onPiModeChange:r,syncPiModelDropdown:i,getCachedPi:a}=await import(`./pi-settings-5HVg1sXJ.js`);return{openPiSettingsModal:e,closePiSettingsModal:t,registerPiProfile:n,onPiModeChange:r,syncPiModelDropdown:i,getCachedPi:a}},[]);document.getElementById(`btnPiSettings`)?.addEventListener(`click`,fi),document.getElementById(`piSettingsModal`)?.addEventListener(`click`,e=>{e.target===e.currentTarget&&pi()}),document.querySelector(`#piSettingsModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.querySelector(`[data-action="closePiSettings"]`)?.addEventListener(`click`,pi),document.getElementById(`btnPiRegister`)?.addEventListener(`click`,()=>void mi()),document.getElementById(`piMode`)?.addEventListener(`change`,hi),document.getElementById(`providerPi`)?.addEventListener(`change`,async()=>{let e=document.getElementById(`providerPi`);if(e?.value){gi(e.value,_i());let{savePerCli:t}=await d(async()=>{let{savePerCli:e}=await import(`./settings-core-CdZ7oKhM.js`);return{savePerCli:e}},__vite__mapDeps([0]));await t()}}),document.getElementById(`heartbeatModal`)?.addEventListener(`click`,e=>Rn(e)),document.querySelector(`#heartbeatModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.querySelector(`[data-action="closeHeartbeat"]`)?.addEventListener(`click`,()=>Rn()),document.querySelector(`[data-action="addHeartbeat"]`)?.addEventListener(`click`,zn),document.getElementById(`hbJobsList`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-hb-toggle]`);if(t){Vn(+(t.dataset.hbToggle||`0`));return}let n=e.target?.closest(`[data-hb-remove]`);if(n){Bn(+(n.dataset.hbRemove||`0`));return}}),document.getElementById(`hbJobsList`)?.addEventListener(`change`,e=>{let t=e.target,r=t.closest(`[data-hb-name]`);if(r){n.heartbeatJobs[+(r.dataset.hbName||`0`)].name=t.value,N();return}let i=t.closest(`[data-hb-kind]`);if(i){let e=+(i.dataset.hbKind||`0`),r=n.heartbeatJobs[e]?.schedule,a=typeof r?.timeZone==`string`?r.timeZone:void 0;n.heartbeatJobs[e].schedule=t.value===`cron`?{kind:`cron`,cron:typeof r?.cron==`string`&&r.cron.trim()?r.cron:`0 9 * * *`,...a?{timeZone:a}:{}}:{kind:`every`,minutes:typeof r?.minutes==`number`&&r.minutes>0?Math.floor(r.minutes):5,...a?{timeZone:a}:{}},M(),N();return}let a=t.closest(`[data-hb-minutes]`);if(a){let e=+(a.dataset.hbMinutes||`0`),r=n.heartbeatJobs[e]?.schedule,i=Math.max(1,Math.floor(Number(t.value)||5)),o=typeof r?.timeZone==`string`?r.timeZone:void 0;n.heartbeatJobs[e].schedule={kind:`every`,minutes:i,...o?{timeZone:o}:{}},M(),N();return}let o=t.closest(`[data-hb-cron]`);if(o){let e=+(o.dataset.hbCron||`0`),r=n.heartbeatJobs[e]?.schedule,i=typeof r?.timeZone==`string`?r.timeZone:void 0,a=t.value.trim().replace(/\s+/g,` `);n.heartbeatJobs[e].schedule={kind:`cron`,cron:a,...i?{timeZone:i}:{}},M(),N();return}let s=t.closest(`[data-hb-timezone]`);if(s){let e=+(s.dataset.hbTimezone||`0`),r=n.heartbeatJobs[e]?.schedule;r?.kind===`cron`?n.heartbeatJobs[e].schedule={kind:`cron`,cron:typeof r.cron==`string`&&r.cron.trim()?r.cron:`0 9 * * *`,...t.value.trim()?{timeZone:t.value.trim()}:{}}:n.heartbeatJobs[e].schedule={kind:`every`,minutes:typeof r?.minutes==`number`&&r.minutes>0?Math.floor(r.minutes):5,...t.value.trim()?{timeZone:t.value.trim()}:{}},M(),N();return}let c=t.closest(`[data-hb-prompt]`);if(c){n.heartbeatJobs[+(c.dataset.hbPrompt||`0`)].prompt=t.value,N();return}}),document.getElementById(`memoryModal`)?.addEventListener(`click`,e=>Zt(e)),document.querySelector(`#memoryModal .modal-box`)?.addEventListener(`click`,e=>e.stopPropagation()),document.querySelector(`[data-action="closeMemory"]`)?.addEventListener(`click`,()=>Zt()),document.getElementById(`memTabBtnSettings`)?.addEventListener(`click`,()=>Qt(`settings`)),document.getElementById(`memTabBtnAdvOps`)?.addEventListener(`click`,()=>Qt(`status`)),document.getElementById(`memTabBtnFiles`)?.addEventListener(`click`,()=>Qt(`files`)),document.getElementById(`memOn`)?.addEventListener(`click`,()=>Wt(!0)),document.getElementById(`memOff`)?.addEventListener(`click`,()=>Wt(!1)),document.getElementById(`memFlushEvery`)?.addEventListener(`change`,Bt),document.getElementById(`memRetention`)?.addEventListener(`change`,Bt),document.getElementById(`memFlushLang`)?.addEventListener(`change`,Bt),document.getElementById(`memFlushNowBtn`)?.addEventListener(`click`,Ht),document.getElementById(`advBootstrapBtn`)?.addEventListener(`click`,Xt),document.getElementById(`advReindexBtn`)?.addEventListener(`click`,qt),document.getElementById(`advReimportBtn`)?.addEventListener(`click`,Xt),document.getElementById(`advOpenCorruptedBtn`)?.addEventListener(`click`,Yt),document.getElementById(`advStatusBanner`)?.addEventListener(`click`,e=>{e.target?.id===`advUpgradeSoulBtn`&&Jt(),e.target?.id===`advSynthesizeSoulBtn`&&Vt()}),document.getElementById(`basicMemoryFiles`)?.addEventListener(`click`,e=>{let t=e.target?.closest(`[data-mem-delete]`);if(t){e.stopPropagation(),Kt(t.dataset.memDelete||``);return}let n=e.target?.closest(`[data-mem-view]`);if(n){Gt(n.dataset.memView||``);return}if(e.target?.closest(`[data-mem-back]`)){Ut();return}});async function vi(){se(),bt(),$n(),or(),Se(),Ce(),await fe();let e=await ge({cancelRecording:Ar});if(e===`redirect`)return;ee(xe);let t=document.getElementById(`langSelect`);if(t&&(t.value=de()),Ie(),e===`hub`){oe(),c();return}if(Lr(),Yr(),document.getElementById(`chatSearchTrigger`)?.addEventListener(`click`,Rr),oe(),c(),await We(),di(),Tn(),wn(),await Fe(),await it(),ct(),kt(),Et(),Rt(),Dt()&&Mt(),ae(),Qr(),Hn(),zt(),Oe(),await De(),je(),fr(),window.location.hash===`#settings`){let e=document.getElementById(`tabBtnSettings`);e&&Me(`settings`,e)}try{sessionStorage.removeItem(Xr)}catch{}setTimeout(()=>{document.querySelector(`.mermaid-pending, [data-mermaid-code-raw], .diagram-widget-pending`)&&ce()},3e3),`serviceWorker`in navigator&&!Ft()&&navigator.serviceWorker.register(`/sw.js`).catch(()=>{})}vi().catch(e=>{console.error(`[bootstrap]`,e)}),document.addEventListener(`keydown`,e=>{(e.ctrlKey||e.metaKey)&&e.key===`f`&&(e.preventDefault(),e.stopPropagation(),Rr())},!0),document.addEventListener(`keydown`,e=>{if(e.key===`Escape`){if(document.getElementById(`chatSearch`)?.classList.contains(`open`)){e.preventDefault(),Z();return}if(n.isRecording){e.preventDefault(),Ar();return}document.querySelectorAll(`.modal-overlay.open`).forEach(e=>{e.classList.remove(`open`)})}ii(e)&&(e.preventDefault(),jr())}),document.getElementById(`mobileMenuLeft`)?.addEventListener(`click`,re),document.getElementById(`mobileMenuRight`)?.addEventListener(`click`,te);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./api-tVoG39dL.js";import{M as t,O as n,R as r}from"./render-
|
|
1
|
+
import{n as e}from"./api-tVoG39dL.js";import{M as t,O as n,R as r}from"./render-BDso7Yb5.js";function i(e){let t=e??{},n={};Array.isArray(t.running)&&(n.running=t.running);let r=t.changed;return r&&typeof r==`object`&&(n.changed=r),n}var a=1e4,o=5,s=new Set([`complete`,`failed`,`cancelled`,`orphaned`]),c=[],l=[],u=!1,d=0,f=null,p=null;function m(e){let t=i(e);Array.isArray(t.running)&&(c=t.running);let n=t.changed;n&&s.has(n.status)&&(l=[{id:n.id,kind:n.kind,status:n.status,at:Date.now()},...l.filter(e=>e.id!==n.id)].slice(0,o),p=n.id,setTimeout(()=>g(),a+50)),x()}async function h(){let t=await e(`/api/bgtask?status=running`).catch(()=>null);!t||!Array.isArray(t.tasks)||(c=t.tasks.map(({id:e,kind:t,startedAt:n})=>({id:e,kind:t,startedAt:n})),x())}function g(){let e=Date.now()-a,t=l.filter(t=>t.at>e);t.length!==l.length&&(l=t,x())}function _(e){let t=Date.parse(e?`${e.replace(` `,`T`)}Z`:``);if(!Number.isFinite(t))return``;let n=Math.max(0,Math.floor((Date.now()-t)/1e3));return n<60?`${n}s`:n<3600?`${Math.floor(n/60)}m ${n%60}s`:`${Math.floor(n/3600)}h ${Math.floor(n%3600/60)}m`}function v(e){return e===`complete`?`<span class="bgtask-status-icon ok" aria-hidden="true">✓</span>`:e===`cancelled`?`<span class="bgtask-status-icon dim" aria-hidden="true">∅</span>`:`<span class="bgtask-status-icon err" aria-hidden="true">✗</span>`}function y(e){return`<div class="bgtask-row" data-bgtask-id="${t(e.id)}" title="${t(e.id)}">
|
|
2
2
|
<span class="bgtask-spinner" aria-hidden="true"></span>
|
|
3
3
|
<span class="bgtask-row-kind">${t(e.kind)}</span>
|
|
4
4
|
<span class="bgtask-row-id">${t(e.id.slice(3,11))}</span>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,t}from"./bgtask-badge-B0B1nXUs.js";export{t as applyBgtaskUpdate,e as refreshBgtaskBadge};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./state-DxpgDKMO.js";import{i as t,n,r}from"./api-tVoG39dL.js";import{n as i,o as a}from"./sidebar-
|
|
1
|
+
import{t as e}from"./state-DxpgDKMO.js";import{i as t,n,r}from"./api-tVoG39dL.js";import{n as i,o as a}from"./sidebar-BNT58qR0.js";import{M as o,O as s,R as c}from"./render-BDso7Yb5.js";import{i as l,r as u,t as d}from"./constants-Df7-7Rky.js";var f={"React/Vue 기반 UI 컴포넌트 개발, 스타일링":`frontend`,"API 서버, DB 스키마, 비즈니스 로직 구현":`backend`,"프론트엔드와 백엔드 모두 담당":`frontend`,"CI/CD, Docker, 인프라 자동화":`backend`,"테스트 작성, 버그 재현, 품질 관리":`custom`,"데이터 파이프라인, ETL, 분석 쿼리":`data`,"API 문서화, README, 가이드 작성":`docs`,"UI/UX 구현, CSS, 컴포넌트 개발":`frontend`,"API, DB, 서버 로직 구현":`backend`,"데이터 파이프라인, 분석, ML":`data`,"문서화, README, API docs":`docs`,"UI/UX, CSS, components":`frontend`,"API, DB, server logic":`backend`,"Data pipeline, analysis, ML":`data`,"Documentation, README, API docs":`docs`},p={1:`var(--phase-1)`,2:`var(--phase-2)`,3:`var(--phase-3)`,4:`var(--phase-4)`,5:`var(--phase-5)`};function m(e,t){return(t||``).trim()||`default`}function h(e,t){if(e===`claude`||e===`claude-e`){if(t.includes(`claude-opus-4-8`))return`claude-opus-4-8`;if(t.includes(`opus`))return`opus`}return t[0]||`default`}async function g(t=!1){!t&&!i()||(e.employees=await n(`/api/employees`)||[],_())}function _(){let t=document.getElementById(`employeesList`);if(!t)return;let n=e.employees;if(n.length===0){t.innerHTML=`<div style="color:var(--text-dim);font-size:11px;padding:4px 0">${c(`emp.addPrompt`)}</div>`;return}let r=l();t.innerHTML=n.map(e=>{let t=e.source===`static`,n=d[e.cli]||[],i=m(e.cli,e.model),l=f[e.role||``],h=l?u.find(e=>e.value===l):u.find(t=>t.prompt===e.role),g=h?h.value:e.role?`custom`:`frontend`,_=g===`custom`,v=a(e.id),y=v?.phase||e.phase,b=v?.phaseLabel||e.phaseLabel,x=y?`<span style="background:${p[y]||`#888`};color:var(--text-on-accent);padding:1px 6px;border-radius:9px;font-size:9px">${o(b||`P`+y)}</span>`:``,S=t?`<span style="background:var(--surface);color:var(--accent);padding:1px 6px;border-radius:9px;font-size:9px;letter-spacing:0.3px">BUILT-IN</span>`:``,C=t?`border-left:2px solid var(--accent);`:``,w=t?`<span style="flex:1;color:var(--text);font-size:12px;font-weight:600">${o(e.name||`Agent`)}</span>`:`<input style="flex:1;background:none;border:none;color:var(--text);font-size:12px;font-weight:600;font-family:inherit;outline:none" value="${o(e.name||`Agent`)}" data-emp-name="${o(e.id)}">`,T=t?``:`<button style="background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px" data-emp-delete="${o(e.id)}" title="${c(`emp.delete`)}">${s.close}</button>`,E=t?`<select disabled title="CLI fixed for built-in employee"><option>${o(e.cli)}</option></select>`:`<select data-emp-cli="${o(e.id)}">${r.map(t=>`<option${e.cli===t?` selected`:``}>${o(t)}</option>`).join(``)}</select>`,D=t?`<div style="font-size:11px;color:var(--text-dim);padding:4px 0">${o(e.role||``)}</div>`:`<select data-emp-role="${o(e.id)}">${u.map(e=>`<option value="${e.value}"${g===e.value?` selected`:``}>${e.label}</option>`).join(``)}</select>
|
|
2
2
|
<textarea data-emp-custom="${o(e.id)}" style="display:${_?`block`:`none`};margin-top:4px;width:100%;height:40px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:4px 6px;border-radius:4px;font-size:10px;font-family:inherit;resize:vertical" placeholder="${c(`emp.customRole`)}">${_?o(e.role||``):``}</textarea>`;return`
|
|
3
3
|
<div class="settings-group" style="margin-bottom:8px;padding:8px 10px;${C}">
|
|
4
4
|
<div style="display:flex;align-items:center;gap:6px;margin-bottom:6px">
|