claude-code-session-manager 0.8.4 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{cssMode-SwUA7tV8.js → cssMode-BCLoTYI0.js} +1 -1
- package/dist/assets/{editor.main-C0vxDQaJ.js → editor.main-UoasbVGy.js} +3 -3
- package/dist/assets/{freemarker2-KX6gG2yg.js → freemarker2-dhfKZR7u.js} +1 -1
- package/dist/assets/{handlebars-B9LxZbcv.js → handlebars-DdpqwFuV.js} +1 -1
- package/dist/assets/{html-B-8ZJyzc.js → html-1oTJClkg.js} +1 -1
- package/dist/assets/{htmlMode-BrQu9A96.js → htmlMode-CF1QbIg-.js} +1 -1
- package/dist/assets/{index-CrdBAMX2.js → index-DWDcKbgI.js} +278 -276
- package/dist/assets/{index-DpbPBSiS.css → index-eqxng9X2.css} +1 -1
- package/dist/assets/{javascript-D3vhfNJL.js → javascript-BP_Q5MFx.js} +1 -1
- package/dist/assets/{jsonMode-CCVQ7oTr.js → jsonMode-BtjA-2w_.js} +1 -1
- package/dist/assets/{liquid-DnwPncmC.js → liquid-DstuL8vm.js} +1 -1
- package/dist/assets/{lspLanguageFeatures-DrwXiqW0.js → lspLanguageFeatures-DvSiaY4f.js} +1 -1
- package/dist/assets/{mdx-C6MKH-vG.js → mdx-qO-uvsJd.js} +1 -1
- package/dist/assets/{python-Dp1TzxJl.js → python-CCPz_1cy.js} +1 -1
- package/dist/assets/{razor-KRJat9pO.js → razor-B7tCzkdh.js} +1 -1
- package/dist/assets/{tsMode-BZ-CF_4O.js → tsMode-hUkEyjsH.js} +1 -1
- package/dist/assets/{typescript-CTLs4m8W.js → typescript-BeXECzAk.js} +1 -1
- package/dist/assets/{xml-DUE-XnsH.js → xml-MRJd4GHf.js} +1 -1
- package/dist/assets/{yaml-DSuhPI0o.js → yaml-CzGliMNL.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/src/main/scheduler.cjs +53 -0
- package/src/preload/api.d.ts +5 -0
- package/src/preload/index.cjs +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./editor.main-
|
|
1
|
+
import{l as e}from"./editor.main-UoasbVGy.js";import"./index-DWDcKbgI.js";const o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},r={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<","</",">>",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};export{o as conf,r as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./editor.main-
|
|
1
|
+
import{l as e}from"./editor.main-UoasbVGy.js";import"./index-DWDcKbgI.js";const o={comments:{blockComment:["<!--","-->"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:e.IndentAction.Indent}}]},i={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}};export{o as conf,i as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./editor.main-
|
|
1
|
+
import{l as e}from"./editor.main-UoasbVGy.js";import"./index-DWDcKbgI.js";const o={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},r={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{o as conf,r as language};
|
package/dist/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Claude Session Manager</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-DWDcKbgI.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="./assets/index-eqxng9X2.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body class="bg-bg text-fg font-mono antialiased">
|
|
11
11
|
<div id="root"></div>
|
package/package.json
CHANGED
package/src/main/scheduler.cjs
CHANGED
|
@@ -83,6 +83,7 @@ const IDLE_CHECK_INTERVAL_MS = 60_000;
|
|
|
83
83
|
const ROOT = path.join(os.homedir(), '.claude', 'session-manager', 'scheduled-plans');
|
|
84
84
|
const PRDS_DIR = path.join(ROOT, 'prds');
|
|
85
85
|
const RUNS_DIR = path.join(ROOT, 'runs');
|
|
86
|
+
const PRDS_ARCHIVE_DIR = path.join(ROOT, 'prds-archived');
|
|
86
87
|
const QUEUE_PATH = path.join(ROOT, 'queue.json');
|
|
87
88
|
const SCHEDULER_STATE_PATH = path.join(os.homedir(), '.claude', 'session-manager', 'scheduler-state.json');
|
|
88
89
|
const HEARTBEAT_PATH = path.join(os.homedir(), '.claude', 'session-manager', 'scheduler-heartbeat.log');
|
|
@@ -1339,6 +1340,58 @@ function registerScheduleHandlers() {
|
|
|
1339
1340
|
return { ok: true, nextReset: at };
|
|
1340
1341
|
});
|
|
1341
1342
|
|
|
1343
|
+
// Re-scan prds/ folder and merge into queue.json. The `schedule:state`
|
|
1344
|
+
// handler already reconciles on read, but this gives the renderer an
|
|
1345
|
+
// explicit refresh path that also broadcasts so all views update.
|
|
1346
|
+
ipcMain.handle('schedule:rescan', async () => {
|
|
1347
|
+
await mutate((state) => {
|
|
1348
|
+
reconcile(state);
|
|
1349
|
+
return null;
|
|
1350
|
+
});
|
|
1351
|
+
broadcast();
|
|
1352
|
+
return { ok: true };
|
|
1353
|
+
});
|
|
1354
|
+
|
|
1355
|
+
// Archive all pending+failed PRDs and drop their entries from queue.json.
|
|
1356
|
+
// Completed/running entries are kept. PRD files are moved (not deleted) to
|
|
1357
|
+
// prds-archived/<ISO>/ so the user can recover them. Path containment is
|
|
1358
|
+
// enforced — only files inside PRDS_DIR are moved.
|
|
1359
|
+
ipcMain.handle('schedule:clear-queue', async () => {
|
|
1360
|
+
ensureDirs();
|
|
1361
|
+
const ts = new Date().toISOString().replace(/[:.]/g, '-');
|
|
1362
|
+
const archiveDir = path.join(PRDS_ARCHIVE_DIR, ts);
|
|
1363
|
+
const state = readQueue();
|
|
1364
|
+
const victims = state.jobs.filter((j) => j.status === 'pending' || j.status === 'failed');
|
|
1365
|
+
if (victims.length === 0) {
|
|
1366
|
+
return { ok: true, archived: 0, archivedTo: null };
|
|
1367
|
+
}
|
|
1368
|
+
fs.mkdirSync(archiveDir, { recursive: true });
|
|
1369
|
+
let archived = 0;
|
|
1370
|
+
for (const job of victims) {
|
|
1371
|
+
const src = path.resolve(path.join(PRDS_DIR, `${job.slug}.md`));
|
|
1372
|
+
if (!src.startsWith(PRDS_DIR + path.sep)) continue;
|
|
1373
|
+
const dst = path.join(archiveDir, `${job.slug}.md`);
|
|
1374
|
+
try {
|
|
1375
|
+
await fsp.rename(src, dst);
|
|
1376
|
+
archived++;
|
|
1377
|
+
} catch (e) {
|
|
1378
|
+
// ENOENT: the .md is already gone (reconcile would drop it on next
|
|
1379
|
+
// read anyway). Either way, fall through and remove from queue.
|
|
1380
|
+
if (e?.code !== 'ENOENT') {
|
|
1381
|
+
console.warn('[scheduler] clear-queue: rename failed', job.slug, e?.message);
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1385
|
+
await mutate((s) => {
|
|
1386
|
+
const victimSlugs = new Set(victims.map((j) => j.slug));
|
|
1387
|
+
s.jobs = s.jobs.filter((j) => !victimSlugs.has(j.slug));
|
|
1388
|
+
reconcile(s);
|
|
1389
|
+
return null;
|
|
1390
|
+
});
|
|
1391
|
+
broadcast();
|
|
1392
|
+
return { ok: true, archived, archivedTo: archiveDir };
|
|
1393
|
+
});
|
|
1394
|
+
|
|
1342
1395
|
ipcMain.handle('schedule:open-folder', async () => {
|
|
1343
1396
|
const { shell } = require('electron');
|
|
1344
1397
|
await shell.openPath(ROOT);
|
package/src/preload/api.d.ts
CHANGED
|
@@ -497,6 +497,11 @@ export interface SessionManagerAPI {
|
|
|
497
497
|
forceTick: () => Promise<{ ok: boolean }>;
|
|
498
498
|
resume: () => Promise<{ ok: boolean }>;
|
|
499
499
|
refreshReset: () => Promise<{ ok: boolean; nextReset: string | null }>;
|
|
500
|
+
/** Re-scan prds/ and merge into queue.json; broadcasts updated state. */
|
|
501
|
+
rescan: () => Promise<{ ok: boolean }>;
|
|
502
|
+
/** Move all pending+failed PRDs to prds-archived/<ISO>/ and drop their
|
|
503
|
+
* queue entries. Completed/running entries are preserved. */
|
|
504
|
+
clearQueue: () => Promise<{ ok: boolean; archived: number; archivedTo: string | null }>;
|
|
500
505
|
openFolder: () => Promise<{ ok: boolean }>;
|
|
501
506
|
readPrd: (slug: string) => Promise<{ ok: boolean; text?: string; error?: string }>;
|
|
502
507
|
readLog: (runId: string, slug: string) => Promise<{ ok: boolean; text?: string; error?: string }>;
|
package/src/preload/index.cjs
CHANGED
|
@@ -149,6 +149,8 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
149
149
|
forceTick: () => ipcRenderer.invoke('schedule:force-tick'),
|
|
150
150
|
resume: () => ipcRenderer.invoke('schedule:resume'),
|
|
151
151
|
refreshReset: () => ipcRenderer.invoke('schedule:refresh-reset'),
|
|
152
|
+
rescan: () => ipcRenderer.invoke('schedule:rescan'),
|
|
153
|
+
clearQueue: () => ipcRenderer.invoke('schedule:clear-queue'),
|
|
152
154
|
openFolder: () => ipcRenderer.invoke('schedule:open-folder'),
|
|
153
155
|
readPrd: (slug) => ipcRenderer.invoke('schedule:read-prd', { slug }),
|
|
154
156
|
readLog: (runId, slug) => ipcRenderer.invoke('schedule:read-log', { runId, slug }),
|