@angelmsger/fx 0.15.0 → 0.16.1

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +4 -0
  3. package/defaults/tools.yaml +22 -14
  4. package/dist/adapters/channel/wecom-channel-cli/provider.js +1 -1
  5. package/dist/adapters/channel/wecom-channel-cli/provider.js.map +1 -1
  6. package/dist/adapters/im/wecom-chat-cli/provider.js +52 -0
  7. package/dist/adapters/im/wecom-chat-cli/provider.js.map +1 -0
  8. package/dist/application/manifest/lint.js +6 -1
  9. package/dist/application/manifest/lint.js.map +1 -1
  10. package/dist/application/member/list.js +4 -23
  11. package/dist/application/member/list.js.map +1 -1
  12. package/dist/application/member/show.js +9 -2
  13. package/dist/application/member/show.js.map +1 -1
  14. package/dist/application/skill/tool-skills.js +1 -1
  15. package/dist/application/skill/tool-skills.js.map +1 -1
  16. package/dist/application/workspace/health.js +3 -0
  17. package/dist/application/workspace/health.js.map +1 -1
  18. package/dist/cli/commands/member/list.js +10 -5
  19. package/dist/cli/commands/member/list.js.map +1 -1
  20. package/dist/cli/commands/member/scope-flags.js +10 -0
  21. package/dist/cli/commands/member/scope-flags.js.map +1 -0
  22. package/dist/cli/commands/member/show.js +11 -3
  23. package/dist/cli/commands/member/show.js.map +1 -1
  24. package/dist/composition/registry.js +2 -0
  25. package/dist/composition/registry.js.map +1 -1
  26. package/dist/domain/fuzzy.js +13 -4
  27. package/dist/domain/fuzzy.js.map +1 -1
  28. package/dist/domain/manifest/members.schema.js +37 -0
  29. package/dist/domain/manifest/members.schema.js.map +1 -1
  30. package/dist/domain/manifest/rules/member-classifications.js +112 -0
  31. package/dist/domain/manifest/rules/member-classifications.js.map +1 -0
  32. package/dist/domain/manifest/rules/members.js +2 -1
  33. package/dist/domain/manifest/rules/members.js.map +1 -1
  34. package/dist/domain/manifest/tools.schema.js +2 -2
  35. package/dist/domain/manifest/tools.schema.js.map +1 -1
  36. package/dist/domain/manifest/versioning.js +1 -1
  37. package/dist/domain/manifest/versioning.js.map +1 -1
  38. package/dist/domain/members/account-collisions.js +37 -0
  39. package/dist/domain/members/account-collisions.js.map +1 -0
  40. package/dist/domain/members/classify.js +158 -0
  41. package/dist/domain/members/classify.js.map +1 -0
  42. package/dist/domain/members/owners.js +2 -0
  43. package/dist/domain/members/owners.js.map +1 -1
  44. package/dist/domain/members/resolve.js +27 -13
  45. package/dist/domain/members/resolve.js.map +1 -1
  46. package/dist/domain/toolchain/resolve.js +1 -1
  47. package/dist/domain/toolchain/resolve.js.map +1 -1
  48. package/package.json +1 -1
  49. package/skills/fx-workspace/SKILL.md +1 -1
  50. package/skills/fx-workspace/references/commands.md +4 -1
@@ -1,35 +1,46 @@
1
1
  // Who is meant by a name. Identifiers are matched exactly and in a fixed
2
2
  // order of trust — an email address is unambiguous, a display name is not —
3
3
  // and only when nothing matches exactly does spelling distance get a say.
4
- import { nearest } from '../fuzzy.js';
4
+ import { nearest, nearestMatches } from '../fuzzy.js';
5
5
  const ORDER = ['email', 'id', 'account', 'display', 'git_name'];
6
- export function findPeople(members, query) {
6
+ export function findPeople(members, query, system) {
7
7
  const q = query.trim().toLowerCase();
8
8
  const matches = [];
9
9
  for (const person of members.people) {
10
- const hit = exactMatch(person, q);
10
+ if (system !== undefined) {
11
+ const account = person.accounts?.[system];
12
+ if (account !== undefined && accountMatches(account, query.trim(), false))
13
+ matches.push({ person, matchedBy: 'account', via: system });
14
+ continue;
15
+ }
16
+ const hit = exactMatch(person, query.trim(), members.schema_version === 1);
11
17
  if (hit !== undefined)
12
18
  matches.push(hit);
13
19
  }
14
20
  if (matches.length > 0)
15
21
  return matches.sort((a, b) => ORDER.indexOf(a.matchedBy) - ORDER.indexOf(b.matchedBy));
22
+ if (system !== undefined)
23
+ return [];
16
24
  const candidates = members.people.flatMap((p) => [
17
25
  p.id,
18
26
  ...(p.display === undefined ? [] : [p.display]),
19
27
  ]);
20
- const near = nearest(q, candidates.map((c) => c.toLowerCase()), 2);
21
- if (near === undefined)
22
- return [];
23
- const person = members.people.find((p) => p.id.toLowerCase() === near || p.display?.toLowerCase() === near);
24
- return person === undefined ? [] : [{ person, matchedBy: 'fuzzy', via: near }];
28
+ const near = new Set(nearestMatches(q, candidates.map((c) => c.toLowerCase()), 2));
29
+ return members.people.flatMap((person) => {
30
+ const via = [person.id, person.display].find((name) => name !== undefined && near.has(name.toLowerCase()));
31
+ return via === undefined
32
+ ? []
33
+ : [{ person, matchedBy: 'fuzzy', via: via.toLowerCase() }];
34
+ });
25
35
  }
26
- function exactMatch(person, q) {
36
+ function exactMatch(person, query, legacy) {
37
+ const q = query.toLowerCase();
27
38
  if (person.email?.toLowerCase() === q)
28
39
  return { person, matchedBy: 'email' };
29
40
  if (person.id.toLowerCase() === q)
30
41
  return { person, matchedBy: 'id' };
31
42
  for (const [system, account] of Object.entries(person.accounts ?? {})) {
32
- if (handlesOf(account).some((h) => h.toLowerCase() === q))
43
+ if (accountMatches(account, query, legacy))
33
44
  return { person, matchedBy: 'account', via: system };
34
45
  }
35
46
  if (person.display !== undefined && person.display.toLowerCase().includes(q))
@@ -39,10 +50,13 @@ function exactMatch(person, q) {
39
50
  return { person, matchedBy: 'git_name', via: gitName };
40
51
  return undefined;
41
52
  }
42
- function handlesOf(account) {
53
+ function accountMatches(account, query, legacy) {
54
+ const username = typeof account === 'string' ? account : account.username;
55
+ if (username?.toLowerCase() === query.toLowerCase())
56
+ return true;
43
57
  if (typeof account === 'string')
44
- return [account];
45
- return [account.username, account.id].filter((h) => h !== undefined);
58
+ return false;
59
+ return legacy ? account.id?.toLowerCase() === query.toLowerCase() : account.id === query;
46
60
  }
47
61
  // A commit author is attributed only on an exact git name or display
48
62
  // name; there is no fuzzy step, and two people sharing a name means nobody.
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/domain/members/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/domain/members/resolve.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ function resolveTool(tool, toolchain, provenance, declared) {
49
49
  },
50
50
  };
51
51
  }
52
- // An empty command means the tool has no Skill or needs no sign-in.
52
+ // Empty commands disable automatic Skill installation or the standalone auth probe.
53
53
  function resolvedSkill(skill) {
54
54
  if (skill === undefined || skill.command.length === 0)
55
55
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/domain/toolchain/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/domain/toolchain/resolve.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,yFAAyF;AACzF,qFAAqF;AAErF,OAAO,EAAE,YAAY,EAAgC,MAAM,wBAAwB,CAAC;AA2CpF,MAAM,WAAW,GAAgC;IAC/C,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,UAAsB,EACtB,WAA8B,EAAE;IAEhC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,WAAW,CAClB,IAAU,EACV,SAAoB,EACpB,UAAsB,EACtB,QAA6B;IAE7B,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,KAAkB,EAAU,EAAE;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAI,IAAgC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;QACtF,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrC,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,QAAQ,CAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACrB,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAC9C,CAAC;IACF,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI;QAChC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;QAChC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,aAAa,EAAE,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,IAAI,KAAK;QACxE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3E,WAAW,EAAE,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC;QACxE,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAC/C;QACD,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;QAC9C,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;QAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,aAAa,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAC/D,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAC3D,OAAO,EAAE;YACP,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;YAClC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;YAC1B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;SACvB;KACF,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,SAAS,aAAa,CAAC,KAAoB;IACzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,OAAO;QACL,KAAK,EAAE;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1E,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;SACrE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAkB;IACtC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACrF,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;SACxD;KACF,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,IAAqD;IAClF,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAAmC,EACnC,aAA+C;IAE/C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC,KAAK,OAAO;QAC3F,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAoD,EACpD,MAAc;IAEd,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;SACnB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,MAAoD,EAAE,IAAY;IAClF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAChC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CACtF;QACC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CACnB,MAAqB,EACrB,IAAY,EACZ,KAAyB;IAEzB,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACrE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC;AAC9E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angelmsger/fx",
3
- "version": "0.15.0",
3
+ "version": "0.16.1",
4
4
  "description": "Manifest-driven multi-repository workspaces for people and coding agents",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fx-workspace
3
- version: 0.15.0
3
+ version: 0.16.1
4
4
  description: 'Use only when the user explicitly asks for the fx workspace CLI or manifest, or the current task is inside an fx-managed workspace or routed by its fx-derived AGENTS.md. Drive workspace init and sync, repository status and selection, manifest validation and editing, companion tools and login, doctor, agent Skills, repository ownership, environment coordinates and readiness through can/where, and release checks across dependencies, branches, builds and errors. Do not use for generic Sentry, OpenObserve, Jenkins, Kubernetes, logs, errors or builds outside an fx-managed workspace.'
5
5
  metadata:
6
6
  requires:
@@ -145,7 +145,10 @@ explicit `--probe`. Pass `--platform` to keep one platform's check from waiting
145
145
  another's. A `not_covered` row states what the manifest covers: its first note is the
146
146
  reason, and a note of the environment may follow.
147
147
 
148
- `fx member show <query>` — `items[]` of people: `id`, `display`, `email`, `status`, `accounts` (per system), `matched_by`, `via`.
148
+ `fx member show <query>` — `items[]` of people: `id`, `display`, `email`, `status`, `accounts` (per system), `matched_by`, `via`. For author attribution, pass `--system <system>` and require exactly one account match. Keep ambiguous identity candidates separate.
149
+ Use `--area <id>` and optionally `--scenario <id>` for a business context. Keep `memberships`, `responsible_teams`, and `assignments` separate. Read each edge's source and status. A confirmed function without a team leaves team classification uncovered. Multiple confirmed teams are valid. `candidate`, `multiple_candidates`, `not_configured`, and `not_covered` do not confirm a team. Date filters evaluate declared intervals only.
150
+ `fx member list --team <id> --function <id> --area <id>` requires a single matching assignment. Without business scope, either kind of relationship may match. Keep collective `all` separate from named people.
151
+
149
152
  `fx repo show <repo>` — the resolved entry, disk state and URLs, plus `owners`: `[]` when the members document names nobody, `null` when the workspace has no members document at all, else items of `area`, `lead`, `scenario`, `devLead`, `roles`, every person as `{id, name, email}` (name and email `null` when the id is not in the document, `all` included); `contact` is the project's contact. Its `next_steps` use the canonical repository name and explicit workspace to select an unpicked repository and synchronize missing shared checkouts; inspection itself never changes selection or downloads files.
150
153
 
151
154
  ### Diagnostic reports