@engineer-ai/sdk 1.2.4 → 1.3.1

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.
@@ -1197,7 +1197,6 @@ export type Config = {
1197
1197
  * Number of retries for chat completions on failure
1198
1198
  */
1199
1199
  chatMaxRetries?: number;
1200
- disable_paste_summary?: boolean;
1201
1200
  /**
1202
1201
  * Enable the batch tool
1203
1202
  */
@@ -1,5 +1,5 @@
1
1
  import { type Client, type Options as Options2, type TDataShape } from "./client/index.js";
2
- import type { AgentPartInput, AppAgentsResponses, AppLogErrors, AppLogResponses, AppSkillsResponses, Auth as Auth3, AuthRemoveErrors, AuthRemoveResponses, AuthSetErrors, AuthSetResponses, CommandListResponses, CommandValidateErrors, CommandValidateResponses, Config as Config3, ConfigGetResponses, ConfigProvidersResponses, ConfigUpdateErrors, ConfigUpdateResponses, EventSubscribeResponses, EventTuiCommandExecute, EventTuiPromptAppend, EventTuiSessionSelect, EventTuiToastShow, ExperimentalResourceListResponses, FileListResponses, FilePartInput, FilePartSource, FileReadResponses, FileStatusResponses, FindFilesResponses, FindSymbolsResponses, FindTextResponses, FormatterStatusResponses, GitCheckResponses, GlobalConfigGetResponses, GlobalConfigUpdateErrors, GlobalConfigUpdateResponses, GlobalDisposeResponses, GlobalEventResponses, GlobalHealthResponses, InstanceDisposeResponses, LspStatusResponses, McpAddErrors, McpAddResponses, McpAuthAuthenticateErrors, McpAuthAuthenticateResponses, McpAuthCallbackErrors, McpAuthCallbackResponses, McpAuthRemoveErrors, McpAuthRemoveResponses, McpAuthStartErrors, McpAuthStartResponses, McpConnectResponses, McpDisconnectResponses, McpLocalConfig, McpRemoteConfig, McpStatusResponses, Part as Part2, PartDeleteErrors, PartDeleteResponses, PartUpdateErrors, PartUpdateResponses, PathGetResponses, PermissionListResponses, PermissionReplyErrors, PermissionReplyResponses, PermissionRespondErrors, PermissionRespondResponses, PermissionRuleset, ProjectCurrentResponses, ProjectListResponses, ProjectUpdateErrors, ProjectUpdateResponses, ProviderAuthResponses, ProviderListResponses, ProviderOauthAuthorizeErrors, ProviderOauthAuthorizeResponses, ProviderOauthCallbackErrors, ProviderOauthCallbackResponses, PtyConnectErrors, PtyConnectResponses, PtyCreateErrors, PtyCreateResponses, PtyGetErrors, PtyGetResponses, PtyListResponses, PtyRemoveErrors, PtyRemoveResponses, PtyUpdateErrors, PtyUpdateResponses, QuestionAnswer, QuestionListResponses, QuestionRejectErrors, QuestionRejectResponses, QuestionReplyErrors, QuestionReplyResponses, SessionAbortErrors, SessionAbortResponses, SessionChildrenErrors, SessionChildrenResponses, SessionCommandErrors, SessionCommandResponses, SessionCreateErrors, SessionCreateResponses, SessionDeleteErrors, SessionDeleteResponses, SessionDiffResponses, SessionForkResponses, SessionGetErrors, SessionGetResponses, SessionInitErrors, SessionInitResponses, SessionListResponses, SessionMessageErrors, SessionMessageResponses, SessionMessagesErrors, SessionMessagesResponses, SessionPromptAsyncErrors, SessionPromptAsyncResponses, SessionPromptErrors, SessionPromptResponses, SessionRevertErrors, SessionRevertResponses, SessionShareErrors, SessionShareResponses, SessionShellErrors, SessionShellResponses, SessionStatusErrors, SessionStatusResponses, SessionSummarizeErrors, SessionSummarizeResponses, SessionTodoErrors, SessionTodoResponses, SessionUnrevertErrors, SessionUnrevertResponses, SessionUnshareErrors, SessionUnshareResponses, SessionUpdateErrors, SessionUpdateResponses, SubtaskPartInput, TextPartInput, ToolIdsErrors, ToolIdsResponses, ToolListErrors, ToolListResponses, TuiAppendPromptErrors, TuiAppendPromptResponses, TuiClearPromptResponses, TuiControlNextResponses, TuiControlResponseResponses, TuiExecuteCommandErrors, TuiExecuteCommandResponses, TuiOpenHelpResponses, TuiOpenModelsResponses, TuiOpenSessionsResponses, TuiOpenThemesResponses, TuiPublishErrors, TuiPublishResponses, TuiSelectSessionErrors, TuiSelectSessionResponses, TuiShowToastResponses, TuiSubmitPromptResponses, VcsGetResponses, WorktreeCreateErrors, WorktreeCreateInput, WorktreeCreateResponses, WorktreeListMetaResponses, WorktreeListResponses, WorktreeRemoveErrors, WorktreeRemoveInput, WorktreeRemoveResponses, WorktreeResetErrors, WorktreeResetInput, WorktreeResetResponses, WorktreeSwitchErrors, WorktreeSwitchInput, WorktreeSwitchResponses } from "./types.gen.js";
2
+ import type { AgentPartInput, AppAgentsResponses, AppLogErrors, AppLogResponses, AppSkillsResponses, Auth as Auth3, AuthRemoveErrors, AuthRemoveResponses, AuthSetErrors, AuthSetResponses, CommandListResponses, CommandValidateErrors, CommandValidateResponses, Config as Config3, ConfigGetResponses, ConfigProvidersResponses, ConfigUpdateErrors, ConfigUpdateResponses, EventSubscribeResponses, EventTuiCommandExecute, EventTuiPromptAppend, EventTuiSessionSelect, EventTuiToastShow, ExperimentalResourceListResponses, FileListResponses, FilePartInput, FilePartSource, FileReadResponses, FileStatusResponses, FindFilesResponses, FindSymbolsResponses, FindTextResponses, FormatterStatusResponses, GitCheckResponses, GlobalConfigGetResponses, GlobalConfigUpdateErrors, GlobalConfigUpdateResponses, GlobalDisposeResponses, GlobalEventResponses, GlobalHealthResponses, InstanceDisposeResponses, LspStatusResponses, McpAddErrors, McpAddResponses, McpAuthAuthenticateErrors, McpAuthAuthenticateResponses, McpAuthCallbackErrors, McpAuthCallbackResponses, McpAuthRemoveErrors, McpAuthRemoveResponses, McpAuthStartErrors, McpAuthStartResponses, McpConnectResponses, McpDisconnectResponses, McpLocalConfig, McpRemoteConfig, McpStatusResponses, Part as Part2, PartDeleteErrors, PartDeleteResponses, PartUpdateErrors, PartUpdateResponses, PathGetResponses, PermissionListResponses, PermissionReplyErrors, PermissionReplyResponses, PermissionRespondErrors, PermissionRespondResponses, PermissionRuleset, ProjectCurrentResponses, ProjectListResponses, ProjectUpdateErrors, ProjectUpdateResponses, ProviderAuthResponses, ProviderListResponses, ProviderOauthAuthorizeErrors, ProviderOauthAuthorizeResponses, ProviderOauthCallbackErrors, ProviderOauthCallbackResponses, PtyConnectErrors, PtyConnectResponses, PtyCreateErrors, PtyCreateResponses, PtyGetErrors, PtyGetResponses, PtyListResponses, PtyRemoveErrors, PtyRemoveResponses, PtyUpdateErrors, PtyUpdateResponses, QuestionAnswer, QuestionListResponses, QuestionRejectErrors, QuestionRejectResponses, QuestionReplyErrors, QuestionReplyResponses, SessionAbortErrors, SessionAbortResponses, SessionChildrenErrors, SessionChildrenResponses, SessionCommandErrors, SessionCommandResponses, SessionCreateErrors, SessionCreateResponses, SessionDeleteErrors, SessionDeleteResponses, SessionDiffResponses, SessionForkResponses, SessionGetErrors, SessionGetResponses, SessionInitErrors, SessionInitResponses, SessionListResponses, SessionMessageErrors, SessionMessageResponses, SessionMessagesErrors, SessionMessagesResponses, SessionPromptAsyncErrors, SessionPromptAsyncResponses, SessionPromptErrors, SessionPromptResponses, SessionRevertErrors, SessionRevertResponses, SessionShareErrors, SessionShareResponses, SessionShellErrors, SessionShellResponses, SessionStatusErrors, SessionStatusResponses, SessionSummarizeErrors, SessionSummarizeResponses, SessionTodoErrors, SessionTodoResponses, SessionUnrevertErrors, SessionUnrevertResponses, SessionUnshareErrors, SessionUnshareResponses, SessionUpdateErrors, SessionUpdateResponses, SubtaskPartInput, TeamConfigResponses, TeamFireResponses, TeamHireAutoResponses, TeamHireResponses, TeamMessagesResponses, TeamRolesResponses, TeamStatusResponses, TextPartInput, ToolIdsErrors, ToolIdsResponses, ToolListErrors, ToolListResponses, TuiAppendPromptErrors, TuiAppendPromptResponses, TuiClearPromptResponses, TuiControlNextResponses, TuiControlResponseResponses, TuiExecuteCommandErrors, TuiExecuteCommandResponses, TuiOpenHelpResponses, TuiOpenModelsResponses, TuiOpenSessionsResponses, TuiOpenThemesResponses, TuiPublishErrors, TuiPublishResponses, TuiSelectSessionErrors, TuiSelectSessionResponses, TuiShowToastResponses, TuiSubmitPromptResponses, VcsGetResponses, WorktreeCreateErrors, WorktreeCreateInput, WorktreeCreateResponses, WorktreeListMetaResponses, WorktreeListResponses, WorktreeRemoveErrors, WorktreeRemoveInput, WorktreeRemoveResponses, WorktreeResetErrors, WorktreeResetInput, WorktreeResetResponses, WorktreeSwitchErrors, WorktreeSwitchInput, WorktreeSwitchResponses } from "./types.gen.js";
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -325,6 +325,7 @@ export declare class Session extends HeyApiClient {
325
325
  parentID?: string;
326
326
  title?: string;
327
327
  type?: "session_memory_extraction";
328
+ mode?: "agent" | "plan" | "goal";
328
329
  permission?: PermissionRuleset;
329
330
  }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionCreateResponses, SessionCreateErrors, ThrowOnError, "fields">;
330
331
  /**
@@ -972,6 +973,61 @@ export declare class Tui extends HeyApiClient {
972
973
  private _control?;
973
974
  get control(): Control;
974
975
  }
976
+ export declare class Team extends HeyApiClient {
977
+ /**
978
+ * Get team config
979
+ */
980
+ config<ThrowOnError extends boolean = false>(parameters?: {
981
+ directory?: string;
982
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<TeamConfigResponses, unknown, ThrowOnError, "fields">;
983
+ /**
984
+ * Get available team roles
985
+ */
986
+ roles<ThrowOnError extends boolean = false>(parameters?: {
987
+ directory?: string;
988
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<TeamRolesResponses, unknown, ThrowOnError, "fields">;
989
+ /**
990
+ * Get team status
991
+ */
992
+ status<ThrowOnError extends boolean = false>(parameters?: {
993
+ directory?: string;
994
+ sessionId?: string;
995
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<TeamStatusResponses, unknown, ThrowOnError, "fields">;
996
+ /**
997
+ * Hire a team member
998
+ */
999
+ hire<ThrowOnError extends boolean = false>(parameters?: {
1000
+ directory?: string;
1001
+ sessionId?: string;
1002
+ name?: string;
1003
+ role?: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
1004
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<TeamHireResponses, unknown, ThrowOnError, "fields">;
1005
+ /**
1006
+ * Hire a team member with auto-generated name
1007
+ */
1008
+ hireAuto<ThrowOnError extends boolean = false>(parameters?: {
1009
+ directory?: string;
1010
+ sessionId?: string;
1011
+ role?: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
1012
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<TeamHireAutoResponses, unknown, ThrowOnError, "fields">;
1013
+ /**
1014
+ * Fire a team member
1015
+ */
1016
+ fire<ThrowOnError extends boolean = false>(parameters?: {
1017
+ directory?: string;
1018
+ sessionId?: string;
1019
+ name?: string;
1020
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<TeamFireResponses, unknown, ThrowOnError, "fields">;
1021
+ /**
1022
+ * Get messages for an agent
1023
+ */
1024
+ messages<ThrowOnError extends boolean = false>(parameters: {
1025
+ name: string;
1026
+ directory?: string;
1027
+ sessionId: string;
1028
+ unread?: boolean;
1029
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<TeamMessagesResponses, unknown, ThrowOnError, "fields">;
1030
+ }
975
1031
  export declare class Instance extends HeyApiClient {
976
1032
  /**
977
1033
  * Dispose instance
@@ -1126,6 +1182,8 @@ export declare class OpencodeClient extends HeyApiClient {
1126
1182
  get git(): Git;
1127
1183
  private _tui?;
1128
1184
  get tui(): Tui;
1185
+ private _team?;
1186
+ get team(): Team;
1129
1187
  private _instance?;
1130
1188
  get instance(): Instance;
1131
1189
  private _path?;
@@ -593,6 +593,7 @@ export class Session extends HeyApiClient {
593
593
  { in: "body", key: "parentID" },
594
594
  { in: "body", key: "title" },
595
595
  { in: "body", key: "type" },
596
+ { in: "body", key: "mode" },
596
597
  { in: "body", key: "permission" },
597
598
  ],
598
599
  },
@@ -1933,6 +1934,141 @@ export class Tui extends HeyApiClient {
1933
1934
  return (this._control ??= new Control({ client: this.client }));
1934
1935
  }
1935
1936
  }
1937
+ export class Team extends HeyApiClient {
1938
+ /**
1939
+ * Get team config
1940
+ */
1941
+ config(parameters, options) {
1942
+ const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }]);
1943
+ return (options?.client ?? this.client).get({
1944
+ url: "/team/config",
1945
+ ...options,
1946
+ ...params,
1947
+ });
1948
+ }
1949
+ /**
1950
+ * Get available team roles
1951
+ */
1952
+ roles(parameters, options) {
1953
+ const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }]);
1954
+ return (options?.client ?? this.client).get({
1955
+ url: "/team/roles",
1956
+ ...options,
1957
+ ...params,
1958
+ });
1959
+ }
1960
+ /**
1961
+ * Get team status
1962
+ */
1963
+ status(parameters, options) {
1964
+ const params = buildClientParams([parameters], [
1965
+ {
1966
+ args: [
1967
+ { in: "query", key: "directory" },
1968
+ { in: "query", key: "sessionId" },
1969
+ ],
1970
+ },
1971
+ ]);
1972
+ return (options?.client ?? this.client).get({
1973
+ url: "/team/status",
1974
+ ...options,
1975
+ ...params,
1976
+ });
1977
+ }
1978
+ /**
1979
+ * Hire a team member
1980
+ */
1981
+ hire(parameters, options) {
1982
+ const params = buildClientParams([parameters], [
1983
+ {
1984
+ args: [
1985
+ { in: "query", key: "directory" },
1986
+ { in: "body", key: "sessionId" },
1987
+ { in: "body", key: "name" },
1988
+ { in: "body", key: "role" },
1989
+ ],
1990
+ },
1991
+ ]);
1992
+ return (options?.client ?? this.client).post({
1993
+ url: "/team/hire",
1994
+ ...options,
1995
+ ...params,
1996
+ headers: {
1997
+ "Content-Type": "application/json",
1998
+ ...options?.headers,
1999
+ ...params.headers,
2000
+ },
2001
+ });
2002
+ }
2003
+ /**
2004
+ * Hire a team member with auto-generated name
2005
+ */
2006
+ hireAuto(parameters, options) {
2007
+ const params = buildClientParams([parameters], [
2008
+ {
2009
+ args: [
2010
+ { in: "query", key: "directory" },
2011
+ { in: "body", key: "sessionId" },
2012
+ { in: "body", key: "role" },
2013
+ ],
2014
+ },
2015
+ ]);
2016
+ return (options?.client ?? this.client).post({
2017
+ url: "/team/hire-auto",
2018
+ ...options,
2019
+ ...params,
2020
+ headers: {
2021
+ "Content-Type": "application/json",
2022
+ ...options?.headers,
2023
+ ...params.headers,
2024
+ },
2025
+ });
2026
+ }
2027
+ /**
2028
+ * Fire a team member
2029
+ */
2030
+ fire(parameters, options) {
2031
+ const params = buildClientParams([parameters], [
2032
+ {
2033
+ args: [
2034
+ { in: "query", key: "directory" },
2035
+ { in: "body", key: "sessionId" },
2036
+ { in: "body", key: "name" },
2037
+ ],
2038
+ },
2039
+ ]);
2040
+ return (options?.client ?? this.client).post({
2041
+ url: "/team/fire",
2042
+ ...options,
2043
+ ...params,
2044
+ headers: {
2045
+ "Content-Type": "application/json",
2046
+ ...options?.headers,
2047
+ ...params.headers,
2048
+ },
2049
+ });
2050
+ }
2051
+ /**
2052
+ * Get messages for an agent
2053
+ */
2054
+ messages(parameters, options) {
2055
+ const params = buildClientParams([parameters], [
2056
+ {
2057
+ args: [
2058
+ { in: "path", key: "name" },
2059
+ { in: "query", key: "directory" },
2060
+ { in: "query", key: "sessionId" },
2061
+ { in: "query", key: "unread" },
2062
+ ],
2063
+ },
2064
+ ]);
2065
+ return (options?.client ?? this.client).get({
2066
+ url: "/team/messages/{name}",
2067
+ ...options,
2068
+ ...params,
2069
+ });
2070
+ }
2071
+ }
1936
2072
  export class Instance extends HeyApiClient {
1937
2073
  /**
1938
2074
  * Dispose instance
@@ -2198,6 +2334,10 @@ export class OpencodeClient extends HeyApiClient {
2198
2334
  get tui() {
2199
2335
  return (this._tui ??= new Tui({ client: this.client }));
2200
2336
  }
2337
+ _team;
2338
+ get team() {
2339
+ return (this._team ??= new Team({ client: this.client }));
2340
+ }
2201
2341
  _instance;
2202
2342
  get instance() {
2203
2343
  return (this._instance ??= new Instance({ client: this.client }));
@@ -673,22 +673,48 @@ export type EventFileWatcherUpdated = {
673
673
  };
674
674
  };
675
675
  export type Todo = {
676
+ /**
677
+ * Unique identifier for the todo item
678
+ */
679
+ id: string;
676
680
  /**
677
681
  * Brief description of the task
678
682
  */
679
683
  content: string;
680
684
  /**
681
- * Current status of the task: pending, in_progress, completed, cancelled
685
+ * Current status of the task
682
686
  */
683
- status: string;
687
+ status: "pending" | "in_progress" | "completed" | "cancelled";
684
688
  /**
685
- * Priority level of the task: high, medium, low
689
+ * Priority level of the task
686
690
  */
687
- priority: string;
691
+ priority: "high" | "medium" | "low";
688
692
  /**
689
- * Unique identifier for the todo item
693
+ * Present-tense description for UI spinner (e.g. 'Running tests')
690
694
  */
691
- id: string;
695
+ activeForm?: string;
696
+ /**
697
+ * Task IDs that this task blocks (must complete before they can start)
698
+ */
699
+ blocks: Array<string>;
700
+ /**
701
+ * Task IDs that block this task (must complete before this can start)
702
+ */
703
+ blockedBy: Array<string>;
704
+ /**
705
+ * Arbitrary metadata
706
+ */
707
+ metadata?: {
708
+ [key: string]: unknown;
709
+ };
710
+ /**
711
+ * Creation timestamp
712
+ */
713
+ createdAt: number;
714
+ /**
715
+ * Last update timestamp
716
+ */
717
+ updatedAt: number;
692
718
  };
693
719
  export type EventTodoUpdated = {
694
720
  type: "todo.updated";
@@ -697,6 +723,81 @@ export type EventTodoUpdated = {
697
723
  todos: Array<Todo>;
698
724
  };
699
725
  };
726
+ export type EventTeamWorkerStarted = {
727
+ type: "team.worker.started";
728
+ properties: {
729
+ name: string;
730
+ role: string;
731
+ sessionId: string;
732
+ };
733
+ };
734
+ export type EventTeamWorkerStopped = {
735
+ type: "team.worker.stopped";
736
+ properties: {
737
+ name: string;
738
+ reason?: string;
739
+ };
740
+ };
741
+ export type EventTeamTaskAssigned = {
742
+ type: "team.task.assigned";
743
+ properties: {
744
+ sessionId: string;
745
+ taskId: string;
746
+ workerName: string;
747
+ description: string;
748
+ };
749
+ };
750
+ export type EventTeamTaskCompleted = {
751
+ type: "team.task.completed";
752
+ properties: {
753
+ sessionId: string;
754
+ taskId: string;
755
+ workerName: string;
756
+ result?: string;
757
+ };
758
+ };
759
+ export type EventTeamTaskFailed = {
760
+ type: "team.task.failed";
761
+ properties: {
762
+ sessionId: string;
763
+ taskId: string;
764
+ workerName: string;
765
+ error?: string;
766
+ };
767
+ };
768
+ export type EventTeamMessageReceived = {
769
+ type: "team.message.received";
770
+ properties: {
771
+ from: string;
772
+ to: string;
773
+ type: string;
774
+ };
775
+ };
776
+ export type EventTeamMemberHired = {
777
+ type: "team.member.hired";
778
+ properties: {
779
+ sessionId: string;
780
+ name: string;
781
+ role: string;
782
+ agentName: string;
783
+ };
784
+ };
785
+ export type EventTeamMemberFired = {
786
+ type: "team.member.fired";
787
+ properties: {
788
+ sessionId: string;
789
+ name: string;
790
+ };
791
+ };
792
+ export type EventTeamWorkerStatusChanged = {
793
+ type: "team.worker.status_changed";
794
+ properties: {
795
+ sessionId: string;
796
+ name: string;
797
+ status: "idle" | "working" | "offline";
798
+ currentTask?: string;
799
+ };
800
+ };
700
801
  export type EventVcsBranchUpdated = {
701
802
  type: "vcs.branch.updated";
702
803
  properties: {
@@ -739,6 +840,7 @@ export type Session = {
739
840
  worktreeDirectory?: string;
740
841
  worktreePath?: string;
741
842
  branch?: string;
843
+ mode?: "agent" | "plan" | "goal";
742
844
  revert?: {
743
845
  messageID: string;
744
846
  partID?: string;
@@ -812,7 +914,7 @@ export type EventPtyDeleted = {
812
914
  id: string;
813
915
  };
814
916
  };
815
- export type Event = EventInstallationUpdated | EventEngineerUpdateAvailable | EventProjectUpdated | EventServerInstanceDisposed | EventServerConnected | EventGlobalDisposed | EventLspClientDiagnostics | EventLspUpdated | EventFileEdited | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated | EventMessagePartRemoved | EventPermissionAsked | EventPermissionReplied | EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventTuiSessionSelect | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventWorktreeReady | EventWorktreeFailed | EventCommandExecuted | EventSkillCreated | EventSessionStatus | EventSessionIdle | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected | EventTaskNotification | EventSessionMemoryExtracted | EventSessionCompacted | EventFileWatcherUpdated | EventTodoUpdated | EventVcsBranchUpdated | EventSessionCreated | EventSessionUpdated | EventSessionDeleted | EventSessionDiff | EventSessionError | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted;
917
+ export type Event = EventInstallationUpdated | EventEngineerUpdateAvailable | EventProjectUpdated | EventServerInstanceDisposed | EventServerConnected | EventGlobalDisposed | EventLspClientDiagnostics | EventLspUpdated | EventFileEdited | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated | EventMessagePartRemoved | EventPermissionAsked | EventPermissionReplied | EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventTuiSessionSelect | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventWorktreeReady | EventWorktreeFailed | EventCommandExecuted | EventSkillCreated | EventSessionStatus | EventSessionIdle | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected | EventTaskNotification | EventSessionMemoryExtracted | EventSessionCompacted | EventFileWatcherUpdated | EventTodoUpdated | EventTeamWorkerStarted | EventTeamWorkerStopped | EventTeamTaskAssigned | EventTeamTaskCompleted | EventTeamTaskFailed | EventTeamMessageReceived | EventTeamMemberHired | EventTeamMemberFired | EventTeamWorkerStatusChanged | EventVcsBranchUpdated | EventSessionCreated | EventSessionUpdated | EventSessionDeleted | EventSessionDiff | EventSessionError | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted;
816
918
  export type GlobalEvent = {
817
919
  directory: string;
818
920
  payload: Event;
@@ -1210,8 +1312,10 @@ export type PermissionConfig = {
1210
1312
  bash?: PermissionRuleConfig;
1211
1313
  task?: PermissionRuleConfig;
1212
1314
  external_directory?: PermissionRuleConfig;
1213
- todowrite?: PermissionActionConfig;
1214
- todoread?: PermissionActionConfig;
1315
+ todo_create?: PermissionActionConfig;
1316
+ todo_update?: PermissionActionConfig;
1317
+ todo_list?: PermissionActionConfig;
1318
+ todo_delete?: PermissionActionConfig;
1215
1319
  question?: PermissionActionConfig;
1216
1320
  webfetch?: PermissionActionConfig;
1217
1321
  websearch?: PermissionActionConfig;
@@ -1538,6 +1642,21 @@ export type Config = {
1538
1642
  * Model to use for memory extraction and analysis in the format of provider/model. If not set, memory extraction will be skipped.
1539
1643
  */
1540
1644
  memory_model?: string;
1645
+ /**
1646
+ * Enable goal mode (multi-agent orchestration). When false or unset, goal agent, /hire and /fire commands are hidden. Defaults to false.
1647
+ */
1648
+ goal_enabled?: boolean;
1649
+ /**
1650
+ * Team member configuration as an array of {name, role}, e.g. [{"name": "Frank", "role": "frontend"}, {"name": "Beck", "role": "backend"}]. Only entries with valid roles are used.
1651
+ */
1652
+ team_config?: Array<{
1653
+ name: string;
1654
+ role: string;
1655
+ }>;
1656
+ /**
1657
+ * Maximum number of team members allowed per role. Defaults to 2. When hiring, roles that have reached this limit will be unavailable.
1658
+ */
1659
+ max_per_role?: number;
1541
1660
  /**
1542
1661
  * Load balancing strategy for model selection (default: deterministic)
1543
1662
  */
@@ -1681,8 +1800,15 @@ export type Config = {
1681
1800
  */
1682
1801
  enabled?: boolean;
1683
1802
  };
1803
+ /**
1804
+ * Enable knowledge base context injection plugin (default: false)
1805
+ */
1806
+ is_kdb_open?: boolean;
1807
+ /**
1808
+ * List of local repository URLs to clone and make available
1809
+ */
1810
+ local_repos?: Array<string>;
1684
1811
  experimental?: {
1685
- disable_paste_summary?: boolean;
1686
1812
  /**
1687
1813
  * Enable the batch tool
1688
1814
  */
@@ -2658,6 +2784,7 @@ export type SessionCreateData = {
2658
2784
  parentID?: string;
2659
2785
  title?: string;
2660
2786
  type?: "session_memory_extraction";
2787
+ mode?: "agent" | "plan" | "goal";
2661
2788
  permission?: PermissionRuleset;
2662
2789
  };
2663
2790
  path?: never;
@@ -4364,6 +4491,156 @@ export type TuiControlResponseResponses = {
4364
4491
  200: boolean;
4365
4492
  };
4366
4493
  export type TuiControlResponseResponse = TuiControlResponseResponses[keyof TuiControlResponseResponses];
4494
+ export type TeamConfigData = {
4495
+ body?: never;
4496
+ path?: never;
4497
+ query?: {
4498
+ directory?: string;
4499
+ };
4500
+ url: "/team/config";
4501
+ };
4502
+ export type TeamConfigResponses = {
4503
+ /**
4504
+ * Team configuration
4505
+ */
4506
+ 200: {
4507
+ members: Array<{
4508
+ name: string;
4509
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4510
+ agentName: string;
4511
+ }>;
4512
+ max_per_role?: number;
4513
+ };
4514
+ };
4515
+ export type TeamConfigResponse = TeamConfigResponses[keyof TeamConfigResponses];
4516
+ export type TeamRolesData = {
4517
+ body?: never;
4518
+ path?: never;
4519
+ query?: {
4520
+ directory?: string;
4521
+ };
4522
+ url: "/team/roles";
4523
+ };
4524
+ export type TeamRolesResponses = {
4525
+ /**
4526
+ * Available roles with labels
4527
+ */
4528
+ 200: {
4529
+ [key: string]: string;
4530
+ };
4531
+ };
4532
+ export type TeamRolesResponse = TeamRolesResponses[keyof TeamRolesResponses];
4533
+ export type TeamStatusData = {
4534
+ body?: never;
4535
+ path?: never;
4536
+ query?: {
4537
+ directory?: string;
4538
+ sessionId?: string;
4539
+ };
4540
+ url: "/team/status";
4541
+ };
4542
+ export type TeamStatusResponses = {
4543
+ /**
4544
+ * Team status for all sessions
4545
+ */
4546
+ 200: {
4547
+ [key: string]: unknown;
4548
+ };
4549
+ };
4550
+ export type TeamStatusResponse = TeamStatusResponses[keyof TeamStatusResponses];
4551
+ export type TeamHireData = {
4552
+ body?: {
4553
+ sessionId: string;
4554
+ name: string;
4555
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4556
+ };
4557
+ path?: never;
4558
+ query?: {
4559
+ directory?: string;
4560
+ };
4561
+ url: "/team/hire";
4562
+ };
4563
+ export type TeamHireResponses = {
4564
+ /**
4565
+ * Member hired
4566
+ */
4567
+ 200: {
4568
+ name: string;
4569
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4570
+ agentName: string;
4571
+ };
4572
+ };
4573
+ export type TeamHireResponse = TeamHireResponses[keyof TeamHireResponses];
4574
+ export type TeamHireAutoData = {
4575
+ body?: {
4576
+ sessionId: string;
4577
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4578
+ };
4579
+ path?: never;
4580
+ query?: {
4581
+ directory?: string;
4582
+ };
4583
+ url: "/team/hire-auto";
4584
+ };
4585
+ export type TeamHireAutoResponses = {
4586
+ /**
4587
+ * Member hired with auto-generated name
4588
+ */
4589
+ 200: {
4590
+ name: string;
4591
+ role: "tester" | "frontend" | "backend" | "general" | "reviewer" | "architect" | "researcher" | "devops" | "business";
4592
+ agentName: string;
4593
+ };
4594
+ };
4595
+ export type TeamHireAutoResponse = TeamHireAutoResponses[keyof TeamHireAutoResponses];
4596
+ export type TeamFireData = {
4597
+ body?: {
4598
+ sessionId: string;
4599
+ name: string;
4600
+ };
4601
+ path?: never;
4602
+ query?: {
4603
+ directory?: string;
4604
+ };
4605
+ url: "/team/fire";
4606
+ };
4607
+ export type TeamFireResponses = {
4608
+ /**
4609
+ * Member fired
4610
+ */
4611
+ 200: boolean;
4612
+ };
4613
+ export type TeamFireResponse = TeamFireResponses[keyof TeamFireResponses];
4614
+ export type TeamMessagesData = {
4615
+ body?: never;
4616
+ path: {
4617
+ name: string;
4618
+ };
4619
+ query: {
4620
+ directory?: string;
4621
+ sessionId: string;
4622
+ unread?: boolean;
4623
+ };
4624
+ url: "/team/messages/{name}";
4625
+ };
4626
+ export type TeamMessagesResponses = {
4627
+ /**
4628
+ * Messages
4629
+ */
4630
+ 200: Array<{
4631
+ id: string;
4632
+ from: string;
4633
+ to: string;
4634
+ type: "task_assignment" | "task_result" | "message" | "question" | "stop_request";
4635
+ content: string;
4636
+ taskId?: string;
4637
+ timestamp: number;
4638
+ metadata?: {
4639
+ [key: string]: unknown;
4640
+ };
4641
+ }>;
4642
+ };
4643
+ export type TeamMessagesResponse = TeamMessagesResponses[keyof TeamMessagesResponses];
4367
4644
  export type InstanceDisposeData = {
4368
4645
  body?: never;
4369
4646
  path?: never;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@engineer-ai/sdk",
4
- "version": "1.2.4",
4
+ "version": "1.3.1",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "scripts": {