@agents-ensemble/core 0.4.1 → 0.5.0

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 (111) hide show
  1. package/dist/acp/acp-preset-bins.d.ts +10 -0
  2. package/dist/acp/acp-preset-bins.d.ts.map +1 -0
  3. package/dist/acp/acp-preset-bins.js +27 -0
  4. package/dist/acp/acp-preset-bins.js.map +1 -0
  5. package/dist/acp/index.d.ts +3 -0
  6. package/dist/acp/index.d.ts.map +1 -1
  7. package/dist/acp/index.js +3 -0
  8. package/dist/acp/index.js.map +1 -1
  9. package/dist/acp/resolve-acp-spawn.d.ts +2 -0
  10. package/dist/acp/resolve-acp-spawn.d.ts.map +1 -1
  11. package/dist/acp/resolve-acp-spawn.js +10 -6
  12. package/dist/acp/resolve-acp-spawn.js.map +1 -1
  13. package/dist/acp/resolve-bundled-acp-bin.d.ts +11 -0
  14. package/dist/acp/resolve-bundled-acp-bin.d.ts.map +1 -0
  15. package/dist/acp/resolve-bundled-acp-bin.js +60 -0
  16. package/dist/acp/resolve-bundled-acp-bin.js.map +1 -0
  17. package/dist/acp/validate-acp-preset-prerequisites.d.ts +24 -0
  18. package/dist/acp/validate-acp-preset-prerequisites.d.ts.map +1 -0
  19. package/dist/acp/validate-acp-preset-prerequisites.js +121 -0
  20. package/dist/acp/validate-acp-preset-prerequisites.js.map +1 -0
  21. package/dist/conductor/conductor-session-driver.d.ts +2 -0
  22. package/dist/conductor/conductor-session-driver.d.ts.map +1 -1
  23. package/dist/conductor/conductor-session-driver.js +16 -7
  24. package/dist/conductor/conductor-session-driver.js.map +1 -1
  25. package/dist/conductor/conductor-session.d.ts +3 -0
  26. package/dist/conductor/conductor-session.d.ts.map +1 -1
  27. package/dist/conductor/conductor-session.js +65 -8
  28. package/dist/conductor/conductor-session.js.map +1 -1
  29. package/dist/conductor/resolve-conductor-model-id.d.ts +7 -3
  30. package/dist/conductor/resolve-conductor-model-id.d.ts.map +1 -1
  31. package/dist/conductor/resolve-conductor-model-id.js +9 -11
  32. package/dist/conductor/resolve-conductor-model-id.js.map +1 -1
  33. package/dist/conductor/session/events/session-log-event.d.ts +4 -0
  34. package/dist/conductor/session/events/session-log-event.d.ts.map +1 -1
  35. package/dist/config/deep-merge.d.ts +3 -0
  36. package/dist/config/deep-merge.d.ts.map +1 -0
  37. package/dist/config/deep-merge.js +20 -0
  38. package/dist/config/deep-merge.js.map +1 -0
  39. package/dist/config/defaults.d.ts +5 -0
  40. package/dist/config/defaults.d.ts.map +1 -0
  41. package/dist/config/defaults.js +35 -0
  42. package/dist/config/defaults.js.map +1 -0
  43. package/dist/config/index.d.ts +9 -0
  44. package/dist/config/index.d.ts.map +1 -0
  45. package/dist/config/index.js +6 -0
  46. package/dist/config/index.js.map +1 -0
  47. package/dist/config/load-ensemble-config.d.ts +12 -0
  48. package/dist/config/load-ensemble-config.d.ts.map +1 -0
  49. package/dist/config/load-ensemble-config.js +44 -0
  50. package/dist/config/load-ensemble-config.js.map +1 -0
  51. package/dist/config/parse-config.d.ts +7 -0
  52. package/dist/config/parse-config.d.ts.map +1 -0
  53. package/dist/config/parse-config.js +179 -0
  54. package/dist/config/parse-config.js.map +1 -0
  55. package/dist/config/resolve-settings.d.ts +78 -0
  56. package/dist/config/resolve-settings.d.ts.map +1 -0
  57. package/dist/config/resolve-settings.js +141 -0
  58. package/dist/config/resolve-settings.js.map +1 -0
  59. package/dist/config/types.d.ts +52 -0
  60. package/dist/config/types.d.ts.map +1 -0
  61. package/dist/config/types.js +2 -0
  62. package/dist/config/types.js.map +1 -0
  63. package/dist/github/fetch-github-updates.d.ts +16 -3
  64. package/dist/github/fetch-github-updates.d.ts.map +1 -1
  65. package/dist/github/fetch-github-updates.js +97 -101
  66. package/dist/github/fetch-github-updates.js.map +1 -1
  67. package/dist/github/github-auth.d.ts +15 -0
  68. package/dist/github/github-auth.d.ts.map +1 -0
  69. package/dist/github/github-auth.js +44 -0
  70. package/dist/github/github-auth.js.map +1 -0
  71. package/dist/github/github-client.d.ts +76 -0
  72. package/dist/github/github-client.d.ts.map +1 -0
  73. package/dist/github/github-client.js +198 -0
  74. package/dist/github/github-client.js.map +1 -0
  75. package/dist/github/github-monitor-error.d.ts +24 -0
  76. package/dist/github/github-monitor-error.d.ts.map +1 -0
  77. package/dist/github/github-monitor-error.js +75 -0
  78. package/dist/github/github-monitor-error.js.map +1 -0
  79. package/dist/github/github-monitor.d.ts +5 -3
  80. package/dist/github/github-monitor.d.ts.map +1 -1
  81. package/dist/github/github-monitor.js +15 -3
  82. package/dist/github/github-monitor.js.map +1 -1
  83. package/dist/github/github-test-fixtures.d.ts +52 -0
  84. package/dist/github/github-test-fixtures.d.ts.map +1 -1
  85. package/dist/github/github-test-fixtures.js +42 -0
  86. package/dist/github/github-test-fixtures.js.map +1 -1
  87. package/dist/github/index.d.ts +11 -2
  88. package/dist/github/index.d.ts.map +1 -1
  89. package/dist/github/index.js +6 -2
  90. package/dist/github/index.js.map +1 -1
  91. package/dist/github/issue-context.d.ts +8 -1
  92. package/dist/github/issue-context.d.ts.map +1 -1
  93. package/dist/github/issue-context.js +13 -12
  94. package/dist/github/issue-context.js.map +1 -1
  95. package/dist/github/resolve-github-auth-token.d.ts +19 -0
  96. package/dist/github/resolve-github-auth-token.d.ts.map +1 -0
  97. package/dist/github/resolve-github-auth-token.js +32 -0
  98. package/dist/github/resolve-github-auth-token.js.map +1 -0
  99. package/dist/github/run-gh.d.ts +20 -0
  100. package/dist/github/run-gh.d.ts.map +1 -1
  101. package/dist/github/run-gh.js +38 -4
  102. package/dist/github/run-gh.js.map +1 -1
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +1 -0
  106. package/dist/index.js.map +1 -1
  107. package/dist/profile/load-profile.d.ts +5 -2
  108. package/dist/profile/load-profile.d.ts.map +1 -1
  109. package/dist/profile/load-profile.js +9 -7
  110. package/dist/profile/load-profile.js.map +1 -1
  111. package/package.json +6 -1
@@ -0,0 +1,179 @@
1
+ import { isBuiltinAcpPresetId, } from '../acp/resolve-acp-spawn.js';
2
+ function readBoolean(value) {
3
+ return typeof value === 'boolean' ? value : undefined;
4
+ }
5
+ function readString(value) {
6
+ return typeof value === 'string' && value.trim() !== '' ? value.trim() : undefined;
7
+ }
8
+ function readNumber(value) {
9
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
10
+ }
11
+ function readObject(value) {
12
+ return value && typeof value === 'object' && !Array.isArray(value)
13
+ ? value
14
+ : undefined;
15
+ }
16
+ function parseWorktreeMode(value) {
17
+ const raw = readString(value);
18
+ if (!raw) {
19
+ return undefined;
20
+ }
21
+ const normalized = raw.toLowerCase().replace(/_/g, '-');
22
+ if (normalized === 'isolated') {
23
+ return 'isolated';
24
+ }
25
+ if (normalized === 'in-repo') {
26
+ return 'in_repo';
27
+ }
28
+ return undefined;
29
+ }
30
+ function parseProfileConfig(raw) {
31
+ const obj = readObject(raw);
32
+ if (!obj) {
33
+ return undefined;
34
+ }
35
+ const defaultProfile = readString(obj.default);
36
+ return defaultProfile ? { default: defaultProfile } : {};
37
+ }
38
+ function parseConductorConfig(raw) {
39
+ const obj = readObject(raw);
40
+ if (!obj) {
41
+ return undefined;
42
+ }
43
+ const model = readString(obj.model);
44
+ return model ? { model } : undefined;
45
+ }
46
+ function parseAcpConfig(raw) {
47
+ const obj = readObject(raw);
48
+ if (!obj) {
49
+ return undefined;
50
+ }
51
+ const preset = readString(obj.defaultPreset);
52
+ if (!preset || !isBuiltinAcpPresetId(preset)) {
53
+ return undefined;
54
+ }
55
+ return { defaultPreset: preset };
56
+ }
57
+ function parseSessionMaxTurns(raw) {
58
+ const obj = readObject(raw);
59
+ if (!obj) {
60
+ return undefined;
61
+ }
62
+ const tty = readNumber(obj.tty);
63
+ const nonTty = readNumber(obj.nonTty);
64
+ if (tty === undefined && nonTty === undefined) {
65
+ return undefined;
66
+ }
67
+ return {
68
+ ...(tty !== undefined ? { tty } : {}),
69
+ ...(nonTty !== undefined ? { nonTty } : {}),
70
+ };
71
+ }
72
+ function parseSessionPostLoop(raw) {
73
+ const obj = readObject(raw);
74
+ if (!obj) {
75
+ return undefined;
76
+ }
77
+ const wait = readBoolean(obj.wait);
78
+ return wait === undefined ? undefined : { wait };
79
+ }
80
+ function parseSessionConfig(raw) {
81
+ const obj = readObject(raw);
82
+ if (!obj) {
83
+ return undefined;
84
+ }
85
+ const worktree = parseWorktreeMode(obj.worktree);
86
+ const maxTurns = parseSessionMaxTurns(obj.maxTurns);
87
+ const postLoop = parseSessionPostLoop(obj.postLoop);
88
+ if (worktree === undefined && maxTurns === undefined && postLoop === undefined) {
89
+ return undefined;
90
+ }
91
+ return {
92
+ ...(worktree !== undefined ? { worktree } : {}),
93
+ ...(maxTurns !== undefined ? { maxTurns } : {}),
94
+ ...(postLoop !== undefined ? { postLoop } : {}),
95
+ };
96
+ }
97
+ function parseGitHubAuthConfig(raw) {
98
+ const obj = readObject(raw);
99
+ if (!obj) {
100
+ return undefined;
101
+ }
102
+ const allowGhAuthTokenFallback = readBoolean(obj.allowGhAuthTokenFallback);
103
+ return allowGhAuthTokenFallback === undefined
104
+ ? undefined
105
+ : { allowGhAuthTokenFallback };
106
+ }
107
+ function parseGitHubMonitorConfig(raw) {
108
+ const obj = readObject(raw);
109
+ if (!obj) {
110
+ return undefined;
111
+ }
112
+ const enabled = readBoolean(obj.enabled);
113
+ const debounceMs = readNumber(obj.debounceMs);
114
+ const pollIntervalMs = readNumber(obj.pollIntervalMs);
115
+ const activePollIntervalMs = readNumber(obj.activePollIntervalMs);
116
+ const stopPollWaitMs = readNumber(obj.stopPollWaitMs);
117
+ if (enabled === undefined &&
118
+ debounceMs === undefined &&
119
+ pollIntervalMs === undefined &&
120
+ activePollIntervalMs === undefined &&
121
+ stopPollWaitMs === undefined) {
122
+ return undefined;
123
+ }
124
+ return {
125
+ ...(enabled !== undefined ? { enabled } : {}),
126
+ ...(debounceMs !== undefined ? { debounceMs } : {}),
127
+ ...(pollIntervalMs !== undefined ? { pollIntervalMs } : {}),
128
+ ...(activePollIntervalMs !== undefined ? { activePollIntervalMs } : {}),
129
+ ...(stopPollWaitMs !== undefined ? { stopPollWaitMs } : {}),
130
+ };
131
+ }
132
+ function parseGitHubConfig(raw) {
133
+ const obj = readObject(raw);
134
+ if (!obj) {
135
+ return undefined;
136
+ }
137
+ const auth = parseGitHubAuthConfig(obj.auth);
138
+ const monitor = parseGitHubMonitorConfig(obj.monitor);
139
+ if (auth === undefined && monitor === undefined) {
140
+ return undefined;
141
+ }
142
+ return {
143
+ ...(auth !== undefined ? { auth } : {}),
144
+ ...(monitor !== undefined ? { monitor } : {}),
145
+ };
146
+ }
147
+ /**
148
+ * YAML から既知スキーマのみ抽出する。未知キーは無視(将来拡張用)。
149
+ * 無効な型の既知キーは無視し、下位層 / デフォルトにフォールバックする。
150
+ */
151
+ export function parseEnsembleConfig(raw) {
152
+ if (!raw || typeof raw !== 'object') {
153
+ return {};
154
+ }
155
+ const root = raw;
156
+ const result = {};
157
+ const profile = parseProfileConfig(root.profile);
158
+ if (profile !== undefined) {
159
+ result.profile = profile;
160
+ }
161
+ const conductor = parseConductorConfig(root.conductor);
162
+ if (conductor !== undefined) {
163
+ result.conductor = conductor;
164
+ }
165
+ const acp = parseAcpConfig(root.acp);
166
+ if (acp !== undefined) {
167
+ result.acp = acp;
168
+ }
169
+ const session = parseSessionConfig(root.session);
170
+ if (session !== undefined) {
171
+ result.session = session;
172
+ }
173
+ const github = parseGitHubConfig(root.github);
174
+ if (github !== undefined) {
175
+ result.github = github;
176
+ }
177
+ return result;
178
+ }
179
+ //# sourceMappingURL=parse-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-config.js","sourceRoot":"","sources":["../../src/config/parse-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { WorkerWorktreeMode } from '../worktree/worktree.js';
2
+ import type { EnsembleConfig } from './types.js';
3
+ /** `--profile` 未指定時の team profile(`load-profile` と共有)。 */
4
+ export declare const ENSEMBLE_DEFAULT_PROFILE_ENV = "ENSEMBLE_DEFAULT_PROFILE";
5
+ /** conductor モデル id(`resolve-conductor-model-id` と共有)。 */
6
+ export declare const CONDUCTOR_MODEL_ID_ENV = "CONDUCTOR_MODEL_ID";
7
+ /** 解決順: CLI 明示 > env > config > コード内 default */
8
+ export interface ResolveStringSettingOptions {
9
+ cli?: string;
10
+ env?: string;
11
+ config?: string;
12
+ defaultValue?: string;
13
+ }
14
+ export interface ResolveBooleanSettingOptions {
15
+ cli?: boolean;
16
+ env?: boolean;
17
+ config?: boolean;
18
+ defaultValue: boolean;
19
+ }
20
+ export interface ResolveNumberSettingOptions {
21
+ cli?: number;
22
+ env?: number;
23
+ config?: number;
24
+ defaultValue: number;
25
+ }
26
+ export declare function resolveStringSetting(options: ResolveStringSettingOptions): string | undefined;
27
+ export declare function resolveBooleanSetting(options: ResolveBooleanSettingOptions): boolean;
28
+ export declare function resolveNumberSetting(options: ResolveNumberSettingOptions): number;
29
+ export declare function resolveProfileDefaultRef(options: {
30
+ cliProfile?: string;
31
+ env?: NodeJS.ProcessEnv;
32
+ config?: EnsembleConfig;
33
+ }): string | undefined;
34
+ export declare function resolveConductorModelSetting(options: {
35
+ cliModel?: string;
36
+ env?: NodeJS.ProcessEnv;
37
+ config?: EnsembleConfig;
38
+ }): string;
39
+ export declare function resolveDefaultAcpPresetSetting(options: {
40
+ cliPreset?: string;
41
+ env?: NodeJS.ProcessEnv;
42
+ config?: EnsembleConfig;
43
+ }): string | undefined;
44
+ export declare function resolveSessionWorktreeMode(options: {
45
+ cliWorktree?: string;
46
+ config?: EnsembleConfig;
47
+ }): WorkerWorktreeMode;
48
+ export declare function resolveSessionMaxTurns(options: {
49
+ interactive: boolean;
50
+ cliNoMaxTurns?: boolean;
51
+ cliMaxTurns?: number;
52
+ config?: EnsembleConfig;
53
+ }): number;
54
+ export declare function resolveSessionPostLoopWait(options: {
55
+ cliNoWait?: boolean;
56
+ config?: EnsembleConfig;
57
+ }): boolean;
58
+ export declare function resolveGitHubMonitorEnabled(options: {
59
+ cliDisabled?: boolean;
60
+ config?: EnsembleConfig;
61
+ }): boolean;
62
+ export declare function resolveGitHubMonitorDebounceMs(options: {
63
+ cliDebounceMs?: number;
64
+ config?: EnsembleConfig;
65
+ }): number;
66
+ export declare function resolveGitHubMonitorPollIntervalMs(options: {
67
+ cliPollIntervalMs?: number;
68
+ config?: EnsembleConfig;
69
+ }): number;
70
+ export declare function resolveGitHubMonitorActivePollIntervalMs(options: {
71
+ cliActivePollIntervalMs?: number;
72
+ config?: EnsembleConfig;
73
+ }): number;
74
+ export declare function resolveGitHubMonitorStopPollWaitMs(options: {
75
+ cliStopPollWaitMs?: number;
76
+ config?: EnsembleConfig;
77
+ }): number;
78
+ //# sourceMappingURL=resolve-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-settings.d.ts","sourceRoot":"","sources":["../../src/config/resolve-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { ENSEMBLE_DEFAULT_ACP_CLI_ENV } from '../acp/resolve-acp-spawn.js';
2
+ import { DEFAULT_ENSEMBLE_CONFIG } from './defaults.js';
3
+ /** `--profile` 未指定時の team profile(`load-profile` と共有)。 */
4
+ export const ENSEMBLE_DEFAULT_PROFILE_ENV = 'ENSEMBLE_DEFAULT_PROFILE';
5
+ /** conductor モデル id(`resolve-conductor-model-id` と共有)。 */
6
+ export const CONDUCTOR_MODEL_ID_ENV = 'CONDUCTOR_MODEL_ID';
7
+ function normalizeConductorModelId(modelId) {
8
+ return modelId === 'auto' ? 'default' : modelId;
9
+ }
10
+ function trimString(value) {
11
+ const trimmed = value?.trim();
12
+ return trimmed ? trimmed : undefined;
13
+ }
14
+ export function resolveStringSetting(options) {
15
+ const fromCli = trimString(options.cli);
16
+ if (fromCli !== undefined) {
17
+ return fromCli;
18
+ }
19
+ const fromEnv = trimString(options.env);
20
+ if (fromEnv !== undefined) {
21
+ return fromEnv;
22
+ }
23
+ const fromConfig = trimString(options.config);
24
+ if (fromConfig !== undefined) {
25
+ return fromConfig;
26
+ }
27
+ return options.defaultValue;
28
+ }
29
+ export function resolveBooleanSetting(options) {
30
+ if (options.cli !== undefined) {
31
+ return options.cli;
32
+ }
33
+ if (options.env !== undefined) {
34
+ return options.env;
35
+ }
36
+ if (options.config !== undefined) {
37
+ return options.config;
38
+ }
39
+ return options.defaultValue;
40
+ }
41
+ export function resolveNumberSetting(options) {
42
+ if (options.cli !== undefined) {
43
+ return options.cli;
44
+ }
45
+ if (options.env !== undefined) {
46
+ return options.env;
47
+ }
48
+ if (options.config !== undefined) {
49
+ return options.config;
50
+ }
51
+ return options.defaultValue;
52
+ }
53
+ export function resolveProfileDefaultRef(options) {
54
+ return resolveStringSetting({
55
+ cli: options.cliProfile,
56
+ env: options.env?.[ENSEMBLE_DEFAULT_PROFILE_ENV],
57
+ config: options.config?.profile.default,
58
+ });
59
+ }
60
+ export function resolveConductorModelSetting(options) {
61
+ const resolved = resolveStringSetting({
62
+ cli: options.cliModel,
63
+ env: options.env?.[CONDUCTOR_MODEL_ID_ENV],
64
+ config: options.config?.conductor.model,
65
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.conductor.model,
66
+ });
67
+ return normalizeConductorModelId(resolved ?? DEFAULT_ENSEMBLE_CONFIG.conductor.model);
68
+ }
69
+ export function resolveDefaultAcpPresetSetting(options) {
70
+ return resolveStringSetting({
71
+ cli: options.cliPreset,
72
+ env: options.env?.[ENSEMBLE_DEFAULT_ACP_CLI_ENV],
73
+ config: options.config?.acp.defaultPreset,
74
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.acp.defaultPreset,
75
+ });
76
+ }
77
+ export function resolveSessionWorktreeMode(options) {
78
+ const resolved = resolveStringSetting({
79
+ cli: options.cliWorktree,
80
+ config: options.config?.session.worktree,
81
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.session.worktree,
82
+ });
83
+ return (resolved ?? DEFAULT_ENSEMBLE_CONFIG.session.worktree);
84
+ }
85
+ export function resolveSessionMaxTurns(options) {
86
+ if (options.cliNoMaxTurns) {
87
+ return 0;
88
+ }
89
+ if (options.cliMaxTurns !== undefined) {
90
+ return options.cliMaxTurns;
91
+ }
92
+ const configMaxTurns = options.config?.session.maxTurns ?? DEFAULT_ENSEMBLE_CONFIG.session.maxTurns;
93
+ return options.interactive ? configMaxTurns.tty : configMaxTurns.nonTty;
94
+ }
95
+ export function resolveSessionPostLoopWait(options) {
96
+ if (options.cliNoWait) {
97
+ return false;
98
+ }
99
+ return resolveBooleanSetting({
100
+ config: options.config?.session.postLoop.wait,
101
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.session.postLoop.wait,
102
+ });
103
+ }
104
+ export function resolveGitHubMonitorEnabled(options) {
105
+ if (options.cliDisabled) {
106
+ return false;
107
+ }
108
+ return resolveBooleanSetting({
109
+ config: options.config?.github.monitor.enabled,
110
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.github.monitor.enabled,
111
+ });
112
+ }
113
+ export function resolveGitHubMonitorDebounceMs(options) {
114
+ return resolveNumberSetting({
115
+ cli: options.cliDebounceMs,
116
+ config: options.config?.github.monitor.debounceMs,
117
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.github.monitor.debounceMs,
118
+ });
119
+ }
120
+ export function resolveGitHubMonitorPollIntervalMs(options) {
121
+ return resolveNumberSetting({
122
+ cli: options.cliPollIntervalMs,
123
+ config: options.config?.github.monitor.pollIntervalMs,
124
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.github.monitor.pollIntervalMs,
125
+ });
126
+ }
127
+ export function resolveGitHubMonitorActivePollIntervalMs(options) {
128
+ return resolveNumberSetting({
129
+ cli: options.cliActivePollIntervalMs,
130
+ config: options.config?.github.monitor.activePollIntervalMs,
131
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.github.monitor.activePollIntervalMs,
132
+ });
133
+ }
134
+ export function resolveGitHubMonitorStopPollWaitMs(options) {
135
+ return resolveNumberSetting({
136
+ cli: options.cliStopPollWaitMs,
137
+ config: options.config?.github.monitor.stopPollWaitMs,
138
+ defaultValue: DEFAULT_ENSEMBLE_CONFIG.github.monitor.stopPollWaitMs,
139
+ });
140
+ }
141
+ //# sourceMappingURL=resolve-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-settings.js","sourceRoot":"","sources":["../../src/config/resolve-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { WorkerWorktreeMode } from '../worktree/worktree.js';
2
+ import type { BuiltinAcpPresetId } from '../acp/resolve-acp-spawn.js';
3
+ export interface EnsembleProfileConfig {
4
+ /** `--profile` 未指定時の team profile 参照(名前またはパス)。 */
5
+ default?: string;
6
+ }
7
+ export interface EnsembleConductorConfig {
8
+ /** conductor モデル id(`auto` は `default` と同義)。 */
9
+ model: string;
10
+ }
11
+ export interface EnsembleAcpConfig {
12
+ /** profile / worker に ACP 未指定時の built-in preset。 */
13
+ defaultPreset: BuiltinAcpPresetId;
14
+ }
15
+ export interface EnsembleSessionMaxTurnsConfig {
16
+ /** TTY 時の max-turns(0 = 無制限)。 */
17
+ tty: number;
18
+ /** 非 TTY 時の max-turns(0 = 無制限)。 */
19
+ nonTty: number;
20
+ }
21
+ export interface EnsembleSessionPostLoopConfig {
22
+ /** 自律ループ停止後にオペレータ入力を待つか(TTY 時のみ有効)。 */
23
+ wait: boolean;
24
+ }
25
+ export interface EnsembleSessionConfig {
26
+ worktree: WorkerWorktreeMode;
27
+ maxTurns: EnsembleSessionMaxTurnsConfig;
28
+ postLoop: EnsembleSessionPostLoopConfig;
29
+ }
30
+ export interface EnsembleGitHubAuthConfig {
31
+ /** GITHUB_TOKEN / GH_TOKEN が無いとき `gh auth token` を試すか(既定: true)。 */
32
+ allowGhAuthTokenFallback: boolean;
33
+ }
34
+ export interface EnsembleGitHubMonitorConfig {
35
+ enabled: boolean;
36
+ debounceMs: number;
37
+ pollIntervalMs: number;
38
+ activePollIntervalMs: number;
39
+ stopPollWaitMs: number;
40
+ }
41
+ export interface EnsembleGitHubConfig {
42
+ auth: EnsembleGitHubAuthConfig;
43
+ monitor: EnsembleGitHubMonitorConfig;
44
+ }
45
+ export interface EnsembleConfig {
46
+ profile: EnsembleProfileConfig;
47
+ conductor: EnsembleConductorConfig;
48
+ acp: EnsembleAcpConfig;
49
+ session: EnsembleSessionConfig;
50
+ github: EnsembleGitHubConfig;
51
+ }
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,aAAa,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,6BAA6B;IAC5C,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,uCAAuC;IACvC,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,6BAA6B,CAAC;IACxC,QAAQ,EAAE,6BAA6B,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,2BAA2B,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,SAAS,EAAE,uBAAuB,CAAC;IACnC,GAAG,EAAE,iBAAiB,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,MAAM,EAAE,oBAAoB,CAAC;CAC9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":""}
@@ -1,13 +1,15 @@
1
+ import type { EnsembleConfig } from '../config/types.js';
2
+ import type { GitHubClient } from './github-client.js';
1
3
  import type { GitHubMonitorCursor } from './github-monitor-cursor.js';
4
+ import { type GitHubMonitorPhaseError } from './github-monitor-error.js';
2
5
  import type { GitHubUpdateItem } from './github-update-types.js';
3
- import { runGh } from './run-gh.js';
4
6
  export interface FetchGitHubUpdatesInput {
5
7
  issueUrl: string;
6
8
  cursor: GitHubMonitorCursor;
7
9
  /** true のときカーソルのみ進め、更新は返さない(カーソル空の新規セッション初回 poll のみ)。 */
8
10
  initialCursorPoll?: boolean;
9
- cwd?: string;
10
- runGhFn?: typeof runGh;
11
+ ensembleConfig: EnsembleConfig;
12
+ githubClient?: GitHubClient;
11
13
  abortSignal?: AbortSignal;
12
14
  }
13
15
  export interface FetchGitHubUpdatesResult {
@@ -15,6 +17,17 @@ export interface FetchGitHubUpdatesResult {
15
17
  cursor: GitHubMonitorCursor;
16
18
  /** いずれかの PR で CI が pending。poll 間隔短縮の判断材料。 */
17
19
  hasPendingCi: boolean;
20
+ /** フェーズ単位で捕捉したエラー(poll 全体は継続)。 */
21
+ errors: GitHubMonitorPhaseError[];
22
+ }
23
+ interface GhCheckRun {
24
+ name: string;
25
+ status: string;
26
+ conclusion?: string | null;
27
+ detailsUrl?: string;
18
28
  }
19
29
  export declare function fetchGitHubUpdates(input: FetchGitHubUpdatesInput): Promise<FetchGitHubUpdatesResult>;
30
+ /** GraphQL `statusCheckRollup` の CheckRun / StatusContext を共通形に正規化する。 */
31
+ export declare function normalizeStatusCheckRollup(rollup: unknown): GhCheckRun[];
32
+ export {};
20
33
  //# sourceMappingURL=fetch-github-updates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-github-updates.d.ts","sourceRoot":"","sources":["../../src/github/fetch-github-updates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,4BAA4B,CAAC;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,EAAE,OAAO,CAAC;CACvB;AA0CD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CA+CnC"}
1
+ {"version":3,"file":"fetch-github-updates.d.ts","sourceRoot":"","sources":["../../src/github/fetch-github-updates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,4BAA4B,CAAC;AAEhG,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,MAAM,EAAE,uBAAuB,EAAE,CAAC;CACnC;AAmCD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAkEnC;AAuID,yEAAyE;AACzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,EAAE,CAaxE"}