overlord-cli 0.2607122001.0 → 0.2607141512.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -11
- package/dist/connectors/README.md +2 -1
- package/dist/connectors/VERSION +1 -1
- package/dist/connectors/adapters/antigravity/plugin.json +1 -1
- package/dist/connectors/adapters/antigravity/scripts/overlord-mcp.mjs +1 -1
- package/dist/connectors/adapters/claude/.claude-plugin/plugin.json +10 -2
- package/dist/connectors/adapters/codex/.codex-plugin/plugin.json +8 -3
- package/dist/connectors/adapters/codex/scripts/overlord-mcp.mjs +1 -1
- package/dist/connectors/adapters/cursor/.cursor-plugin/plugin.json +15 -3
- package/dist/connectors/adapters/cursor/scripts/overlord-mcp.mjs +1 -1
- package/dist/connectors/adapters/pi/README.md +42 -0
- package/dist/connectors/adapters/pi/conformance-manifest.yaml +27 -0
- package/dist/connectors/adapters/pi/extensions/overlord.ts +70 -0
- package/dist/connectors/adapters/pi/prompt-wrapper.md +14 -0
- package/dist/connectors/adapters/pi/skills/overlord-mission/SKILL.md +23 -0
- package/dist/connectors/core/README.md +1 -1
- package/dist/connectors/docs/05-connectors-and-agent-plugins.md +10 -0
- package/dist/connectors/docs/agent-harness-configuration-architecture.md +1 -1
- package/dist/contract/conformance-manifest.schema.yaml +328 -0
- package/dist/index.js +8116 -344
- package/dist/index.js.map +4 -4
- package/package.json +5 -1
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
# Overlord Conformance Manifest Schema
|
|
2
|
+
# JSON Schema (YAML format) — every component that ships against Overlord
|
|
3
|
+
# must provide a conformance-manifest.yaml in its root that validates against this schema.
|
|
4
|
+
#
|
|
5
|
+
# Validate with: ovld contract check <manifest-file>
|
|
6
|
+
#
|
|
7
|
+
# Example manifests live in contract/examples/
|
|
8
|
+
|
|
9
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
10
|
+
"$id": "openoverllord/conformance-manifest/v1"
|
|
11
|
+
title: "Overlord Conformance Manifest"
|
|
12
|
+
description: >
|
|
13
|
+
Every connector, extension, database adapter, auth provider, REST module, desktop shell, or MCP server that ships
|
|
14
|
+
against Overlord must provide a conformance-manifest.yaml at its root.
|
|
15
|
+
The manifest declares which contract version the component was validated against,
|
|
16
|
+
what kind of component it is, and which extension points and vocabulary values it uses.
|
|
17
|
+
|
|
18
|
+
type: object
|
|
19
|
+
required:
|
|
20
|
+
- contractVersion
|
|
21
|
+
- componentType
|
|
22
|
+
- componentKey
|
|
23
|
+
- label
|
|
24
|
+
|
|
25
|
+
additionalProperties: false
|
|
26
|
+
|
|
27
|
+
properties:
|
|
28
|
+
|
|
29
|
+
contractVersion:
|
|
30
|
+
type: string
|
|
31
|
+
description: "The Overlord contract version this component was validated against (e.g. '0')"
|
|
32
|
+
examples:
|
|
33
|
+
- "0"
|
|
34
|
+
|
|
35
|
+
componentType:
|
|
36
|
+
type: string
|
|
37
|
+
enum:
|
|
38
|
+
- connector
|
|
39
|
+
- extension
|
|
40
|
+
- database-adapter
|
|
41
|
+
- auth-provider
|
|
42
|
+
- rest-module
|
|
43
|
+
- rest-consumer
|
|
44
|
+
- desktop-shell
|
|
45
|
+
- mcp-server
|
|
46
|
+
description: "The kind of component being shipped"
|
|
47
|
+
|
|
48
|
+
componentKey:
|
|
49
|
+
type: string
|
|
50
|
+
pattern: "^[a-z][a-z0-9_-]*$"
|
|
51
|
+
description: "Stable lowercase identifier for this component (e.g. claude, my-custom-harness)"
|
|
52
|
+
|
|
53
|
+
label:
|
|
54
|
+
type: string
|
|
55
|
+
description: "Human-readable display name"
|
|
56
|
+
|
|
57
|
+
description:
|
|
58
|
+
type: string
|
|
59
|
+
description: "Optional description of what this component does"
|
|
60
|
+
|
|
61
|
+
# ── Connector-specific fields ────────────────────────────────────────────────
|
|
62
|
+
|
|
63
|
+
connector:
|
|
64
|
+
type: object
|
|
65
|
+
description: "Required when componentType is 'connector'"
|
|
66
|
+
required:
|
|
67
|
+
- agentIdentifier
|
|
68
|
+
- capabilities
|
|
69
|
+
additionalProperties: false
|
|
70
|
+
properties:
|
|
71
|
+
agentIdentifier:
|
|
72
|
+
type: string
|
|
73
|
+
description: "The stable agent identifier used by this connector (e.g. claude, codex, cursor)"
|
|
74
|
+
capabilities:
|
|
75
|
+
type: array
|
|
76
|
+
description: "Capability flags this connector supports — must be from the approvedConnectorCapabilities list in contract/extension-points.yaml"
|
|
77
|
+
items:
|
|
78
|
+
type: string
|
|
79
|
+
enum:
|
|
80
|
+
- followUpHook
|
|
81
|
+
- permissionHook
|
|
82
|
+
- stopHook
|
|
83
|
+
- nativeResume
|
|
84
|
+
- modelFlag
|
|
85
|
+
- effortFlag
|
|
86
|
+
- contextFilePrompt
|
|
87
|
+
- permissionRules
|
|
88
|
+
- slashCommands
|
|
89
|
+
uniqueItems: true
|
|
90
|
+
hookTypes:
|
|
91
|
+
type: array
|
|
92
|
+
description: "Hook types this connector uses — must be from approvedHookTypes in contract/extension-points.yaml"
|
|
93
|
+
items:
|
|
94
|
+
type: string
|
|
95
|
+
enum:
|
|
96
|
+
- UserPromptSubmit
|
|
97
|
+
- PermissionRequest
|
|
98
|
+
- Stop
|
|
99
|
+
uniqueItems: true
|
|
100
|
+
managedFiles:
|
|
101
|
+
type: array
|
|
102
|
+
description: "Paths of files this connector installs and manages (relative to install location)"
|
|
103
|
+
items:
|
|
104
|
+
type: string
|
|
105
|
+
installPath:
|
|
106
|
+
type: string
|
|
107
|
+
description: "Default install location for connector files (e.g. ~/.codex/plugins/overlord)"
|
|
108
|
+
|
|
109
|
+
# ── Extension-specific fields ────────────────────────────────────────────────
|
|
110
|
+
|
|
111
|
+
extension:
|
|
112
|
+
type: object
|
|
113
|
+
description: "Required when componentType is 'extension'"
|
|
114
|
+
additionalProperties: false
|
|
115
|
+
properties:
|
|
116
|
+
tablePrefix:
|
|
117
|
+
type: string
|
|
118
|
+
pattern: "^ext_[a-z][a-z0-9_]*_$"
|
|
119
|
+
description: "Database table prefix — must follow ext_<name>_ pattern"
|
|
120
|
+
examples:
|
|
121
|
+
- "ext_myfeature_"
|
|
122
|
+
migrationComponent:
|
|
123
|
+
type: string
|
|
124
|
+
pattern: "^ext:[a-z][a-z0-9_-]*$"
|
|
125
|
+
description: "schema_migrations.component value — must follow ext:<name> pattern"
|
|
126
|
+
examples:
|
|
127
|
+
- "ext:myfeature"
|
|
128
|
+
metadataKeyPrefix:
|
|
129
|
+
type: string
|
|
130
|
+
description: "Namespace prefix for JSON metadata keys stored in core table columns (e.g. com.example or mypackage)"
|
|
131
|
+
usesExtensionPoints:
|
|
132
|
+
type: array
|
|
133
|
+
description: "Extension points from contract/extension-points.yaml that this extension uses"
|
|
134
|
+
items:
|
|
135
|
+
type: string
|
|
136
|
+
enum:
|
|
137
|
+
- database-extension
|
|
138
|
+
- custom-harness
|
|
139
|
+
- open-vocabulary-value
|
|
140
|
+
uniqueItems: true
|
|
141
|
+
|
|
142
|
+
# ── Database adapter-specific fields ─────────────────────────────────────────
|
|
143
|
+
|
|
144
|
+
databaseAdapter:
|
|
145
|
+
type: object
|
|
146
|
+
description: "Required when componentType is 'database-adapter'"
|
|
147
|
+
required:
|
|
148
|
+
- adapterKey
|
|
149
|
+
- schemaContractVersion
|
|
150
|
+
additionalProperties: false
|
|
151
|
+
properties:
|
|
152
|
+
adapterKey:
|
|
153
|
+
type: string
|
|
154
|
+
description: "Adapter identifier (e.g. sqlite, postgres)"
|
|
155
|
+
examples:
|
|
156
|
+
- sqlite
|
|
157
|
+
- postgres
|
|
158
|
+
schemaContractVersion:
|
|
159
|
+
type: string
|
|
160
|
+
description: "Database schema contract version this adapter implements (from 09-database-schema-contract.md)"
|
|
161
|
+
conformanceTestStatus:
|
|
162
|
+
type: string
|
|
163
|
+
enum:
|
|
164
|
+
- passing
|
|
165
|
+
- partial
|
|
166
|
+
- pending
|
|
167
|
+
description: "Current status of adapter conformance test suite"
|
|
168
|
+
conformanceTestPath:
|
|
169
|
+
type: string
|
|
170
|
+
description: "Path to adapter conformance test results or test suite"
|
|
171
|
+
|
|
172
|
+
# ── Auth provider-specific fields ────────────────────────────────────────────
|
|
173
|
+
|
|
174
|
+
authProvider:
|
|
175
|
+
type: object
|
|
176
|
+
description: "Required when componentType is 'auth-provider'"
|
|
177
|
+
additionalProperties: false
|
|
178
|
+
properties:
|
|
179
|
+
authMechanisms:
|
|
180
|
+
type: array
|
|
181
|
+
items:
|
|
182
|
+
type: string
|
|
183
|
+
description: "Auth mechanisms this provider supports (e.g. user-token, oauth, passkey)"
|
|
184
|
+
examples:
|
|
185
|
+
- - user-token
|
|
186
|
+
- - oauth
|
|
187
|
+
- - passkey
|
|
188
|
+
preservesAuditAttribution:
|
|
189
|
+
type: boolean
|
|
190
|
+
description: "Declares that this provider writes actor_workspace_user_id and actor_token_id to audit_log correctly"
|
|
191
|
+
preservesTokenHashRules:
|
|
192
|
+
type: boolean
|
|
193
|
+
description: "Declares that raw token secrets are never persisted — hash and prefix only"
|
|
194
|
+
|
|
195
|
+
# ── REST module-specific fields ───────────────────────────────────────────────
|
|
196
|
+
|
|
197
|
+
restModule:
|
|
198
|
+
type: object
|
|
199
|
+
description: "Required when componentType is 'rest-module'"
|
|
200
|
+
required:
|
|
201
|
+
- endpointPrefix
|
|
202
|
+
additionalProperties: false
|
|
203
|
+
properties:
|
|
204
|
+
endpointPrefix:
|
|
205
|
+
type: string
|
|
206
|
+
pattern: "^/ext/[a-z][a-z0-9/_-]*$"
|
|
207
|
+
description: "Namespaced URL prefix for all endpoints this module adds — must start with /ext/<name>/"
|
|
208
|
+
examples:
|
|
209
|
+
- "/ext/my-integration"
|
|
210
|
+
usesServiceLayer:
|
|
211
|
+
type: boolean
|
|
212
|
+
description: "Declares that this module uses the service layer for database access (no direct table writes)"
|
|
213
|
+
|
|
214
|
+
# ── REST consumer-specific fields ─────────────────────────────────────────────
|
|
215
|
+
|
|
216
|
+
restConsumer:
|
|
217
|
+
type: object
|
|
218
|
+
description: "Required when componentType is 'rest-consumer'"
|
|
219
|
+
required:
|
|
220
|
+
- authMechanisms
|
|
221
|
+
- vendoredContractPath
|
|
222
|
+
- endpoints
|
|
223
|
+
- exportedTypes
|
|
224
|
+
additionalProperties: false
|
|
225
|
+
properties:
|
|
226
|
+
authMechanisms:
|
|
227
|
+
type: array
|
|
228
|
+
description: "Auth mechanisms this client uses against the REST surface"
|
|
229
|
+
items:
|
|
230
|
+
type: string
|
|
231
|
+
enum:
|
|
232
|
+
- bearer-token
|
|
233
|
+
- active-workspace-header
|
|
234
|
+
- better-auth-email
|
|
235
|
+
uniqueItems: true
|
|
236
|
+
vendoredContractPath:
|
|
237
|
+
type: string
|
|
238
|
+
description: "Repo-relative path to the vendored @overlord/contract subset"
|
|
239
|
+
examples:
|
|
240
|
+
- src/lib/contract.ts
|
|
241
|
+
upstreamContractRef:
|
|
242
|
+
type: string
|
|
243
|
+
description: "Path to the canonical contract source inside the OpenOverlord repo"
|
|
244
|
+
examples:
|
|
245
|
+
- packages/contract/src/index.ts
|
|
246
|
+
endpoints:
|
|
247
|
+
type: array
|
|
248
|
+
description: "REST endpoints this client calls"
|
|
249
|
+
items:
|
|
250
|
+
type: object
|
|
251
|
+
required:
|
|
252
|
+
- method
|
|
253
|
+
- path
|
|
254
|
+
additionalProperties: false
|
|
255
|
+
properties:
|
|
256
|
+
method:
|
|
257
|
+
type: string
|
|
258
|
+
enum:
|
|
259
|
+
- GET
|
|
260
|
+
- POST
|
|
261
|
+
- PATCH
|
|
262
|
+
- PUT
|
|
263
|
+
- DELETE
|
|
264
|
+
path:
|
|
265
|
+
type: string
|
|
266
|
+
description: "Route template, e.g. /api/missions/:id"
|
|
267
|
+
responseType:
|
|
268
|
+
type: string
|
|
269
|
+
requestBodyType:
|
|
270
|
+
type: string
|
|
271
|
+
exportedTypes:
|
|
272
|
+
type: array
|
|
273
|
+
description: "DTO/type names vendored from @overlord/contract"
|
|
274
|
+
items:
|
|
275
|
+
type: string
|
|
276
|
+
|
|
277
|
+
# ── Desktop shell-specific fields ─────────────────────────────────────────────
|
|
278
|
+
|
|
279
|
+
desktopShell:
|
|
280
|
+
type: object
|
|
281
|
+
description: "Required when componentType is 'desktop-shell'"
|
|
282
|
+
additionalProperties: false
|
|
283
|
+
properties:
|
|
284
|
+
wrapsModule:
|
|
285
|
+
type: string
|
|
286
|
+
description: "The component whose web surface this shell wraps (e.g. webapp/rest)"
|
|
287
|
+
supervisedProcesses:
|
|
288
|
+
type: array
|
|
289
|
+
description: "CLI/server processes this shell launches and supervises"
|
|
290
|
+
items:
|
|
291
|
+
type: string
|
|
292
|
+
bridgeNamespace:
|
|
293
|
+
type: string
|
|
294
|
+
description: "The contextBridge global exposed to the renderer (e.g. window.overlord)"
|
|
295
|
+
packagingTargets:
|
|
296
|
+
type: array
|
|
297
|
+
description: "Distribution artifacts this shell can produce (e.g. dmg, zip, AppImage, deb)"
|
|
298
|
+
items:
|
|
299
|
+
type: string
|
|
300
|
+
|
|
301
|
+
# ── Shared: vocabulary extensions ────────────────────────────────────────────
|
|
302
|
+
|
|
303
|
+
vocabularyExtensions:
|
|
304
|
+
type: array
|
|
305
|
+
description: "Open vocabulary values this component adds — must be namespaced (reverse-DNS or package-style)"
|
|
306
|
+
items:
|
|
307
|
+
type: object
|
|
308
|
+
required:
|
|
309
|
+
- vocabulary
|
|
310
|
+
- value
|
|
311
|
+
additionalProperties: false
|
|
312
|
+
properties:
|
|
313
|
+
vocabulary:
|
|
314
|
+
type: string
|
|
315
|
+
description: "The open vocabulary column being extended (e.g. artifacts.type)"
|
|
316
|
+
examples:
|
|
317
|
+
- artifacts.type
|
|
318
|
+
- mission_events.source
|
|
319
|
+
- entity_changes.entity_type
|
|
320
|
+
value:
|
|
321
|
+
type: string
|
|
322
|
+
description: "The namespaced value being added (e.g. com.example.my-artifact-type)"
|
|
323
|
+
examples:
|
|
324
|
+
- "com.example.custom-artifact"
|
|
325
|
+
- "mypackage:review-event"
|
|
326
|
+
description:
|
|
327
|
+
type: string
|
|
328
|
+
description: "Optional human description of what this vocabulary value represents"
|