@company-semantics/contracts 0.109.0 → 0.112.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/package.json +6 -5
- package/src/api/generated.ts +148 -0
- package/src/generated/openapi-routes.ts +11 -9
- package/src/index.ts +8 -8
- package/src/org/__tests__/view-scopes.test.ts +2 -2
- package/src/org/{goals.ts → company-md.ts} +18 -18
- package/src/org/index.ts +13 -13
- package/src/org/view-scopes.ts +1 -1
- package/src/usage/types.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@company-semantics/contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.112.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"guard:decisions-deprecation": "npx tsx scripts/ci/decisions-deprecation-guard.ts",
|
|
78
78
|
"guard:decisions-deprecation:json": "npx tsx scripts/ci/decisions-deprecation-guard.ts --json",
|
|
79
79
|
"guard:quick": "GUARD_DEPENDENCY_ROOT=../ tsx ../company-semantics-ci/run-guards.ts --config scripts/ci/guard-entries.ts --quick",
|
|
80
|
+
"ci:local": "pnpm typecheck && pnpm lint:md && pnpm guard:test",
|
|
80
81
|
"guard": "GUARD_DEPENDENCY_ROOT=../ tsx ../company-semantics-ci/run-guards.ts --config scripts/ci/guard-entries.ts",
|
|
81
82
|
"guard:test": "vitest run scripts/ci/__tests__",
|
|
82
83
|
"release": "npx tsx scripts/release.ts",
|
|
@@ -95,14 +96,14 @@
|
|
|
95
96
|
"zod": "^4.2.1"
|
|
96
97
|
},
|
|
97
98
|
"devDependencies": {
|
|
98
|
-
"@types/node": "^25.0
|
|
99
|
+
"@types/node": "^25.5.0",
|
|
99
100
|
"husky": "^9.1.7",
|
|
100
|
-
"lint-staged": "^16.
|
|
101
|
-
"markdownlint-cli2": "^0.
|
|
101
|
+
"lint-staged": "^16.4.0",
|
|
102
|
+
"markdownlint-cli2": "^0.22.0",
|
|
102
103
|
"openapi-typescript": "^7.13.0",
|
|
103
104
|
"tsx": "^4.21.0",
|
|
104
105
|
"typescript": "^5",
|
|
105
|
-
"vitest": "^4.
|
|
106
|
+
"vitest": "^4.1.2",
|
|
106
107
|
"yaml": "^2.8.3"
|
|
107
108
|
},
|
|
108
109
|
"pnpm": {
|
package/src/api/generated.ts
CHANGED
|
@@ -935,6 +935,26 @@ export interface paths {
|
|
|
935
935
|
patch?: never;
|
|
936
936
|
trace?: never;
|
|
937
937
|
};
|
|
938
|
+
"/api/workspace/name": {
|
|
939
|
+
parameters: {
|
|
940
|
+
query?: never;
|
|
941
|
+
header?: never;
|
|
942
|
+
path?: never;
|
|
943
|
+
cookie?: never;
|
|
944
|
+
};
|
|
945
|
+
get?: never;
|
|
946
|
+
put?: never;
|
|
947
|
+
post?: never;
|
|
948
|
+
delete?: never;
|
|
949
|
+
options?: never;
|
|
950
|
+
head?: never;
|
|
951
|
+
/**
|
|
952
|
+
* Rename the workspace
|
|
953
|
+
* @description PATCH the workspace name. Requires org.manage_users capability (owner or admin).
|
|
954
|
+
*/
|
|
955
|
+
patch: operations["renameWorkspace"];
|
|
956
|
+
trace?: never;
|
|
957
|
+
};
|
|
938
958
|
"/api/workspace/members": {
|
|
939
959
|
parameters: {
|
|
940
960
|
query?: never;
|
|
@@ -2081,6 +2101,26 @@ export interface paths {
|
|
|
2081
2101
|
patch?: never;
|
|
2082
2102
|
trace?: never;
|
|
2083
2103
|
};
|
|
2104
|
+
"/api/scope/check-batch": {
|
|
2105
|
+
parameters: {
|
|
2106
|
+
query?: never;
|
|
2107
|
+
header?: never;
|
|
2108
|
+
path?: never;
|
|
2109
|
+
cookie?: never;
|
|
2110
|
+
};
|
|
2111
|
+
get?: never;
|
|
2112
|
+
put?: never;
|
|
2113
|
+
/**
|
|
2114
|
+
* Batch check authorization scopes for current user
|
|
2115
|
+
* @description Checks whether the current user has access to each of the given scopes. Scope strings are implementation-defined and not part of the public API vocabulary. Accepts 1-20 scope strings per request.
|
|
2116
|
+
*/
|
|
2117
|
+
post: operations["checkScopeBatch"];
|
|
2118
|
+
delete?: never;
|
|
2119
|
+
options?: never;
|
|
2120
|
+
head?: never;
|
|
2121
|
+
patch?: never;
|
|
2122
|
+
trace?: never;
|
|
2123
|
+
};
|
|
2084
2124
|
}
|
|
2085
2125
|
export type webhooks = Record<string, never>;
|
|
2086
2126
|
export interface components {
|
|
@@ -2455,6 +2495,16 @@ export interface components {
|
|
|
2455
2495
|
estimatedCostUsd: string;
|
|
2456
2496
|
requestCount: number;
|
|
2457
2497
|
};
|
|
2498
|
+
ScopeCheckBatchRequest: {
|
|
2499
|
+
scopes: string[];
|
|
2500
|
+
};
|
|
2501
|
+
ScopeCheckBatchResponse: {
|
|
2502
|
+
results: {
|
|
2503
|
+
[key: string]: {
|
|
2504
|
+
hasAccess: boolean;
|
|
2505
|
+
};
|
|
2506
|
+
};
|
|
2507
|
+
};
|
|
2458
2508
|
ErrorResponse: {
|
|
2459
2509
|
error: string;
|
|
2460
2510
|
message: string;
|
|
@@ -2758,6 +2808,9 @@ export interface components {
|
|
|
2758
2808
|
OrgType: "personal" | "shared";
|
|
2759
2809
|
/** @enum {string} */
|
|
2760
2810
|
WorkspaceRole: "owner" | "admin" | "member";
|
|
2811
|
+
RenameWorkspaceRequest: {
|
|
2812
|
+
name: string;
|
|
2813
|
+
};
|
|
2761
2814
|
WorkspaceOverview: {
|
|
2762
2815
|
/** Format: uuid */
|
|
2763
2816
|
id: string;
|
|
@@ -4985,6 +5038,57 @@ export interface operations {
|
|
|
4985
5038
|
};
|
|
4986
5039
|
};
|
|
4987
5040
|
};
|
|
5041
|
+
renameWorkspace: {
|
|
5042
|
+
parameters: {
|
|
5043
|
+
query?: never;
|
|
5044
|
+
header?: never;
|
|
5045
|
+
path?: never;
|
|
5046
|
+
cookie?: never;
|
|
5047
|
+
};
|
|
5048
|
+
requestBody: {
|
|
5049
|
+
content: {
|
|
5050
|
+
"application/json": components["schemas"]["RenameWorkspaceRequest"];
|
|
5051
|
+
};
|
|
5052
|
+
};
|
|
5053
|
+
responses: {
|
|
5054
|
+
/** @description Updated workspace overview */
|
|
5055
|
+
200: {
|
|
5056
|
+
headers: {
|
|
5057
|
+
[name: string]: unknown;
|
|
5058
|
+
};
|
|
5059
|
+
content: {
|
|
5060
|
+
"application/json": components["schemas"]["WorkspaceOverview"];
|
|
5061
|
+
};
|
|
5062
|
+
};
|
|
5063
|
+
/** @description Invalid name */
|
|
5064
|
+
400: {
|
|
5065
|
+
headers: {
|
|
5066
|
+
[name: string]: unknown;
|
|
5067
|
+
};
|
|
5068
|
+
content: {
|
|
5069
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5070
|
+
};
|
|
5071
|
+
};
|
|
5072
|
+
/** @description Missing org.manage_users capability */
|
|
5073
|
+
403: {
|
|
5074
|
+
headers: {
|
|
5075
|
+
[name: string]: unknown;
|
|
5076
|
+
};
|
|
5077
|
+
content: {
|
|
5078
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5079
|
+
};
|
|
5080
|
+
};
|
|
5081
|
+
/** @description Workspace not found */
|
|
5082
|
+
404: {
|
|
5083
|
+
headers: {
|
|
5084
|
+
[name: string]: unknown;
|
|
5085
|
+
};
|
|
5086
|
+
content: {
|
|
5087
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5088
|
+
};
|
|
5089
|
+
};
|
|
5090
|
+
};
|
|
5091
|
+
};
|
|
4988
5092
|
getWorkspaceMembers: {
|
|
4989
5093
|
parameters: {
|
|
4990
5094
|
query?: never;
|
|
@@ -6166,6 +6270,8 @@ export interface operations {
|
|
|
6166
6270
|
query?: {
|
|
6167
6271
|
/** @description Time period for usage aggregation */
|
|
6168
6272
|
period?: "current_month" | "last_30_days" | "last_7_days";
|
|
6273
|
+
/** @description IANA timezone identifier for date bucketing */
|
|
6274
|
+
tz?: string;
|
|
6169
6275
|
};
|
|
6170
6276
|
header?: never;
|
|
6171
6277
|
path: {
|
|
@@ -8043,4 +8149,46 @@ export interface operations {
|
|
|
8043
8149
|
};
|
|
8044
8150
|
};
|
|
8045
8151
|
};
|
|
8152
|
+
checkScopeBatch: {
|
|
8153
|
+
parameters: {
|
|
8154
|
+
query?: never;
|
|
8155
|
+
header?: never;
|
|
8156
|
+
path?: never;
|
|
8157
|
+
cookie?: never;
|
|
8158
|
+
};
|
|
8159
|
+
requestBody: {
|
|
8160
|
+
content: {
|
|
8161
|
+
"application/json": components["schemas"]["ScopeCheckBatchRequest"];
|
|
8162
|
+
};
|
|
8163
|
+
};
|
|
8164
|
+
responses: {
|
|
8165
|
+
/** @description Authorization results for each scope */
|
|
8166
|
+
200: {
|
|
8167
|
+
headers: {
|
|
8168
|
+
[name: string]: unknown;
|
|
8169
|
+
};
|
|
8170
|
+
content: {
|
|
8171
|
+
"application/json": components["schemas"]["ScopeCheckBatchResponse"];
|
|
8172
|
+
};
|
|
8173
|
+
};
|
|
8174
|
+
/** @description Invalid input (empty array, >20 items, invalid scope format) */
|
|
8175
|
+
400: {
|
|
8176
|
+
headers: {
|
|
8177
|
+
[name: string]: unknown;
|
|
8178
|
+
};
|
|
8179
|
+
content: {
|
|
8180
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
8181
|
+
};
|
|
8182
|
+
};
|
|
8183
|
+
/** @description Not authenticated */
|
|
8184
|
+
401: {
|
|
8185
|
+
headers: {
|
|
8186
|
+
[name: string]: unknown;
|
|
8187
|
+
};
|
|
8188
|
+
content: {
|
|
8189
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
8190
|
+
};
|
|
8191
|
+
};
|
|
8192
|
+
};
|
|
8193
|
+
};
|
|
8046
8194
|
}
|
|
@@ -15,6 +15,15 @@ export const openApiRoutes = {
|
|
|
15
15
|
'/api/chats/{id}/generate-title': ['POST'],
|
|
16
16
|
'/api/chats/{id}/messages': ['POST'],
|
|
17
17
|
'/api/chats/{id}/pin': ['DELETE', 'POST'],
|
|
18
|
+
'/api/company-md/docs/{slug}': ['GET'],
|
|
19
|
+
'/api/company-md/docs/{slug}/content': ['PUT'],
|
|
20
|
+
'/api/company-md/docs/{slug}/sharing': ['GET'],
|
|
21
|
+
'/api/company-md/docs/{slug}/sharing/acl': ['POST'],
|
|
22
|
+
'/api/company-md/docs/{slug}/sharing/acl/{aclId}': ['DELETE', 'PUT'],
|
|
23
|
+
'/api/company-md/docs/{slug}/sharing/policy': ['PUT'],
|
|
24
|
+
'/api/company-md/docs/{slug}/title': ['PUT'],
|
|
25
|
+
'/api/company-md/extract': ['POST'],
|
|
26
|
+
'/api/company-md/tree': ['GET'],
|
|
18
27
|
'/api/departments': ['GET', 'POST'],
|
|
19
28
|
'/api/departments/{id}': ['DELETE', 'GET', 'PATCH'],
|
|
20
29
|
'/api/departments/{id}/members': ['POST'],
|
|
@@ -29,15 +38,6 @@ export const openApiRoutes = {
|
|
|
29
38
|
'/api/executions/{executionId}/summary': ['GET'],
|
|
30
39
|
'/api/executions/{executionId}/timeline': ['GET'],
|
|
31
40
|
'/api/executions/{executionId}/undo': ['POST'],
|
|
32
|
-
'/api/goals/docs/{slug}': ['GET'],
|
|
33
|
-
'/api/goals/docs/{slug}/content': ['PUT'],
|
|
34
|
-
'/api/goals/docs/{slug}/sharing': ['GET'],
|
|
35
|
-
'/api/goals/docs/{slug}/sharing/acl': ['POST'],
|
|
36
|
-
'/api/goals/docs/{slug}/sharing/acl/{aclId}': ['DELETE', 'PUT'],
|
|
37
|
-
'/api/goals/docs/{slug}/sharing/policy': ['PUT'],
|
|
38
|
-
'/api/goals/docs/{slug}/title': ['PUT'],
|
|
39
|
-
'/api/goals/extract': ['POST'],
|
|
40
|
-
'/api/goals/tree': ['GET'],
|
|
41
41
|
'/api/integrations/status': ['GET'],
|
|
42
42
|
'/api/me': ['GET'],
|
|
43
43
|
'/api/org/cancel-deletion': ['POST'],
|
|
@@ -53,6 +53,7 @@ export const openApiRoutes = {
|
|
|
53
53
|
'/api/orgs/{orgId}/ai-usage': ['GET'],
|
|
54
54
|
'/api/orgs/{orgId}/billing': ['GET'],
|
|
55
55
|
'/api/orgs/{orgId}/budget-config': ['GET', 'PUT'],
|
|
56
|
+
'/api/scope/check-batch': ['POST'],
|
|
56
57
|
'/api/shared/{token}': ['GET'],
|
|
57
58
|
'/api/shares/{shareId}': ['DELETE', 'PATCH'],
|
|
58
59
|
'/api/teams': ['GET', 'POST'],
|
|
@@ -85,6 +86,7 @@ export const openApiRoutes = {
|
|
|
85
86
|
'/api/workspace/members': ['GET'],
|
|
86
87
|
'/api/workspace/members/{id}': ['DELETE'],
|
|
87
88
|
'/api/workspace/members/{id}/role': ['PATCH'],
|
|
89
|
+
'/api/workspace/name': ['PATCH'],
|
|
88
90
|
'/api/workspace/resolve-path': ['POST'],
|
|
89
91
|
'/api/workspace/resync-slack-logo': ['POST'],
|
|
90
92
|
'/auth/logout': ['POST'],
|
package/src/index.ts
CHANGED
|
@@ -243,14 +243,14 @@ export type {
|
|
|
243
243
|
IdentityTrustLevel,
|
|
244
244
|
TransferEligibilityResult,
|
|
245
245
|
TransferMemberEligibility,
|
|
246
|
-
//
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
246
|
+
// Company.md domain types (PRD-00173)
|
|
247
|
+
CompanyMdVisibility,
|
|
248
|
+
CompanyMdDocLevel,
|
|
249
|
+
CompanyMdNodeType,
|
|
250
|
+
CompanyMdSource,
|
|
251
|
+
CompanyMdDependency,
|
|
252
|
+
CompanyMdTreeNode,
|
|
253
|
+
CompanyMdDoc,
|
|
254
254
|
TeamDepartmentRole,
|
|
255
255
|
TeamDepartmentMembership,
|
|
256
256
|
// Team types (PRD-00306)
|
|
@@ -7,7 +7,7 @@ describe('VIEW_SCOPE_MAP golden snapshot', () => {
|
|
|
7
7
|
workspace: 'org.view_workspace',
|
|
8
8
|
timeline: 'org.view_timeline',
|
|
9
9
|
teamwork: 'org.view_teamwork',
|
|
10
|
-
|
|
10
|
+
'company-md': 'org.view_company_md',
|
|
11
11
|
teams: 'org.view_teams',
|
|
12
12
|
'internal-admin': 'internal.view_admin',
|
|
13
13
|
chat: null,
|
|
@@ -24,7 +24,7 @@ describe('getViewScope', () => {
|
|
|
24
24
|
expect(getViewScope('workspace')).toBe('org.view_workspace')
|
|
25
25
|
expect(getViewScope('timeline')).toBe('org.view_timeline')
|
|
26
26
|
expect(getViewScope('teamwork')).toBe('org.view_teamwork')
|
|
27
|
-
expect(getViewScope('
|
|
27
|
+
expect(getViewScope('company-md')).toBe('org.view_company_md')
|
|
28
28
|
expect(getViewScope('internal-admin')).toBe('internal.view_admin')
|
|
29
29
|
})
|
|
30
30
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Company.md Domain Types
|
|
3
3
|
*
|
|
4
|
-
* Vocabulary types for the Company.md
|
|
4
|
+
* Vocabulary types for the Company.md feature.
|
|
5
5
|
* Shared between backend (persistence/service) and app (UI rendering).
|
|
6
6
|
* @see PRD-00173 for design rationale
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
export type
|
|
9
|
+
export type CompanyMdVisibility = 'public' | 'private';
|
|
10
10
|
|
|
11
|
-
export type
|
|
11
|
+
export type CompanyMdDocLevel = 'root' | 'department' | 'team';
|
|
12
12
|
|
|
13
|
-
export type
|
|
13
|
+
export type CompanyMdNodeType = 'company' | 'department' | 'team' | 'cross_team' | 'doc' | 'goal' | 'source' | 'map';
|
|
14
14
|
|
|
15
15
|
export type TeamDepartmentRole = 'owner' | 'participant' | 'supporting';
|
|
16
16
|
|
|
@@ -20,34 +20,34 @@ export interface TeamDepartmentMembership {
|
|
|
20
20
|
readonly role: TeamDepartmentRole;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export interface
|
|
23
|
+
export interface CompanyMdSource {
|
|
24
24
|
readonly label: string;
|
|
25
25
|
readonly sourceType: 'meeting' | 'document' | 'conversation' | 'manual';
|
|
26
26
|
readonly referencedAt: string;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export interface
|
|
29
|
+
export interface CompanyMdDependency {
|
|
30
30
|
readonly targetSlug: string;
|
|
31
31
|
readonly description: string;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
export interface
|
|
34
|
+
export interface CompanyMdNodeIdentity {
|
|
35
35
|
readonly id: string;
|
|
36
36
|
readonly slug: string;
|
|
37
37
|
readonly title: string;
|
|
38
|
-
readonly level:
|
|
38
|
+
readonly level: CompanyMdDocLevel;
|
|
39
39
|
readonly parentId: string | null;
|
|
40
40
|
/** Department name (backwards-compat) */
|
|
41
41
|
readonly department: string | null;
|
|
42
42
|
/** Structured department reference */
|
|
43
43
|
readonly departmentId: string | null;
|
|
44
|
-
readonly visibility:
|
|
44
|
+
readonly visibility: CompanyMdVisibility;
|
|
45
45
|
/** Owning team. Null for root docs or when the owning team has been deleted. */
|
|
46
46
|
readonly owningTeam: { readonly id: string; readonly name: string } | null;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
export interface
|
|
50
|
-
readonly type:
|
|
49
|
+
export interface CompanyMdTreeNode extends CompanyMdNodeIdentity {
|
|
50
|
+
readonly type: CompanyMdNodeType;
|
|
51
51
|
readonly canEdit: boolean;
|
|
52
52
|
readonly memberCount: number;
|
|
53
53
|
readonly description?: string;
|
|
@@ -55,23 +55,23 @@ export interface GoalTreeNode extends GoalNodeIdentity {
|
|
|
55
55
|
readonly departmentIds?: readonly string[];
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
export interface
|
|
58
|
+
export interface CompanyMdDocCore extends CompanyMdNodeIdentity {
|
|
59
59
|
readonly content: string;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
export interface
|
|
62
|
+
export interface CompanyMdDocCollaborators {
|
|
63
63
|
readonly owner: { readonly id: string; readonly name: string } | null;
|
|
64
64
|
readonly coOwners: ReadonlyArray<{ readonly id: string; readonly name: string }>;
|
|
65
65
|
readonly canEdit: boolean;
|
|
66
66
|
readonly members: ReadonlyArray<{ readonly id: string; readonly name: string }>;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
export interface
|
|
69
|
+
export interface CompanyMdDocRelations {
|
|
70
70
|
readonly inheritsFrom: string | null;
|
|
71
|
-
readonly sources: readonly
|
|
72
|
-
readonly dependencies: readonly
|
|
71
|
+
readonly sources: readonly CompanyMdSource[];
|
|
72
|
+
readonly dependencies: readonly CompanyMdDependency[];
|
|
73
73
|
readonly createdAt: string;
|
|
74
74
|
readonly updatedAt: string;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
export type
|
|
77
|
+
export type CompanyMdDoc = CompanyMdDocCore & CompanyMdDocCollaborators & CompanyMdDocRelations;
|
package/src/org/index.ts
CHANGED
|
@@ -80,22 +80,22 @@ export type {
|
|
|
80
80
|
export type { AuthorizableView } from './view-scopes';
|
|
81
81
|
export { VIEW_SCOPE_MAP, getViewScope } from './view-scopes';
|
|
82
82
|
|
|
83
|
-
//
|
|
83
|
+
// Company.md domain types (PRD-00173)
|
|
84
84
|
export type {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
85
|
+
CompanyMdVisibility,
|
|
86
|
+
CompanyMdDocLevel,
|
|
87
|
+
CompanyMdNodeType,
|
|
88
|
+
CompanyMdSource,
|
|
89
|
+
CompanyMdDependency,
|
|
90
|
+
CompanyMdNodeIdentity,
|
|
91
|
+
CompanyMdTreeNode,
|
|
92
|
+
CompanyMdDocCore,
|
|
93
|
+
CompanyMdDocCollaborators,
|
|
94
|
+
CompanyMdDocRelations,
|
|
95
|
+
CompanyMdDoc,
|
|
96
96
|
TeamDepartmentRole,
|
|
97
97
|
TeamDepartmentMembership,
|
|
98
|
-
} from './
|
|
98
|
+
} from './company-md';
|
|
99
99
|
|
|
100
100
|
// Team types (PRD-00306)
|
|
101
101
|
export type {
|
package/src/org/view-scopes.ts
CHANGED
|
@@ -20,7 +20,7 @@ export const VIEW_SCOPE_MAP = {
|
|
|
20
20
|
workspace: 'org.view_workspace',
|
|
21
21
|
timeline: 'org.view_timeline',
|
|
22
22
|
teamwork: 'org.view_teamwork',
|
|
23
|
-
|
|
23
|
+
'company-md': 'org.view_company_md',
|
|
24
24
|
teams: 'org.view_teams',
|
|
25
25
|
'internal-admin': 'internal.view_admin',
|
|
26
26
|
// Public views (require only authentication)
|
package/src/usage/types.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See PRD-00166 for design rationale and invariants.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
export type AiFeature = 'chat' | 'chat_title' | 'ingest_summarize' | 'ingest_embedding' | '
|
|
7
|
+
export type AiFeature = 'chat' | 'chat_title' | 'ingest_summarize' | 'ingest_embedding' | 'company_md_extraction';
|
|
8
8
|
|
|
9
9
|
export interface UsageSummary {
|
|
10
10
|
totalTokens: number;
|