agentopology 0.2.0 → 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.
Files changed (78) hide show
  1. package/README.md +7 -5
  2. package/dist/analyzer/__tests__/observability-gap.test.d.ts +8 -0
  3. package/dist/analyzer/__tests__/observability-gap.test.d.ts.map +1 -0
  4. package/dist/analyzer/__tests__/observability-gap.test.js +132 -0
  5. package/dist/analyzer/__tests__/observability-gap.test.js.map +1 -0
  6. package/dist/analyzer/index.d.ts +1 -1
  7. package/dist/analyzer/index.d.ts.map +1 -1
  8. package/dist/analyzer/index.js +26 -0
  9. package/dist/analyzer/index.js.map +1 -1
  10. package/dist/bindings/__tests__/bindings.test.js +288 -11
  11. package/dist/bindings/__tests__/bindings.test.js.map +1 -1
  12. package/dist/bindings/__tests__/observability.test.d.ts +9 -0
  13. package/dist/bindings/__tests__/observability.test.d.ts.map +1 -0
  14. package/dist/bindings/__tests__/observability.test.js +136 -0
  15. package/dist/bindings/__tests__/observability.test.js.map +1 -0
  16. package/dist/bindings/__tests__/stub-generation.test.d.ts +16 -0
  17. package/dist/bindings/__tests__/stub-generation.test.d.ts.map +1 -0
  18. package/dist/bindings/__tests__/stub-generation.test.js +117 -0
  19. package/dist/bindings/__tests__/stub-generation.test.js.map +1 -0
  20. package/dist/bindings/claude-code.d.ts.map +1 -1
  21. package/dist/bindings/claude-code.js +159 -110
  22. package/dist/bindings/claude-code.js.map +1 -1
  23. package/dist/bindings/codex.d.ts.map +1 -1
  24. package/dist/bindings/codex.js +1 -12
  25. package/dist/bindings/codex.js.map +1 -1
  26. package/dist/bindings/cursor.d.ts.map +1 -1
  27. package/dist/bindings/cursor.js +0 -12
  28. package/dist/bindings/cursor.js.map +1 -1
  29. package/dist/bindings/gemini-cli.d.ts.map +1 -1
  30. package/dist/bindings/gemini-cli.js +1 -12
  31. package/dist/bindings/gemini-cli.js.map +1 -1
  32. package/dist/bindings/kiro.d.ts.map +1 -1
  33. package/dist/bindings/kiro.js +1 -12
  34. package/dist/bindings/kiro.js.map +1 -1
  35. package/dist/bindings/lib/__tests__/stub.test.d.ts +8 -0
  36. package/dist/bindings/lib/__tests__/stub.test.d.ts.map +1 -0
  37. package/dist/bindings/lib/__tests__/stub.test.js +66 -0
  38. package/dist/bindings/lib/__tests__/stub.test.js.map +1 -0
  39. package/dist/bindings/lib/stub.d.ts +56 -0
  40. package/dist/bindings/lib/stub.d.ts.map +1 -0
  41. package/dist/bindings/lib/stub.js +69 -0
  42. package/dist/bindings/lib/stub.js.map +1 -0
  43. package/dist/bindings/openclaw.d.ts.map +1 -1
  44. package/dist/bindings/openclaw.js +1 -12
  45. package/dist/bindings/openclaw.js.map +1 -1
  46. package/dist/bindings/types.d.ts +5 -0
  47. package/dist/bindings/types.d.ts.map +1 -1
  48. package/dist/bindings/types.js.map +1 -1
  49. package/dist/cli/index.js +89 -4
  50. package/dist/cli/index.js.map +1 -1
  51. package/dist/docs/content.d.ts.map +1 -1
  52. package/dist/docs/content.js +9 -5
  53. package/dist/docs/content.js.map +1 -1
  54. package/dist/import/__tests__/import.test.js +2 -2
  55. package/dist/import/__tests__/import.test.js.map +1 -1
  56. package/dist/parser/__tests__/parser.test.js +31 -3
  57. package/dist/parser/__tests__/parser.test.js.map +1 -1
  58. package/dist/parser/validator.d.ts.map +1 -1
  59. package/dist/parser/validator.js +28 -8
  60. package/dist/parser/validator.js.map +1 -1
  61. package/dist/scaffold/__tests__/scaffold.test.js +20 -0
  62. package/dist/scaffold/__tests__/scaffold.test.js.map +1 -1
  63. package/dist/scaffold/__tests__/settings-merge.test.d.ts +15 -0
  64. package/dist/scaffold/__tests__/settings-merge.test.d.ts.map +1 -0
  65. package/dist/scaffold/__tests__/settings-merge.test.js +127 -0
  66. package/dist/scaffold/__tests__/settings-merge.test.js.map +1 -0
  67. package/dist/scaffold/incremental.d.ts.map +1 -1
  68. package/dist/scaffold/incremental.js +11 -2
  69. package/dist/scaffold/incremental.js.map +1 -1
  70. package/dist/scaffold/merge.d.ts +16 -0
  71. package/dist/scaffold/merge.d.ts.map +1 -1
  72. package/dist/scaffold/merge.js +77 -0
  73. package/dist/scaffold/merge.js.map +1 -1
  74. package/dist/scaffold/types.d.ts +2 -0
  75. package/dist/scaffold/types.d.ts.map +1 -1
  76. package/examples/simple-pipeline-topology.html +5700 -0
  77. package/package.json +2 -1
  78. package/skill/SKILL.md +7 -7
@@ -1957,27 +1957,55 @@ describe("Line number tracking", () => {
1957
1957
  expect(v7[0].line).toBe(7);
1958
1958
  expect(v7[0].node).toBe("no-model");
1959
1959
  });
1960
- it("V25: on-fail bounce-back produces warning", () => {
1960
+ it("V25: on-fail bounce-back with non-agent after produces warning", () => {
1961
+ // Gate after: a human node — cannot be wired as a SubagentStop hook
1962
+ // because human nodes do not register as subagent_types.
1961
1963
  const ast = parse(`topology t : [pipeline] {
1962
1964
  orchestrator { model: opus handles: [a] }
1963
1965
  action a { kind: inline }
1964
1966
  agent b { model: opus }
1967
+ human review-step {
1968
+ description: "Review before c"
1969
+ }
1965
1970
  agent c { model: opus }
1966
1971
  gates {
1967
1972
  gate bb {
1968
- after: b
1973
+ after: review-step
1969
1974
  before: c
1970
1975
  run: "check.sh"
1971
1976
  on-fail: bounce-back
1972
1977
  }
1973
1978
  }
1974
- flow { a -> b -> c }
1979
+ flow { a -> b -> review-step -> c }
1975
1980
  }`);
1976
1981
  const issues = validate(ast);
1977
1982
  const v25 = issues.filter(i => i.rule === "V25");
1978
1983
  expect(v25).toHaveLength(1);
1979
1984
  expect(v25[0].level).toBe("warning");
1980
1985
  expect(v25[0].message).toContain("bounce-back");
1986
+ expect(v25[0].message).toContain("non-agent");
1987
+ });
1988
+ it("V25: on-fail bounce-back with agent after produces no warning (enforceable)", () => {
1989
+ // Gate after: an agent node — compiles to a SubagentStop hook that
1990
+ // blocks (exit 2 prevents subagent from stopping). No warning needed.
1991
+ const ast = parse(`topology t : [pipeline] {
1992
+ orchestrator { model: opus handles: [a] }
1993
+ action a { kind: inline }
1994
+ agent b { model: opus }
1995
+ agent c { model: opus }
1996
+ gates {
1997
+ gate bb {
1998
+ after: b
1999
+ before: c
2000
+ run: "check.sh"
2001
+ on-fail: bounce-back
2002
+ }
2003
+ }
2004
+ flow { a -> b -> c }
2005
+ }`);
2006
+ const issues = validate(ast);
2007
+ const v25 = issues.filter(i => i.rule === "V25");
2008
+ expect(v25).toHaveLength(0);
1981
2009
  });
1982
2010
  });
1983
2011
  // =========================================================================