@askexenow/exe-os 0.9.119 → 0.9.121
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/bin/cli.js +11 -7
- package/dist/bin/exe-boot.js +9 -6
- package/dist/bin/exe-dispatch.js +9 -6
- package/dist/bin/exe-gateway.js +9 -6
- package/dist/bin/exe-session-cleanup.js +9 -6
- package/dist/bin/git-sweep.js +9 -6
- package/dist/bin/intercom-check.js +42 -6
- package/dist/bin/scan-tasks.js +9 -6
- package/dist/gateway/index.js +9 -6
- package/dist/hooks/bug-report-worker.js +9 -6
- package/dist/hooks/codex-stop-task-finalizer.js +9 -6
- package/dist/hooks/commit-complete.js +9 -6
- package/dist/hooks/ingest.js +9 -6
- package/dist/hooks/pre-compact.js +9 -6
- package/dist/hooks/prompt-submit.js +69 -7
- package/dist/hooks/session-end.js +9 -6
- package/dist/index.js +42 -6
- package/dist/lib/consolidation.js +1 -1
- package/dist/lib/exe-daemon.js +45 -8
- package/dist/lib/skill-learning.js +9 -6
- package/dist/lib/tasks.js +9 -6
- package/dist/lib/tmux-routing.js +9 -6
- package/dist/mcp/register-tools.js +485 -324
- package/dist/mcp/server.js +485 -324
- package/dist/mcp/tools/create-task.js +9 -6
- package/dist/mcp/tools/update-task.js +9 -6
- package/dist/runtime/index.js +42 -6
- package/dist/tui/App.js +9 -6
- package/package.json +1 -1
|
@@ -5241,15 +5241,18 @@ var init_embedder = __esm({
|
|
|
5241
5241
|
import crypto5 from "crypto";
|
|
5242
5242
|
async function storeBehavior(opts) {
|
|
5243
5243
|
try {
|
|
5244
|
-
const { loadEmployeesSync: loadEmployeesSync2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
|
|
5244
|
+
const { loadEmployeesSync: loadEmployeesSync2, baseAgentName: baseAgentName2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
|
|
5245
5245
|
const roster = loadEmployeesSync2();
|
|
5246
|
-
if (roster.length > 0
|
|
5247
|
-
|
|
5248
|
-
|
|
5246
|
+
if (roster.length > 0) {
|
|
5247
|
+
const base = baseAgentName2(opts.agentId, roster);
|
|
5248
|
+
if (!roster.some((e) => e.name === opts.agentId || e.name === base)) {
|
|
5249
|
+
process.stderr.write(
|
|
5250
|
+
`[behaviors] WARNING: Agent "${opts.agentId}" not found in roster. Storing behavior anyway \u2014 may be orphaned.
|
|
5251
|
+
`
|
|
5252
|
+
);
|
|
5249
5253
|
}
|
|
5250
5254
|
}
|
|
5251
|
-
} catch
|
|
5252
|
-
if (e instanceof Error && e.message.includes("not found in roster")) throw e;
|
|
5255
|
+
} catch {
|
|
5253
5256
|
}
|
|
5254
5257
|
const client = getClient();
|
|
5255
5258
|
const id = crypto5.randomUUID();
|
|
@@ -5241,15 +5241,18 @@ var init_embedder = __esm({
|
|
|
5241
5241
|
import crypto5 from "crypto";
|
|
5242
5242
|
async function storeBehavior(opts) {
|
|
5243
5243
|
try {
|
|
5244
|
-
const { loadEmployeesSync: loadEmployeesSync2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
|
|
5244
|
+
const { loadEmployeesSync: loadEmployeesSync2, baseAgentName: baseAgentName2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
|
|
5245
5245
|
const roster = loadEmployeesSync2();
|
|
5246
|
-
if (roster.length > 0
|
|
5247
|
-
|
|
5248
|
-
|
|
5246
|
+
if (roster.length > 0) {
|
|
5247
|
+
const base = baseAgentName2(opts.agentId, roster);
|
|
5248
|
+
if (!roster.some((e) => e.name === opts.agentId || e.name === base)) {
|
|
5249
|
+
process.stderr.write(
|
|
5250
|
+
`[behaviors] WARNING: Agent "${opts.agentId}" not found in roster. Storing behavior anyway \u2014 may be orphaned.
|
|
5251
|
+
`
|
|
5252
|
+
);
|
|
5249
5253
|
}
|
|
5250
5254
|
}
|
|
5251
|
-
} catch
|
|
5252
|
-
if (e instanceof Error && e.message.includes("not found in roster")) throw e;
|
|
5255
|
+
} catch {
|
|
5253
5256
|
}
|
|
5254
5257
|
const client = getClient();
|
|
5255
5258
|
const id = crypto5.randomUUID();
|
package/dist/runtime/index.js
CHANGED
|
@@ -6489,20 +6489,24 @@ __export(behaviors_exports, {
|
|
|
6489
6489
|
deactivateBehavior: () => deactivateBehavior,
|
|
6490
6490
|
listBehaviors: () => listBehaviors,
|
|
6491
6491
|
listBehaviorsByDomain: () => listBehaviorsByDomain,
|
|
6492
|
+
listBehaviorsSince: () => listBehaviorsSince,
|
|
6492
6493
|
storeBehavior: () => storeBehavior
|
|
6493
6494
|
});
|
|
6494
6495
|
import crypto5 from "crypto";
|
|
6495
6496
|
async function storeBehavior(opts) {
|
|
6496
6497
|
try {
|
|
6497
|
-
const { loadEmployeesSync: loadEmployeesSync2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
|
|
6498
|
+
const { loadEmployeesSync: loadEmployeesSync2, baseAgentName: baseAgentName2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
|
|
6498
6499
|
const roster = loadEmployeesSync2();
|
|
6499
|
-
if (roster.length > 0
|
|
6500
|
-
|
|
6501
|
-
|
|
6500
|
+
if (roster.length > 0) {
|
|
6501
|
+
const base = baseAgentName2(opts.agentId, roster);
|
|
6502
|
+
if (!roster.some((e) => e.name === opts.agentId || e.name === base)) {
|
|
6503
|
+
process.stderr.write(
|
|
6504
|
+
`[behaviors] WARNING: Agent "${opts.agentId}" not found in roster. Storing behavior anyway \u2014 may be orphaned.
|
|
6505
|
+
`
|
|
6506
|
+
);
|
|
6502
6507
|
}
|
|
6503
6508
|
}
|
|
6504
|
-
} catch
|
|
6505
|
-
if (e instanceof Error && e.message.includes("not found in roster")) throw e;
|
|
6509
|
+
} catch {
|
|
6506
6510
|
}
|
|
6507
6511
|
const client = getClient();
|
|
6508
6512
|
const id = crypto5.randomUUID();
|
|
@@ -6593,6 +6597,38 @@ async function listBehaviorsByDomain(agentId, domain) {
|
|
|
6593
6597
|
source_session_id: r.source_session_id ? String(r.source_session_id) : null
|
|
6594
6598
|
}));
|
|
6595
6599
|
}
|
|
6600
|
+
async function listBehaviorsSince(agentId, sinceIso, projectName, limit = 15) {
|
|
6601
|
+
const client = getClient();
|
|
6602
|
+
const result = await client.execute({
|
|
6603
|
+
sql: `SELECT id, agent_id, project_name, domain, priority, content, active, created_at, updated_at, vector, created_by_agent, created_by_device, source_session_id
|
|
6604
|
+
FROM behaviors
|
|
6605
|
+
WHERE agent_id = ? AND active = 1
|
|
6606
|
+
AND (project_name IS NULL OR project_name = ?)
|
|
6607
|
+
AND (created_at > ? OR updated_at > ?)
|
|
6608
|
+
ORDER BY
|
|
6609
|
+
CASE WHEN priority = 'p0' THEN 0
|
|
6610
|
+
WHEN priority = 'p1' THEN 1
|
|
6611
|
+
ELSE 2 END,
|
|
6612
|
+
updated_at DESC
|
|
6613
|
+
LIMIT ?`,
|
|
6614
|
+
args: [agentId, projectName ?? "", sinceIso, sinceIso, limit]
|
|
6615
|
+
});
|
|
6616
|
+
return result.rows.map((r) => ({
|
|
6617
|
+
id: String(r.id),
|
|
6618
|
+
agent_id: String(r.agent_id),
|
|
6619
|
+
project_name: r.project_name ? String(r.project_name) : null,
|
|
6620
|
+
domain: r.domain ? String(r.domain) : null,
|
|
6621
|
+
priority: String(r.priority || "p1"),
|
|
6622
|
+
content: String(r.content),
|
|
6623
|
+
active: Number(r.active),
|
|
6624
|
+
created_at: String(r.created_at),
|
|
6625
|
+
updated_at: String(r.updated_at),
|
|
6626
|
+
vector: r.vector ? Array.from(new Float32Array(r.vector)) : null,
|
|
6627
|
+
created_by_agent: r.created_by_agent ? String(r.created_by_agent) : null,
|
|
6628
|
+
created_by_device: r.created_by_device ? String(r.created_by_device) : null,
|
|
6629
|
+
source_session_id: r.source_session_id ? String(r.source_session_id) : null
|
|
6630
|
+
}));
|
|
6631
|
+
}
|
|
6596
6632
|
async function deactivateBehavior(id) {
|
|
6597
6633
|
const client = getClient();
|
|
6598
6634
|
const result = await client.execute({
|
package/dist/tui/App.js
CHANGED
|
@@ -6476,15 +6476,18 @@ var init_embedder = __esm({
|
|
|
6476
6476
|
import crypto5 from "crypto";
|
|
6477
6477
|
async function storeBehavior(opts) {
|
|
6478
6478
|
try {
|
|
6479
|
-
const { loadEmployeesSync: loadEmployeesSync2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
|
|
6479
|
+
const { loadEmployeesSync: loadEmployeesSync2, baseAgentName: baseAgentName2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
|
|
6480
6480
|
const roster = loadEmployeesSync2();
|
|
6481
|
-
if (roster.length > 0
|
|
6482
|
-
|
|
6483
|
-
|
|
6481
|
+
if (roster.length > 0) {
|
|
6482
|
+
const base = baseAgentName2(opts.agentId, roster);
|
|
6483
|
+
if (!roster.some((e) => e.name === opts.agentId || e.name === base)) {
|
|
6484
|
+
process.stderr.write(
|
|
6485
|
+
`[behaviors] WARNING: Agent "${opts.agentId}" not found in roster. Storing behavior anyway \u2014 may be orphaned.
|
|
6486
|
+
`
|
|
6487
|
+
);
|
|
6484
6488
|
}
|
|
6485
6489
|
}
|
|
6486
|
-
} catch
|
|
6487
|
-
if (e instanceof Error && e.message.includes("not found in roster")) throw e;
|
|
6490
|
+
} catch {
|
|
6488
6491
|
}
|
|
6489
6492
|
const client = getClient();
|
|
6490
6493
|
const id = crypto5.randomUUID();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askexenow/exe-os",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.121",
|
|
4
4
|
"description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"type": "module",
|