aimeat 1.19.0 → 1.19.1
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/locales/en.json +4 -0
- package/dist/locales/fi.json +4 -0
- package/dist/public/views/profile/agents-tasks-subtab.js +11 -1
- package/dist/public/views/profile/schedule-item.js +15 -1
- package/dist/src/generated/api-types.d.ts +7 -3
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks.d.ts +5 -1
- package/dist/src/routes/agent-tasks.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks.js +43 -3
- package/dist/src/routes/agent-tasks.js.map +1 -1
- package/dist/src/routes/apps.d.ts +7 -0
- package/dist/src/routes/apps.d.ts.map +1 -1
- package/dist/src/routes/apps.js +50 -36
- package/dist/src/routes/apps.js.map +1 -1
- package/dist/src/routes/schedules.d.ts.map +1 -1
- package/dist/src/routes/schedules.js +10 -2
- package/dist/src/routes/schedules.js.map +1 -1
- package/dist/src/server-bootstrap/service-init.d.ts +15 -0
- package/dist/src/server-bootstrap/service-init.d.ts.map +1 -1
- package/dist/src/server-bootstrap/service-init.js +8 -0
- package/dist/src/server-bootstrap/service-init.js.map +1 -1
- package/dist/src/services/scheduler.d.ts +19 -1
- package/dist/src/services/scheduler.d.ts.map +1 -1
- package/dist/src/services/scheduler.js +49 -17
- package/dist/src/services/scheduler.js.map +1 -1
- package/dist/src/storage/providers/mongodb/index.d.ts +5 -0
- package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
- package/dist/src/storage/providers/mongodb/index.js +30 -1
- package/dist/src/storage/providers/mongodb/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/index.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/index.js +20 -0
- package/dist/src/storage/providers/sqlite/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-task.js +5 -1
- package/dist/src/storage/providers/sqlite/repos/agent-task.js.map +1 -1
- package/dist/src/storage/repositories/app.repository.d.ts +25 -0
- package/dist/src/storage/repositories/app.repository.d.ts.map +1 -1
- package/dist/static/app-catalog.html +936 -221
- package/package.json +1 -1
package/dist/locales/en.json
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
"profile.scheduler.newSchedule": "New schedule",
|
|
10
10
|
"profile.scheduler.close": "Close",
|
|
11
11
|
"profile.scheduler.triggered": "Schedule run started",
|
|
12
|
+
"profile.scheduler.runCreated": "Run started — a new task was created",
|
|
13
|
+
"profile.scheduler.runBusy": "No task created — a previous run is still active. Finish, fail, or delete it, then run again.",
|
|
14
|
+
"profile.scheduler.runLimited": "Not run — this schedule's run limit (daily or max) has been reached.",
|
|
15
|
+
"profile.scheduler.runError": "Run failed",
|
|
12
16
|
"profile.scheduler.cancelled": "Schedule cancelled",
|
|
13
17
|
"profile.scheduler.created": "Schedule created",
|
|
14
18
|
"profile.scheduler.saving": "Saving…",
|
package/dist/locales/fi.json
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
"profile.scheduler.newSchedule": "Uusi ajastus",
|
|
10
10
|
"profile.scheduler.close": "Sulje",
|
|
11
11
|
"profile.scheduler.triggered": "Ajastuksen suoritus käynnistetty",
|
|
12
|
+
"profile.scheduler.runCreated": "Suoritus aloitettu — uusi tehtävä luotiin",
|
|
13
|
+
"profile.scheduler.runBusy": "Tehtävää ei luotu — edellinen suoritus on yhä käynnissä. Päätä, merkitse epäonnistuneeksi tai poista se, ja suorita uudelleen.",
|
|
14
|
+
"profile.scheduler.runLimited": "Ei suoritettu — tämän ajastuksen suoritusraja (päivittäinen tai maksimi) on saavutettu.",
|
|
15
|
+
"profile.scheduler.runError": "Suoritus epäonnistui",
|
|
12
16
|
"profile.scheduler.cancelled": "Ajastus peruttu",
|
|
13
17
|
"profile.scheduler.created": "Ajastus luotu",
|
|
14
18
|
"profile.scheduler.saving": "Tallennetaan…",
|
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
* - TaskItem -- task row with expand/collapse, todo list, start button
|
|
10
10
|
* - RequestChangesModal -- inline modal for owner to send a free-text change request
|
|
11
11
|
* @version-history
|
|
12
|
+
* v4.11.0 -- 2026-06-05 -- Show the Delete button on every non-active task
|
|
13
|
+
* (was queued/draft/revision_requested only) so done/failed/paused/stalled/
|
|
14
|
+
* archived tasks can be removed; active tasks still use Cancel. The backend
|
|
15
|
+
* delete also cleans the task's operational traces (events, live-status
|
|
16
|
+
* memory keys, cancel marker), preserving the deliverable.
|
|
12
17
|
* v4.10.0 -- 2026-06-03 -- Deep-link support: AgentTasksSubtab accepts
|
|
13
18
|
* openTaskId + openTaskNonce; a nonce bump resets the bucket to 'recent'
|
|
14
19
|
* (clears search/time) so the target task is visible, and TaskItem auto-opens
|
|
@@ -581,6 +586,11 @@ function TaskItem({ task, agentName, showToast, onRefresh, autoOpen = 0 }) {
|
|
|
581
586
|
const isRevisionRequested = task.status === 'revision_requested';
|
|
582
587
|
const isActive = task.status === 'active';
|
|
583
588
|
const isDone = task.status === 'done';
|
|
589
|
+
// Any non-active task can be deleted (done/failed/paused/stalled/queued/draft/
|
|
590
|
+
// revision_requested). An active task uses Cancel instead -- the owner stops
|
|
591
|
+
// the running work first, then deletes it. Delete also cleans the task's
|
|
592
|
+
// operational traces server-side (event log, live-status keys, cancel marker).
|
|
593
|
+
const canDelete = !isActive;
|
|
584
594
|
const rating = task.rating;
|
|
585
595
|
const canStart = isQueued && hasTodos;
|
|
586
596
|
const canRequestChanges = task.status === 'queued' && hasTodos;
|
|
@@ -787,7 +797,7 @@ function TaskItem({ task, agentName, showToast, onRefresh, autoOpen = 0 }) {
|
|
|
787
797
|
${(isActive || task.status === 'stalled') && html`
|
|
788
798
|
<button class="btn-danger btn-sm" onClick=${handleCancel}>${t('profile.agents.tasks.cancel')}</button>
|
|
789
799
|
`}
|
|
790
|
-
${
|
|
800
|
+
${canDelete && html`
|
|
791
801
|
<button class="btn-danger btn-sm" onClick=${handleDelete}>${t('profile.agents.tasks.delete')}</button>
|
|
792
802
|
`}
|
|
793
803
|
<span class="pf-agd-task-actions-spacer"></span>
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
* edit (PATCH), and cancel itself; calls onChanged() to let the parent refetch.
|
|
10
10
|
* @version-history
|
|
11
11
|
* v1.0.0 -- 2026-06-03 -- Initial editable schedule card
|
|
12
|
+
* v1.1.0 -- 2026-06-05 -- "Run now" reads the trigger outcome and reports it:
|
|
13
|
+
* a warning toast when no task was created (a previous run is still active,
|
|
14
|
+
* or a run limit was reached) instead of a misleading "started" success.
|
|
12
15
|
*/
|
|
13
16
|
import { h } from 'preact';
|
|
14
17
|
import { useState } from 'preact/hooks';
|
|
@@ -82,7 +85,18 @@ export default function ScheduleItem({ schedule: s, onChanged, showToast }) {
|
|
|
82
85
|
try { await fn(); onChanged?.(); } catch (e) { showToast?.(e.message, true); } finally { setBusy(false); }
|
|
83
86
|
};
|
|
84
87
|
const onToggle = () => run(() => setScheduleEnabled(s.id, !s.enabled));
|
|
85
|
-
|
|
88
|
+
// "Run now" surfaces what actually happened: agent_task schedules can decline
|
|
89
|
+
// to create a task (a previous run is still active, or a run limit is reached),
|
|
90
|
+
// which used to look like success. Map the backend outcome to a clear toast.
|
|
91
|
+
const onTrigger = () => run(async () => {
|
|
92
|
+
const res = await triggerSchedule(s.id);
|
|
93
|
+
const d = res?.data || {};
|
|
94
|
+
if (d.outcome === 'created') showToast?.(t('profile.scheduler.runCreated'));
|
|
95
|
+
else if (d.outcome === 'busy') showToast?.(t('profile.scheduler.runBusy'), true);
|
|
96
|
+
else if (d.outcome === 'limited') showToast?.(t('profile.scheduler.runLimited'), true);
|
|
97
|
+
else if (d.outcome === 'error') showToast?.(d.reason || t('profile.scheduler.runError'), true);
|
|
98
|
+
else showToast?.(t('profile.scheduler.triggered')); // 'ran' (ai/extension) or older server
|
|
99
|
+
});
|
|
86
100
|
const onCancel = () => { if (window.confirm(t('profile.scheduler.confirmCancel'))) run(() => deleteSchedule(s.id)); };
|
|
87
101
|
|
|
88
102
|
const onSave = async () => {
|
|
@@ -7141,7 +7141,10 @@ export interface paths {
|
|
|
7141
7141
|
};
|
|
7142
7142
|
get?: never;
|
|
7143
7143
|
put?: never;
|
|
7144
|
-
/**
|
|
7144
|
+
/**
|
|
7145
|
+
* Run a schedule immediately
|
|
7146
|
+
* @description Runs the schedule now (owner only). The response `data.outcome` reports what happened: `created` (an agent_task occurrence was queued/activated — `data.task_id` is set), `ran` (a non-task ai/extension job executed), `busy` (skipped — a previous occurrence is still running; `data.reason` explains), `limited` (skipped — a run limit such as daily/max was reached), or `error` (the job ran but failed; `data.reason` has the message). A manual run only defers to a genuinely running (active/stalled) occurrence — a paused/queued/archived one no longer blocks it.
|
|
7147
|
+
*/
|
|
7145
7148
|
post: operations["triggerSchedule"];
|
|
7146
7149
|
delete?: never;
|
|
7147
7150
|
options?: never;
|
|
@@ -7227,7 +7230,7 @@ export interface paths {
|
|
|
7227
7230
|
post?: never;
|
|
7228
7231
|
/**
|
|
7229
7232
|
* Delete a task
|
|
7230
|
-
* @description Delete a task.
|
|
7233
|
+
* @description Delete a task (owner only). Any task can be deleted EXCEPT one that is currently `active` -- a running task must be cancelled or paused first. Deletion also removes the task's event log and cleans its operational memory traces (the agent's live-status keys `agents.{name}.tasks.{id}.*` and the owner-written cancel marker `agents.cancel.task.{id}`). The agent's produced deliverable/output memory is preserved.
|
|
7231
7234
|
*/
|
|
7232
7235
|
delete: operations["deleteAgentTask"];
|
|
7233
7236
|
options?: never;
|
|
@@ -21521,7 +21524,7 @@ export interface operations {
|
|
|
21521
21524
|
};
|
|
21522
21525
|
requestBody?: never;
|
|
21523
21526
|
responses: {
|
|
21524
|
-
/** @description Triggered */
|
|
21527
|
+
/** @description Triggered. `data.outcome` is one of created | ran | busy | limited | error; `data.task_id` is present when a task was created; `data.reason` is present on busy/limited/error. */
|
|
21525
21528
|
200: {
|
|
21526
21529
|
headers: {
|
|
21527
21530
|
[name: string]: unknown;
|
|
@@ -21757,6 +21760,7 @@ export interface operations {
|
|
|
21757
21760
|
401: components["responses"]["Unauthorized"];
|
|
21758
21761
|
403: components["responses"]["Forbidden"];
|
|
21759
21762
|
404: components["responses"]["NotFound"];
|
|
21763
|
+
409: components["responses"]["Conflict"];
|
|
21760
21764
|
};
|
|
21761
21765
|
};
|
|
21762
21766
|
updateAgentTask: {
|