@poping/yome 0.0.3 → 0.0.4
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 +5 -7
- package/README.zh-CN.md +5 -7
- package/bin/yome-calwatch +0 -0
- package/dist/context.js +6 -3
- package/dist/context.js.map +1 -1
- package/dist/daemon/calendarPermission.d.ts +10 -0
- package/dist/daemon/calendarPermission.js +68 -0
- package/dist/daemon/calendarPermission.js.map +1 -0
- package/dist/daemon/cronCli.d.ts +19 -0
- package/dist/daemon/cronCli.js +403 -0
- package/dist/daemon/cronCli.js.map +1 -0
- package/dist/daemon/envHint.d.ts +5 -0
- package/dist/daemon/envHint.js +139 -0
- package/dist/daemon/envHint.js.map +1 -0
- package/dist/daemon/humanCron.d.ts +1 -0
- package/dist/daemon/humanCron.js +72 -0
- package/dist/daemon/humanCron.js.map +1 -0
- package/dist/daemon/humanOnce.d.ts +1 -0
- package/dist/daemon/humanOnce.js +54 -0
- package/dist/daemon/humanOnce.js.map +1 -0
- package/dist/daemon/index.d.ts +5 -0
- package/dist/daemon/index.js +168 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/launchd.d.ts +7 -0
- package/dist/daemon/launchd.js +93 -0
- package/dist/daemon/launchd.js.map +1 -0
- package/dist/daemon/log.d.ts +17 -0
- package/dist/daemon/log.js +57 -0
- package/dist/daemon/log.js.map +1 -0
- package/dist/daemon/paths.d.ts +11 -0
- package/dist/daemon/paths.js +27 -0
- package/dist/daemon/paths.js.map +1 -0
- package/dist/daemon/runTaskEntry.d.ts +1 -0
- package/dist/daemon/runTaskEntry.js +67 -0
- package/dist/daemon/runTaskEntry.js.map +1 -0
- package/dist/daemon/runner.d.ts +21 -0
- package/dist/daemon/runner.js +175 -0
- package/dist/daemon/runner.js.map +1 -0
- package/dist/daemon/scheduler.d.ts +5 -0
- package/dist/daemon/scheduler.js +162 -0
- package/dist/daemon/scheduler.js.map +1 -0
- package/dist/daemon/taskStore.d.ts +62 -0
- package/dist/daemon/taskStore.js +88 -0
- package/dist/daemon/taskStore.js.map +1 -0
- package/dist/daemon/triggers/calendar.d.ts +8 -0
- package/dist/daemon/triggers/calendar.js +248 -0
- package/dist/daemon/triggers/calendar.js.map +1 -0
- package/dist/daemon/triggers/childRunner.d.ts +14 -0
- package/dist/daemon/triggers/childRunner.js +111 -0
- package/dist/daemon/triggers/childRunner.js.map +1 -0
- package/dist/daemon/triggers/cron.d.ts +14 -0
- package/dist/daemon/triggers/cron.js +91 -0
- package/dist/daemon/triggers/cron.js.map +1 -0
- package/dist/daemon/triggers/file.d.ts +7 -0
- package/dist/daemon/triggers/file.js +123 -0
- package/dist/daemon/triggers/file.js.map +1 -0
- package/dist/daemon/triggers/once.d.ts +10 -0
- package/dist/daemon/triggers/once.js +80 -0
- package/dist/daemon/triggers/once.js.map +1 -0
- package/dist/index.js +96 -9
- package/dist/index.js.map +1 -1
- package/dist/skills/runner/dispatcher.d.ts +74 -3
- package/dist/skills/runner/dispatcher.js +258 -48
- package/dist/skills/runner/dispatcher.js.map +1 -1
- package/dist/skills/runner/dispatcher.test.d.ts +1 -0
- package/dist/skills/runner/dispatcher.test.js +141 -0
- package/dist/skills/runner/dispatcher.test.js.map +1 -0
- package/dist/skills/runner/kernel.js +0 -1
- package/dist/skills/runner/kernel.js.map +1 -1
- package/dist/skills/runner/nodeBackend.d.ts +32 -0
- package/dist/skills/runner/nodeBackend.js +147 -0
- package/dist/skills/runner/nodeBackend.js.map +1 -0
- package/dist/state/todos.d.ts +12 -0
- package/dist/state/todos.js +32 -0
- package/dist/state/todos.js.map +1 -0
- package/dist/tools/askUser.d.ts +20 -0
- package/dist/tools/askUser.js +126 -0
- package/dist/tools/askUser.js.map +1 -0
- package/dist/tools/bash.js +13 -19
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.js +18 -5
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/todoWrite.d.ts +2 -0
- package/dist/tools/todoWrite.js +141 -0
- package/dist/tools/todoWrite.js.map +1 -0
- package/dist/tools/yome.d.ts +2 -0
- package/dist/tools/yome.js +87 -0
- package/dist/tools/yome.js.map +1 -0
- package/dist/ui/App.js +52 -3
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/AskUserPrompt.d.ts +7 -0
- package/dist/ui/AskUserPrompt.js +78 -0
- package/dist/ui/AskUserPrompt.js.map +1 -0
- package/dist/ui/InputBar.js +20 -34
- package/dist/ui/InputBar.js.map +1 -1
- package/dist/ui/MessageList.d.ts +8 -0
- package/dist/ui/MessageList.js +2 -2
- package/dist/ui/MessageList.js.map +1 -1
- package/dist/ui/MultilineTextInput.d.ts +31 -0
- package/dist/ui/MultilineTextInput.js +393 -0
- package/dist/ui/MultilineTextInput.js.map +1 -0
- package/dist/ui/MultilineTextInput.test.d.ts +1 -0
- package/dist/ui/MultilineTextInput.test.js +30 -0
- package/dist/ui/MultilineTextInput.test.js.map +1 -0
- package/dist/ui/TodoPanel.d.ts +7 -0
- package/dist/ui/TodoPanel.js +36 -0
- package/dist/ui/TodoPanel.js.map +1 -0
- package/dist/yomeSkills/cli.d.ts +8 -0
- package/dist/yomeSkills/cli.js +155 -8
- package/dist/yomeSkills/cli.js.map +1 -1
- package/dist/yomeSkills/deprecate.d.ts +29 -0
- package/dist/yomeSkills/deprecate.js +99 -0
- package/dist/yomeSkills/deprecate.js.map +1 -0
- package/dist/yomeSkills/installFromHubTarball.d.ts +26 -0
- package/dist/yomeSkills/installFromHubTarball.js +161 -0
- package/dist/yomeSkills/installFromHubTarball.js.map +1 -0
- package/dist/yomeSkills/installGithub.d.ts +7 -0
- package/dist/yomeSkills/installGithub.js +42 -21
- package/dist/yomeSkills/installGithub.js.map +1 -1
- package/dist/yomeSkills/invoke.js +50 -18
- package/dist/yomeSkills/invoke.js.map +1 -1
- package/dist/yomeSkills/publish.d.ts +2 -0
- package/dist/yomeSkills/publish.js +6 -1
- package/dist/yomeSkills/publish.js.map +1 -1
- package/package.json +10 -2
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// File-system trigger backed by chokidar.
|
|
2
|
+
//
|
|
3
|
+
// Storage shape:
|
|
4
|
+
// { kind: 'file', path: '<glob>', events?: ['change'|'add'|'unlink'][] }
|
|
5
|
+
//
|
|
6
|
+
// Path can be a single file, a directory (recursive), or a glob
|
|
7
|
+
// ('~/Desktop/test/**/*.xlsx'). chokidar handles tilde-expansion poorly,
|
|
8
|
+
// so we expand it ourselves before handing the pattern over.
|
|
9
|
+
//
|
|
10
|
+
// Debouncing: chokidar fires multiple events for a single save on some
|
|
11
|
+
// editors (e.g. Excel writes a temp file then renames). We coalesce
|
|
12
|
+
// per-task into a 750ms window so the agent gets called once per logical
|
|
13
|
+
// change burst, not once per low-level fs syscall.
|
|
14
|
+
import chokidar from 'chokidar';
|
|
15
|
+
import { homedir } from 'os';
|
|
16
|
+
import { runChildTask } from './childRunner.js';
|
|
17
|
+
function sameEvents(a, b) {
|
|
18
|
+
if (a.length !== b.length)
|
|
19
|
+
return false;
|
|
20
|
+
const sa = [...a].sort();
|
|
21
|
+
const sb = [...b].sort();
|
|
22
|
+
return sa.every((v, i) => v === sb[i]);
|
|
23
|
+
}
|
|
24
|
+
const active = new Map();
|
|
25
|
+
const debouncers = new Map();
|
|
26
|
+
const DEBOUNCE_MS = 750;
|
|
27
|
+
const DEFAULT_EVENTS = ['add', 'change'];
|
|
28
|
+
export function registerFileTask(task, opts) {
|
|
29
|
+
if (task.trigger.kind !== 'file')
|
|
30
|
+
return;
|
|
31
|
+
if (!task.enabled)
|
|
32
|
+
return;
|
|
33
|
+
const rawPath = task.trigger.path;
|
|
34
|
+
if (!rawPath || typeof rawPath !== 'string') {
|
|
35
|
+
// eslint-disable-next-line no-console
|
|
36
|
+
console.error(`[file] task ${task.id}: missing path, skipping`);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const expanded = expandTilde(rawPath);
|
|
40
|
+
const events = (task.trigger.events ?? DEFAULT_EVENTS);
|
|
41
|
+
// Idempotent re-registration: every recordRun() rewrites tasks.json
|
|
42
|
+
// which fires fs.watch → reloadAllTasks(). If we always tore down the
|
|
43
|
+
// chokidar watcher and rebuilt it, we'd waste ~tens of ms per reload
|
|
44
|
+
// AND briefly drop events that arrive between close() and the new
|
|
45
|
+
// watcher's "ready". When the path + events haven't changed, leave
|
|
46
|
+
// the existing watcher alone.
|
|
47
|
+
const existing = active.get(task.id);
|
|
48
|
+
if (existing && existing.path === expanded && sameEvents(existing.events, events)) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (existing) {
|
|
52
|
+
unregisterFileTask(task.id);
|
|
53
|
+
}
|
|
54
|
+
const watcher = chokidar.watch(expanded, {
|
|
55
|
+
persistent: true,
|
|
56
|
+
ignoreInitial: true, // don't fire for files that already exist on startup
|
|
57
|
+
awaitWriteFinish: {
|
|
58
|
+
stabilityThreshold: 250,
|
|
59
|
+
pollInterval: 100,
|
|
60
|
+
},
|
|
61
|
+
// Use polling on macOS for network mounts / weird filesystems if
|
|
62
|
+
// we hit issues; default native fsevents is faster and we'll prefer
|
|
63
|
+
// it. The user can override via env if needed.
|
|
64
|
+
usePolling: process.env.YOME_FILE_WATCH_POLL === '1',
|
|
65
|
+
});
|
|
66
|
+
const onEvent = (kind, file) => {
|
|
67
|
+
if (!events.includes(kind))
|
|
68
|
+
return;
|
|
69
|
+
if (debouncers.has(task.id))
|
|
70
|
+
clearTimeout(debouncers.get(task.id));
|
|
71
|
+
const t = setTimeout(() => {
|
|
72
|
+
debouncers.delete(task.id);
|
|
73
|
+
runChildTask({
|
|
74
|
+
taskId: task.id,
|
|
75
|
+
yomeBinPath: opts.yomeBinPath,
|
|
76
|
+
task,
|
|
77
|
+
triggerMeta: { triggerKind: 'file', event: kind, file },
|
|
78
|
+
});
|
|
79
|
+
}, DEBOUNCE_MS);
|
|
80
|
+
t.unref?.();
|
|
81
|
+
debouncers.set(task.id, t);
|
|
82
|
+
};
|
|
83
|
+
watcher.on('add', (f) => onEvent('add', f));
|
|
84
|
+
watcher.on('change', (f) => onEvent('change', f));
|
|
85
|
+
watcher.on('unlink', (f) => onEvent('unlink', f));
|
|
86
|
+
watcher.on('error', (e) => {
|
|
87
|
+
// eslint-disable-next-line no-console
|
|
88
|
+
console.error(`[file] task ${task.id}: watcher error:`, e);
|
|
89
|
+
});
|
|
90
|
+
active.set(task.id, { taskId: task.id, watcher, path: expanded, events });
|
|
91
|
+
// eslint-disable-next-line no-console
|
|
92
|
+
console.log(`[file] registered ${task.id} (path="${expanded}", events=[${events.join(',')}])`);
|
|
93
|
+
}
|
|
94
|
+
export function unregisterFileTask(id) {
|
|
95
|
+
const entry = active.get(id);
|
|
96
|
+
if (!entry)
|
|
97
|
+
return;
|
|
98
|
+
try {
|
|
99
|
+
entry.watcher.close();
|
|
100
|
+
}
|
|
101
|
+
catch { /* noop */ }
|
|
102
|
+
active.delete(id);
|
|
103
|
+
const d = debouncers.get(id);
|
|
104
|
+
if (d) {
|
|
105
|
+
clearTimeout(d);
|
|
106
|
+
debouncers.delete(id);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export function listActiveFile() {
|
|
110
|
+
return [...active.keys()];
|
|
111
|
+
}
|
|
112
|
+
export function unregisterAllFile() {
|
|
113
|
+
for (const id of [...active.keys()])
|
|
114
|
+
unregisterFileTask(id);
|
|
115
|
+
}
|
|
116
|
+
function expandTilde(p) {
|
|
117
|
+
if (p === '~')
|
|
118
|
+
return homedir();
|
|
119
|
+
if (p.startsWith('~/'))
|
|
120
|
+
return homedir() + p.slice(1);
|
|
121
|
+
return p;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/daemon/triggers/file.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,iBAAiB;AACjB,2EAA2E;AAC3E,EAAE;AACF,gEAAgE;AAChE,yEAAyE;AACzE,6DAA6D;AAC7D,EAAE;AACF,uEAAuE;AACvE,oEAAoE;AACpE,yEAAyE;AACzE,mDAAmD;AAEnD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAWhD,SAAS,UAAU,CAAC,CAAuB,EAAE,CAAuB;IAClE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;AACrD,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,cAAc,GAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAEtD,MAAM,UAAU,gBAAgB,CAAC,IAAgB,EAAE,IAA6B;IAC9E,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO;IACzC,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,cAAc,CAAgB,CAAC;IAEtE,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,kEAAkE;IAClE,mEAAmE;IACnE,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClF,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;QACvC,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI,EAAa,qDAAqD;QACrF,gBAAgB,EAAE;YAChB,kBAAkB,EAAE,GAAG;YACvB,YAAY,EAAE,GAAG;SAClB;QACD,iEAAiE;QACjE,oEAAoE;QACpE,+CAA+C;QAC/C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG;KACrD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,IAAe,EAAE,IAAY,EAAE,EAAE;QAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO;QACnC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,YAAY,CAAC;gBACX,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI;gBACJ,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;aACxD,CAAC,CAAC;QACL,CAAC,EAAE,WAAW,CAAC,CAAC;QAChB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACZ,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACxB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,EAAE,WAAW,QAAQ,cAAc,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,CAAC;QAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC;QAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TaskRecord } from '../taskStore.js';
|
|
2
|
+
export declare function registerOnceTask(task: TaskRecord, opts: {
|
|
3
|
+
yomeBinPath: string;
|
|
4
|
+
}): void;
|
|
5
|
+
export declare function unregisterOnceTask(id: string): void;
|
|
6
|
+
export declare function listActiveOnce(): {
|
|
7
|
+
taskId: string;
|
|
8
|
+
scheduledFor: number;
|
|
9
|
+
}[];
|
|
10
|
+
export declare function unregisterAllOnce(): void;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// One-shot trigger: a task that fires exactly once at a specified
|
|
2
|
+
// wall-clock time. After firing, the task is automatically disabled so
|
|
3
|
+
// it won't be re-armed on daemon restart.
|
|
4
|
+
//
|
|
5
|
+
// Storage shape: { kind: 'once', atMs: <epoch_ms> }
|
|
6
|
+
//
|
|
7
|
+
// Past-due semantics: if the daemon starts AFTER atMs, we still fire
|
|
8
|
+
// once (immediately) — the user said "do this thing eventually", and
|
|
9
|
+
// silently skipping it is worse than late delivery. They can `cron rm`
|
|
10
|
+
// before starting the daemon if they want to cancel.
|
|
11
|
+
import { setEnabled } from '../taskStore.js';
|
|
12
|
+
import { runChildTask } from './childRunner.js';
|
|
13
|
+
const pending = new Map();
|
|
14
|
+
const PAST_DUE_DELAY_MS = 1_000; // small delay to avoid thundering at startup
|
|
15
|
+
export function registerOnceTask(task, opts) {
|
|
16
|
+
if (task.trigger.kind !== 'once')
|
|
17
|
+
return;
|
|
18
|
+
if (!task.enabled)
|
|
19
|
+
return;
|
|
20
|
+
const atMs = task.trigger.atMs;
|
|
21
|
+
if (typeof atMs !== 'number' || Number.isNaN(atMs)) {
|
|
22
|
+
// eslint-disable-next-line no-console
|
|
23
|
+
console.error(`[once] task ${task.id}: invalid atMs ${atMs}, skipping`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
// Idempotent re-registration: tasks.json gets rewritten every time
|
|
27
|
+
// ANY task records a run (recordRun → atomic write), which triggers
|
|
28
|
+
// the scheduler's fs.watch and a full reloadAllTasks(). Without the
|
|
29
|
+
// guard below, that re-entry would clearTimeout() our pending fire
|
|
30
|
+
// and setTimeout() a fresh one — resetting the countdown each time,
|
|
31
|
+
// and (worse) racing with the just-fired callback so we'd run the
|
|
32
|
+
// task twice within milliseconds. Skipping when nothing changed
|
|
33
|
+
// makes reload a no-op for already-armed once timers.
|
|
34
|
+
const existing = pending.get(task.id);
|
|
35
|
+
if (existing && existing.scheduledFor === atMs) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (existing) {
|
|
39
|
+
unregisterOnceTask(task.id);
|
|
40
|
+
}
|
|
41
|
+
const now = Date.now();
|
|
42
|
+
const delay = Math.max(PAST_DUE_DELAY_MS, atMs - now);
|
|
43
|
+
// eslint-disable-next-line no-console
|
|
44
|
+
console.log(`[once] registered ${task.id} (fires at ${new Date(atMs).toISOString()}` +
|
|
45
|
+
`${atMs < now ? ', past-due → firing soon' : ''})`);
|
|
46
|
+
const timer = setTimeout(() => {
|
|
47
|
+
pending.delete(task.id);
|
|
48
|
+
runChildTask({
|
|
49
|
+
taskId: task.id,
|
|
50
|
+
yomeBinPath: opts.yomeBinPath,
|
|
51
|
+
task,
|
|
52
|
+
triggerMeta: { triggerKind: 'once', atMs },
|
|
53
|
+
onComplete: () => {
|
|
54
|
+
// Disable the task so it doesn't re-fire if the daemon restarts.
|
|
55
|
+
// The lastRun summary is what survives in tasks.json.
|
|
56
|
+
setEnabled(task.id, false);
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}, delay);
|
|
60
|
+
// Don't keep the daemon event loop alive solely on this timer — the
|
|
61
|
+
// scheduler's other mechanisms (cron jobs, file watchers) keep it
|
|
62
|
+
// alive, and on shutdown we want clean exit.
|
|
63
|
+
timer.unref?.();
|
|
64
|
+
pending.set(task.id, { taskId: task.id, timer, scheduledFor: atMs });
|
|
65
|
+
}
|
|
66
|
+
export function unregisterOnceTask(id) {
|
|
67
|
+
const entry = pending.get(id);
|
|
68
|
+
if (!entry)
|
|
69
|
+
return;
|
|
70
|
+
clearTimeout(entry.timer);
|
|
71
|
+
pending.delete(id);
|
|
72
|
+
}
|
|
73
|
+
export function listActiveOnce() {
|
|
74
|
+
return [...pending.values()].map((p) => ({ taskId: p.taskId, scheduledFor: p.scheduledFor }));
|
|
75
|
+
}
|
|
76
|
+
export function unregisterAllOnce() {
|
|
77
|
+
for (const id of [...pending.keys()])
|
|
78
|
+
unregisterOnceTask(id);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=once.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"once.js","sourceRoot":"","sources":["../../../src/daemon/triggers/once.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { render } from 'ink';
|
|
3
3
|
import meow from 'meow';
|
|
4
4
|
import { App } from './ui/App.js';
|
|
5
|
-
import { resolveConfig, saveStoredConfig, CONFIG_PATH } from './config.js';
|
|
5
|
+
import { resolveConfig, saveStoredConfig, CONFIG_PATH, loadModelEntries, modelEntryToConfig } from './config.js';
|
|
6
6
|
import { runSkillSubcommand, runLogin, runLogout, runWhoami } from './yomeSkills/cli.js';
|
|
7
7
|
import { runThreadSubcommand } from './threadCli.js';
|
|
8
|
+
import { runDaemonSubcommand } from './daemon/index.js';
|
|
9
|
+
import { runCronSubcommand } from './daemon/cronCli.js';
|
|
10
|
+
import { runTaskById } from './daemon/runTaskEntry.js';
|
|
8
11
|
const cli = meow(`
|
|
9
12
|
Usage
|
|
10
13
|
$ yome [prompt]
|
|
@@ -19,6 +22,15 @@ const cli = meow(`
|
|
|
19
22
|
$ yome skill uninstall <slug> Uninstall an installed skill (e.g. @yome/ppt)
|
|
20
23
|
$ yome skill list List installed skills
|
|
21
24
|
|
|
25
|
+
Daemon / Cron Subcommands
|
|
26
|
+
$ yome daemon install Install LaunchAgent (auto-starts on login)
|
|
27
|
+
$ yome daemon start Start the daemon in the background
|
|
28
|
+
$ yome daemon status Show daemon pid + active task count
|
|
29
|
+
$ yome cron add "<prompt>" --at "0 9 * * *"
|
|
30
|
+
Schedule an unattended agent task
|
|
31
|
+
$ yome cron list List scheduled tasks
|
|
32
|
+
$ yome cron logs <id> -f Tail audit log for a task
|
|
33
|
+
|
|
22
34
|
Thread Subcommands
|
|
23
35
|
$ yome thread list List sessions in the current cwd
|
|
24
36
|
$ yome thread share <session-id> --skill=<slug>
|
|
@@ -72,6 +84,27 @@ const cli = meow(`
|
|
|
72
84
|
grant: { type: 'string' },
|
|
73
85
|
revoke: { type: 'string' },
|
|
74
86
|
skipVerify: { type: 'boolean' },
|
|
87
|
+
reason: { type: 'string' },
|
|
88
|
+
replacedBy: { type: 'string' },
|
|
89
|
+
version: { type: 'string' },
|
|
90
|
+
allowDeprecated: { type: 'boolean' },
|
|
91
|
+
// daemon / cron flags
|
|
92
|
+
foreground: { type: 'boolean' },
|
|
93
|
+
follow: { type: 'boolean', shortFlag: 'f' },
|
|
94
|
+
at: { type: 'string' },
|
|
95
|
+
human: { type: 'string' },
|
|
96
|
+
once: { type: 'string' },
|
|
97
|
+
on: { type: 'string' },
|
|
98
|
+
path: { type: 'string' },
|
|
99
|
+
within: { type: 'string' }, // calendar lead time, e.g. "10m"
|
|
100
|
+
titleRegex: { type: 'string' }, // calendar title filter
|
|
101
|
+
calendar: { type: 'string' }, // calendar name filter
|
|
102
|
+
tz: { type: 'string' },
|
|
103
|
+
cwd: { type: 'string' },
|
|
104
|
+
allow: { type: 'string', isMultiple: true },
|
|
105
|
+
deny: { type: 'string', isMultiple: true },
|
|
106
|
+
maxMs: { type: 'string' },
|
|
107
|
+
env: { type: 'string', isMultiple: true }, // KEY=VAL, repeatable
|
|
75
108
|
},
|
|
76
109
|
});
|
|
77
110
|
// Subcommand router (kept as plain dispatch — meow doesn't do nested commands).
|
|
@@ -85,6 +118,10 @@ if (cli.input[0] === 'skill') {
|
|
|
85
118
|
grant: cli.flags.grant,
|
|
86
119
|
revoke: cli.flags.revoke,
|
|
87
120
|
skipVerify: !!cli.flags.skipVerify,
|
|
121
|
+
reason: cli.flags.reason,
|
|
122
|
+
replacedBy: cli.flags.replacedBy,
|
|
123
|
+
version: cli.flags.version,
|
|
124
|
+
allowDeprecated: !!cli.flags.allowDeprecated,
|
|
88
125
|
});
|
|
89
126
|
process.exit(exit);
|
|
90
127
|
}
|
|
@@ -110,6 +147,44 @@ if (cli.input[0] === 'thread') {
|
|
|
110
147
|
});
|
|
111
148
|
process.exit(exit);
|
|
112
149
|
}
|
|
150
|
+
// Internal: scheduler spawns `yome __run-task <id>` per fire.
|
|
151
|
+
// Not exposed in --help; users go through `yome cron run`.
|
|
152
|
+
if (cli.input[0] === '__run-task') {
|
|
153
|
+
const id = cli.input[1];
|
|
154
|
+
if (!id) {
|
|
155
|
+
console.error('usage: yome __run-task <id>');
|
|
156
|
+
process.exit(2);
|
|
157
|
+
}
|
|
158
|
+
process.exit(await runTaskById(id));
|
|
159
|
+
}
|
|
160
|
+
if (cli.input[0] === 'daemon') {
|
|
161
|
+
const exit = await runDaemonSubcommand(cli.input.slice(1), {
|
|
162
|
+
foreground: !!cli.flags.foreground,
|
|
163
|
+
follow: !!cli.flags.follow,
|
|
164
|
+
});
|
|
165
|
+
process.exit(exit);
|
|
166
|
+
}
|
|
167
|
+
if (cli.input[0] === 'cron') {
|
|
168
|
+
const exit = await runCronSubcommand(cli.input.slice(1), {
|
|
169
|
+
at: cli.flags.at,
|
|
170
|
+
human: cli.flags.human,
|
|
171
|
+
once: cli.flags.once,
|
|
172
|
+
on: cli.flags.on,
|
|
173
|
+
path: cli.flags.path,
|
|
174
|
+
within: cli.flags.within,
|
|
175
|
+
titleRegex: cli.flags.titleRegex,
|
|
176
|
+
calendar: cli.flags.calendar,
|
|
177
|
+
tz: cli.flags.tz,
|
|
178
|
+
cwd: cli.flags.cwd,
|
|
179
|
+
allow: cli.flags.allow,
|
|
180
|
+
deny: cli.flags.deny,
|
|
181
|
+
maxMs: cli.flags.maxMs,
|
|
182
|
+
env: cli.flags.env,
|
|
183
|
+
follow: !!cli.flags.follow,
|
|
184
|
+
json: !!cli.flags.json,
|
|
185
|
+
});
|
|
186
|
+
process.exit(exit);
|
|
187
|
+
}
|
|
113
188
|
if (cli.input[0] === 'doctor') {
|
|
114
189
|
const { runDoctor } = await import('./yomeSkills/doctor.js');
|
|
115
190
|
const report = runDoctor();
|
|
@@ -144,7 +219,7 @@ if (cli.input[0] === 'doctor') {
|
|
|
144
219
|
//
|
|
145
220
|
// Routes BEFORE the API-key check because skill calls don't need an LLM key.
|
|
146
221
|
const RESERVED_TOP_LEVEL_DOMAINS = new Set([
|
|
147
|
-
'skill', 'login', 'logout', 'whoami', 'doctor', 'thread',
|
|
222
|
+
'skill', 'login', 'logout', 'whoami', 'doctor', 'thread', 'daemon', 'cron', '__run-task',
|
|
148
223
|
]);
|
|
149
224
|
if (cli.input.length >= 1 &&
|
|
150
225
|
!RESERVED_TOP_LEVEL_DOMAINS.has(cli.input[0]) &&
|
|
@@ -155,7 +230,11 @@ if (cli.input.length >= 1 &&
|
|
|
155
230
|
// but argv preserves the user's exact tokens.
|
|
156
231
|
const raw = process.argv.slice(2).filter((a) => {
|
|
157
232
|
// Drop CLI-global flags so they don't leak into the skill call.
|
|
158
|
-
|
|
233
|
+
// NOTE: do NOT strip `--force` here. Skills (e.g. `ppt slide.delete 3 --force`)
|
|
234
|
+
// legitimately use --force as a per-action flag, and it's their semantics
|
|
235
|
+
// — not the CLI-global `--force` of `yome skill install --force` — that
|
|
236
|
+
// matters once we've decided this is a skill invocation.
|
|
237
|
+
return !/^--?(key|base-url|baseUrl|model|provider|verbose|skill|out|no-redact|noRedact|submit|case-id|caseId|dry-run|dryRun|json|yes|grant|revoke|skip-verify|skipVerify|reason|replaced-by|replacedBy|version|allow-deprecated|allowDeprecated|foreground|follow|f|at|human|once|on|path|tz|cwd|allow|deny|max-ms|maxMs)(=|$)/.test(a);
|
|
159
238
|
});
|
|
160
239
|
const commandLine = raw.map((a) => /\s/.test(a) ? `"${a.replace(/"/g, '\\"')}"` : a).join(' ');
|
|
161
240
|
const k = await tryKernel(commandLine);
|
|
@@ -184,16 +263,24 @@ if (cli.flags.key || cli.flags.baseUrl || cli.flags.provider) {
|
|
|
184
263
|
if (!cli.input.length)
|
|
185
264
|
process.exit(0);
|
|
186
265
|
}
|
|
187
|
-
|
|
266
|
+
let config = resolveConfig(cli.flags);
|
|
188
267
|
if (!config.apiKey) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
268
|
+
// Fall back to the first entry in ~/.yome/settings.json customModels if present.
|
|
269
|
+
const entries = loadModelEntries();
|
|
270
|
+
if (entries.length > 0) {
|
|
271
|
+
config = modelEntryToConfig(entries[0]);
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
console.error('No API key found.');
|
|
275
|
+
console.error('Set via: yome --key sk-xxx');
|
|
276
|
+
console.error('Or set YOME_API_KEY environment variable.');
|
|
277
|
+
console.error('Or add a model to ~/.yome/settings.json (customModels).');
|
|
278
|
+
process.exit(1);
|
|
279
|
+
}
|
|
193
280
|
}
|
|
194
281
|
// Only enter interactive mode if no recognized subcommand was provided
|
|
195
282
|
if (cli.input.length === 0 ||
|
|
196
|
-
!['skill', 'login', 'logout', 'whoami', 'doctor', 'thread'].includes(cli.input[0])) {
|
|
283
|
+
!['skill', 'login', 'logout', 'whoami', 'doctor', 'thread', 'daemon', 'cron', '__run-task'].includes(cli.input[0])) {
|
|
197
284
|
const initialPrompt = cli.input.join(' ') || undefined;
|
|
198
285
|
const appConfig = initialPrompt
|
|
199
286
|
? Object.assign({}, config, { __initialPrompt: initialPrompt })
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,18 +29,79 @@ export interface DispatchResult {
|
|
|
29
29
|
stderr: string;
|
|
30
30
|
exitCode: number;
|
|
31
31
|
}
|
|
32
|
+
export declare const NAMED_COLORS: Record<string, [number, number, number]>;
|
|
33
|
+
export interface ColorParseFailure {
|
|
34
|
+
input: string;
|
|
35
|
+
reason: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parse a color spec into an AppleScript RGB literal `{r, g, b}`.
|
|
39
|
+
*
|
|
40
|
+
* Accepted forms (case- and whitespace-insensitive):
|
|
41
|
+
* • `#RRGGBB` or bare `RRGGBB`
|
|
42
|
+
* • `R,G,B` with each channel in 0..255
|
|
43
|
+
* • Named color from NAMED_COLORS (CSS-ish + CN aliases)
|
|
44
|
+
*
|
|
45
|
+
* Returns `{ ok: true, literal }` on success, or `{ ok: false, error }` with
|
|
46
|
+
* a precise reason on failure. Callers MUST surface the error rather than
|
|
47
|
+
* silently emitting an empty literal — silent fallbacks were the root cause
|
|
48
|
+
* of the historical "bg disappeared from the format result" class of bugs.
|
|
49
|
+
*/
|
|
50
|
+
export type ColorParseResult = {
|
|
51
|
+
ok: true;
|
|
52
|
+
literal: string;
|
|
53
|
+
rgb: [number, number, number];
|
|
54
|
+
} | {
|
|
55
|
+
ok: false;
|
|
56
|
+
error: ColorParseFailure;
|
|
57
|
+
};
|
|
58
|
+
export declare function parseColor(input: string): ColorParseResult;
|
|
32
59
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* those three forms — callers should treat null as "user gave a bad color".
|
|
60
|
+
* Back-compat wrapper that returns the literal or null. New code should use
|
|
61
|
+
* `parseColor()` so the failure reason can be surfaced to the user.
|
|
36
62
|
*/
|
|
37
63
|
export declare function parseColorToAppleScriptRGB(input: string): string | null;
|
|
64
|
+
/**
|
|
65
|
+
* `--type` alias → AppleScript `MsoAutoShapeType` enum literal. Unknown
|
|
66
|
+
* aliases degrade to `autoshape rectangle` so the template never emits
|
|
67
|
+
* broken AppleScript.
|
|
68
|
+
*/
|
|
69
|
+
export declare function parseAutoshapeToAppleScript(input: string): string;
|
|
38
70
|
/**
|
|
39
71
|
* `--align` parser → AppleScript `paragraph align ...` enum.
|
|
40
72
|
* Defaults silently to `paragraph align left` for unknown values; that
|
|
41
73
|
* matches the Swift bridge behaviour and avoids breaking the script render.
|
|
42
74
|
*/
|
|
43
75
|
export declare function parseAlignToAppleScript(input: string): string;
|
|
76
|
+
export interface RenderError {
|
|
77
|
+
arg: string;
|
|
78
|
+
filter?: string;
|
|
79
|
+
reason: string;
|
|
80
|
+
}
|
|
81
|
+
export interface RenderResult {
|
|
82
|
+
source: string;
|
|
83
|
+
errors: RenderError[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Render an AppleScript template.
|
|
87
|
+
*
|
|
88
|
+
* Two failure modes exist:
|
|
89
|
+
* - "soft": the filter accepts any input and just renders something
|
|
90
|
+
* (`json`, `posix`, `bool`, `as_int`, `align`, `autoshape`). These never
|
|
91
|
+
* populate `errors`.
|
|
92
|
+
* - "hard": the filter validates input and can reject it (`rgb`). When
|
|
93
|
+
* rejected we emit a syntactically VALID placeholder (`missing value`)
|
|
94
|
+
* so the rendered AppleScript still parses, AND we record the error
|
|
95
|
+
* in `errors[]`. The dispatcher checks `errors` BEFORE running osascript
|
|
96
|
+
* and refuses to run with a structured message — no more silent failure
|
|
97
|
+
* where `bg=深蓝` quietly emitted broken AppleScript.
|
|
98
|
+
*
|
|
99
|
+
* `{{name}}` / `{{name|filter}}` is the substitution syntax.
|
|
100
|
+
* `{{#if name}}…{{/if}}` is the conditional block (greedy, not nestable).
|
|
101
|
+
* Substitution happens AFTER conditionals, so a `{{#if bg}}…{{bg|rgb}}…{{/if}}`
|
|
102
|
+
* block whose `bg` was stripped never reaches the filter.
|
|
103
|
+
*/
|
|
104
|
+
export declare function renderTemplate(tpl: string, ctx: Record<string, string | boolean | number | null>): RenderResult;
|
|
44
105
|
export declare function loadMacosBackend(skillDir: string): MacosBackendManifest | null;
|
|
45
106
|
/**
|
|
46
107
|
* Run an action on a macOS-backed skill. Returns the osascript outcome
|
|
@@ -55,3 +116,13 @@ export interface MergedBatchOptions {
|
|
|
55
116
|
keepGoing: boolean;
|
|
56
117
|
}
|
|
57
118
|
export declare function dispatchMacosBatchMerged(skillDir: string, entries: MergedBatchEntry[], opts: MergedBatchOptions): Promise<DispatchResult>;
|
|
119
|
+
/**
|
|
120
|
+
* Demux the "<okList>|<failList>" convention used by partial-success-aware
|
|
121
|
+
* AppleScript templates (xl/ppt/doc `fmt`, `cf`, …). Returns null when the
|
|
122
|
+
* payload doesn't look like that shape — callers should treat null as
|
|
123
|
+
* "ordinary opaque message, leave it alone".
|
|
124
|
+
*/
|
|
125
|
+
export declare function parsePartialOkFail(msg: string): {
|
|
126
|
+
ok: string;
|
|
127
|
+
fail: string;
|
|
128
|
+
} | null;
|