studiograph 1.3.48-next.1 → 1.3.48-next.11
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/agent/role-loader.d.ts +24 -0
- package/dist/agent/role-loader.js +67 -0
- package/dist/agent/role-loader.js.map +1 -0
- package/dist/core/schema-registry.d.ts +16 -0
- package/dist/core/schema-registry.js +77 -0
- package/dist/core/schema-registry.js.map +1 -1
- package/dist/core/types.d.ts +8 -0
- package/dist/core/types.js +1 -0
- package/dist/core/types.js.map +1 -1
- package/dist/server/agents/agent-loader.d.ts +16 -0
- package/dist/server/agents/agent-loader.js +175 -0
- package/dist/server/agents/agent-loader.js.map +1 -0
- package/dist/server/agents/agent-runner.d.ts +33 -0
- package/dist/server/agents/agent-runner.js +187 -0
- package/dist/server/agents/agent-runner.js.map +1 -0
- package/dist/server/agents/agent-runtime.d.ts +38 -0
- package/dist/server/agents/agent-runtime.js +207 -0
- package/dist/server/agents/agent-runtime.js.map +1 -0
- package/dist/server/agents/base-agent.d.ts +30 -0
- package/dist/server/agents/base-agent.js +88 -0
- package/dist/server/agents/base-agent.js.map +1 -0
- package/dist/server/agents/executive-digest.d.ts +16 -0
- package/dist/server/agents/executive-digest.js +115 -0
- package/dist/server/agents/executive-digest.js.map +1 -0
- package/dist/server/agents/graph-steward.d.ts +16 -0
- package/dist/server/agents/graph-steward.js +59 -0
- package/dist/server/agents/graph-steward.js.map +1 -0
- package/dist/server/agents/meeting-followup.d.ts +16 -0
- package/dist/server/agents/meeting-followup.js +88 -0
- package/dist/server/agents/meeting-followup.js.map +1 -0
- package/dist/server/agents/pipeline-monitor.d.ts +15 -0
- package/dist/server/agents/pipeline-monitor.js +86 -0
- package/dist/server/agents/pipeline-monitor.js.map +1 -0
- package/dist/server/agents/types.d.ts +80 -0
- package/dist/server/agents/types.js +41 -0
- package/dist/server/agents/types.js.map +1 -0
- package/dist/server/index.js +12 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/agents-api.d.ts +10 -0
- package/dist/server/routes/agents-api.js +25 -0
- package/dist/server/routes/agents-api.js.map +1 -0
- package/dist/server/routes/capture-api.d.ts +11 -0
- package/dist/server/routes/capture-api.js +60 -0
- package/dist/server/routes/capture-api.js.map +1 -0
- package/dist/server/routes/graph-api.js +34 -0
- package/dist/server/routes/graph-api.js.map +1 -1
- package/dist/server/routes/insights-api.js +11 -0
- package/dist/server/routes/insights-api.js.map +1 -1
- package/dist/server/routes/meeting-ingest-api.d.ts +4 -5
- package/dist/server/routes/meeting-ingest-api.js +41 -266
- package/dist/server/routes/meeting-ingest-api.js.map +1 -1
- package/dist/server/routes/sync-api.js +34 -0
- package/dist/server/routes/sync-api.js.map +1 -1
- package/dist/server/routes/views-api.js +24 -7
- package/dist/server/routes/views-api.js.map +1 -1
- package/dist/services/auth-service.d.ts +14 -2
- package/dist/services/auth-service.js +93 -7
- package/dist/services/auth-service.js.map +1 -1
- package/dist/services/batch-processor.d.ts +49 -0
- package/dist/services/batch-processor.js +166 -0
- package/dist/services/batch-processor.js.map +1 -0
- package/dist/services/git.d.ts +4 -0
- package/dist/services/git.js +11 -0
- package/dist/services/git.js.map +1 -1
- package/dist/services/graph-maintenance.d.ts +42 -0
- package/dist/services/graph-maintenance.js +143 -0
- package/dist/services/graph-maintenance.js.map +1 -0
- package/dist/services/meeting-processor.d.ts +91 -0
- package/dist/services/meeting-processor.js +331 -0
- package/dist/services/meeting-processor.js.map +1 -0
- package/dist/web/_app/immutable/assets/0.BfIKAx3R.css +1 -0
- package/dist/web/_app/immutable/assets/2.o5gSwzab.css +1 -0
- package/dist/web/_app/immutable/assets/{3.BtaZagnv.css → 3.pL3gv83R.css} +1 -1
- package/dist/web/_app/immutable/assets/4.BQGl5tZW.css +1 -0
- package/dist/web/_app/immutable/assets/6.BpiYFusd.css +1 -0
- package/dist/web/_app/immutable/assets/ViewToolbar.DpnwjPN2.css +1 -0
- package/dist/web/_app/immutable/chunks/{CNJXZsV0.js → -g99LCFh.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DtM5cEDu.js → B2Dejy-t.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CT6oIU-C.js → B3N4kE3J.js} +1 -1
- package/dist/web/_app/immutable/chunks/B3ViLD4I.js +1 -0
- package/dist/web/_app/immutable/chunks/BAGB0lMx.js +1 -0
- package/dist/web/_app/immutable/chunks/BCvqUYid.js +1 -0
- package/dist/web/_app/immutable/chunks/{DX3q8Wh7.js → BFFEFyAj.js} +1 -1
- package/dist/web/_app/immutable/chunks/{oC_W7W7p.js → BHhSDnSr.js} +1 -1
- package/dist/web/_app/immutable/chunks/BQDlskmx.js +1 -0
- package/dist/web/_app/immutable/chunks/BbXvK1EU.js +1 -0
- package/dist/web/_app/immutable/chunks/{4Hhzb6pv.js → BiEI-dJu.js} +1 -1
- package/dist/web/_app/immutable/chunks/BrhE1VRO.js +1 -0
- package/dist/web/_app/immutable/chunks/{C7VoTosa.js → Bz0ZjVQE.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CWQRQXxy.js → C0LVZhvn.js} +1 -1
- package/dist/web/_app/immutable/chunks/C6QLxdX9.js +1 -0
- package/dist/web/_app/immutable/chunks/{Eqahi7_S.js → CBdr8GFI.js} +1 -1
- package/dist/web/_app/immutable/chunks/CEOdgxTv.js +2 -0
- package/dist/web/_app/immutable/chunks/{BTX2Jr8_.js → CEc68H_o.js} +1 -1
- package/dist/web/_app/immutable/chunks/CI57Q7v7.js +1 -0
- package/dist/web/_app/immutable/chunks/CKTSFnqS.js +1 -0
- package/dist/web/_app/immutable/chunks/CKxpZpNY.js +1 -0
- package/dist/web/_app/immutable/chunks/{DGbA7IXh.js → CR97YRf2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{tvOsokaa.js → CUmdiGce.js} +1 -1
- package/dist/web/_app/immutable/chunks/CVIpRbs-.js +1 -0
- package/dist/web/_app/immutable/chunks/CfV7kuPx.js +1 -0
- package/dist/web/_app/immutable/chunks/Cs15FURD.js +1 -0
- package/dist/web/_app/immutable/chunks/CuMU-Bap.js +2 -0
- package/dist/web/_app/immutable/chunks/{BU9bZcWS.js → D-y5IxIv.js} +2 -2
- package/dist/web/_app/immutable/chunks/{CDV5Q7RN.js → D6OH-VUc.js} +1 -1
- package/dist/web/_app/immutable/chunks/DFCmCFly.js +1 -0
- package/dist/web/_app/immutable/chunks/DHcPS7r7.js +1 -0
- package/dist/web/_app/immutable/chunks/{BSsDC_p4.js → DLYEC7N1.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CSCdPd1d.js → DU9_Jo1W.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DbbB6Up5.js → DVD26GEq.js} +1 -1
- package/dist/web/_app/immutable/chunks/DYt9ofDq.js +1 -0
- package/dist/web/_app/immutable/chunks/{cLyZlkXv.js → DcXB6aAE.js} +1 -1
- package/dist/web/_app/immutable/chunks/Dhg1NJGL.js +1 -0
- package/dist/web/_app/immutable/chunks/DlpCOnCZ.js +1 -0
- package/dist/web/_app/immutable/chunks/{CTRxNfZk.js → DsTa_cbM.js} +1 -1
- package/dist/web/_app/immutable/chunks/Dvsh3PAR.js +1 -0
- package/dist/web/_app/immutable/chunks/Dw2HUmj8.js +1 -0
- package/dist/web/_app/immutable/chunks/{CrdV0ttd.js → Dw_S1EgW.js} +1 -1
- package/dist/web/_app/immutable/chunks/{B340SUKR.js → DyGk2tic.js} +1 -1
- package/dist/web/_app/immutable/chunks/{QF8MAmnc.js → OeNrvFP7.js} +1 -1
- package/dist/web/_app/immutable/chunks/gbD2RDs8.js +5 -0
- package/dist/web/_app/immutable/chunks/{CscoF-YL.js → i7YmDvKW.js} +1 -1
- package/dist/web/_app/immutable/chunks/pcSyeVM3.js +1 -0
- package/dist/web/_app/immutable/chunks/{CodnfUpZ.js → qDPn3uyM.js} +1 -1
- package/dist/web/_app/immutable/chunks/vTsVb_dN.js +1 -0
- package/dist/web/_app/immutable/chunks/v_iOQJNU.js +1 -0
- package/dist/web/_app/immutable/chunks/{D7ZqAKi9.js → wDIGUaoU.js} +1 -1
- package/dist/web/_app/immutable/entry/app.DPSWWK4N.js +2 -0
- package/dist/web/_app/immutable/entry/start.CjZ-kVki.js +1 -0
- package/dist/web/_app/immutable/nodes/{0.ag_8oFh-.js → 0.D-g9v2np.js} +2 -2
- package/dist/web/_app/immutable/nodes/{1.BNYg0Vsp.js → 1.a1oItdgh.js} +1 -1
- package/dist/web/_app/immutable/nodes/{9.BH02cvQU.js → 10.Dn2BfNQH.js} +1 -1
- package/dist/web/_app/immutable/nodes/{10.Cyg4coUc.js → 11.6leozpnD.js} +1 -1
- package/dist/web/_app/immutable/nodes/2.D6JIwhBk.js +301 -0
- package/dist/web/_app/immutable/nodes/3.Dzn5nHMV.js +2 -0
- package/dist/web/_app/immutable/nodes/4.BkqkU3Z2.js +12 -0
- package/dist/web/_app/immutable/nodes/{5.DlF50ub0.js → 5.CS2ND7kz.js} +2 -2
- package/dist/web/_app/immutable/nodes/6.BJOpFQoZ.js +1 -0
- package/dist/web/_app/immutable/nodes/7.VweBrMjT.js +2 -0
- package/dist/web/_app/immutable/nodes/8.CgsLKbfE.js +2 -0
- package/dist/web/_app/immutable/nodes/9.CDIWquhD.js +1 -0
- package/dist/web/_app/version.json +1 -1
- package/dist/web/index.html +11 -11
- package/package.json +1 -1
- package/dist/web/_app/immutable/assets/0.DdizXOKi.css +0 -1
- package/dist/web/_app/immutable/assets/2.n7-yW_Fs.css +0 -1
- package/dist/web/_app/immutable/assets/4.DT7X0x5S.css +0 -1
- package/dist/web/_app/immutable/assets/ViewToolbar.D-QW2oKe.css +0 -1
- package/dist/web/_app/immutable/chunks/72bZS3G9.js +0 -1
- package/dist/web/_app/immutable/chunks/8319UlK_.js +0 -1
- package/dist/web/_app/immutable/chunks/BHNrGVTD.js +0 -1
- package/dist/web/_app/immutable/chunks/BS2rFAVq.js +0 -1
- package/dist/web/_app/immutable/chunks/BfIhVLn6.js +0 -1
- package/dist/web/_app/immutable/chunks/Bsacq2UX.js +0 -1
- package/dist/web/_app/immutable/chunks/ByunV8un.js +0 -1
- package/dist/web/_app/immutable/chunks/CJ8__CWt.js +0 -1
- package/dist/web/_app/immutable/chunks/CJUKmosC.js +0 -5
- package/dist/web/_app/immutable/chunks/CXH6iFbA.js +0 -1
- package/dist/web/_app/immutable/chunks/CmCtpZ1Y.js +0 -1
- package/dist/web/_app/immutable/chunks/Cx4YdFMk.js +0 -1
- package/dist/web/_app/immutable/chunks/O9Eb9k00.js +0 -1
- package/dist/web/_app/immutable/chunks/UjzxCpxn.js +0 -1
- package/dist/web/_app/immutable/chunks/WlsUHv-K.js +0 -1
- package/dist/web/_app/immutable/chunks/Y90OgS-9.js +0 -1
- package/dist/web/_app/immutable/chunks/iDtAARVW.js +0 -2
- package/dist/web/_app/immutable/chunks/rJdWIgh-.js +0 -1
- package/dist/web/_app/immutable/chunks/uLEXaPwE.js +0 -1
- package/dist/web/_app/immutable/chunks/vANlie4P.js +0 -2
- package/dist/web/_app/immutable/chunks/vSaooFHB.js +0 -1
- package/dist/web/_app/immutable/entry/app.2t49gcrW.js +0 -2
- package/dist/web/_app/immutable/entry/start.BdkvSU2l.js +0 -1
- package/dist/web/_app/immutable/nodes/2.CGjgxqHA.js +0 -168
- package/dist/web/_app/immutable/nodes/3.DEqqEOTV.js +0 -1
- package/dist/web/_app/immutable/nodes/4.V61Ed9TC.js +0 -12
- package/dist/web/_app/immutable/nodes/6.DEPjN38c.js +0 -2
- package/dist/web/_app/immutable/nodes/7.npfkOwsL.js +0 -2
- package/dist/web/_app/immutable/nodes/8.BiZVwE8_.js +0 -1
- /package/dist/web/_app/immutable/assets/{9.CT4xL4K3.css → 10.CT4xL4K3.css} +0 -0
- /package/dist/web/_app/immutable/assets/{10.BUrHkYry.css → 11.BUrHkYry.css} +0 -0
- /package/dist/web/_app/immutable/assets/{6.CquhUpOu.css → 7.CquhUpOu.css} +0 -0
- /package/dist/web/_app/immutable/assets/{7.CjbDRbuG.css → 8.CjbDRbuG.css} +0 -0
- /package/dist/web/_app/immutable/assets/{8.S1QdUGNM.css → 9.S1QdUGNM.css} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role Loader — agent role definitions
|
|
3
|
+
*
|
|
4
|
+
* Roles are markdown files in src/agent/roles/ with YAML frontmatter.
|
|
5
|
+
* Each role defines a specialized persona with a system prompt extension
|
|
6
|
+
* that gets injected into the agent's context when the role is active.
|
|
7
|
+
*
|
|
8
|
+
* Frontmatter fields:
|
|
9
|
+
* name: kebab-case identifier
|
|
10
|
+
* label: human-readable display name
|
|
11
|
+
* description: shown in role selector
|
|
12
|
+
* icon: Carbon icon name for the UI
|
|
13
|
+
*/
|
|
14
|
+
export interface AgentRole {
|
|
15
|
+
name: string;
|
|
16
|
+
label: string;
|
|
17
|
+
description: string;
|
|
18
|
+
icon: string;
|
|
19
|
+
prompt: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Load all role definitions from the roles directory.
|
|
23
|
+
*/
|
|
24
|
+
export declare function loadRoles(rolesDir: string): AgentRole[];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role Loader — agent role definitions
|
|
3
|
+
*
|
|
4
|
+
* Roles are markdown files in src/agent/roles/ with YAML frontmatter.
|
|
5
|
+
* Each role defines a specialized persona with a system prompt extension
|
|
6
|
+
* that gets injected into the agent's context when the role is active.
|
|
7
|
+
*
|
|
8
|
+
* Frontmatter fields:
|
|
9
|
+
* name: kebab-case identifier
|
|
10
|
+
* label: human-readable display name
|
|
11
|
+
* description: shown in role selector
|
|
12
|
+
* icon: Carbon icon name for the UI
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, readdirSync, readFileSync } from 'fs';
|
|
15
|
+
import { join, extname } from 'path';
|
|
16
|
+
/**
|
|
17
|
+
* Load all role definitions from the roles directory.
|
|
18
|
+
*/
|
|
19
|
+
export function loadRoles(rolesDir) {
|
|
20
|
+
if (!existsSync(rolesDir))
|
|
21
|
+
return [];
|
|
22
|
+
const roles = [];
|
|
23
|
+
for (const file of readdirSync(rolesDir)) {
|
|
24
|
+
if (extname(file) !== '.md')
|
|
25
|
+
continue;
|
|
26
|
+
try {
|
|
27
|
+
const content = readFileSync(join(rolesDir, file), 'utf-8');
|
|
28
|
+
const { meta, body } = parseFrontmatter(content);
|
|
29
|
+
roles.push({
|
|
30
|
+
name: meta.name || file.replace('.md', ''),
|
|
31
|
+
label: meta.label || meta.name || file.replace('.md', ''),
|
|
32
|
+
description: meta.description || '',
|
|
33
|
+
icon: meta.icon || 'Chat',
|
|
34
|
+
prompt: body.trim(),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Skip malformed files
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Ensure 'general' is always first
|
|
42
|
+
roles.sort((a, b) => {
|
|
43
|
+
if (a.name === 'general')
|
|
44
|
+
return -1;
|
|
45
|
+
if (b.name === 'general')
|
|
46
|
+
return 1;
|
|
47
|
+
return a.label.localeCompare(b.label);
|
|
48
|
+
});
|
|
49
|
+
return roles;
|
|
50
|
+
}
|
|
51
|
+
function parseFrontmatter(content) {
|
|
52
|
+
const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
|
|
53
|
+
if (!match)
|
|
54
|
+
return { meta: {}, body: content };
|
|
55
|
+
const meta = {};
|
|
56
|
+
for (const line of match[1].split('\n')) {
|
|
57
|
+
const colon = line.indexOf(':');
|
|
58
|
+
if (colon === -1)
|
|
59
|
+
continue;
|
|
60
|
+
const key = line.slice(0, colon).trim();
|
|
61
|
+
const value = line.slice(colon + 1).trim();
|
|
62
|
+
if (key)
|
|
63
|
+
meta[key] = value;
|
|
64
|
+
}
|
|
65
|
+
return { meta, body: match[2] };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=role-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-loader.js","sourceRoot":"","sources":["../../src/agent/role-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAUrC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,SAAS;QAEtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEjD,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACzD,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM;gBACzB,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC3E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAE/C,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -24,6 +24,22 @@ export declare class SchemaRegistry {
|
|
|
24
24
|
* For types with no extension: returns [].
|
|
25
25
|
*/
|
|
26
26
|
getFieldDefs(entityType: string): FieldDefinition[];
|
|
27
|
+
/**
|
|
28
|
+
* Get the body template for an entity type.
|
|
29
|
+
* Workspace extension body_template overrides built-in defaults.
|
|
30
|
+
* Returns null for types with no template (e.g., note, dataset).
|
|
31
|
+
*/
|
|
32
|
+
getBodyTemplate(entityType: string): string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Get field metadata for an entity type by introspecting the Zod schema.
|
|
35
|
+
* Returns field name, inferred type, required status, and description.
|
|
36
|
+
*/
|
|
37
|
+
getFieldMetadata(entityType: string): Array<{
|
|
38
|
+
name: string;
|
|
39
|
+
type: string;
|
|
40
|
+
required: boolean;
|
|
41
|
+
description?: string;
|
|
42
|
+
}>;
|
|
27
43
|
/**
|
|
28
44
|
* Get all entity type names: built-in types + custom extension types.
|
|
29
45
|
*/
|
|
@@ -49,6 +49,44 @@ function buildZodFields(fields) {
|
|
|
49
49
|
}
|
|
50
50
|
return result;
|
|
51
51
|
}
|
|
52
|
+
/** Built-in body templates for entity types (used when no workspace override exists) */
|
|
53
|
+
const BUILTIN_BODY_TEMPLATES = {
|
|
54
|
+
meeting: '## Agenda\n\n1.\n2.\n3.\n\n## Notes\n\n\n\n## Action Items\n\n\n\n## Summary\n\n',
|
|
55
|
+
decision: '## Context\n\n\n\n## Alternatives Considered\n\n### Option 1\n-\n\n### Option 2\n-\n\n## Decision\n\n\n\n## Rationale\n\n1.\n2.\n3.\n\n## Consequences\n\n### Positive\n-\n\n### Negative\n-\n\n## Decision Trace\n\n| Relationship | Decision | Description |\n|---|---|---|\n| Enabled by | [[]] | |\n| Enables | [[]] | |\n\n## Source\n\n- Meeting: [[]]\n',
|
|
56
|
+
project: '## Overview\n\n\n\n## Deliverables\n\n\n\n## Notes\n\n',
|
|
57
|
+
document: '## Overview\n\n\n\n## Details\n\n',
|
|
58
|
+
process: '## Overview\n\n\n\n## Steps\n\n\n\n## Best Practices\n\n**Do:**\n-\n\n**Don\'t:**\n-\n\n## Notes\n\n',
|
|
59
|
+
'case-study': '## Objective\n\n\n\n## Solution\n\n\n\n## Outcome\n\n\n\n## Team\n\n### Client Team\n\n| Name | Title | Organization |\n|---|---|---|\n| | | |\n\n### Project Team\n\n| Name | Title | Role |\n|---|---|---|\n| | | |\n\n## Learnings\n\n',
|
|
60
|
+
deliverable: '## Overview\n\n\n\n## Scope\n\n-\n\n## Acceptance Criteria\n\n-\n\n## Dependencies\n\n-\n\n## Notes\n\n',
|
|
61
|
+
publication: '## Content\n\n\n\n## Distribution\n\n\n\n## Notes\n\n',
|
|
62
|
+
deal: '## Opportunity\n\n\n\n## Scope\n\n\n\n## Notes\n\n',
|
|
63
|
+
standard: '## Overview\n\n\n\n## Guidelines\n\n\n\n## Examples\n\n\n\n## Notes\n\n',
|
|
64
|
+
task: '## Description\n\n\n\n## Notes\n\n',
|
|
65
|
+
person: '## Notes\n\n',
|
|
66
|
+
organization: '## Profile\n\n\n\n## Notes\n\n',
|
|
67
|
+
role: '## Responsibilities\n\n\n\n## Requirements\n\n',
|
|
68
|
+
'practice-area': '## Overview\n\n\n\n## Capabilities\n\n\n\n## Case Studies\n\n',
|
|
69
|
+
reference: '## Description\n\n\n\n## Notes\n\n',
|
|
70
|
+
};
|
|
71
|
+
/** Infer a simple type string from a Zod schema */
|
|
72
|
+
function inferZodType(schema) {
|
|
73
|
+
if (schema instanceof z.ZodOptional || schema instanceof z.ZodDefault) {
|
|
74
|
+
return inferZodType(schema._def.innerType);
|
|
75
|
+
}
|
|
76
|
+
if (schema instanceof z.ZodString)
|
|
77
|
+
return 'string';
|
|
78
|
+
if (schema instanceof z.ZodNumber)
|
|
79
|
+
return 'number';
|
|
80
|
+
if (schema instanceof z.ZodBoolean)
|
|
81
|
+
return 'boolean';
|
|
82
|
+
if (schema instanceof z.ZodEnum)
|
|
83
|
+
return 'enum';
|
|
84
|
+
if (schema instanceof z.ZodArray)
|
|
85
|
+
return 'string[]';
|
|
86
|
+
if (schema instanceof z.ZodLiteral)
|
|
87
|
+
return 'string';
|
|
88
|
+
return 'string';
|
|
89
|
+
}
|
|
52
90
|
export class SchemaRegistry {
|
|
53
91
|
extensions;
|
|
54
92
|
schemaCache = new Map();
|
|
@@ -103,6 +141,45 @@ export class SchemaRegistry {
|
|
|
103
141
|
getFieldDefs(entityType) {
|
|
104
142
|
return this.fieldDefsCache.get(entityType) ?? [];
|
|
105
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Get the body template for an entity type.
|
|
146
|
+
* Workspace extension body_template overrides built-in defaults.
|
|
147
|
+
* Returns null for types with no template (e.g., note, dataset).
|
|
148
|
+
*/
|
|
149
|
+
getBodyTemplate(entityType) {
|
|
150
|
+
// Workspace override takes priority
|
|
151
|
+
const ext = this.extensions[entityType];
|
|
152
|
+
if (ext?.body_template)
|
|
153
|
+
return ext.body_template;
|
|
154
|
+
// Fall back to built-in
|
|
155
|
+
return BUILTIN_BODY_TEMPLATES[entityType] ?? null;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Get field metadata for an entity type by introspecting the Zod schema.
|
|
159
|
+
* Returns field name, inferred type, required status, and description.
|
|
160
|
+
*/
|
|
161
|
+
getFieldMetadata(entityType) {
|
|
162
|
+
const schema = this.getSchema(entityType);
|
|
163
|
+
const fields = [];
|
|
164
|
+
if (schema instanceof z.ZodObject) {
|
|
165
|
+
const shape = schema.shape;
|
|
166
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
167
|
+
const zodField = value;
|
|
168
|
+
const isOptional = zodField.isOptional();
|
|
169
|
+
const description = zodField.description;
|
|
170
|
+
const type = inferZodType(zodField);
|
|
171
|
+
fields.push({ name: key, type, required: !isOptional, description });
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Add extension fields
|
|
175
|
+
const extFields = this.getFieldDefs(entityType);
|
|
176
|
+
for (const f of extFields) {
|
|
177
|
+
if (!fields.some(existing => existing.name === f.name)) {
|
|
178
|
+
fields.push({ name: f.name, type: f.type, required: f.required ?? false, description: f.description });
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return fields;
|
|
182
|
+
}
|
|
106
183
|
/**
|
|
107
184
|
* Get all entity type names: built-in types + custom extension types.
|
|
108
185
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-registry.js","sourceRoot":"","sources":["../../src/core/schema-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;GAEG;AACH,SAAS,cAAc,CAAC,MAAyB;IAC/C,MAAM,MAAM,GAAiC,EAAE,CAAC;IAEhD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAqB,CAAC;QAE1B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;gBACjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,kCAAkC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,MAA+B,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,UAAU;gBACb,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9B,MAAM;YACR;gBACE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,UAAU,CAAkC;IAC5C,WAAW,GAA8B,IAAI,GAAG,EAAE,CAAC;IACnD,cAAc,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEnE,YAAY,UAA4C;QACtD,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,KAAK;QACX,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAE1D,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,qCAAqC;gBACrC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAsC,CAAC,CAAC;gBACpE,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC;gBAC3D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,SAAS,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;oBACnD,MAAM,QAAQ,GAAI,IAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC9D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAI,gBAAqC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;gBACtF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,UAAkB;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;QAC3C,CAAC;QACD,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;YACjC,OAAO,cAAc,CAAC,UAAyC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,UAAkB;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAC5B,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAa,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,SAAS;gBACtB,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC;gBACrC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAElC,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,yBAAyB,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW;oBAChC,CAAC,CAAC,KAAK,SAAS,CAAC,WAAW,GAAG;oBAC/B,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,0BAA0B,IAAI,GAAG,CAAC,CAAC;gBAC1D,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBACnD,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,OAAO,KAAK,yBAAyB,IAAI,GAAG,CAAC;gBACrF,CAAC;YACH,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;gBACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,MAAM;oBAChE,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACxC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,OAAO,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,6BAA6B;QAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1D,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"schema-registry.js","sourceRoot":"","sources":["../../src/core/schema-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;GAEG;AACH,SAAS,cAAc,CAAC,MAAyB;IAC/C,MAAM,MAAM,GAAiC,EAAE,CAAC;IAEhD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAqB,CAAC;QAE1B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;gBACjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,kCAAkC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,MAA+B,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,UAAU;gBACb,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9B,MAAM;YACR;gBACE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wFAAwF;AACxF,MAAM,sBAAsB,GAA2B;IACrD,OAAO,EAAO,kFAAkF;IAChG,QAAQ,EAAM,kWAAkW;IAChX,OAAO,EAAO,wDAAwD;IACtE,QAAQ,EAAM,mCAAmC;IACjD,OAAO,EAAO,sGAAsG;IACpH,YAAY,EAAE,iPAAiP;IAC/P,WAAW,EAAG,yGAAyG;IACvH,WAAW,EAAG,uDAAuD;IACrE,IAAI,EAAU,oDAAoD;IAClE,QAAQ,EAAM,yEAAyE;IACvF,IAAI,EAAU,oCAAoC;IAClD,MAAM,EAAQ,cAAc;IAC5B,YAAY,EAAE,gCAAgC;IAC9C,IAAI,EAAU,gDAAgD;IAC9D,eAAe,EAAE,+DAA+D;IAChF,SAAS,EAAK,oCAAoC;CACnD,CAAC;AAEF,mDAAmD;AACnD,SAAS,YAAY,CAAC,MAAoB;IACxC,IAAI,MAAM,YAAY,CAAC,CAAC,WAAW,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACtE,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,MAAM,YAAY,CAAC,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC/C,IAAI,MAAM,YAAY,CAAC,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;IACpD,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU;QAAE,OAAO,QAAQ,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,UAAU,CAAkC;IAC5C,WAAW,GAA8B,IAAI,GAAG,EAAE,CAAC;IACnD,cAAc,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEnE,YAAY,UAA4C;QACtD,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,KAAK;QACX,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAE1D,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,qCAAqC;gBACrC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAsC,CAAC,CAAC;gBACpE,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC;gBAC3D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,SAAS,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;oBACnD,MAAM,QAAQ,GAAI,IAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC9D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAI,gBAAqC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;gBACtF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,UAAkB;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;QAC3C,CAAC;QACD,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;YACjC,OAAO,cAAc,CAAC,UAAyC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,UAAkB;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,UAAkB;QAChC,oCAAoC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,GAAG,EAAE,aAAa;YAAE,OAAO,GAAG,CAAC,aAAa,CAAC;QACjD,wBAAwB;QACxB,OAAO,sBAAsB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,UAAkB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAmF,EAAE,CAAC;QAElG,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,KAAqB,CAAC;gBACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;gBACzC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACzG,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAC5B,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAa,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,SAAS;gBACtB,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC;gBACrC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAElC,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,yBAAyB,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW;oBAChC,CAAC,CAAC,KAAK,SAAS,CAAC,WAAW,GAAG;oBAC/B,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,0BAA0B,IAAI,GAAG,CAAC,CAAC;gBAC1D,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBACnD,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,OAAO,KAAK,yBAAyB,IAAI,GAAG,CAAC;gBACrF,CAAC;YACH,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;gBACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,MAAM;oBAChE,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACxC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,OAAO,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,6BAA6B;QAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1D,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -166,6 +166,7 @@ export declare const SchemaExtensionSchema: z.ZodObject<{
|
|
|
166
166
|
enum_values?: string[] | undefined;
|
|
167
167
|
default?: unknown;
|
|
168
168
|
}>, "many">>;
|
|
169
|
+
body_template: z.ZodOptional<z.ZodString>;
|
|
169
170
|
}, "strip", z.ZodTypeAny, {
|
|
170
171
|
description?: string | undefined;
|
|
171
172
|
label?: string | undefined;
|
|
@@ -185,6 +186,7 @@ export declare const SchemaExtensionSchema: z.ZodObject<{
|
|
|
185
186
|
enum_values?: string[] | undefined;
|
|
186
187
|
default?: unknown;
|
|
187
188
|
}[] | undefined;
|
|
189
|
+
body_template?: string | undefined;
|
|
188
190
|
}, {
|
|
189
191
|
description?: string | undefined;
|
|
190
192
|
label?: string | undefined;
|
|
@@ -204,6 +206,7 @@ export declare const SchemaExtensionSchema: z.ZodObject<{
|
|
|
204
206
|
enum_values?: string[] | undefined;
|
|
205
207
|
default?: unknown;
|
|
206
208
|
}[] | undefined;
|
|
209
|
+
body_template?: string | undefined;
|
|
207
210
|
}>;
|
|
208
211
|
export type SchemaExtension = z.infer<typeof SchemaExtensionSchema>;
|
|
209
212
|
export declare const WorkspaceSyncTargetSchema: z.ZodObject<{
|
|
@@ -367,6 +370,7 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
367
370
|
enum_values?: string[] | undefined;
|
|
368
371
|
default?: unknown;
|
|
369
372
|
}>, "many">>;
|
|
373
|
+
body_template: z.ZodOptional<z.ZodString>;
|
|
370
374
|
}, "strip", z.ZodTypeAny, {
|
|
371
375
|
description?: string | undefined;
|
|
372
376
|
label?: string | undefined;
|
|
@@ -386,6 +390,7 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
386
390
|
enum_values?: string[] | undefined;
|
|
387
391
|
default?: unknown;
|
|
388
392
|
}[] | undefined;
|
|
393
|
+
body_template?: string | undefined;
|
|
389
394
|
}, {
|
|
390
395
|
description?: string | undefined;
|
|
391
396
|
label?: string | undefined;
|
|
@@ -405,6 +410,7 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
405
410
|
enum_values?: string[] | undefined;
|
|
406
411
|
default?: unknown;
|
|
407
412
|
}[] | undefined;
|
|
413
|
+
body_template?: string | undefined;
|
|
408
414
|
}>>>;
|
|
409
415
|
sync: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
410
416
|
source: z.ZodString;
|
|
@@ -521,6 +527,7 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
521
527
|
enum_values?: string[] | undefined;
|
|
522
528
|
default?: unknown;
|
|
523
529
|
}[] | undefined;
|
|
530
|
+
body_template?: string | undefined;
|
|
524
531
|
}> | undefined;
|
|
525
532
|
accent_color?: string | undefined;
|
|
526
533
|
railway?: {
|
|
@@ -588,6 +595,7 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
588
595
|
enum_values?: string[] | undefined;
|
|
589
596
|
default?: unknown;
|
|
590
597
|
}[] | undefined;
|
|
598
|
+
body_template?: string | undefined;
|
|
591
599
|
}> | undefined;
|
|
592
600
|
accent_color?: string | undefined;
|
|
593
601
|
railway?: {
|
package/dist/core/types.js
CHANGED
|
@@ -53,6 +53,7 @@ export const SchemaExtensionSchema = z.object({
|
|
|
53
53
|
description: z.string().optional(),
|
|
54
54
|
additional_fields: z.array(FieldDefinitionSchema).optional(), // for extending existing types
|
|
55
55
|
fields: z.array(FieldDefinitionSchema).optional(), // for defining new custom types
|
|
56
|
+
body_template: z.string().optional(), // default markdown body for new entities of this type
|
|
56
57
|
});
|
|
57
58
|
export const WorkspaceSyncTargetSchema = z.object({
|
|
58
59
|
repo: z.string(),
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Loader — discovers and parses agent definitions
|
|
3
|
+
*
|
|
4
|
+
* Agents are markdown files with YAML frontmatter, similar to skills.
|
|
5
|
+
* Loaded from:
|
|
6
|
+
* 1. Built-in: src/server/agents/builtins/*.md
|
|
7
|
+
* 2. Workspace: .studiograph/agents/{name}/agent.md
|
|
8
|
+
* 3. User home: ~/.studiograph/agents/{name}/agent.md
|
|
9
|
+
*
|
|
10
|
+
* First occurrence of a name wins (workspace overrides built-in).
|
|
11
|
+
*/
|
|
12
|
+
import type { AgentConfig } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Load all agent definitions from built-in + workspace + user directories.
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadAgents(builtinDir: string, workspacePath: string): AgentConfig[];
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Loader — discovers and parses agent definitions
|
|
3
|
+
*
|
|
4
|
+
* Agents are markdown files with YAML frontmatter, similar to skills.
|
|
5
|
+
* Loaded from:
|
|
6
|
+
* 1. Built-in: src/server/agents/builtins/*.md
|
|
7
|
+
* 2. Workspace: .studiograph/agents/{name}/agent.md
|
|
8
|
+
* 3. User home: ~/.studiograph/agents/{name}/agent.md
|
|
9
|
+
*
|
|
10
|
+
* First occurrence of a name wins (workspace overrides built-in).
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync, readdirSync, readFileSync } from 'fs';
|
|
13
|
+
import { join, extname } from 'path';
|
|
14
|
+
/**
|
|
15
|
+
* Load all agent definitions from built-in + workspace + user directories.
|
|
16
|
+
*/
|
|
17
|
+
export function loadAgents(builtinDir, workspacePath) {
|
|
18
|
+
const agents = new Map();
|
|
19
|
+
// 1. Built-in agents (lowest priority)
|
|
20
|
+
for (const config of loadFromDirectory(builtinDir, true)) {
|
|
21
|
+
agents.set(config.name, config);
|
|
22
|
+
}
|
|
23
|
+
// 2. Workspace agents (override built-in)
|
|
24
|
+
const workspaceAgentsDir = join(workspacePath, '.studiograph', 'agents');
|
|
25
|
+
for (const config of loadFromDirectory(workspaceAgentsDir, false)) {
|
|
26
|
+
agents.set(config.name, config);
|
|
27
|
+
}
|
|
28
|
+
return Array.from(agents.values());
|
|
29
|
+
}
|
|
30
|
+
function loadFromDirectory(dir, builtin) {
|
|
31
|
+
if (!existsSync(dir))
|
|
32
|
+
return [];
|
|
33
|
+
const configs = [];
|
|
34
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
35
|
+
// Directory agents: agents/{name}/agent.md
|
|
36
|
+
if (entry.isDirectory()) {
|
|
37
|
+
const agentFile = join(dir, entry.name, 'agent.md');
|
|
38
|
+
if (existsSync(agentFile)) {
|
|
39
|
+
const config = parseAgentFile(agentFile, builtin);
|
|
40
|
+
if (config)
|
|
41
|
+
configs.push(config);
|
|
42
|
+
}
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
// Single-file agents: agents/{name}.md
|
|
46
|
+
if (entry.isFile() && extname(entry.name) === '.md') {
|
|
47
|
+
const agentFile = join(dir, entry.name);
|
|
48
|
+
const config = parseAgentFile(agentFile, builtin);
|
|
49
|
+
if (config)
|
|
50
|
+
configs.push(config);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return configs;
|
|
54
|
+
}
|
|
55
|
+
function parseAgentFile(filePath, builtin) {
|
|
56
|
+
try {
|
|
57
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
58
|
+
const { meta, body } = parseFrontmatter(content);
|
|
59
|
+
if (!meta.name)
|
|
60
|
+
return null;
|
|
61
|
+
return {
|
|
62
|
+
name: meta.name,
|
|
63
|
+
label: meta.label ?? meta.name.replace(/-/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase()),
|
|
64
|
+
interval: meta.interval ?? '15m',
|
|
65
|
+
scope: {
|
|
66
|
+
collections: meta.scope?.collections ?? undefined,
|
|
67
|
+
tools: meta.scope?.tools ?? ['graph'],
|
|
68
|
+
},
|
|
69
|
+
autonomy: meta.autonomy ?? 'suggest',
|
|
70
|
+
enabled: meta.enabled !== false,
|
|
71
|
+
prompt: body.trim(),
|
|
72
|
+
sourcePath: filePath,
|
|
73
|
+
builtin,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* YAML frontmatter parser — handles nested objects for scope.
|
|
82
|
+
*/
|
|
83
|
+
function parseFrontmatter(content) {
|
|
84
|
+
const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
|
|
85
|
+
if (!match)
|
|
86
|
+
return { meta: {}, body: content };
|
|
87
|
+
const meta = {};
|
|
88
|
+
const lines = match[1].split('\n');
|
|
89
|
+
let currentKey = '';
|
|
90
|
+
let inArray = false;
|
|
91
|
+
let arrayKey = '';
|
|
92
|
+
let nestedObj = {};
|
|
93
|
+
let inNested = false;
|
|
94
|
+
let nestedKey = '';
|
|
95
|
+
for (const line of lines) {
|
|
96
|
+
const trimmed = line.trimEnd();
|
|
97
|
+
// Array item
|
|
98
|
+
if (inArray && trimmed.match(/^\s+-\s+(.+)/)) {
|
|
99
|
+
const val = trimmed.match(/^\s+-\s+(.+)/)[1].trim();
|
|
100
|
+
if (!meta[arrayKey])
|
|
101
|
+
meta[arrayKey] = [];
|
|
102
|
+
meta[arrayKey].push(val);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
else if (inArray && !trimmed.match(/^\s+-/)) {
|
|
106
|
+
inArray = false;
|
|
107
|
+
}
|
|
108
|
+
// Nested object value
|
|
109
|
+
if (inNested && trimmed.match(/^\s+\w+:/)) {
|
|
110
|
+
const nestedMatch = trimmed.match(/^\s+(\w+):\s*(.*)/);
|
|
111
|
+
if (nestedMatch) {
|
|
112
|
+
const val = nestedMatch[2].trim();
|
|
113
|
+
if (val.startsWith('[') && val.endsWith(']')) {
|
|
114
|
+
nestedObj[nestedMatch[1]] = val.slice(1, -1).split(',').map(s => s.trim());
|
|
115
|
+
}
|
|
116
|
+
else if (val) {
|
|
117
|
+
nestedObj[nestedMatch[1]] = val;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// Start nested array
|
|
121
|
+
inArray = true;
|
|
122
|
+
arrayKey = `${nestedKey}.${nestedMatch[1]}`;
|
|
123
|
+
nestedObj[nestedMatch[1]] = [];
|
|
124
|
+
const origArrayKey = arrayKey;
|
|
125
|
+
// Redirect array pushes into nested obj
|
|
126
|
+
Object.defineProperty(meta, origArrayKey, {
|
|
127
|
+
get: () => nestedObj[nestedMatch[1]],
|
|
128
|
+
set: (v) => { nestedObj[nestedMatch[1]] = v; },
|
|
129
|
+
configurable: true,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else if (inNested && !trimmed.match(/^\s/)) {
|
|
136
|
+
meta[nestedKey] = nestedObj;
|
|
137
|
+
inNested = false;
|
|
138
|
+
nestedObj = {};
|
|
139
|
+
}
|
|
140
|
+
// Top-level key
|
|
141
|
+
const kvMatch = trimmed.match(/^(\w[\w-]*):\s*(.*)/);
|
|
142
|
+
if (kvMatch) {
|
|
143
|
+
const [, key, val] = kvMatch;
|
|
144
|
+
const trimVal = val.trim();
|
|
145
|
+
if (!trimVal) {
|
|
146
|
+
// Could be start of array or nested object — check next line
|
|
147
|
+
currentKey = key;
|
|
148
|
+
inArray = true;
|
|
149
|
+
arrayKey = key;
|
|
150
|
+
meta[key] = [];
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if (trimVal.startsWith('[') && trimVal.endsWith(']')) {
|
|
154
|
+
meta[key] = trimVal.slice(1, -1).split(',').map(s => s.trim());
|
|
155
|
+
}
|
|
156
|
+
else if (trimVal === 'true') {
|
|
157
|
+
meta[key] = true;
|
|
158
|
+
}
|
|
159
|
+
else if (trimVal === 'false') {
|
|
160
|
+
meta[key] = false;
|
|
161
|
+
}
|
|
162
|
+
else if (/^\d+$/.test(trimVal)) {
|
|
163
|
+
meta[key] = parseInt(trimVal, 10);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
meta[key] = trimVal;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// Flush any pending nested
|
|
171
|
+
if (inNested)
|
|
172
|
+
meta[nestedKey] = nestedObj;
|
|
173
|
+
return { meta, body: match[2] };
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=agent-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-loader.js","sourceRoot":"","sources":["../../../src/server/agents/agent-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Runner — executes a single agent tick via LLM
|
|
3
|
+
*
|
|
4
|
+
* This is the core of the autonomous agent system. Each tick:
|
|
5
|
+
* 1. Builds a system prompt with workspace context + agent state
|
|
6
|
+
* 2. Builds a scoped tool set (graph + MCP connectors)
|
|
7
|
+
* 3. Sends the agent's instructions as the user message
|
|
8
|
+
* 4. LLM reasons, calls tools, produces response
|
|
9
|
+
* 5. Parses response for findings and AGENT_OK
|
|
10
|
+
*
|
|
11
|
+
* Uses the Pi-Mono Agent class (same as the chat orchestrator)
|
|
12
|
+
* but with scoped tools and a single-turn prompt.
|
|
13
|
+
*/
|
|
14
|
+
import type { WorkspaceManager } from '../../core/workspace-manager.js';
|
|
15
|
+
import type { WsHub } from '../ws-hub.js';
|
|
16
|
+
import type { AgentConfig, AgentState, AgentFinding } from './types.js';
|
|
17
|
+
export interface AgentTickResult {
|
|
18
|
+
findings: AgentFinding[];
|
|
19
|
+
response: string;
|
|
20
|
+
status: 'ok' | 'agent_ok' | 'error';
|
|
21
|
+
toolCalls: Array<{
|
|
22
|
+
tool: string;
|
|
23
|
+
input: any;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Run a single agent tick — one LLM call with tools.
|
|
28
|
+
*/
|
|
29
|
+
export declare function runAgentTick(config: AgentConfig, state: AgentState, workspaceManager: WorkspaceManager, wsHub?: WsHub): Promise<AgentTickResult>;
|
|
30
|
+
/**
|
|
31
|
+
* Parse checkpoint data from response.
|
|
32
|
+
*/
|
|
33
|
+
export declare function parseCheckpoint(response: string): Record<string, any> | null;
|