@cat-factory/contracts 0.121.1 → 0.122.0

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/index.d.ts CHANGED
@@ -74,5 +74,6 @@ export * from './user-settings.js';
74
74
  export * from './kaizen.js';
75
75
  export * from './initiative.js';
76
76
  export * from './initiative-preset.js';
77
+ export * from './test-secrets.js';
77
78
  export * from './routes/index.js';
78
79
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -74,5 +74,6 @@ export * from './user-settings.js';
74
74
  export * from './kaizen.js';
75
75
  export * from './initiative.js';
76
76
  export * from './initiative-preset.js';
77
+ export * from './test-secrets.js';
77
78
  export * from './routes/index.js';
78
79
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
@@ -45,6 +45,7 @@ export * from './runners.js';
45
45
  export * from './sandbox.js';
46
46
  export * from './service-fragment-defaults.js';
47
47
  export * from './services.js';
48
+ export * from './test-secrets.js';
48
49
  export * from './slack.js';
49
50
  export * from './spec.js';
50
51
  export * from './tasks.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
@@ -48,6 +48,7 @@ export * from './runners.js';
48
48
  export * from './sandbox.js';
49
49
  export * from './service-fragment-defaults.js';
50
50
  export * from './services.js';
51
+ export * from './test-secrets.js';
51
52
  export * from './slack.js';
52
53
  export * from './spec.js';
53
54
  export * from './tasks.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,oDAAoD;AACpD,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,oDAAoD;AACpD,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,135 @@
1
+ import { ContractNoBody } from '@toad-contracts/valibot';
2
+ export declare const getServiceTestSecretsContract: {
3
+ readonly method: "get";
4
+ readonly requestPathParamsSchema: import("valibot").ObjectSchema<{
5
+ blockId: import("valibot").StringSchema<undefined>;
6
+ }, undefined> & import("@toad-contracts/core").StandardObjectKeysV1<unknown, unknown>;
7
+ readonly pathResolver: ({ blockId }: {
8
+ blockId: string;
9
+ }) => string;
10
+ readonly responsesByStatusCode: {
11
+ readonly '4xx': import("valibot").ObjectSchema<{
12
+ readonly error: import("valibot").ObjectSchema<{
13
+ readonly code: import("valibot").StringSchema<undefined>;
14
+ readonly message: import("valibot").StringSchema<undefined>;
15
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
16
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
17
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
18
+ readonly message: import("valibot").StringSchema<undefined>;
19
+ }, undefined>, undefined>, undefined>;
20
+ }, undefined>;
21
+ }, undefined>;
22
+ readonly '5xx': import("valibot").ObjectSchema<{
23
+ readonly error: import("valibot").ObjectSchema<{
24
+ readonly code: import("valibot").StringSchema<undefined>;
25
+ readonly message: import("valibot").StringSchema<undefined>;
26
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
27
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
28
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
29
+ readonly message: import("valibot").StringSchema<undefined>;
30
+ }, undefined>, undefined>, undefined>;
31
+ }, undefined>;
32
+ }, undefined>;
33
+ readonly 200: import("valibot").ObjectSchema<{
34
+ readonly blockId: import("valibot").StringSchema<undefined>;
35
+ readonly entries: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
36
+ readonly key: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 128, undefined>, import("valibot").RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, import("valibot").CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
37
+ readonly description: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MaxLengthAction<string, 500, undefined>]>;
38
+ }, undefined>, undefined>;
39
+ }, undefined>;
40
+ };
41
+ };
42
+ export declare const setServiceTestSecretsContract: {
43
+ readonly method: "put";
44
+ readonly requestPathParamsSchema: import("valibot").ObjectSchema<{
45
+ blockId: import("valibot").StringSchema<undefined>;
46
+ }, undefined> & import("@toad-contracts/core").StandardObjectKeysV1<unknown, unknown>;
47
+ readonly pathResolver: ({ blockId }: {
48
+ blockId: string;
49
+ }) => string;
50
+ readonly requestBodySchema: import("valibot").SchemaWithPipe<readonly [import("valibot").ObjectSchema<{
51
+ readonly entries: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
52
+ readonly key: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 128, undefined>, import("valibot").RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, import("valibot").CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
53
+ readonly description: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MaxLengthAction<string, 500, undefined>]>;
54
+ readonly value: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 8192, undefined>]>;
55
+ }, undefined>, undefined>;
56
+ }, undefined>, import("valibot").CheckAction<{
57
+ entries: {
58
+ key: string;
59
+ description: string;
60
+ value: string;
61
+ }[];
62
+ }, "test-secret keys must be unique within a service">, import("valibot").CheckAction<{
63
+ entries: {
64
+ key: string;
65
+ description: string;
66
+ value: string;
67
+ }[];
68
+ }, "at most 50 test secrets per service">]>;
69
+ readonly responsesByStatusCode: {
70
+ readonly '4xx': import("valibot").ObjectSchema<{
71
+ readonly error: import("valibot").ObjectSchema<{
72
+ readonly code: import("valibot").StringSchema<undefined>;
73
+ readonly message: import("valibot").StringSchema<undefined>;
74
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
75
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
76
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
77
+ readonly message: import("valibot").StringSchema<undefined>;
78
+ }, undefined>, undefined>, undefined>;
79
+ }, undefined>;
80
+ }, undefined>;
81
+ readonly '5xx': import("valibot").ObjectSchema<{
82
+ readonly error: import("valibot").ObjectSchema<{
83
+ readonly code: import("valibot").StringSchema<undefined>;
84
+ readonly message: import("valibot").StringSchema<undefined>;
85
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
86
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
87
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
88
+ readonly message: import("valibot").StringSchema<undefined>;
89
+ }, undefined>, undefined>, undefined>;
90
+ }, undefined>;
91
+ }, undefined>;
92
+ readonly 200: import("valibot").ObjectSchema<{
93
+ readonly blockId: import("valibot").StringSchema<undefined>;
94
+ readonly entries: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
95
+ readonly key: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 128, undefined>, import("valibot").RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, import("valibot").CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
96
+ readonly description: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MaxLengthAction<string, 500, undefined>]>;
97
+ }, undefined>, undefined>;
98
+ }, undefined>;
99
+ };
100
+ };
101
+ export declare const deleteServiceTestSecretsContract: {
102
+ readonly method: "delete";
103
+ readonly requestPathParamsSchema: import("valibot").ObjectSchema<{
104
+ blockId: import("valibot").StringSchema<undefined>;
105
+ }, undefined> & import("@toad-contracts/core").StandardObjectKeysV1<unknown, unknown>;
106
+ readonly pathResolver: ({ blockId }: {
107
+ blockId: string;
108
+ }) => string;
109
+ readonly responsesByStatusCode: {
110
+ readonly '4xx': import("valibot").ObjectSchema<{
111
+ readonly error: import("valibot").ObjectSchema<{
112
+ readonly code: import("valibot").StringSchema<undefined>;
113
+ readonly message: import("valibot").StringSchema<undefined>;
114
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
115
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
116
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
117
+ readonly message: import("valibot").StringSchema<undefined>;
118
+ }, undefined>, undefined>, undefined>;
119
+ }, undefined>;
120
+ }, undefined>;
121
+ readonly '5xx': import("valibot").ObjectSchema<{
122
+ readonly error: import("valibot").ObjectSchema<{
123
+ readonly code: import("valibot").StringSchema<undefined>;
124
+ readonly message: import("valibot").StringSchema<undefined>;
125
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
126
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
127
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
128
+ readonly message: import("valibot").StringSchema<undefined>;
129
+ }, undefined>, undefined>, undefined>;
130
+ }, undefined>;
131
+ }, undefined>;
132
+ readonly 204: typeof ContractNoBody;
133
+ };
134
+ };
135
+ //# sourceMappingURL=test-secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-secrets.d.ts","sourceRoot":"","sources":["../../src/routes/test-secrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAa3E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMxC,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3C,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { ContractNoBody, defineApiContract } from '@toad-contracts/valibot';
2
+ import { serviceTestSecretsViewSchema, upsertServiceTestSecretsSchema } from '../test-secrets.js';
3
+ import { errorResponses, singleStringParam } from './_shared.js';
4
+ // ---------------------------------------------------------------------------
5
+ // Sensitive per-service test-secret route contracts. Mounted under
6
+ // `/workspaces/:workspaceId`, so the paths here are relative to that prefix.
7
+ // The blockId is a SERVICE FRAME block. Values are write-only (never read back);
8
+ // the view returns only the configured keys + descriptions. See TestSecretsController.
9
+ // ---------------------------------------------------------------------------
10
+ const blockIdParams = singleStringParam('blockId');
11
+ export const getServiceTestSecretsContract = defineApiContract({
12
+ method: 'get',
13
+ requestPathParamsSchema: blockIdParams,
14
+ pathResolver: ({ blockId }) => `/services/${blockId}/test-secrets`,
15
+ responsesByStatusCode: { 200: serviceTestSecretsViewSchema, ...errorResponses },
16
+ });
17
+ export const setServiceTestSecretsContract = defineApiContract({
18
+ method: 'put',
19
+ requestPathParamsSchema: blockIdParams,
20
+ pathResolver: ({ blockId }) => `/services/${blockId}/test-secrets`,
21
+ requestBodySchema: upsertServiceTestSecretsSchema,
22
+ responsesByStatusCode: { 200: serviceTestSecretsViewSchema, ...errorResponses },
23
+ });
24
+ export const deleteServiceTestSecretsContract = defineApiContract({
25
+ method: 'delete',
26
+ requestPathParamsSchema: blockIdParams,
27
+ pathResolver: ({ blockId }) => `/services/${blockId}/test-secrets`,
28
+ responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
29
+ });
30
+ //# sourceMappingURL=test-secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-secrets.js","sourceRoot":"","sources":["../../src/routes/test-secrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACjG,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhE,8EAA8E;AAC9E,mEAAmE;AACnE,6EAA6E;AAC7E,iFAAiF;AACjF,uFAAuF;AACvF,8EAA8E;AAE9E,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;AAElD,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAAC;IAC7D,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,aAAa;IACtC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,OAAO,eAAe;IAClE,qBAAqB,EAAE,EAAE,GAAG,EAAE,4BAA4B,EAAE,GAAG,cAAc,EAAE;CAChF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAAC;IAC7D,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,aAAa;IACtC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,OAAO,eAAe;IAClE,iBAAiB,EAAE,8BAA8B;IACjD,qBAAqB,EAAE,EAAE,GAAG,EAAE,4BAA4B,EAAE,GAAG,cAAc,EAAE;CAChF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;IAChE,MAAM,EAAE,QAAQ;IAChB,uBAAuB,EAAE,aAAa;IACtC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,OAAO,eAAe;IAClE,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA"}
@@ -1756,12 +1756,12 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
1756
1756
  readonly updatedAt: v.NumberSchema<undefined>;
1757
1757
  }, undefined>, undefined>, undefined>;
1758
1758
  /**
1759
- * The registered INITIATIVE PRESETS (built-in `preset_generic` + any a deployment mixed in via
1760
- * `registerInitiativePreset`), each a serialisable descriptor (form + planning-pipeline binding
1761
- * + defaults + `probe` flag). The SPA's create-initiative picker renders these and starts the
1762
- * chosen preset's `planningPipelineId`. Static (process-global registry), workspace-independent;
1763
- * attached by the shared `WorkspaceController` (so it is symmetric across runtimes), optional on
1764
- * the wire — the SPA falls back to the built-in generic pipeline when absent.
1759
+ * The registered INITIATIVE PRESETS (built-in `preset_generic` + any a deployment registered by
1760
+ * reference on the app-owned `InitiativePresetRegistry`), each a serialisable descriptor (form +
1761
+ * planning-pipeline binding + defaults + `probe` flag). The SPA's create-initiative picker renders
1762
+ * these and starts the chosen preset's `planningPipelineId`. Workspace-independent; attached by the
1763
+ * shared `WorkspaceController` (so it is symmetric across runtimes), optional on the wire — the SPA
1764
+ * falls back to the built-in generic pipeline when absent.
1765
1765
  */
1766
1766
  readonly initiativePresets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1767
1767
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>;
package/dist/snapshot.js CHANGED
@@ -214,12 +214,12 @@ export const workspaceSnapshotSchema = v.object({
214
214
  */
215
215
  initiatives: v.optional(v.array(initiativeSchema)),
216
216
  /**
217
- * The registered INITIATIVE PRESETS (built-in `preset_generic` + any a deployment mixed in via
218
- * `registerInitiativePreset`), each a serialisable descriptor (form + planning-pipeline binding
219
- * + defaults + `probe` flag). The SPA's create-initiative picker renders these and starts the
220
- * chosen preset's `planningPipelineId`. Static (process-global registry), workspace-independent;
221
- * attached by the shared `WorkspaceController` (so it is symmetric across runtimes), optional on
222
- * the wire — the SPA falls back to the built-in generic pipeline when absent.
217
+ * The registered INITIATIVE PRESETS (built-in `preset_generic` + any a deployment registered by
218
+ * reference on the app-owned `InitiativePresetRegistry`), each a serialisable descriptor (form +
219
+ * planning-pipeline binding + defaults + `probe` flag). The SPA's create-initiative picker renders
220
+ * these and starts the chosen preset's `planningPipelineId`. Workspace-independent; attached by the
221
+ * shared `WorkspaceController` (so it is symmetric across runtimes), optional on the wire — the SPA
222
+ * falls back to the built-in generic pipeline when absent.
223
223
  */
224
224
  initiativePresets: v.optional(v.array(initiativePresetDescriptorSchema)),
225
225
  /**
@@ -0,0 +1,71 @@
1
+ import * as v from 'valibot';
2
+ export declare const testSecretKeySchema: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, v.CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
3
+ /**
4
+ * One sensitive test credential: the env-var name it is injected under, a non-secret
5
+ * description (advertised to the agent), and the (write-only) secret value (sealed at rest,
6
+ * delivered only to the container environment — never echoed back or put in a prompt).
7
+ */
8
+ export declare const testSecretEntrySchema: v.ObjectSchema<{
9
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, v.CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
10
+ readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>;
11
+ readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8192, undefined>]>;
12
+ }, undefined>;
13
+ export type TestSecretEntry = v.InferOutput<typeof testSecretEntrySchema>;
14
+ /**
15
+ * A non-secret REFERENCE to a configured test secret: the key + description, NEVER the value.
16
+ * This is what is safe to render into the tester prompt, expose on the API, and carry on the
17
+ * agent run context.
18
+ */
19
+ export declare const testSecretRefSchema: v.ObjectSchema<{
20
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, v.CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
21
+ readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>;
22
+ }, undefined>;
23
+ export type TestSecretRef = v.InferOutput<typeof testSecretRefSchema>;
24
+ /**
25
+ * Validate a decrypted test-secret blob at the read boundary. The service calls this on the
26
+ * JSON it decrypts so a drifted/corrupted row fails with a clear schema error here rather than
27
+ * deep in a dispatch. (The persisted blob is `TestSecretEntry[]` — key + description + value.)
28
+ */
29
+ export declare const testSecretEntriesSchema: v.ArraySchema<v.ObjectSchema<{
30
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, v.CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
31
+ readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>;
32
+ readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8192, undefined>]>;
33
+ }, undefined>, undefined>;
34
+ export declare function parseTestSecretEntries(raw: unknown): TestSecretEntry[];
35
+ /** Set/replace a service's sensitive test-secret set (values write-only; keys unique). */
36
+ export declare const upsertServiceTestSecretsSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
37
+ readonly entries: v.ArraySchema<v.ObjectSchema<{
38
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, v.CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
39
+ readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>;
40
+ readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8192, undefined>]>;
41
+ }, undefined>, undefined>;
42
+ }, undefined>, v.CheckAction<{
43
+ entries: {
44
+ key: string;
45
+ description: string;
46
+ value: string;
47
+ }[];
48
+ }, "test-secret keys must be unique within a service">, v.CheckAction<{
49
+ entries: {
50
+ key: string;
51
+ description: string;
52
+ value: string;
53
+ }[];
54
+ }, "at most 50 test secrets per service">]>;
55
+ export type UpsertServiceTestSecretsInput = v.InferOutput<typeof upsertServiceTestSecretsSchema>;
56
+ /** What `GET .../test-secrets` returns — the configured keys + descriptions, NEVER the values. */
57
+ export declare const serviceTestSecretsViewSchema: v.ObjectSchema<{
58
+ /** The service-frame block these secrets belong to. */
59
+ readonly blockId: v.StringSchema<undefined>;
60
+ readonly entries: v.ArraySchema<v.ObjectSchema<{
61
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a valid environment variable name (letters, digits and underscores, not starting with a digit)">, v.CheckAction<string, "must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)">]>;
62
+ readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>;
63
+ }, undefined>, undefined>;
64
+ }, undefined>;
65
+ export type ServiceTestSecretsView = v.InferOutput<typeof serviceTestSecretsViewSchema>;
66
+ /**
67
+ * The non-secret summary persisted alongside the sealed values, so the view (and the tester
68
+ * prompt) can list what is configured without decrypting anything.
69
+ */
70
+ export declare function serviceTestSecretsSummary(entries: TestSecretEntry[]): TestSecretRef[];
71
+ //# sourceMappingURL=test-secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-secrets.d.ts","sourceRoot":"","sources":["../src/test-secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAuD5B,eAAO,MAAM,mBAAmB,qaAa/B,CAAA;AAKD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;aAIhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;aAG9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;yBAAiC,CAAA;AACrE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,EAAE,CAEtE;AAED,0FAA0F;AAC1F,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;2CAO1C,CAAA;AACD,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAEhG,kGAAkG;AAClG,eAAO,MAAM,4BAA4B;IACvC,uDAAuD;;;;;;aAGvD,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,aAAa,EAAE,CAErF"}
@@ -0,0 +1,100 @@
1
+ import * as v from 'valibot';
2
+ // ---------------------------------------------------------------------------
3
+ // Sensitive per-service test credentials (SEALED).
4
+ //
5
+ // A companion to the NON-sensitive test-credential pools (`ServiceTestCredentials`,
6
+ // stored as plain JSON and rendered straight into the tester prompt): this store is for
7
+ // SENSITIVE testing credentials — e.g. a third-party API token a Tester needs to exercise
8
+ // an integration. Unlike the pools, these are:
9
+ // - SEALED at rest by the facade `SecretCipher` (like `observability_connections`), and
10
+ // - delivered to the Tester container OUT OF BAND — injected as environment variables the
11
+ // agent's shell can read, NEVER rendered into the prompt text or the telemetry snapshot.
12
+ // The prompt only advertises each secret's KEY + (non-secret) DESCRIPTION so the agent knows
13
+ // which env vars exist and what each is for; the VALUES reach only the container environment.
14
+ //
15
+ // Both this and the non-sensitive pools are per SERVICE FRAME (resolved up the frame chain),
16
+ // mirroring the release-health per-block config. See docs/initiatives/tester-environment-access.md.
17
+ // ---------------------------------------------------------------------------
18
+ /**
19
+ * An env-var-safe key: the name the secret is injected under in the Tester container's
20
+ * environment, so it must be a valid POSIX shell variable name (letters, digits, underscore;
21
+ * not starting with a digit). The operator names it as the system under test expects it —
22
+ * e.g. `STRIPE_API_KEY` — and the agent references it as `$STRIPE_API_KEY`.
23
+ */
24
+ /**
25
+ * Toolchain-critical / reserved env-var names never accepted as a test-secret key: injecting one
26
+ * would clobber the harness's own environment (`PATH`/`NODE_OPTIONS`/`LD_PRELOAD`/…) or reconfigure
27
+ * its package manager (`npm_config_*`) or git (`GIT_*`). The harness (executor-harness `job.ts`)
28
+ * ALSO drops these defensively at parse; rejecting here means the operator gets a clear error at
29
+ * write time instead of a key that is silently never injected. Kept in step with the harness's
30
+ * `RESERVED_ENV_NAMES` / `RESERVED_ENV_PREFIXES` (the harness has no dependency on this package).
31
+ * Exact names match verbatim (Linux env is case-sensitive); the family prefixes match
32
+ * case-insensitively (npm reads `npm_config_*` regardless of case).
33
+ */
34
+ const RESERVED_ENV_NAMES = new Set([
35
+ 'PATH',
36
+ 'HOME',
37
+ 'NODE_OPTIONS',
38
+ 'NODE_PATH',
39
+ 'NODE_EXTRA_CA_CERTS',
40
+ 'LD_PRELOAD',
41
+ 'LD_LIBRARY_PATH',
42
+ 'BASH_ENV',
43
+ 'ENV',
44
+ 'SHELL',
45
+ 'IFS',
46
+ ]);
47
+ const RESERVED_ENV_PREFIXES = ['npm_config_', 'git_'];
48
+ function isReservedEnvName(key) {
49
+ if (RESERVED_ENV_NAMES.has(key))
50
+ return true;
51
+ const lower = key.toLowerCase();
52
+ return RESERVED_ENV_PREFIXES.some((p) => lower.startsWith(p));
53
+ }
54
+ export const testSecretKeySchema = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(128), v.regex(/^[A-Za-z_][A-Za-z0-9_]*$/, 'must be a valid environment variable name (letters, digits and underscores, not starting with a digit)'), v.check((key) => !isReservedEnvName(key), 'must not be a reserved/toolchain environment variable name (e.g. PATH, HOME, NODE_OPTIONS, npm_config_*, GIT_*)'));
55
+ /** A non-secret note describing what a test secret is for. Rendered into the tester prompt. */
56
+ const testSecretDescriptionSchema = v.pipe(v.string(), v.trim(), v.maxLength(500));
57
+ /**
58
+ * One sensitive test credential: the env-var name it is injected under, a non-secret
59
+ * description (advertised to the agent), and the (write-only) secret value (sealed at rest,
60
+ * delivered only to the container environment — never echoed back or put in a prompt).
61
+ */
62
+ export const testSecretEntrySchema = v.object({
63
+ key: testSecretKeySchema,
64
+ description: testSecretDescriptionSchema,
65
+ value: v.pipe(v.string(), v.minLength(1), v.maxLength(8192)),
66
+ });
67
+ /**
68
+ * A non-secret REFERENCE to a configured test secret: the key + description, NEVER the value.
69
+ * This is what is safe to render into the tester prompt, expose on the API, and carry on the
70
+ * agent run context.
71
+ */
72
+ export const testSecretRefSchema = v.object({
73
+ key: testSecretKeySchema,
74
+ description: testSecretDescriptionSchema,
75
+ });
76
+ /**
77
+ * Validate a decrypted test-secret blob at the read boundary. The service calls this on the
78
+ * JSON it decrypts so a drifted/corrupted row fails with a clear schema error here rather than
79
+ * deep in a dispatch. (The persisted blob is `TestSecretEntry[]` — key + description + value.)
80
+ */
81
+ export const testSecretEntriesSchema = v.array(testSecretEntrySchema);
82
+ export function parseTestSecretEntries(raw) {
83
+ return v.parse(testSecretEntriesSchema, raw);
84
+ }
85
+ /** Set/replace a service's sensitive test-secret set (values write-only; keys unique). */
86
+ export const upsertServiceTestSecretsSchema = v.pipe(v.object({ entries: v.array(testSecretEntrySchema) }), v.check((o) => new Set(o.entries.map((e) => e.key)).size === o.entries.length, 'test-secret keys must be unique within a service'), v.check((o) => o.entries.length <= 50, 'at most 50 test secrets per service'));
87
+ /** What `GET .../test-secrets` returns — the configured keys + descriptions, NEVER the values. */
88
+ export const serviceTestSecretsViewSchema = v.object({
89
+ /** The service-frame block these secrets belong to. */
90
+ blockId: v.string(),
91
+ entries: v.array(testSecretRefSchema),
92
+ });
93
+ /**
94
+ * The non-secret summary persisted alongside the sealed values, so the view (and the tester
95
+ * prompt) can list what is configured without decrypting anything.
96
+ */
97
+ export function serviceTestSecretsSummary(entries) {
98
+ return entries.map((e) => ({ key: e.key, description: e.description }));
99
+ }
100
+ //# sourceMappingURL=test-secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-secrets.js","sourceRoot":"","sources":["../src/test-secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,oFAAoF;AACpF,wFAAwF;AACxF,0FAA0F;AAC1F,+CAA+C;AAC/C,0FAA0F;AAC1F,4FAA4F;AAC5F,6FAA6F;AAC7F,6FAA6F;AAC7F,8FAA8F;AAC9F,EAAE;AACF,6FAA6F;AAC7F,oGAAoG;AACpG,8EAA8E;AAE9E;;;;;GAKG;AACH;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,MAAM;IACN,MAAM;IACN,cAAc;IACd,WAAW;IACX,qBAAqB;IACrB,YAAY;IACZ,iBAAiB;IACjB,UAAU;IACV,KAAK;IACL,OAAO;IACP,KAAK;CACN,CAAC,CAAA;AACF,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;AACrD,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,IAAI,EAAE,EACR,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAChB,CAAC,CAAC,KAAK,CACL,0BAA0B,EAC1B,wGAAwG,CACzG,EACD,CAAC,CAAC,KAAK,CACL,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAChC,iHAAiH,CAClH,CACF,CAAA;AAED,+FAA+F;AAC/F,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAElF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,GAAG,EAAE,mBAAmB;IACxB,WAAW,EAAE,2BAA2B;IACxC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CAC7D,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,mBAAmB;IACxB,WAAW,EAAE,2BAA2B;CACzC,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACrE,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,OAAO,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;AAC9C,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,EACrD,CAAC,CAAC,KAAK,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EACrE,kDAAkD,CACnD,EACD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,qCAAqC,CAAC,CAC9E,CAAA;AAGD,kGAAkG;AAClG,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,uDAAuD;IACvD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACtC,CAAC,CAAA;AAGF;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA0B;IAClE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;AACzE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.121.1",
3
+ "version": "0.122.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",