@workjournal/shared 2.7.0 → 2.9.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connections.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/connections.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { allCombos, clients, connectionTypeLabels, defaultPlatform, matrix, platformsFor, slugFor, typesFor, } from '../connections.js';
3
+ describe('allCombos', () => {
4
+ it('yields the 20 known combos', () => {
5
+ expect(allCombos()).toHaveLength(20);
6
+ });
7
+ it('produces unique slugs', () => {
8
+ const slugs = allCombos().map((c) => c.slug);
9
+ expect(new Set(slugs).size).toBe(slugs.length);
10
+ });
11
+ it('only emits clients that exist in the clients list', () => {
12
+ const known = new Set(clients.map((c) => c.id));
13
+ for (const combo of allCombos()) {
14
+ expect(known.has(combo.client)).toBe(true);
15
+ }
16
+ });
17
+ });
18
+ describe('slugFor', () => {
19
+ it('joins the triplet with hyphens', () => {
20
+ expect(slugFor('claude-code', 'shell', 'skill')).toBe('claude-code-shell-skill');
21
+ });
22
+ it('replaces the slash in n/a', () => {
23
+ expect(slugFor('claude', 'web', 'n/a')).toBe('claude-web-n-a');
24
+ });
25
+ });
26
+ describe('platformsFor / typesFor / defaultPlatform', () => {
27
+ it('returns the matrix platforms for a known client', () => {
28
+ expect(platformsFor('claude')).toEqual(['web', 'desktop']);
29
+ });
30
+ it('returns empty for an unknown client', () => {
31
+ expect(platformsFor('not-a-client')).toEqual([]);
32
+ expect(typesFor('not-a-client', 'web')).toEqual([]);
33
+ expect(defaultPlatform('not-a-client')).toBeUndefined();
34
+ });
35
+ it('defaultPlatform is the first listed platform', () => {
36
+ expect(defaultPlatform('claude-code')).toBe('shell');
37
+ });
38
+ });
39
+ describe('matrix integrity', () => {
40
+ it('every platform entry has at least one connection type', () => {
41
+ for (const platformMap of Object.values(matrix)) {
42
+ for (const types of Object.values(platformMap)) {
43
+ expect(types.length).toBeGreaterThan(0);
44
+ }
45
+ }
46
+ });
47
+ it('every emitted connection type has a label', () => {
48
+ for (const combo of allCombos()) {
49
+ expect(connectionTypeLabels[combo.type]).toBeTruthy();
50
+ }
51
+ });
52
+ });
53
+ //# sourceMappingURL=connections.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.test.js","sourceRoot":"","sources":["../../src/__tests__/connections.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Client × platform × connection-method matrix for "connect your AI" pickers.
3
+ * Single source of truth consumed by the landing get-started page
4
+ * (`apps/landing/src/components/connection-picker.astro`) and the web app's
5
+ * empty-state picker (`apps/web/src/components/connect-ai-picker.tsx`).
6
+ * Exposed as the `@workjournal/shared/connections` subpath — NOT re-exported
7
+ * from the package index, because `ClientOption` would collide with the
8
+ * support-labels export. Human-readable mirror: `docs/connections.yaml`.
9
+ * Each combo's slug maps to a setup-guide markdown file in both apps.
10
+ */
11
+ export type ClientId = 'claude' | 'claude-code' | 'codex' | 'chatgpt' | 'perplexity' | 'grok' | 'opera-neon' | 'other';
12
+ export type PlatformId = 'web' | 'desktop' | 'mobile' | 'shell' | 'other';
13
+ export type ConnectionType = 'skill' | 'plugin' | 'cli' | 'remote-mcp' | 'local-mcp' | 'gpt-action' | 'n/a';
14
+ export interface ClientOption {
15
+ id: ClientId;
16
+ label: string;
17
+ provider: 'openai' | 'anthropic' | 'perplexity' | 'xai' | 'opera' | 'other';
18
+ }
19
+ export interface PlatformOption {
20
+ id: PlatformId;
21
+ label: string;
22
+ }
23
+ export declare const clients: ClientOption[];
24
+ export declare const platforms: PlatformOption[];
25
+ export declare const connectionTypeLabels: Record<ConnectionType, string>;
26
+ type Matrix = Partial<Record<ClientId, Partial<Record<PlatformId, ConnectionType[]>>>>;
27
+ export declare const matrix: Matrix;
28
+ export interface Combo {
29
+ client: ClientId;
30
+ platform: PlatformId;
31
+ type: ConnectionType;
32
+ slug: string;
33
+ }
34
+ export declare function allCombos(): Combo[];
35
+ export declare function slugFor(client: ClientId, platform: PlatformId, type: ConnectionType): string;
36
+ export declare function platformsFor(client: ClientId): PlatformId[];
37
+ export declare function typesFor(client: ClientId, platform: PlatformId): ConnectionType[];
38
+ export declare function defaultPlatform(client: ClientId): PlatformId | undefined;
39
+ export {};
40
+ //# sourceMappingURL=connections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,QAAQ,GACjB,QAAQ,GACR,aAAa,GACb,OAAO,GACP,SAAS,GACT,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,OAAO,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1E,MAAM,MAAM,cAAc,GACvB,OAAO,GACP,QAAQ,GACR,KAAK,GACL,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,KAAK,CAAC;AAET,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,QAAQ,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;CAC5E;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,OAAO,EAAE,YAAY,EASjC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cAAc,EAMrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAQ/D,CAAC;AAEF,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvF,eAAO,MAAM,MAAM,EAAE,MAgCpB,CAAC;AAEF,MAAM,WAAW,KAAK;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,SAAS,IAAI,KAAK,EAAE,CAgBnC;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAE5F;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,EAAE,CAI3D;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAG,cAAc,EAAE,CAEjF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAExE"}
@@ -0,0 +1,92 @@
1
+ export const clients = [
2
+ { id: 'claude', label: 'Claude', provider: 'anthropic' },
3
+ { id: 'claude-code', label: 'Claude Code', provider: 'anthropic' },
4
+ { id: 'codex', label: 'Codex', provider: 'openai' },
5
+ { id: 'chatgpt', label: 'ChatGPT', provider: 'openai' },
6
+ { id: 'perplexity', label: 'Perplexity', provider: 'perplexity' },
7
+ { id: 'grok', label: 'Grok', provider: 'xai' },
8
+ { id: 'opera-neon', label: 'Opera Neon', provider: 'opera' },
9
+ { id: 'other', label: 'Other', provider: 'other' },
10
+ ];
11
+ export const platforms = [
12
+ { id: 'web', label: 'Web' },
13
+ { id: 'desktop', label: 'Desktop app' },
14
+ { id: 'mobile', label: 'Mobile app' },
15
+ { id: 'shell', label: 'Shell / CLI' },
16
+ { id: 'other', label: 'Other' },
17
+ ];
18
+ export const connectionTypeLabels = {
19
+ skill: 'Skill',
20
+ plugin: 'Plugin',
21
+ cli: 'CLI',
22
+ 'remote-mcp': 'Remote MCP',
23
+ 'local-mcp': 'Local MCP',
24
+ 'gpt-action': 'Custom GPT',
25
+ 'n/a': 'Not applicable',
26
+ };
27
+ export const matrix = {
28
+ claude: {
29
+ web: ['remote-mcp'],
30
+ desktop: ['remote-mcp', 'local-mcp'],
31
+ },
32
+ 'claude-code': {
33
+ shell: ['plugin', 'skill', 'cli'],
34
+ },
35
+ codex: {
36
+ shell: ['plugin', 'skill', 'cli'],
37
+ },
38
+ chatgpt: {
39
+ web: ['remote-mcp', 'gpt-action'],
40
+ desktop: ['remote-mcp'],
41
+ mobile: ['remote-mcp'],
42
+ },
43
+ perplexity: {
44
+ web: ['remote-mcp'],
45
+ desktop: ['remote-mcp'],
46
+ },
47
+ grok: {
48
+ web: ['remote-mcp'],
49
+ mobile: ['remote-mcp'],
50
+ },
51
+ 'opera-neon': {
52
+ desktop: ['remote-mcp'],
53
+ },
54
+ // Catch-all for clients not in the list: any Open-Agent-Skills agent can
55
+ // run the skill; anything MCP-capable can use the remote server.
56
+ other: {
57
+ other: ['skill', 'remote-mcp'],
58
+ },
59
+ };
60
+ export function allCombos() {
61
+ const out = [];
62
+ for (const client of clients) {
63
+ const platformsForClient = matrix[client.id] ?? {};
64
+ for (const [platform, types] of Object.entries(platformsForClient)) {
65
+ for (const type of types ?? []) {
66
+ out.push({
67
+ client: client.id,
68
+ platform: platform,
69
+ type,
70
+ slug: slugFor(client.id, platform, type),
71
+ });
72
+ }
73
+ }
74
+ }
75
+ return out;
76
+ }
77
+ export function slugFor(client, platform, type) {
78
+ return `${client}-${platform}-${type.replace('/', '-')}`;
79
+ }
80
+ export function platformsFor(client) {
81
+ const m = matrix[client];
82
+ if (!m)
83
+ return [];
84
+ return Object.keys(m);
85
+ }
86
+ export function typesFor(client, platform) {
87
+ return matrix[client]?.[platform] ?? [];
88
+ }
89
+ export function defaultPlatform(client) {
90
+ return platformsFor(client)[0];
91
+ }
92
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workjournal/shared",
3
- "version": "2.7.0",
3
+ "version": "2.9.0",
4
4
  "description": "Shared types, constants, and credential helpers for the Workjournal CLI and MCP server.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,6 +16,10 @@
16
16
  "./auth": {
17
17
  "types": "./dist/auth.d.ts",
18
18
  "import": "./dist/auth.js"
19
+ },
20
+ "./connections": {
21
+ "types": "./dist/connections.d.ts",
22
+ "import": "./dist/connections.js"
19
23
  }
20
24
  },
21
25
  "files": [