@forumone/throughline-components 0.2.5 → 0.2.7

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/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @forumone/throughline-components
2
2
 
3
+ ## 0.2.7
4
+
5
+ ### Patch Changes
6
+
7
+ - f138b3d: One audit actor shape for every tool, and stop recording agents as people
8
+
9
+ Ten tools built the audit actor by hand and four of them disagreed. Three were only untidy — a dropped `userName`, conditional spreads, an assumption that `ctx.user` is non-null. The fourth was wrong: the component tools wrote `type: 'user'` unconditionally, so a call made with an API key and no linked user was recorded as a person. An audit log that cannot tell an agent from an editor is not an audit log.
10
+
11
+ `auditContext(ctx, meta)` is now exported from core and used at all eight tool call sites. `type` follows the rule the publishing service already used — a call carrying a user is that user's, one without is the system's — and `apiKeyName` rides along either way, because a key acting for a linked user is still worth naming.
12
+
13
+ It also passes `sessionId` through for the first time. The column has been on the audit collection since it was written and nothing ever filled it; it is what lets somebody reading the log group one conversation's writes instead of reading them one at a time.
14
+
15
+ - Updated dependencies [40839b5]
16
+ - Updated dependencies [9f39ace]
17
+ - Updated dependencies [f138b3d]
18
+ - Updated dependencies [6fac789]
19
+ - @forumone/throughline-core@0.4.0
20
+ - @forumone/throughline-plugin-contract@0.3.0
21
+
22
+ ## 0.2.6
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [d20f909]
27
+ - @forumone/throughline-core@0.3.0
28
+
3
29
  ## 0.2.5
4
30
 
5
31
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"find-anti-pattern.d.ts","sourceRoot":"","sources":["../../src/tools/find-anti-pattern.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAG3D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,GAAG,iBAAiB,CAsCtF"}
1
+ {"version":3,"file":"find-anti-pattern.d.ts","sourceRoot":"","sources":["../../src/tools/find-anti-pattern.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,4BAA4B,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAG3D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,GAAG,iBAAiB,CA+BtF"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { withMeta } from '@forumone/throughline-core';
2
+ import { auditContext, withMeta } from '@forumone/throughline-core';
3
3
  import { findAntiPatterns } from '../validation/composition.js';
4
4
  export function createFindAntiPatternTool(deps) {
5
5
  const inputSchema = withMeta({
@@ -18,17 +18,10 @@ export function createFindAntiPatternTool(deps) {
18
18
  const manifest = await deps.loader.get();
19
19
  const matches = findAntiPatterns({ blocks: input.blocks }, manifest);
20
20
  await deps.auditWriter({
21
- actor: {
22
- type: 'user',
23
- userId: ctx.user?.id,
24
- userName: ctx.user?.name,
25
- apiKeyName: ctx.apiKeyName,
26
- },
21
+ ...auditContext(ctx, input._meta),
27
22
  action: 'design.find_anti_pattern',
28
23
  mcpServer: 'component',
29
24
  mcpTool: 'find_anti_pattern',
30
- prompt: input._meta?.userPrompt,
31
- reasoning: input._meta?.reasoning,
32
25
  });
33
26
  return { matches };
34
27
  },
@@ -1 +1 @@
1
- {"version":3,"file":"find-anti-pattern.js","sourceRoot":"","sources":["../../src/tools/find-anti-pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAO/D,MAAM,UAAU,yBAAyB,CAAC,IAAyB;IACjE,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,MAAM,EAAE,CAAC;aACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;KACV,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,oOAAoO;QACtO,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;YACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;YAEpE,MAAM,IAAI,CAAC,WAAW,CAAC;gBACrB,KAAK,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE;oBACpB,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI;oBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;iBAC3B;gBACD,MAAM,EAAE,0BAA0B;gBAClC,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE,mBAAmB;gBAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU;gBAC/B,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS;aAClC,CAAC,CAAA;YAEF,OAAO,EAAE,OAAO,EAAE,CAAA;QACpB,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"find-anti-pattern.js","sourceRoot":"","sources":["../../src/tools/find-anti-pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,YAAY,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAO/D,MAAM,UAAU,yBAAyB,CAAC,IAAyB;IACjE,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,MAAM,EAAE,CAAC;aACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;KACV,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,oOAAoO;QACtO,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;YACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;YAEpE,MAAM,IAAI,CAAC,WAAW,CAAC;gBACrB,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;gBACjC,MAAM,EAAE,0BAA0B;gBAClC,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE,mBAAmB;aAC7B,CAAC,CAAA;YAEF,OAAO,EAAE,OAAO,EAAE,CAAA;QACpB,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-for-intent.d.ts","sourceRoot":"","sources":["../../src/tools/suggest-for-intent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,sBAAsB,CAAA;AAGrE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAoExF"}
1
+ {"version":3,"file":"suggest-for-intent.d.ts","sourceRoot":"","sources":["../../src/tools/suggest-for-intent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,4BAA4B,CAAA;AAErF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,sBAAsB,CAAA;AAGrE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAgExF"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { withMeta } from '@forumone/throughline-core';
2
+ import { auditContext, withMeta } from '@forumone/throughline-core';
3
3
  import { validateComposition } from '../validation/composition.js';
4
4
  export function createSuggestForIntentTool(deps) {
5
5
  const inputSchema = withMeta({
@@ -43,17 +43,13 @@ export function createSuggestForIntentTool(deps) {
43
43
  }
44
44
  // Audit (fire-and-forget; never blocks the response).
45
45
  await deps.auditWriter({
46
- actor: {
47
- type: 'user',
48
- userId: ctx.user?.id,
49
- userName: ctx.user?.name,
50
- apiKeyName: ctx.apiKeyName,
51
- },
46
+ ...auditContext(ctx, input._meta),
52
47
  action: 'design.suggest',
53
48
  mcpServer: 'component',
54
49
  mcpTool: 'suggest_for_intent',
50
+ // The intent *is* the prompt when the client sent no `_meta`, which is
51
+ // the whole record of why this call was made.
55
52
  prompt: input._meta?.userPrompt ?? input.intent,
56
- reasoning: input._meta?.reasoning,
57
53
  changesSummary: `Suggested components for: ${input.intent.slice(0, 120)}`,
58
54
  });
59
55
  // Quiet the unused-variable lint when the recommendation set
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-for-intent.js","sourceRoot":"","sources":["../../src/tools/suggest-for-intent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suggest-for-intent.js","sourceRoot":"","sources":["../../src/tools/suggest-for-intent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-composition.d.ts","sourceRoot":"","sources":["../../src/tools/validate-composition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAG3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,GAAG,iBAAiB,CAsC9F"}
1
+ {"version":3,"file":"validate-composition.d.ts","sourceRoot":"","sources":["../../src/tools/validate-composition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,4BAA4B,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAG3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,GAAG,iBAAiB,CA+B9F"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { withMeta } from '@forumone/throughline-core';
2
+ import { auditContext, withMeta } from '@forumone/throughline-core';
3
3
  import { validateComposition } from '../validation/composition.js';
4
4
  export function createValidateCompositionTool(deps) {
5
5
  const inputSchema = withMeta({
@@ -18,17 +18,10 @@ export function createValidateCompositionTool(deps) {
18
18
  const manifest = await deps.loader.get();
19
19
  const result = validateComposition({ blocks: input.blocks }, manifest);
20
20
  await deps.auditWriter({
21
- actor: {
22
- type: 'user',
23
- userId: ctx.user?.id,
24
- userName: ctx.user?.name,
25
- apiKeyName: ctx.apiKeyName,
26
- },
21
+ ...auditContext(ctx, input._meta),
27
22
  action: 'design.validate',
28
23
  mcpServer: 'component',
29
24
  mcpTool: 'validate_composition',
30
- prompt: input._meta?.userPrompt,
31
- reasoning: input._meta?.reasoning,
32
25
  });
33
26
  return result;
34
27
  },
@@ -1 +1 @@
1
- {"version":3,"file":"validate-composition.js","sourceRoot":"","sources":["../../src/tools/validate-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAOlE,MAAM,UAAU,6BAA6B,CAAC,IAA6B;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,MAAM,EAAE,CAAC;aACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;KACV,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,0LAA0L;QAC5L,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;YACxC,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;YAEtE,MAAM,IAAI,CAAC,WAAW,CAAC;gBACrB,KAAK,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE;oBACpB,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI;oBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;iBAC3B;gBACD,MAAM,EAAE,iBAAiB;gBACzB,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU;gBAC/B,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS;aAClC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"validate-composition.js","sourceRoot":"","sources":["../../src/tools/validate-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,YAAY,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAOlE,MAAM,UAAU,6BAA6B,CAAC,IAA6B;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,MAAM,EAAE,CAAC;aACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;KACV,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,0LAA0L;QAC5L,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;YACxC,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;YAEtE,MAAM,IAAI,CAAC,WAAW,CAAC;gBACrB,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;gBACjC,MAAM,EAAE,iBAAiB;gBACzB,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE,sBAAsB;aAChC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forumone/throughline-components",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "description": "MCP server that exposes a design system manifest as conversational primitives for Throughline.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -40,9 +40,9 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "zod": "^3.23.0",
43
- "@forumone/throughline-core": "0.2.2",
43
+ "@forumone/throughline-core": "0.4.0",
44
44
  "@forumone/throughline-design-contract": "0.3.0",
45
- "@forumone/throughline-plugin-contract": "0.2.1"
45
+ "@forumone/throughline-plugin-contract": "0.3.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/node": "^20.17.0",