paris-immersion 0.1.28 → 0.1.29

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paris-immersion",
3
- "version": "0.1.28",
3
+ "version": "0.1.29",
4
4
  "description": "Paris Immersion CLI — login, install workspace, status, task control. Para alunos das imersões da Paris Group.",
5
5
  "homepage": "https://parisgroup.ai",
6
6
  "repository": {
@@ -18075,6 +18075,43 @@ function buildTools() {
18075
18075
  detail: external_exports.string().max(1e3).optional()
18076
18076
  }),
18077
18077
  handler: async (input, { client }) => client.post("/immersion-app/v1/events", input)
18078
+ },
18079
+ {
18080
+ name: "publish_solution",
18081
+ description: "Publicar a solu\xE7\xE3o do aluno no Marketplace da Paris (vitrine entre turmas). S\xD3 chame depois de PERGUNTAR explicitamente ao aluno e ele CONSENTIR que a solu\xE7\xE3o \u2014 com o contato e a apresenta\xE7\xE3o, se informados \u2014 apare\xE7a na vitrine. Sem consentimento verbal do aluno, n\xE3o chame (consent deve ser true). Inclua contact_email/contact_whatsapp pra quem quiser falar com o aluno, e presentation_url com o link da apresenta\xE7\xE3o do dia 3. O item passa por modera\xE7\xE3o do mentor antes de aparecer.",
18082
+ inputSchema: external_exports.object({
18083
+ title: external_exports.string().min(1).max(255),
18084
+ description: external_exports.string().max(1e3).optional(),
18085
+ type: external_exports.enum(["playbook", "workflow", "script", "template", "plan"]),
18086
+ sector: external_exports.string().max(100).optional(),
18087
+ content: external_exports.string().max(1e5).optional(),
18088
+ consent: external_exports.boolean(),
18089
+ contact_email: external_exports.string().email().max(255).optional(),
18090
+ contact_whatsapp: external_exports.string().max(32).optional(),
18091
+ presentation_url: external_exports.string().url().max(2048).optional(),
18092
+ visibility: external_exports.enum(["public", "turma_only"]).optional(),
18093
+ anonymous: external_exports.boolean().optional()
18094
+ }),
18095
+ handler: async (input, { client }) => {
18096
+ if (input.consent !== true) {
18097
+ throw new Error(
18098
+ "Consentimento pendente: pergunte ao aluno se ele autoriza publicar a solu\xE7\xE3o (e o contato/apresenta\xE7\xE3o) no marketplace, e s\xF3 chame de novo com consent: true."
18099
+ );
18100
+ }
18101
+ return client.post("/api/marketplace", {
18102
+ title: input.title,
18103
+ description: input.description,
18104
+ type: input.type,
18105
+ sector: input.sector,
18106
+ content: input.content,
18107
+ consent: true,
18108
+ contactEmail: input.contact_email,
18109
+ contactWhatsapp: input.contact_whatsapp,
18110
+ presentationUrl: input.presentation_url,
18111
+ visibility: input.visibility,
18112
+ anonymous: input.anonymous
18113
+ });
18114
+ }
18078
18115
  }
18079
18116
  ];
18080
18117
  }