@autohq/cli 0.1.396 → 0.1.397

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.
@@ -30819,7 +30819,7 @@ Object.assign(lookup, {
30819
30819
  // package.json
30820
30820
  var package_default = {
30821
30821
  name: "@autohq/cli",
30822
- version: "0.1.396",
30822
+ version: "0.1.397",
30823
30823
  license: "SEE LICENSE IN README.md",
30824
30824
  publishConfig: {
30825
30825
  access: "public"
@@ -33984,7 +33984,15 @@ var CanonicalTriggerRoutingSchema = external_exports.discriminatedUnion("kind",
33984
33984
  external_exports.object({
33985
33985
  kind: external_exports.literal("bind"),
33986
33986
  target: TriggerBindingTargetTypeSchema,
33987
- onUnmatched: OnUnmatchedSchema
33987
+ onUnmatched: OnUnmatchedSchema,
33988
+ // Declarative binding release: after the router routes this event
33989
+ // (delivered, revived, or unmatched), the platform releases the target's
33990
+ // active binding as a follow-up activity. Deliver-then-release — the bound
33991
+ // session receives the message first; the binding is released after
33992
+ // routing completes. No-op when no active binding exists. `agent.singleton`
33993
+ // is rejected at apply time (singleton slots are pool-membership state
33994
+ // owned by the reconciler).
33995
+ release: external_exports.boolean().default(false)
33988
33996
  })
33989
33997
  ]);
33990
33998
  var LegacySingletonRouteBySchema = external_exports.object({
@@ -34011,7 +34019,8 @@ var LegacyOwnedArtifactDeliverRoutingSchema = external_exports.object({
34011
34019
  ({ routeBy, onUnmatched }) => ({
34012
34020
  kind: "bind",
34013
34021
  target: routeBy.artifactType,
34014
- onUnmatched
34022
+ onUnmatched,
34023
+ release: false
34015
34024
  })
34016
34025
  );
34017
34026
  var LegacyDeliverOrSpawnRoutingSchema = external_exports.object({
@@ -34447,6 +34456,7 @@ var AgentApplySpecSchema = AgentSpecFieldsSchema.extend({
34447
34456
  validateRunnableConfig(spec, context);
34448
34457
  validateAgentModelFieldsForHarness(spec, context);
34449
34458
  validateConcurrencyConfig(spec, context);
34459
+ validateTriggerReleaseConfig(spec, context);
34450
34460
  });
34451
34461
  function validateConcurrencyConfig(spec, context) {
34452
34462
  if (spec.concurrency === void 0 && spec.replace !== void 0) {
@@ -34485,6 +34495,20 @@ function validateConcurrencyConfig(spec, context) {
34485
34495
  function isSlotDeliveryTrigger(trigger) {
34486
34496
  return trigger.routing.kind === "deliver" && !trigger.routing.routeBy;
34487
34497
  }
34498
+ function validateTriggerReleaseConfig(spec, context) {
34499
+ for (const [index, trigger] of spec.triggers.entries()) {
34500
+ if (trigger.routing.kind !== "bind") {
34501
+ continue;
34502
+ }
34503
+ if (trigger.routing.release && trigger.routing.target === "agent.singleton") {
34504
+ context.addIssue({
34505
+ code: external_exports.ZodIssueCode.custom,
34506
+ path: ["triggers", index, "routing", "release"],
34507
+ message: "`release: true` cannot target `agent.singleton`: singleton slots are pool-membership state owned by the reconciler, not trigger-releasable bindings"
34508
+ });
34509
+ }
34510
+ }
34511
+ }
34488
34512
  var AgentStatusSchema = external_exports.object({
34489
34513
  runCount: external_exports.number().int().nonnegative().default(0),
34490
34514
  lastActivityAt: external_exports.string().datetime().nullable().default(null)
@@ -36434,7 +36458,11 @@ var SetupOnboardingPullRequestCreateRequestSchema = external_exports.object({
36434
36458
  roster: external_exports.object({
36435
36459
  agents: external_exports.array(external_exports.string().trim().min(1)),
36436
36460
  customBrief: external_exports.string().trim().min(1).max(500).nullable().default(null)
36437
- }).optional()
36461
+ }).optional(),
36462
+ // When false the PR omits the onboarding concierge agent and its avatar,
36463
+ // installing only the roster picks. Used by the agents-page catalog surface
36464
+ // (post-onboarding); the onboarding welcome flow leaves this unset (true).
36465
+ concierge: external_exports.boolean().optional()
36438
36466
  });
36439
36467
  var SetupOnboardingPullRequestSchema = external_exports.object({
36440
36468
  number: external_exports.number().int().positive(),
package/dist/index.js CHANGED
@@ -18131,7 +18131,15 @@ var init_trigger_router = __esm({
18131
18131
  external_exports.object({
18132
18132
  kind: external_exports.literal("bind"),
18133
18133
  target: TriggerBindingTargetTypeSchema,
18134
- onUnmatched: OnUnmatchedSchema
18134
+ onUnmatched: OnUnmatchedSchema,
18135
+ // Declarative binding release: after the router routes this event
18136
+ // (delivered, revived, or unmatched), the platform releases the target's
18137
+ // active binding as a follow-up activity. Deliver-then-release — the bound
18138
+ // session receives the message first; the binding is released after
18139
+ // routing completes. No-op when no active binding exists. `agent.singleton`
18140
+ // is rejected at apply time (singleton slots are pool-membership state
18141
+ // owned by the reconciler).
18142
+ release: external_exports.boolean().default(false)
18135
18143
  })
18136
18144
  ]);
18137
18145
  LegacySingletonRouteBySchema = external_exports.object({
@@ -18158,7 +18166,8 @@ var init_trigger_router = __esm({
18158
18166
  ({ routeBy, onUnmatched }) => ({
18159
18167
  kind: "bind",
18160
18168
  target: routeBy.artifactType,
18161
- onUnmatched
18169
+ onUnmatched,
18170
+ release: false
18162
18171
  })
18163
18172
  );
18164
18173
  LegacyDeliverOrSpawnRoutingSchema = external_exports.object({
@@ -18480,6 +18489,20 @@ function validateConcurrencyConfig(spec, context) {
18480
18489
  function isSlotDeliveryTrigger(trigger) {
18481
18490
  return trigger.routing.kind === "deliver" && !trigger.routing.routeBy;
18482
18491
  }
18492
+ function validateTriggerReleaseConfig(spec, context) {
18493
+ for (const [index, trigger] of spec.triggers.entries()) {
18494
+ if (trigger.routing.kind !== "bind") {
18495
+ continue;
18496
+ }
18497
+ if (trigger.routing.release && trigger.routing.target === "agent.singleton") {
18498
+ context.addIssue({
18499
+ code: external_exports.ZodIssueCode.custom,
18500
+ path: ["triggers", index, "routing", "release"],
18501
+ message: "`release: true` cannot target `agent.singleton`: singleton slots are pool-membership state owned by the reconciler, not trigger-releasable bindings"
18502
+ });
18503
+ }
18504
+ }
18505
+ }
18483
18506
  function validateTriggerChecks(trigger, context, eventKeys) {
18484
18507
  const checks = trigger.checks ?? [];
18485
18508
  if (checks.length === 0) {
@@ -18812,6 +18835,7 @@ var init_agents = __esm({
18812
18835
  validateRunnableConfig(spec, context);
18813
18836
  validateAgentModelFieldsForHarness(spec, context);
18814
18837
  validateConcurrencyConfig(spec, context);
18838
+ validateTriggerReleaseConfig(spec, context);
18815
18839
  });
18816
18840
  AgentStatusSchema = external_exports.object({
18817
18841
  runCount: external_exports.number().int().nonnegative().default(0),
@@ -20856,7 +20880,11 @@ var init_setup = __esm({
20856
20880
  roster: external_exports.object({
20857
20881
  agents: external_exports.array(external_exports.string().trim().min(1)),
20858
20882
  customBrief: external_exports.string().trim().min(1).max(500).nullable().default(null)
20859
- }).optional()
20883
+ }).optional(),
20884
+ // When false the PR omits the onboarding concierge agent and its avatar,
20885
+ // installing only the roster picks. Used by the agents-page catalog surface
20886
+ // (post-onboarding); the onboarding welcome flow leaves this unset (true).
20887
+ concierge: external_exports.boolean().optional()
20860
20888
  });
20861
20889
  SetupOnboardingPullRequestSchema = external_exports.object({
20862
20890
  number: external_exports.number().int().positive(),
@@ -34861,7 +34889,7 @@ var init_package = __esm({
34861
34889
  "package.json"() {
34862
34890
  package_default = {
34863
34891
  name: "@autohq/cli",
34864
- version: "0.1.396",
34892
+ version: "0.1.397",
34865
34893
  license: "SEE LICENSE IN README.md",
34866
34894
  publishConfig: {
34867
34895
  access: "public"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autohq/cli",
3
- "version": "0.1.396",
3
+ "version": "0.1.397",
4
4
  "license": "SEE LICENSE IN README.md",
5
5
  "publishConfig": {
6
6
  "access": "public"