@agimon-ai/po-team 0.0.0-alpha.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/LICENSE +25 -0
- package/README.md +156 -0
- package/dist/agentDiscovery-Whwzc4dP.cjs +1637 -0
- package/dist/agentDiscovery-Whwzc4dP.cjs.map +1 -0
- package/dist/agentDiscovery-ZQlFkKvB.mjs +1529 -0
- package/dist/agentDiscovery-ZQlFkKvB.mjs.map +1 -0
- package/dist/apiContracts.cjs +162 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +53 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +157 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/atomicJson-D0346bt5.cjs +178 -0
- package/dist/atomicJson-D0346bt5.cjs.map +1 -0
- package/dist/atomicJson-D2t0CDh9.mjs +137 -0
- package/dist/atomicJson-D2t0CDh9.mjs.map +1 -0
- package/dist/capabilityCeiling-C-Y7H8oC.cjs +191 -0
- package/dist/capabilityCeiling-C-Y7H8oC.cjs.map +1 -0
- package/dist/capabilityCeiling-CF7kAS18.mjs +156 -0
- package/dist/capabilityCeiling-CF7kAS18.mjs.map +1 -0
- package/dist/capabilityCeiling.cjs +10 -0
- package/dist/capabilityCeiling.d.mts +46 -0
- package/dist/capabilityCeiling.d.mts.map +1 -0
- package/dist/capabilityCeiling.mjs +3 -0
- package/dist/delegation.cjs +49 -0
- package/dist/delegation.cjs.map +1 -0
- package/dist/delegation.d.mts +269 -0
- package/dist/delegation.d.mts.map +1 -0
- package/dist/delegation.mjs +34 -0
- package/dist/delegation.mjs.map +1 -0
- package/dist/delegationApi.cjs +92 -0
- package/dist/delegationApi.d.mts +2 -0
- package/dist/delegationApi.mjs +2 -0
- package/dist/env.cjs +62 -0
- package/dist/env.d.mts +2 -0
- package/dist/env.mjs +2 -0
- package/dist/environment-CaCW3SgT.cjs +320 -0
- package/dist/environment-CaCW3SgT.cjs.map +1 -0
- package/dist/environment-DrqhrxG_.mjs +75 -0
- package/dist/environment-DrqhrxG_.mjs.map +1 -0
- package/dist/environment-ma5oQ7uM.d.mts +63 -0
- package/dist/environment-ma5oQ7uM.d.mts.map +1 -0
- package/dist/extensions/server.cjs +6940 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +6932 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/extensions/web.mjs +2308 -0
- package/dist/extensions/web.mjs.map +1 -0
- package/dist/externalProcessIpc-C-15lJrB.mjs +584 -0
- package/dist/externalProcessIpc-C-15lJrB.mjs.map +1 -0
- package/dist/externalProcessIpc-ojE0pvw0.cjs +690 -0
- package/dist/externalProcessIpc-ojE0pvw0.cjs.map +1 -0
- package/dist/fablePlan.cjs +17 -0
- package/dist/fablePlan.d.mts +2 -0
- package/dist/fablePlan.mjs +2 -0
- package/dist/fablePlanApi-BsHhgVFV.mjs +118 -0
- package/dist/fablePlanApi-BsHhgVFV.mjs.map +1 -0
- package/dist/fablePlanApi-CZ3uUcMi.d.mts +97 -0
- package/dist/fablePlanApi-CZ3uUcMi.d.mts.map +1 -0
- package/dist/fablePlanApi-wBu9bRXU.cjs +207 -0
- package/dist/fablePlanApi-wBu9bRXU.cjs.map +1 -0
- package/dist/fablePlanApi.cjs +17 -0
- package/dist/fablePlanApi.d.mts +2 -0
- package/dist/fablePlanApi.mjs +2 -0
- package/dist/index.cjs +49 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +160 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +45 -0
- package/dist/index.mjs.map +1 -0
- package/dist/runs/background/cliRunnerEntry.cjs +539 -0
- package/dist/runs/background/cliRunnerEntry.cjs.map +1 -0
- package/dist/runs/background/cliRunnerEntry.d.mts +1 -0
- package/dist/runs/background/cliRunnerEntry.mjs +537 -0
- package/dist/runs/background/cliRunnerEntry.mjs.map +1 -0
- package/dist/runtimeSubagentPolicy.cjs +5 -0
- package/dist/runtimeSubagentPolicy.d.mts +2 -0
- package/dist/runtimeSubagentPolicy.mjs +2 -0
- package/dist/runtimeSubagentTool.cjs +11 -0
- package/dist/runtimeSubagentTool.d.mts +2 -0
- package/dist/runtimeSubagentTool.mjs +2 -0
- package/dist/subagentPolicy-ALJam4GN.d.mts +33 -0
- package/dist/subagentPolicy-ALJam4GN.d.mts.map +1 -0
- package/dist/subagentPolicy-DQRyKDH-.cjs +39 -0
- package/dist/subagentPolicy-DQRyKDH-.cjs.map +1 -0
- package/dist/subagentPolicy-DxjsKeyj.mjs +22 -0
- package/dist/subagentPolicy-DxjsKeyj.mjs.map +1 -0
- package/dist/subagentPolicy.cjs +5 -0
- package/dist/subagentPolicy.d.mts +2 -0
- package/dist/subagentPolicy.mjs +2 -0
- package/dist/subagentTool-BTssGLw8.d.mts +103 -0
- package/dist/subagentTool-BTssGLw8.d.mts.map +1 -0
- package/dist/subagentTool-Ca2zQXKw.cjs +227 -0
- package/dist/subagentTool-Ca2zQXKw.cjs.map +1 -0
- package/dist/subagentTool-WOYrjxgT.mjs +186 -0
- package/dist/subagentTool-WOYrjxgT.mjs.map +1 -0
- package/dist/subagentTool.cjs +10 -0
- package/dist/subagentTool.d.mts +2 -0
- package/dist/subagentTool.mjs +2 -0
- package/dist/teamSnapshot-DgaANhBs.mjs +24 -0
- package/dist/teamSnapshot-DgaANhBs.mjs.map +1 -0
- package/dist/teamSnapshot-oKuGFdYc.cjs +35 -0
- package/dist/teamSnapshot-oKuGFdYc.cjs.map +1 -0
- package/dist/teamSnapshot.cjs +4 -0
- package/dist/teamSnapshot.d.mts +59 -0
- package/dist/teamSnapshot.d.mts.map +1 -0
- package/dist/teamSnapshot.mjs +2 -0
- package/package.json +201 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_atomicJson = require("./atomicJson-D0346bt5.cjs");
|
|
3
|
+
const require_agentDiscovery = require("./agentDiscovery-Whwzc4dP.cjs");
|
|
4
|
+
let node_fs = require("node:fs");
|
|
5
|
+
node_fs = require_atomicJson.__toESM(node_fs, 1);
|
|
6
|
+
let node_path = require("node:path");
|
|
7
|
+
node_path = require_atomicJson.__toESM(node_path, 1);
|
|
8
|
+
//#region src/services/subagentLaunchContract/index.ts
|
|
9
|
+
/**
|
|
10
|
+
* Public availability check for a subagent launch.
|
|
11
|
+
*
|
|
12
|
+
* Lives in adapters rather than services: resolving the contract stats the
|
|
13
|
+
* working directory and reads agent definitions off disk.
|
|
14
|
+
*/
|
|
15
|
+
/** Lightweight public availability check using Doom Team's discovery rules. */
|
|
16
|
+
async function resolveSubagentLaunchContract(input) {
|
|
17
|
+
const cwd = node_path.resolve(input.cwd);
|
|
18
|
+
try {
|
|
19
|
+
if (!node_fs.statSync(cwd).isDirectory()) return {
|
|
20
|
+
ok: false,
|
|
21
|
+
code: "invalid_cwd",
|
|
22
|
+
message: `cwd '${cwd}' is not a directory.`
|
|
23
|
+
};
|
|
24
|
+
} catch (error) {
|
|
25
|
+
return {
|
|
26
|
+
ok: false,
|
|
27
|
+
code: "invalid_cwd",
|
|
28
|
+
message: `cwd '${cwd}' is not a directory.${error instanceof Error ? ` ${error.message}` : ""}`
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const agent = new require_agentDiscovery.AgentDiscoveryService().find(cwd, input.agentScope ?? "both", input.agent);
|
|
32
|
+
if (!agent) return {
|
|
33
|
+
ok: false,
|
|
34
|
+
code: "missing_agent",
|
|
35
|
+
message: `Unknown agent: ${input.agent}`
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
ok: true,
|
|
39
|
+
contract: {
|
|
40
|
+
agent,
|
|
41
|
+
cwd,
|
|
42
|
+
context: input.context ?? agent.defaultContext ?? "fresh"
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
exports.resolveSubagentLaunchContract = resolveSubagentLaunchContract;
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["path","fs","AgentDiscoveryService"],"sources":["../src/services/subagentLaunchContract/index.ts"],"sourcesContent":["/**\n * Public availability check for a subagent launch.\n *\n * Lives in adapters rather than services: resolving the contract stats the\n * working directory and reads agent definitions off disk.\n */\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\n\nimport type { AgentConfig, AgentScope } from '../../types/agent';\nimport { AgentDiscoveryService } from '../agentDiscovery';\n\nexport interface SubagentLaunchContractInput {\n agent: string;\n cwd: string;\n task?: string;\n agentScope?: AgentScope;\n context?: 'fresh' | 'fork';\n skill?: string | string[] | boolean;\n artifacts?: boolean;\n}\n\nexport interface SubagentLaunchContract {\n agent: AgentConfig;\n cwd: string;\n context: 'fresh' | 'fork';\n}\n\nexport type SubagentLaunchContractResult =\n | { ok: true; contract: SubagentLaunchContract }\n | { ok: false; code: 'invalid_cwd' | 'missing_agent'; message: string };\n\n/** Lightweight public availability check using Doom Team's discovery rules. */\nexport async function resolveSubagentLaunchContract(\n input: SubagentLaunchContractInput,\n): Promise<SubagentLaunchContractResult> {\n const cwd = path.resolve(input.cwd);\n try {\n if (!fs.statSync(cwd).isDirectory()) {\n return { ok: false, code: 'invalid_cwd', message: `cwd '${cwd}' is not a directory.` };\n }\n } catch (error) {\n const detail = error instanceof Error ? ` ${error.message}` : '';\n return { ok: false, code: 'invalid_cwd', message: `cwd '${cwd}' is not a directory.${detail}` };\n }\n\n const agent = new AgentDiscoveryService().find(cwd, input.agentScope ?? 'both', input.agent);\n if (!agent) return { ok: false, code: 'missing_agent', message: `Unknown agent: ${input.agent}` };\n\n return {\n ok: true,\n contract: { agent, cwd, context: input.context ?? agent.defaultContext ?? 'fresh' },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiCA,eAAsB,8BACpB,OACuC;CACvC,MAAM,MAAMA,UAAK,QAAQ,MAAM,GAAG;CAClC,IAAI;EACF,IAAI,CAACC,QAAG,SAAS,GAAG,CAAC,CAAC,YAAY,GAChC,OAAO;GAAE,IAAI;GAAO,MAAM;GAAe,SAAS,QAAQ,IAAI;EAAuB;CAEzF,SAAS,OAAO;EAEd,OAAO;GAAE,IAAI;GAAO,MAAM;GAAe,SAAS,QAAQ,IAAI,uBAD/C,iBAAiB,QAAQ,IAAI,MAAM,YAAY;EACgC;CAChG;CAEA,MAAM,QAAQ,IAAIC,uBAAAA,sBAAsB,CAAC,CAAC,KAAK,KAAK,MAAM,cAAc,QAAQ,MAAM,KAAK;CAC3F,IAAI,CAAC,OAAO,OAAO;EAAE,IAAI;EAAO,MAAM;EAAiB,SAAS,kBAAkB,MAAM;CAAQ;CAEhG,OAAO;EACL,IAAI;EACJ,UAAU;GAAE;GAAO;GAAK,SAAS,MAAM,WAAW,MAAM,kBAAkB;EAAQ;CACpF;AACF"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
//#region src/types/index.d.ts
|
|
2
|
+
/** Whether an agent's prompt extends the host's system prompt or replaces it. */
|
|
3
|
+
type SystemPromptMode = 'append' | 'replace';
|
|
4
|
+
/**
|
|
5
|
+
* A ceiling on how many tool calls a child may make.
|
|
6
|
+
*
|
|
7
|
+
* `soft` nudges, `hard` blocks. `block` narrows enforcement to named tools, or
|
|
8
|
+
* `'*'` for all of them.
|
|
9
|
+
*/
|
|
10
|
+
interface ToolBudgetConfig {
|
|
11
|
+
soft?: number;
|
|
12
|
+
hard: number;
|
|
13
|
+
block?: string[] | '*';
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/types/agent.d.ts
|
|
17
|
+
/** Which directories a discovery pass should read. */
|
|
18
|
+
type AgentScope = 'user' | 'project' | 'both';
|
|
19
|
+
/**
|
|
20
|
+
* Where an agent definition came from.
|
|
21
|
+
*
|
|
22
|
+
* The order matters: a project agent shadows a user agent of the same name,
|
|
23
|
+
* which in turn shadows one staged by a plugin.
|
|
24
|
+
*/
|
|
25
|
+
type AgentSource = 'plugin' | 'user' | 'project';
|
|
26
|
+
/** Whether a child starts from a clean context or forks the parent's. */
|
|
27
|
+
type AgentDefaultContext = 'fresh' | 'fork';
|
|
28
|
+
type AgentMemoryScope = 'project' | 'user';
|
|
29
|
+
interface AgentMemoryConfig {
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
scope?: AgentMemoryScope;
|
|
32
|
+
maxEntries?: number;
|
|
33
|
+
}
|
|
34
|
+
/** Records that a model came from a settings default rather than frontmatter. */
|
|
35
|
+
interface AgentModelSourceInfo {
|
|
36
|
+
type: 'subagents.defaultModel' | 'packages.team.defaultModel';
|
|
37
|
+
scope: 'user' | 'project' | 'package';
|
|
38
|
+
path: string;
|
|
39
|
+
model: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The frontmatter fields a builtin agent's override may restate.
|
|
43
|
+
*
|
|
44
|
+
* Overriding a builtin captures the original values so the override can be
|
|
45
|
+
* removed later and the builtin restored exactly, which is why this is a
|
|
46
|
+
* snapshot rather than a diff.
|
|
47
|
+
*/
|
|
48
|
+
interface BuiltinAgentOverrideBase {
|
|
49
|
+
description?: string;
|
|
50
|
+
tools?: string[];
|
|
51
|
+
model?: string;
|
|
52
|
+
fallbackModels?: string[];
|
|
53
|
+
thinking?: string | false;
|
|
54
|
+
systemPromptMode?: SystemPromptMode;
|
|
55
|
+
inheritProjectContext?: boolean;
|
|
56
|
+
inheritSkills?: boolean;
|
|
57
|
+
skills?: string[];
|
|
58
|
+
skillPath?: string[];
|
|
59
|
+
extensions?: string[];
|
|
60
|
+
subagentOnlyExtensions?: string[];
|
|
61
|
+
output?: string;
|
|
62
|
+
defaultReads?: string[];
|
|
63
|
+
defaultProgress?: boolean;
|
|
64
|
+
defaultContext?: AgentDefaultContext;
|
|
65
|
+
defaultTimeoutMs?: number;
|
|
66
|
+
/** Which runtime executes this agent. Defaults to the in-process `pi` SDK path. */
|
|
67
|
+
runtime?: string;
|
|
68
|
+
interactive?: boolean;
|
|
69
|
+
maxSubagentDepth?: number;
|
|
70
|
+
completionGuard?: boolean;
|
|
71
|
+
toolBudget?: ToolBudgetConfig;
|
|
72
|
+
memory?: AgentMemoryConfig;
|
|
73
|
+
systemPrompt?: string;
|
|
74
|
+
disabled?: boolean;
|
|
75
|
+
}
|
|
76
|
+
/** Which settings file overrode a builtin, and what it looked like before. */
|
|
77
|
+
interface BuiltinAgentOverrideInfo {
|
|
78
|
+
scope: 'user' | 'project';
|
|
79
|
+
path: string;
|
|
80
|
+
base: BuiltinAgentOverrideBase;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A fully resolved agent definition.
|
|
84
|
+
*
|
|
85
|
+
* Resolved means frontmatter has been merged with settings defaults and any
|
|
86
|
+
* builtin override, so consumers never re-apply precedence themselves.
|
|
87
|
+
*/
|
|
88
|
+
interface AgentConfig {
|
|
89
|
+
name: string;
|
|
90
|
+
/** Unqualified name, when the agent is namespaced by a package. */
|
|
91
|
+
localName?: string;
|
|
92
|
+
packageName?: string;
|
|
93
|
+
description: string;
|
|
94
|
+
tools?: string[];
|
|
95
|
+
mcpDirectTools?: string[];
|
|
96
|
+
model?: string;
|
|
97
|
+
fallbackModels?: string[];
|
|
98
|
+
thinking?: string | false;
|
|
99
|
+
systemPromptMode: SystemPromptMode;
|
|
100
|
+
inheritProjectContext: boolean;
|
|
101
|
+
/** Controls Pi ambient skill discovery only; explicit named `skills` remain available. */
|
|
102
|
+
inheritSkills: boolean;
|
|
103
|
+
defaultContext?: AgentDefaultContext;
|
|
104
|
+
defaultTimeoutMs?: number;
|
|
105
|
+
/** Which runtime executes this agent. Defaults to the in-process `pi` SDK path. */
|
|
106
|
+
runtime?: string;
|
|
107
|
+
systemPrompt: string;
|
|
108
|
+
source: AgentSource;
|
|
109
|
+
filePath: string;
|
|
110
|
+
/** Explicit named skill requirements projected into Pi child prompts. */
|
|
111
|
+
skills?: string[];
|
|
112
|
+
/** Lookup roots for explicit skill names; relative roots resolve from the request cwd. */
|
|
113
|
+
skillPath?: string[];
|
|
114
|
+
extensions?: string[];
|
|
115
|
+
/** True when `extensions` came from a settings default, not from frontmatter. */
|
|
116
|
+
extensionsFromDefault?: boolean;
|
|
117
|
+
subagentOnlyExtensions?: string[];
|
|
118
|
+
output?: string;
|
|
119
|
+
defaultReads?: string[];
|
|
120
|
+
defaultProgress?: boolean;
|
|
121
|
+
interactive?: boolean;
|
|
122
|
+
maxSubagentDepth?: number;
|
|
123
|
+
completionGuard?: boolean;
|
|
124
|
+
toolBudget?: ToolBudgetConfig;
|
|
125
|
+
memory?: AgentMemoryConfig;
|
|
126
|
+
disabled?: boolean;
|
|
127
|
+
/** Frontmatter keys this package does not interpret, preserved for round-tripping. */
|
|
128
|
+
extraFields?: Record<string, string>;
|
|
129
|
+
override?: BuiltinAgentOverrideInfo;
|
|
130
|
+
modelSource?: AgentModelSourceInfo;
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
//#region src/services/subagentLaunchContract/index.d.ts
|
|
134
|
+
interface SubagentLaunchContractInput {
|
|
135
|
+
agent: string;
|
|
136
|
+
cwd: string;
|
|
137
|
+
task?: string;
|
|
138
|
+
agentScope?: AgentScope;
|
|
139
|
+
context?: 'fresh' | 'fork';
|
|
140
|
+
skill?: string | string[] | boolean;
|
|
141
|
+
artifacts?: boolean;
|
|
142
|
+
}
|
|
143
|
+
interface SubagentLaunchContract {
|
|
144
|
+
agent: AgentConfig;
|
|
145
|
+
cwd: string;
|
|
146
|
+
context: 'fresh' | 'fork';
|
|
147
|
+
}
|
|
148
|
+
type SubagentLaunchContractResult = {
|
|
149
|
+
ok: true;
|
|
150
|
+
contract: SubagentLaunchContract;
|
|
151
|
+
} | {
|
|
152
|
+
ok: false;
|
|
153
|
+
code: 'invalid_cwd' | 'missing_agent';
|
|
154
|
+
message: string;
|
|
155
|
+
};
|
|
156
|
+
/** Lightweight public availability check using Doom Team's discovery rules. */
|
|
157
|
+
export declare function resolveSubagentLaunchContract(input: SubagentLaunchContractInput): Promise<SubagentLaunchContractResult>;
|
|
158
|
+
//#endregion
|
|
159
|
+
export type { SubagentLaunchContract, SubagentLaunchContractInput, SubagentLaunchContractResult };
|
|
160
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/index.ts","../src/types/agent.ts","../src/services/subagentLaunchContract/index.ts"],"mappings":";;KAyGY;;;;;;;UA4CK;EACf;EACA;EACA;;;;;KCrIU;;;;;;;KAQA;;KAGA;KASA;UAEK;EACf;EACA,QAAQ;EACR;;;UAIe;EACf;EACA;EACA;EACA;;;;;;;;;UAUe;EACf;EACA;EACA;EACA;EACA;EACA,mBAAmB;EACnB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB;;EAEA;EACA;EACA;EACA;EACA,aAAa;EACb,SAAS;EACT;EACA;;;UAsCe;EACf;EACA;EACA,MAAM;;;;;;;;UASS;EACf;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBAAkB;EAClB;;EAEA;EACA,iBAAiB;EACjB;;EAEA;EACA;EACA,QAAQ;EACR;;EAEA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;EACb,SAAS;EACT;;EAEA,cAAc;EACd,WAAW;EACX,cAAc;;;;UCxKC;EACf;EACA;EACA;EACA,aAAa;EACb;EACA;EACA;;UAGe;EACf,OAAO;EACP;EACA;;KAGU;EACN;EAAU,UAAU;;EACpB;EAAW;EAAuC;;;wBAGlC,8BACpB,OAAO,8BACN,QAAQ"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { t as AgentDiscoveryService } from "./agentDiscovery-ZQlFkKvB.mjs";
|
|
2
|
+
import * as fs from "node:fs";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
//#region src/services/subagentLaunchContract/index.ts
|
|
5
|
+
/**
|
|
6
|
+
* Public availability check for a subagent launch.
|
|
7
|
+
*
|
|
8
|
+
* Lives in adapters rather than services: resolving the contract stats the
|
|
9
|
+
* working directory and reads agent definitions off disk.
|
|
10
|
+
*/
|
|
11
|
+
/** Lightweight public availability check using Doom Team's discovery rules. */
|
|
12
|
+
async function resolveSubagentLaunchContract(input) {
|
|
13
|
+
const cwd = path.resolve(input.cwd);
|
|
14
|
+
try {
|
|
15
|
+
if (!fs.statSync(cwd).isDirectory()) return {
|
|
16
|
+
ok: false,
|
|
17
|
+
code: "invalid_cwd",
|
|
18
|
+
message: `cwd '${cwd}' is not a directory.`
|
|
19
|
+
};
|
|
20
|
+
} catch (error) {
|
|
21
|
+
return {
|
|
22
|
+
ok: false,
|
|
23
|
+
code: "invalid_cwd",
|
|
24
|
+
message: `cwd '${cwd}' is not a directory.${error instanceof Error ? ` ${error.message}` : ""}`
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const agent = new AgentDiscoveryService().find(cwd, input.agentScope ?? "both", input.agent);
|
|
28
|
+
if (!agent) return {
|
|
29
|
+
ok: false,
|
|
30
|
+
code: "missing_agent",
|
|
31
|
+
message: `Unknown agent: ${input.agent}`
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
ok: true,
|
|
35
|
+
contract: {
|
|
36
|
+
agent,
|
|
37
|
+
cwd,
|
|
38
|
+
context: input.context ?? agent.defaultContext ?? "fresh"
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { resolveSubagentLaunchContract };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/services/subagentLaunchContract/index.ts"],"sourcesContent":["/**\n * Public availability check for a subagent launch.\n *\n * Lives in adapters rather than services: resolving the contract stats the\n * working directory and reads agent definitions off disk.\n */\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\n\nimport type { AgentConfig, AgentScope } from '../../types/agent';\nimport { AgentDiscoveryService } from '../agentDiscovery';\n\nexport interface SubagentLaunchContractInput {\n agent: string;\n cwd: string;\n task?: string;\n agentScope?: AgentScope;\n context?: 'fresh' | 'fork';\n skill?: string | string[] | boolean;\n artifacts?: boolean;\n}\n\nexport interface SubagentLaunchContract {\n agent: AgentConfig;\n cwd: string;\n context: 'fresh' | 'fork';\n}\n\nexport type SubagentLaunchContractResult =\n | { ok: true; contract: SubagentLaunchContract }\n | { ok: false; code: 'invalid_cwd' | 'missing_agent'; message: string };\n\n/** Lightweight public availability check using Doom Team's discovery rules. */\nexport async function resolveSubagentLaunchContract(\n input: SubagentLaunchContractInput,\n): Promise<SubagentLaunchContractResult> {\n const cwd = path.resolve(input.cwd);\n try {\n if (!fs.statSync(cwd).isDirectory()) {\n return { ok: false, code: 'invalid_cwd', message: `cwd '${cwd}' is not a directory.` };\n }\n } catch (error) {\n const detail = error instanceof Error ? ` ${error.message}` : '';\n return { ok: false, code: 'invalid_cwd', message: `cwd '${cwd}' is not a directory.${detail}` };\n }\n\n const agent = new AgentDiscoveryService().find(cwd, input.agentScope ?? 'both', input.agent);\n if (!agent) return { ok: false, code: 'missing_agent', message: `Unknown agent: ${input.agent}` };\n\n return {\n ok: true,\n contract: { agent, cwd, context: input.context ?? agent.defaultContext ?? 'fresh' },\n };\n}\n"],"mappings":";;;;;;;;;;;AAiCA,eAAsB,8BACpB,OACuC;CACvC,MAAM,MAAM,KAAK,QAAQ,MAAM,GAAG;CAClC,IAAI;EACF,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,YAAY,GAChC,OAAO;GAAE,IAAI;GAAO,MAAM;GAAe,SAAS,QAAQ,IAAI;EAAuB;CAEzF,SAAS,OAAO;EAEd,OAAO;GAAE,IAAI;GAAO,MAAM;GAAe,SAAS,QAAQ,IAAI,uBAD/C,iBAAiB,QAAQ,IAAI,MAAM,YAAY;EACgC;CAChG;CAEA,MAAM,QAAQ,IAAI,sBAAsB,CAAC,CAAC,KAAK,KAAK,MAAM,cAAc,QAAQ,MAAM,KAAK;CAC3F,IAAI,CAAC,OAAO,OAAO;EAAE,IAAI;EAAO,MAAM;EAAiB,SAAS,kBAAkB,MAAM;CAAQ;CAEhG,OAAO;EACL,IAAI;EACJ,UAAU;GAAE;GAAO;GAAK,SAAS,MAAM,WAAW,MAAM,kBAAkB;EAAQ;CACpF;AACF"}
|