@myagentroam/node 0.11.15 → 0.11.16

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 (51) hide show
  1. package/dist/connector.js +13 -20
  2. package/dist/native-session-history.js +35 -832
  3. package/dist/native-transcript-adapters.js +9 -0
  4. package/dist/native-transcript-model.js +1 -0
  5. package/dist/runner/abstract-runner.js +12 -0
  6. package/dist/runner/claude/conversation-parser.js +80 -1
  7. package/dist/runner/claude/managed-run-controller.js +4 -2
  8. package/dist/runner/claude/message-parsers.js +37 -0
  9. package/dist/runner/claude/native-context-usage.js +90 -0
  10. package/dist/runner/claude/native-transcript.js +347 -0
  11. package/dist/runner/claude/tool-normalizer.js +12 -2
  12. package/dist/runner/claude-code-runner.js +13 -2
  13. package/dist/runner/codex/conversation-parser.js +67 -3
  14. package/dist/runner/codex/managed-run-controller.js +3 -2
  15. package/dist/runner/codex/native-context-usage.js +42 -0
  16. package/dist/runner/codex/native-transcript.js +575 -0
  17. package/dist/runner/codex-runner.js +18 -3
  18. package/dist/runner/mar-agent/managed-run-controller.js +1 -1
  19. package/dist/runner/mar-agent-runner.js +6 -0
  20. package/dist/runner/opencode/conversation-parser.js +1 -1
  21. package/dist/runner/opencode/managed-run-controller.js +1 -1
  22. package/dist/runner/opencode-runner.js +7 -1
  23. package/dist/runner/runner-registry.js +4 -0
  24. package/dist/runtime-state.js +1 -0
  25. package/dist/service/continuous-run-coordinator.js +1 -0
  26. package/dist/service/conversation-template-manifest.js +179 -0
  27. package/dist/service/conversation-template-node-service.js +10 -132
  28. package/dist/service/external-session-resume-service.js +15 -0
  29. package/dist/service/fake-managed-run-service.js +1 -1
  30. package/dist/service/goal-continuation-coordinator.js +4 -3
  31. package/dist/service/goal-runtime.js +0 -9
  32. package/dist/service/hosted-conversation-node-service.js +16 -179
  33. package/dist/service/native-session-projection-service.js +7 -24
  34. package/dist/service/node-control-channel.js +1 -1
  35. package/dist/service/node-request-service.js +1 -1
  36. package/dist/service/node-run-event-bridge.js +0 -24
  37. package/dist/service/node-terminal-channel.js +1 -1
  38. package/dist/service/recent-run-projection-service.js +2 -1
  39. package/dist/service/run-workbench-service.js +1 -1
  40. package/dist/service/runner-interaction-service.js +2 -1
  41. package/dist/service/runner-service.js +6 -4
  42. package/dist/service/session-identity-service.js +1 -0
  43. package/dist/service/session-message-service.js +1 -0
  44. package/dist/service/session-query-service.js +1 -1
  45. package/dist/service/workbench-event-projection.js +1 -1
  46. package/dist/service/workbench-event-service.js +1 -1
  47. package/dist/service/workspace-file-service.js +0 -2
  48. package/dist/service/workspace-queue-workbench-service.js +2 -2
  49. package/dist/util/node-operation-parsers.js +0 -45
  50. package/dist/util/runner-native-session-parsers.js +17 -194
  51. package/package.json +4 -4
package/dist/connector.js CHANGED
@@ -80,9 +80,9 @@ import { NotificationMcpBridge, resolveNotificationCapability } from './service/
80
80
  import { SessionCatalogService } from './service/session-catalog-service.js';
81
81
  import { SessionCommandService } from './service/session-command-service.js';
82
82
  import { SessionPresentationService } from './service/session-presentation-service.js';
83
- import { isPlainRecord, isRunnerImageAttachment, parseRunnerImageAttachments } from './runner/codex/conversation-parser.js';
83
+ import { isPlainRecord, isRunnerImageAttachment, parseRunnerImageAttachments } from './util/node-operation-parsers.js';
84
84
  import { WebToolService } from './service/web-tool-service.js';
85
- export { nodeConnectEndpoint, validatedCapabilities } from './runner/codex/conversation-parser.js';
85
+ export { nodeConnectEndpoint, validatedCapabilities } from './util/node-operation-parsers.js';
86
86
  import { NodeControlChannel } from './service/node-control-channel.js';
87
87
  import { NodeControlMessageService } from './service/node-control-message-service.js';
88
88
  import { NodeRequestService } from './service/node-request-service.js';
@@ -313,16 +313,14 @@ export class NodeConnector {
313
313
  active: (workspaceId) => this.workspaceWatchService.topicActive(workspaceId, 'sessions'),
314
314
  invalidate: (workspaceId) => void this.workspaceWorkbenchService?.invalidateTopic(workspaceId, 'sessions')
315
315
  });
316
- workspaceFileService = new WorkspaceFileService(this.workspaceState, (workspaceId) => {
317
- this.workspaceWorkbenchService?.invalidateWorkspaceFiles(workspaceId);
318
- this.workspaceCoordinator.invalidate(workspaceId);
319
- }, {}, (workspaceId, resourcePath) => this.workspaceUploadService.fileResource(workspaceId, resourcePath) ??
320
- this.runAttachmentService.fileResource(workspaceId, resourcePath));
321
- workspaceUploadService = new WorkspaceUploadService(this.workspaceState, (workspaceId) => {
316
+ invalidateWorkspaceFiles = (workspaceId) => {
322
317
  this.workspaceFileService.dispose(workspaceId);
323
318
  this.workspaceWorkbenchService?.invalidateWorkspaceFiles(workspaceId);
324
319
  this.workspaceCoordinator.invalidate(workspaceId);
325
- }, () => this.attachmentTemporaryRoot());
320
+ };
321
+ workspaceFileService = new WorkspaceFileService(this.workspaceState, this.invalidateWorkspaceFiles, {}, (workspaceId, resourcePath) => this.workspaceUploadService.fileResource(workspaceId, resourcePath) ??
322
+ this.runAttachmentService.fileResource(workspaceId, resourcePath));
323
+ workspaceUploadService = new WorkspaceUploadService(this.workspaceState, this.invalidateWorkspaceFiles, () => this.attachmentTemporaryRoot());
326
324
  directTransferService;
327
325
  attachmentTemporaryRoot() {
328
326
  if (this.config === undefined)
@@ -337,6 +335,7 @@ export class NodeConnector {
337
335
  runtime = new NodeRuntimeState(() => this.config?.nodeId ?? 'runtime-node', (workspaceId) => this.database?.getWorkspace(workspaceId), Date.now, (run, session, userMessage) => this.recentRunProjectionService.record(run, session, userMessage));
338
336
  goalCoordinator = new GoalContinuationCoordinator({
339
337
  goals: this.goalRuntime,
338
+ runners: () => this.runners,
340
339
  runtime: this.runtime,
341
340
  commands: this.commandStates,
342
341
  queue: () => this.continuousRunCoordinator,
@@ -697,6 +696,7 @@ export class NodeConnector {
697
696
  capabilities: () => this.capabilities,
698
697
  state: this.sessionState,
699
698
  commands: this.commandStates,
699
+ releaseResumeState: (directIds, projectionIds) => this.externalSessionResumeService.forgetSessions(directIds, projectionIds),
700
700
  present: (session) => this.sessionPresentationService.present(session)
701
701
  });
702
702
  this.conversationHistoryService = new ConversationHistoryService({
@@ -706,7 +706,7 @@ export class NodeConnector {
706
706
  attachments: this.runAttachmentService,
707
707
  snapshotSequence: () => this.workbenchEventService.snapshotSequence(),
708
708
  hasManagedActiveRun: (session) => hasManagedActiveRun(this.runtime, session),
709
- setExternalActivity: (sessionId, activity) => this.sessionState.externalActivity.set(sessionId, activity)
709
+ setExternalActivity: (sessionId, activity) => this.externalSessionResumeService.setActivity(sessionId, activity)
710
710
  });
711
711
  this.conversationSegmentService = new ConversationSegmentService((session, input) => this.conversationHistoryService.read(session, input));
712
712
  this.sessionContextService = new SessionContextService({
@@ -891,15 +891,15 @@ export class NodeConnector {
891
891
  },
892
892
  validateCommands: (previousId, nextId) => this.commandStates.validateSessionIdentityPromotion(previousId, nextId),
893
893
  migrateCommands: (previousId, nextId) => this.commandStates.promoteSessionIdentity(previousId, nextId),
894
+ migrateAttachments: (previousId, nextId) => this.runAttachmentService.migrateSession(previousId, nextId),
894
895
  migrateGoal: (previousId, nextId) => {
895
- this.runAttachmentService.migrateSession(previousId, nextId);
896
896
  this.goalCoordinator.migrateSession(previousId, nextId);
897
897
  this.goalMcpBridge.migrateSession(previousId, nextId);
898
898
  },
899
899
  migrateQueue: (previousId, nextId) => this.continuousRunCoordinator.migrateSession(previousId, nextId),
900
900
  migrateRunnerState: (previousId, nextId) => {
901
901
  this.modelUsage.promoteSession(previousId, nextId);
902
- this.runEventBridge.migrateRunnerSessionIdentity(previousId, nextId);
902
+ this.runners.migrateSessionIdentity(previousId, nextId);
903
903
  },
904
904
  emitSession: (session) => this.emitSessionWorkbenchEvent({ session }),
905
905
  emitRun: (run) => this.emitWorkbenchEvent('run', { run }),
@@ -1239,9 +1239,6 @@ export class NodeConnector {
1239
1239
  events: this.runEventService,
1240
1240
  emitWorkbench: (category, payload) => this.publishWorkbenchEvent(category, payload),
1241
1241
  queues: this.workspaceQueueWorkbenchService,
1242
- codex: this.codexClient,
1243
- claude: this.claudeClient,
1244
- openCode: this.openCodeClient,
1245
1242
  send: (type, payload, replyTo) => this.send(type, payload, replyTo)
1246
1243
  });
1247
1244
  this.connectionLifecycle = new NodeConnectionLifecycleService({
@@ -1364,11 +1361,7 @@ export class NodeConnector {
1364
1361
  uploads: this.workspaceUploadService,
1365
1362
  changes: this.workspaceChangeService,
1366
1363
  listSessions: (workspaceId) => this.executeNodeOperation('session.list', { workspaceId, limit: 30 }),
1367
- invalidate: (workspaceId) => {
1368
- this.workspaceFileService.dispose(workspaceId);
1369
- this.workspaceWorkbenchService.invalidateWorkspaceFiles(workspaceId);
1370
- this.workspaceCoordinator.invalidate(workspaceId);
1371
- },
1364
+ invalidate: this.invalidateWorkspaceFiles,
1372
1365
  nodeId: () => this.config?.nodeId ?? 'runtime-node',
1373
1366
  nodeGeneration: () => this.nodeGeneration,
1374
1367
  emitWatchEvent: (payload) => this.send('watch.event', payload)