@robota-sdk/agent-command 3.0.0-beta.73 → 3.0.0-beta.75

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 (68) hide show
  1. package/dist/node/index.cjs +35 -34
  2. package/dist/node/index.d.ts +64 -3
  3. package/dist/node/index.d.ts.map +1 -1
  4. package/dist/node/index.js +34 -33
  5. package/dist/node/index.js.map +1 -1
  6. package/package.json +10 -8
  7. package/src/agent/agent-command-module.ts +1 -2
  8. package/src/agent/agent-command-parser.ts +1 -1
  9. package/src/agent/agent-command.ts +2 -5
  10. package/src/background/background-command-module.ts +2 -6
  11. package/src/background/background-command.ts +2 -1
  12. package/src/compact/compact-command-module.ts +2 -6
  13. package/src/compact/compact-command.ts +2 -1
  14. package/src/context/__tests__/context-command-module.test.ts +2 -2
  15. package/src/context/context-command-module.ts +2 -6
  16. package/src/context/context-command.ts +1 -2
  17. package/src/default/__tests__/default-command-modules.test.ts +97 -0
  18. package/src/default/default-command-modules.ts +42 -1
  19. package/src/exit/exit-command-module.ts +2 -3
  20. package/src/exit/exit-command.ts +2 -1
  21. package/src/help/__tests__/help-command.test.ts +2 -5
  22. package/src/help/help-command-module.ts +2 -6
  23. package/src/help/help-command.ts +2 -1
  24. package/src/index.ts +2 -0
  25. package/src/language/language-command-module.ts +2 -3
  26. package/src/language/language-command.ts +2 -1
  27. package/src/memory/memory-command-module.ts +2 -6
  28. package/src/memory/memory-command.ts +1 -2
  29. package/src/mode/__tests__/mode-command-module.test.ts +1 -1
  30. package/src/mode/mode-command-module.ts +2 -3
  31. package/src/mode/mode-command.ts +2 -1
  32. package/src/permissions/__tests__/permissions-command-module.test.ts +1 -1
  33. package/src/permissions/permissions-command-module.ts +2 -6
  34. package/src/permissions/permissions-command.ts +2 -1
  35. package/src/plugin/__tests__/plugin-command-module.test.ts +2 -5
  36. package/src/plugin/plugin-command-module.ts +2 -6
  37. package/src/plugin/plugin-command.ts +2 -5
  38. package/src/plugins/default-plugin-command-adapter.ts +2 -2
  39. package/src/preset/__tests__/preset-command-module.test.ts +138 -0
  40. package/src/preset/index.ts +6 -0
  41. package/src/preset/preset-command-module.ts +79 -0
  42. package/src/preset/preset-command.ts +58 -0
  43. package/src/provider/provider-command-execution.ts +1 -2
  44. package/src/provider/provider-command-module.ts +5 -3
  45. package/src/provider/provider-command-profile-lifecycle.ts +2 -5
  46. package/src/provider/provider-command-profile-operations.ts +2 -3
  47. package/src/provider/provider-command-profile.ts +1 -2
  48. package/src/provider/provider-command-setup.ts +7 -5
  49. package/src/provider/provider-startup.ts +14 -2
  50. package/src/reset/reset-command-module.ts +2 -6
  51. package/src/reset/reset-command.ts +2 -1
  52. package/src/rewind/rewind-command-module.ts +2 -6
  53. package/src/rewind/rewind-command.ts +1 -1
  54. package/src/schedule/__tests__/schedule-command.test.ts +107 -0
  55. package/src/schedule/index.ts +9 -0
  56. package/src/schedule/schedule-command-module.ts +102 -0
  57. package/src/schedule/schedule-command.ts +72 -0
  58. package/src/schedule/schedule-spec-parser.ts +66 -0
  59. package/src/session/session-command-module.ts +2 -3
  60. package/src/session/session-command.ts +2 -1
  61. package/src/settings/settings-command-module.ts +2 -6
  62. package/src/skills/skills-command-module.ts +2 -6
  63. package/src/skills/skills-command.ts +2 -5
  64. package/src/statusline/statusline-command-module.ts +2 -6
  65. package/src/statusline/statusline-command.ts +2 -2
  66. package/src/user-local/user-local-command-module.ts +2 -6
  67. package/src/user-local/user-local-command.ts +2 -1
  68. package/src/user-local/user-local-memory-command.ts +2 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robota-sdk/agent-command",
3
- "version": "3.0.0-beta.73",
3
+ "version": "3.0.0-beta.75",
4
4
  "description": "Consolidated command module implementations for Robota SDK CLI",
5
5
  "type": "module",
6
6
  "main": "dist/node/index.js",
@@ -24,15 +24,17 @@
24
24
  "src"
25
25
  ],
26
26
  "dependencies": {
27
- "@robota-sdk/agent-core": "3.0.0-beta.73",
28
- "@robota-sdk/agent-framework": "3.0.0-beta.73"
27
+ "@robota-sdk/agent-core": "3.0.0-beta.75",
28
+ "@robota-sdk/agent-framework": "3.0.0-beta.75",
29
+ "@robota-sdk/agent-interface-transport": "3.0.0-beta.75",
30
+ "@robota-sdk/agent-preset": "3.0.0-beta.75"
29
31
  },
30
32
  "devDependencies": {
31
- "@types/node": "^22.14.0",
32
- "rimraf": "^6.0.1",
33
- "tsdown": "^0.22.0",
34
- "typescript": "^5.8.3",
35
- "vitest": "^1.6.1"
33
+ "@types/node": "^22.19.21",
34
+ "rimraf": "^6.1.3",
35
+ "tsdown": "^0.22.2",
36
+ "typescript": "^5.9.3",
37
+ "vitest": "^3.2.6"
36
38
  },
37
39
  "license": "MIT",
38
40
  "publishConfig": {
@@ -2,12 +2,11 @@ import { executeAgentCommand } from './agent-command.js';
2
2
 
3
3
  import type {
4
4
  IAgentJobHostContext,
5
- ICommand,
6
5
  ICommandHostContext,
7
6
  ICommandModule,
8
- ICommandSource,
9
7
  ISystemCommand,
10
8
  } from '@robota-sdk/agent-framework';
9
+ import type { ICommand, ICommandSource } from '@robota-sdk/agent-interface-transport';
11
10
 
12
11
  function getAgentHostContext(context: ICommandHostContext): IAgentJobHostContext {
13
12
  const cap = context.getAgentJobCapability?.();
@@ -1,6 +1,6 @@
1
1
  import type { TBackgroundTaskIsolation } from '@robota-sdk/agent-framework';
2
2
 
3
- export const DEFAULT_AGENT_TYPE = 'general-purpose';
3
+ const DEFAULT_AGENT_TYPE = 'general-purpose';
4
4
 
5
5
  export type TAgentMode = 'background';
6
6
 
@@ -3,11 +3,8 @@ import { summarizeBackgroundJobGroup } from '@robota-sdk/agent-framework';
3
3
  import { parseParallelRequests, parseRunRequest, tokenizeArgs } from './agent-command-parser.js';
4
4
 
5
5
  import type { IAgentRunRequest } from './agent-command-parser.js';
6
- import type {
7
- IAgentJobHostContext,
8
- ICommandResult,
9
- ISubagentJobState,
10
- } from '@robota-sdk/agent-framework';
6
+ import type { IAgentJobHostContext, ISubagentJobState } from '@robota-sdk/agent-framework';
7
+ import type { ICommandResult } from '@robota-sdk/agent-interface-transport';
11
8
 
12
9
  function formatError<TError>(error: TError): string {
13
10
  return error instanceof Error ? error.message : String(error);
@@ -5,12 +5,8 @@ import {
5
5
 
6
6
  import { executeBackgroundCommand } from './background-command.js';
7
7
 
8
- import type {
9
- ICommand,
10
- ICommandModule,
11
- ICommandSource,
12
- ISystemCommand,
13
- } from '@robota-sdk/agent-framework';
8
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
9
+ import type { ICommand, ICommandSource } from '@robota-sdk/agent-interface-transport';
14
10
 
15
11
  export function createBackgroundCommandEntry(): ICommand {
16
12
  return {
@@ -8,7 +8,8 @@ import {
8
8
  readCommandBackgroundTaskLog,
9
9
  } from '@robota-sdk/agent-framework';
10
10
 
11
- import type { ICommandHostContext, ICommandResult } from '@robota-sdk/agent-framework';
11
+ import type { ICommandHostContext } from '@robota-sdk/agent-framework';
12
+ import type { ICommandResult } from '@robota-sdk/agent-interface-transport';
12
13
 
13
14
  function parseCommandParts(args: string): string[] {
14
15
  return args.trim().split(/\s+/).filter(Boolean);
@@ -1,11 +1,7 @@
1
1
  import { executeCompactCommand } from './compact-command.js';
2
2
 
3
- import type {
4
- ICommand,
5
- ICommandModule,
6
- ICommandSource,
7
- ISystemCommand,
8
- } from '@robota-sdk/agent-framework';
3
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
4
+ import type { ICommand, ICommandSource } from '@robota-sdk/agent-interface-transport';
9
5
 
10
6
  export function createCompactCommandEntry(): ICommand {
11
7
  return {
@@ -1,6 +1,7 @@
1
1
  import { compactCommandContext } from '@robota-sdk/agent-framework';
2
2
 
3
- import type { ICommandHostContext, ICommandResult } from '@robota-sdk/agent-framework';
3
+ import type { ICommandHostContext } from '@robota-sdk/agent-framework';
4
+ import type { ICommandResult } from '@robota-sdk/agent-interface-transport';
4
5
 
5
6
  function parseInstructions(args: string): string | undefined {
6
7
  const instructions = args.trim();
@@ -2,13 +2,13 @@ import { describe, expect, it, vi } from 'vitest';
2
2
  import type { IHistoryEntry } from '@robota-sdk/agent-core';
3
3
  import type {
4
4
  ICommandHostContext,
5
+ ICommandSessionRuntime,
5
6
  IContextReferenceAddResult,
6
7
  IContextReferenceClearResult,
7
- IContextReferenceItem,
8
8
  IContextReferenceRemoveResult,
9
- ICommandSessionRuntime,
10
9
  TAutoCompactThresholdSource,
11
10
  } from '@robota-sdk/agent-framework';
11
+ import type { IContextReferenceItem } from '@robota-sdk/agent-interface-transport';
12
12
  import { SystemCommandExecutor } from '@robota-sdk/agent-framework';
13
13
  import { createContextCommandModule } from '../context-command-module.js';
14
14
 
@@ -1,11 +1,7 @@
1
1
  import { executeContextCommand } from './context-command.js';
2
2
 
3
- import type {
4
- ICommand,
5
- ICommandModule,
6
- ICommandSource,
7
- ISystemCommand,
8
- } from '@robota-sdk/agent-framework';
3
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
4
+ import type { ICommand, ICommandSource } from '@robota-sdk/agent-interface-transport';
9
5
 
10
6
  export function createContextCommandEntry(): ICommand {
11
7
  return {
@@ -15,11 +15,10 @@ import {
15
15
  import type { IHistoryEntry, TUniversalMessage } from '@robota-sdk/agent-core';
16
16
  import type {
17
17
  ICommandHostContext,
18
- ICommandResult,
19
18
  TAutoCompactThreshold,
20
19
  TAutoCompactThresholdSource,
21
20
  } from '@robota-sdk/agent-framework';
22
- import type { IContextReferenceItem } from '@robota-sdk/agent-framework';
21
+ import type { ICommandResult, IContextReferenceItem } from '@robota-sdk/agent-interface-transport';
23
22
 
24
23
  const PERCENT = 100;
25
24
  const USAGE = [
@@ -0,0 +1,97 @@
1
+ import { describe, expect, it } from 'vitest';
2
+
3
+ import type { IProviderDefinition } from '@robota-sdk/agent-core';
4
+ import type {
5
+ IProviderCommandSettingsAdapter,
6
+ TProviderSettingsDocument,
7
+ } from '@robota-sdk/agent-framework';
8
+
9
+ import { createDefaultCommandModules } from '../default-command-modules.js';
10
+
11
+ const providerDefinitions: readonly IProviderDefinition[] = [
12
+ {
13
+ type: 'anthropic',
14
+ defaults: { model: 'claude-sonnet-4-6', apiKey: '$ENV:ANTHROPIC_API_KEY' },
15
+ setupSteps: [{ key: 'apiKey', title: 'anthropic API key', masked: true }],
16
+ requiresApiKey: true,
17
+ createProvider: () => {
18
+ throw new Error('not used');
19
+ },
20
+ },
21
+ ];
22
+
23
+ const providerSettingsAdapter: IProviderCommandSettingsAdapter = {
24
+ readMergedSettings: () => ({}) as TProviderSettingsDocument,
25
+ readTargetSettings: () => ({}) as TProviderSettingsDocument,
26
+ writeTargetSettings: () => undefined,
27
+ };
28
+
29
+ const baseOptions = { cwd: '/tmp', providerDefinitions, providerSettingsAdapter } as const;
30
+
31
+ function moduleNames(opts: Parameters<typeof createDefaultCommandModules>[0]): string[] {
32
+ return createDefaultCommandModules(opts).map((module) => module.name);
33
+ }
34
+
35
+ describe('createDefaultCommandModules — PRESET-004 module-selection delta', () => {
36
+ // Module `name`s are the stable ICommandModule ids (the `agent-command-*` form).
37
+ const HELP = 'agent-command-help';
38
+ const AGENT = 'agent-command-agent';
39
+ const BACKGROUND = 'agent-command-background';
40
+
41
+ it('TC-04: neither enabled nor disabled given → full default set unchanged (no-regression)', () => {
42
+ const names = moduleNames(baseOptions);
43
+ // No-regression: the default set length is the documented 21 modules.
44
+ expect(names).toHaveLength(21);
45
+ expect(names).toEqual([
46
+ 'agent-command-skills',
47
+ 'agent-command-help',
48
+ 'agent-command-agent',
49
+ 'agent-command-permissions',
50
+ 'agent-command-mode',
51
+ 'agent-command-preset',
52
+ 'agent-command-language',
53
+ 'agent-command-background',
54
+ 'agent-command-memory',
55
+ 'agent-command-user-local',
56
+ 'agent-command-compact',
57
+ 'agent-command-context',
58
+ 'agent-command-exit',
59
+ 'agent-command-session',
60
+ 'agent-command-reset',
61
+ 'agent-command-rewind',
62
+ 'agent-command-schedule',
63
+ 'agent-command-statusline',
64
+ 'agent-command-plugin',
65
+ 'agent-command-settings',
66
+ 'agent-command-provider',
67
+ ]);
68
+ });
69
+
70
+ it('TC-01: enabledCommandModules whitelist keeps exactly the listed module names', () => {
71
+ const names = moduleNames({ ...baseOptions, enabledCommandModules: [HELP, AGENT] });
72
+ expect(new Set(names)).toEqual(new Set([HELP, AGENT]));
73
+ expect(names).toHaveLength(2);
74
+ });
75
+
76
+ it('TC-02: disabledCommandModules blacklist removes the named module', () => {
77
+ const full = moduleNames(baseOptions);
78
+ const names = moduleNames({ ...baseOptions, disabledCommandModules: [BACKGROUND] });
79
+ expect(names).not.toContain(BACKGROUND);
80
+ expect(names).toHaveLength(full.length - 1);
81
+ });
82
+
83
+ it('TC-03: a name in both enabled and disabled is excluded (deny > allow)', () => {
84
+ const names = moduleNames({
85
+ ...baseOptions,
86
+ enabledCommandModules: [HELP, AGENT],
87
+ disabledCommandModules: [AGENT],
88
+ });
89
+ expect(new Set(names)).toEqual(new Set([HELP]));
90
+ expect(names).not.toContain(AGENT);
91
+ });
92
+
93
+ it('whitelist with an unknown name simply yields no module for it', () => {
94
+ const names = moduleNames({ ...baseOptions, enabledCommandModules: [HELP, 'does-not-exist'] });
95
+ expect(names).toEqual([HELP]);
96
+ });
97
+ });
@@ -9,9 +9,11 @@ import { createMemoryCommandModule } from '../memory/index.js';
9
9
  import { createModeCommandModule } from '../mode/index.js';
10
10
  import { createPermissionsCommandModule } from '../permissions/index.js';
11
11
  import { createPluginCommandModule } from '../plugin/index.js';
12
+ import { createPresetCommandModule } from '../preset/index.js';
12
13
  import { createProviderCommandModule } from '../provider/index.js';
13
14
  import { createResetCommandModule } from '../reset/index.js';
14
15
  import { createRewindCommandModule } from '../rewind/index.js';
16
+ import { createScheduleCommandModule } from '../schedule/index.js';
15
17
  import { createSessionCommandModule } from '../session/index.js';
16
18
  import { createSettingsCommandModule } from '../settings/index.js';
17
19
  import { createSkillsCommandModule } from '../skills/index.js';
@@ -25,19 +27,56 @@ export interface IDefaultCommandModulesOptions {
25
27
  cwd: string;
26
28
  providerDefinitions: readonly IProviderDefinition[];
27
29
  providerSettingsAdapter: IProviderCommandSettingsAdapter;
30
+ /**
31
+ * Whitelist of module `name`s to keep. When provided, only modules whose `name`
32
+ * appears here survive. Omitted → all modules kept (no-regression).
33
+ */
34
+ enabledCommandModules?: readonly string[];
35
+ /**
36
+ * Blacklist of module `name`s to remove. Applied after the whitelist, so a name
37
+ * present in both is removed (deny > allow). Omitted → no modules removed.
38
+ */
39
+ disabledCommandModules?: readonly string[];
40
+ }
41
+
42
+ /**
43
+ * Apply the preset module-selection delta to the default module set.
44
+ *
45
+ * Rules: if `enabled` is provided, keep only modules whose `name` is in it; then
46
+ * remove any module whose `name` is in `disabled` (deny > allow). Neither given →
47
+ * the full default set is returned unchanged (no-regression).
48
+ */
49
+ function applyModuleSelection(
50
+ modules: readonly ICommandModule[],
51
+ enabled: readonly string[] | undefined,
52
+ disabled: readonly string[] | undefined,
53
+ ): readonly ICommandModule[] {
54
+ let selected = modules;
55
+ if (enabled !== undefined) {
56
+ const allow = new Set(enabled);
57
+ selected = selected.filter((module) => allow.has(module.name));
58
+ }
59
+ if (disabled !== undefined) {
60
+ const deny = new Set(disabled);
61
+ selected = selected.filter((module) => !deny.has(module.name));
62
+ }
63
+ return selected;
28
64
  }
29
65
 
30
66
  export function createDefaultCommandModules({
31
67
  cwd,
32
68
  providerDefinitions,
33
69
  providerSettingsAdapter,
70
+ enabledCommandModules,
71
+ disabledCommandModules,
34
72
  }: IDefaultCommandModulesOptions): readonly ICommandModule[] {
35
- return [
73
+ const modules: readonly ICommandModule[] = [
36
74
  createSkillsCommandModule({ cwd }),
37
75
  createHelpCommandModule(),
38
76
  createAgentCommandModule(),
39
77
  createPermissionsCommandModule(),
40
78
  createModeCommandModule(),
79
+ createPresetCommandModule(),
41
80
  createLanguageCommandModule(),
42
81
  createBackgroundCommandModule(),
43
82
  createMemoryCommandModule(),
@@ -48,6 +87,7 @@ export function createDefaultCommandModules({
48
87
  createSessionCommandModule(),
49
88
  createResetCommandModule(),
50
89
  createRewindCommandModule(),
90
+ createScheduleCommandModule(),
51
91
  createStatusLineCommandModule(),
52
92
  createPluginCommandModule(),
53
93
  createSettingsCommandModule(),
@@ -56,4 +96,5 @@ export function createDefaultCommandModules({
56
96
  settings: providerSettingsAdapter,
57
97
  }),
58
98
  ];
99
+ return applyModuleSelection(modules, enabledCommandModules, disabledCommandModules);
59
100
  }
@@ -2,13 +2,12 @@ import { EXIT_COMMAND_DESCRIPTION } from '@robota-sdk/agent-framework';
2
2
 
3
3
  import { executeExitCommand } from './exit-command.js';
4
4
 
5
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
5
6
  import type {
6
7
  ICommand,
7
8
  ICommandInteractionHint,
8
- ICommandModule,
9
9
  ICommandSource,
10
- ISystemCommand,
11
- } from '@robota-sdk/agent-framework';
10
+ } from '@robota-sdk/agent-interface-transport';
12
11
 
13
12
  export function createExitCommandEntry(): ICommand {
14
13
  return {
@@ -1,6 +1,7 @@
1
1
  import { createSessionExitRequestedEffect } from '@robota-sdk/agent-framework';
2
2
 
3
- import type { ICommandHostContext, ICommandResult } from '@robota-sdk/agent-framework';
3
+ import type { ICommandHostContext } from '@robota-sdk/agent-framework';
4
+ import type { ICommandResult } from '@robota-sdk/agent-interface-transport';
4
5
 
5
6
  export function executeExitCommand(_context: ICommandHostContext, _args: string): ICommandResult {
6
7
  return {
@@ -1,8 +1,5 @@
1
- import type {
2
- ICommandHostContext,
3
- ICommandListEntry,
4
- ICommandSessionRuntime,
5
- } from '@robota-sdk/agent-framework';
1
+ import type { ICommandHostContext, ICommandSessionRuntime } from '@robota-sdk/agent-framework';
2
+ import type { ICommandListEntry } from '@robota-sdk/agent-interface-transport';
6
3
  import { formatCommandHelpMessage } from '@robota-sdk/agent-framework';
7
4
  import { describe, expect, it } from 'vitest';
8
5
 
@@ -2,12 +2,8 @@ import { HELP_COMMAND_DESCRIPTION } from '@robota-sdk/agent-framework';
2
2
 
3
3
  import { executeHelpCommand } from './help-command.js';
4
4
 
5
- import type {
6
- ICommand,
7
- ICommandModule,
8
- ICommandSource,
9
- ISystemCommand,
10
- } from '@robota-sdk/agent-framework';
5
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
6
+ import type { ICommand, ICommandSource } from '@robota-sdk/agent-interface-transport';
11
7
 
12
8
  export function createHelpCommandEntry(): ICommand {
13
9
  return {
@@ -1,6 +1,7 @@
1
1
  import { formatCommandHelpMessage } from '@robota-sdk/agent-framework';
2
2
 
3
- import type { ICommandHostContext, ICommandResult } from '@robota-sdk/agent-framework';
3
+ import type { ICommandHostContext } from '@robota-sdk/agent-framework';
4
+ import type { ICommandResult } from '@robota-sdk/agent-interface-transport';
4
5
 
5
6
  export function executeHelpCommand(context: ICommandHostContext, _args: string): ICommandResult {
6
7
  return {
package/src/index.ts CHANGED
@@ -10,9 +10,11 @@ export * from './memory/index.js';
10
10
  export * from './mode/index.js';
11
11
  export * from './permissions/index.js';
12
12
  export * from './plugin/index.js';
13
+ export * from './preset/index.js';
13
14
  export * from './provider/index.js';
14
15
  export * from './reset/index.js';
15
16
  export * from './rewind/index.js';
17
+ export * from './schedule/index.js';
16
18
  export * from './session/index.js';
17
19
  export * from './settings/index.js';
18
20
  export * from './skills/index.js';
@@ -6,13 +6,12 @@ import {
6
6
 
7
7
  import { executeLanguageCommand } from './language-command.js';
8
8
 
9
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
9
10
  import type {
10
11
  ICommand,
11
12
  ICommandInteractionHint,
12
- ICommandModule,
13
13
  ICommandSource,
14
- ISystemCommand,
15
- } from '@robota-sdk/agent-framework';
14
+ } from '@robota-sdk/agent-interface-transport';
16
15
 
17
16
  export function createLanguageCommandEntry(): ICommand {
18
17
  return {
@@ -1,6 +1,7 @@
1
1
  import { formatLanguageUsageMessage, parseLanguageArgument } from '@robota-sdk/agent-framework';
2
2
 
3
- import type { ICommandHostContext, ICommandResult } from '@robota-sdk/agent-framework';
3
+ import type { ICommandHostContext } from '@robota-sdk/agent-framework';
4
+ import type { ICommandResult } from '@robota-sdk/agent-interface-transport';
4
5
 
5
6
  export function executeLanguageCommand(
6
7
  _context: ICommandHostContext,
@@ -6,12 +6,8 @@ import {
6
6
 
7
7
  import { executeMemoryCommand } from './memory-command.js';
8
8
 
9
- import type {
10
- ICommand,
11
- ICommandModule,
12
- ICommandSource,
13
- ISystemCommand,
14
- } from '@robota-sdk/agent-framework';
9
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
10
+ import type { ICommand, ICommandSource } from '@robota-sdk/agent-interface-transport';
15
11
 
16
12
  export function createMemoryCommandEntry(): ICommand {
17
13
  return {
@@ -12,9 +12,8 @@ import type {
12
12
  ICommandHostContext,
13
13
  ICommandPendingMemoryStore,
14
14
  ICommandProjectMemoryStore,
15
- ICommandResult,
16
- IMemoryEvent,
17
15
  } from '@robota-sdk/agent-framework';
16
+ import type { ICommandResult, IMemoryEvent } from '@robota-sdk/agent-interface-transport';
18
17
 
19
18
  const SUBCOMMAND_INDEX = 0;
20
19
  const TYPE_INDEX = 1;
@@ -7,7 +7,7 @@ import { SystemCommandExecutor } from '@robota-sdk/agent-framework';
7
7
  import { createModeCommandModule } from '../mode-command-module.js';
8
8
 
9
9
  type TPermissionModeName = 'plan' | 'default' | 'acceptEdits' | 'bypassPermissions';
10
- type TSetPermissionModeSpy = ReturnType<typeof vi.fn<[nextMode: TPermissionModeName], void>>;
10
+ type TSetPermissionModeSpy = ReturnType<typeof vi.fn<(nextMode: TPermissionModeName) => void>>;
11
11
 
12
12
  function createCheckpointResult(): IEditCheckpointRestoreResult {
13
13
  return {
@@ -6,13 +6,12 @@ import {
6
6
 
7
7
  import { executeModeCommand } from './mode-command.js';
8
8
 
9
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
9
10
  import type {
10
11
  ICommand,
11
12
  ICommandInteractionHint,
12
- ICommandModule,
13
13
  ICommandSource,
14
- ISystemCommand,
15
- } from '@robota-sdk/agent-framework';
14
+ } from '@robota-sdk/agent-interface-transport';
16
15
 
17
16
  export function createModeCommandEntry(): ICommand {
18
17
  return {
@@ -6,7 +6,8 @@ import {
6
6
  writeCommandPermissionMode,
7
7
  } from '@robota-sdk/agent-framework';
8
8
 
9
- import type { ICommandHostContext, ICommandResult } from '@robota-sdk/agent-framework';
9
+ import type { ICommandHostContext } from '@robota-sdk/agent-framework';
10
+ import type { ICommandResult } from '@robota-sdk/agent-interface-transport';
10
11
 
11
12
  export function executeModeCommand(context: ICommandHostContext, args: string): ICommandResult {
12
13
  const arg = parsePermissionModeArgument(args);
@@ -7,7 +7,7 @@ import { SystemCommandExecutor } from '@robota-sdk/agent-framework';
7
7
  import { createPermissionsCommandModule } from '../permissions-command-module.js';
8
8
 
9
9
  type TPermissionModeName = 'plan' | 'default' | 'acceptEdits' | 'bypassPermissions';
10
- type TSetPermissionModeSpy = ReturnType<typeof vi.fn<[nextMode: TPermissionModeName], void>>;
10
+ type TSetPermissionModeSpy = ReturnType<typeof vi.fn<(nextMode: TPermissionModeName) => void>>;
11
11
 
12
12
  function createCheckpointResult(): IEditCheckpointRestoreResult {
13
13
  return {
@@ -6,12 +6,8 @@ import {
6
6
 
7
7
  import { executePermissionsCommand } from './permissions-command.js';
8
8
 
9
- import type {
10
- ICommand,
11
- ICommandModule,
12
- ICommandSource,
13
- ISystemCommand,
14
- } from '@robota-sdk/agent-framework';
9
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
10
+ import type { ICommand, ICommandSource } from '@robota-sdk/agent-interface-transport';
15
11
 
16
12
  export function createPermissionsCommandEntry(): ICommand {
17
13
  return {
@@ -7,7 +7,8 @@ import {
7
7
  writeCommandPermissionMode,
8
8
  } from '@robota-sdk/agent-framework';
9
9
 
10
- import type { ICommandHostContext, ICommandResult } from '@robota-sdk/agent-framework';
10
+ import type { ICommandHostContext } from '@robota-sdk/agent-framework';
11
+ import type { ICommandResult } from '@robota-sdk/agent-interface-transport';
11
12
 
12
13
  export function executePermissionsCommand(
13
14
  context: ICommandHostContext,
@@ -1,8 +1,5 @@
1
- import type {
2
- ICommandHostContext,
3
- ICommandPluginAdapter,
4
- ICommandSessionRuntime,
5
- } from '@robota-sdk/agent-framework';
1
+ import type { ICommandHostContext, ICommandSessionRuntime } from '@robota-sdk/agent-framework';
2
+ import type { ICommandPluginAdapter } from '@robota-sdk/agent-interface-transport';
6
3
  import { describe, expect, it, vi } from 'vitest';
7
4
  import { createPluginCommandModule } from '../plugin-command-module.js';
8
5
  import { executePluginCommand, executeReloadPluginsCommand } from '../plugin-command.js';
@@ -7,12 +7,8 @@ import {
7
7
 
8
8
  import { executePluginCommand, executeReloadPluginsCommand } from './plugin-command.js';
9
9
 
10
- import type {
11
- ICommand,
12
- ICommandModule,
13
- ICommandSource,
14
- ISystemCommand,
15
- } from '@robota-sdk/agent-framework';
10
+ import type { ICommandModule, ISystemCommand } from '@robota-sdk/agent-framework';
11
+ import type { ICommand, ICommandSource } from '@robota-sdk/agent-interface-transport';
16
12
 
17
13
  export function createPluginCommandEntry(): ICommand {
18
14
  return {
@@ -4,11 +4,8 @@ import {
4
4
  resolvePluginCommandAdapter,
5
5
  } from '@robota-sdk/agent-framework';
6
6
 
7
- import type {
8
- ICommandHostContext,
9
- ICommandPluginAdapter,
10
- ICommandResult,
11
- } from '@robota-sdk/agent-framework';
7
+ import type { ICommandHostContext } from '@robota-sdk/agent-framework';
8
+ import type { ICommandPluginAdapter, ICommandResult } from '@robota-sdk/agent-interface-transport';
12
9
 
13
10
  function getSubcommandParts(args: string): { subcommand: string; subArgs: string } {
14
11
  const parts = args
@@ -9,14 +9,14 @@ import {
9
9
  PluginSettingsStore,
10
10
  } from '@robota-sdk/agent-framework';
11
11
 
12
+ import type { IMarketplaceManifest } from '@robota-sdk/agent-framework';
12
13
  import type {
13
14
  ICommandAvailablePlugin,
14
15
  ICommandInstalledPlugin,
15
16
  ICommandMarketplaceSource,
16
17
  ICommandPluginAdapter,
17
- IMarketplaceManifest,
18
18
  TPluginInstallScope,
19
- } from '@robota-sdk/agent-framework';
19
+ } from '@robota-sdk/agent-interface-transport';
20
20
 
21
21
  interface IPluginServices {
22
22
  cwd: string;