omnius 1.0.609 → 1.0.610

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/index.js CHANGED
@@ -808130,6 +808130,12 @@ function getOpenApiSpec() {
808130
808130
  "/health/startup": { get: { summary: "Startup complete", tags: ["Health"], security: [], responses: { 200: { description: "Started" } } } },
808131
808131
  "/version": { get: { summary: "Package, API, and discovery contract versions", tags: ["Health"], security: [], responses: { 200: { description: "Package/boot/API/discovery versions, package hash, Node.js, and platform" } } } },
808132
808132
  "/metrics": { get: { summary: "Prometheus metrics", tags: ["Health"], security: [], responses: { 200: { description: "Prometheus text format" } } } },
808133
+ "/": { get: { summary: "HATEOAS API root when the client does not request HTML", tags: ["Discovery"], security: [], responses: { 200: { description: "Versioned link map for docs, discovery, inference, tools, memory, voice, projects, and observability" } } } },
808134
+ "/help": { get: { summary: "Compact daemon help and integration entrypoints", tags: ["Discovery"], security: [], responses: { 200: { description: "Text or JSON integration help" } } } },
808135
+ "/v1/routes": { get: { summary: "Flat grep-friendly daemon route summary", tags: ["Discovery"], security: [], responses: { 200: { description: "Human- and agent-readable route map" } } } },
808136
+ "/routes": { get: { summary: "Compatibility alias for the daemon route summary", tags: ["Discovery"], security: [], responses: { 200: { description: "Human- and agent-readable route map" } } } },
808137
+ "/asyncapi.json": { get: { summary: "AsyncAPI 2.6 contract for the voicechat WebSocket", tags: ["Discovery"], security: [], responses: { 200: { description: "AsyncAPI document" } } } },
808138
+ "/asyncapi": { get: { summary: "Compatibility alias for the AsyncAPI contract", tags: ["Discovery"], security: [], responses: { 200: { description: "AsyncAPI document" } } } },
808133
808139
  "/v1/discovery": {
808134
808140
  get: {
808135
808141
  summary: "Discover Omnius layers, workflows, runtimes, modules, stores, capabilities, tools, APIs, commands, skills, and docs",
@@ -808211,7 +808217,56 @@ function getOpenApiSpec() {
808211
808217
  }
808212
808218
  }
808213
808219
  },
808214
- "/v1/chat/sessions": { get: { summary: "List active chat sessions", tags: ["Chat"], responses: { 200: { description: "Session list" } } } },
808220
+ "/realtime": {
808221
+ post: {
808222
+ summary: "Generate one short text reply for a voice-adapter transcript",
808223
+ description: "Text-only conversational brain for ASR/TTS adapters. Accepts message, text, recent_turn, asr_text, or callerText and returns JSON by default or plain text when requested. This route does not perform ASR or TTS.",
808224
+ tags: ["Chat"],
808225
+ requestBody: { required: true, content: { "application/json": { schema: { type: "object", properties: { message: { type: "string" }, text: { type: "string" }, recent_turn: { type: "string" }, asr_text: { type: "string" }, callerText: { type: "string" }, soul_md: { type: "string" }, format: { type: "string", enum: ["json", "text"] } } } } } },
808226
+ responses: { 200: { description: "Short conversational reply" }, 400: { description: "No transcript text supplied" }, 500: { description: "Realtime backend request failed" } }
808227
+ }
808228
+ },
808229
+ "/v1/realtime": {
808230
+ post: {
808231
+ summary: "Auth-scoped alias for the text-only realtime voice adapter",
808232
+ description: "Equivalent to POST /realtime and protected by the daemon's /v1 auth policy.",
808233
+ tags: ["Chat"],
808234
+ requestBody: { required: true, content: { "application/json": { schema: { type: "object", properties: { message: { type: "string" }, text: { type: "string" }, recent_turn: { type: "string" }, asr_text: { type: "string" }, callerText: { type: "string" }, soul_md: { type: "string" }, format: { type: "string", enum: ["json", "text"] } } } } } },
808235
+ responses: { 200: { description: "Short conversational reply" }, 400: { description: "No transcript text supplied" }, 500: { description: "Realtime backend request failed" } }
808236
+ }
808237
+ },
808238
+ "/v1/chat/sessions": {
808239
+ get: {
808240
+ summary: "List persisted browser chats and importable TUI sessions for a workspace",
808241
+ description: "Returns the canonical structured chat store plus quality-filtered TUI visual sessions. Exit commands such as /quit, manual-save noise, empty transcripts, and duplicate session fingerprints are excluded from the TUI history projection.",
808242
+ tags: ["Chat"],
808243
+ parameters: [
808244
+ { name: "root", in: "query", schema: { type: "string" }, description: "Workspace root. Defaults to the daemon's current project or process cwd." },
808245
+ { name: "include_tui", in: "query", schema: { type: "boolean", default: true }, description: "Set to 0/false to return only canonical browser chat sessions." }
808246
+ ],
808247
+ responses: { 200: { description: "Workspace-scoped canonical and importable session list" } }
808248
+ }
808249
+ },
808250
+ "/v1/chat/sessions/{id}": {
808251
+ get: {
808252
+ summary: "Hydrate one chat or imported TUI session with full history and live-run state",
808253
+ tags: ["Chat"],
808254
+ parameters: [
808255
+ { name: "id", in: "path", required: true, schema: { type: "string" } },
808256
+ { name: "root", in: "query", schema: { type: "string" }, description: "Workspace root used to resolve tui: session ids." }
808257
+ ],
808258
+ responses: { 200: { description: "Session metadata, full non-system message history, transcript, token counts, and in-flight run state" }, 404: { description: "Session not found" } }
808259
+ },
808260
+ delete: {
808261
+ summary: "Permanently delete a canonical chat or TUI history session",
808262
+ tags: ["Chat"],
808263
+ parameters: [
808264
+ { name: "id", in: "path", required: true, schema: { type: "string" } },
808265
+ { name: "root", in: "query", schema: { type: "string" }, description: "Workspace root used to resolve tui: session ids." }
808266
+ ],
808267
+ responses: { 200: { description: "Session deleted" }, 404: { description: "Session not found" } }
808268
+ }
808269
+ },
808215
808270
  "/v1/chat/sessions/{id}/summarize": { post: { summary: "Generate + cache an inference-based title/summary for a session — body {force?, root?}", tags: ["Chat"], responses: { 200: { description: "Title + summary" }, 500: { description: "Generation failed" } } } },
808216
808271
  "/v1/chat/suggest-followup": { post: { summary: "Suggest one short next-message follow-up for a session (ghost-text input) — body {session_id}", tags: ["Chat"], responses: { 200: { description: "{ suggestion }" } } } },
808217
808272
  "/v1/chat/sessions/{id}/status": { get: { summary: "Reactive recall: is this session running right now + unseen deltas since ?since=<seq> (running, phase, seq, partial, deltas[])", tags: ["Chat"], responses: { 200: { description: "Live run status + catch-up deltas" } } } },
@@ -808255,6 +808310,7 @@ function getOpenApiSpec() {
808255
808310
  get: { summary: "Get run details", tags: ["Agentic"], parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], responses: { 200: { description: "Run record" }, 404: { description: "Not found" } } },
808256
808311
  delete: { summary: "Abort run", tags: ["Agentic"], responses: { 200: { description: "Aborted" }, 404: { description: "Not found" } } }
808257
808312
  },
808313
+ "/v1/runs/{id}/output": { get: { summary: "Read the captured output for one agentic run", tags: ["Agentic"], parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], responses: { 200: { description: "Run output and status" }, 404: { description: "Run not found" } } } },
808258
808314
  // ───── Todos (WO-TASK-02 — agent-emitted checklist) ─────
808259
808315
  "/v1/todos": {
808260
808316
  get: {
@@ -808332,6 +808388,10 @@ function getOpenApiSpec() {
808332
808388
  "/v1/profiles": { get: { summary: "List tool profiles", tags: ["Profiles"], responses: { 200: { description: "Profile list" } } }, post: { summary: "Create tool profile", tags: ["Profiles"], responses: { 201: { description: "Created" } } } },
808333
808389
  "/v1/profiles/{name}": { get: { summary: "Get profile", tags: ["Profiles"], responses: { 200: { description: "Profile details" } } }, delete: { summary: "Delete profile", tags: ["Profiles"], responses: { 200: { description: "Deleted" } } } },
808334
808390
  "/v1/files": { get: { summary: "List workspace directory", tags: ["Files"], parameters: [{ name: "path", in: "query", schema: { type: "string" } }], responses: { 200: { description: "Directory entries" } } } },
808391
+ "/v1/files/raw": {
808392
+ get: { summary: "Stream raw workspace file bytes for browser previews", tags: ["Files"], parameters: [{ name: "path", in: "query", required: true, schema: { type: "string" } }], responses: { 200: { description: "File bytes with detected content type and range support" }, 400: { description: "Missing or invalid path" }, 404: { description: "File not found" } } },
808393
+ head: { summary: "Inspect raw workspace file response metadata", tags: ["Files"], parameters: [{ name: "path", in: "query", required: true, schema: { type: "string" } }], responses: { 200: { description: "File metadata headers" }, 400: { description: "Missing or invalid path" }, 404: { description: "File not found" } } }
808394
+ },
808335
808395
  // ───── Media generation (image/video/audio/music) ─────
808336
808396
  "/v1/media/models": { get: { summary: "List available generative media models per kind (image/video/audio/music)", tags: ["Media"], parameters: [{ name: "kind", in: "query", schema: { type: "string", enum: ["image", "video", "audio", "music"] } }], responses: { 200: { description: "Model catalogue grouped by kind" } } } },
808337
808397
  "/v1/media/store": { get: { summary: "Media-store root + disk usage plus any legacy per-group caches still reclaimable", tags: ["Media"], responses: { 200: { description: "Store + disk + legacy-cache report" } } } },
@@ -808407,6 +808467,10 @@ function getOpenApiSpec() {
808407
808467
  "/v1/memory/write": { post: { summary: "Write a memory entry (PT-04)", tags: ["Memory"], responses: { 201: { description: "Written" }, 403: { description: "Requires run/admin scope" } } } },
808408
808468
  "/v1/memory/episodes": { get: { summary: "List episodes", tags: ["Memory"], responses: { 200: { description: "Paginated episodes" } } } },
808409
808469
  "/v1/memory/failures": { get: { summary: "List failures", tags: ["Memory"], responses: { 200: { description: "Paginated failures" } } } },
808470
+ "/v1/memory/ingest": { post: { summary: "Ingest content or files into Omnius memory", tags: ["Memory"], responses: { 200: { description: "Ingestion result" }, 400: { description: "Invalid ingestion request" } } } },
808471
+ "/v1/memory/entities": { get: { summary: "List extracted memory entities", tags: ["Memory"], responses: { 200: { description: "Entity list" } } } },
808472
+ "/v1/memory/jobs/run": { post: { summary: "Run a named memory maintenance job", tags: ["Memory"], responses: { 200: { description: "Maintenance job result" }, 400: { description: "Invalid job request" } } } },
808473
+ "/v1/memory/feedback": { post: { summary: "Record relevance or quality feedback for a memory item", tags: ["Memory"], responses: { 200: { description: "Feedback recorded" }, 400: { description: "Invalid feedback" } } } },
808410
808474
  // ───── PT-06: Events ─────
808411
808475
  "/v1/events": {
808412
808476
  get: {
@@ -808710,6 +808774,13 @@ function getOpenApiSpec() {
808710
808774
  }
808711
808775
  },
808712
808776
  "/v1/vision/describe": { post: { summary: "Vision describe (deferred to PT-07)", tags: ["Vision"], responses: { 501: { description: "Not yet daemon-resident" } } } },
808777
+ "/v1/vision/embed": { post: { summary: "Create a vision embedding for uploaded or referenced media", tags: ["Vision"], responses: { 200: { description: "Vision embedding result" }, 400: { description: "Invalid media input" } } } },
808778
+ "/v1/audio/embed": { post: { summary: "Create an audio embedding for uploaded or referenced audio", tags: ["Voice"], responses: { 200: { description: "Audio embedding result" }, 400: { description: "Invalid audio input" } } } },
808779
+ "/v1/chat/attachments": { post: { summary: "Upload an attachment for a stateful chat", tags: ["Chat"], responses: { 200: { description: "Stored attachment metadata" }, 400: { description: "Invalid attachment" } } } },
808780
+ "/v1/admin/access": {
808781
+ get: { summary: "Read the daemon network access mode", tags: ["Config"], responses: { 200: { description: "Current access mode and host" } } },
808782
+ post: { summary: "Change and persist the daemon network access mode from loopback", tags: ["Config"], description: "Loopback-only even when the current access mode is any.", requestBody: { required: true, content: { "application/json": { schema: { type: "object", required: ["mode"], properties: { mode: { type: "string", enum: ["loopback", "lan", "any"] } } } } } }, responses: { 200: { description: "Access mode changed" }, 400: { description: "Invalid mode" }, 403: { description: "Loopback origin required" } } }
808783
+ },
808713
808784
  // ───── Projects (workspace registry) ─────
808714
808785
  "/v1/projects": {
808715
808786
  get: { summary: "List registered project workspaces + current selection", tags: ["Projects"], responses: { 200: { description: "{projects[], current}" } } },
@@ -808719,6 +808790,7 @@ function getOpenApiSpec() {
808719
808790
  "/v1/projects/switch": { post: { summary: "Set the active project — body {root, registerIfMissing?}", tags: ["Projects"], responses: { 200: { description: "Switched" }, 404: { description: "Unknown project" } } } },
808720
808791
  "/v1/projects/register": { post: { summary: "Register a project root — body {root, pid?}", tags: ["Projects"], responses: { 200: { description: "Registered" } } } },
808721
808792
  "/v1/projects/rename": { post: { summary: "Rename a project — body {root, name}", tags: ["Projects"], responses: { 200: { description: "Renamed" }, 404: { description: "Unknown project" } } } },
808793
+ "/v1/projects/scan": { get: { summary: "Scan configured roots for discoverable project workspaces", tags: ["Projects"], responses: { 200: { description: "Discovered project roots" } } } },
808722
808794
  "/v1/projects/preferences": {
808723
808795
  get: { summary: "Get per-project UI preferences (model, theme, current chat session id, current agent run id, recent indexes)", tags: ["Projects"], parameters: [{ name: "root", in: "query", schema: { type: "string" } }], responses: { 200: { description: "Preferences" }, 404: { description: "No current project AND no ?root supplied" } } },
808724
808796
  put: { summary: "Patch preferences (server-managed v + updatedAt are stripped from client patches)", tags: ["Projects"], responses: { 200: { description: "Merged" }, 400: { description: "Bad body" }, 404: { description: "No current project AND no ?root" } } },
@@ -808728,12 +808800,17 @@ function getOpenApiSpec() {
808728
808800
  "/v1/codegraph/snapshot": { get: { summary: "Code graph stats + last N events", tags: ["Tools"], responses: { 200: { description: "Snapshot" } } } },
808729
808801
  "/v1/codegraph/events": { get: { summary: "Code graph live events (SSE)", tags: ["Tools"], responses: { 200: { description: "SSE stream" } } } },
808730
808802
  "/v1/scheduled": { get: { summary: "List scheduled jobs", tags: ["Engines"], responses: { 200: { description: "Scheduled jobs" } } } },
808731
- "/v1/scheduled/all": { get: { summary: "List all scheduled jobs (all queues)", tags: ["Engines"], responses: { 200: { description: "Scheduled jobs (full)" } } } },
808803
+ "/v1/scheduled/all": { delete: { summary: "Delete all scheduled tasks, timers, cron entries, and persisted sources", tags: ["Engines"], responses: { 200: { description: "Deletion and cleanup report" } } } },
808732
808804
  "/v1/scheduled/status": { get: { summary: "Status of scheduled job runner", tags: ["Engines"], responses: { 200: { description: "Status" } } } },
808805
+ "/v1/scheduled/{id}": {
808806
+ post: { summary: "Enable or disable one scheduled task or user timer", tags: ["Engines"], parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], requestBody: { required: true, content: { "application/json": { schema: { type: "object", required: ["enabled"], properties: { enabled: { type: "boolean" } } } } } }, responses: { 200: { description: "Scheduled item updated" }, 404: { description: "Scheduled item not found" } } },
808807
+ delete: { summary: "Delete one scheduled task or user timer", tags: ["Engines"], parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], responses: { 200: { description: "Scheduled item deleted" }, 404: { description: "Scheduled item not found" } } }
808808
+ },
808733
808809
  "/v1/scheduled/kill": { post: { summary: "Kill a running scheduled job", tags: ["Engines"], responses: { 200: { description: "Killed" } } } },
808734
808810
  "/v1/scheduled/fixup": { post: { summary: "Reconcile scheduled job state", tags: ["Engines"], responses: { 200: { description: "Reconciled" } } } },
808735
- "/v1/scheduled/reconcile": { post: { summary: "Force-reconcile scheduled jobs against persisted state", tags: ["Engines"], responses: { 200: { description: "Reconciled" } } } },
808811
+ "/v1/scheduled/reconcile": { get: { summary: "Preview reconciliation of persisted and legacy scheduled jobs", tags: ["Engines"], responses: { 200: { description: "Reconciliation preview" } } }, post: { summary: "Preview or apply scheduled-job reconciliation", tags: ["Engines"], responses: { 200: { description: "Reconciliation result" } } } },
808736
808812
  "/v1/services/systemd": { get: { summary: "Systemd service status (where supported)", tags: ["Engines"], responses: { 200: { description: "Service snapshot" } } } },
808813
+ "/v1/services/systemd/{unit}": { post: { summary: "Perform an action on one user-level systemd unit", tags: ["Engines"], parameters: [{ name: "unit", in: "path", required: true, schema: { type: "string" } }], responses: { 200: { description: "Service action completed" }, 400: { description: "Missing action" }, 500: { description: "Service action failed" } } } },
808737
808814
  "/v1/update": {
808738
808815
  get: {
808739
808816
  summary: "Global Omnius update transaction status",
@@ -816787,7 +816864,7 @@ data: ${JSON.stringify(data)}
816787
816864
  jsonResponse(res, 200, { tasks: enriched });
816788
816865
  return;
816789
816866
  }
816790
- if (pathname?.startsWith("/v1/scheduled/") && method === "POST") {
816867
+ if (pathname?.startsWith("/v1/scheduled/") && method === "POST" && !(/* @__PURE__ */ new Set(["kill", "fixup", "reconcile"])).has(pathname.split("/")[3] ?? "")) {
816791
816868
  const parts = pathname.split("/");
816792
816869
  const id2 = parts[3] ?? "";
816793
816870
  const body = await parseJsonBody(req3);
@@ -57,6 +57,7 @@ export default defineConfig({
57
57
  { text: "Categorized OSINT Research", link: "/guides/osint-research" },
58
58
  { text: "Agent Integration", link: "/guides/agent-integration" },
59
59
  { text: "TUI Workflows", link: "/guides/tui-workflows" },
60
+ { text: "Web Dashboard", link: "/guides/dashboard" },
60
61
  { text: "Sponsor And COHERE", link: "/guides/sponsor-and-cohere" },
61
62
  { text: "Realtime Conversation", link: "/guides/realtime" },
62
63
  { text: "Telegram", link: "/guides/telegram" },