@moorline/contracts 0.0.1 → 0.0.2

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/provider.js CHANGED
@@ -1,4 +1,14 @@
1
1
  import { validateJsonSchemaLike, validatePackageActivationRule, validatePackageDependencies, validatePackageId } from './package.js';
2
+ import { parseRuntimeAgentKind, parseRuntimeModeName } from './runtime.js';
3
+ export const DEFAULT_PROVIDER_TOOL_POLICY = {
4
+ workspace: {
5
+ nativePreset: 'provider-default'
6
+ },
7
+ ephemeral: {
8
+ nativePreset: 'none',
9
+ grants: ['core.moorline_session']
10
+ }
11
+ };
2
12
  export function validateProviderPackageManifest(manifest) {
3
13
  if (!manifest || typeof manifest !== 'object' || Array.isArray(manifest)) {
4
14
  throw new Error('Provider package manifest must be an object');
@@ -26,12 +36,202 @@ export function validateProviderPackageManifest(manifest) {
26
36
  }
27
37
  validatePackageDependencies(record.dependencies, 'provider package manifest');
28
38
  validateJsonSchemaLike(record.configSchema, 'provider package manifest');
39
+ const toolPolicy = validateProviderToolPolicyConfig(record.toolPolicy, 'provider package manifest.toolPolicy');
40
+ const nativeToolDocumentation = validateProviderNativeToolDocumentation(record.nativeToolDocumentation, 'provider package manifest.nativeToolDocumentation');
29
41
  const activation = validatePackageActivationRule(record.activation, 'provider package manifest');
30
42
  return {
31
43
  ...manifest,
44
+ ...(toolPolicy ? { toolPolicy } : {}),
45
+ ...(nativeToolDocumentation ? { nativeToolDocumentation } : {}),
32
46
  ...(activation !== undefined ? { activation } : {})
33
47
  };
34
48
  }
49
+ function validateNonEmptyString(value, label) {
50
+ if (typeof value !== 'string' || value.trim().length === 0) {
51
+ throw new Error(`${label} must be a non-empty string`);
52
+ }
53
+ return value.trim();
54
+ }
55
+ function validateOptionalStringArray(value, label) {
56
+ if (value === undefined) {
57
+ return undefined;
58
+ }
59
+ if (!Array.isArray(value)) {
60
+ throw new Error(`${label} must be an array when provided`);
61
+ }
62
+ return value.map((entry, index) => validateNonEmptyString(entry, `${label}[${index}]`));
63
+ }
64
+ function validateProviderToolPolicyProfileConfig(value, label) {
65
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
66
+ throw new Error(`${label} must be an object`);
67
+ }
68
+ const record = value;
69
+ return {
70
+ nativePreset: validateNonEmptyString(record.nativePreset, `${label}.nativePreset`),
71
+ ...(validateOptionalStringArray(record.allowNativeTools, `${label}.allowNativeTools`)
72
+ ? { allowNativeTools: validateOptionalStringArray(record.allowNativeTools, `${label}.allowNativeTools`) }
73
+ : {}),
74
+ ...(validateOptionalStringArray(record.denyNativeTools, `${label}.denyNativeTools`)
75
+ ? { denyNativeTools: validateOptionalStringArray(record.denyNativeTools, `${label}.denyNativeTools`) }
76
+ : {}),
77
+ ...(validateOptionalStringArray(record.grants, `${label}.grants`)
78
+ ? { grants: validateOptionalStringArray(record.grants, `${label}.grants`) }
79
+ : {})
80
+ };
81
+ }
82
+ export function validateProviderToolPolicyConfig(value, label = 'provider tool policy') {
83
+ if (value === undefined) {
84
+ return undefined;
85
+ }
86
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
87
+ throw new Error(`${label} must be an object when provided`);
88
+ }
89
+ const record = value;
90
+ return {
91
+ workspace: validateProviderToolPolicyProfileConfig(record.workspace, `${label}.workspace`),
92
+ ephemeral: validateProviderToolPolicyProfileConfig(record.ephemeral, `${label}.ephemeral`)
93
+ };
94
+ }
95
+ export function validateProviderResumeCursor(value, label = 'provider resume cursor') {
96
+ if (value === null) {
97
+ return null;
98
+ }
99
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
100
+ throw new Error(`${label} must be an object or null`);
101
+ }
102
+ const record = value;
103
+ return {
104
+ provider: validatePackageId(record.provider, `${label}.provider`),
105
+ value: record.value
106
+ };
107
+ }
108
+ export function validateRuntimeProviderSessionInput(value, label = 'provider session input') {
109
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
110
+ throw new Error(`${label} must be an object`);
111
+ }
112
+ const record = value;
113
+ const agentKind = parseRuntimeAgentKind(record.agentKind, `${label}.agentKind`);
114
+ const workspacePath = record.workspacePath;
115
+ if (workspacePath !== null && typeof workspacePath !== 'string') {
116
+ throw new Error(`${label}.workspacePath must be a string or null`);
117
+ }
118
+ if (agentKind === 'workspace' && !workspacePath) {
119
+ throw new Error(`${label}.workspacePath is required for workspace agents`);
120
+ }
121
+ if (agentKind === 'ephemeral' && workspacePath !== null) {
122
+ throw new Error(`${label}.workspacePath must be null for ephemeral agents`);
123
+ }
124
+ const providerCwd = record.providerCwd;
125
+ if (providerCwd !== null && typeof providerCwd !== 'string') {
126
+ throw new Error(`${label}.providerCwd must be a string or null`);
127
+ }
128
+ return {
129
+ sessionId: validateNonEmptyString(record.sessionId, `${label}.sessionId`),
130
+ threadId: validateNonEmptyString(record.threadId, `${label}.threadId`),
131
+ transportResourceId: validateNonEmptyString(record.transportResourceId, `${label}.transportResourceId`),
132
+ runtimeMode: parseRuntimeModeName(record.runtimeMode, `${label}.runtimeMode`),
133
+ agentKind,
134
+ workspacePath,
135
+ providerCwd,
136
+ resumeCursor: validateProviderResumeCursor(record.resumeCursor, `${label}.resumeCursor`),
137
+ lifecycleStatus: validateNonEmptyString(record.lifecycleStatus, `${label}.lifecycleStatus`),
138
+ ...(record.providerAutoStartEnabled !== undefined ? { providerAutoStartEnabled: record.providerAutoStartEnabled !== false } : {}),
139
+ toolGrantIds: validateOptionalStringArray(record.toolGrantIds, `${label}.toolGrantIds`) ?? [],
140
+ toolPolicy: validateProviderToolPolicyConfig(record.toolPolicy, `${label}.toolPolicy`) ?? DEFAULT_PROVIDER_TOOL_POLICY
141
+ };
142
+ }
143
+ export function validateProviderResourceBundle(value, label = 'provider resource bundle') {
144
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
145
+ throw new Error(`${label} must be an object`);
146
+ }
147
+ const record = value;
148
+ const contextFiles = Array.isArray(record.contextFiles) ? record.contextFiles : [];
149
+ const skills = Array.isArray(record.skills) ? record.skills : [];
150
+ const promptTemplates = Array.isArray(record.promptTemplates) ? record.promptTemplates : [];
151
+ return {
152
+ systemPromptSections: validateOptionalStringArray(record.systemPromptSections, `${label}.systemPromptSections`) ?? [],
153
+ contextFiles: contextFiles.map((entry, index) => {
154
+ if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
155
+ throw new Error(`${label}.contextFiles[${index}] must be an object`);
156
+ }
157
+ const file = entry;
158
+ return {
159
+ path: validateNonEmptyString(file.path, `${label}.contextFiles[${index}].path`),
160
+ content: typeof file.content === 'string' ? file.content : validateNonEmptyString(file.content, `${label}.contextFiles[${index}].content`),
161
+ source: validateNonEmptyString(file.source, `${label}.contextFiles[${index}].source`)
162
+ };
163
+ }),
164
+ skills: skills.map((entry, index) => validateProviderSkillResource(entry, `${label}.skills[${index}]`)),
165
+ promptTemplates: promptTemplates.map((entry, index) => validateProviderPromptTemplateResource(entry, `${label}.promptTemplates[${index}]`))
166
+ };
167
+ }
168
+ function validateProviderSkillResource(value, label) {
169
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
170
+ throw new Error(`${label} must be an object`);
171
+ }
172
+ const record = value;
173
+ const metadata = record.metadata;
174
+ if (!metadata || typeof metadata !== 'object' || Array.isArray(metadata)) {
175
+ throw new Error(`${label}.metadata must be an object`);
176
+ }
177
+ return {
178
+ name: validateNonEmptyString(record.name, `${label}.name`),
179
+ description: validateNonEmptyString(record.description, `${label}.description`),
180
+ filePath: validateNonEmptyString(record.filePath, `${label}.filePath`),
181
+ baseDir: validateNonEmptyString(record.baseDir, `${label}.baseDir`),
182
+ ...(record.content !== undefined ? { content: typeof record.content === 'string' ? record.content : validateNonEmptyString(record.content, `${label}.content`) } : {}),
183
+ metadata: metadata
184
+ };
185
+ }
186
+ function validateProviderPromptTemplateResource(value, label) {
187
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
188
+ throw new Error(`${label} must be an object`);
189
+ }
190
+ const record = value;
191
+ return {
192
+ name: validateNonEmptyString(record.name, `${label}.name`),
193
+ ...(record.description !== undefined ? { description: validateNonEmptyString(record.description, `${label}.description`) } : {}),
194
+ content: typeof record.content === 'string' ? record.content : validateNonEmptyString(record.content, `${label}.content`),
195
+ source: validateNonEmptyString(record.source, `${label}.source`)
196
+ };
197
+ }
198
+ export function validateProviderToolDefinition(value, label = 'provider tool definition') {
199
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
200
+ throw new Error(`${label} must be an object`);
201
+ }
202
+ const record = value;
203
+ const inputSchema = record.inputSchema;
204
+ if (!inputSchema || typeof inputSchema !== 'object' || Array.isArray(inputSchema)) {
205
+ throw new Error(`${label}.inputSchema must be an object`);
206
+ }
207
+ if (record.source !== 'core' && record.source !== 'plugin') {
208
+ throw new Error(`${label}.source must be "core" or "plugin"`);
209
+ }
210
+ return {
211
+ id: validateNonEmptyString(record.id, `${label}.id`),
212
+ name: validateNonEmptyString(record.name, `${label}.name`),
213
+ description: validateNonEmptyString(record.description, `${label}.description`),
214
+ inputSchema: inputSchema,
215
+ ...(record.requiredCapability !== undefined ? { requiredCapability: record.requiredCapability } : {}),
216
+ source: record.source,
217
+ ...(record.ownerPackageId !== undefined ? { ownerPackageId: validatePackageId(record.ownerPackageId, `${label}.ownerPackageId`) } : {})
218
+ };
219
+ }
220
+ function validateProviderNativeToolDocumentation(value, label) {
221
+ if (value === undefined) {
222
+ return undefined;
223
+ }
224
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
225
+ throw new Error(`${label} must be an object when provided`);
226
+ }
227
+ const record = value;
228
+ return {
229
+ nativeToolNames: validateOptionalStringArray(record.nativeToolNames, `${label}.nativeToolNames`) ?? [],
230
+ defaultWorkspacePreset: validateNonEmptyString(record.defaultWorkspacePreset, `${label}.defaultWorkspacePreset`),
231
+ defaultEphemeralPreset: validateNonEmptyString(record.defaultEphemeralPreset, `${label}.defaultEphemeralPreset`),
232
+ grantMapping: validateNonEmptyString(record.grantMapping, `${label}.grantMapping`)
233
+ };
234
+ }
35
235
  export function validateProviderPackageRuntimeContract(pkg) {
36
236
  if (typeof pkg.createProviderFactory !== 'function') {
37
237
  throw new Error(`Provider package ${pkg.manifest.id} must implement createProviderFactory`);
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAuGrI,MAAM,UAAU,+BAA+B,CAAC,QAAiC;IAC/E,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,MAAM,GAAG,QAA8C,CAAC;IAC9D,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,8BAA8B,CAAC,CAAC;IAC7D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/G,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5G,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,IACE,MAAM,CAAC,eAAe,KAAK,SAAS;QACpC,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAC9E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,2BAA2B,CAAC,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;IAC9E,sBAAsB,CAAC,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,6BAA6B,CAAC,MAAM,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IACjG,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,GAA2B;IAChF,IAAI,OAAO,GAAG,CAAC,qBAAqB,KAAK,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,QAAQ,CAAC,EAAE,uCAAuC,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,GAAG,CAAC,yBAAyB,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,yBAAyB,KAAK,UAAU,EAAE,CAAC;QACvG,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,QAAQ,CAAC,EAAE,6CAA6C,CAAC,CAAC;IACpG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -7,8 +7,14 @@ export interface RuntimeCommandRunner {
7
7
  run(command: string, args: string[], cwd?: string): Promise<CommandResult>;
8
8
  }
9
9
  export type RuntimeModeName = 'full-access' | 'approval-required';
10
+ export type RuntimeAgentKind = 'workspace' | 'ephemeral';
10
11
  export declare function parseRuntimeModeName(value: unknown, label?: string): RuntimeModeName;
12
+ export declare function parseRuntimeAgentKind(value: unknown, label?: string): RuntimeAgentKind;
11
13
  export type ProviderPackageId = string;
14
+ export interface ProviderResumeCursor {
15
+ provider: ProviderPackageId;
16
+ value: unknown;
17
+ }
12
18
  export type ProviderSessionStatus = 'connecting' | 'ready' | 'running' | 'waiting' | 'error' | 'closed';
13
19
  export interface ProviderAccountMetadata {
14
20
  accountLabel: string | null;
@@ -36,12 +42,14 @@ export interface ProviderSessionRecord {
36
42
  nativeMetadata?: Record<string, unknown>;
37
43
  threadId: string;
38
44
  runtimeMode: RuntimeModeName;
45
+ agentKind?: RuntimeAgentKind;
39
46
  cwd: string;
40
47
  model?: string;
41
48
  status: ProviderSessionStatus;
42
49
  activeTurnId?: string;
43
50
  resumeCursor?: {
44
51
  threadId: string;
52
+ cursor?: ProviderResumeCursor;
45
53
  };
46
54
  createdAt: string;
47
55
  updatedAt: string;
@@ -73,6 +81,7 @@ export type ProviderRuntimeEvent = (ProviderRuntimeEventBase & {
73
81
  type: 'thread.started';
74
82
  payload: {
75
83
  providerThreadId: string;
84
+ resumeCursor?: ProviderResumeCursor;
76
85
  };
77
86
  }) | (ProviderRuntimeEventBase & {
78
87
  type: 'thread.state.changed';
@@ -163,7 +172,7 @@ export interface PendingRuntimeRequestRecord {
163
172
  requestId: string;
164
173
  threadId: string;
165
174
  turnId: string | null;
166
- spaceId: string;
175
+ transportResourceId: string;
167
176
  requesterUserId: string | null;
168
177
  messageId: string | null;
169
178
  requestType: CanonicalRequestType;
package/dist/runtime.js CHANGED
@@ -1,4 +1,5 @@
1
1
  const RUNTIME_MODE_NAMES = ['full-access', 'approval-required'];
2
+ const RUNTIME_AGENT_KINDS = ['workspace', 'ephemeral'];
2
3
  function isRuntimeModeName(value) {
3
4
  return value === 'full-access' || value === 'approval-required';
4
5
  }
@@ -8,4 +9,13 @@ export function parseRuntimeModeName(value, label = 'runtime_mode') {
8
9
  }
9
10
  throw new Error(`${label} must be one of: ${RUNTIME_MODE_NAMES.join(', ')}.`);
10
11
  }
12
+ function isRuntimeAgentKind(value) {
13
+ return value === 'workspace' || value === 'ephemeral';
14
+ }
15
+ export function parseRuntimeAgentKind(value, label = 'agent_kind') {
16
+ if (isRuntimeAgentKind(value)) {
17
+ return value;
18
+ }
19
+ throw new Error(`${label} must be one of: ${RUNTIME_AGENT_KINDS.join(', ')}.`);
20
+ }
11
21
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAYA,MAAM,kBAAkB,GAAsB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAEnF,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,mBAAmB,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,KAAK,GAAG,cAAc;IACzE,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAaA,MAAM,kBAAkB,GAAsB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;AACnF,MAAM,mBAAmB,GAAuB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE3E,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,mBAAmB,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,KAAK,GAAG,cAAc;IACzE,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,WAAW,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,KAAK,GAAG,YAAY;IACxE,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjF,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import type { JsonSchemaLike, PackageDependency, PackageManifestBase } from './package.js';
2
2
  import type { RuntimeCommandRunner } from './runtime.js';
3
+ import type { RuntimeExternalResourceRef } from './external.js';
3
4
  export type RuntimeScopeId = string;
4
- export type RuntimeSpaceId = string;
5
+ export type RuntimeTransportResourceId = string;
5
6
  export type RuntimeThreadId = string;
6
7
  export interface RuntimeSurfaceNames {
7
8
  mainCategoryName: string;
8
- chatChannelName: string;
9
- statusChannelName: string;
10
- sessionsCategoryName: string;
11
- missionsCategoryName: string;
12
- archiveCategoryName: string;
9
+ coordinationResourceName: string;
10
+ statusResourceName: string;
11
+ sessionsGroupName: string;
12
+ archiveGroupName: string;
13
13
  }
14
14
  export interface ManagedAdminAccessGroupConfig {
15
15
  enabled: boolean;
@@ -24,7 +24,7 @@ export interface RuntimeAccessGroupRecord {
24
24
  id: string;
25
25
  kind: RuntimeAccessGroupKind;
26
26
  name: string;
27
- verifiedAt?: string;
27
+ syncedAt?: string;
28
28
  metadata?: Record<string, unknown>;
29
29
  }
30
30
  export interface RuntimeAccessGroupInput {
@@ -37,17 +37,16 @@ export interface RuntimeAccessGroupInput {
37
37
  export interface RuntimeSurfaceState {
38
38
  scopeId?: string;
39
39
  mainCategoryId: string;
40
- chatChannelId: string;
41
- statusChannelId: string;
40
+ coordinationResourceId: string;
41
+ statusResourceId: string;
42
42
  sessionsCategoryId: string;
43
- missionsCategoryId: string;
44
43
  archiveCategoryId: string;
45
44
  adminAccessGroupId?: string;
46
45
  memberAccessGroupId?: string;
47
46
  adminAccessGroupName?: string;
48
47
  memberAccessGroupName?: string;
49
- adminAccessGroupVerifiedAt?: string;
50
- memberAccessGroupVerifiedAt?: string;
48
+ adminAccessGroupSyncedAt?: string;
49
+ memberAccessGroupSyncedAt?: string;
51
50
  createdAt: string;
52
51
  updatedAt: string;
53
52
  metadata?: Record<string, unknown>;
@@ -71,11 +70,11 @@ export interface RuntimeActorIdentity {
71
70
  isSurfaceAdmin?: boolean;
72
71
  transportMetadata?: Record<string, unknown>;
73
72
  }
74
- export interface RuntimeSpaceRecord {
75
- id: RuntimeSpaceId;
73
+ export interface RuntimeTransportResourceRecord {
74
+ id: RuntimeTransportResourceId;
76
75
  name: string;
77
- kind: 'root' | 'group' | 'room' | 'thread' | 'dm' | 'external';
78
- parentId: RuntimeSpaceId | null;
76
+ kind: 'root' | 'collection' | 'conversation' | 'item' | 'direct' | 'external';
77
+ parentId: RuntimeTransportResourceId | null;
79
78
  metadata?: Record<string, unknown>;
80
79
  }
81
80
  export interface RuntimeAttachmentPayload {
@@ -132,13 +131,13 @@ export interface RuntimeNativeInteraction {
132
131
  export type RuntimeTransportEvent = {
133
132
  type: 'message.received';
134
133
  scopeId: RuntimeScopeId;
135
- spaceId: RuntimeSpaceId;
134
+ transportResourceId: RuntimeTransportResourceId;
136
135
  actor: RuntimeActorIdentity;
137
136
  message: RuntimeInboundMessage;
138
137
  } | {
139
138
  type: 'action.invoked';
140
139
  scopeId: RuntimeScopeId;
141
- spaceId?: RuntimeSpaceId;
140
+ transportResourceId?: RuntimeTransportResourceId;
142
141
  actor: RuntimeActorIdentity;
143
142
  actionId: string;
144
143
  input: Record<string, unknown>;
@@ -146,9 +145,19 @@ export type RuntimeTransportEvent = {
146
145
  } | {
147
146
  type: 'resource.lifecycle';
148
147
  scopeId: RuntimeScopeId;
149
- resource: RuntimeSpaceRecord;
148
+ resource: RuntimeTransportResourceRecord;
150
149
  action: 'created' | 'updated' | 'deleted';
151
- previous?: Partial<RuntimeSpaceRecord>;
150
+ previous?: Partial<RuntimeTransportResourceRecord>;
151
+ } | {
152
+ type: 'external.event.received';
153
+ scopeId: RuntimeScopeId;
154
+ actor?: RuntimeActorIdentity;
155
+ source: string;
156
+ eventName: string;
157
+ resource?: RuntimeExternalResourceRef;
158
+ payload: unknown;
159
+ receivedAt: string;
160
+ idempotencyKey?: string;
152
161
  };
153
162
  export interface RuntimeTransportAccessInput {
154
163
  authToken?: string;
@@ -170,12 +179,12 @@ export interface RuntimeTransportAuth {
170
179
  }
171
180
  export interface RuntimeMessageTarget {
172
181
  scopeId?: RuntimeScopeId;
173
- spaceId: RuntimeSpaceId;
182
+ transportResourceId: RuntimeTransportResourceId;
174
183
  threadId?: RuntimeThreadId;
175
184
  }
176
185
  export interface RuntimeTransportCapabilities {
177
186
  nativeActions: boolean;
178
- spaces: {
187
+ resources: {
179
188
  list: boolean;
180
189
  create: boolean;
181
190
  update: boolean;
@@ -186,27 +195,27 @@ export interface RuntimeTransportCapabilities {
186
195
  maxAttachmentBytes?: number;
187
196
  metadata?: Record<string, unknown>;
188
197
  }
189
- export interface RuntimeCreateSpaceInput {
198
+ export interface RuntimeCreateTransportResourceInput {
190
199
  scopeId: RuntimeScopeId;
191
200
  name: string;
192
- kind: RuntimeSpaceRecord['kind'];
193
- parentId?: RuntimeSpaceId | null;
201
+ kind: RuntimeTransportResourceRecord['kind'];
202
+ parentId?: RuntimeTransportResourceId | null;
194
203
  metadata?: Record<string, unknown>;
195
204
  }
196
- export interface RuntimeUpdateSpaceInput {
205
+ export interface RuntimeUpdateTransportResourceInput {
197
206
  scopeId: RuntimeScopeId;
198
- spaceId: RuntimeSpaceId;
207
+ transportResourceId: RuntimeTransportResourceId;
199
208
  name?: string;
200
- parentId?: RuntimeSpaceId | null;
209
+ parentId?: RuntimeTransportResourceId | null;
201
210
  metadata?: Record<string, unknown>;
202
211
  }
203
- export interface RuntimeDeleteSpaceInput {
212
+ export interface RuntimeDeleteTransportResourceInput {
204
213
  scopeId: RuntimeScopeId;
205
- spaceId: RuntimeSpaceId;
214
+ transportResourceId: RuntimeTransportResourceId;
206
215
  }
207
216
  export interface RuntimePresenceInput {
208
217
  scopeId?: RuntimeScopeId;
209
- spaceId?: RuntimeSpaceId;
218
+ transportResourceId?: RuntimeTransportResourceId;
210
219
  status: 'online' | 'idle' | 'busy' | 'offline';
211
220
  text?: string;
212
221
  }
@@ -233,10 +242,10 @@ export interface RuntimeTransport {
233
242
  capabilities(): RuntimeTransportCapabilities;
234
243
  onEvent(handler: (event: RuntimeTransportEvent) => Promise<void>): void;
235
244
  sendMessage(target: RuntimeMessageTarget, payload: RuntimeMessagePayload): Promise<RuntimeMessageReceipt>;
236
- listSpaces?(scopeId: RuntimeScopeId): Promise<RuntimeSpaceRecord[]>;
237
- createSpace?(input: RuntimeCreateSpaceInput): Promise<RuntimeSpaceRecord>;
238
- updateSpace?(input: RuntimeUpdateSpaceInput): Promise<RuntimeSpaceRecord>;
239
- deleteSpace?(input: RuntimeDeleteSpaceInput): Promise<void>;
245
+ listTransportResources?(scopeId: RuntimeScopeId): Promise<RuntimeTransportResourceRecord[]>;
246
+ createTransportResource?(input: RuntimeCreateTransportResourceInput): Promise<RuntimeTransportResourceRecord>;
247
+ updateTransportResource?(input: RuntimeUpdateTransportResourceInput): Promise<RuntimeTransportResourceRecord>;
248
+ deleteTransportResource?(input: RuntimeDeleteTransportResourceInput): Promise<void>;
240
249
  setPresence?(input: RuntimePresenceInput): Promise<void>;
241
250
  registerNativeActions?(input: RuntimeNativeActionRegistration): Promise<void>;
242
251
  ensureAccessGroup?(input: RuntimeAccessGroupInput): Promise<RuntimeAccessGroupRecord>;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiTrI,MAAM,UAAU,gCAAgC,CAAC,QAAkC;IACjF,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,MAAM,GAAG,QAA8C,CAAC;IAC9D,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;IAC9D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/G,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5G,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IACE,MAAM,CAAC,eAAe,KAAK,SAAS;QACpC,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAC9E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,2BAA2B,CAAC,MAAM,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;IAC/E,sBAAsB,CAAC,MAAM,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,6BAA6B,CAAC,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;IAClG,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,GAA4B;IAClF,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,QAAQ,CAAC,EAAE,iCAAiC,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,QAAQ,CAAC,EAAE,kDAAkD,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA2TrI,MAAM,UAAU,gCAAgC,CAAC,QAAkC;IACjF,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,MAAM,GAAG,QAA8C,CAAC;IAC9D,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;IAC9D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/G,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5G,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IACE,MAAM,CAAC,eAAe,KAAK,SAAS;QACpC,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAC9E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,2BAA2B,CAAC,MAAM,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;IAC/E,sBAAsB,CAAC,MAAM,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,6BAA6B,CAAC,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;IAClG,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,GAA4B;IAClF,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,QAAQ,CAAC,EAAE,iCAAiC,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,QAAQ,CAAC,EAAE,kDAAkD,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moorline/contracts",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Moorline package and runtime contract definitions",
5
5
  "type": "module",
6
6
  "private": false,