@cleocode/cleo 2026.4.145 → 2026.4.147

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/cli/index.js CHANGED
@@ -7906,6 +7906,96 @@ var init_registry = __esm({
7906
7906
  }
7907
7907
  ]
7908
7908
  },
7909
+ {
7910
+ gateway: "mutate",
7911
+ domain: "conduit",
7912
+ operation: "publish",
7913
+ description: "conduit.publish (mutate) \u2014 publish message to a topic (A2A, T1252)",
7914
+ tier: 2,
7915
+ idempotent: false,
7916
+ sessionRequired: false,
7917
+ requiredParams: ["topicName", "payload"],
7918
+ params: [
7919
+ {
7920
+ name: "topicName",
7921
+ type: "string",
7922
+ required: true,
7923
+ description: "Topic to publish to"
7924
+ },
7925
+ {
7926
+ name: "payload",
7927
+ type: "string",
7928
+ required: true,
7929
+ description: "Message payload (JSON-stringified object)"
7930
+ },
7931
+ {
7932
+ name: "agentId",
7933
+ type: "string",
7934
+ required: false,
7935
+ description: "Publish as this agent (defaults to active agent)"
7936
+ }
7937
+ ]
7938
+ },
7939
+ {
7940
+ gateway: "mutate",
7941
+ domain: "conduit",
7942
+ operation: "subscribe",
7943
+ description: "conduit.subscribe (mutate) \u2014 subscribe agent to a topic (A2A, T1252)",
7944
+ tier: 2,
7945
+ idempotent: true,
7946
+ sessionRequired: false,
7947
+ requiredParams: ["topicName"],
7948
+ params: [
7949
+ {
7950
+ name: "topicName",
7951
+ type: "string",
7952
+ required: true,
7953
+ description: "Topic to subscribe to"
7954
+ },
7955
+ {
7956
+ name: "agentId",
7957
+ type: "string",
7958
+ required: false,
7959
+ description: "Agent to subscribe (defaults to active agent)"
7960
+ },
7961
+ {
7962
+ name: "filter",
7963
+ type: "string",
7964
+ required: false,
7965
+ description: "Optional filter expression (JSON-stringified) for subscription"
7966
+ }
7967
+ ]
7968
+ },
7969
+ {
7970
+ gateway: "query",
7971
+ domain: "conduit",
7972
+ operation: "listen",
7973
+ description: "conduit.listen (query) \u2014 one-shot poll for topic messages (A2A, T1252)",
7974
+ tier: 2,
7975
+ idempotent: true,
7976
+ sessionRequired: false,
7977
+ requiredParams: ["topicName"],
7978
+ params: [
7979
+ {
7980
+ name: "topicName",
7981
+ type: "string",
7982
+ required: true,
7983
+ description: "Topic to poll"
7984
+ },
7985
+ {
7986
+ name: "agentId",
7987
+ type: "string",
7988
+ required: false,
7989
+ description: "Agent to poll as (defaults to active agent)"
7990
+ },
7991
+ {
7992
+ name: "max",
7993
+ type: "number",
7994
+ required: false,
7995
+ description: "Max messages to return (default: 20)"
7996
+ }
7997
+ ]
7998
+ },
7909
7999
  // ===========================================================================
7910
8000
  // intelligence — Predictive Quality Intelligence (query-only)
7911
8001
  // ===========================================================================
@@ -55718,6 +55808,74 @@ var reasonCommand = defineCommand({
55718
55808
  }
55719
55809
  });
55720
55810
 
55811
+ // packages/cleo/src/cli/commands/reconcile.ts
55812
+ import { release } from "@cleocode/core";
55813
+ var releaseSubcommand = defineCommand({
55814
+ meta: {
55815
+ name: "release",
55816
+ description: "Run post-release invariants for a release tag"
55817
+ },
55818
+ args: {
55819
+ tag: {
55820
+ type: "string",
55821
+ description: "Release tag to reconcile (e.g. v2026.4.145)",
55822
+ required: true
55823
+ },
55824
+ "dry-run": {
55825
+ type: "boolean",
55826
+ description: "Preview mutations without writing to tasks.db or audit log",
55827
+ default: false
55828
+ },
55829
+ json: {
55830
+ type: "boolean",
55831
+ description: "Emit raw JSON instead of human-readable summary",
55832
+ default: false
55833
+ }
55834
+ },
55835
+ async run({ args }) {
55836
+ const dryRun = args["dry-run"] === true;
55837
+ const report = await release.runInvariants(args.tag, {
55838
+ dryRun,
55839
+ cwd: process.cwd()
55840
+ });
55841
+ if (args.json) {
55842
+ process.stdout.write(`${JSON.stringify(report, null, 2)}
55843
+ `);
55844
+ } else {
55845
+ const lines = [];
55846
+ lines.push(`reconcile release ${report.tag}${dryRun ? " (dry-run)" : ""}`);
55847
+ lines.push(
55848
+ ` total: processed=${report.processed} reconciled=${report.reconciled} unreconciled=${report.unreconciled} errors=${report.errors}`
55849
+ );
55850
+ for (const r of report.results) {
55851
+ lines.push(` [${r.severity}] ${r.id}: ${r.message}`);
55852
+ }
55853
+ process.stdout.write(`${lines.join("\n")}
55854
+ `);
55855
+ }
55856
+ if (report.errors > 0) {
55857
+ process.exit(1);
55858
+ }
55859
+ if (report.unreconciled > 0) {
55860
+ process.exit(2);
55861
+ }
55862
+ }
55863
+ });
55864
+ var reconcileCommand2 = defineCommand({
55865
+ meta: {
55866
+ name: "reconcile",
55867
+ description: "Reconcile state against external sources (release tags, schema, etc.)"
55868
+ },
55869
+ subCommands: {
55870
+ release: releaseSubcommand
55871
+ },
55872
+ async run({ cmd, rawArgs }) {
55873
+ const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
55874
+ if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
55875
+ await showUsage(cmd);
55876
+ }
55877
+ });
55878
+
55721
55879
  // packages/cleo/src/cli/commands/refresh-memory.ts
55722
55880
  import { getProjectRoot as getProjectRoot27 } from "@cleocode/core";
55723
55881
  var refreshMemoryCommand = defineCommand({
@@ -60146,7 +60304,7 @@ var linksCommand2 = defineCommand({
60146
60304
  );
60147
60305
  }
60148
60306
  });
60149
- var reconcileCommand2 = defineCommand({
60307
+ var reconcileCommand3 = defineCommand({
60150
60308
  meta: {
60151
60309
  name: "reconcile",
60152
60310
  description: "Reconcile external tasks from a JSON file against CLEO tasks"
@@ -60199,7 +60357,7 @@ var syncCommand5 = defineCommand({
60199
60357
  meta: { name: "sync", description: "External task synchronisation management" },
60200
60358
  subCommands: {
60201
60359
  links: linksCommand2,
60202
- reconcile: reconcileCommand2
60360
+ reconcile: reconcileCommand3
60203
60361
  },
60204
60362
  async run({ cmd, rawArgs }) {
60205
60363
  const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
@@ -61813,6 +61971,7 @@ subCommands["playbook"] = playbookCommand;
61813
61971
  subCommands["promote"] = promoteCommand;
61814
61972
  subCommands["provider"] = providerCommand;
61815
61973
  subCommands["reason"] = reasonCommand;
61974
+ subCommands["reconcile"] = reconcileCommand2;
61816
61975
  subCommands["refresh-memory"] = refreshMemoryCommand;
61817
61976
  subCommands["relates"] = relatesCommand;
61818
61977
  subCommands["release"] = releaseCommand;