@moorline/contracts 0.0.1 → 0.0.3

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,16 +1,9 @@
1
1
  import type { JsonSchemaLike, PackageDependency, PackageManifestBase } from './package.js';
2
- import type { RuntimeCommandRunner } from './runtime.js';
2
+ import type { RuntimeCommandRunner, RuntimeModeName } 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
- export interface RuntimeSurfaceNames {
7
- mainCategoryName: string;
8
- chatChannelName: string;
9
- statusChannelName: string;
10
- sessionsCategoryName: string;
11
- missionsCategoryName: string;
12
- archiveCategoryName: string;
13
- }
14
7
  export interface ManagedAdminAccessGroupConfig {
15
8
  enabled: boolean;
16
9
  name: string;
@@ -24,7 +17,7 @@ export interface RuntimeAccessGroupRecord {
24
17
  id: string;
25
18
  kind: RuntimeAccessGroupKind;
26
19
  name: string;
27
- verifiedAt?: string;
20
+ syncedAt?: string;
28
21
  metadata?: Record<string, unknown>;
29
22
  }
30
23
  export interface RuntimeAccessGroupInput {
@@ -36,18 +29,9 @@ export interface RuntimeAccessGroupInput {
36
29
  }
37
30
  export interface RuntimeSurfaceState {
38
31
  scopeId?: string;
39
- mainCategoryId: string;
40
- chatChannelId: string;
41
- statusChannelId: string;
42
- sessionsCategoryId: string;
43
- missionsCategoryId: string;
44
- archiveCategoryId: string;
45
- adminAccessGroupId?: string;
46
- memberAccessGroupId?: string;
47
- adminAccessGroupName?: string;
48
- memberAccessGroupName?: string;
49
- adminAccessGroupVerifiedAt?: string;
50
- memberAccessGroupVerifiedAt?: string;
32
+ surfaceId: string;
33
+ statusResourceId?: string;
34
+ coordinationResourceId?: string;
51
35
  createdAt: string;
52
36
  updatedAt: string;
53
37
  metadata?: Record<string, unknown>;
@@ -55,7 +39,6 @@ export interface RuntimeSurfaceState {
55
39
  export interface RuntimeSurfaceBootstrapInput {
56
40
  scopeId?: RuntimeScopeId;
57
41
  actorId?: string;
58
- names?: Partial<RuntimeSurfaceNames>;
59
42
  managedAdminAccessGroup?: ManagedAdminAccessGroupConfig;
60
43
  managedMemberAccessGroup?: ManagedMemberAccessGroupConfig;
61
44
  explicitAdminRoleIds?: string[];
@@ -71,13 +54,18 @@ export interface RuntimeActorIdentity {
71
54
  isSurfaceAdmin?: boolean;
72
55
  transportMetadata?: Record<string, unknown>;
73
56
  }
74
- export interface RuntimeSpaceRecord {
75
- id: RuntimeSpaceId;
57
+ export interface RuntimeTransportResourceRecord {
58
+ id: RuntimeTransportResourceId;
76
59
  name: string;
77
- kind: 'root' | 'group' | 'room' | 'thread' | 'dm' | 'external';
78
- parentId: RuntimeSpaceId | null;
60
+ kind: 'root' | 'collection' | 'conversation' | 'item' | 'direct' | 'external';
61
+ parentId: RuntimeTransportResourceId | null;
79
62
  metadata?: Record<string, unknown>;
80
63
  }
64
+ export interface RuntimeTransportSessionOwner {
65
+ kind: 'run' | 'work_item' | 'external_resource' | 'operator';
66
+ id: string;
67
+ label?: string;
68
+ }
81
69
  export interface RuntimeAttachmentPayload {
82
70
  kind: 'file' | 'image' | 'link';
83
71
  path?: string;
@@ -129,27 +117,64 @@ export interface RuntimeNativeInteraction {
129
117
  id?: string;
130
118
  payload?: unknown;
131
119
  }
132
- export type RuntimeTransportEvent = {
133
- type: 'message.received';
120
+ export interface RuntimeTransportIntentBase {
121
+ intentId: string;
134
122
  scopeId: RuntimeScopeId;
135
- spaceId: RuntimeSpaceId;
123
+ transportPackageId?: string;
124
+ occurredAt: string;
125
+ native?: RuntimeNativeInteraction;
126
+ metadata?: Record<string, unknown>;
127
+ }
128
+ export type RuntimeTransportIntent = {
129
+ type: 'transport.message.received';
130
+ transportResourceId: RuntimeTransportResourceId;
136
131
  actor: RuntimeActorIdentity;
137
132
  message: RuntimeInboundMessage;
138
- } | {
139
- type: 'action.invoked';
140
- scopeId: RuntimeScopeId;
141
- spaceId?: RuntimeSpaceId;
133
+ } & RuntimeTransportIntentBase | {
134
+ type: 'transport.action.invoked';
135
+ transportResourceId?: RuntimeTransportResourceId;
142
136
  actor: RuntimeActorIdentity;
143
137
  actionId: string;
144
138
  input: Record<string, unknown>;
145
- native?: RuntimeNativeInteraction;
146
- } | {
147
- type: 'resource.lifecycle';
148
- scopeId: RuntimeScopeId;
149
- resource: RuntimeSpaceRecord;
139
+ } & RuntimeTransportIntentBase | {
140
+ type: 'transport.session.ensure';
141
+ transportResourceId: RuntimeTransportResourceId;
142
+ requestedName: string;
143
+ actor?: RuntimeActorIdentity;
144
+ runtimeMode?: RuntimeModeName;
145
+ initialMessage?: RuntimeInboundMessage;
146
+ owner?: RuntimeTransportSessionOwner;
147
+ } & RuntimeTransportIntentBase | {
148
+ type: 'transport.session.delete';
149
+ transportResourceId: RuntimeTransportResourceId;
150
+ actor?: RuntimeActorIdentity;
151
+ reason: string;
152
+ deleteWorkspace: boolean;
153
+ } & RuntimeTransportIntentBase | {
154
+ type: 'transport.session.archive';
155
+ transportResourceId: RuntimeTransportResourceId;
156
+ actor?: RuntimeActorIdentity;
157
+ reason: string;
158
+ } & RuntimeTransportIntentBase | {
159
+ type: 'transport.session.resume';
160
+ transportResourceId: RuntimeTransportResourceId;
161
+ actor?: RuntimeActorIdentity;
162
+ reason: string;
163
+ } & RuntimeTransportIntentBase | {
164
+ type: 'transport.resource.observed';
165
+ resource: RuntimeTransportResourceRecord;
150
166
  action: 'created' | 'updated' | 'deleted';
151
- previous?: Partial<RuntimeSpaceRecord>;
152
- };
167
+ previous?: Partial<RuntimeTransportResourceRecord>;
168
+ } & RuntimeTransportIntentBase | {
169
+ type: 'transport.external.received';
170
+ actor?: RuntimeActorIdentity;
171
+ source: string;
172
+ eventName: string;
173
+ resource?: RuntimeExternalResourceRef;
174
+ payload: unknown;
175
+ receivedAt: string;
176
+ idempotencyKey?: string;
177
+ } & RuntimeTransportIntentBase;
153
178
  export interface RuntimeTransportAccessInput {
154
179
  authToken?: string;
155
180
  scopeId: RuntimeScopeId;
@@ -170,12 +195,12 @@ export interface RuntimeTransportAuth {
170
195
  }
171
196
  export interface RuntimeMessageTarget {
172
197
  scopeId?: RuntimeScopeId;
173
- spaceId: RuntimeSpaceId;
198
+ transportResourceId: RuntimeTransportResourceId;
174
199
  threadId?: RuntimeThreadId;
175
200
  }
176
201
  export interface RuntimeTransportCapabilities {
177
202
  nativeActions: boolean;
178
- spaces: {
203
+ resources: {
179
204
  list: boolean;
180
205
  create: boolean;
181
206
  update: boolean;
@@ -186,27 +211,27 @@ export interface RuntimeTransportCapabilities {
186
211
  maxAttachmentBytes?: number;
187
212
  metadata?: Record<string, unknown>;
188
213
  }
189
- export interface RuntimeCreateSpaceInput {
214
+ export interface RuntimeCreateTransportResourceInput {
190
215
  scopeId: RuntimeScopeId;
191
216
  name: string;
192
- kind: RuntimeSpaceRecord['kind'];
193
- parentId?: RuntimeSpaceId | null;
217
+ kind: RuntimeTransportResourceRecord['kind'];
218
+ parentId?: RuntimeTransportResourceId | null;
194
219
  metadata?: Record<string, unknown>;
195
220
  }
196
- export interface RuntimeUpdateSpaceInput {
221
+ export interface RuntimeUpdateTransportResourceInput {
197
222
  scopeId: RuntimeScopeId;
198
- spaceId: RuntimeSpaceId;
223
+ transportResourceId: RuntimeTransportResourceId;
199
224
  name?: string;
200
- parentId?: RuntimeSpaceId | null;
225
+ parentId?: RuntimeTransportResourceId | null;
201
226
  metadata?: Record<string, unknown>;
202
227
  }
203
- export interface RuntimeDeleteSpaceInput {
228
+ export interface RuntimeDeleteTransportResourceInput {
204
229
  scopeId: RuntimeScopeId;
205
- spaceId: RuntimeSpaceId;
230
+ transportResourceId: RuntimeTransportResourceId;
206
231
  }
207
232
  export interface RuntimePresenceInput {
208
233
  scopeId?: RuntimeScopeId;
209
- spaceId?: RuntimeSpaceId;
234
+ transportResourceId?: RuntimeTransportResourceId;
210
235
  status: 'online' | 'idle' | 'busy' | 'offline';
211
236
  text?: string;
212
237
  }
@@ -214,6 +239,39 @@ export interface RuntimeNativeActionRegistration {
214
239
  scopeId: RuntimeScopeId;
215
240
  actions: RuntimeActionDefinition[];
216
241
  }
242
+ export type RuntimeTransportEffect = {
243
+ type: 'transport.message.send';
244
+ target: RuntimeMessageTarget;
245
+ payload: RuntimeMessagePayload;
246
+ } & RuntimeTransportEffectBase | {
247
+ type: 'transport.resource.create';
248
+ input: RuntimeCreateTransportResourceInput;
249
+ } & RuntimeTransportEffectBase | {
250
+ type: 'transport.resource.update';
251
+ input: RuntimeUpdateTransportResourceInput;
252
+ } & RuntimeTransportEffectBase | {
253
+ type: 'transport.resource.delete';
254
+ input: RuntimeDeleteTransportResourceInput;
255
+ } & RuntimeTransportEffectBase | {
256
+ type: 'transport.presence.set';
257
+ input: RuntimePresenceInput;
258
+ } & RuntimeTransportEffectBase | {
259
+ type: 'transport.actions.register';
260
+ input: RuntimeNativeActionRegistration;
261
+ } & RuntimeTransportEffectBase;
262
+ export interface RuntimeTransportEffectBase {
263
+ effectId: string;
264
+ scopeId?: RuntimeScopeId;
265
+ createdAt: string;
266
+ reason?: string;
267
+ metadata?: Record<string, unknown>;
268
+ }
269
+ export interface RuntimeTransportEffectReceipt {
270
+ effectId: string;
271
+ appliedAt: string;
272
+ nativeId?: string;
273
+ metadata?: Record<string, unknown>;
274
+ }
217
275
  export interface RuntimeActionDefinition {
218
276
  id: string;
219
277
  title: string;
@@ -231,16 +289,8 @@ export interface RuntimeTransport {
231
289
  start(auth: RuntimeTransportAuth): Promise<void>;
232
290
  stop(): Promise<void>;
233
291
  capabilities(): RuntimeTransportCapabilities;
234
- onEvent(handler: (event: RuntimeTransportEvent) => Promise<void>): void;
235
- 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>;
240
- setPresence?(input: RuntimePresenceInput): Promise<void>;
241
- registerNativeActions?(input: RuntimeNativeActionRegistration): Promise<void>;
242
- ensureAccessGroup?(input: RuntimeAccessGroupInput): Promise<RuntimeAccessGroupRecord>;
243
- reconcileRuntimeSurface?(input: RuntimeSurfaceBootstrapInput): Promise<RuntimeSurfaceState>;
292
+ onIntent?(handler: (intent: RuntimeTransportIntent) => Promise<void>): void;
293
+ applyEffect(effect: RuntimeTransportEffect): Promise<RuntimeTransportEffectReceipt>;
244
294
  }
245
295
  export interface TransportPackageManifest extends PackageManifestBase {
246
296
  type: 'transport';
@@ -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;AAkXrI,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.3",
4
4
  "description": "Moorline package and runtime contract definitions",
5
5
  "type": "module",
6
6
  "private": false,
@@ -27,5 +27,8 @@
27
27
  "type": "git",
28
28
  "url": "git+ssh://git@github.com/Moorline/moorline.git",
29
29
  "directory": "packages/contracts"
30
- }
30
+ },
31
+ "keywords": [
32
+ "moorline-package"
33
+ ]
31
34
  }