@pikku/cli 0.12.112 → 0.12.113

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 (126) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/.pikku/addon/index.d.ts +1 -1
  3. package/dist/.pikku/addon/index.js +1 -1
  4. package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
  5. package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
  6. package/dist/.pikku/agent/index.d.ts +1 -1
  7. package/dist/.pikku/agent/index.js +1 -1
  8. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  9. package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
  10. package/dist/.pikku/auth/index.d.ts +1 -1
  11. package/dist/.pikku/auth/index.js +1 -1
  12. package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
  13. package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
  14. package/dist/.pikku/channel/index.d.ts +1 -1
  15. package/dist/.pikku/channel/index.js +1 -1
  16. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  17. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  18. package/dist/.pikku/cli/index.d.ts +1 -1
  19. package/dist/.pikku/cli/index.js +1 -1
  20. package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
  21. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  22. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  23. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  24. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  25. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  26. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  27. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  28. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  29. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  30. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  31. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  32. package/dist/.pikku/error/index.d.ts +1 -1
  33. package/dist/.pikku/error/index.js +1 -1
  34. package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
  35. package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
  36. package/dist/.pikku/function/index.d.ts +1 -1
  37. package/dist/.pikku/function/index.js +1 -1
  38. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  39. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  40. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  41. package/dist/.pikku/function/pikku-functions-meta.gen.json +2 -2
  42. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  43. package/dist/.pikku/gateway/index.d.ts +1 -1
  44. package/dist/.pikku/gateway/index.js +1 -1
  45. package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
  46. package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
  47. package/dist/.pikku/http/index.d.ts +1 -1
  48. package/dist/.pikku/http/index.js +1 -1
  49. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  50. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  51. package/dist/.pikku/mcp/index.d.ts +1 -1
  52. package/dist/.pikku/mcp/index.js +1 -1
  53. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  54. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  55. package/dist/.pikku/middleware/index.d.ts +1 -1
  56. package/dist/.pikku/middleware/index.js +1 -1
  57. package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +1 -1
  58. package/dist/.pikku/middleware/pikku-middleware-types.gen.js +1 -1
  59. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  60. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  61. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  62. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  63. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  64. package/dist/.pikku/queue/index.d.ts +1 -1
  65. package/dist/.pikku/queue/index.js +1 -1
  66. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  67. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  68. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  69. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  70. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  71. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  72. package/dist/.pikku/scenarios/index.d.ts +1 -1
  73. package/dist/.pikku/scenarios/index.js +1 -1
  74. package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -1
  75. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  76. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  77. package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
  78. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  79. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  80. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  81. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  82. package/dist/.pikku/scheduler/index.d.ts +1 -1
  83. package/dist/.pikku/scheduler/index.js +1 -1
  84. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  85. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  86. package/dist/.pikku/schemas/register.gen.js +1 -1
  87. package/dist/.pikku/scopes/index.d.ts +1 -1
  88. package/dist/.pikku/scopes/index.js +1 -1
  89. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  90. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  91. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  92. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  93. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  94. package/dist/.pikku/secrets/index.d.ts +1 -1
  95. package/dist/.pikku/secrets/index.js +1 -1
  96. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  97. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  98. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  99. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  100. package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
  101. package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
  102. package/dist/.pikku/setup/index.d.ts +1 -1
  103. package/dist/.pikku/setup/index.js +1 -1
  104. package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
  105. package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
  106. package/dist/.pikku/trigger/index.d.ts +1 -1
  107. package/dist/.pikku/trigger/index.js +1 -1
  108. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  109. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  110. package/dist/.pikku/variables/index.d.ts +1 -1
  111. package/dist/.pikku/variables/index.js +1 -1
  112. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  113. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  114. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  115. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  116. package/dist/.pikku/workflow/index.d.ts +1 -1
  117. package/dist/.pikku/workflow/index.js +1 -1
  118. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  119. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  120. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  121. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  122. package/dist/bin/pikku-bin.mjs +2 -2
  123. package/dist/src/functions/commands/dev.js +72 -62
  124. package/dist/src/functions/commands/watch.js +56 -37
  125. package/package.json +1 -1
  126. package/surface.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /** Personas declared with definePersonas() */
5
5
  import { createHttpPersonas } from '@pikku/core/persona';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/state';
5
5
  import '../function/pikku-functions-meta.gen.js';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export {};
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import type { PikkuScenarioWire, ScenarioStepOptions } from '@pikku/core/scenario';
5
5
  import type { PikkuWorkflowWire } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/state';
5
5
  import '../workflow/pikku-workflow-wirings-meta.gen.js';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export {};
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export declare const empty: null;
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export const empty = null;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/scheduler` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/scheduler` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Scheduler-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Scheduler-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { addSchema } from '@pikku/core/schema';
5
5
  import * as BinaryInput from './schemas/BinaryInput.schema.json' with { type: 'json' };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/scopes` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/scopes` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * This file was generated by the @pikku/cli
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * This file was generated by the @pikku/cli
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export { defineScope } from '@pikku/core/scope';
5
5
  export { defineSystemRole } from '@pikku/core/role';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export { defineScope } from '@pikku/core/scope';
5
5
  export { defineSystemRole } from '@pikku/core/role';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * This file was generated by the @pikku/cli
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/secrets` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/secrets` resolves here.
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export { defineSecret } from '@pikku/core/secret';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export { defineSecret } from '@pikku/core/secret';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
5
5
  import type { SecretService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { LocalMetaService } from '@pikku/core/services/local-meta';
5
5
  export declare class PikkuMetaService extends LocalMetaService {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { LocalMetaService } from '@pikku/core/services/local-meta';
5
5
  export class PikkuMetaService extends LocalMetaService {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/setup` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/setup` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Config and service factory definitions, declared once per application
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Config and service factory definitions, declared once per application
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/trigger` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/trigger` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/variables` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/variables` resolves here.
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export { defineVariable } from '@pikku/core/variable';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  export { defineVariable } from '@pikku/core/variable';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService } from '@pikku/core/services';
5
5
  import type { VariablesService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService, } from '@pikku/core/services';
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/workflow` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/workflow` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import type { PikkuWorkflowGraphConfig, PikkuWorkflowGraphResult } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import { pikkuWorkflowGraph as corePikkuWorkflowGraph } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/state';
5
5
  import allWorkflowMeta from './meta/allWorkflow.gen.json' with { type: 'json' };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.112
2
+ * This file was generated by @pikku/cli@0.12.113
3
3
  */
4
4
  import { addWorkflow } from '@pikku/core/workflow';
5
5
  import './pikku-workflow-wirings-meta.gen.js';
@@ -11,8 +11,8 @@ async function checkForUpdate() {
11
11
  })
12
12
  if (!res.ok) return
13
13
  const { version: latest } = await res.json()
14
- if (latest !== '0.12.112') {
15
- process.stderr.write(`\n Update available 0.12.112 → ${latest}\n brew upgrade pikku or npm install -g @pikku/cli\n\n`)
14
+ if (latest !== '0.12.113') {
15
+ process.stderr.write(`\n Update available 0.12.113 → ${latest}\n brew upgrade pikku or npm install -g @pikku/cli\n\n`)
16
16
  }
17
17
  } catch {}
18
18
  }
@@ -298,14 +298,12 @@ export const dev = pikkuSessionlessFunc({
298
298
  logger.info(`Pikku Console available at http://${hostname}:${resolvedPort}${consoleMount.urlPrefix}`);
299
299
  }
300
300
  logger.info(serverReadyLine(hostname, resolvedPort));
301
- let configWatcher;
302
301
  let watcher;
303
302
  process.once('SIGINT', async () => {
304
303
  logger.info('Stopping dev server...');
305
304
  try {
306
305
  await lifecycle?.beforeStop?.(resolvedServices);
307
306
  await stopSingletonServices();
308
- await configWatcher?.close();
309
307
  await watcher?.close();
310
308
  await pikkuServer.stop();
311
309
  await lifecycle?.afterStop?.(resolvedServices);
@@ -322,72 +320,84 @@ export const dev = pikkuSessionlessFunc({
322
320
  : undefined;
323
321
  if (enableWatch) {
324
322
  const genIgnore = /\.gen\.tsx?$/;
325
- configWatcher = chokidar.watch(watchDirectories, {
323
+ logger.info(`• Watching directories: \n - ${watchDirectories.join('\n - ')}`);
324
+ watcher = chokidar.watch(watchDirectories, {
326
325
  ignoreInitial: true,
327
326
  ignored: genIgnore,
328
327
  });
329
- const generatorWatcher = () => {
330
- watcher?.close();
331
- logger.info(`• Watching directories: \n - ${watchDirectories.join('\n - ')}`);
332
- watcher = chokidar.watch(watchDirectories, {
333
- ignoreInitial: true,
334
- ignored: genIgnore,
335
- });
336
- watcher.on('ready', async () => {
337
- const handle = async () => {
328
+ watcher.on('ready', async () => {
329
+ const handle = async () => {
330
+ try {
331
+ const start = Date.now();
332
+ invalidateInspectorState();
333
+ await runAllWithCommandState();
334
+ workflowService.wireQueueWorkers();
335
+ wireAgentScorerQueueWorkers();
336
+ // Pull the regenerated meta + JSON schemas into the running
337
+ // process so new/changed functions are callable without a
338
+ // restart (the hot-reloader registers their implementations).
339
+ await reloadGeneratedMeta({
340
+ pikkuDir,
341
+ logger,
342
+ schemaService: resolvedServices.schema,
343
+ });
344
+ // Re-import recently changed files now that the fresh meta is
345
+ // in state: wire* calls skip routes whose meta doesn't exist,
346
+ // so a NEW route in a changed wiring file only registers on
347
+ // this post-codegen pass (the reloader's instant pass ran too
348
+ // early to see it).
349
+ await devReloader?.reimportPending();
350
+ // reimportPending only re-runs wire* for changed/added files, so a
351
+ // DELETED *.addon.ts leaves its wireAddon entry stranded in the
352
+ // live registry. Prune it against the inspection runAllWithCommandState
353
+ // already produced this pass — a plain read (no refresh) reuses that
354
+ // fresh post-change cache. Forcing refresh=true here re-inspected the
355
+ // whole project a SECOND time: the codegen writes after that inspection
356
+ // bump the ts-write generation, so refresh treats the cache as stale.
357
+ const { rpc } = await getInspectorState();
358
+ reconcileAddonRegistry(rpc.wireAddonDeclarations.keys(), logger);
359
+ logger.info({
360
+ message: `✓ Generated in ${Date.now() - start}ms`,
361
+ type: 'timing',
362
+ });
363
+ }
364
+ catch (err) {
365
+ logger.error(`Error running watch: ${err}`);
366
+ }
367
+ };
368
+ // A codegen pass holds a whole ts.Program, so two overlapping passes
369
+ // double the peak RSS — enough to OOM a sandbox. Coalesce instead:
370
+ // changes arriving mid-pass schedule exactly one more run after it.
371
+ let inFlight;
372
+ let queued = false;
373
+ const runHandle = async () => {
374
+ if (inFlight) {
375
+ queued = true;
376
+ return;
377
+ }
378
+ do {
379
+ queued = false;
380
+ inFlight = handle();
338
381
  try {
339
- const start = Date.now();
340
- invalidateInspectorState();
341
- await runAllWithCommandState();
342
- workflowService.wireQueueWorkers();
343
- wireAgentScorerQueueWorkers();
344
- // Pull the regenerated meta + JSON schemas into the running
345
- // process so new/changed functions are callable without a
346
- // restart (the hot-reloader registers their implementations).
347
- await reloadGeneratedMeta({
348
- pikkuDir,
349
- logger,
350
- schemaService: resolvedServices.schema,
351
- });
352
- // Re-import recently changed files now that the fresh meta is
353
- // in state: wire* calls skip routes whose meta doesn't exist,
354
- // so a NEW route in a changed wiring file only registers on
355
- // this post-codegen pass (the reloader's instant pass ran too
356
- // early to see it).
357
- await devReloader?.reimportPending();
358
- // reimportPending only re-runs wire* for changed/added files, so a
359
- // DELETED *.addon.ts leaves its wireAddon entry stranded in the
360
- // live registry. Prune it against the inspection runAllWithCommandState
361
- // already produced this pass — a plain read (no refresh) reuses that
362
- // fresh post-change cache. Forcing refresh=true here re-inspected the
363
- // whole project a SECOND time: the codegen writes after that inspection
364
- // bump the ts-write generation, so refresh treats the cache as stale.
365
- const { rpc } = await getInspectorState();
366
- reconcileAddonRegistry(rpc.wireAddonDeclarations.keys(), logger);
367
- logger.info({
368
- message: `✓ Generated in ${Date.now() - start}ms`,
369
- type: 'timing',
370
- });
382
+ await inFlight;
371
383
  }
372
- catch (err) {
373
- logger.error(`Error running watch: ${err}`);
384
+ finally {
385
+ inFlight = undefined;
374
386
  }
375
- };
376
- await handle();
377
- let timeout;
378
- const deduped = (_file) => {
379
- if (timeout) {
380
- clearTimeout(timeout);
381
- }
382
- timeout = setTimeout(handle, 10);
383
- };
384
- watcher?.on('change', deduped);
385
- watcher?.on('add', deduped);
386
- watcher?.on('unlink', deduped);
387
- });
388
- };
389
- configWatcher.on('ready', generatorWatcher);
390
- configWatcher.on('change', generatorWatcher);
387
+ } while (queued);
388
+ };
389
+ await runHandle();
390
+ let timeout;
391
+ const deduped = (_file) => {
392
+ if (timeout) {
393
+ clearTimeout(timeout);
394
+ }
395
+ timeout = setTimeout(runHandle, 10);
396
+ };
397
+ watcher?.on('change', deduped);
398
+ watcher?.on('add', deduped);
399
+ watcher?.on('unlink', deduped);
400
+ });
391
401
  }
392
402
  await new Promise(() => { });
393
403
  },