@things-factory/ai-dashboard 10.1.256 → 10.1.258

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.
@@ -43,37 +43,29 @@ export interface CardRun {
43
43
  labelKey?: string;
44
44
  };
45
45
  }
46
- export declare const cardApi: {
47
- myDashboard: () => Promise<PlaceItem[]>;
48
- library: (which: "mine" | "shared") => Promise<CardItem[]>;
49
- run: (id: string) => Promise<CardRun>;
50
- preview: (sessionId: string, proposalKey: string) => Promise<CardRun>;
51
- versions: (id: string) => Promise<{
52
- version: number;
46
+ export interface ShareOptions {
47
+ domainId: string;
48
+ domainName: string;
49
+ departments: {
50
+ id: string;
53
51
  name: string;
54
- definition: any;
55
- creatorName?: string;
56
- createdAt?: string;
57
- }[]>;
58
- shareOptions: () => Promise<{
59
- domainId: string;
60
- domainName: string;
61
- departments: {
62
- id: string;
63
- name: string;
64
- }[];
65
- peopleAvailable: boolean;
66
- roles: {
67
- id: string;
68
- name: string;
69
- note?: string | null;
70
- }[];
71
- }>;
72
- people: (text: string) => Promise<{
52
+ }[];
53
+ peopleAvailable: boolean;
54
+ roles: {
73
55
  id: string;
74
56
  name: string;
75
- note?: string;
76
- }[]>;
57
+ note?: string | null;
58
+ }[];
59
+ }
60
+ export interface CardVersion {
61
+ version: number;
62
+ name: string;
63
+ definition: any;
64
+ creatorName?: string;
65
+ createdAt?: string;
66
+ }
67
+ export declare const CARD_FIELDS = "id name description version definition access ownerName copiedFromId placed shares { scope targetId targetName } updatedAt";
68
+ export declare const cardApi: {
77
69
  saveProposal: (sessionId: string, proposalKey: string) => Promise<{
78
70
  cardId: string;
79
71
  version: number;
@@ -86,13 +78,6 @@ export declare const cardApi: {
86
78
  remove: (id: string) => Promise<any>;
87
79
  share: (id: string, shares: CardShare[]) => Promise<CardItem>;
88
80
  place: (cardId: string) => Promise<any>;
89
- unplace: (id: string) => Promise<any>;
90
- arrange: (places: {
91
- id: string;
92
- order: number;
93
- width: number;
94
- height: number;
95
- }[]) => Promise<any>;
96
81
  };
97
82
  /** Told when a card is saved, copied, placed or removed elsewhere - an open dashboard reads itself again. */
98
83
  export declare const DASHBOARD_CHANGED = "ai-dashboard-changed";
@@ -1,35 +1,24 @@
1
1
  /*
2
- * The doors the dashboard screens call (server: card-resolver.ts). One place, so the page, the library and the
3
- * conversation's card read the same fields.
2
+ * The dashboard's changes (server: card-resolver.ts), and the card fields the screens read - one place, so the page,
3
+ * the library and the conversation's card read the same fields. Each screen declares its own reads (ADR-0190).
4
4
  */
5
5
  import gql from 'graphql-tag';
6
6
  import { client } from '@operato/graphql';
7
- const CARD_FIELDS = `id name description version definition access ownerName copiedFromId placed shares { scope targetId targetName } updatedAt`;
8
- async function ask(document, variables = {}, mutate = false) {
9
- const response = mutate
10
- ? await client.mutate({ mutation: gql(document), variables })
11
- : await client.query({ query: gql(document), variables, fetchPolicy: 'no-cache' });
7
+ export const CARD_FIELDS = `id name description version definition access ownerName copiedFromId placed shares { scope targetId targetName } updatedAt`;
8
+ async function ask(document, variables = {}) {
9
+ const response = await client.mutate({ mutation: gql(document), variables });
12
10
  if (response.errors?.length)
13
11
  throw new Error(response.errors[0].message);
14
12
  return response.data;
15
13
  }
16
14
  export const cardApi = {
17
- myDashboard: async () => (await ask(`query { myDashboard { id order width height card { ${CARD_FIELDS} } } }`)).myDashboard,
18
- library: async (which) => (await ask(`query ($which: String!) { dashboardCards(which: $which) { ${CARD_FIELDS} } }`, { which })).dashboardCards,
19
- run: async (id) => (await ask(`query ($id: String!) { dashboardCardRun(id: $id) }`, { id })).dashboardCardRun,
20
- preview: async (sessionId, proposalKey) => (await ask(`query ($s: String!, $k: String!) { dashboardCardProposalPreview(sessionId: $s, proposalKey: $k) }`, { s: sessionId, k: proposalKey })).dashboardCardProposalPreview,
21
- versions: async (id) => (await ask(`query ($id: String!) { dashboardCardVersions(id: $id) { version name definition creatorName createdAt } }`, { id })).dashboardCardVersions,
22
- shareOptions: async () => (await ask(`query { dashboardShareOptions { domainId domainName departments { id name } peopleAvailable roles { id name note } } }`)).dashboardShareOptions,
23
- people: async (text) => (await ask(`query ($text: String!) { dashboardSharePeople(text: $text) { id name note } }`, { text })).dashboardSharePeople,
24
- saveProposal: async (sessionId, proposalKey) => (await ask(`mutation ($s: String!, $k: String!) { saveDashboardCardProposal(sessionId: $s, proposalKey: $k) }`, { s: sessionId, k: proposalKey }, true)).saveDashboardCardProposal,
25
- rename: async (id, name) => (await ask(`mutation ($id: String!, $name: String!) { renameDashboardCard(id: $id, name: $name) { id } }`, { id, name }, true)).renameDashboardCard,
26
- restore: async (id, version) => (await ask(`mutation ($id: String!, $v: Int!) { restoreDashboardCardVersion(id: $id, version: $v) { id } }`, { id, v: version }, true)).restoreDashboardCardVersion,
27
- copy: async (id) => (await ask(`mutation ($id: String!) { copyDashboardCard(id: $id) { id } }`, { id }, true)).copyDashboardCard,
28
- remove: async (id) => (await ask(`mutation ($id: String!) { deleteDashboardCard(id: $id) }`, { id }, true)).deleteDashboardCard,
29
- share: async (id, shares) => (await ask(`mutation ($id: String!, $shares: [DashboardCardShareInput!]!) { shareDashboardCard(id: $id, shares: $shares) { ${CARD_FIELDS} } }`, { id, shares }, true)).shareDashboardCard,
30
- place: async (cardId) => (await ask(`mutation ($id: String!) { placeDashboardCard(cardId: $id) { id } }`, { id: cardId }, true)).placeDashboardCard,
31
- unplace: async (id) => (await ask(`mutation ($id: String!) { removeDashboardPlace(id: $id) }`, { id }, true)).removeDashboardPlace,
32
- arrange: async (places) => (await ask(`mutation ($places: [DashboardPlaceInput!]!) { arrangeDashboard(places: $places) }`, { places }, true)).arrangeDashboard
15
+ saveProposal: async (sessionId, proposalKey) => (await ask(`mutation ($s: String!, $k: String!) { saveDashboardCardProposal(sessionId: $s, proposalKey: $k) }`, { s: sessionId, k: proposalKey })).saveDashboardCardProposal,
16
+ rename: async (id, name) => (await ask(`mutation ($id: String!, $name: String!) { renameDashboardCard(id: $id, name: $name) { id } }`, { id, name })).renameDashboardCard,
17
+ restore: async (id, version) => (await ask(`mutation ($id: String!, $v: Int!) { restoreDashboardCardVersion(id: $id, version: $v) { id } }`, { id, v: version })).restoreDashboardCardVersion,
18
+ copy: async (id) => (await ask(`mutation ($id: String!) { copyDashboardCard(id: $id) { id } }`, { id })).copyDashboardCard,
19
+ remove: async (id) => (await ask(`mutation ($id: String!) { deleteDashboardCard(id: $id) }`, { id })).deleteDashboardCard,
20
+ share: async (id, shares) => (await ask(`mutation ($id: String!, $shares: [DashboardCardShareInput!]!) { shareDashboardCard(id: $id, shares: $shares) { ${CARD_FIELDS} } }`, { id, shares })).shareDashboardCard,
21
+ place: async (cardId) => (await ask(`mutation ($id: String!) { placeDashboardCard(cardId: $id) { id } }`, { id: cardId })).placeDashboardCard
33
22
  };
34
23
  /** Told when a card is saved, copied, placed or removed elsewhere - an open dashboard reads itself again. */
35
24
  export const DASHBOARD_CHANGED = 'ai-dashboard-changed';
@@ -1 +1 @@
1
- {"version":3,"file":"card-api.js","sourceRoot":"","sources":["../../client/utils/card-api.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * The doors the dashboard screens call (server: card-resolver.ts). One place, so the page, the library and the\n * conversation's card read the same fields.\n */\nimport gql from 'graphql-tag'\n\nimport { client } from '@operato/graphql'\n\nexport interface CardShare {\n scope: 'USER' | 'DEPARTMENT' | 'ROLE' | 'DOMAIN'\n targetId: string\n targetName?: string | null\n}\n\nexport interface CardItem {\n id: string\n name: string\n description?: string | null\n version: number\n definition: any\n access: 'owner' | 'shared'\n ownerName?: string | null\n copiedFromId?: string | null\n placed: boolean\n shares?: CardShare[] | null\n updatedAt?: string | null\n}\n\nexport interface PlaceItem {\n id: string\n order: number\n width: number\n height: number\n card: CardItem\n}\n\nexport interface CardCounts {\n read: number\n total: number\n complete: boolean\n shaped: number\n shown: number\n}\n\nexport interface CardRun {\n block?: any\n issue?: { code: string; params?: Record<string, unknown> }\n counts?: CardCounts\n asOf: string\n source?: { key: string; labelKey?: string }\n}\n\nconst CARD_FIELDS = `id name description version definition access ownerName copiedFromId placed shares { scope targetId targetName } updatedAt`\n\nasync function ask<T>(document: string, variables: Record<string, unknown> = {}, mutate = false): Promise<T> {\n const response: any = mutate\n ? await client.mutate({ mutation: gql(document), variables })\n : await client.query({ query: gql(document), variables, fetchPolicy: 'no-cache' })\n if (response.errors?.length) throw new Error(response.errors[0].message)\n return response.data\n}\n\nexport const cardApi = {\n myDashboard: async () => (await ask<any>(`query { myDashboard { id order width height card { ${CARD_FIELDS} } } }`)).myDashboard as PlaceItem[],\n library: async (which: 'mine' | 'shared') => (await ask<any>(`query ($which: String!) { dashboardCards(which: $which) { ${CARD_FIELDS} } }`, { which })).dashboardCards as CardItem[],\n run: async (id: string) => (await ask<any>(`query ($id: String!) { dashboardCardRun(id: $id) }`, { id })).dashboardCardRun as CardRun,\n preview: async (sessionId: string, proposalKey: string) =>\n (await ask<any>(`query ($s: String!, $k: String!) { dashboardCardProposalPreview(sessionId: $s, proposalKey: $k) }`, { s: sessionId, k: proposalKey })).dashboardCardProposalPreview as CardRun,\n versions: async (id: string) =>\n (await ask<any>(`query ($id: String!) { dashboardCardVersions(id: $id) { version name definition creatorName createdAt } }`, { id })).dashboardCardVersions as {\n version: number\n name: string\n definition: any\n creatorName?: string\n createdAt?: string\n }[],\n shareOptions: async () =>\n (await ask<any>(`query { dashboardShareOptions { domainId domainName departments { id name } peopleAvailable roles { id name note } } }`)).dashboardShareOptions as {\n domainId: string\n domainName: string\n departments: { id: string; name: string }[]\n peopleAvailable: boolean\n roles: { id: string; name: string; note?: string | null }[]\n },\n people: async (text: string) => (await ask<any>(`query ($text: String!) { dashboardSharePeople(text: $text) { id name note } }`, { text })).dashboardSharePeople as { id: string; name: string; note?: string }[],\n saveProposal: async (sessionId: string, proposalKey: string) =>\n (await ask<any>(`mutation ($s: String!, $k: String!) { saveDashboardCardProposal(sessionId: $s, proposalKey: $k) }`, { s: sessionId, k: proposalKey }, true)).saveDashboardCardProposal as {\n cardId: string\n version: number\n placeId: string\n again?: boolean\n },\n rename: async (id: string, name: string) => (await ask<any>(`mutation ($id: String!, $name: String!) { renameDashboardCard(id: $id, name: $name) { id } }`, { id, name }, true)).renameDashboardCard,\n restore: async (id: string, version: number) => (await ask<any>(`mutation ($id: String!, $v: Int!) { restoreDashboardCardVersion(id: $id, version: $v) { id } }`, { id, v: version }, true)).restoreDashboardCardVersion,\n copy: async (id: string) => (await ask<any>(`mutation ($id: String!) { copyDashboardCard(id: $id) { id } }`, { id }, true)).copyDashboardCard,\n remove: async (id: string) => (await ask<any>(`mutation ($id: String!) { deleteDashboardCard(id: $id) }`, { id }, true)).deleteDashboardCard,\n share: async (id: string, shares: CardShare[]) =>\n (await ask<any>(`mutation ($id: String!, $shares: [DashboardCardShareInput!]!) { shareDashboardCard(id: $id, shares: $shares) { ${CARD_FIELDS} } }`, { id, shares }, true)).shareDashboardCard as CardItem,\n place: async (cardId: string) => (await ask<any>(`mutation ($id: String!) { placeDashboardCard(cardId: $id) { id } }`, { id: cardId }, true)).placeDashboardCard,\n unplace: async (id: string) => (await ask<any>(`mutation ($id: String!) { removeDashboardPlace(id: $id) }`, { id }, true)).removeDashboardPlace,\n arrange: async (places: { id: string; order: number; width: number; height: number }[]) =>\n (await ask<any>(`mutation ($places: [DashboardPlaceInput!]!) { arrangeDashboard(places: $places) }`, { places }, true)).arrangeDashboard\n}\n\n/** Told when a card is saved, copied, placed or removed elsewhere - an open dashboard reads itself again. */\nexport const DASHBOARD_CHANGED = 'ai-dashboard-changed'\n\nexport function dashboardChanged(): void {\n window.dispatchEvent(new CustomEvent(DASHBOARD_CHANGED))\n}\n"]}
1
+ {"version":3,"file":"card-api.js","sourceRoot":"","sources":["../../client/utils/card-api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,GAAG,MAAM,aAAa,CAAA;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AA8DzC,MAAM,CAAC,MAAM,WAAW,GAAG,4HAA4H,CAAA;AAEvJ,KAAK,UAAU,GAAG,CAAI,QAAgB,EAAE,YAAqC,EAAE;IAC7E,MAAM,QAAQ,GAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IACjF,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACxE,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,YAAY,EAAE,KAAK,EAAE,SAAiB,EAAE,WAAmB,EAAE,EAAE,CAC7D,CAAC,MAAM,GAAG,CAAM,mGAAmG,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,yBAKvJ;IACH,MAAM,EAAE,KAAK,EAAE,EAAU,EAAE,IAAY,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAM,8FAA8F,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,mBAAmB;IAC9L,OAAO,EAAE,KAAK,EAAE,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAM,gGAAgG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,2BAA2B;IAClN,IAAI,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAM,+DAA+D,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACvI,MAAM,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAM,0DAA0D,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB;IACtI,KAAK,EAAE,KAAK,EAAE,EAAU,EAAE,MAAmB,EAAE,EAAE,CAC/C,CAAC,MAAM,GAAG,CAAM,kHAAkH,WAAW,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,kBAA8B;IACtM,KAAK,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAM,oEAAoE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,kBAAkB;CAC3J,CAAA;AAED,6GAA6G;AAC7G,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAA;AAEvD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAC1D,CAAC","sourcesContent":["/*\n * The dashboard's changes (server: card-resolver.ts), and the card fields the screens read - one place, so the page,\n * the library and the conversation's card read the same fields. Each screen declares its own reads (ADR-0190).\n */\nimport gql from 'graphql-tag'\n\nimport { client } from '@operato/graphql'\n\nexport interface CardShare {\n scope: 'USER' | 'DEPARTMENT' | 'ROLE' | 'DOMAIN'\n targetId: string\n targetName?: string | null\n}\n\nexport interface CardItem {\n id: string\n name: string\n description?: string | null\n version: number\n definition: any\n access: 'owner' | 'shared'\n ownerName?: string | null\n copiedFromId?: string | null\n placed: boolean\n shares?: CardShare[] | null\n updatedAt?: string | null\n}\n\nexport interface PlaceItem {\n id: string\n order: number\n width: number\n height: number\n card: CardItem\n}\n\nexport interface CardCounts {\n read: number\n total: number\n complete: boolean\n shaped: number\n shown: number\n}\n\nexport interface CardRun {\n block?: any\n issue?: { code: string; params?: Record<string, unknown> }\n counts?: CardCounts\n asOf: string\n source?: { key: string; labelKey?: string }\n}\n\nexport interface ShareOptions {\n domainId: string\n domainName: string\n departments: { id: string; name: string }[]\n peopleAvailable: boolean\n roles: { id: string; name: string; note?: string | null }[]\n}\n\nexport interface CardVersion {\n version: number\n name: string\n definition: any\n creatorName?: string\n createdAt?: string\n}\n\nexport const CARD_FIELDS = `id name description version definition access ownerName copiedFromId placed shares { scope targetId targetName } updatedAt`\n\nasync function ask<T>(document: string, variables: Record<string, unknown> = {}): Promise<T> {\n const response: any = await client.mutate({ mutation: gql(document), variables })\n if (response.errors?.length) throw new Error(response.errors[0].message)\n return response.data\n}\n\nexport const cardApi = {\n saveProposal: async (sessionId: string, proposalKey: string) =>\n (await ask<any>(`mutation ($s: String!, $k: String!) { saveDashboardCardProposal(sessionId: $s, proposalKey: $k) }`, { s: sessionId, k: proposalKey })).saveDashboardCardProposal as {\n cardId: string\n version: number\n placeId: string\n again?: boolean\n },\n rename: async (id: string, name: string) => (await ask<any>(`mutation ($id: String!, $name: String!) { renameDashboardCard(id: $id, name: $name) { id } }`, { id, name })).renameDashboardCard,\n restore: async (id: string, version: number) => (await ask<any>(`mutation ($id: String!, $v: Int!) { restoreDashboardCardVersion(id: $id, version: $v) { id } }`, { id, v: version })).restoreDashboardCardVersion,\n copy: async (id: string) => (await ask<any>(`mutation ($id: String!) { copyDashboardCard(id: $id) { id } }`, { id })).copyDashboardCard,\n remove: async (id: string) => (await ask<any>(`mutation ($id: String!) { deleteDashboardCard(id: $id) }`, { id })).deleteDashboardCard,\n share: async (id: string, shares: CardShare[]) =>\n (await ask<any>(`mutation ($id: String!, $shares: [DashboardCardShareInput!]!) { shareDashboardCard(id: $id, shares: $shares) { ${CARD_FIELDS} } }`, { id, shares })).shareDashboardCard as CardItem,\n place: async (cardId: string) => (await ask<any>(`mutation ($id: String!) { placeDashboardCard(cardId: $id) { id } }`, { id: cardId })).placeDashboardCard\n}\n\n/** Told when a card is saved, copied, placed or removed elsewhere - an open dashboard reads itself again. */\nexport const DASHBOARD_CHANGED = 'ai-dashboard-changed'\n\nexport function dashboardChanged(): void {\n window.dispatchEvent(new CustomEvent(DASHBOARD_CHANGED))\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/ai-dashboard",
3
- "version": "10.1.256",
3
+ "version": "10.1.258",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -27,18 +27,18 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@material/web": "^2.0.0",
30
- "@operato/graphql": "^10.29.39",
30
+ "@operato/graphql": "^10.29.69",
31
31
  "@operato/i18n": "^10.0.0",
32
32
  "@operato/layout": "^10.29.49",
33
33
  "@operato/popup": "^10.29.39",
34
- "@operato/shell": "^10.29.39",
34
+ "@operato/shell": "^10.29.69",
35
35
  "@operato/styles": "^10.0.0",
36
- "@things-factory/ai-assistant": "^10.1.256",
37
- "@things-factory/ai-client-base": "^10.1.256",
38
- "@things-factory/auth-base": "^10.1.256",
36
+ "@things-factory/ai-assistant": "^10.1.258",
37
+ "@things-factory/ai-client-base": "^10.1.258",
38
+ "@things-factory/auth-base": "^10.1.258",
39
39
  "@things-factory/env": "^10.1.149",
40
- "@things-factory/organization": "^10.1.256",
41
- "@things-factory/shell": "^10.1.254",
40
+ "@things-factory/organization": "^10.1.258",
41
+ "@things-factory/shell": "^10.1.258",
42
42
  "graphql-scalars": "^1.22.0",
43
43
  "graphql-tag": "^2.12.6",
44
44
  "lit": "^3.1.2"
@@ -46,5 +46,5 @@
46
46
  "devDependencies": {
47
47
  "copyfiles": "^2.4.1"
48
48
  },
49
- "gitHead": "2fd641697190ce6e87bcf454a60b2321553e8110"
49
+ "gitHead": "c7b7e3b4e9aa1b36a246ccee312a4124a50924dd"
50
50
  }