heyio 3.3.5 → 4.0.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.
- package/CODE_OF_CONDUCT.md +83 -0
- package/LICENSE +21 -0
- package/README.md +203 -151
- package/dist/daemon/cli.js +7153 -0
- package/dist/daemon/index.js +6421 -0
- package/dist/web/assets/index-CbptHIYU.js +520 -0
- package/{public → dist/web}/index.html +1 -1
- package/package.json +45 -48
- package/dist/api/middleware/auth.d.ts +0 -14
- package/dist/api/middleware/auth.d.ts.map +0 -1
- package/dist/api/middleware/auth.js +0 -130
- package/dist/api/middleware/auth.js.map +0 -1
- package/dist/api/notifications.d.ts +0 -14
- package/dist/api/notifications.d.ts.map +0 -1
- package/dist/api/notifications.js +0 -114
- package/dist/api/notifications.js.map +0 -1
- package/dist/api/routes/activity.d.ts +0 -3
- package/dist/api/routes/activity.d.ts.map +0 -1
- package/dist/api/routes/activity.js +0 -28
- package/dist/api/routes/activity.js.map +0 -1
- package/dist/api/routes/attachments.d.ts +0 -3
- package/dist/api/routes/attachments.d.ts.map +0 -1
- package/dist/api/routes/attachments.js +0 -83
- package/dist/api/routes/attachments.js.map +0 -1
- package/dist/api/routes/config.d.ts +0 -3
- package/dist/api/routes/config.d.ts.map +0 -1
- package/dist/api/routes/config.js +0 -107
- package/dist/api/routes/config.js.map +0 -1
- package/dist/api/routes/conversations.d.ts +0 -3
- package/dist/api/routes/conversations.d.ts.map +0 -1
- package/dist/api/routes/conversations.js +0 -25
- package/dist/api/routes/conversations.js.map +0 -1
- package/dist/api/routes/health.d.ts +0 -3
- package/dist/api/routes/health.d.ts.map +0 -1
- package/dist/api/routes/health.js +0 -39
- package/dist/api/routes/health.js.map +0 -1
- package/dist/api/routes/inbox.d.ts +0 -3
- package/dist/api/routes/inbox.d.ts.map +0 -1
- package/dist/api/routes/inbox.js +0 -139
- package/dist/api/routes/inbox.js.map +0 -1
- package/dist/api/routes/schedules.d.ts +0 -3
- package/dist/api/routes/schedules.d.ts.map +0 -1
- package/dist/api/routes/schedules.js +0 -116
- package/dist/api/routes/schedules.js.map +0 -1
- package/dist/api/routes/skills.d.ts +0 -2
- package/dist/api/routes/skills.d.ts.map +0 -1
- package/dist/api/routes/skills.js +0 -127
- package/dist/api/routes/skills.js.map +0 -1
- package/dist/api/routes/squads.d.ts +0 -3
- package/dist/api/routes/squads.d.ts.map +0 -1
- package/dist/api/routes/squads.js +0 -578
- package/dist/api/routes/squads.js.map +0 -1
- package/dist/api/routes/usage.d.ts +0 -3
- package/dist/api/routes/usage.d.ts.map +0 -1
- package/dist/api/routes/usage.js +0 -55
- package/dist/api/routes/usage.js.map +0 -1
- package/dist/api/routes/wiki.d.ts +0 -2
- package/dist/api/routes/wiki.d.ts.map +0 -1
- package/dist/api/routes/wiki.js +0 -75
- package/dist/api/routes/wiki.js.map +0 -1
- package/dist/api/server.d.ts +0 -7
- package/dist/api/server.d.ts.map +0 -1
- package/dist/api/server.js +0 -183
- package/dist/api/server.js.map +0 -1
- package/dist/config.d.ts +0 -3
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -3
- package/dist/config.js.map +0 -1
- package/dist/copilot/client.d.ts +0 -5
- package/dist/copilot/client.d.ts.map +0 -1
- package/dist/copilot/client.js +0 -38
- package/dist/copilot/client.js.map +0 -1
- package/dist/copilot/health-monitor.d.ts +0 -14
- package/dist/copilot/health-monitor.d.ts.map +0 -1
- package/dist/copilot/health-monitor.js +0 -70
- package/dist/copilot/health-monitor.js.map +0 -1
- package/dist/copilot/orchestrator.d.ts +0 -5
- package/dist/copilot/orchestrator.d.ts.map +0 -1
- package/dist/copilot/orchestrator.js +0 -227
- package/dist/copilot/orchestrator.js.map +0 -1
- package/dist/copilot/tools.d.ts +0 -80
- package/dist/copilot/tools.d.ts.map +0 -1
- package/dist/copilot/tools.js +0 -1067
- package/dist/copilot/tools.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -94
- package/dist/index.js.map +0 -1
- package/dist/logging/logger.d.ts +0 -6
- package/dist/logging/logger.d.ts.map +0 -1
- package/dist/logging/logger.js +0 -33
- package/dist/logging/logger.js.map +0 -1
- package/dist/models/index.d.ts +0 -6
- package/dist/models/index.d.ts.map +0 -1
- package/dist/models/index.js +0 -4
- package/dist/models/index.js.map +0 -1
- package/dist/models/pricing.d.ts +0 -25
- package/dist/models/pricing.d.ts.map +0 -1
- package/dist/models/pricing.js +0 -96
- package/dist/models/pricing.js.map +0 -1
- package/dist/models/registry.d.ts +0 -34
- package/dist/models/registry.d.ts.map +0 -1
- package/dist/models/registry.js +0 -109
- package/dist/models/registry.js.map +0 -1
- package/dist/models/token-tracker.d.ts +0 -41
- package/dist/models/token-tracker.d.ts.map +0 -1
- package/dist/models/token-tracker.js +0 -103
- package/dist/models/token-tracker.js.map +0 -1
- package/dist/scheduler/engine.d.ts +0 -12
- package/dist/scheduler/engine.d.ts.map +0 -1
- package/dist/scheduler/engine.js +0 -128
- package/dist/scheduler/engine.js.map +0 -1
- package/dist/skills/discover.d.ts +0 -22
- package/dist/skills/discover.d.ts.map +0 -1
- package/dist/skills/discover.js +0 -228
- package/dist/skills/discover.js.map +0 -1
- package/dist/skills/index.d.ts +0 -5
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -3
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/store.d.ts +0 -56
- package/dist/skills/store.d.ts.map +0 -1
- package/dist/skills/store.js +0 -154
- package/dist/skills/store.js.map +0 -1
- package/dist/squad/agent.d.ts +0 -65
- package/dist/squad/agent.d.ts.map +0 -1
- package/dist/squad/agent.js +0 -544
- package/dist/squad/agent.js.map +0 -1
- package/dist/squad/autonomy.d.ts +0 -16
- package/dist/squad/autonomy.d.ts.map +0 -1
- package/dist/squad/autonomy.js +0 -63
- package/dist/squad/autonomy.js.map +0 -1
- package/dist/squad/event-bus.d.ts +0 -22
- package/dist/squad/event-bus.d.ts.map +0 -1
- package/dist/squad/event-bus.js +0 -56
- package/dist/squad/event-bus.js.map +0 -1
- package/dist/squad/execution/index.d.ts +0 -14
- package/dist/squad/execution/index.d.ts.map +0 -1
- package/dist/squad/execution/index.js +0 -8
- package/dist/squad/execution/index.js.map +0 -1
- package/dist/squad/execution/instance.d.ts +0 -45
- package/dist/squad/execution/instance.d.ts.map +0 -1
- package/dist/squad/execution/instance.js +0 -171
- package/dist/squad/execution/instance.js.map +0 -1
- package/dist/squad/execution/planning.d.ts +0 -20
- package/dist/squad/execution/planning.d.ts.map +0 -1
- package/dist/squad/execution/planning.js +0 -62
- package/dist/squad/execution/planning.js.map +0 -1
- package/dist/squad/execution/pr.d.ts +0 -15
- package/dist/squad/execution/pr.d.ts.map +0 -1
- package/dist/squad/execution/pr.js +0 -109
- package/dist/squad/execution/pr.js.map +0 -1
- package/dist/squad/execution/review.d.ts +0 -21
- package/dist/squad/execution/review.d.ts.map +0 -1
- package/dist/squad/execution/review.js +0 -151
- package/dist/squad/execution/review.js.map +0 -1
- package/dist/squad/execution/runner.d.ts +0 -52
- package/dist/squad/execution/runner.d.ts.map +0 -1
- package/dist/squad/execution/runner.js +0 -93
- package/dist/squad/execution/runner.js.map +0 -1
- package/dist/squad/execution/tasks.d.ts +0 -22
- package/dist/squad/execution/tasks.d.ts.map +0 -1
- package/dist/squad/execution/tasks.js +0 -108
- package/dist/squad/execution/tasks.js.map +0 -1
- package/dist/squad/execution/worktree.d.ts +0 -27
- package/dist/squad/execution/worktree.d.ts.map +0 -1
- package/dist/squad/execution/worktree.js +0 -141
- package/dist/squad/execution/worktree.js.map +0 -1
- package/dist/squad/hiring.d.ts +0 -57
- package/dist/squad/hiring.d.ts.map +0 -1
- package/dist/squad/hiring.js +0 -588
- package/dist/squad/hiring.js.map +0 -1
- package/dist/squad/index.d.ts +0 -8
- package/dist/squad/index.d.ts.map +0 -1
- package/dist/squad/index.js +0 -6
- package/dist/squad/index.js.map +0 -1
- package/dist/squad/manager.d.ts +0 -58
- package/dist/squad/manager.d.ts.map +0 -1
- package/dist/squad/manager.js +0 -351
- package/dist/squad/manager.js.map +0 -1
- package/dist/squad/model-selector.d.ts +0 -29
- package/dist/squad/model-selector.d.ts.map +0 -1
- package/dist/squad/model-selector.js +0 -64
- package/dist/squad/model-selector.js.map +0 -1
- package/dist/squad/name-generator.d.ts +0 -16
- package/dist/squad/name-generator.d.ts.map +0 -1
- package/dist/squad/name-generator.js +0 -111
- package/dist/squad/name-generator.js.map +0 -1
- package/dist/squad/roles/templates.d.ts +0 -7
- package/dist/squad/roles/templates.d.ts.map +0 -1
- package/dist/squad/roles/templates.js +0 -104
- package/dist/squad/roles/templates.js.map +0 -1
- package/dist/squad/skill-parser.d.ts +0 -36
- package/dist/squad/skill-parser.d.ts.map +0 -1
- package/dist/squad/skill-parser.js +0 -90
- package/dist/squad/skill-parser.js.map +0 -1
- package/dist/squad/source-resolver.d.ts +0 -20
- package/dist/squad/source-resolver.d.ts.map +0 -1
- package/dist/squad/source-resolver.js +0 -51
- package/dist/squad/source-resolver.js.map +0 -1
- package/dist/store/activity.d.ts +0 -51
- package/dist/store/activity.d.ts.map +0 -1
- package/dist/store/activity.js +0 -197
- package/dist/store/activity.js.map +0 -1
- package/dist/store/conversations.d.ts +0 -25
- package/dist/store/conversations.d.ts.map +0 -1
- package/dist/store/conversations.js +0 -76
- package/dist/store/conversations.js.map +0 -1
- package/dist/store/db.d.ts +0 -5
- package/dist/store/db.d.ts.map +0 -1
- package/dist/store/db.js +0 -290
- package/dist/store/db.js.map +0 -1
- package/dist/store/inbox.d.ts +0 -67
- package/dist/store/inbox.d.ts.map +0 -1
- package/dist/store/inbox.js +0 -192
- package/dist/store/inbox.js.map +0 -1
- package/dist/store/schedules.d.ts +0 -53
- package/dist/store/schedules.d.ts.map +0 -1
- package/dist/store/schedules.js +0 -160
- package/dist/store/schedules.js.map +0 -1
- package/dist/wiki/index.d.ts +0 -3
- package/dist/wiki/index.d.ts.map +0 -1
- package/dist/wiki/index.js +0 -2
- package/dist/wiki/index.js.map +0 -1
- package/dist/wiki/store.d.ts +0 -81
- package/dist/wiki/store.d.ts.map +0 -1
- package/dist/wiki/store.js +0 -270
- package/dist/wiki/store.js.map +0 -1
- package/node_modules/@io/shared/dist/config.d.ts +0 -26
- package/node_modules/@io/shared/dist/config.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/config.js +0 -53
- package/node_modules/@io/shared/dist/config.js.map +0 -1
- package/node_modules/@io/shared/dist/constants.d.ts +0 -19
- package/node_modules/@io/shared/dist/constants.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/constants.js +0 -51
- package/node_modules/@io/shared/dist/constants.js.map +0 -1
- package/node_modules/@io/shared/dist/index.d.ts +0 -12
- package/node_modules/@io/shared/dist/index.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/index.js +0 -3
- package/node_modules/@io/shared/dist/index.js.map +0 -1
- package/node_modules/@io/shared/dist/types/agents.d.ts +0 -3
- package/node_modules/@io/shared/dist/types/agents.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/types/agents.js +0 -2
- package/node_modules/@io/shared/dist/types/agents.js.map +0 -1
- package/node_modules/@io/shared/dist/types/api.d.ts +0 -33
- package/node_modules/@io/shared/dist/types/api.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/types/api.js +0 -2
- package/node_modules/@io/shared/dist/types/api.js.map +0 -1
- package/node_modules/@io/shared/dist/types/attachments.d.ts +0 -10
- package/node_modules/@io/shared/dist/types/attachments.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/types/attachments.js +0 -2
- package/node_modules/@io/shared/dist/types/attachments.js.map +0 -1
- package/node_modules/@io/shared/dist/types/events.d.ts +0 -44
- package/node_modules/@io/shared/dist/types/events.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/types/events.js +0 -2
- package/node_modules/@io/shared/dist/types/events.js.map +0 -1
- package/node_modules/@io/shared/dist/types/history.d.ts +0 -33
- package/node_modules/@io/shared/dist/types/history.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/types/history.js +0 -2
- package/node_modules/@io/shared/dist/types/history.js.map +0 -1
- package/node_modules/@io/shared/dist/types/messages.d.ts +0 -15
- package/node_modules/@io/shared/dist/types/messages.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/types/messages.js +0 -2
- package/node_modules/@io/shared/dist/types/messages.js.map +0 -1
- package/node_modules/@io/shared/dist/types/squads.d.ts +0 -46
- package/node_modules/@io/shared/dist/types/squads.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/types/squads.js +0 -2
- package/node_modules/@io/shared/dist/types/squads.js.map +0 -1
- package/node_modules/@io/shared/dist/types/tokens.d.ts +0 -19
- package/node_modules/@io/shared/dist/types/tokens.d.ts.map +0 -1
- package/node_modules/@io/shared/dist/types/tokens.js +0 -2
- package/node_modules/@io/shared/dist/types/tokens.js.map +0 -1
- package/node_modules/@io/shared/package.json +0 -18
- package/node_modules/@io/shared/src/config.ts +0 -85
- package/node_modules/@io/shared/src/constants.ts +0 -54
- package/node_modules/@io/shared/src/index.ts +0 -46
- package/node_modules/@io/shared/src/types/agents.ts +0 -3
- package/node_modules/@io/shared/src/types/api.ts +0 -35
- package/node_modules/@io/shared/src/types/attachments.ts +0 -9
- package/node_modules/@io/shared/src/types/events.ts +0 -86
- package/node_modules/@io/shared/src/types/history.ts +0 -37
- package/node_modules/@io/shared/src/types/messages.ts +0 -15
- package/node_modules/@io/shared/src/types/squads.ts +0 -56
- package/node_modules/@io/shared/src/types/tokens.ts +0 -19
- package/node_modules/@io/shared/tsconfig.json +0 -9
- package/node_modules/@io/shared/tsconfig.tsbuildinfo +0 -1
- package/public/assets/index-BywBQCtu.js +0 -510
- package/public/assets/index-BywBQCtu.js.map +0 -1
- /package/{public → dist/web}/assets/index-B6F0UZkW.css +0 -0
package/dist/squad/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { EventBus, getEventBus } from './event-bus.js';
|
|
2
|
-
export { parseSkillFile, parseSkillContent, compileSystemPrompt } from './skill-parser.js';
|
|
3
|
-
export type { SkillDefinition } from './skill-parser.js';
|
|
4
|
-
export { Agent } from './agent.js';
|
|
5
|
-
export type { AgentConfig } from './agent.js';
|
|
6
|
-
export { createSquad, addMember, listSquads, getSquadByName, getSquadMembers, disbandSquad, bootSquad, getSquadRuntime, delegateToSquad, } from './manager.js';
|
|
7
|
-
export { proposeSquad, confirmSquad, addMemberToExistingSquad, getProposal, getProposalByRepo, deleteProposal, } from './hiring.js';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/squad/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACN,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,EACf,YAAY,EACZ,SAAS,EACT,eAAe,EACf,eAAe,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,cAAc,GACd,MAAM,aAAa,CAAC"}
|
package/dist/squad/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { EventBus, getEventBus } from './event-bus.js';
|
|
2
|
-
export { parseSkillFile, parseSkillContent, compileSystemPrompt } from './skill-parser.js';
|
|
3
|
-
export { Agent } from './agent.js';
|
|
4
|
-
export { createSquad, addMember, listSquads, getSquadByName, getSquadMembers, disbandSquad, bootSquad, getSquadRuntime, delegateToSquad, } from './manager.js';
|
|
5
|
-
export { proposeSquad, confirmSquad, addMemberToExistingSquad, getProposal, getProposalByRepo, deleteProposal, } from './hiring.js';
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/dist/squad/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/squad/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EACN,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,EACf,YAAY,EACZ,SAAS,EACT,eAAe,EACf,eAAe,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,cAAc,GACd,MAAM,aAAa,CAAC"}
|
package/dist/squad/manager.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { type Squad, type SquadMember } from '@io/shared';
|
|
2
|
-
import type { AutonomyTier } from '@io/shared';
|
|
3
|
-
import { Agent } from './agent.js';
|
|
4
|
-
import { type SkillDefinition } from './skill-parser.js';
|
|
5
|
-
export interface SquadRuntime {
|
|
6
|
-
squad: Squad;
|
|
7
|
-
members: Map<string, Agent>;
|
|
8
|
-
skills: Map<string, SkillDefinition>;
|
|
9
|
-
}
|
|
10
|
-
/** Create a new squad in the database and return it */
|
|
11
|
-
export declare function createSquad(params: {
|
|
12
|
-
name: string;
|
|
13
|
-
projectPath: string;
|
|
14
|
-
repoUrl?: string;
|
|
15
|
-
universe?: string;
|
|
16
|
-
autonomyTier?: AutonomyTier;
|
|
17
|
-
}): Promise<Squad>;
|
|
18
|
-
/** Add a member to a squad */
|
|
19
|
-
export declare function addMember(params: {
|
|
20
|
-
squadId: string;
|
|
21
|
-
skill: SkillDefinition;
|
|
22
|
-
displayName: string;
|
|
23
|
-
persona?: string;
|
|
24
|
-
isVetoMember?: boolean;
|
|
25
|
-
}): Promise<SquadMember>;
|
|
26
|
-
/** List all squads */
|
|
27
|
-
export declare function listSquads(): Promise<Squad[]>;
|
|
28
|
-
/** Get a squad by name */
|
|
29
|
-
export declare function getSquadByName(name: string): Promise<Squad | null>;
|
|
30
|
-
/** Get squad members */
|
|
31
|
-
export declare function getSquadMembers(squadId: string): Promise<SquadMember[]>;
|
|
32
|
-
/** Disband a squad — soft-delete that preserves data for usage reports */
|
|
33
|
-
export declare function disbandSquad(squadId: string): Promise<void>;
|
|
34
|
-
/** Rename a squad member's display name */
|
|
35
|
-
export declare function renameMember(memberId: string, newDisplayName: string): Promise<void>;
|
|
36
|
-
/** Remove (retire) a member from a squad */
|
|
37
|
-
export declare function removeMember(memberId: string, squadId: string): Promise<void>;
|
|
38
|
-
/** Find a squad member by role name or display name */
|
|
39
|
-
export declare function findMember(squadId: string, identifier: string): Promise<SquadMember | null>;
|
|
40
|
-
/** Retheme a squad with a new universe — updates display names and personas */
|
|
41
|
-
export declare function rethemeSquad(squadId: string, newUniverse: string, assignments: {
|
|
42
|
-
role: string;
|
|
43
|
-
displayName: string;
|
|
44
|
-
persona: string;
|
|
45
|
-
}[]): Promise<void>;
|
|
46
|
-
/** Get squad by ID */
|
|
47
|
-
export declare function getSquadById(squadId: string): Promise<Squad | null>;
|
|
48
|
-
/** Boot a squad's agents (creates sessions for each member) */
|
|
49
|
-
export declare function bootSquad(squad: Squad): Promise<SquadRuntime>;
|
|
50
|
-
/** Get a running squad's runtime */
|
|
51
|
-
export declare function getSquadRuntime(squadId: string): SquadRuntime | undefined;
|
|
52
|
-
/** Delegate a message to a squad's team lead */
|
|
53
|
-
export declare function delegateToSquad(squadId: string, message: string, attachments?: Array<{
|
|
54
|
-
type: 'file';
|
|
55
|
-
path: string;
|
|
56
|
-
displayName?: string;
|
|
57
|
-
}>): Promise<string>;
|
|
58
|
-
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/squad/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/squad/manager.js
DELETED
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
import { AUTONOMY_TIERS, SQUAD_COLORS } from '@io/shared';
|
|
2
|
-
import { createChildLogger } from '../logging/logger.js';
|
|
3
|
-
import { getDatabase } from '../store/db.js';
|
|
4
|
-
import { Agent } from './agent.js';
|
|
5
|
-
import { getEventBus } from './event-bus.js';
|
|
6
|
-
import { selectModelForRole } from './model-selector.js';
|
|
7
|
-
import { parseSkillContent, parseSkillFile } from './skill-parser.js';
|
|
8
|
-
const logger = () => createChildLogger('squad-manager');
|
|
9
|
-
// Active squads keyed by squad ID
|
|
10
|
-
const activeSquads = new Map();
|
|
11
|
-
/** Create a new squad in the database and return it */
|
|
12
|
-
export async function createSquad(params) {
|
|
13
|
-
const db = getDatabase();
|
|
14
|
-
const id = crypto.randomUUID();
|
|
15
|
-
const tier = params.autonomyTier ?? 'medium';
|
|
16
|
-
const autonomyConfig = AUTONOMY_TIERS[tier];
|
|
17
|
-
// Pick the next color from the palette based on existing squad count
|
|
18
|
-
const countResult = await db.execute('SELECT COUNT(*) as cnt FROM squads');
|
|
19
|
-
const existingCount = countResult.rows[0]?.cnt ?? 0;
|
|
20
|
-
const color = SQUAD_COLORS[existingCount % SQUAD_COLORS.length];
|
|
21
|
-
await db.execute({
|
|
22
|
-
sql: `INSERT INTO squads (id, name, project_path, repo_url, universe, autonomy_tier, autonomy_config, color, status)
|
|
23
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'active')`,
|
|
24
|
-
args: [
|
|
25
|
-
id,
|
|
26
|
-
params.name,
|
|
27
|
-
params.projectPath,
|
|
28
|
-
params.repoUrl ?? null,
|
|
29
|
-
params.universe ?? null,
|
|
30
|
-
tier,
|
|
31
|
-
JSON.stringify(autonomyConfig),
|
|
32
|
-
color,
|
|
33
|
-
],
|
|
34
|
-
});
|
|
35
|
-
const squad = {
|
|
36
|
-
id,
|
|
37
|
-
name: params.name,
|
|
38
|
-
projectPath: params.projectPath,
|
|
39
|
-
repoUrl: params.repoUrl,
|
|
40
|
-
universe: params.universe,
|
|
41
|
-
color,
|
|
42
|
-
autonomyTier: tier,
|
|
43
|
-
autonomyConfig,
|
|
44
|
-
status: 'active',
|
|
45
|
-
createdAt: new Date(),
|
|
46
|
-
};
|
|
47
|
-
await getEventBus().emit({
|
|
48
|
-
id: crypto.randomUUID(),
|
|
49
|
-
timestamp: new Date(),
|
|
50
|
-
type: 'squad:created',
|
|
51
|
-
squadId: id,
|
|
52
|
-
squadName: params.name,
|
|
53
|
-
data: { projectPath: params.projectPath, tier },
|
|
54
|
-
});
|
|
55
|
-
logger().info({ squadId: id, name: params.name }, 'Squad created');
|
|
56
|
-
return squad;
|
|
57
|
-
}
|
|
58
|
-
/** Add a member to a squad */
|
|
59
|
-
export async function addMember(params) {
|
|
60
|
-
const db = getDatabase();
|
|
61
|
-
const id = crypto.randomUUID();
|
|
62
|
-
await db.execute({
|
|
63
|
-
sql: `INSERT INTO squad_members (id, squad_id, display_name, role_name, persona, skill_file_path, tools_allowed, is_veto_member, status)
|
|
64
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'active')`,
|
|
65
|
-
args: [
|
|
66
|
-
id,
|
|
67
|
-
params.squadId,
|
|
68
|
-
params.displayName,
|
|
69
|
-
params.skill.role,
|
|
70
|
-
params.persona ?? null,
|
|
71
|
-
params.skill.filePath,
|
|
72
|
-
JSON.stringify(params.skill.tools),
|
|
73
|
-
params.isVetoMember ? 1 : 0,
|
|
74
|
-
],
|
|
75
|
-
});
|
|
76
|
-
const member = {
|
|
77
|
-
id,
|
|
78
|
-
squadId: params.squadId,
|
|
79
|
-
displayName: params.displayName,
|
|
80
|
-
roleName: params.skill.role,
|
|
81
|
-
persona: params.persona,
|
|
82
|
-
skillFilePath: params.skill.filePath,
|
|
83
|
-
toolsAllowed: params.skill.tools,
|
|
84
|
-
isVetoMember: params.isVetoMember ?? false,
|
|
85
|
-
status: 'active',
|
|
86
|
-
createdAt: new Date(),
|
|
87
|
-
};
|
|
88
|
-
return member;
|
|
89
|
-
}
|
|
90
|
-
/** List all squads */
|
|
91
|
-
export async function listSquads() {
|
|
92
|
-
const db = getDatabase();
|
|
93
|
-
const result = await db.execute("SELECT * FROM squads WHERE status = 'active'");
|
|
94
|
-
return result.rows.map((row) => ({
|
|
95
|
-
id: row.id,
|
|
96
|
-
name: row.name,
|
|
97
|
-
projectPath: row.project_path,
|
|
98
|
-
repoUrl: row.repo_url || undefined,
|
|
99
|
-
universe: row.universe || undefined,
|
|
100
|
-
color: row.color || '#38bdf8',
|
|
101
|
-
autonomyTier: row.autonomy_tier,
|
|
102
|
-
autonomyConfig: JSON.parse(row.autonomy_config || '{}'),
|
|
103
|
-
status: row.status,
|
|
104
|
-
createdAt: new Date(row.created_at),
|
|
105
|
-
}));
|
|
106
|
-
}
|
|
107
|
-
/** Get a squad by name */
|
|
108
|
-
export async function getSquadByName(name) {
|
|
109
|
-
const db = getDatabase();
|
|
110
|
-
const result = await db.execute({
|
|
111
|
-
sql: "SELECT * FROM squads WHERE name = ? AND status = 'active'",
|
|
112
|
-
args: [name],
|
|
113
|
-
});
|
|
114
|
-
if (result.rows.length === 0)
|
|
115
|
-
return null;
|
|
116
|
-
const row = result.rows[0];
|
|
117
|
-
return {
|
|
118
|
-
id: row.id,
|
|
119
|
-
name: row.name,
|
|
120
|
-
projectPath: row.project_path,
|
|
121
|
-
repoUrl: row.repo_url || undefined,
|
|
122
|
-
universe: row.universe || undefined,
|
|
123
|
-
color: row.color || '#38bdf8',
|
|
124
|
-
autonomyTier: row.autonomy_tier,
|
|
125
|
-
autonomyConfig: JSON.parse(row.autonomy_config || '{}'),
|
|
126
|
-
status: row.status,
|
|
127
|
-
createdAt: new Date(row.created_at),
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
/** Get squad members */
|
|
131
|
-
export async function getSquadMembers(squadId) {
|
|
132
|
-
const db = getDatabase();
|
|
133
|
-
const result = await db.execute({
|
|
134
|
-
sql: "SELECT * FROM squad_members WHERE squad_id = ? AND status = 'active'",
|
|
135
|
-
args: [squadId],
|
|
136
|
-
});
|
|
137
|
-
return result.rows.map((row) => ({
|
|
138
|
-
id: row.id,
|
|
139
|
-
squadId: row.squad_id,
|
|
140
|
-
displayName: row.display_name || row.role_name,
|
|
141
|
-
roleName: row.role_name,
|
|
142
|
-
persona: row.persona || undefined,
|
|
143
|
-
skillFilePath: row.skill_file_path || undefined,
|
|
144
|
-
toolsAllowed: JSON.parse(row.tools_allowed || '[]'),
|
|
145
|
-
isVetoMember: Boolean(row.is_veto_member),
|
|
146
|
-
status: row.status,
|
|
147
|
-
createdAt: new Date(row.created_at),
|
|
148
|
-
}));
|
|
149
|
-
}
|
|
150
|
-
/** Disband a squad — soft-delete that preserves data for usage reports */
|
|
151
|
-
export async function disbandSquad(squadId) {
|
|
152
|
-
const db = getDatabase();
|
|
153
|
-
// Get squad name for disk cleanup and event
|
|
154
|
-
const squad = await getSquadById(squadId);
|
|
155
|
-
const squadName = squad?.name ?? '';
|
|
156
|
-
// Mark squad and members as disbanded/retired
|
|
157
|
-
await db.execute({
|
|
158
|
-
sql: "UPDATE squads SET status = 'disbanded' WHERE id = ?",
|
|
159
|
-
args: [squadId],
|
|
160
|
-
});
|
|
161
|
-
await db.execute({
|
|
162
|
-
sql: "UPDATE squad_members SET status = 'retired' WHERE squad_id = ?",
|
|
163
|
-
args: [squadId],
|
|
164
|
-
});
|
|
165
|
-
// Cancel schedules targeting this squad
|
|
166
|
-
await db.execute({
|
|
167
|
-
sql: "DELETE FROM schedules WHERE target_type = 'squad' AND target_id = ?",
|
|
168
|
-
args: [squadId],
|
|
169
|
-
});
|
|
170
|
-
// Auto-resolve pending inbox entries
|
|
171
|
-
await db.execute({
|
|
172
|
-
sql: "UPDATE inbox_entries SET status = 'dismissed', response = 'Squad was disbanded', resolved_at = CURRENT_TIMESTAMP WHERE squad_id = ? AND status IN ('unread', 'pending')",
|
|
173
|
-
args: [squadId],
|
|
174
|
-
});
|
|
175
|
-
// Destroy any running agents
|
|
176
|
-
const runtime = activeSquads.get(squadId);
|
|
177
|
-
if (runtime) {
|
|
178
|
-
for (const agent of runtime.members.values()) {
|
|
179
|
-
await agent.destroy().catch(() => { });
|
|
180
|
-
}
|
|
181
|
-
activeSquads.delete(squadId);
|
|
182
|
-
}
|
|
183
|
-
// Clean up disk artifacts (wiki folder + skill files)
|
|
184
|
-
if (squadName) {
|
|
185
|
-
const { rmSync, existsSync } = await import('node:fs');
|
|
186
|
-
const { join } = await import('node:path');
|
|
187
|
-
const { homedir } = await import('node:os');
|
|
188
|
-
const home = homedir();
|
|
189
|
-
const wikiDir = join(home, '.io', 'wiki', 'squads', squadName);
|
|
190
|
-
if (existsSync(wikiDir)) {
|
|
191
|
-
rmSync(wikiDir, { recursive: true, force: true });
|
|
192
|
-
}
|
|
193
|
-
const skillsDir = join(home, '.io', 'squads', squadName);
|
|
194
|
-
if (existsSync(skillsDir)) {
|
|
195
|
-
rmSync(skillsDir, { recursive: true, force: true });
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
await getEventBus().emit({
|
|
199
|
-
id: crypto.randomUUID(),
|
|
200
|
-
timestamp: new Date(),
|
|
201
|
-
type: 'squad:disbanded',
|
|
202
|
-
squadId,
|
|
203
|
-
squadName,
|
|
204
|
-
});
|
|
205
|
-
logger().info({ squadId, squadName }, 'Squad disbanded');
|
|
206
|
-
}
|
|
207
|
-
/** Rename a squad member's display name */
|
|
208
|
-
export async function renameMember(memberId, newDisplayName) {
|
|
209
|
-
const db = getDatabase();
|
|
210
|
-
await db.execute({
|
|
211
|
-
sql: 'UPDATE squad_members SET display_name = ? WHERE id = ?',
|
|
212
|
-
args: [newDisplayName, memberId],
|
|
213
|
-
});
|
|
214
|
-
logger().info({ memberId, newDisplayName }, 'Member renamed');
|
|
215
|
-
}
|
|
216
|
-
/** Remove (retire) a member from a squad */
|
|
217
|
-
export async function removeMember(memberId, squadId) {
|
|
218
|
-
const db = getDatabase();
|
|
219
|
-
await db.execute({
|
|
220
|
-
sql: "UPDATE squad_members SET status = 'retired' WHERE id = ?",
|
|
221
|
-
args: [memberId],
|
|
222
|
-
});
|
|
223
|
-
// Destroy running agent if squad is booted
|
|
224
|
-
const runtime = activeSquads.get(squadId);
|
|
225
|
-
if (runtime) {
|
|
226
|
-
// Find and remove the agent by member ID
|
|
227
|
-
for (const [role, agent] of runtime.members.entries()) {
|
|
228
|
-
const members = await getSquadMembers(squadId);
|
|
229
|
-
const member = members.find((m) => m.id === memberId);
|
|
230
|
-
if (member && member.roleName === role) {
|
|
231
|
-
await agent.destroy().catch(() => { });
|
|
232
|
-
runtime.members.delete(role);
|
|
233
|
-
break;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
logger().info({ memberId, squadId }, 'Member removed from squad');
|
|
238
|
-
}
|
|
239
|
-
/** Find a squad member by role name or display name */
|
|
240
|
-
export async function findMember(squadId, identifier) {
|
|
241
|
-
const members = await getSquadMembers(squadId);
|
|
242
|
-
return (members.find((m) => m.roleName.toLowerCase() === identifier.toLowerCase() ||
|
|
243
|
-
m.displayName.toLowerCase() === identifier.toLowerCase()) ?? null);
|
|
244
|
-
}
|
|
245
|
-
/** Retheme a squad with a new universe — updates display names and personas */
|
|
246
|
-
export async function rethemeSquad(squadId, newUniverse, assignments) {
|
|
247
|
-
const db = getDatabase();
|
|
248
|
-
// Update squad universe
|
|
249
|
-
await db.execute({
|
|
250
|
-
sql: 'UPDATE squads SET universe = ? WHERE id = ?',
|
|
251
|
-
args: [newUniverse, squadId],
|
|
252
|
-
});
|
|
253
|
-
// Update each member
|
|
254
|
-
for (const assignment of assignments) {
|
|
255
|
-
await db.execute({
|
|
256
|
-
sql: 'UPDATE squad_members SET display_name = ?, persona = ? WHERE squad_id = ? AND role_name = ?',
|
|
257
|
-
args: [assignment.displayName, assignment.persona, squadId, assignment.role],
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
// If squad is running, destroy and reboot agents
|
|
261
|
-
const runtime = activeSquads.get(squadId);
|
|
262
|
-
if (runtime) {
|
|
263
|
-
for (const agent of runtime.members.values()) {
|
|
264
|
-
await agent.destroy().catch(() => { });
|
|
265
|
-
}
|
|
266
|
-
activeSquads.delete(squadId);
|
|
267
|
-
// Reload squad data and reboot
|
|
268
|
-
const squad = await getSquadById(squadId);
|
|
269
|
-
if (squad) {
|
|
270
|
-
await bootSquad(squad);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
logger().info({ squadId, universe: newUniverse }, 'Squad rethemed');
|
|
274
|
-
}
|
|
275
|
-
/** Get squad by ID */
|
|
276
|
-
export async function getSquadById(squadId) {
|
|
277
|
-
const db = getDatabase();
|
|
278
|
-
const result = await db.execute({
|
|
279
|
-
sql: 'SELECT * FROM squads WHERE id = ?',
|
|
280
|
-
args: [squadId],
|
|
281
|
-
});
|
|
282
|
-
if (result.rows.length === 0)
|
|
283
|
-
return null;
|
|
284
|
-
const row = result.rows[0];
|
|
285
|
-
return {
|
|
286
|
-
id: row.id,
|
|
287
|
-
name: row.name,
|
|
288
|
-
projectPath: row.project_path,
|
|
289
|
-
repoUrl: row.repo_url || undefined,
|
|
290
|
-
universe: row.universe || undefined,
|
|
291
|
-
color: row.color || '#38bdf8',
|
|
292
|
-
autonomyTier: row.autonomy_tier,
|
|
293
|
-
autonomyConfig: JSON.parse(row.autonomy_config || '{}'),
|
|
294
|
-
status: row.status,
|
|
295
|
-
createdAt: new Date(row.created_at),
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
/** Boot a squad's agents (creates sessions for each member) */
|
|
299
|
-
export async function bootSquad(squad) {
|
|
300
|
-
const members = await getSquadMembers(squad.id);
|
|
301
|
-
const runtime = {
|
|
302
|
-
squad,
|
|
303
|
-
members: new Map(),
|
|
304
|
-
skills: new Map(),
|
|
305
|
-
};
|
|
306
|
-
const squadContext = `Project: ${squad.name}\nPath: ${squad.projectPath}${squad.repoUrl ? `\nRepo: ${squad.repoUrl}` : ''}`;
|
|
307
|
-
for (const member of members) {
|
|
308
|
-
let skill;
|
|
309
|
-
if (member.skillFilePath) {
|
|
310
|
-
skill = parseSkillFile(member.skillFilePath);
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
// Fallback: generate a minimal skill
|
|
314
|
-
skill = parseSkillContent(`---\nrole: ${member.roleName}\ntools: []\nveto: false\n---\nYou are the ${member.roleName}.`);
|
|
315
|
-
}
|
|
316
|
-
runtime.skills.set(member.roleName, skill);
|
|
317
|
-
const agent = new Agent({
|
|
318
|
-
skill,
|
|
319
|
-
squadId: squad.id,
|
|
320
|
-
squadName: squad.name,
|
|
321
|
-
model: selectModelForRole(member.roleName, 'meeting'),
|
|
322
|
-
identity: {
|
|
323
|
-
displayName: member.displayName,
|
|
324
|
-
persona: member.persona,
|
|
325
|
-
universe: squad.universe,
|
|
326
|
-
},
|
|
327
|
-
});
|
|
328
|
-
await agent.init(squadContext);
|
|
329
|
-
runtime.members.set(member.roleName, agent);
|
|
330
|
-
}
|
|
331
|
-
activeSquads.set(squad.id, runtime);
|
|
332
|
-
logger().info({ squadId: squad.id, memberCount: members.length }, 'Squad booted');
|
|
333
|
-
return runtime;
|
|
334
|
-
}
|
|
335
|
-
/** Get a running squad's runtime */
|
|
336
|
-
export function getSquadRuntime(squadId) {
|
|
337
|
-
return activeSquads.get(squadId);
|
|
338
|
-
}
|
|
339
|
-
/** Delegate a message to a squad's team lead */
|
|
340
|
-
export async function delegateToSquad(squadId, message, attachments) {
|
|
341
|
-
const runtime = activeSquads.get(squadId);
|
|
342
|
-
if (!runtime) {
|
|
343
|
-
throw new Error(`Squad ${squadId} is not running`);
|
|
344
|
-
}
|
|
345
|
-
const teamLead = runtime.members.get('technical-pm');
|
|
346
|
-
if (!teamLead) {
|
|
347
|
-
throw new Error(`Squad ${squadId} has no team lead`);
|
|
348
|
-
}
|
|
349
|
-
return teamLead.send(message, attachments);
|
|
350
|
-
}
|
|
351
|
-
//# sourceMappingURL=manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/squad/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model selection logic for squad agents.
|
|
3
|
-
*
|
|
4
|
-
* Strategy:
|
|
5
|
-
* - Fixed roles (scribe, technical-pm) have predetermined tiers
|
|
6
|
-
* - Dynamic roles get their tier from the team lead's task assignment
|
|
7
|
-
* - On retry after failed review, tier automatically escalates
|
|
8
|
-
*/
|
|
9
|
-
import { type ModelTier } from '../models/registry.js';
|
|
10
|
-
export type { ModelTier } from '../models/registry.js';
|
|
11
|
-
/**
|
|
12
|
-
* Select model for a fixed-role agent based on their role and current phase.
|
|
13
|
-
*/
|
|
14
|
-
export declare function selectModelForRole(role: string, phase: 'meeting' | 'task' | 'review'): string;
|
|
15
|
-
/**
|
|
16
|
-
* Select model for task execution based on team-lead-assigned tier and retry count.
|
|
17
|
-
* Each retry bumps the tier up one level (fast→standard→reasoning).
|
|
18
|
-
*/
|
|
19
|
-
export declare function selectModelForTask(tierHint: ModelTier | undefined, retryCount: number): string;
|
|
20
|
-
/**
|
|
21
|
-
* Escalate tier based on retry count.
|
|
22
|
-
* Each retry bumps up one tier. Max is 'reasoning'.
|
|
23
|
-
*/
|
|
24
|
-
export declare function tierForRetry(baseTier: ModelTier, retries: number): ModelTier;
|
|
25
|
-
/**
|
|
26
|
-
* Parse a MODEL_TIER string into a validated ModelTier value.
|
|
27
|
-
*/
|
|
28
|
-
export declare function parseTierHint(hint: string | undefined): ModelTier | undefined;
|
|
29
|
-
//# sourceMappingURL=model-selector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../src/squad/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,uBAAuB,CAAC;AAEvE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAOvD;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAClC,MAAM,CAoBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAC/B,UAAU,EAAE,MAAM,GAChB,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAI5E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAO7E"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model selection logic for squad agents.
|
|
3
|
-
*
|
|
4
|
-
* Strategy:
|
|
5
|
-
* - Fixed roles (scribe, technical-pm) have predetermined tiers
|
|
6
|
-
* - Dynamic roles get their tier from the team lead's task assignment
|
|
7
|
-
* - On retry after failed review, tier automatically escalates
|
|
8
|
-
*/
|
|
9
|
-
import { DEFAULT_MODELS } from '../models/registry.js';
|
|
10
|
-
/**
|
|
11
|
-
* Tier escalation order: fast → standard → reasoning
|
|
12
|
-
*/
|
|
13
|
-
const TIER_ORDER = ['fast', 'standard', 'reasoning'];
|
|
14
|
-
/**
|
|
15
|
-
* Select model for a fixed-role agent based on their role and current phase.
|
|
16
|
-
*/
|
|
17
|
-
export function selectModelForRole(role, phase) {
|
|
18
|
-
const normalizedRole = role.toLowerCase().replace(/[\s_-]+/g, '');
|
|
19
|
-
// Scribe always uses fast tier
|
|
20
|
-
if (normalizedRole === 'scribe') {
|
|
21
|
-
return DEFAULT_MODELS.fast;
|
|
22
|
-
}
|
|
23
|
-
// Technical PM: standard for meetings/tasks, reasoning for final review
|
|
24
|
-
if (normalizedRole === 'technicalpm' || normalizedRole === 'teamlead') {
|
|
25
|
-
return phase === 'review' ? DEFAULT_MODELS.reasoning : DEFAULT_MODELS.standard;
|
|
26
|
-
}
|
|
27
|
-
// All other roles default to standard during meetings
|
|
28
|
-
if (phase === 'meeting') {
|
|
29
|
-
return DEFAULT_MODELS.standard;
|
|
30
|
-
}
|
|
31
|
-
// For task execution, return standard as default (team lead can override)
|
|
32
|
-
return DEFAULT_MODELS.standard;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Select model for task execution based on team-lead-assigned tier and retry count.
|
|
36
|
-
* Each retry bumps the tier up one level (fast→standard→reasoning).
|
|
37
|
-
*/
|
|
38
|
-
export function selectModelForTask(tierHint, retryCount) {
|
|
39
|
-
const baseTier = tierHint ?? 'standard';
|
|
40
|
-
const escalatedTier = tierForRetry(baseTier, retryCount);
|
|
41
|
-
return DEFAULT_MODELS[escalatedTier];
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Escalate tier based on retry count.
|
|
45
|
-
* Each retry bumps up one tier. Max is 'reasoning'.
|
|
46
|
-
*/
|
|
47
|
-
export function tierForRetry(baseTier, retries) {
|
|
48
|
-
const baseIndex = TIER_ORDER.indexOf(baseTier);
|
|
49
|
-
const escalatedIndex = Math.min(baseIndex + retries, TIER_ORDER.length - 1);
|
|
50
|
-
return TIER_ORDER[escalatedIndex];
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Parse a MODEL_TIER string into a validated ModelTier value.
|
|
54
|
-
*/
|
|
55
|
-
export function parseTierHint(hint) {
|
|
56
|
-
if (!hint)
|
|
57
|
-
return undefined;
|
|
58
|
-
const normalized = hint.toLowerCase().trim();
|
|
59
|
-
if (normalized === 'fast' || normalized === 'standard' || normalized === 'reasoning') {
|
|
60
|
-
return normalized;
|
|
61
|
-
}
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=model-selector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../src/squad/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAkB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvE;;GAEG;AACH,MAAM,UAAU,GAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,kBAAkB,CACjC,IAAY,EACZ,KAAoC;IAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAElE,+BAA+B;IAC/B,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,cAAc,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,wEAAwE;IACxE,IAAI,cAAc,KAAK,aAAa,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;QACvE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;IAChF,CAAC;IAED,sDAAsD;IACtD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,cAAc,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,0EAA0E;IAC1E,OAAO,cAAc,CAAC,QAAQ,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CACjC,QAA+B,EAC/B,UAAkB;IAElB,MAAM,QAAQ,GAAG,QAAQ,IAAI,UAAU,CAAC;IACxC,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,OAAO,cAAc,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAmB,EAAE,OAAe;IAChE,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO,UAAU,CAAC,cAAc,CAAc,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAwB;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QACtF,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface NameAssignment {
|
|
2
|
-
role: string;
|
|
3
|
-
displayName: string;
|
|
4
|
-
persona: string;
|
|
5
|
-
}
|
|
6
|
-
export interface GeneratedNames {
|
|
7
|
-
universe: string;
|
|
8
|
-
assignments: NameAssignment[];
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Generate character names and persona blurbs for squad members using the LLM.
|
|
12
|
-
* If a universe is provided, names come from that universe.
|
|
13
|
-
* If not, the LLM picks a fun universe on its own.
|
|
14
|
-
*/
|
|
15
|
-
export declare function generateSquadNames(roles: string[], universe?: string): Promise<GeneratedNames>;
|
|
16
|
-
//# sourceMappingURL=name-generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"name-generator.d.ts","sourceRoot":"","sources":["../../src/squad/name-generator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,cAAc,EAAE,CAAC;CAC9B;AAwBD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACvC,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAmDzB"}
|