@first-to-fly/orchestrator-mcp 0.2.11 → 0.2.12
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 +95 -86
- package/dist/client.d.ts +22 -10
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +81 -64
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -3
- package/dist/config.js.map +1 -1
- package/dist/hooks/pre-compact.js +4 -4
- package/dist/hooks/pre-compact.js.map +1 -1
- package/dist/hooks/session-start.d.ts +0 -9
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/hooks/session-start.js +2 -44
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/hooks/stop.d.ts +0 -10
- package/dist/hooks/stop.d.ts.map +1 -1
- package/dist/hooks/stop.js +2 -38
- package/dist/hooks/stop.js.map +1 -1
- package/dist/hooks/utils.d.ts.map +1 -1
- package/dist/hooks/utils.js +6 -6
- package/dist/hooks/utils.js.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/init.js +81 -104
- package/dist/init.js.map +1 -1
- package/dist/scaffold.d.ts +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +186 -118
- package/dist/scaffold.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +29 -10
- package/dist/server.js.map +1 -1
- package/dist/tools.d.ts +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +1005 -765
- package/dist/tools.js.map +1 -1
- package/dist/uninit.js +21 -19
- package/dist/uninit.js.map +1 -1
- package/package.json +10 -3
package/README.md
CHANGED
|
@@ -29,6 +29,7 @@ pnpm dlx @first-to-fly/orchestrator-mcp@latest init
|
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
This will:
|
|
32
|
+
|
|
32
33
|
- Prompt for your API URL, key, and project slug
|
|
33
34
|
- Validate the API key against the server
|
|
34
35
|
- Create `.mcp.json` with the MCP server config
|
|
@@ -61,11 +62,11 @@ If you prefer to configure manually, create these files in your project root.
|
|
|
61
62
|
|
|
62
63
|
### Environment Variables
|
|
63
64
|
|
|
64
|
-
| Variable
|
|
65
|
-
|
|
66
|
-
| `ORCHESTRATOR_API_URL` | API endpoint (e.g. `https://orchestrator.firsttofly.com/api/v1`) | Yes
|
|
67
|
-
| `ORCHESTRATOR_API_KEY` | Project API key (starts with `ftfo_`)
|
|
68
|
-
| `ORCHESTRATOR_PROJECT` | Project slug
|
|
65
|
+
| Variable | Description | Required |
|
|
66
|
+
| ---------------------- | ---------------------------------------------------------------- | -------- |
|
|
67
|
+
| `ORCHESTRATOR_API_URL` | API endpoint (e.g. `https://orchestrator.firsttofly.com/api/v1`) | Yes |
|
|
68
|
+
| `ORCHESTRATOR_API_KEY` | Project API key (starts with `ftfo_`) | Yes |
|
|
69
|
+
| `ORCHESTRATOR_PROJECT` | Project slug | Yes |
|
|
69
70
|
|
|
70
71
|
## How Context Transfers Between Sessions
|
|
71
72
|
|
|
@@ -79,101 +80,101 @@ This works identically for local development, CI pipelines, and team members bec
|
|
|
79
80
|
|
|
80
81
|
### Recall & Search
|
|
81
82
|
|
|
82
|
-
| Tool
|
|
83
|
-
|
|
84
|
-
| `recall_context`
|
|
85
|
-
| `search_memory`
|
|
86
|
-
| `list_recent`
|
|
87
|
-
| `get_entity`
|
|
88
|
-
| `get_last_session` | Get the previous session's handoff summary directly.
|
|
89
|
-
| `search_sessions`
|
|
83
|
+
| Tool | What it does |
|
|
84
|
+
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
85
|
+
| `recall_context` | Retrieve relevant memory for a task. Returns scored entity summaries + last session + matching recipes. The primary entry point — call this at the start of every session. |
|
|
86
|
+
| `search_memory` | Search stored knowledge by keyword. Useful when you know what you're looking for (e.g. "authentication" or "deployment"). |
|
|
87
|
+
| `list_recent` | Browse the most recently updated entities, optionally filtered by type. Good for seeing what was stored recently. |
|
|
88
|
+
| `get_entity` | Fetch the full content of a specific entity by type and ID. Use after `recall_context` or `search_memory` returns a summary you need details on. |
|
|
89
|
+
| `get_last_session` | Get the previous session's handoff summary directly. |
|
|
90
|
+
| `search_sessions` | Search across past session summaries by keyword. Find what was done in previous sessions. |
|
|
90
91
|
|
|
91
92
|
### Store & Update
|
|
92
93
|
|
|
93
|
-
| Tool
|
|
94
|
-
|
|
95
|
-
| `store_entity`
|
|
96
|
-
| `store_entities`
|
|
97
|
-
| `update_entity`
|
|
98
|
-
| `delete_entity`
|
|
99
|
-
| `store_relationship` | Link two entities with a typed relationship: `depends_on`, `relates_to`, `supersedes`, `caused_by`, `part_of`, or `implements`.
|
|
100
|
-
| `add_observation`
|
|
101
|
-
| `scaffold_project`
|
|
94
|
+
| Tool | What it does |
|
|
95
|
+
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
96
|
+
| `store_entity` | Store a knowledge entity. Deduplicates by type+name — if an entity with the same type and name exists, it updates instead of creating a duplicate. Supports 8 types: `module`, `decision`, `pattern`, `requirement`, `error`, `task`, `observation`, `session`. |
|
|
97
|
+
| `store_entities` | Bulk store up to 50 entities in one call. Same deduplication logic. |
|
|
98
|
+
| `update_entity` | Update an existing entity's name, content, tags, or status. Supports optimistic concurrency via `expected_version`. |
|
|
99
|
+
| `delete_entity` | Delete an entity. Defaults to dry-run mode — set `dry_run: false` to request deletion, which requires human approval. |
|
|
100
|
+
| `store_relationship` | Link two entities with a typed relationship: `depends_on`, `relates_to`, `supersedes`, `caused_by`, `part_of`, or `implements`. |
|
|
101
|
+
| `add_observation` | Shortcut to store an observation entity. Use for quick insights that don't fit other types. |
|
|
102
|
+
| `scaffold_project` | Auto-generate module, decision, and pattern entities from codebase structure. Safe to re-run — deduplicates. |
|
|
102
103
|
|
|
103
104
|
### Sessions
|
|
104
105
|
|
|
105
|
-
| Tool
|
|
106
|
-
|
|
106
|
+
| Tool | What it does |
|
|
107
|
+
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
107
108
|
| `save_session_summary` | Save a structured handoff for the next session. Include: summary, tasks completed/in-progress, blockers, files modified, decisions made, next steps. |
|
|
108
109
|
|
|
109
110
|
### Error Lifecycle
|
|
110
111
|
|
|
111
|
-
| Tool
|
|
112
|
-
|
|
113
|
-
| `check_error`
|
|
114
|
-
| `resolve_error` | Mark an error entity as resolved with the fix and root cause. Completes the check → fix → resolve lifecycle so future sessions benefit.
|
|
112
|
+
| Tool | What it does |
|
|
113
|
+
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
114
|
+
| `check_error` | Before debugging from scratch, check if a similar error was seen and resolved before. Matches on error message and optional stack trace. |
|
|
115
|
+
| `resolve_error` | Mark an error entity as resolved with the fix and root cause. Completes the check → fix → resolve lifecycle so future sessions benefit. |
|
|
115
116
|
|
|
116
117
|
### Work Queue
|
|
117
118
|
|
|
118
|
-
| Tool
|
|
119
|
-
|
|
119
|
+
| Tool | What it does |
|
|
120
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
120
121
|
| `claim_next_task` | Claim the highest-priority unclaimed work item. Returns the task context and a claim token. Work items can be created from GitHub/Slack webhooks or manually. |
|
|
121
|
-
| `complete_task`
|
|
122
|
-
| `fail_task`
|
|
122
|
+
| `complete_task` | Mark a claimed work item as done with a result summary and optional validation artifacts (test results, diffs, logs). |
|
|
123
|
+
| `fail_task` | Mark a claimed work item as failed. If under the retry limit, it's automatically requeued. |
|
|
123
124
|
|
|
124
125
|
### Recipes
|
|
125
126
|
|
|
126
|
-
| Tool
|
|
127
|
-
|
|
128
|
-
| `get_recipe`
|
|
129
|
-
| `list_recipes` | List all available recipes for the project.
|
|
127
|
+
| Tool | What it does |
|
|
128
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
129
|
+
| `get_recipe` | Fetch a prompt template by name. Recipes can reference entities and accept variables — they're auto-suggested during recall when context matches. |
|
|
130
|
+
| `list_recipes` | List all available recipes for the project. |
|
|
130
131
|
|
|
131
132
|
### Built-in Recipes
|
|
132
133
|
|
|
133
|
-
| Recipe
|
|
134
|
-
|
|
135
|
-
| `debug-error`
|
|
136
|
-
| `new-module`
|
|
137
|
-
| `session-handoff`
|
|
138
|
-
| `knowledge-capture`
|
|
139
|
-
| `bootstrap-knowledge` | bootstrap, scaffold, index project
|
|
140
|
-
| `investigate-area`
|
|
141
|
-
| `capture-spec`
|
|
142
|
-
| `implement-from-spec` | implement spec, implement requirement, build feature | Implement a feature by reviewing its stored requirements first
|
|
134
|
+
| Recipe | Triggers | What it does |
|
|
135
|
+
| --------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
136
|
+
| `debug-error` | debug, error, fix, bug | Guided error debugging workflow: check → investigate → store → resolve |
|
|
137
|
+
| `new-module` | new module, create module, scaffold | Scaffold a new backend module following conventions |
|
|
138
|
+
| `session-handoff` | end session, wrap up, done for today | Template for saving a complete session summary |
|
|
139
|
+
| `knowledge-capture` | learned, discovery, insight, remember | Decision tree for choosing the right entity type |
|
|
140
|
+
| `bootstrap-knowledge` | bootstrap, scaffold, index project | Comprehensive codebase analysis and knowledge indexing |
|
|
141
|
+
| `investigate-area` | how does, understand, explore | Systematic approach to understanding a code area |
|
|
142
|
+
| `capture-spec` | spec, requirement, feature, user story | Capture requirements as versioned, structured entities |
|
|
143
|
+
| `implement-from-spec` | implement spec, implement requirement, build feature | Implement a feature by reviewing its stored requirements first |
|
|
143
144
|
|
|
144
145
|
### Maintenance
|
|
145
146
|
|
|
146
|
-
| Tool
|
|
147
|
-
|
|
148
|
-
| `prune_stale`
|
|
149
|
-
| `check_staleness` | List all entities past their type's staleness window. Helps identify knowledge that may need updating or removal.
|
|
150
|
-
| `track_files`
|
|
147
|
+
| Tool | What it does |
|
|
148
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
149
|
+
| `prune_stale` | Remove entities that haven't been accessed and are older than a threshold (default: 90 days). Dry-run by default — set `confirm: true` to actually delete. Protected types (session, decision, pattern) are never auto-pruned. |
|
|
150
|
+
| `check_staleness` | List all entities past their type's staleness window. Helps identify knowledge that may need updating or removal. |
|
|
151
|
+
| `track_files` | Record which files were modified and why. Stored as a tagged observation for cross-session queryability. |
|
|
151
152
|
|
|
152
153
|
### Approvals
|
|
153
154
|
|
|
154
|
-
| Tool
|
|
155
|
-
|
|
155
|
+
| Tool | What it does |
|
|
156
|
+
| ------------------ | ----------------------------------------------------------------------------------------------------------------- |
|
|
156
157
|
| `request_approval` | Request human approval for a destructive action (delete, prune, bulk operations). Returns an approval ID to poll. |
|
|
157
|
-
| `check_approval`
|
|
158
|
+
| `check_approval` | Check the status of a pending approval request. |
|
|
158
159
|
|
|
159
160
|
### Analytics
|
|
160
161
|
|
|
161
|
-
| Tool
|
|
162
|
-
|
|
162
|
+
| Tool | What it does |
|
|
163
|
+
| --------------------- | --------------------------------------------------------------------------------------------- |
|
|
163
164
|
| `report_session_cost` | Report token usage and estimated cost for the current session. Feeds the analytics dashboard. |
|
|
164
165
|
|
|
165
166
|
## Entity Types
|
|
166
167
|
|
|
167
|
-
| Type
|
|
168
|
-
|
|
169
|
-
| `module`
|
|
170
|
-
| `decision`
|
|
171
|
-
| `pattern`
|
|
172
|
-
| `requirement` | Specs and requirements with acceptance criteria
|
|
173
|
-
| `error`
|
|
174
|
-
| `task`
|
|
175
|
-
| `observation` | Quick insights and notes
|
|
176
|
-
| `session`
|
|
168
|
+
| Type | Purpose | Stale after | TTL | Protected |
|
|
169
|
+
| ------------- | ------------------------------------------------------------- | ----------- | --------- | --------- |
|
|
170
|
+
| `module` | Code areas and architecture | 180 days | Permanent | No |
|
|
171
|
+
| `decision` | Architectural choices with rationale, alternatives, tradeoffs | 365 days | Permanent | Yes |
|
|
172
|
+
| `pattern` | Reusable approaches with example files and anti-patterns | 365 days | Permanent | Yes |
|
|
173
|
+
| `requirement` | Specs and requirements with acceptance criteria | 365 days | Permanent | Yes |
|
|
174
|
+
| `error` | Bug + fix pairs with stack traces and root cause | 60 days | 90 days | No |
|
|
175
|
+
| `task` | Completed work with files modified and outcome | 30 days | 90 days | No |
|
|
176
|
+
| `observation` | Quick insights and notes | 60 days | 90 days | No |
|
|
177
|
+
| `session` | Structured handoff summaries between sessions | 180 days | 180 days | Yes |
|
|
177
178
|
|
|
178
179
|
Protected types are never auto-pruned by `prune_stale`.
|
|
179
180
|
|
|
@@ -181,12 +182,12 @@ Protected types are never auto-pruned by `prune_stale`.
|
|
|
181
182
|
|
|
182
183
|
Requirements support additional structured fields via `store_entity`:
|
|
183
184
|
|
|
184
|
-
| Field
|
|
185
|
-
|
|
186
|
-
| `acceptance_criteria` | Testable conditions (WHEN/THEN or checklist)
|
|
187
|
-
| `priority`
|
|
188
|
-
| `requirement_source`
|
|
189
|
-
| `scope`
|
|
185
|
+
| Field | Description | Example |
|
|
186
|
+
| --------------------- | --------------------------------------------- | ----------------------------------------------- |
|
|
187
|
+
| `acceptance_criteria` | Testable conditions (WHEN/THEN or checklist) | `"WHEN user clicks submit THEN form validates"` |
|
|
188
|
+
| `priority` | `must-have`, `should-have`, or `nice-to-have` | `"must-have"` |
|
|
189
|
+
| `requirement_source` | Origin of the requirement | `"Product spec v2"`, `"ticket-123"` |
|
|
190
|
+
| `scope` | Affected modules or areas | `"payments, checkout"` |
|
|
190
191
|
|
|
191
192
|
### Version History
|
|
192
193
|
|
|
@@ -216,35 +217,43 @@ The `init` command appends this protocol to your `CLAUDE.md`. It tells Claude Co
|
|
|
216
217
|
## Orchestrator Protocol
|
|
217
218
|
|
|
218
219
|
### Session Start
|
|
220
|
+
|
|
219
221
|
- Context is auto-injected via hook (last session + recalled memory)
|
|
220
222
|
- Call `recall_context` with your task description for relevant knowledge
|
|
221
223
|
|
|
222
224
|
### Progressive Retrieval
|
|
225
|
+
|
|
223
226
|
- `recall_context` and `search_memory` return summaries by default
|
|
224
227
|
- Use `get_entity(type, id)` only for entities you need full content from
|
|
225
228
|
|
|
226
229
|
### Error Resolution
|
|
230
|
+
|
|
227
231
|
- Call `check_error` before debugging from scratch — it may have a known fix
|
|
228
232
|
|
|
229
233
|
### Save Triggers
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
|
233
|
-
|
|
|
234
|
-
|
|
|
235
|
-
|
|
|
236
|
-
|
|
|
237
|
-
|
|
|
238
|
-
|
|
|
234
|
+
|
|
235
|
+
| Trigger | Entity Type |
|
|
236
|
+
| ---------------------- | ------------- |
|
|
237
|
+
| Architectural choice | `decision` |
|
|
238
|
+
| Reusable pattern found | `pattern` |
|
|
239
|
+
| Bug fixed | `error` |
|
|
240
|
+
| Task completed | `task` |
|
|
241
|
+
| Module created | `module` |
|
|
242
|
+
| Requirement clarified | `requirement` |
|
|
243
|
+
| Quick insight | `observation` |
|
|
239
244
|
|
|
240
245
|
### Relationships
|
|
246
|
+
|
|
241
247
|
Link related entities: `depends_on`, `supersedes`, `caused_by`, `implements`, `part_of`, `relates_to`
|
|
242
248
|
|
|
243
249
|
### Session Handoff
|
|
250
|
+
|
|
244
251
|
Before ending a session, call `save_session_summary` with:
|
|
252
|
+
|
|
245
253
|
- summary, tasksCompleted, tasksInProgress, blockers, filesModified, decisionsMade, nextSteps
|
|
246
254
|
|
|
247
255
|
### Maintenance
|
|
256
|
+
|
|
248
257
|
- `prune_stale` — remove unaccessed entities (dry run by default)
|
|
249
258
|
- `list_recent` — browse stored knowledge
|
|
250
259
|
- `search_memory` — find specific entities
|
|
@@ -259,11 +268,11 @@ The `init` command sets up two hooks in `.claude/settings.local.json`:
|
|
|
259
268
|
|
|
260
269
|
## Works Everywhere
|
|
261
270
|
|
|
262
|
-
| Environment
|
|
263
|
-
|
|
264
|
-
| Local developer | MCP server in Claude Code settings | Full memory — recall, store, queue, recipes
|
|
265
|
-
| CI agent
|
|
266
|
-
| Team member
|
|
271
|
+
| Environment | How it connects | What it gets |
|
|
272
|
+
| --------------- | ---------------------------------- | ------------------------------------------------------------------------- |
|
|
273
|
+
| Local developer | MCP server in Claude Code settings | Full memory — recall, store, queue, recipes |
|
|
274
|
+
| CI agent | Same MCP config with API key | Same memory — PR review agents recall project patterns and past decisions |
|
|
275
|
+
| Team member | Shared project, own API key | Shared knowledge — one developer stores a decision, another recalls it |
|
|
267
276
|
|
|
268
277
|
## Links
|
|
269
278
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OrchestratorConfig } from
|
|
1
|
+
import type { OrchestratorConfig } from "./config";
|
|
2
2
|
export declare class OrchestratorClient {
|
|
3
3
|
private config;
|
|
4
4
|
private sessionId;
|
|
@@ -40,13 +40,6 @@ export declare class OrchestratorClient {
|
|
|
40
40
|
dryRun?: boolean;
|
|
41
41
|
approvalId?: string;
|
|
42
42
|
}): Promise<any>;
|
|
43
|
-
listEntities(options?: {
|
|
44
|
-
type?: string;
|
|
45
|
-
limit?: number;
|
|
46
|
-
}): Promise<{
|
|
47
|
-
items: any[];
|
|
48
|
-
cursor?: string;
|
|
49
|
-
}>;
|
|
50
43
|
getEntityVersions(type: string, id: string, options?: {
|
|
51
44
|
limit?: number;
|
|
52
45
|
cursor?: string;
|
|
@@ -103,7 +96,6 @@ export declare class OrchestratorClient {
|
|
|
103
96
|
limit?: number;
|
|
104
97
|
previewChars?: number;
|
|
105
98
|
}): Promise<any[]>;
|
|
106
|
-
checkStaleness(): Promise<any[]>;
|
|
107
99
|
pruneStale(options?: {
|
|
108
100
|
olderThanDays?: number;
|
|
109
101
|
confirm?: boolean;
|
|
@@ -140,7 +132,6 @@ export declare class OrchestratorClient {
|
|
|
140
132
|
composeSpec(rootId: string, options?: {
|
|
141
133
|
includeSuperseded?: boolean;
|
|
142
134
|
}): Promise<any>;
|
|
143
|
-
smoothSpec(rootId: string): Promise<any>;
|
|
144
135
|
uploadSmoothedContent(rootId: string, smoothedContent: string, contentHash?: string): Promise<any>;
|
|
145
136
|
presignAttachmentUpload(data: {
|
|
146
137
|
fileName: string;
|
|
@@ -162,6 +153,27 @@ export declare class OrchestratorClient {
|
|
|
162
153
|
downloadUrl: string;
|
|
163
154
|
}>;
|
|
164
155
|
deleteAttachment(id: string): Promise<void>;
|
|
156
|
+
createWorkItem(data: {
|
|
157
|
+
title: string;
|
|
158
|
+
description: string;
|
|
159
|
+
priority?: number;
|
|
160
|
+
entityRefs?: string[];
|
|
161
|
+
dedupeKey?: string;
|
|
162
|
+
maxRetries?: number;
|
|
163
|
+
}): Promise<any>;
|
|
164
|
+
listWorkItems(options?: {
|
|
165
|
+
status?: string;
|
|
166
|
+
limit?: number;
|
|
167
|
+
cursor?: string;
|
|
168
|
+
}): Promise<{
|
|
169
|
+
items: any[];
|
|
170
|
+
cursor?: string;
|
|
171
|
+
}>;
|
|
172
|
+
findSimilar(data: {
|
|
173
|
+
content: string;
|
|
174
|
+
type?: string;
|
|
175
|
+
excludeId?: string;
|
|
176
|
+
}): Promise<any[]>;
|
|
165
177
|
logToolCall(tool: string, durationMs: number, isError: boolean): Promise<void>;
|
|
166
178
|
reportSessionCost(data: {
|
|
167
179
|
inputTokens: number;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|