sqlew 4.0.2 → 4.0.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 (34) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +17 -105
  3. package/assets/claude-md-snippets/plan-mode-integration.md +13 -0
  4. package/assets/sample-commands/sqlew.md +144 -0
  5. package/assets/sample-skills/sqlew-plan-guidance/SKILL.md +55 -0
  6. package/dist/init-commands.d.ts +5 -2
  7. package/dist/init-commands.d.ts.map +1 -1
  8. package/dist/init-commands.js +36 -175
  9. package/dist/init-commands.js.map +1 -1
  10. package/dist/init-skills.d.ts +19 -0
  11. package/dist/init-skills.d.ts.map +1 -0
  12. package/dist/init-skills.js +104 -0
  13. package/dist/init-skills.js.map +1 -0
  14. package/dist/server/setup.d.ts.map +1 -1
  15. package/dist/server/setup.js +9 -0
  16. package/dist/server/setup.js.map +1 -1
  17. package/dist/tests/unit/case-insensitive-validator.test.d.ts +14 -0
  18. package/dist/tests/unit/case-insensitive-validator.test.d.ts.map +1 -0
  19. package/dist/tests/unit/case-insensitive-validator.test.js +390 -0
  20. package/dist/tests/unit/case-insensitive-validator.test.js.map +1 -0
  21. package/dist/tools/tasks/actions/get.d.ts.map +1 -1
  22. package/dist/tools/tasks/actions/get.js +1 -4
  23. package/dist/tools/tasks/actions/get.js.map +1 -1
  24. package/dist/tools/tasks/internal/task-queries.d.ts.map +1 -1
  25. package/dist/tools/tasks/internal/task-queries.js +2 -8
  26. package/dist/tools/tasks/internal/task-queries.js.map +1 -1
  27. package/docs/SLASH_COMMANDS.md +192 -478
  28. package/docs/SPECIALIZED_AGENTS.md +81 -43
  29. package/package.json +1 -1
  30. package/assets/sample-commands/sqw-documentor.md +0 -204
  31. package/assets/sample-commands/sqw-plan.md +0 -348
  32. package/assets/sample-commands/sqw-research.md +0 -359
  33. package/assets/sample-commands/sqw-review.md +0 -377
  34. package/assets/sample-commands/sqw-scrum.md +0 -457
@@ -23,10 +23,7 @@ export async function getTask(params, adapter) {
23
23
  const task = await knex('v4_tasks as t')
24
24
  .leftJoin('v4_task_statuses as s', 't.status_id', 's.id')
25
25
  .leftJoin('v4_layers as l', 't.layer_id', 'l.id')
26
- .leftJoin('v4_task_details as td', function () {
27
- this.on('t.id', '=', 'td.task_id')
28
- .andOn('t.project_id', '=', 'td.project_id');
29
- })
26
+ .leftJoin('v4_task_details as td', 't.id', 'td.task_id')
30
27
  .where({ 't.id': params.task_id, 't.project_id': projectId })
31
28
  .select('t.id', 't.title', 's.name as status', 't.priority', 'l.name as layer', 't.created_ts', 't.updated_ts', 't.completed_ts', 'td.description', 'td.acceptance_criteria', 'td.notes')
32
29
  .first();
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/tools/tasks/actions/get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/tools/tasks/actions/get.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAG7B,EAAE,OAAyB;IAC1B,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE5C,MAAM,aAAa,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;IAErC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,mDAAmD;IACnD,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,oDAAoD;QACpD,mFAAmF;QACnF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;aACrC,QAAQ,CAAC,uBAAuB,EAAE,aAAa,EAAE,MAAM,CAAC;aACxD,QAAQ,CAAC,gBAAgB,EAAE,YAAY,EAAE,MAAM,CAAC;aAChD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,EAAE,YAAY,CAAC;aACvD,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;aAC5D,MAAM,CACL,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,CACX;aACA,KAAK,EAAS,CAAC;QAElB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;QACJ,CAAC;QAED,WAAW;QACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;aAC1C,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,OAAO,CAAC;aAC3C,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC;aACnC,MAAM,CAAC,SAAS,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAElD,qBAAqB;QACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC;aAC1D,IAAI,CAAC,uBAAuB,EAAE,qBAAqB,EAAE,OAAO,CAAC;aAC7D,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC;aACpC,MAAM,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;QAEjD,uBAAuB;QACvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iCAAiC,CAAC;aAC9D,IAAI,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;aACxD,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC;aACpC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAEvC,iBAAiB;QACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;aAClD,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,CAAC;aAC5C,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC;aACpC,MAAM,CAAC,QAAQ,CAAC;aAChB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAElD,eAAe;QACf,MAAM,MAAM,GAAQ;YAClB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,SAAS;gBAC3B,kBAAkB,EAAE,WAAW;gBAC/B,YAAY,EAAE,KAAK;aACpB;SACF,CAAC;QAEF,qEAAqE;QACrE,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/E,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-queries.d.ts","sourceRoot":"","sources":["../../../../src/tools/tasks/internal/task-queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC,CA0D/C"}
1
+ {"version":3,"file":"task-queries.d.ts","sourceRoot":"","sources":["../../../../src/tools/tasks/internal/task-queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC,CAoD/C"}
@@ -34,10 +34,7 @@ export async function queryTaskDependencies(adapter, taskId, includeDetails = fa
34
34
  .select(selectFields);
35
35
  if (includeDetails) {
36
36
  blockersQuery = blockersQuery
37
- .leftJoin('v4_task_details as td', function () {
38
- this.on('t.id', '=', 'td.task_id')
39
- .andOn('t.project_id', '=', 'td.project_id');
40
- });
37
+ .leftJoin('v4_task_details as td', 't.id', 'td.task_id');
41
38
  }
42
39
  const blockers = await blockersQuery;
43
40
  // Get blocking (tasks this task blocks) - with project_id isolation
@@ -48,10 +45,7 @@ export async function queryTaskDependencies(adapter, taskId, includeDetails = fa
48
45
  .select(selectFields);
49
46
  if (includeDetails) {
50
47
  blockingQuery = blockingQuery
51
- .leftJoin('v4_task_details as td', function () {
52
- this.on('t.id', '=', 'td.task_id')
53
- .andOn('t.project_id', '=', 'td.project_id');
54
- });
48
+ .leftJoin('v4_task_details as td', 't.id', 'td.task_id');
55
49
  }
56
50
  const blocking = await blockingQuery;
57
51
  return { blockers, blocking };
@@ -1 +1 @@
1
- {"version":3,"file":"task-queries.js","sourceRoot":"","sources":["../../../../src/tools/tasks/internal/task-queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAwB,EACxB,MAAc,EACd,iBAA0B,KAAK;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC;IAErD,4CAA4C;IAC5C,mEAAmE;IACnE,MAAM,YAAY,GAAG,cAAc;QACjC,CAAC,CAAC;YACE,MAAM;YACN,SAAS;YACT,kBAAkB;YAClB,YAAY;YACZ,cAAc;YACd,cAAc;YACd,gBAAgB;SACjB;QACH,CAAC,CAAC;YACE,MAAM;YACN,SAAS;YACT,kBAAkB;YAClB,YAAY;SACb,CAAC;IAEN,wEAAwE;IACxE,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;SACtC,IAAI,CAAC,2BAA2B,EAAE,MAAM,EAAE,mBAAmB,CAAC;SAC9D,QAAQ,CAAC,uBAAuB,EAAE,aAAa,EAAE,MAAM,CAAC;SACxD,KAAK,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;SAC5F,MAAM,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI,cAAc,EAAE,CAAC;QACnB,aAAa,GAAG,aAAa;aAC1B,QAAQ,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC;iBAC7B,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;IAErC,oEAAoE;IACpE,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;SACtC,IAAI,CAAC,2BAA2B,EAAE,MAAM,EAAE,mBAAmB,CAAC;SAC9D,QAAQ,CAAC,uBAAuB,EAAE,aAAa,EAAE,MAAM,CAAC;SACxD,KAAK,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;SAC5F,MAAM,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI,cAAc,EAAE,CAAC;QACnB,aAAa,GAAG,aAAa;aAC1B,QAAQ,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC;iBAC7B,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;IAErC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"task-queries.js","sourceRoot":"","sources":["../../../../src/tools/tasks/internal/task-queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAwB,EACxB,MAAc,EACd,iBAA0B,KAAK;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC;IAErD,4CAA4C;IAC5C,mEAAmE;IACnE,MAAM,YAAY,GAAG,cAAc;QACjC,CAAC,CAAC;YACE,MAAM;YACN,SAAS;YACT,kBAAkB;YAClB,YAAY;YACZ,cAAc;YACd,cAAc;YACd,gBAAgB;SACjB;QACH,CAAC,CAAC;YACE,MAAM;YACN,SAAS;YACT,kBAAkB;YAClB,YAAY;SACb,CAAC;IAEN,wEAAwE;IACxE,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;SACtC,IAAI,CAAC,2BAA2B,EAAE,MAAM,EAAE,mBAAmB,CAAC;SAC9D,QAAQ,CAAC,uBAAuB,EAAE,aAAa,EAAE,MAAM,CAAC;SACxD,KAAK,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;SAC5F,MAAM,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI,cAAc,EAAE,CAAC;QACnB,aAAa,GAAG,aAAa;aAC1B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;IAErC,oEAAoE;IACpE,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;SACtC,IAAI,CAAC,2BAA2B,EAAE,MAAM,EAAE,mBAAmB,CAAC;SAC9D,QAAQ,CAAC,uBAAuB,EAAE,aAAa,EAAE,MAAM,CAAC;SACxD,KAAK,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;SAC5F,MAAM,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI,cAAc,EAAE,CAAC;QACnB,aAAa,GAAG,aAAa;aAC1B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;IAErC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}