@rynx-ai/daemon 0.1.11-beta.23 → 0.1.11-beta.25

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.
@@ -126423,6 +126423,7 @@ var resolvedExecutionSnapshotSchema = external_exports.object({
126423
126423
  provider: external_exports.enum(["codex", "traex", "claude"]),
126424
126424
  model: nonEmptyString.nullable(),
126425
126425
  reasoningEffort: nonEmptyString.nullable(),
126426
+ collaborationMode: external_exports.enum(["plan", "default"]).optional(),
126426
126427
  instructions: external_exports.string().nullable(),
126427
126428
  skills: external_exports.array(skillRefSchema2),
126428
126429
  pluginSkills: external_exports.array(external_exports.object({
@@ -126291,6 +126291,7 @@ var resolvedExecutionSnapshotSchema = external_exports.object({
126291
126291
  provider: external_exports.enum(["codex", "traex", "claude"]),
126292
126292
  model: nonEmptyString.nullable(),
126293
126293
  reasoningEffort: nonEmptyString.nullable(),
126294
+ collaborationMode: external_exports.enum(["plan", "default"]).optional(),
126294
126295
  instructions: external_exports.string().nullable(),
126295
126296
  skills: external_exports.array(skillRefSchema2),
126296
126297
  pluginSkills: external_exports.array(external_exports.object({
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rynx-ai/plugin-channel-lark",
3
- "version": "0.1.11-beta.23",
3
+ "version": "0.1.11-beta.25",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/rynx-ai/rynx.git",
@@ -353,6 +353,7 @@ export class PluginHostRpc {
353
353
  const sessionId = requiredSessionId(input);
354
354
  const operationId = optionalString(input.operationId, "operationId", 512);
355
355
  const message = requiredText(input.message, "message", MAX_MESSAGE_LENGTH);
356
+ const collaborationMode = optionalCollaborationMode(input.collaborationMode);
356
357
  let session = this.ownedSession(sessionId);
357
358
  if (operationId) {
358
359
  const replayed = this.activeRunsByOperation.get(operationId);
@@ -465,6 +466,7 @@ export class PluginHostRpc {
465
466
  workspace: session.workspace,
466
467
  execution: session.execution,
467
468
  signal: abort.signal,
469
+ ...(collaborationMode ? { collaborationMode } : {}),
468
470
  steer: runInput,
469
471
  });
470
472
  }
@@ -601,10 +603,6 @@ export class PluginHostRpc {
601
603
  }
602
604
  async interruptRun(params) {
603
605
  const input = record(params);
604
- const forceAfterMs = optionalPositiveNumber(input.forceAfterMs, "forceAfterMs");
605
- if (forceAfterMs !== undefined && forceAfterMs > 30_000) {
606
- throw new PluginHostCallError("INVALID_PARAMS", "forceAfterMs must not exceed 30000");
607
- }
608
606
  const sessionId = optionalString(input.sessionId, "sessionId", 128);
609
607
  const runId = optionalString(input.runId, "runId", 128);
610
608
  const operationId = optionalString(input.operationId, "operationId", 512);
@@ -616,13 +614,10 @@ export class PluginHostRpc {
616
614
  this.ownedSession(sessionId);
617
615
  run = this.activeSessionRuns.get(sessionId);
618
616
  if (!run) {
619
- const graceful = this.services.interruptSession
617
+ const interrupted = this.services.interruptSession
620
618
  ? Promise.resolve().then(() => this.services.interruptSession(sessionId))
621
619
  : Promise.resolve(false);
622
- const interrupted = forceAfterMs === undefined
623
- ? await graceful
624
- : await forceStoppedInterrupt(graceful, forceAfterMs, () => this.services.terminateSession?.(sessionId) ?? Promise.resolve(false));
625
- return { interrupted };
620
+ return { interrupted: await interrupted };
626
621
  }
627
622
  }
628
623
  else {
@@ -646,9 +641,7 @@ export class PluginHostRpc {
646
641
  // effort and cannot prove that native execution stopped.
647
642
  return false;
648
643
  });
649
- const interruptResult = forceAfterMs === undefined
650
- ? graceful
651
- : forceStoppedInterrupt(graceful, forceAfterMs, () => this.services.terminateSession?.(run.sessionId) ?? Promise.resolve(false));
644
+ const interruptResult = graceful;
652
645
  run.interruptResult = interruptResult;
653
646
  try {
654
647
  const interrupted = await interruptResult;
@@ -670,18 +663,11 @@ export class PluginHostRpc {
670
663
  const sessionId = requiredSessionId(params);
671
664
  this.ownedSession(sessionId);
672
665
  const snapshot = structuredClone(await this.services.sessionActivity(sessionId));
673
- const activeRun = this.activeSessionRuns.get(sessionId);
674
666
  const waiting = snapshot.pendingInteractions.length > 0;
675
- const status = waiting
676
- ? "waiting"
677
- : activeRun
678
- ? "running"
679
- : snapshot.status;
680
- const startup = Boolean(activeRun && snapshot.activeResponseIds.length === 0 && !waiting);
681
667
  return {
682
- ...snapshot,
683
- status,
684
- ...(startup ? { statusKind: "startup" } : {}),
668
+ status: waiting ? "waiting" : snapshot.status,
669
+ activeResponseIds: snapshot.activeResponseIds,
670
+ pendingInteractions: snapshot.pendingInteractions,
685
671
  };
686
672
  }
687
673
  async interruptWon(run) {
@@ -1005,6 +991,13 @@ function sessionInteractionResolution(value) {
1005
991
  function optionalRuntime(params) {
1006
992
  return optionalRuntimeValue(record(params).runtime);
1007
993
  }
994
+ function optionalCollaborationMode(value) {
995
+ if (value === undefined)
996
+ return undefined;
997
+ if (value === "plan" || value === "default")
998
+ return value;
999
+ throw new PluginHostCallError("INVALID_PARAMS", "collaborationMode must be plan or default");
1000
+ }
1008
1001
  function optionalRuntimeValue(value) {
1009
1002
  if (value === undefined || value === null || value === "")
1010
1003
  return undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rynx-ai/daemon",
3
- "version": "0.1.11-beta.23",
3
+ "version": "0.1.11-beta.25",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/rynx-ai/rynx.git",
@@ -50,17 +50,17 @@
50
50
  "pm2": "^6.0.0",
51
51
  "tar": "^7.5.19",
52
52
  "ws": "^8.21.0",
53
- "@rynx-ai/plugin-runner": "0.1.11-beta.23",
54
- "@rynx-ai/core": "0.1.11-beta.23",
55
- "@rynx-ai/emulator": "0.1.11-beta.23",
56
- "@rynx-ai/plugin-sdk": "0.1.11-beta.23",
57
- "@rynx-ai/protocol": "0.1.11-beta.23",
58
- "@rynx-ai/remote-runtime-client": "0.1.11-beta.23",
59
- "@rynx-ai/server": "0.1.11-beta.23"
53
+ "@rynx-ai/core": "0.1.11-beta.25",
54
+ "@rynx-ai/emulator": "0.1.11-beta.25",
55
+ "@rynx-ai/plugin-runner": "0.1.11-beta.25",
56
+ "@rynx-ai/plugin-sdk": "0.1.11-beta.25",
57
+ "@rynx-ai/protocol": "0.1.11-beta.25",
58
+ "@rynx-ai/remote-runtime-client": "0.1.11-beta.25",
59
+ "@rynx-ai/server": "0.1.11-beta.25"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/ws": "^8.18.1",
63
- "@rynx-ai/plugin-channel-lark": "0.1.11-beta.23"
63
+ "@rynx-ai/plugin-channel-lark": "0.1.11-beta.25"
64
64
  },
65
65
  "scripts": {
66
66
  "build": "rm -rf dist bundled-plugins && tsc -p tsconfig.json && chmod +x dist/index-daemon.js && node ../../scripts/stage-bundled-plugins.mjs",