ai-spector 0.2.1 → 0.2.2

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 (47) hide show
  1. package/README.md +1 -0
  2. package/dist/cli.js +16 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/graphify-update.d.ts +2 -0
  5. package/dist/commands/graphify-update.d.ts.map +1 -1
  6. package/dist/commands/graphify-update.js +41 -6
  7. package/dist/commands/graphify-update.js.map +1 -1
  8. package/dist/commands/index.d.ts.map +1 -1
  9. package/dist/commands/index.js +30 -1
  10. package/dist/commands/index.js.map +1 -1
  11. package/dist/graph/InMemoryGraph.d.ts.map +1 -1
  12. package/dist/graph/InMemoryGraph.js +4 -4
  13. package/dist/graph/InMemoryGraph.js.map +1 -1
  14. package/dist/graph/merge.d.ts.map +1 -1
  15. package/dist/graph/merge.js +13 -5
  16. package/dist/graph/merge.js.map +1 -1
  17. package/dist/graph/path-target-edges.d.ts +5 -0
  18. package/dist/graph/path-target-edges.d.ts.map +1 -0
  19. package/dist/graph/path-target-edges.js +9 -0
  20. package/dist/graph/path-target-edges.js.map +1 -0
  21. package/dist/graph/provenance.d.ts +20 -0
  22. package/dist/graph/provenance.d.ts.map +1 -0
  23. package/dist/graph/provenance.js +221 -0
  24. package/dist/graph/provenance.js.map +1 -0
  25. package/dist/graph/query.d.ts +1 -0
  26. package/dist/graph/query.d.ts.map +1 -1
  27. package/dist/graph/query.js +16 -3
  28. package/dist/graph/query.js.map +1 -1
  29. package/dist/graph/source-refs.d.ts +2 -0
  30. package/dist/graph/source-refs.d.ts.map +1 -0
  31. package/dist/graph/source-refs.js +30 -0
  32. package/dist/graph/source-refs.js.map +1 -0
  33. package/dist/graphify/graph-index.d.ts +28 -0
  34. package/dist/graphify/graph-index.d.ts.map +1 -0
  35. package/dist/graphify/graph-index.js +52 -0
  36. package/dist/graphify/graph-index.js.map +1 -0
  37. package/dist/graphify/sources.d.ts +22 -0
  38. package/dist/graphify/sources.d.ts.map +1 -1
  39. package/dist/graphify/sources.js +104 -4
  40. package/dist/graphify/sources.js.map +1 -1
  41. package/dist/visualize/html.d.ts.map +1 -1
  42. package/dist/visualize/html.js +82 -7
  43. package/dist/visualize/html.js.map +1 -1
  44. package/package.json +1 -1
  45. package/scaffold/.cursor/commands/_cli-failures.md +3 -3
  46. package/scaffold/.cursor/commands/index.md +3 -1
  47. package/schemas/rules.impact.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/graphify/sources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/graphify/sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IAC9C,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;IACT,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,IAAI;IACJ,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AASH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,WAAmB,EACnB,UAAkB;IAElB,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,KAAK,UAAU,IAAI,CAAC,GAAW;QAC7B,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxD,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChF,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAeD,gFAAgF;AAChF,MAAM,UAAU,yBAAyB,CACvC,WAAmB,EACnB,aAAsB;IAEtB,MAAM,GAAG,GACP,aAAa,IAAI,yCAAyC,CAAC;IAC7D,OAAO,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,SAAiB;IAEjB,OAAO,CAAC,MAAM,2BAA2B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,KAAK,OAAO,CAAC;AACjF,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,SAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACtB,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CACpE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,WAAmB,EACnB,SAAiB;IAEjB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CACpE,CAAC;IACF,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;AAC1C,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,WAAmB,EACnB,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAEzD,yEAAyE;AACzE,MAAM,UAAU,2BAA2B,CACzC,MAAc,EACd,MAAc,EACd,QAAgB;IAEhB,OAAO,QAAQ,KAAK,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAA6B;IAE7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAyB,EAAE,CAAC;IAErC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,IAAI,kBAAkB,CAAC;IAC/D,GAAG,CAAC,OAAO,CAAC,CAAC;IAEb,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACrC,GAAG,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACxC,GAAG,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAmB,EACnB,SAAiB;IAEjB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,WAAmB,EACnB,KAA2B,EAC3B,YAAgD,EAChD,KAAc;IAEd,MAAM,MAAM,GAA2B,EAAE,GAAG,YAAY,EAAE,CAAC;IAC3D,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACxB,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/visualize/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;CAChC;AAMD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CA2cxE"}
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/visualize/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;CAChC;AAMD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAshBxE"}
@@ -183,6 +183,8 @@ export function buildVisualizationHtml(payload) {
183
183
  const NODE_COLORS = {
184
184
  document: "#3b82f6",
185
185
  file: "#38bdf8",
186
+ source: "#14b8a6",
187
+ graphify: "#2dd4bf",
186
188
  section: "#64748b",
187
189
  table: "#475569",
188
190
  diagram: "#475569",
@@ -322,10 +324,12 @@ export function buildVisualizationHtml(payload) {
322
324
  filtered.filter((n) => DOMAIN_TYPES.has(n.type)).map((n) => n.id),
323
325
  );
324
326
  const linked = domainLinkedStructureIds(domainIds);
327
+ const sourceLinked = domainLinkedSourceIds(domainIds);
325
328
  return filtered.filter(
326
329
  (n) =>
327
330
  DOMAIN_TYPES.has(n.type) ||
328
331
  linked.has(n.id) ||
332
+ sourceLinked.has(n.id) ||
329
333
  (n.type === "document" && linked.has(n.id)),
330
334
  );
331
335
  }
@@ -334,6 +338,25 @@ export function buildVisualizationHtml(payload) {
334
338
  return "file:" + path;
335
339
  }
336
340
 
341
+ function sourceNodeId(path) {
342
+ return "source:" + path;
343
+ }
344
+
345
+ function domainLinkedSourceIds(domainIds) {
346
+ const linked = new Set();
347
+ for (const e of P.graph.edges) {
348
+ if (e.type !== "derivedFrom" || !domainIds.has(e.from)) {
349
+ continue;
350
+ }
351
+ if (e.to.startsWith("graphify:")) {
352
+ linked.add(e.to);
353
+ } else {
354
+ linked.add(sourceNodeId(e.to));
355
+ }
356
+ }
357
+ return linked;
358
+ }
359
+
337
360
  function buildVisData(viewMode, search) {
338
361
  const nodes = filterNodes(viewMode, search);
339
362
  const ids = new Set(nodes.map((n) => n.id));
@@ -343,7 +366,35 @@ export function buildVisualizationHtml(payload) {
343
366
  .map((n) => n.output),
344
367
  );
345
368
  const fileNodes = new Map();
369
+ const sourceNodes = new Map();
370
+ const graphifyNodes = new Map();
346
371
  for (const e of P.graph.edges) {
372
+ if (e.type === "derivedFrom" && ids.has(e.from)) {
373
+ if (e.to.startsWith("graphify:")) {
374
+ const gid = e.to;
375
+ if (!graphifyNodes.has(gid)) {
376
+ const label = gid.slice("graphify:".length);
377
+ graphifyNodes.set(gid, {
378
+ id: gid,
379
+ type: "graphify",
380
+ title: label,
381
+ graphifyId: label,
382
+ });
383
+ }
384
+ } else {
385
+ const sid = sourceNodeId(e.to);
386
+ if (!sourceNodes.has(sid)) {
387
+ const base = e.to.split("/").pop() || e.to;
388
+ sourceNodes.set(sid, {
389
+ id: sid,
390
+ type: "source",
391
+ title: base,
392
+ output: e.to,
393
+ });
394
+ }
395
+ }
396
+ continue;
397
+ }
347
398
  if (e.type !== "rendersTo" || !ids.has(e.from)) {
348
399
  continue;
349
400
  }
@@ -370,7 +421,11 @@ export function buildVisualizationHtml(payload) {
370
421
  pathToDocId.set(n.output, n.id);
371
422
  }
372
423
  }
373
- const allNodes = nodes.concat([...fileNodes.values()]);
424
+ const allNodes = nodes.concat(
425
+ [...fileNodes.values()],
426
+ [...sourceNodes.values()],
427
+ [...graphifyNodes.values()],
428
+ );
374
429
  const allIds = new Set(allNodes.map((n) => n.id));
375
430
  function resolveEdgeTarget(to) {
376
431
  if (allIds.has(to)) {
@@ -383,6 +438,12 @@ export function buildVisualizationHtml(payload) {
383
438
  if (fileNodes.has(fileNodeId(to))) {
384
439
  return fileNodeId(to);
385
440
  }
441
+ if (sourceNodes.has(sourceNodeId(to))) {
442
+ return sourceNodeId(to);
443
+ }
444
+ if (graphifyNodes.has(to)) {
445
+ return to;
446
+ }
386
447
  return null;
387
448
  }
388
449
  const visNodes = allNodes.map((n) => ({
@@ -391,8 +452,8 @@ export function buildVisualizationHtml(payload) {
391
452
  title: "<pre style=\\"margin:0;font-size:11px\\">" + escapeHtml(JSON.stringify(n, null, 2)) + "</pre>",
392
453
  color: NODE_COLORS[n.type] || "#94a3b8",
393
454
  font: { color: "#e7ecf3", size: 11 },
394
- shape: n.type === "document" || n.type === "file" ? "box" : "dot",
395
- size: n.type === "section" ? 10 : STRUCTURE.has(n.type) ? 12 : n.type === "file" ? 14 : 18,
455
+ shape: n.type === "document" || n.type === "file" || n.type === "source" || n.type === "graphify" ? "box" : "dot",
456
+ size: n.type === "section" ? 10 : STRUCTURE.has(n.type) ? 12 : n.type === "file" || n.type === "source" || n.type === "graphify" ? 14 : 18,
396
457
  }));
397
458
  const visEdges = P.graph.edges
398
459
  .map((e) => ({ e, to: resolveEdgeTarget(e.to) }))
@@ -403,7 +464,10 @@ export function buildVisualizationHtml(payload) {
403
464
  to,
404
465
  label: e.type,
405
466
  font: { size: 9, color: "#8b9cb3", strokeWidth: 0 },
406
- color: { color: "#4b5563", highlight: "#60a5fa" },
467
+ color: {
468
+ color: e.type === "derivedFrom" ? "#14b8a6" : "#4b5563",
469
+ highlight: e.type === "derivedFrom" ? "#2dd4bf" : "#60a5fa",
470
+ },
407
471
  arrows: "to",
408
472
  }));
409
473
  return { nodes: new vis.DataSet(visNodes), edges: new vis.DataSet(visEdges) };
@@ -438,9 +502,20 @@ export function buildVisualizationHtml(payload) {
438
502
  P.graph.nodes.find((n) => n.id === id) ||
439
503
  (id.startsWith("file:")
440
504
  ? { id, type: "file", output: id.slice(5) }
441
- : null);
442
- const out = P.graph.edges.filter((e) => e.from === id || (id.startsWith("file:") && e.to === id.slice(5)));
443
- const inc = P.graph.edges.filter((e) => e.to === id || (id.startsWith("file:") && e.type === "rendersTo" && e.to === id.slice(5)));
505
+ : id.startsWith("source:")
506
+ ? { id, type: "source", output: id.slice(7) }
507
+ : id.startsWith("graphify:")
508
+ ? { id, type: "graphify", graphifyId: id.slice(9) }
509
+ : null);
510
+ const pathTail = id.startsWith("file:") ? id.slice(5) : id.startsWith("source:") ? id.slice(7) : null;
511
+ const out = P.graph.edges.filter(
512
+ (e) => e.from === id || (pathTail && (e.to === pathTail || e.to === id)),
513
+ );
514
+ const inc = P.graph.edges.filter(
515
+ (e) =>
516
+ e.to === id ||
517
+ (pathTail && (e.type === "rendersTo" || e.type === "derivedFrom") && e.to === pathTail),
518
+ );
444
519
  detail.textContent =
445
520
  JSON.stringify(node, null, 2) +
446
521
  "\\n\\n--- outgoing (" + out.length + ") ---\\n" +
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/visualize/html.ts"],"names":[],"mappings":"AAaA,SAAS,mBAAmB,CAAC,IAAa;IACxC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAyB;IAC9D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE9C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA4KwC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2RjD,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/visualize/html.ts"],"names":[],"mappings":"AAaA,SAAS,mBAAmB,CAAC,IAAa;IACxC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAyB;IAC9D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE9C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA4KwC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsWjD,CAAC;AACT,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-spector",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Cursor-first documentation workflow: traceability graph, SRS/basic/detail design templates, and ai-spector CLI",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -100,10 +100,10 @@ When any `ai-spector` command **fails** (non-zero exit, throws, or empty/invalid
100
100
  - **Means:** Agent used `graphify update <path> --graph <file>`. The `update` subcommand does **not** accept `--graph` (only `query`, `explain`, `path`, `cluster-only` do).
101
101
  - **Fix:** Run **`ai-spector graphify update`** (sets absolute `GRAPHIFY_OUT` and project-root cwd). Do not pass `--graph` on `update`.
102
102
 
103
- ### `graphify update` — `No code files found` (exit 1) on empty `docs/srs` / `docs/basic-design`
103
+ ### `graphify update` — `No code files found` (exit 1) on `docs/srs` / `docs/basic-design`
104
104
 
105
- - **Means:** Graphify was invoked on an empty doc folder (no files to index).
106
- - **Fix:** **`ai-spector index`** / **`ai-spector graphify update`** skip empty sources automatically. Add SRS/basic-design markdown when you want Graphify storage for those paths.
105
+ - **Means:** Those paths are empty or markdown-only; Graphify `update` AST-indexes **code** extensions (`.py`, `.ts`, `.js`, ), not SRS markdown alone.
106
+ - **Fix:** **`ai-spector index`** / **`ai-spector graphify update`** skip empty and markdown-only sources automatically (success, not failure). Use **`docs/data-source`** for code Graphify indexing; SRS/basic-design semantics come from index doc-extract, not `graphify update`.
107
107
 
108
108
  ### `graphify update` — output under `docs/data-source/.ai-spector/...`
109
109
 
@@ -31,7 +31,9 @@ After **`/generate-srs`** (recommended):
31
31
  ai-spector index
32
32
  ```
33
33
 
34
- Index steps (default): registry/bootstrap → knowledge merge → **SRS/docs body extract** → Graphify (changed paths only) → validate → doc indexes.
34
+ Index steps (default): registry/bootstrap → knowledge merge → **SRS/docs body extract** → Graphify (changed paths only) → **data-source provenance (`derivedFrom`)** → validate → doc indexes.
35
+
36
+ **Provenance:** UC/F/requirement/actor nodes get **`derivedFrom`** edges to `docs/data-source/**` paths (from `knowledge.json` source fields, SRS detail `Source:` lines, or inline path mentions) and optionally **`graphify:<nodeId>`** when Graphify `graph.json` matches a single symbol in that file. No evidence → no edge.
35
37
 
36
38
  Flags:
37
39
 
@@ -7,7 +7,8 @@
7
7
  "satisfies": { "direction": "in", "depth": 1 },
8
8
  "dependsOn": { "direction": "out", "depth": "unbounded" },
9
9
  "definedIn": { "direction": "in", "depth": 1 },
10
- "listedIn": { "direction": "in", "depth": 1 }
10
+ "listedIn": { "direction": "in", "depth": 1 },
11
+ "derivedFrom": { "direction": "out", "depth": 1 }
11
12
  },
12
13
  "buckets": {
13
14
  "regenerate": ["section", "document"],