@topolo/sdk 0.2.2 → 0.2.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/index.cjs CHANGED
@@ -110,6 +110,7 @@ var SERVICES = {
110
110
  chat: "https://chat.topolo.app",
111
111
  commerce: "https://topolo-commerce-api.topolo.workers.dev",
112
112
  crm: "https://crm-api.topolo.app",
113
+ feed: "https://topolo-feed-api.topolo.app",
113
114
  forecast: "https://forecast-worker-production.topolo.workers.dev",
114
115
  learn: "https://topololearn-api.topolo.workers.dev",
115
116
  mail: "https://mail.topolo.app",
@@ -448,24 +449,34 @@ var APPLICATIONS = {
448
449
  "appDir": "TopoloFeed",
449
450
  "name": "TopoloFeed",
450
451
  "packageName": null,
451
- "productionUrl": null,
452
- "services": [],
452
+ "productionUrl": "https://topolo-feed-api.topolo.app",
453
+ "services": [
454
+ "feed"
455
+ ],
453
456
  "deployTargets": [
454
457
  {
455
458
  "name": "topolo-feed-analytics-api",
456
459
  "kind": "worker",
457
- "apiUrl": null,
458
- "domains": [],
459
- "routes": [],
460
+ "apiUrl": "https://topolo-feed-analytics-api.topolo.app",
461
+ "domains": [
462
+ "topolo-feed-analytics-api.topolo.app"
463
+ ],
464
+ "routes": [
465
+ "topolo-feed-analytics-api.topolo.app"
466
+ ],
460
467
  "serviceId": null
461
468
  },
462
469
  {
463
470
  "name": "topolo-feed-api",
464
471
  "kind": "worker",
465
- "apiUrl": null,
466
- "domains": [],
467
- "routes": [],
468
- "serviceId": null
472
+ "apiUrl": "https://topolo-feed-api.topolo.app",
473
+ "domains": [
474
+ "topolo-feed-api.topolo.app"
475
+ ],
476
+ "routes": [
477
+ "topolo-feed-api.topolo.app"
478
+ ],
479
+ "serviceId": "feed"
469
480
  }
470
481
  ]
471
482
  },
@@ -1004,10 +1015,12 @@ var APPLICATION_REQUIREMENTS = [
1004
1015
  evidence: [
1005
1016
  "@topolo/ui-kit is used for the platform shell where the app has authenticated UI",
1006
1017
  "The shared launcher/app switcher is reachable from authenticated app chrome",
1007
- "Account menu and sign-out behavior use the shared platform affordance"
1018
+ "Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"
1008
1019
  ],
1009
1020
  implementation: [
1010
- "Use TopoloShell or the current shared shell contract for authenticated app layouts",
1021
+ "Use TopoloAppShell for authenticated app layouts",
1022
+ "Use TopoloAccountMenu when a partial-shell surface still needs account chrome",
1023
+ "Pass app-specific account actions as additive menu items instead of forking dropdowns",
1011
1024
  "Use shared design tokens and platform UI primitives before creating local equivalents",
1012
1025
  "Keep mobile and desktop shell behavior aligned with the platform UI kit"
1013
1026
  ]
package/dist/index.d.cts CHANGED
@@ -40,6 +40,7 @@ declare const SERVICES: {
40
40
  readonly chat: "https://chat.topolo.app";
41
41
  readonly commerce: "https://topolo-commerce-api.topolo.workers.dev";
42
42
  readonly crm: "https://crm-api.topolo.app";
43
+ readonly feed: "https://topolo-feed-api.topolo.app";
43
44
  readonly forecast: "https://forecast-worker-production.topolo.workers.dev";
44
45
  readonly learn: "https://topololearn-api.topolo.workers.dev";
45
46
  readonly mail: "https://mail.topolo.app";
@@ -301,22 +302,22 @@ declare const APPLICATIONS: {
301
302
  readonly appDir: "TopoloFeed";
302
303
  readonly name: "TopoloFeed";
303
304
  readonly packageName: null;
304
- readonly productionUrl: null;
305
- readonly services: readonly [];
305
+ readonly productionUrl: "https://topolo-feed-api.topolo.app";
306
+ readonly services: readonly ["feed"];
306
307
  readonly deployTargets: readonly [{
307
308
  readonly name: "topolo-feed-analytics-api";
308
309
  readonly kind: "worker";
309
- readonly apiUrl: null;
310
- readonly domains: readonly [];
311
- readonly routes: readonly [];
310
+ readonly apiUrl: "https://topolo-feed-analytics-api.topolo.app";
311
+ readonly domains: readonly ["topolo-feed-analytics-api.topolo.app"];
312
+ readonly routes: readonly ["topolo-feed-analytics-api.topolo.app"];
312
313
  readonly serviceId: null;
313
314
  }, {
314
315
  readonly name: "topolo-feed-api";
315
316
  readonly kind: "worker";
316
- readonly apiUrl: null;
317
- readonly domains: readonly [];
318
- readonly routes: readonly [];
319
- readonly serviceId: null;
317
+ readonly apiUrl: "https://topolo-feed-api.topolo.app";
318
+ readonly domains: readonly ["topolo-feed-api.topolo.app"];
319
+ readonly routes: readonly ["topolo-feed-api.topolo.app"];
320
+ readonly serviceId: "feed";
320
321
  }];
321
322
  };
322
323
  readonly forecast: {
@@ -750,8 +751,8 @@ declare const APPLICATION_REQUIREMENTS: readonly [{
750
751
  readonly title: "Use the shared shell, launcher, and account menu";
751
752
  readonly summary: "Browser applications should feel like one platform and should not create isolated navigation or account surfaces.";
752
753
  readonly appliesTo: readonly ["browser"];
753
- readonly evidence: readonly ["@topolo/ui-kit is used for the platform shell where the app has authenticated UI", "The shared launcher/app switcher is reachable from authenticated app chrome", "Account menu and sign-out behavior use the shared platform affordance"];
754
- readonly implementation: readonly ["Use TopoloShell or the current shared shell contract for authenticated app layouts", "Use shared design tokens and platform UI primitives before creating local equivalents", "Keep mobile and desktop shell behavior aligned with the platform UI kit"];
754
+ readonly evidence: readonly ["@topolo/ui-kit is used for the platform shell where the app has authenticated UI", "The shared launcher/app switcher is reachable from authenticated app chrome", "Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"];
755
+ readonly implementation: readonly ["Use TopoloAppShell for authenticated app layouts", "Use TopoloAccountMenu when a partial-shell surface still needs account chrome", "Pass app-specific account actions as additive menu items instead of forking dropdowns", "Use shared design tokens and platform UI primitives before creating local equivalents", "Keep mobile and desktop shell behavior aligned with the platform UI kit"];
755
756
  }, {
756
757
  readonly id: "service-registration-and-scopes";
757
758
  readonly title: "Register protected APIs as platform services";
package/dist/index.d.ts CHANGED
@@ -40,6 +40,7 @@ declare const SERVICES: {
40
40
  readonly chat: "https://chat.topolo.app";
41
41
  readonly commerce: "https://topolo-commerce-api.topolo.workers.dev";
42
42
  readonly crm: "https://crm-api.topolo.app";
43
+ readonly feed: "https://topolo-feed-api.topolo.app";
43
44
  readonly forecast: "https://forecast-worker-production.topolo.workers.dev";
44
45
  readonly learn: "https://topololearn-api.topolo.workers.dev";
45
46
  readonly mail: "https://mail.topolo.app";
@@ -301,22 +302,22 @@ declare const APPLICATIONS: {
301
302
  readonly appDir: "TopoloFeed";
302
303
  readonly name: "TopoloFeed";
303
304
  readonly packageName: null;
304
- readonly productionUrl: null;
305
- readonly services: readonly [];
305
+ readonly productionUrl: "https://topolo-feed-api.topolo.app";
306
+ readonly services: readonly ["feed"];
306
307
  readonly deployTargets: readonly [{
307
308
  readonly name: "topolo-feed-analytics-api";
308
309
  readonly kind: "worker";
309
- readonly apiUrl: null;
310
- readonly domains: readonly [];
311
- readonly routes: readonly [];
310
+ readonly apiUrl: "https://topolo-feed-analytics-api.topolo.app";
311
+ readonly domains: readonly ["topolo-feed-analytics-api.topolo.app"];
312
+ readonly routes: readonly ["topolo-feed-analytics-api.topolo.app"];
312
313
  readonly serviceId: null;
313
314
  }, {
314
315
  readonly name: "topolo-feed-api";
315
316
  readonly kind: "worker";
316
- readonly apiUrl: null;
317
- readonly domains: readonly [];
318
- readonly routes: readonly [];
319
- readonly serviceId: null;
317
+ readonly apiUrl: "https://topolo-feed-api.topolo.app";
318
+ readonly domains: readonly ["topolo-feed-api.topolo.app"];
319
+ readonly routes: readonly ["topolo-feed-api.topolo.app"];
320
+ readonly serviceId: "feed";
320
321
  }];
321
322
  };
322
323
  readonly forecast: {
@@ -750,8 +751,8 @@ declare const APPLICATION_REQUIREMENTS: readonly [{
750
751
  readonly title: "Use the shared shell, launcher, and account menu";
751
752
  readonly summary: "Browser applications should feel like one platform and should not create isolated navigation or account surfaces.";
752
753
  readonly appliesTo: readonly ["browser"];
753
- readonly evidence: readonly ["@topolo/ui-kit is used for the platform shell where the app has authenticated UI", "The shared launcher/app switcher is reachable from authenticated app chrome", "Account menu and sign-out behavior use the shared platform affordance"];
754
- readonly implementation: readonly ["Use TopoloShell or the current shared shell contract for authenticated app layouts", "Use shared design tokens and platform UI primitives before creating local equivalents", "Keep mobile and desktop shell behavior aligned with the platform UI kit"];
754
+ readonly evidence: readonly ["@topolo/ui-kit is used for the platform shell where the app has authenticated UI", "The shared launcher/app switcher is reachable from authenticated app chrome", "Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"];
755
+ readonly implementation: readonly ["Use TopoloAppShell for authenticated app layouts", "Use TopoloAccountMenu when a partial-shell surface still needs account chrome", "Pass app-specific account actions as additive menu items instead of forking dropdowns", "Use shared design tokens and platform UI primitives before creating local equivalents", "Keep mobile and desktop shell behavior aligned with the platform UI kit"];
755
756
  }, {
756
757
  readonly id: "service-registration-and-scopes";
757
758
  readonly title: "Register protected APIs as platform services";
package/dist/index.js CHANGED
@@ -66,6 +66,7 @@ var SERVICES = {
66
66
  chat: "https://chat.topolo.app",
67
67
  commerce: "https://topolo-commerce-api.topolo.workers.dev",
68
68
  crm: "https://crm-api.topolo.app",
69
+ feed: "https://topolo-feed-api.topolo.app",
69
70
  forecast: "https://forecast-worker-production.topolo.workers.dev",
70
71
  learn: "https://topololearn-api.topolo.workers.dev",
71
72
  mail: "https://mail.topolo.app",
@@ -404,24 +405,34 @@ var APPLICATIONS = {
404
405
  "appDir": "TopoloFeed",
405
406
  "name": "TopoloFeed",
406
407
  "packageName": null,
407
- "productionUrl": null,
408
- "services": [],
408
+ "productionUrl": "https://topolo-feed-api.topolo.app",
409
+ "services": [
410
+ "feed"
411
+ ],
409
412
  "deployTargets": [
410
413
  {
411
414
  "name": "topolo-feed-analytics-api",
412
415
  "kind": "worker",
413
- "apiUrl": null,
414
- "domains": [],
415
- "routes": [],
416
+ "apiUrl": "https://topolo-feed-analytics-api.topolo.app",
417
+ "domains": [
418
+ "topolo-feed-analytics-api.topolo.app"
419
+ ],
420
+ "routes": [
421
+ "topolo-feed-analytics-api.topolo.app"
422
+ ],
416
423
  "serviceId": null
417
424
  },
418
425
  {
419
426
  "name": "topolo-feed-api",
420
427
  "kind": "worker",
421
- "apiUrl": null,
422
- "domains": [],
423
- "routes": [],
424
- "serviceId": null
428
+ "apiUrl": "https://topolo-feed-api.topolo.app",
429
+ "domains": [
430
+ "topolo-feed-api.topolo.app"
431
+ ],
432
+ "routes": [
433
+ "topolo-feed-api.topolo.app"
434
+ ],
435
+ "serviceId": "feed"
425
436
  }
426
437
  ]
427
438
  },
@@ -960,10 +971,12 @@ var APPLICATION_REQUIREMENTS = [
960
971
  evidence: [
961
972
  "@topolo/ui-kit is used for the platform shell where the app has authenticated UI",
962
973
  "The shared launcher/app switcher is reachable from authenticated app chrome",
963
- "Account menu and sign-out behavior use the shared platform affordance"
974
+ "Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"
964
975
  ],
965
976
  implementation: [
966
- "Use TopoloShell or the current shared shell contract for authenticated app layouts",
977
+ "Use TopoloAppShell for authenticated app layouts",
978
+ "Use TopoloAccountMenu when a partial-shell surface still needs account chrome",
979
+ "Pass app-specific account actions as additive menu items instead of forking dropdowns",
967
980
  "Use shared design tokens and platform UI primitives before creating local equivalents",
968
981
  "Keep mobile and desktop shell behavior aligned with the platform UI kit"
969
982
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topolo/sdk",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Typed client SDK for the Topolo platform. Used by TopoloCli, TopoloMCP, and third-party agents.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,6 +19,7 @@
19
19
  ],
20
20
  "scripts": {
21
21
  "generate:services": "node scripts/generate-services.mjs",
22
+ "check:generated": "node scripts/check-generated.mjs",
22
23
  "prebuild": "node scripts/generate-services.mjs",
23
24
  "build": "tsup src/index.ts --format esm,cjs --dts --clean",
24
25
  "dev": "tsup src/index.ts --format esm,cjs --dts --watch",
@@ -127,10 +127,12 @@ export const APPLICATION_REQUIREMENTS = [
127
127
  evidence: [
128
128
  '@topolo/ui-kit is used for the platform shell where the app has authenticated UI',
129
129
  'The shared launcher/app switcher is reachable from authenticated app chrome',
130
- 'Account menu and sign-out behavior use the shared platform affordance',
130
+ 'Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu',
131
131
  ],
132
132
  implementation: [
133
- 'Use TopoloShell or the current shared shell contract for authenticated app layouts',
133
+ 'Use TopoloAppShell for authenticated app layouts',
134
+ 'Use TopoloAccountMenu when a partial-shell surface still needs account chrome',
135
+ 'Pass app-specific account actions as additive menu items instead of forking dropdowns',
134
136
  'Use shared design tokens and platform UI primitives before creating local equivalents',
135
137
  'Keep mobile and desktop shell behavior aligned with the platform UI kit',
136
138
  ],
@@ -319,24 +319,34 @@ export const APPLICATIONS = {
319
319
  "appDir": "TopoloFeed",
320
320
  "name": "TopoloFeed",
321
321
  "packageName": null,
322
- "productionUrl": null,
323
- "services": [],
322
+ "productionUrl": "https://topolo-feed-api.topolo.app",
323
+ "services": [
324
+ "feed"
325
+ ],
324
326
  "deployTargets": [
325
327
  {
326
328
  "name": "topolo-feed-analytics-api",
327
329
  "kind": "worker",
328
- "apiUrl": null,
329
- "domains": [],
330
- "routes": [],
330
+ "apiUrl": "https://topolo-feed-analytics-api.topolo.app",
331
+ "domains": [
332
+ "topolo-feed-analytics-api.topolo.app"
333
+ ],
334
+ "routes": [
335
+ "topolo-feed-analytics-api.topolo.app"
336
+ ],
331
337
  "serviceId": null
332
338
  },
333
339
  {
334
340
  "name": "topolo-feed-api",
335
341
  "kind": "worker",
336
- "apiUrl": null,
337
- "domains": [],
338
- "routes": [],
339
- "serviceId": null
342
+ "apiUrl": "https://topolo-feed-api.topolo.app",
343
+ "domains": [
344
+ "topolo-feed-api.topolo.app"
345
+ ],
346
+ "routes": [
347
+ "topolo-feed-api.topolo.app"
348
+ ],
349
+ "serviceId": "feed"
340
350
  }
341
351
  ]
342
352
  },
@@ -11,6 +11,7 @@ export const SERVICES = {
11
11
  chat: "https://chat.topolo.app",
12
12
  commerce: "https://topolo-commerce-api.topolo.workers.dev",
13
13
  crm: "https://crm-api.topolo.app",
14
+ feed: "https://topolo-feed-api.topolo.app",
14
15
  forecast: "https://forecast-worker-production.topolo.workers.dev",
15
16
  learn: "https://topololearn-api.topolo.workers.dev",
16
17
  mail: "https://mail.topolo.app",
@@ -46,6 +46,7 @@ describe('service registry', () => {
46
46
  it('includes every production worker API that belongs to a platform application', () => {
47
47
  expect(DEFAULT_SERVICE_URLS).toMatchObject({
48
48
  calendar: 'https://calendar.topolo.app',
49
+ feed: 'https://topolo-feed-api.topolo.app',
49
50
  mail: 'https://mail.topolo.app',
50
51
  web: 'https://web-api.topolo.app',
51
52
  });
@@ -91,6 +92,16 @@ describe('application catalog', () => {
91
92
  APPLICATIONS.web.deployTargets.find((target) => target.name === 'topoloweb-runtime')?.serviceId,
92
93
  ).toBeNull();
93
94
  });
95
+
96
+ it('treats TopoloFeed analytics as telemetry, not an agent-callable API service', () => {
97
+ expect(APPLICATIONS.feed.services).toEqual(['feed']);
98
+ expect(
99
+ APPLICATIONS.feed.deployTargets.find((target) => target.name === 'topolo-feed-api')?.serviceId,
100
+ ).toBe('feed');
101
+ expect(
102
+ APPLICATIONS.feed.deployTargets.find((target) => target.name === 'topolo-feed-analytics-api')?.serviceId,
103
+ ).toBeNull();
104
+ });
94
105
  });
95
106
 
96
107
  describe('application requirements', () => {