@ikenga/contract 0.3.0 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
package/dist/manifest.js CHANGED
@@ -8,6 +8,7 @@
8
8
  //
9
9
  // On disk: `<pkg-root>/manifest.json` (JSON, not TOML).
10
10
  import { z } from 'zod';
11
+ import { EngineProvidesSchema } from './engine.js';
11
12
  export const IKENGA_API_VERSION = 1;
12
13
  export const IKENGA_API_MIN_SUPPORTED = 1;
13
14
  // ---------- Sub-schemas ----------
@@ -139,7 +140,16 @@ export const ManifestSchema = z.object({
139
140
  cron: z.array(CronEntrySchema).default([]),
140
141
  window: WindowBlockSchema.optional(),
141
142
  queries: QueriesBlockSchema.optional(),
143
+ /**
144
+ * Engine-adapter manifest block. Present iff this pkg is an engine-*
145
+ * adapter. Declares the agent id, display name, capability snapshot,
146
+ * and onboarding hints surfaced by the first-run wizard.
147
+ * See `@ikenga/contract/engine` for the source-of-truth schema.
148
+ */
149
+ engine: EngineProvidesSchema.optional(),
142
150
  });
151
+ /** Alias retained for symmetry with the Rust side / external consumers. */
152
+ export const PkgManifestSchema = ManifestSchema;
143
153
  // ---------- Helpers ----------
144
154
  /** Convert a reverse-DNS id to a slug: `com.ikenga.studio` → `com-ikenga-studio`. */
145
155
  export function pkgSlug(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@ikenga/contract",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Shared contract for the Ikenga pkg system: manifest schema, RPC types, Engine interface, capability scopes.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "git+https://github.com/royalti-io/ikenga-contract.git"
8
+ "url": "git+https://github.com/Royalti-io/ikenga-contract.git"
9
9
  },
10
10
  "type": "module",
11
11
  "main": "./dist/index.js",
@@ -46,13 +46,6 @@
46
46
  "schemas",
47
47
  "README.md"
48
48
  ],
49
- "scripts": {
50
- "build": "tsc -p tsconfig.json",
51
- "dev": "tsc -p tsconfig.json --watch",
52
- "typecheck": "tsc -p tsconfig.json --noEmit",
53
- "generate:schemas": "node scripts/generate-schemas.mjs",
54
- "test": "node --test --import=tsx 'src/**/*.test.ts'"
55
- },
56
49
  "dependencies": {
57
50
  "zod": "^3.23.0",
58
51
  "zod-to-json-schema": "^3.25.2"
@@ -63,5 +56,12 @@
63
56
  },
64
57
  "publishConfig": {
65
58
  "access": "public"
59
+ },
60
+ "scripts": {
61
+ "build": "tsc -p tsconfig.json",
62
+ "dev": "tsc -p tsconfig.json --watch",
63
+ "typecheck": "tsc -p tsconfig.json --noEmit",
64
+ "generate:schemas": "node scripts/generate-schemas.mjs",
65
+ "test": "node --test --import=tsx 'src/**/*.test.ts'"
66
66
  }
67
- }
67
+ }
@@ -0,0 +1,205 @@
1
+ import { test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import {
4
+ AgentCapabilitiesSchema,
5
+ EngineOnboardingSchema,
6
+ EngineProvidesSchema,
7
+ type AgentCapabilities,
8
+ type Engine,
9
+ type EngineProvides,
10
+ } from './engine.js';
11
+ import { ManifestSchema, PkgManifestSchema } from './manifest.js';
12
+
13
+ const fullCaps: AgentCapabilities = {
14
+ streaming: true,
15
+ toolUse: true,
16
+ thinking: true,
17
+ artifacts: true,
18
+ fileAttachments: true,
19
+ imageInput: true,
20
+ slashCommands: true,
21
+ modelSwitching: true,
22
+ promptCaching: true,
23
+ agenticTools: true,
24
+ mcp: true,
25
+ sessionResume: true,
26
+ };
27
+
28
+ const noopCaps: AgentCapabilities = {
29
+ streaming: false,
30
+ toolUse: false,
31
+ thinking: false,
32
+ artifacts: false,
33
+ fileAttachments: false,
34
+ imageInput: false,
35
+ slashCommands: false,
36
+ modelSwitching: false,
37
+ promptCaching: false,
38
+ agenticTools: false,
39
+ mcp: false,
40
+ sessionResume: false,
41
+ };
42
+
43
+ // ---------------- AgentCapabilitiesSchema ----------------
44
+
45
+ test('AgentCapabilitiesSchema accepts a fully-true snapshot', () => {
46
+ const r = AgentCapabilitiesSchema.safeParse(fullCaps);
47
+ assert.equal(r.success, true);
48
+ });
49
+
50
+ test('AgentCapabilitiesSchema accepts an all-false (noop) snapshot', () => {
51
+ const r = AgentCapabilitiesSchema.safeParse(noopCaps);
52
+ assert.equal(r.success, true);
53
+ });
54
+
55
+ test('AgentCapabilitiesSchema rejects missing fields', () => {
56
+ const { streaming: _drop, ...partial } = fullCaps;
57
+ const r = AgentCapabilitiesSchema.safeParse(partial);
58
+ assert.equal(r.success, false);
59
+ });
60
+
61
+ test('AgentCapabilitiesSchema rejects non-boolean values', () => {
62
+ const r = AgentCapabilitiesSchema.safeParse({ ...fullCaps, streaming: 'yes' });
63
+ assert.equal(r.success, false);
64
+ });
65
+
66
+ // ---------------- EngineOnboardingSchema ----------------
67
+
68
+ test('EngineOnboardingSchema defaults arrays when omitted', () => {
69
+ const r = EngineOnboardingSchema.parse({});
70
+ assert.deepEqual(r.requiredVaultKeys, []);
71
+ assert.deepEqual(r.requiredEnvVars, []);
72
+ assert.equal(r.authCommand, undefined);
73
+ assert.equal(r.docsUrl, undefined);
74
+ });
75
+
76
+ test('EngineOnboardingSchema accepts full onboarding hints', () => {
77
+ const r = EngineOnboardingSchema.safeParse({
78
+ requiredVaultKeys: ['ANTHROPIC_API_KEY'],
79
+ requiredEnvVars: ['CLAUDE_HOME'],
80
+ authCommand: 'claude login',
81
+ docsUrl: 'https://docs.anthropic.com/claude-code',
82
+ });
83
+ assert.equal(r.success, true);
84
+ });
85
+
86
+ test('EngineOnboardingSchema rejects non-URL docsUrl', () => {
87
+ const r = EngineOnboardingSchema.safeParse({ docsUrl: 'not-a-url' });
88
+ assert.equal(r.success, false);
89
+ });
90
+
91
+ // ---------------- EngineProvidesSchema ----------------
92
+
93
+ test('EngineProvidesSchema accepts a minimal engine block', () => {
94
+ const r = EngineProvidesSchema.safeParse({
95
+ agentId: 'claude-code',
96
+ capabilities: fullCaps,
97
+ });
98
+ assert.equal(r.success, true);
99
+ if (r.success) {
100
+ assert.deepEqual(r.data.onboarding.requiredVaultKeys, []);
101
+ assert.deepEqual(r.data.onboarding.requiredEnvVars, []);
102
+ }
103
+ });
104
+
105
+ test('EngineProvidesSchema rejects empty agentId', () => {
106
+ const r = EngineProvidesSchema.safeParse({
107
+ agentId: '',
108
+ capabilities: fullCaps,
109
+ });
110
+ assert.equal(r.success, false);
111
+ });
112
+
113
+ test('EngineProvidesSchema rejects missing capabilities', () => {
114
+ const r = EngineProvidesSchema.safeParse({ agentId: 'codex' });
115
+ assert.equal(r.success, false);
116
+ });
117
+
118
+ // ---------------- Manifest integration ----------------
119
+
120
+ test('Manifest accepts an optional engine block', () => {
121
+ const m = {
122
+ id: 'com.ikenga.engine-claude-code',
123
+ name: 'Claude Code Engine',
124
+ version: '0.1.0',
125
+ ikenga_api: '1',
126
+ kind: 'engine',
127
+ engine: {
128
+ agentId: 'claude-code',
129
+ display: 'Claude Code',
130
+ capabilities: fullCaps,
131
+ onboarding: {
132
+ requiredVaultKeys: ['ANTHROPIC_API_KEY'],
133
+ authCommand: 'claude login',
134
+ },
135
+ },
136
+ };
137
+ const r = ManifestSchema.safeParse(m);
138
+ assert.equal(r.success, true, r.success ? '' : JSON.stringify(r.error.issues));
139
+ });
140
+
141
+ test('Manifest still parses without an engine block (non-engine pkg)', () => {
142
+ const m = {
143
+ id: 'com.ikenga.studio',
144
+ name: 'Studio',
145
+ version: '0.1.0',
146
+ ikenga_api: '1',
147
+ };
148
+ const r = ManifestSchema.safeParse(m);
149
+ assert.equal(r.success, true);
150
+ if (r.success) assert.equal(r.data.engine, undefined);
151
+ });
152
+
153
+ test('Manifest rejects a malformed engine block', () => {
154
+ const m = {
155
+ id: 'com.ikenga.engine-broken',
156
+ name: 'Broken',
157
+ version: '0.1.0',
158
+ ikenga_api: '1',
159
+ engine: { agentId: 'broken' }, // missing capabilities
160
+ };
161
+ const r = ManifestSchema.safeParse(m);
162
+ assert.equal(r.success, false);
163
+ });
164
+
165
+ test('PkgManifestSchema alias is identical to ManifestSchema', () => {
166
+ // Same instance — symmetry check with the Rust side.
167
+ assert.equal(PkgManifestSchema, ManifestSchema);
168
+ });
169
+
170
+ // ---------------- Engine.metadata type-level check ----------------
171
+
172
+ test('Engine.metadata is structurally required at type level', () => {
173
+ // The type-level check is enforced by tsc at build time. This runtime
174
+ // test just exercises the shape so a regression that drops `metadata`
175
+ // would force a compile error here.
176
+ const sample: Engine['metadata'] = {
177
+ agentId: 'noop',
178
+ display: 'No-op',
179
+ capabilities: noopCaps,
180
+ onboarding: { requiredVaultKeys: [], requiredEnvVars: [] },
181
+ };
182
+ assert.equal(sample.agentId, 'noop');
183
+ });
184
+
185
+ // ---------------- AdapterLoader manifest input shape ----------------
186
+
187
+ test('AdapterLoader.load consumes a manifest carrying EngineProvides', () => {
188
+ const provides: EngineProvides = {
189
+ agentId: 'codex',
190
+ display: 'OpenAI Codex',
191
+ capabilities: { ...noopCaps, streaming: true, mcp: true },
192
+ onboarding: {
193
+ requiredVaultKeys: ['OPENAI_API_KEY'],
194
+ requiredEnvVars: [],
195
+ docsUrl: 'https://openai.com/codex',
196
+ },
197
+ };
198
+ // Loader input is `{ id: string; engine: EngineProvides }` — verify
199
+ // we can construct one structurally.
200
+ const input: { id: string; engine: EngineProvides } = {
201
+ id: 'com.ikenga.engine-codex',
202
+ engine: provides,
203
+ };
204
+ assert.equal(input.engine.agentId, 'codex');
205
+ });