@intent-systems/nexus 2026.1.5-3 → 2026.1.5-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.
Files changed (144) hide show
  1. package/dist/agents/agent-id.js +41 -0
  2. package/dist/agents/auth-profiles.js +114 -25
  3. package/dist/agents/identity-state.js +79 -0
  4. package/dist/agents/model-auth.js +1 -0
  5. package/dist/agents/model-fallback.js +15 -9
  6. package/dist/agents/model-selection.js +1 -1
  7. package/dist/agents/models-config.js +17 -11
  8. package/dist/agents/pi-embedded-runner.js +101 -9
  9. package/dist/agents/sandbox.js +12 -3
  10. package/dist/agents/skill-runner.js +29 -4
  11. package/dist/agents/skill-usage.js +114 -11
  12. package/dist/agents/skills-status.js +4 -4
  13. package/dist/agents/skills.js +18 -7
  14. package/dist/agents/subagent-registry.js +25 -11
  15. package/dist/agents/system-prompt.js +16 -0
  16. package/dist/agents/tool-policy.js +19 -3
  17. package/dist/agents/tools/browser-tool.js +5 -2
  18. package/dist/agents/tools/image-tool.js +93 -8
  19. package/dist/agents/tools/sessions-announce-target.js +5 -1
  20. package/dist/agents/workspace.js +55 -46
  21. package/dist/auto-reply/command-detection.js +2 -1
  22. package/dist/auto-reply/reply/directive-handling.js +153 -28
  23. package/dist/auto-reply/reply/directives.js +17 -2
  24. package/dist/auto-reply/reply/model-selection.js +8 -3
  25. package/dist/auto-reply/reply/queue.js +2 -2
  26. package/dist/auto-reply/reply.js +1 -1
  27. package/dist/auto-reply/thinking.js +15 -0
  28. package/dist/browser/chrome.js +1 -1
  29. package/dist/browser/client.js +2 -0
  30. package/dist/browser/config.js +6 -2
  31. package/dist/browser/pw-tools-core.js +3 -0
  32. package/dist/browser/routes/agent.js +14 -0
  33. package/dist/canvas-host/server.js +1 -1
  34. package/dist/capabilities/detector.js +245 -0
  35. package/dist/capabilities/registry.js +99 -0
  36. package/dist/channels/location.js +44 -0
  37. package/dist/channels/web/index.js +2 -0
  38. package/dist/cli/cloud-cli.js +12 -7
  39. package/dist/cli/credential-cli.js +139 -17
  40. package/dist/cli/gateway-cli.js +1 -1
  41. package/dist/cli/log-cli.js +25 -0
  42. package/dist/cli/pairing-cli.js +1 -1
  43. package/dist/cli/program.js +58 -6
  44. package/dist/cli/run-main.js +1 -1
  45. package/dist/cli/skills-cli.js +144 -21
  46. package/dist/cli/skills-hub-cli.js +59 -29
  47. package/dist/cli/tool-connector-cli.js +99 -24
  48. package/dist/cli/upstream-sync-cli.js +253 -96
  49. package/dist/cli/usage-cli.js +14 -0
  50. package/dist/commands/auth-choice-options.js +6 -1
  51. package/dist/commands/auth-choice.js +157 -5
  52. package/dist/commands/bootstrap-preset.js +10 -6
  53. package/dist/commands/capabilities.js +33 -6
  54. package/dist/commands/claude-md.js +3 -2
  55. package/dist/commands/config-view.js +1 -1
  56. package/dist/commands/configure.js +4 -4
  57. package/dist/commands/credential.js +497 -36
  58. package/dist/commands/cursor-rules.js +39 -19
  59. package/dist/commands/doctor.js +5 -4
  60. package/dist/commands/identity.js +28 -31
  61. package/dist/commands/init.js +15 -18
  62. package/dist/commands/log.js +134 -0
  63. package/dist/commands/models/fallbacks.js +1 -1
  64. package/dist/commands/models/image-fallbacks.js +1 -1
  65. package/dist/commands/models/list.js +1 -1
  66. package/dist/commands/models/scan.js +1 -1
  67. package/dist/commands/onboard-auth.js +27 -2
  68. package/dist/commands/onboard-eve-identity.js +7 -8
  69. package/dist/commands/onboard-non-interactive.js +4 -2
  70. package/dist/commands/onboard-quickstart.js +18 -11
  71. package/dist/commands/quest-state.js +271 -0
  72. package/dist/commands/quest.js +53 -13
  73. package/dist/commands/reset.js +1 -1
  74. package/dist/commands/sessions-ingest.js +5 -4
  75. package/dist/commands/setup.js +4 -2
  76. package/dist/commands/skills-manifest.js +2 -2
  77. package/dist/commands/status.js +179 -61
  78. package/dist/commands/suggestions.js +1 -1
  79. package/dist/commands/usage-tracking.js +32 -0
  80. package/dist/commands/usage-upload.js +6 -1
  81. package/dist/config/defaults.js +1 -3
  82. package/dist/config/includes.js +5 -7
  83. package/dist/config/io.js +88 -16
  84. package/dist/config/legacy.js +4 -2
  85. package/dist/config/paths.js +16 -0
  86. package/dist/config/sessions.js +9 -5
  87. package/dist/config/zod-schema.js +4 -3
  88. package/dist/control-plane/broker/broker.js +1022 -0
  89. package/dist/control-plane/compaction.js +282 -0
  90. package/dist/control-plane/factory.js +31 -0
  91. package/dist/control-plane/index.js +10 -0
  92. package/dist/control-plane/odu/agents.js +192 -0
  93. package/dist/control-plane/odu/interaction-tools.js +208 -0
  94. package/dist/control-plane/odu/prompt-loader.js +95 -0
  95. package/dist/control-plane/odu/runtime.js +479 -0
  96. package/dist/control-plane/odu/types.js +6 -0
  97. package/dist/control-plane/odu-control-plane.js +316 -0
  98. package/dist/control-plane/single-agent.js +249 -0
  99. package/dist/control-plane/types.js +11 -0
  100. package/dist/credentials/store.js +449 -0
  101. package/dist/gateway/server-browser.js +5 -4
  102. package/dist/gateway/server-methods/cron.js +11 -1
  103. package/dist/gateway/server.js +14 -7
  104. package/dist/infra/bonjour.js +1 -1
  105. package/dist/infra/event-log.js +8 -2
  106. package/dist/infra/path-env.js +1 -2
  107. package/dist/infra/provider-usage.auth.js +5 -3
  108. package/dist/infra/provider-usage.fetch.claude.js +16 -6
  109. package/dist/infra/provider-usage.fetch.minimax.js +8 -3
  110. package/dist/infra/provider-usage.js +9 -5
  111. package/dist/infra/restart.js +2 -2
  112. package/dist/infra/usage-settings.js +78 -0
  113. package/dist/infra/usage-suggestions.js +17 -5
  114. package/dist/infra/usage-upload.js +38 -1
  115. package/dist/infra/voicewake.js +2 -2
  116. package/dist/logging/redact.js +109 -0
  117. package/dist/markdown/fences.js +58 -0
  118. package/dist/media/image-ops.js +3 -1
  119. package/dist/memory/embeddings.js +146 -0
  120. package/dist/memory/index.js +3 -0
  121. package/dist/memory/internal.js +163 -0
  122. package/dist/pairing/pairing-store.js +218 -0
  123. package/dist/plugins/cli.js +42 -0
  124. package/dist/plugins/discovery.js +253 -0
  125. package/dist/plugins/install.js +181 -0
  126. package/dist/plugins/loader.js +290 -0
  127. package/dist/plugins/registry.js +105 -0
  128. package/dist/plugins/status.js +29 -0
  129. package/dist/plugins/tools.js +39 -0
  130. package/dist/plugins/types.js +1 -0
  131. package/dist/providers/github-copilot-auth.js +1 -1
  132. package/dist/routing/resolve-route.js +144 -0
  133. package/dist/routing/session-key.js +65 -0
  134. package/dist/sessions/send-policy.js +5 -5
  135. package/dist/slack/monitor.js +22 -1
  136. package/dist/telegram/reaction-level.js +2 -1
  137. package/dist/utils/provider-utils.js +28 -0
  138. package/dist/utils.js +4 -3
  139. package/dist/wizard/onboarding.js +29 -7
  140. package/package.json +4 -29
  141. package/patches/@mariozechner__pi-ai.patch +215 -0
  142. package/patches/playwright-core@1.57.0.patch +13 -0
  143. package/patches/qrcode-terminal.patch +12 -0
  144. package/scripts/postinstall.js +202 -0
@@ -104,7 +104,7 @@ export async function loadSessionMetadata(agentId, sessionId) {
104
104
  export async function appendToHistory(agentId, sessionId, turn) {
105
105
  const sessionDir = await createSessionDir(agentId, sessionId);
106
106
  const historyPath = path.join(sessionDir, "history.jsonl");
107
- const line = JSON.stringify(turn) + "\n";
107
+ const line = `${JSON.stringify(turn)}\n`;
108
108
  await fs.promises.appendFile(historyPath, line, "utf-8");
109
109
  }
110
110
  /**
@@ -158,14 +158,14 @@ export async function archiveHistory(agentId, sessionId, keepMessages) {
158
158
  const archiveContent = toArchive
159
159
  .map((turn) => JSON.stringify(turn))
160
160
  .join("\n");
161
- await fs.promises.writeFile(archivePath, archiveContent + "\n", "utf-8");
161
+ await fs.promises.writeFile(archivePath, `${archiveContent}\n`, "utf-8");
162
162
  }
163
163
  // Rewrite history.jsonl with only the kept messages
164
164
  if (keepMessages && keepMessages.length > 0) {
165
165
  const newHistoryContent = keepMessages
166
166
  .map((turn) => JSON.stringify(turn))
167
167
  .join("\n");
168
- await fs.promises.writeFile(historyPath, newHistoryContent + "\n", "utf-8");
168
+ await fs.promises.writeFile(historyPath, `${newHistoryContent}\n`, "utf-8");
169
169
  }
170
170
  else {
171
171
  // No messages to keep, delete or truncate history.jsonl
@@ -233,7 +233,9 @@ export async function loadSession(agentId, sessionId) {
233
233
  export async function listAgentSessions(agentId) {
234
234
  const sessionsDir = resolveAgentSessionsDir(agentId);
235
235
  try {
236
- const entries = await fs.promises.readdir(sessionsDir, { withFileTypes: true });
236
+ const entries = await fs.promises.readdir(sessionsDir, {
237
+ withFileTypes: true,
238
+ });
237
239
  return entries
238
240
  .filter((entry) => entry.isDirectory())
239
241
  .map((entry) => entry.name)
@@ -267,7 +269,7 @@ export async function hasOldFormatSessions(agentId) {
267
269
  * Old: sessions.json entry + {sessionId}.jsonl
268
270
  * New: {sessionId}/session.json + {sessionId}/history.jsonl
269
271
  */
270
- export async function migrateSessionToNewFormat(agentId, sessionKey, sessionEntry) {
272
+ export async function migrateSessionToNewFormat(agentId, _sessionKey, sessionEntry) {
271
273
  const { sessionId } = sessionEntry;
272
274
  // Create session directory and write metadata
273
275
  await writeSessionMetadata(agentId, sessionId, {
@@ -472,6 +474,7 @@ export function resolveGroupSessionKey(ctx) {
472
474
  key: legacy,
473
475
  id: raw || from,
474
476
  legacyKey: legacy,
477
+ channel: providerHint,
475
478
  chatType: "group",
476
479
  };
477
480
  }
@@ -485,6 +488,7 @@ export function resolveGroupSessionKey(ctx) {
485
488
  key,
486
489
  legacyKey,
487
490
  provider: resolvedProvider,
491
+ channel: resolvedProvider,
488
492
  id: id || raw || from,
489
493
  chatType: resolvedKind === "channel" ? "room" : "group",
490
494
  };
@@ -115,7 +115,7 @@ const SessionSchema = z
115
115
  action: z.union([z.literal("allow"), z.literal("deny")]),
116
116
  match: z
117
117
  .object({
118
- provider: z.string().optional(),
118
+ channel: z.string().optional(),
119
119
  chatType: z
120
120
  .union([
121
121
  z.literal("direct"),
@@ -219,7 +219,7 @@ const RoutingSchema = z
219
219
  .array(z.object({
220
220
  agentId: z.string(),
221
221
  match: z.object({
222
- provider: z.string(),
222
+ channel: z.string(),
223
223
  accountId: z.string().optional(),
224
224
  peer: z
225
225
  .object({
@@ -239,7 +239,7 @@ const RoutingSchema = z
239
239
  queue: z
240
240
  .object({
241
241
  mode: QueueModeSchema.optional(),
242
- byProvider: QueueModeBySurfaceSchema,
242
+ byChannel: QueueModeBySurfaceSchema,
243
243
  debounceMs: z.number().int().nonnegative().optional(),
244
244
  cap: z.number().int().positive().optional(),
245
245
  drop: QueueDropSchema.optional(),
@@ -443,6 +443,7 @@ export const NexusSchema = z.object({
443
443
  models: z
444
444
  .record(z.string(), z.object({
445
445
  alias: z.string().optional(),
446
+ params: z.record(z.string(), z.unknown()).optional(),
446
447
  }))
447
448
  .optional(),
448
449
  workspace: z.string().optional(),