studiograph 1.1.3 → 1.2.0-beta.10
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/README.md +2 -8
- package/dist/agent/orchestrator.d.ts +53 -0
- package/dist/agent/orchestrator.js +197 -12
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/prompts/system.md +43 -11
- package/dist/agent/skill-loader.d.ts +48 -0
- package/dist/agent/skill-loader.js +166 -0
- package/dist/agent/skill-loader.js.map +1 -0
- package/dist/agent/skills/{bundled/enrich-entities.md → enrich-entities.md} +12 -0
- package/dist/agent/skills/entity-schema.md +502 -0
- package/dist/agent/skills/obsidian-source-setup.md +246 -0
- package/dist/agent/skills/sync-configuration.md +144 -0
- package/dist/agent/skills/sync-setup.md +84 -0
- package/dist/agent/tools/connector-tools.d.ts +37 -0
- package/dist/agent/tools/connector-tools.js +132 -0
- package/dist/agent/tools/connector-tools.js.map +1 -0
- package/dist/agent/tools/fs-tools.d.ts +39 -0
- package/dist/agent/tools/fs-tools.js +106 -0
- package/dist/agent/tools/fs-tools.js.map +1 -0
- package/dist/agent/tools/graph-tools.d.ts +33 -1
- package/dist/agent/tools/graph-tools.js +192 -44
- package/dist/agent/tools/graph-tools.js.map +1 -1
- package/dist/agent/tools/load-skill.d.ts +1 -1
- package/dist/agent/tools/load-skill.js +1 -1
- package/dist/agent/tools/load-skill.js.map +1 -1
- package/dist/agent/tools/ops-tools.d.ts +24 -0
- package/dist/agent/tools/ops-tools.js +542 -0
- package/dist/agent/tools/ops-tools.js.map +1 -0
- package/dist/agent/tools/sync-tools.d.ts +33 -0
- package/dist/agent/tools/sync-tools.js +947 -0
- package/dist/agent/tools/sync-tools.js.map +1 -0
- package/dist/auth/github.d.ts +11 -8
- package/dist/auth/github.js +56 -75
- package/dist/auth/github.js.map +1 -1
- package/dist/cli/colors.d.ts +54 -0
- package/dist/cli/colors.js +133 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/commands/app.js +121 -18
- package/dist/cli/commands/app.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +1 -1
- package/dist/cli/commands/auth.js +26 -10
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/clone.d.ts +9 -0
- package/dist/cli/commands/clone.js +167 -0
- package/dist/cli/commands/clone.js.map +1 -0
- package/dist/cli/commands/commit.d.ts +8 -0
- package/dist/cli/commands/commit.js +44 -0
- package/dist/cli/commands/commit.js.map +1 -0
- package/dist/cli/commands/connector.js +10 -2
- package/dist/cli/commands/connector.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts +4 -6
- package/dist/cli/commands/deploy.js +292 -115
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/enrich.d.ts +11 -0
- package/dist/cli/commands/enrich.js +135 -0
- package/dist/cli/commands/enrich.js.map +1 -0
- package/dist/cli/commands/graphrag.d.ts +12 -0
- package/dist/cli/commands/graphrag.js +122 -0
- package/dist/cli/commands/graphrag.js.map +1 -0
- package/dist/cli/commands/init.js +29 -196
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/join.js +23 -3
- package/dist/cli/commands/join.js.map +1 -1
- package/dist/cli/commands/orphans.d.ts +8 -0
- package/dist/cli/commands/orphans.js +125 -0
- package/dist/cli/commands/orphans.js.map +1 -0
- package/dist/cli/commands/provision.js +11 -7
- package/dist/cli/commands/provision.js.map +1 -1
- package/dist/cli/commands/r2.js +8 -2
- package/dist/cli/commands/r2.js.map +1 -1
- package/dist/cli/commands/redeploy.d.ts +9 -0
- package/dist/cli/commands/redeploy.js +203 -0
- package/dist/cli/commands/redeploy.js.map +1 -0
- package/dist/cli/commands/reset.d.ts +12 -0
- package/dist/cli/commands/reset.js +137 -0
- package/dist/cli/commands/reset.js.map +1 -0
- package/dist/cli/commands/resolve.d.ts +8 -0
- package/dist/cli/commands/resolve.js +85 -0
- package/dist/cli/commands/resolve.js.map +1 -0
- package/dist/cli/commands/review.d.ts +19 -0
- package/dist/cli/commands/review.js +128 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/serve.js +55 -8
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/source.d.ts +16 -0
- package/dist/cli/commands/source.js +159 -0
- package/dist/cli/commands/source.js.map +1 -0
- package/dist/cli/commands/start.js +307 -55
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/sync-entities.d.ts +13 -0
- package/dist/cli/commands/sync-entities.js +242 -0
- package/dist/cli/commands/sync-entities.js.map +1 -0
- package/dist/cli/commands/sync.js +81 -5
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/index.js +45 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/scaffolding.d.ts +2 -1
- package/dist/cli/scaffolding.js +38 -23
- package/dist/cli/scaffolding.js.map +1 -1
- package/dist/cli/setup-wizard.d.ts +30 -0
- package/dist/cli/setup-wizard.js +244 -0
- package/dist/cli/setup-wizard.js.map +1 -0
- package/dist/cli/sync-review-interactive.d.ts +31 -0
- package/dist/cli/sync-review-interactive.js +393 -0
- package/dist/cli/sync-review-interactive.js.map +1 -0
- package/dist/cli/theme.d.ts +31 -0
- package/dist/cli/theme.js +116 -0
- package/dist/cli/theme.js.map +1 -0
- package/dist/core/graph.d.ts +40 -12
- package/dist/core/graph.js +344 -104
- package/dist/core/graph.js.map +1 -1
- package/dist/core/migration-runner.d.ts +4 -1
- package/dist/core/migration-runner.js +14 -3
- package/dist/core/migration-runner.js.map +1 -1
- package/dist/core/types.d.ts +2 -4
- package/dist/core/types.js +1 -2
- package/dist/core/types.js.map +1 -1
- package/dist/core/user-config.d.ts +12 -0
- package/dist/core/user-config.js.map +1 -1
- package/dist/core/workspace-manager.d.ts +6 -1
- package/dist/core/workspace-manager.js +29 -4
- package/dist/core/workspace-manager.js.map +1 -1
- package/dist/core/workspace.d.ts +13 -5
- package/dist/core/workspace.js +115 -33
- package/dist/core/workspace.js.map +1 -1
- package/dist/lib/lib/utils.d.ts +2 -0
- package/dist/lib/lib/utils.js +6 -0
- package/dist/lib/lib/utils.js.map +1 -0
- package/dist/mcp/connector-manager.d.ts +7 -3
- package/dist/mcp/connector-manager.js +61 -16
- package/dist/mcp/connector-manager.js.map +1 -1
- package/dist/mcp/connectors/asana.d.ts +2 -0
- package/dist/mcp/connectors/asana.js +20 -0
- package/dist/mcp/connectors/asana.js.map +1 -0
- package/dist/mcp/connectors/definitions.d.ts +3 -1
- package/dist/mcp/connectors/definitions.js +19 -127
- package/dist/mcp/connectors/definitions.js.map +1 -1
- package/dist/mcp/connectors/figma.d.ts +5 -0
- package/dist/mcp/connectors/figma.js +21 -0
- package/dist/mcp/connectors/figma.js.map +1 -0
- package/dist/mcp/connectors/gdrive.d.ts +2 -0
- package/dist/mcp/connectors/gdrive.js +20 -0
- package/dist/mcp/connectors/gdrive.js.map +1 -0
- package/dist/mcp/connectors/granola.d.ts +2 -0
- package/dist/mcp/connectors/granola.js +12 -0
- package/dist/mcp/connectors/granola.js.map +1 -0
- package/dist/mcp/connectors/linear.d.ts +2 -0
- package/dist/mcp/connectors/linear.js +19 -0
- package/dist/mcp/connectors/linear.js.map +1 -0
- package/dist/mcp/connectors/obsidian.d.ts +2 -0
- package/dist/mcp/connectors/obsidian.js +19 -0
- package/dist/mcp/connectors/obsidian.js.map +1 -0
- package/dist/mcp/connectors/pipedrive.d.ts +2 -0
- package/dist/mcp/connectors/pipedrive.js +20 -0
- package/dist/mcp/connectors/pipedrive.js.map +1 -0
- package/dist/mcp/connectors/slack.d.ts +2 -0
- package/dist/mcp/connectors/slack.js +21 -0
- package/dist/mcp/connectors/slack.js.map +1 -0
- package/dist/mcp/oauth-provider.d.ts +41 -0
- package/dist/mcp/oauth-provider.js +160 -0
- package/dist/mcp/oauth-provider.js.map +1 -0
- package/dist/server/index.js +97 -11
- package/dist/server/index.js.map +1 -1
- package/dist/server/plugin-loader.d.ts +8 -0
- package/dist/server/plugin-loader.js +54 -2
- package/dist/server/plugin-loader.js.map +1 -1
- package/dist/server/routes/chat.d.ts +3 -2
- package/dist/server/routes/chat.js +67 -16
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/git-api.d.ts +9 -0
- package/dist/server/routes/git-api.js +82 -0
- package/dist/server/routes/git-api.js.map +1 -0
- package/dist/server/routes/graph-api.d.ts +2 -2
- package/dist/server/routes/graph-api.js +164 -3
- package/dist/server/routes/graph-api.js.map +1 -1
- package/dist/server/routes/workspace-api.d.ts +9 -0
- package/dist/server/routes/workspace-api.js +170 -0
- package/dist/server/routes/workspace-api.js.map +1 -0
- package/dist/services/assets/base.d.ts +2 -2
- package/dist/services/assets/base.js +4 -4
- package/dist/services/assets/base.js.map +1 -1
- package/dist/services/assets/index.d.ts +6 -6
- package/dist/services/assets/index.js +12 -12
- package/dist/services/assets/index.js.map +1 -1
- package/dist/services/git.d.ts +31 -0
- package/dist/services/git.js +92 -3
- package/dist/services/git.js.map +1 -1
- package/dist/services/github-provisioner.d.ts +8 -3
- package/dist/services/github-provisioner.js +35 -8
- package/dist/services/github-provisioner.js.map +1 -1
- package/dist/services/lint-service.js +8 -1
- package/dist/services/lint-service.js.map +1 -1
- package/dist/services/markdown.js +3 -3
- package/dist/services/markdown.js.map +1 -1
- package/dist/services/memory-service.d.ts +1 -1
- package/dist/services/memory-service.js +2 -3
- package/dist/services/memory-service.js.map +1 -1
- package/dist/services/orphan-service.d.ts +31 -0
- package/dist/services/orphan-service.js +100 -0
- package/dist/services/orphan-service.js.map +1 -0
- package/dist/services/sync/commit.d.ts +60 -0
- package/dist/services/sync/commit.js +370 -0
- package/dist/services/sync/commit.js.map +1 -0
- package/dist/services/sync/context-index.d.ts +69 -0
- package/dist/services/sync/context-index.js +280 -0
- package/dist/services/sync/context-index.js.map +1 -0
- package/dist/services/sync/derive.d.ts +34 -0
- package/dist/services/sync/derive.js +164 -0
- package/dist/services/sync/derive.js.map +1 -0
- package/dist/services/sync/enrichment-state.d.ts +31 -0
- package/dist/services/sync/enrichment-state.js +63 -0
- package/dist/services/sync/enrichment-state.js.map +1 -0
- package/dist/services/sync/enrichment.d.ts +25 -0
- package/dist/services/sync/enrichment.js +121 -0
- package/dist/services/sync/enrichment.js.map +1 -0
- package/dist/services/sync/frontmatter-extractor.d.ts +40 -0
- package/dist/services/sync/frontmatter-extractor.js +273 -0
- package/dist/services/sync/frontmatter-extractor.js.map +1 -0
- package/dist/services/sync/graph-match-state.d.ts +33 -0
- package/dist/services/sync/graph-match-state.js +61 -0
- package/dist/services/sync/graph-match-state.js.map +1 -0
- package/dist/services/sync/graph-match.d.ts +53 -0
- package/dist/services/sync/graph-match.js +316 -0
- package/dist/services/sync/graph-match.js.map +1 -0
- package/dist/services/sync/graphrag-client.d.ts +43 -0
- package/dist/services/sync/graphrag-client.js +94 -0
- package/dist/services/sync/graphrag-client.js.map +1 -0
- package/dist/services/sync/graphrag-config.d.ts +16 -0
- package/dist/services/sync/graphrag-config.js +39 -0
- package/dist/services/sync/graphrag-config.js.map +1 -0
- package/dist/services/sync/graphrag-context.d.ts +14 -0
- package/dist/services/sync/graphrag-context.js +109 -0
- package/dist/services/sync/graphrag-context.js.map +1 -0
- package/dist/services/sync/graphrag-indexer.d.ts +30 -0
- package/dist/services/sync/graphrag-indexer.js +358 -0
- package/dist/services/sync/graphrag-indexer.js.map +1 -0
- package/dist/services/sync/llm.d.ts +32 -0
- package/dist/services/sync/llm.js +115 -0
- package/dist/services/sync/llm.js.map +1 -0
- package/dist/services/sync/mcp-client.d.ts +59 -0
- package/dist/services/sync/mcp-client.js +285 -0
- package/dist/services/sync/mcp-client.js.map +1 -0
- package/dist/services/sync/model-factory.d.ts +10 -0
- package/dist/services/sync/model-factory.js +24 -0
- package/dist/services/sync/model-factory.js.map +1 -0
- package/dist/services/sync/name-quality.d.ts +31 -0
- package/dist/services/sync/name-quality.js +60 -0
- package/dist/services/sync/name-quality.js.map +1 -0
- package/dist/services/sync/output-schemas.d.ts +92 -0
- package/dist/services/sync/output-schemas.js +43 -0
- package/dist/services/sync/output-schemas.js.map +1 -0
- package/dist/services/sync/prompts.d.ts +19 -0
- package/dist/services/sync/prompts.js +128 -0
- package/dist/services/sync/prompts.js.map +1 -0
- package/dist/services/sync/reconciler.d.ts +48 -0
- package/dist/services/sync/reconciler.js +295 -0
- package/dist/services/sync/reconciler.js.map +1 -0
- package/dist/services/sync/source-config.d.ts +45 -0
- package/dist/services/sync/source-config.js +208 -0
- package/dist/services/sync/source-config.js.map +1 -0
- package/dist/services/sync/source-definitions/asana.d.ts +15 -0
- package/dist/services/sync/source-definitions/asana.js +48 -0
- package/dist/services/sync/source-definitions/asana.js.map +1 -0
- package/dist/services/sync/source-definitions/definitions.d.ts +21 -0
- package/dist/services/sync/source-definitions/definitions.js +26 -0
- package/dist/services/sync/source-definitions/definitions.js.map +1 -0
- package/dist/services/sync/source-definitions/gdrive.d.ts +16 -0
- package/dist/services/sync/source-definitions/gdrive.js +68 -0
- package/dist/services/sync/source-definitions/gdrive.js.map +1 -0
- package/dist/services/sync/source-definitions/granola.d.ts +2 -0
- package/dist/services/sync/source-definitions/granola.js +28 -0
- package/dist/services/sync/source-definitions/granola.js.map +1 -0
- package/dist/services/sync/source-definitions/linear.d.ts +2 -0
- package/dist/services/sync/source-definitions/linear.js +60 -0
- package/dist/services/sync/source-definitions/linear.js.map +1 -0
- package/dist/services/sync/source-definitions/obsidian.d.ts +2 -0
- package/dist/services/sync/source-definitions/obsidian.js +55 -0
- package/dist/services/sync/source-definitions/obsidian.js.map +1 -0
- package/dist/services/sync/source-definitions/pipedrive.d.ts +2 -0
- package/dist/services/sync/source-definitions/pipedrive.js +52 -0
- package/dist/services/sync/source-definitions/pipedrive.js.map +1 -0
- package/dist/services/sync/staging.d.ts +53 -0
- package/dist/services/sync/staging.js +131 -0
- package/dist/services/sync/staging.js.map +1 -0
- package/dist/services/sync/structured-extractor.d.ts +49 -0
- package/dist/services/sync/structured-extractor.js +344 -0
- package/dist/services/sync/structured-extractor.js.map +1 -0
- package/dist/services/sync/sync-runner.d.ts +32 -0
- package/dist/services/sync/sync-runner.js +195 -0
- package/dist/services/sync/sync-runner.js.map +1 -0
- package/dist/services/sync/sync-state.d.ts +43 -0
- package/dist/services/sync/sync-state.js +154 -0
- package/dist/services/sync/sync-state.js.map +1 -0
- package/dist/services/sync/types.d.ts +203 -0
- package/dist/services/sync/types.js +8 -0
- package/dist/services/sync/types.js.map +1 -0
- package/dist/services/sync/unstructured-extractor.d.ts +29 -0
- package/dist/services/sync/unstructured-extractor.js +197 -0
- package/dist/services/sync/unstructured-extractor.js.map +1 -0
- package/dist/services/vector-service.d.ts +11 -0
- package/dist/services/vector-service.js +42 -0
- package/dist/services/vector-service.js.map +1 -1
- package/dist/utils/git.d.ts +31 -4
- package/dist/utils/git.js +65 -7
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/merge-resolver.d.ts +60 -0
- package/dist/utils/merge-resolver.js +304 -0
- package/dist/utils/merge-resolver.js.map +1 -0
- package/dist/utils/preflight.d.ts +2 -1
- package/dist/utils/preflight.js +8 -1
- package/dist/utils/preflight.js.map +1 -1
- package/dist/utils/workspace-config.d.ts +8 -0
- package/dist/utils/workspace-config.js +22 -0
- package/dist/utils/workspace-config.js.map +1 -0
- package/dist/web/_app/env.js +1 -0
- package/dist/web/_app/immutable/assets/0.BwJV4fvl.css +1 -0
- package/dist/web/_app/immutable/assets/2.DRHi7ABa.css +1 -0
- package/dist/web/_app/immutable/assets/3.CnAQdPKU.css +1 -0
- package/dist/web/_app/immutable/assets/4.BG92MufE.css +1 -0
- package/dist/web/_app/immutable/assets/5.CfrQIPYs.css +1 -0
- package/dist/web/_app/immutable/assets/ChatPanel.BNzaCFTL.css +1 -0
- package/dist/web/_app/immutable/assets/editor.D6Rjo7RE.css +1 -0
- package/dist/web/_app/immutable/chunks/4QY4j-jX.js +1 -0
- package/dist/web/_app/immutable/chunks/B4G4uWkV.js +1 -0
- package/dist/web/_app/immutable/chunks/BB_5th5W.js +3383 -0
- package/dist/web/_app/immutable/chunks/CUzqHQY_.js +1 -0
- package/dist/web/_app/immutable/chunks/CYrVHOHA.js +1 -0
- package/dist/web/_app/immutable/chunks/CksE5s8n.js +1 -0
- package/dist/web/_app/immutable/chunks/CqkleIqs.js +1 -0
- package/dist/web/_app/immutable/chunks/D0JBkEPE.js +86 -0
- package/dist/web/_app/immutable/chunks/D2K5GzLj.js +1 -0
- package/dist/web/_app/immutable/chunks/DEkoussQ.js +2 -0
- package/dist/web/_app/immutable/chunks/DW-KmHRi.js +1 -0
- package/dist/web/_app/immutable/chunks/DcCr4z9k.js +1 -0
- package/dist/web/_app/immutable/chunks/Dg2wWwJu.js +2 -0
- package/dist/web/_app/immutable/chunks/Dh_H7Owr.js +18 -0
- package/dist/web/_app/immutable/chunks/DnlgZ_Tk.js +5 -0
- package/dist/web/_app/immutable/chunks/DtVH--hH.js +6 -0
- package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +1 -0
- package/dist/web/_app/immutable/chunks/SBEriEQR.js +1 -0
- package/dist/web/_app/immutable/chunks/WSUKABI_.js +1 -0
- package/dist/web/_app/immutable/chunks/YTERt3Ul.js +6 -0
- package/dist/web/_app/immutable/chunks/m_R7HatS.js +1 -0
- package/dist/web/_app/immutable/chunks/vlmEnjfO.js +1 -0
- package/dist/web/_app/immutable/entry/app.B9pwpU_x.js +2 -0
- package/dist/web/_app/immutable/entry/start.CDuNCEco.js +1 -0
- package/dist/web/_app/immutable/nodes/0.YEQhw1us.js +1 -0
- package/dist/web/_app/immutable/nodes/1.CvmHhpRy.js +1 -0
- package/dist/web/_app/immutable/nodes/2.c5k1r7dq.js +1 -0
- package/dist/web/_app/immutable/nodes/3.B24tcdLK.js +1 -0
- package/dist/web/_app/immutable/nodes/4.kX2m5Pp9.js +16 -0
- package/dist/web/_app/immutable/nodes/5.DELt6wTD.js +2 -0
- package/dist/web/_app/version.json +1 -0
- package/dist/web/index.html +41 -0
- package/package.json +21 -7
- /package/dist/agent/skills/{bundled/gather-context.md → gather-context.md} +0 -0
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ npm install -g studiograph
|
|
|
22
22
|
studiograph init "My Studio"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
This creates a workspace directory with a `.studiograph/` config folder — similar to how Git uses `.git/` — and scaffolds example entities to get you started.
|
|
26
26
|
|
|
27
27
|
To create repos on GitHub during init:
|
|
28
28
|
|
|
@@ -30,13 +30,6 @@ To create repos on GitHub during init:
|
|
|
30
30
|
studiograph init "My Studio" --github --github-org my-org
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
To skip the interactive template picker:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
studiograph init "My Studio" --template design-studio
|
|
37
|
-
studiograph init "My Studio" --bare
|
|
38
|
-
```
|
|
39
|
-
|
|
40
33
|
### Join an Existing Workspace
|
|
41
34
|
|
|
42
35
|
```bash
|
|
@@ -166,6 +159,7 @@ There are 30+ built-in entity types (project, meeting, client, deliverable, prop
|
|
|
166
159
|
| `studiograph connector` | Configure third-party integrations (Linear, Slack, Figma, etc.) |
|
|
167
160
|
| `studiograph app` | Manage installed app plugins |
|
|
168
161
|
| `studiograph r2` | Configure Cloudflare R2 for asset storage |
|
|
162
|
+
| `studiograph source` | Manage sync sources for entity extraction ([configuration reference](docs/sync-configuration.md)) |
|
|
169
163
|
|
|
170
164
|
## Integrations
|
|
171
165
|
|
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
* Manages the Pi-Mono agent instance and coordinates with workspace managers.
|
|
5
5
|
* Loads skills, handles system prompts, and manages conversation flow.
|
|
6
6
|
*/
|
|
7
|
+
import { Agent } from '@mariozechner/pi-agent-core';
|
|
7
8
|
import { WorkspaceManager } from '../core/workspace-manager.js';
|
|
8
9
|
import { WorkspaceConfig } from '../core/types.js';
|
|
9
10
|
import { GitUser } from '../services/git.js';
|
|
11
|
+
import { type MutationEvent } from './tools/graph-tools.js';
|
|
10
12
|
export interface AgentConfig {
|
|
11
13
|
workspacePath: string;
|
|
12
14
|
workspaceConfig: WorkspaceConfig;
|
|
@@ -15,6 +17,8 @@ export interface AgentConfig {
|
|
|
15
17
|
skillsDirs?: string[];
|
|
16
18
|
/** Additional custom tool directories from installed apps (highest-priority first). */
|
|
17
19
|
toolsDirs?: string[];
|
|
20
|
+
/** Recent daily memory content (today + yesterday) injected into system prompt. */
|
|
21
|
+
recentMemory?: string;
|
|
18
22
|
}
|
|
19
23
|
export interface AgentResponse {
|
|
20
24
|
content: string;
|
|
@@ -32,6 +36,12 @@ export declare class AgentOrchestrator {
|
|
|
32
36
|
private gitUser;
|
|
33
37
|
private skillsDirs;
|
|
34
38
|
private toolsDirs;
|
|
39
|
+
private registryRef;
|
|
40
|
+
private _highlightCallback;
|
|
41
|
+
private _mutationCallback;
|
|
42
|
+
private recentMemory?;
|
|
43
|
+
private currentSessionId;
|
|
44
|
+
private sessionsDir;
|
|
35
45
|
constructor(config: AgentConfig);
|
|
36
46
|
/**
|
|
37
47
|
* Create Pi-Mono agent with tools and system prompt.
|
|
@@ -74,4 +84,47 @@ export declare class AgentOrchestrator {
|
|
|
74
84
|
* Get repository names
|
|
75
85
|
*/
|
|
76
86
|
getRepoNames(): string[];
|
|
87
|
+
/**
|
|
88
|
+
* Set a callback for highlight_entities tool events (used by SSE streaming).
|
|
89
|
+
*/
|
|
90
|
+
setHighlightCallback(cb: ((ids: string[]) => void) | null): void;
|
|
91
|
+
/**
|
|
92
|
+
* Emit a highlight event (called by graph-tools highlight_entities).
|
|
93
|
+
*/
|
|
94
|
+
emitHighlight(ids: string[]): void;
|
|
95
|
+
/**
|
|
96
|
+
* Set a callback for entity mutation events (used by SSE streaming).
|
|
97
|
+
*/
|
|
98
|
+
setMutationCallback(cb: ((m: MutationEvent) => void) | null): void;
|
|
99
|
+
/**
|
|
100
|
+
* Emit a mutation event (called by graph-tools create/update/delete).
|
|
101
|
+
*/
|
|
102
|
+
emitMutation(m: MutationEvent): void;
|
|
103
|
+
/**
|
|
104
|
+
* Expose the raw pi-agent-core Agent instance.
|
|
105
|
+
*/
|
|
106
|
+
getAgent(): Agent;
|
|
107
|
+
/**
|
|
108
|
+
* Get the current session ID (null if none active).
|
|
109
|
+
*/
|
|
110
|
+
getCurrentSessionId(): string | null;
|
|
111
|
+
/**
|
|
112
|
+
* Switch the agent to a different session.
|
|
113
|
+
* - Same session → no-op
|
|
114
|
+
* - Existing session file → restore messages from disk
|
|
115
|
+
* - No file but fallback history → inject as context message
|
|
116
|
+
* - Nothing → clear messages for a fresh start
|
|
117
|
+
*/
|
|
118
|
+
switchSession(sessionId: string, fallbackHistory?: Array<{
|
|
119
|
+
role: string;
|
|
120
|
+
content: string;
|
|
121
|
+
}>): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Save the current session's messages to disk.
|
|
124
|
+
*/
|
|
125
|
+
saveSession(): void;
|
|
126
|
+
/**
|
|
127
|
+
* Keep only the N most recent session files by mtime.
|
|
128
|
+
*/
|
|
129
|
+
private pruneSessions;
|
|
77
130
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Manages the Pi-Mono agent instance and coordinates with workspace managers.
|
|
5
5
|
* Loads skills, handles system prompts, and manages conversation flow.
|
|
6
6
|
*/
|
|
7
|
-
import { readFileSync, existsSync } from 'fs';
|
|
7
|
+
import { readFileSync, existsSync, readdirSync, writeFileSync, mkdirSync, unlinkSync, statSync } from 'fs';
|
|
8
8
|
import { join, dirname } from 'path';
|
|
9
9
|
import { homedir } from 'os';
|
|
10
10
|
import { fileURLToPath } from 'url';
|
|
@@ -14,10 +14,14 @@ import { getModel } from '@mariozechner/pi-ai';
|
|
|
14
14
|
import { Agent } from '@mariozechner/pi-agent-core';
|
|
15
15
|
import { WorkspaceManager } from '../core/workspace-manager.js';
|
|
16
16
|
import { createGraphTools } from './tools/graph-tools.js';
|
|
17
|
-
import {
|
|
17
|
+
import { createSyncTools } from './tools/sync-tools.js';
|
|
18
|
+
import { loadSkillIndex, buildSkillIndexPrompt, loadEagerSkills } from './skill-loader.js';
|
|
18
19
|
import { createLoadSkillTool } from './tools/load-skill.js';
|
|
19
20
|
import { loadCustomTools } from './tools/tool-loader.js';
|
|
20
21
|
import { ConnectorManager } from '../mcp/connector-manager.js';
|
|
22
|
+
import { buildConnectorRegistry, createConnectorTools } from './tools/connector-tools.js';
|
|
23
|
+
import { createFsTools } from './tools/fs-tools.js';
|
|
24
|
+
import { createOpsTools } from './tools/ops-tools.js';
|
|
21
25
|
import { loadUserConfig, getAnthropicCredential } from '../core/user-config.js';
|
|
22
26
|
export class AgentOrchestrator {
|
|
23
27
|
workspacePath;
|
|
@@ -27,17 +31,25 @@ export class AgentOrchestrator {
|
|
|
27
31
|
gitUser;
|
|
28
32
|
skillsDirs;
|
|
29
33
|
toolsDirs;
|
|
34
|
+
registryRef = { registry: null };
|
|
35
|
+
_highlightCallback = null;
|
|
36
|
+
_mutationCallback = null;
|
|
37
|
+
recentMemory;
|
|
38
|
+
currentSessionId = null;
|
|
39
|
+
sessionsDir;
|
|
30
40
|
constructor(config) {
|
|
31
41
|
this.workspacePath = config.workspacePath;
|
|
32
42
|
this.config = config.workspaceConfig;
|
|
33
43
|
this.gitUser = config.gitUser;
|
|
44
|
+
this.recentMemory = config.recentMemory;
|
|
45
|
+
this.sessionsDir = join(homedir(), '.studiograph', 'sessions');
|
|
34
46
|
// Priority (highest → lowest): user > workspace > bundled > app
|
|
35
47
|
// First-seen name wins in the loader, so earlier dirs override later ones.
|
|
36
48
|
const userSkillsDir = join(homedir(), '.studiograph', 'skills');
|
|
37
49
|
const userToolsDir = join(homedir(), '.studiograph', 'tools');
|
|
38
50
|
const workspaceSkillsDir = join(this.workspacePath, '.studiograph', 'skills');
|
|
39
51
|
const workspaceToolsDir = join(this.workspacePath, '.studiograph', 'tools');
|
|
40
|
-
const bundledSkillsDir = join(__dirname, 'skills'
|
|
52
|
+
const bundledSkillsDir = join(__dirname, 'skills');
|
|
41
53
|
this.skillsDirs = [userSkillsDir, workspaceSkillsDir, bundledSkillsDir, ...(config.skillsDirs ?? [])];
|
|
42
54
|
this.toolsDirs = [userToolsDir, workspaceToolsDir, ...(config.toolsDirs ?? [])];
|
|
43
55
|
// Initialize workspace manager
|
|
@@ -51,9 +63,9 @@ export class AgentOrchestrator {
|
|
|
51
63
|
* Custom tools and skills are loaded asynchronously via initAsync().
|
|
52
64
|
*/
|
|
53
65
|
createAgent() {
|
|
54
|
-
const provider = this.config.model_provider || 'anthropic';
|
|
55
|
-
const modelId = this.config.model_id || 'claude-sonnet-4-5-20250929';
|
|
56
66
|
const userConfig = loadUserConfig();
|
|
67
|
+
const provider = userConfig.model_provider || this.config.model_provider || 'anthropic';
|
|
68
|
+
const modelId = userConfig.model_id || this.config.model_id || 'claude-sonnet-4-5-20250929';
|
|
57
69
|
const apiKey = getAnthropicCredential(userConfig) || this.config.api_key || process.env.ANTHROPIC_API_KEY || '';
|
|
58
70
|
if (!apiKey) {
|
|
59
71
|
throw new Error('API key not found in config or environment');
|
|
@@ -61,13 +73,18 @@ export class AgentOrchestrator {
|
|
|
61
73
|
const model = getModel(provider, modelId);
|
|
62
74
|
// Build skill index (synchronous — reads markdown frontmatter only)
|
|
63
75
|
const skillIndex = loadSkillIndex(this.skillsDirs);
|
|
64
|
-
// Build
|
|
65
|
-
const systemPrompt = this.buildSystemPrompt(skillIndex);
|
|
66
|
-
// Built-in graph tools + load_skill tool
|
|
76
|
+
// Build tools first so we can auto-generate the tool reference for the prompt
|
|
67
77
|
const tools = [
|
|
68
|
-
...createGraphTools(this.workspaceManager, this.gitUser),
|
|
78
|
+
...createGraphTools(this.workspaceManager, this.gitUser, this.workspacePath, this.emitHighlight.bind(this), this.emitMutation.bind(this)),
|
|
79
|
+
...createSyncTools(this.workspacePath, this.config, this.registryRef),
|
|
80
|
+
...createOpsTools(this.workspacePath, this.config),
|
|
81
|
+
...createFsTools(),
|
|
69
82
|
createLoadSkillTool(skillIndex),
|
|
70
83
|
];
|
|
84
|
+
// Build system prompt — base + auto-generated tool reference + memory + eager skills + skill index
|
|
85
|
+
const systemPrompt = this.buildSystemPrompt(skillIndex, tools, this.recentMemory);
|
|
86
|
+
// Log registered tools at startup
|
|
87
|
+
console.log(`🔧 ${tools.length} tools registered: ${tools.map((t) => t.name).join(', ')}`);
|
|
71
88
|
const agent = new Agent({ getApiKey: () => apiKey });
|
|
72
89
|
agent.setModel(model);
|
|
73
90
|
agent.setSystemPrompt(systemPrompt);
|
|
@@ -88,7 +105,12 @@ export class AgentOrchestrator {
|
|
|
88
105
|
loadCustomTools(this.toolsDirs, context),
|
|
89
106
|
ConnectorManager.buildTools(ConnectorManager.loadConfigs()),
|
|
90
107
|
]).then(([customTools, connectorTools]) => {
|
|
91
|
-
const extra = [...customTools
|
|
108
|
+
const extra = [...customTools];
|
|
109
|
+
if (connectorTools.length > 0) {
|
|
110
|
+
const registry = buildConnectorRegistry(connectorTools);
|
|
111
|
+
extra.push(...createConnectorTools(registry));
|
|
112
|
+
this.registryRef.registry = registry;
|
|
113
|
+
}
|
|
92
114
|
if (extra.length > 0) {
|
|
93
115
|
const existing = agent.state.tools;
|
|
94
116
|
agent.setTools([...existing, ...extra]);
|
|
@@ -100,17 +122,58 @@ export class AgentOrchestrator {
|
|
|
100
122
|
/**
|
|
101
123
|
* Build the full system prompt: base prompt + eager skill content + skill index.
|
|
102
124
|
*/
|
|
103
|
-
buildSystemPrompt(skillIndex) {
|
|
125
|
+
buildSystemPrompt(skillIndex, tools, recentMemory) {
|
|
104
126
|
const promptPath = join(__dirname, 'prompts', 'system.md');
|
|
105
|
-
|
|
127
|
+
let base = existsSync(promptPath)
|
|
106
128
|
? readFileSync(promptPath, 'utf-8')
|
|
107
129
|
: this.getDefaultSystemPrompt();
|
|
130
|
+
// Auto-generate tool reference from registered tools, grouped by category
|
|
131
|
+
const categories = {
|
|
132
|
+
'Entity Management': [],
|
|
133
|
+
'Data Sync & Source Config': [],
|
|
134
|
+
'Enrichment': [],
|
|
135
|
+
'Workspace Git': [],
|
|
136
|
+
'External Connectors': [],
|
|
137
|
+
'Operations': [],
|
|
138
|
+
'Skills': [],
|
|
139
|
+
'Other': [],
|
|
140
|
+
};
|
|
141
|
+
for (const t of tools) {
|
|
142
|
+
if (t.description?.startsWith('DEPRECATED'))
|
|
143
|
+
continue;
|
|
144
|
+
const name = t.name ?? '';
|
|
145
|
+
if (name.startsWith('sync_'))
|
|
146
|
+
categories['Data Sync & Source Config'].push(t);
|
|
147
|
+
else if (name.startsWith('enrich_'))
|
|
148
|
+
categories['Enrichment'].push(t);
|
|
149
|
+
else if (name.startsWith('workspace_'))
|
|
150
|
+
categories['Workspace Git'].push(t);
|
|
151
|
+
else if (name.startsWith('connector_'))
|
|
152
|
+
categories['External Connectors'].push(t);
|
|
153
|
+
else if (name.startsWith('app_') || name.startsWith('deploy_'))
|
|
154
|
+
categories['Operations'].push(t);
|
|
155
|
+
else if (name === 'load_skill')
|
|
156
|
+
categories['Skills'].push(t);
|
|
157
|
+
else if (['create_entity', 'get_entity', 'update_entity', 'delete_entity', 'search_entities', 'list_entities', 'get_related', 'get_backlinks', 'validate_wikilinks', 'get_workspace_summary', 'list_repos', 'query_dataset', 'append_rows', 'get_entity_schema', 'lint_entities'].includes(name))
|
|
158
|
+
categories['Entity Management'].push(t);
|
|
159
|
+
else
|
|
160
|
+
categories['Other'].push(t);
|
|
161
|
+
}
|
|
162
|
+
const toolRef = Object.entries(categories)
|
|
163
|
+
.filter(([, items]) => items.length > 0)
|
|
164
|
+
.map(([cat, items]) => `**${cat}:**\n${items.map((t) => `- \`${t.name}\` — ${t.description}`).join('\n')}`)
|
|
165
|
+
.join('\n\n');
|
|
166
|
+
base = base.replace('{{TOOL_REFERENCE}}', toolRef);
|
|
108
167
|
const parts = [base.trim()];
|
|
109
168
|
// Append workspace schema extensions (org-specific fields and custom types)
|
|
110
169
|
const schemaSection = this.workspaceManager.getSchemaRegistry().toPromptSection();
|
|
111
170
|
if (schemaSection) {
|
|
112
171
|
parts.push(schemaSection);
|
|
113
172
|
}
|
|
173
|
+
// Inject recent memory context (today + yesterday daily memory)
|
|
174
|
+
if (recentMemory) {
|
|
175
|
+
parts.push(`## Memory Context\n\n${recentMemory}`);
|
|
176
|
+
}
|
|
114
177
|
// Inline eager skills directly into the system prompt
|
|
115
178
|
const eagerContent = loadEagerSkills(skillIndex);
|
|
116
179
|
if (eagerContent) {
|
|
@@ -207,5 +270,127 @@ ${repoList}`;
|
|
|
207
270
|
getRepoNames() {
|
|
208
271
|
return this.workspaceManager.getRepoNames();
|
|
209
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* Set a callback for highlight_entities tool events (used by SSE streaming).
|
|
275
|
+
*/
|
|
276
|
+
setHighlightCallback(cb) {
|
|
277
|
+
this._highlightCallback = cb;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Emit a highlight event (called by graph-tools highlight_entities).
|
|
281
|
+
*/
|
|
282
|
+
emitHighlight(ids) {
|
|
283
|
+
this._highlightCallback?.(ids);
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Set a callback for entity mutation events (used by SSE streaming).
|
|
287
|
+
*/
|
|
288
|
+
setMutationCallback(cb) {
|
|
289
|
+
this._mutationCallback = cb;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Emit a mutation event (called by graph-tools create/update/delete).
|
|
293
|
+
*/
|
|
294
|
+
emitMutation(m) {
|
|
295
|
+
this._mutationCallback?.(m);
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Expose the raw pi-agent-core Agent instance.
|
|
299
|
+
*/
|
|
300
|
+
getAgent() {
|
|
301
|
+
return this.agent;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Get the current session ID (null if none active).
|
|
305
|
+
*/
|
|
306
|
+
getCurrentSessionId() {
|
|
307
|
+
return this.currentSessionId;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Switch the agent to a different session.
|
|
311
|
+
* - Same session → no-op
|
|
312
|
+
* - Existing session file → restore messages from disk
|
|
313
|
+
* - No file but fallback history → inject as context message
|
|
314
|
+
* - Nothing → clear messages for a fresh start
|
|
315
|
+
*/
|
|
316
|
+
async switchSession(sessionId, fallbackHistory) {
|
|
317
|
+
if (this.currentSessionId === sessionId)
|
|
318
|
+
return;
|
|
319
|
+
// Save current session before switching
|
|
320
|
+
if (this.currentSessionId) {
|
|
321
|
+
this.saveSession();
|
|
322
|
+
}
|
|
323
|
+
this.currentSessionId = sessionId;
|
|
324
|
+
this.agent.sessionId = sessionId;
|
|
325
|
+
// Try loading from disk
|
|
326
|
+
const sessionPath = join(this.sessionsDir, `${sessionId}.json`);
|
|
327
|
+
if (existsSync(sessionPath)) {
|
|
328
|
+
try {
|
|
329
|
+
const data = JSON.parse(readFileSync(sessionPath, 'utf-8'));
|
|
330
|
+
if (Array.isArray(data.messages) && data.messages.length > 0) {
|
|
331
|
+
this.agent.replaceMessages(data.messages);
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
// Corrupted file — fall through
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
// Fallback: inject frontend history as a context message
|
|
340
|
+
if (fallbackHistory && fallbackHistory.length > 0) {
|
|
341
|
+
const transcript = fallbackHistory
|
|
342
|
+
.map(m => `${m.role === 'assistant' ? 'Assistant' : 'User'}: ${m.content}`)
|
|
343
|
+
.join('\n\n');
|
|
344
|
+
const contextMsg = {
|
|
345
|
+
role: 'user',
|
|
346
|
+
content: [{ type: 'text', text: `[Prior conversation context]\n\n${transcript}` }],
|
|
347
|
+
timestamp: Date.now(),
|
|
348
|
+
};
|
|
349
|
+
this.agent.replaceMessages([contextMsg]);
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
// Fresh start
|
|
353
|
+
this.agent.clearMessages();
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Save the current session's messages to disk.
|
|
357
|
+
*/
|
|
358
|
+
saveSession() {
|
|
359
|
+
if (!this.currentSessionId)
|
|
360
|
+
return;
|
|
361
|
+
const messages = this.agent.state.messages;
|
|
362
|
+
if (messages.length === 0)
|
|
363
|
+
return;
|
|
364
|
+
if (!existsSync(this.sessionsDir)) {
|
|
365
|
+
mkdirSync(this.sessionsDir, { recursive: true });
|
|
366
|
+
}
|
|
367
|
+
const sessionPath = join(this.sessionsDir, `${this.currentSessionId}.json`);
|
|
368
|
+
writeFileSync(sessionPath, JSON.stringify({
|
|
369
|
+
sessionId: this.currentSessionId,
|
|
370
|
+
updatedAt: new Date().toISOString(),
|
|
371
|
+
messages,
|
|
372
|
+
}), 'utf-8');
|
|
373
|
+
this.pruneSessions(20);
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Keep only the N most recent session files by mtime.
|
|
377
|
+
*/
|
|
378
|
+
pruneSessions(keep) {
|
|
379
|
+
if (!existsSync(this.sessionsDir))
|
|
380
|
+
return;
|
|
381
|
+
const files = readdirSync(this.sessionsDir)
|
|
382
|
+
.filter(f => f.endsWith('.json'))
|
|
383
|
+
.map(f => {
|
|
384
|
+
const p = join(this.sessionsDir, f);
|
|
385
|
+
return { name: f, path: p, mtime: statSync(p).mtimeMs };
|
|
386
|
+
})
|
|
387
|
+
.sort((a, b) => b.mtime - a.mtime);
|
|
388
|
+
for (const file of files.slice(keep)) {
|
|
389
|
+
try {
|
|
390
|
+
unlinkSync(file.path);
|
|
391
|
+
}
|
|
392
|
+
catch { /* ignore */ }
|
|
393
|
+
}
|
|
394
|
+
}
|
|
210
395
|
}
|
|
211
396
|
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,9 @@ You can help users with:
|
|
|
29
29
|
|
|
30
30
|
## Guidelines
|
|
31
31
|
|
|
32
|
-
**Be
|
|
33
|
-
-
|
|
32
|
+
**Be Action-Oriented:**
|
|
33
|
+
- When you have a tool that can answer a question, call it first — then discuss results
|
|
34
|
+
- Don't ask users to provide information you can look up yourself (e.g. source configs, workspace status, entity data)
|
|
34
35
|
- Explain what you're doing and why
|
|
35
36
|
- Suggest next steps proactively
|
|
36
37
|
|
|
@@ -46,6 +47,11 @@ You can help users with:
|
|
|
46
47
|
- Recommend useful searches or queries
|
|
47
48
|
- Help users discover patterns in their knowledge graph
|
|
48
49
|
|
|
50
|
+
**Communication Style:**
|
|
51
|
+
- NEVER use emojis or emoticons in any response — no exceptions
|
|
52
|
+
- Use plain text only: dashes, bullets, and bold for emphasis
|
|
53
|
+
- Keep language clear, direct, and professional
|
|
54
|
+
|
|
49
55
|
**Respect Structure:**
|
|
50
56
|
- Follow the established entity schemas
|
|
51
57
|
- Maintain consistent naming conventions (kebab-case IDs)
|
|
@@ -84,7 +90,7 @@ You have access to the following entity types:
|
|
|
84
90
|
- `practice-area`: Firm capabilities and disciplines (e.g. Data Visualization, UX Design)
|
|
85
91
|
- `case-study`: Portfolio narratives for completed projects (objective, solution, outcome, team, press, awards)
|
|
86
92
|
|
|
87
|
-
**App Types
|
|
93
|
+
**App Types** (repo auto-resolved — no need to specify `repo` for these):
|
|
88
94
|
- `dataset`: Tabular data with a declared column schema (name, type, required). Body is raw CSV. Use for time tracking, budgets, rosters, inventories.
|
|
89
95
|
- `deck`: Presentation deck entity (rendered by the Schema Slides app)
|
|
90
96
|
|
|
@@ -149,15 +155,41 @@ When a user says "make it private", "keep this to myself", "don't share this", o
|
|
|
149
155
|
|
|
150
156
|
## Tools
|
|
151
157
|
|
|
152
|
-
You have access to
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
158
|
+
You have access to tools in the following categories:
|
|
159
|
+
|
|
160
|
+
**Entity Management** — CRUD operations on knowledge graph entities, wikilink traversal, search, schema queries, datasets, and linting.
|
|
161
|
+
|
|
162
|
+
**Data Sync** — Import data from external sources (Pipedrive, Linear, Granola, Obsidian, etc.) through the sync pipeline: extract → reconcile → stage → apply.
|
|
163
|
+
|
|
164
|
+
**Enrichment** — LLM-powered enrichment of sparse entities using cross-source context.
|
|
165
|
+
|
|
166
|
+
**Workspace Git** — Check uncommitted changes, review diffs, and commit across all workspace repos. Use these when users ask about pending changes or want to commit.
|
|
167
|
+
|
|
168
|
+
**Skills** — Load domain-specific guidance on demand (see "Available Skills" below).
|
|
169
|
+
|
|
170
|
+
### Tool Selection
|
|
171
|
+
|
|
172
|
+
**IMPORTANT — match user intent to the right tool category:**
|
|
173
|
+
- "source config", "sync config", "field map", "mappings" → `sync_list_sources` (NOT entity search)
|
|
174
|
+
- "uncommitted changes", "what changed", "pending changes" → `workspace_status`
|
|
175
|
+
- "show diff", "review changes" → `workspace_review`
|
|
176
|
+
- "commit", "save changes" → `workspace_commit`
|
|
177
|
+
- Source configs are NOT entities — they live in `.studiograph/sources/` and are accessed via sync tools, not entity tools.
|
|
178
|
+
|
|
179
|
+
### Tool Reference
|
|
180
|
+
|
|
181
|
+
{{TOOL_REFERENCE}}
|
|
182
|
+
|
|
183
|
+
Use these tools to help users build, navigate, and synchronize their knowledge graph effectively.
|
|
184
|
+
|
|
185
|
+
## Deployment
|
|
186
|
+
|
|
187
|
+
The workspace may be deployed to Railway as a hosted server. Key facts:
|
|
159
188
|
|
|
160
|
-
|
|
189
|
+
- **Pushing does not auto-deploy.** `workspace_push` sends commits to GitHub, but Railway does NOT automatically pull or redeploy. You must call `redeploy_railway` after pushing to update the deployed server.
|
|
190
|
+
- **The deploy flow is: commit → push → redeploy.** Always follow this sequence when the user wants changes live on the server.
|
|
191
|
+
- **Credentials are stored locally.** Railway token lives in `~/.studiograph/user.json`, GitHub PAT in `~/.studiograph/auth.json`. The deploy and redeploy tools read these automatically — do not ask the user for tokens unless they are genuinely missing.
|
|
192
|
+
- **First-time setup** uses `deploy_railway`. **Subsequent updates** use `redeploy_railway` (zero parameters).
|
|
161
193
|
|
|
162
194
|
## Remember
|
|
163
195
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Loader — prompt skills for the Studiograph agent.
|
|
3
|
+
*
|
|
4
|
+
* Skills are markdown files with YAML frontmatter that inject domain-specific
|
|
5
|
+
* knowledge into the agent's system prompt. Two formats supported:
|
|
6
|
+
*
|
|
7
|
+
* Directory skill:
|
|
8
|
+
* skills/create-deck/
|
|
9
|
+
* skill.md ← required entrypoint
|
|
10
|
+
* slide-types.md ← optional sub-files
|
|
11
|
+
*
|
|
12
|
+
* Single-file skill:
|
|
13
|
+
* skills/quick-tip.md
|
|
14
|
+
*
|
|
15
|
+
* Frontmatter fields:
|
|
16
|
+
* name: kebab-case identifier (defaults to directory/filename)
|
|
17
|
+
* description: shown in skill index so agent knows when to load it
|
|
18
|
+
* loading: "on-demand" (default) | "eager" (inlined in system prompt)
|
|
19
|
+
*/
|
|
20
|
+
export interface SkillMeta {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
loading: 'eager' | 'on-demand';
|
|
24
|
+
dir: string;
|
|
25
|
+
entrypoint: string;
|
|
26
|
+
isDirectory: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Scan one or more skill directories and return a de-duplicated skill index.
|
|
30
|
+
* Directories are processed in order — first occurrence of a name wins,
|
|
31
|
+
* so workspace-level skills override app-bundled skills.
|
|
32
|
+
*/
|
|
33
|
+
export declare function loadSkillIndex(skillsDirs: string[]): SkillMeta[];
|
|
34
|
+
/**
|
|
35
|
+
* Load the full content of a skill's entrypoint or a named sub-file.
|
|
36
|
+
* Sanitises the file parameter to prevent path traversal.
|
|
37
|
+
*/
|
|
38
|
+
export declare function loadSkillContent(meta: SkillMeta, file?: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Build the skill index section to append to the system prompt.
|
|
41
|
+
* Eager skills are inlined separately; this lists only on-demand skills.
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildSkillIndexPrompt(skills: SkillMeta[]): string;
|
|
44
|
+
/**
|
|
45
|
+
* Return the full content of all eager skills, to be injected directly
|
|
46
|
+
* into the system prompt at startup.
|
|
47
|
+
*/
|
|
48
|
+
export declare function loadEagerSkills(skills: SkillMeta[]): string;
|