@corenel/harness 0.14.0 → 0.16.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/dist/approvals/service.d.ts.map +1 -1
- package/dist/approvals/service.js +4 -1
- package/dist/approvals/service.js.map +1 -1
- package/dist/audit/log.d.ts.map +1 -1
- package/dist/audit/log.js +12 -1
- package/dist/audit/log.js.map +1 -1
- package/dist/audit/recorder.d.ts +7 -1
- package/dist/audit/recorder.d.ts.map +1 -1
- package/dist/audit/recorder.js +28 -4
- package/dist/audit/recorder.js.map +1 -1
- package/dist/audit/runAudit.d.ts +2 -1
- package/dist/audit/runAudit.d.ts.map +1 -1
- package/dist/audit/runAudit.js +2 -0
- package/dist/audit/runAudit.js.map +1 -1
- package/dist/core/dontsRecent.d.ts +5 -0
- package/dist/core/dontsRecent.d.ts.map +1 -0
- package/dist/core/dontsRecent.js +23 -0
- package/dist/core/dontsRecent.js.map +1 -0
- package/dist/core/loop.d.ts +7 -0
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +134 -5
- package/dist/core/loop.js.map +1 -1
- package/dist/core/spawn.d.ts +13 -1
- package/dist/core/spawn.d.ts.map +1 -1
- package/dist/core/spawn.js +20 -3
- package/dist/core/spawn.js.map +1 -1
- package/dist/dag/executeNode.d.ts +3 -1
- package/dist/dag/executeNode.d.ts.map +1 -1
- package/dist/dag/executeNode.js +1 -0
- package/dist/dag/executeNode.js.map +1 -1
- package/dist/guardrail/permission-service.d.ts.map +1 -1
- package/dist/guardrail/permission-service.js +21 -10
- package/dist/guardrail/permission-service.js.map +1 -1
- package/dist/guardrail/serialize.d.ts.map +1 -1
- package/dist/guardrail/serialize.js +5 -0
- package/dist/guardrail/serialize.js.map +1 -1
- package/dist/guardrail/validate.d.ts.map +1 -1
- package/dist/guardrail/validate.js +21 -6
- package/dist/guardrail/validate.js.map +1 -1
- package/dist/memory/store.d.ts +3 -0
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +16 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/orchestrator/record.d.ts +7 -0
- package/dist/orchestrator/record.d.ts.map +1 -1
- package/dist/orchestrator/record.js +14 -2
- package/dist/orchestrator/record.js.map +1 -1
- package/dist/prompts/library/defaults.generated.d.ts +2 -0
- package/dist/prompts/library/defaults.generated.d.ts.map +1 -1
- package/dist/prompts/library/defaults.generated.js +6 -0
- package/dist/prompts/library/defaults.generated.js.map +1 -1
- package/dist/prompts/library/index.d.ts +3 -0
- package/dist/prompts/library/index.d.ts.map +1 -1
- package/dist/prompts/library/index.js +3 -0
- package/dist/prompts/library/index.js.map +1 -1
- package/dist/sessions/fileSessionStore.d.ts +1 -0
- package/dist/sessions/fileSessionStore.d.ts.map +1 -1
- package/dist/sessions/fileSessionStore.js +11 -1
- package/dist/sessions/fileSessionStore.js.map +1 -1
- package/dist/sidecar/accessTestRig.d.ts +32 -0
- package/dist/sidecar/accessTestRig.d.ts.map +1 -0
- package/dist/sidecar/accessTestRig.js +107 -0
- package/dist/sidecar/accessTestRig.js.map +1 -0
- package/dist/sidecar/askView.d.ts +20 -0
- package/dist/sidecar/askView.d.ts.map +1 -0
- package/dist/sidecar/askView.js +38 -0
- package/dist/sidecar/askView.js.map +1 -0
- package/dist/sidecar/host.d.ts +146 -11
- package/dist/sidecar/host.d.ts.map +1 -1
- package/dist/sidecar/host.js +406 -13
- package/dist/sidecar/host.js.map +1 -1
- package/dist/sidecar/hostCapability.d.ts +6 -0
- package/dist/sidecar/hostCapability.d.ts.map +1 -0
- package/dist/sidecar/hostCapability.js +7 -0
- package/dist/sidecar/hostCapability.js.map +1 -0
- package/dist/sidecar/identity.d.ts +5 -0
- package/dist/sidecar/identity.d.ts.map +1 -1
- package/dist/sidecar/memberGate.d.ts +5 -0
- package/dist/sidecar/memberGate.d.ts.map +1 -0
- package/dist/sidecar/memberGate.js +128 -0
- package/dist/sidecar/memberGate.js.map +1 -0
- package/dist/sidecar/server.d.ts +425 -11
- package/dist/sidecar/server.d.ts.map +1 -1
- package/dist/sidecar/server.js +1809 -52
- package/dist/sidecar/server.js.map +1 -1
- package/dist/skills.d.ts +7 -1
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +18 -5
- package/dist/skills.js.map +1 -1
- package/dist/tools/builtins.d.ts +17 -0
- package/dist/tools/builtins.d.ts.map +1 -1
- package/dist/tools/builtins.js +32 -3
- package/dist/tools/builtins.js.map +1 -1
- package/dist/tools/callAgent.d.ts +14 -1
- package/dist/tools/callAgent.d.ts.map +1 -1
- package/dist/tools/callAgent.js +18 -2
- package/dist/tools/callAgent.js.map +1 -1
- package/dist/tools/createCrewAgent.d.ts +39 -0
- package/dist/tools/createCrewAgent.d.ts.map +1 -0
- package/dist/tools/createCrewAgent.js +121 -0
- package/dist/tools/createCrewAgent.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
export const CREATE_CREW_AGENT_TOOL = 'create_crew_agent';
|
|
2
|
+
/** Trigger types the crew loader accepts (packages/crew/store.ts TRIGGER_TYPES). */
|
|
3
|
+
export const CREW_CREATE_TRIGGERS = [
|
|
4
|
+
'manual', 'file-change', 'run-complete', 'interval-while-open', 'app-init',
|
|
5
|
+
'workspace-init', 'schedule', 'continuous', 'self-directed', 'external-webhook',
|
|
6
|
+
];
|
|
7
|
+
/** Same rule as @corenel/crew's isValidAgentName (paths.ts), which this
|
|
8
|
+
* package does not import. */
|
|
9
|
+
const NAME_RE = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
|
|
10
|
+
const MAX_NAME = 64;
|
|
11
|
+
const MAX_LINE = 300;
|
|
12
|
+
const MAX_DOC = 20000;
|
|
13
|
+
const MAX_MODEL = 200;
|
|
14
|
+
const str = (v) => (typeof v === 'string' ? v.trim() : '');
|
|
15
|
+
/** Checks raw tool arguments. A list of problems, or the request. */
|
|
16
|
+
export function checkCreateCrewArgs(args) {
|
|
17
|
+
const problems = [];
|
|
18
|
+
const name = str(args.name);
|
|
19
|
+
if (!name)
|
|
20
|
+
problems.push('name is required.');
|
|
21
|
+
else if (name.length > MAX_NAME || !NAME_RE.test(name))
|
|
22
|
+
problems.push(`name "${name}" must start with a letter or digit and use only letters, digits, - and _ (at most ${MAX_NAME}).`);
|
|
23
|
+
const description = str(args.description);
|
|
24
|
+
if (!description)
|
|
25
|
+
problems.push('description is required: one line on what the agent does.');
|
|
26
|
+
else if (description.length > MAX_LINE)
|
|
27
|
+
problems.push(`description is longer than ${MAX_LINE} characters.`);
|
|
28
|
+
const jobTitle = str(args.jobTitle);
|
|
29
|
+
if (jobTitle.length > MAX_LINE)
|
|
30
|
+
problems.push(`jobTitle is longer than ${MAX_LINE} characters.`);
|
|
31
|
+
const instructions = str(args.instructions);
|
|
32
|
+
if (!instructions)
|
|
33
|
+
problems.push('instructions are required: what the agent should do and how.');
|
|
34
|
+
const soul = str(args.soul);
|
|
35
|
+
const persona = str(args.persona);
|
|
36
|
+
for (const [k, v] of [['instructions', instructions], ['soul', soul], ['persona', persona]]) {
|
|
37
|
+
if (v.length > MAX_DOC)
|
|
38
|
+
problems.push(`${k} is longer than ${MAX_DOC} characters.`);
|
|
39
|
+
}
|
|
40
|
+
const model = str(args.model);
|
|
41
|
+
if (!model)
|
|
42
|
+
problems.push('model is required: ask the user which model this agent should use.');
|
|
43
|
+
else if (model.length > MAX_MODEL || /\s/.test(model))
|
|
44
|
+
problems.push(`model "${model}" is not a model id.`);
|
|
45
|
+
const scopeRaw = args.scope === undefined ? 'workspace' : args.scope;
|
|
46
|
+
if (scopeRaw !== 'workspace' && scopeRaw !== 'global')
|
|
47
|
+
problems.push('scope must be "workspace" or "global".');
|
|
48
|
+
const scope = scopeRaw === 'global' ? 'global' : 'workspace';
|
|
49
|
+
const triggers = [];
|
|
50
|
+
if (args.triggers !== undefined) {
|
|
51
|
+
if (!Array.isArray(args.triggers))
|
|
52
|
+
problems.push('triggers must be a list.');
|
|
53
|
+
else {
|
|
54
|
+
for (const t of args.triggers) {
|
|
55
|
+
const o = (t && typeof t === 'object' ? t : {});
|
|
56
|
+
if (typeof o.type !== 'string' || !CREW_CREATE_TRIGGERS.includes(o.type)) {
|
|
57
|
+
problems.push(`trigger type ${JSON.stringify(o.type)} is not one of ${CREW_CREATE_TRIGGERS.join(', ')}.`);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const config = o.config && typeof o.config === 'object' && !Array.isArray(o.config) ? o.config : undefined;
|
|
61
|
+
triggers.push({ type: o.type, ...(config ? { config } : {}) });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (triggers.length === 0 && problems.length === 0)
|
|
66
|
+
triggers.push({ type: 'manual' });
|
|
67
|
+
const mayChangeFiles = args.mayChangeFiles === true;
|
|
68
|
+
if (problems.length)
|
|
69
|
+
return { ok: false, problems };
|
|
70
|
+
return { ok: true, req: { name, description, jobTitle, instructions, soul, persona, model, scope, triggers, mayChangeFiles } };
|
|
71
|
+
}
|
|
72
|
+
export function createCreateCrewAgentTool(creator) {
|
|
73
|
+
return {
|
|
74
|
+
name: CREATE_CREW_AGENT_TOOL,
|
|
75
|
+
description: 'Create ONE new crew agent (an installed agent the user keeps, unlike spawn_agent). Use it only after the user '
|
|
76
|
+
+ 'agreed what the agent is for, its name and its model; the create-crew-agent skill walks through that. '
|
|
77
|
+
+ 'Refuses a name that already exists in that scope: it never edits or replaces an agent. The new agent may read, '
|
|
78
|
+
+ 'list and search files; set mayChangeFiles only when the user asked for an agent that changes files, and it '
|
|
79
|
+
+ 'will still ask before each change.',
|
|
80
|
+
mutates: true,
|
|
81
|
+
parameters: {
|
|
82
|
+
type: 'object',
|
|
83
|
+
properties: {
|
|
84
|
+
name: { type: 'string', description: 'Folder-safe name: letters, digits, - and _, e.g. release-scout.' },
|
|
85
|
+
description: { type: 'string', description: 'One line on what the agent does.' },
|
|
86
|
+
jobTitle: { type: 'string', description: 'Optional role label, e.g. "Release scout".' },
|
|
87
|
+
instructions: { type: 'string', description: 'The agent\'s instructions (AGENT.md body): its job, steps, and what done looks like.' },
|
|
88
|
+
soul: { type: 'string', description: 'Optional SOUL.md: values and judgment.' },
|
|
89
|
+
persona: { type: 'string', description: 'Optional PERSONA.md: voice and tone.' },
|
|
90
|
+
model: { type: 'string', description: 'Model id the agent runs on. Required.' },
|
|
91
|
+
scope: { type: 'string', enum: ['workspace', 'global'], description: 'workspace (this project, the default) or global (every project).' },
|
|
92
|
+
triggers: {
|
|
93
|
+
type: 'array',
|
|
94
|
+
description: 'When it runs. Omit for manual only.',
|
|
95
|
+
items: {
|
|
96
|
+
type: 'object',
|
|
97
|
+
properties: { type: { type: 'string', enum: [...CREW_CREATE_TRIGGERS] }, config: { type: 'object' } },
|
|
98
|
+
required: ['type'],
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
mayChangeFiles: { type: 'boolean', description: 'true only if the user wants the agent to change files; each change still asks.' },
|
|
102
|
+
},
|
|
103
|
+
required: ['name', 'description', 'instructions', 'model'],
|
|
104
|
+
},
|
|
105
|
+
async run(args) {
|
|
106
|
+
const checked = checkCreateCrewArgs(args);
|
|
107
|
+
if (!checked.ok)
|
|
108
|
+
return `Not created. Fix these and try again:\n- ${checked.problems.join('\n- ')}`;
|
|
109
|
+
try {
|
|
110
|
+
const { where } = await creator.createCrewAgent(checked.req);
|
|
111
|
+
return `Created crew agent "${checked.req.name}" (${checked.req.scope}) at ${where}. It runs on ${checked.req.model}`
|
|
112
|
+
+ `${checked.req.triggers.every((t) => t.type === 'manual') ? ', manually' : `, on ${checked.req.triggers.map((t) => t.type).join(', ')}`}. `
|
|
113
|
+
+ 'The user can open it on the Crew page to adjust anything.';
|
|
114
|
+
}
|
|
115
|
+
catch (e) {
|
|
116
|
+
return `Not created: ${e instanceof Error ? e.message : String(e)}`;
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=createCrewAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCrewAgent.js","sourceRoot":"","sources":["../../tools/createCrewAgent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@corenel/harness",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"license": "Elastic-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Corenel — host-agnostic agent harness (kernel). The app resolves it via the `corenel` path alias (bypasses these exports entirely); vitest aliases it to source too. Everything else — node consumers like @corenel/cli, @corenel/term, @corenel/sidecar — resolves it through this workspace package via the exports map below, which points at dist/ unconditionally (not just at publish) so in-repo and published resolution are identical: a bundle that treats @corenel/harness as external (see packages/term/build.mjs) must see the SAME module instance node sees when it later resolves this package at runtime, and plain node cannot execute the raw .ts sources at all. Run `pnpm build` here (or let a dependent's prebuild do it) before relying on this package outside the app/vitest. NOTE: @xyflow/react and dagre are NOT dependencies here at all — this package has no .tsx files and imports neither. `react` IS a real (small) runtime dependency: `todos.ts` uses `useSyncExternalStore`. It is declared below as an OPTIONAL peer, not a hard dependency, so node-only consumers (cli/term/sidecar) aren't forced to install react; node consumers hoist it today only because something else in the tree happens to pull it in. Do not add @xyflow/react or dagre as dependencies/peers without testing a packed install end to end — an earlier attempt at that (before this package had any .tsx files) failed npm's peer resolution with ERESOLVE.",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"openai": "^4.77.0",
|
|
35
35
|
"yaml": "^2.8.3",
|
|
36
|
-
"@corenel/protocol": "0.
|
|
36
|
+
"@corenel/protocol": "0.15.0"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"react": "^18.0.0 || ^19.0.0"
|